![]() |
AliRoot Core
aab2016 (aab2016)
|
See the detailed description of the mapping package in ALICE-INT-2003-025. Since that time the mapping has been extended for slat and trigger chamber segmentations an later on also to hold the description of the top level connections of detection elements, including information about DDLs, bus patches and also trigger configuration.
The mapping is everywhere in the MUON code loaded from OCDB. In case the mapping data files are changed, the mapping in OCDB has to be regenerated in this way:
For changes in mapping/data:
$> rm $ALICE_ROOT/OCDB/MUON/Calib/MappingData/Run0_999999999_v0_s0.root $> cd $ALICE_ROOT/MUON $> aliroot root [0] AliMpCDB::WriteMpData();
For changes in mapping/data_run:
$> rm $ALICE_ROOT/OCDB/MUON/Calib/MappingRunData/Run0_999999999_v0_s0.root $> cd $ALICE_ROOT/MUON $> aliroot root [0] AliMpCDB::WriteMpRunData();
Note that mapping has to be loaded from OCDB almost each time when using MUON classes; the loading of mapping depends on the CBD manager state (the current run number, storage ...). The standard way of loading mapping expects the CDB manager in a state well defined beforehand; this way is used in the MUON code:
if ( ! AliMpCDB::LoadDDLStore() ) { AliFatal("Could not access mapping from OCDB !"); }
In the same way, you can load AliMpManuStore, when manu serial numbers are needed:
if ( ! AliMpCDB::LoadManuStore() ) { AliFatal("Could not access run-dependent mapping from OCDB !"); }
In the interactive Root session, in case the CDB manager state is not defined, you can load mapping from the local OCDB files in this way:
root [0] AliMpCDB::LoadDDLStore2(); root [2] AliMpCDB::LoadManuStore2();
To use the GUI to plot DE segmentation run:
AliMpCDB::LoadDDLStore2(); AliMpCDB::LoadManuStore2(); new AliMpDEVisu();
or
AliMpCDB::LoadDDLStore2(); AliMpCDB::LoadManuStore2(); new AliMpDEVisu(w, h);
if you want to change the size of the GUI window. Typical value are:
w = 1200, h = 600 for PC w = 1000, h = 550 for laptop
The GUI allows:
A set of tests macros have been written during the development of the mapping classes. To run these macros:
cd ../mapping/macro root root [0] .x testMacroName.C
The directory data in $ALICE_ROOT/MUON/mapping contains files with data which are not supposed to be changed in a long period.
Describes layout of zones, rows, row segments, subzones, motifs
SECTOR_DATA number of zones number of rows direction of constant pad size (X or Y) offset in X direction offset in Y direction
ZONE number of zone half legth of pad size in x half legth of pad size in y
SUBZONE motif id motif type_id
ROW_SEGMENT x offset (in number of pads) y offset (in number of pads) row number nof motifs first motif position Id step to the next motif position Id (+1 or -1)
Describes layout of special row segments (with irregular motifs)
SECTOR_SPECIAL_DATA
MOTIF zone id motif id motif type_id
ROW row number
PAD_ROWS number of these pad rows in row
PAD_ROW_SEGMENT mumber of pads in the rows segment motif id motif position id
motifX.dat ---------- Describes characteristics of the motif type X
In lines: Berg number Kapton number Pad number Gassi number
Describes characteristics of the special motif with motif Id X; the special motif caontains pads of different size
In lines: pad index i (in x) pad index j (in y) half legth of pad size in x half legth of pad size in y
Maps pad numbers used in the motifX.dat files to the local pad indices (i,j)
In lines: Pad number pad index i (in x) pad index j (in y)
Lines starting with # are comments.
SIZES PadSizeX PadSizeY SizeX SizeY (cm)
MOTIF motifType ix iy MOTIF motifType ix iy ...
where ix, iy are the local coordinates (in pad unit) of the lower-left corner of the motif (0,0 is the lower-left corner of the PCB).
PCB MUST be described in a rotating way, starting lower-left and then counter-clockwise, otherwise the manu-to-motif association (fixed in the slat definition files) will be wrong.
Note that for "full" PCBs, the SizeX and SizeY are redundant as they could be computed from the motif alone (but that serves as a cross-check that the motif pattern given is ok). That's not the case for short or rounded PCB though.
A slat is defined by the list of its PCB, described starting from the beam and going outward.
One PCB per line, preceded by the keyword PCB Other lines not matching this syntax are ignored. After the PCB is the list of manu ids for this PCB.
Example :
PCB X 1-3;24-20;42;44;53 PCB X 1-14 PCB Y 100-90 PCB Z 1;2;3;4;5;6;7;12;120
defines a slat with 4 PCBs : XXYZ
The manu to motif relationship is attached to the fact that we're counting counter-clockwise, starting on the lower-left of the PCB. (and the pcb files have to follow this convention to defined their motifs, otherwise all this won't work).
Note that the definition of the PCBs have to be in files with extension .pcb (X.pcb, Y.pcb, Z.pcb)
Lines starting with # are comments.
Contains the detection element identifier with the associated buspatch numbers and the corresponding DDL identifier. The link between buspatches and DE's is needed on the rawdata level to identify the type of quadrant/slat to get the corresponding mapping. The DDL id is needed for the rawdata generation only.
To generate this file, the macro MUONGenerateBusPatch.C could be used.
Lines starting with # are comments.
Contains the list of bus patches which manu readout is not in the standard order. The format:
KEYWORD DDLs BusPatches [ManuIDs} where KEYWORD = REVERT or EXPLICIT
Lines starting with # are comments.
Contains the list of bus patches and their cable length in meters
# DDL 0 1 3 2 3 ...
Muon trigger electronics configuration file (decoded in class AliMUONTriggerCrateStore) directly copy/paste from the ALICE PRR ALICE-EN-2003-010. Gives local board number, name, crate name it belongs to, slot number, and internal switches (used in the algorithm).
Lines starting with # are comments.
Contains the manu serial number with their associated bin number, injection and calibration gain.
To compare the bin number with the serial in the CDB database you can run the macro:
AliMpCDB::LoadDDLStore2(); .L $ALICE_ROOT/MUON/mapping/macros/MUONCheckManu.C+ MUONCheckManu(10, kFALSE);
The function has two parameters, the first is the number of the chamber (zero mean all chambers). The macro can create a set of histogramms with the different gain distributions stored into a root file (second parameter).
Two files a generated: one with the list of manu per detection element with their associated bin and gain value, the other with the bad, strange or unidentified serial number.
The directory data_run in $ALICE_ROOT/MUON/mapping contains files with data which are expected to change during experiment. At present time, there are only files with manu serial numbers:
Contains the list of manuIds and their serial numbers.
# Id bp/nbp serial 1 bp 4615 2 bp 4616 ...
Lengths are in centimeters.
This chapter is defined in the READMEmapping.txt file.