The MCH Mapping
A PIP for a WIP
Laurent Aphecetche
19 Jun 2017
Talk's purpose
Refresher about MCH mapping concepts
Some ideas on its implementation evolution
- stations and chambers
- detection elements
- ddls
- buspatches
- manus
- pads
Stations (st) and Chambers (ch)
5 stations, 2 chambers each
= 10 chambers
10 chambers

Detection Elements (de)
Elementary parts of the detector
(re-moveable and hence should be aligned)
156 units
Sectors and slats
Stations 1 and 2 : sectors (a.k.a. quadrants)
8 units, 2 types
Stations 3,4 and 5 : slats
148 units, 19 types
Planes
Each DE has two planes
Bending (b) & Non-Bending (nb) plane
A plane is a set of pads
Motifs
A group of <= 64 pads
One FEE card
283 types (171 for slats)
work

DDLs & Buspatches

GBTs and CRUs

Voltages

Numbers recap (Run 2)
- 20 DDLs
- 156 DEs
- 888 buspatches
- 16828 manus
- 1064008 pads
Numbers recap (Run 3)
- ~25 CRUs
- 156 DEs
- ~600 elinks
- 16828 dual sampas
- 1064008 pads
Finding pads
- by (ix,iy)
- by (x,y)
- by (fee,channel)
a.k.a. Segmentation
Linking R/O and segmentation
- DE <-> DDLs
- DE <-> buspatches
- DDL <-> buspatches
- buspatches <-> FEE
Linking DCS and segmentation
Each role used in different parts of the code
e.g.
- find by position : clustering
- R/O to pad : raw data decoding
- HV/LV : data filtering
Current (Run2) Implementation
Text files
- 666 (!) text files
- several different formats (custom)
- interpreted w/ custom readers
- used to construct objects hierarchy
OCDB
- Text files [ in 1 ROOT obj in OCDB ]
- Still treated as text files
All or nothing
one single (big) set of objects
- in memory (but designed to be compact)
- all the time
- for all purposes
Next (Run3) Implementation
- custom and small text files were nice
- when developping the mapping
- but mapping is now known and fixed
- still, human readable stays usefull
Use JSON as the only text format
- still human readable / writeable
- but parser(s)'s coming "for free" this time
- in whatever language
Limit the number of files
one per "detector level" (ch,de,seg,etc...)
Generators
- don't (necessarily) use JSON directly
- generate code for trivial/small things
- generate binary format(s) (e.g. FlatBuffers)
and
- be more "functional" and less OO ?
Split mapping
natural level of work(*) is DE
one (binary) mapping per DE
(*) up to tracking
Next Steps
- code the reverse conversion txt
- to check all information is actually still there...
- (re)write tests
- generate some code and some binary format
1
The MCH Mapping
A PIP for a WIP
Laurent Aphecetche
19 Jun 2017