518eb852 |
1 | // $Id$ |
2 | |
3 | /*! |
4 | |
91509ec6 |
5 | \page README_mapping Mapping |
518eb852 |
6 | |
7 | |
91509ec6 |
8 | See the detailed description of the mapping package in ALICE-INT-2003-025. |
9 | Since that time the mapping has been extended for slat and trigger |
10 | chamber segmentations an later on also to hold the description of the |
11 | top level connections of detection elements, including information |
12 | about DDLs, bus patches and also trigger configuration. |
518eb852 |
13 | |
062f2b75 |
14 | \section mapping_s0 Mapping in OCDB |
15 | |
16 | The mapping is everywhere in the MUON code loaded from |
17 | OCDB. In case the mapping data files are changed, the mapping |
18 | in OCDB has to be regenerated in this way: |
19 | |
20 | <pre> |
21 | $> cd $ALICE_ROOT/MUON |
8c42aa23 |
22 | $> rm Calib/Mapping/Run0_999999999_v0_s0.root |
23 | $> rm Calib/DDLStore/Run0_999999999_v0_s0.root |
062f2b75 |
24 | $> aliroot |
25 | root [0] AliMpDDLStore::ReadData(); |
26 | root [1] AliMpCDB::WriteMpSegmentation(); |
27 | root [2] AliMpCDB::WriteDDLStore(); |
28 | </pre> |
29 | |
30 | Note that mapping has to be loaded from OCDB almost each time |
31 | when using MUON classes; the loading of mapping depends on |
32 | the CBD manager state (the current run number, storage ...). |
33 | The standard way of loading mapping expects the CDB manager |
34 | in a state well defined beforehand; this way is used in |
35 | the MUON code: |
36 | |
37 | <pre> |
38 | if ( ! AliMpCDB::LoadDDLStore() ) { |
39 | AliFatal("Could not access mapping from OCDB !"); |
40 | } |
41 | </pre> |
42 | |
43 | In the interactive Root session, in case the CDB manager state is |
44 | not defined, you can load mapping from the local OCDB files in this |
45 | way: |
46 | <pre> |
47 | root [0] AliMpCDB::LoadDDLStore2(); |
48 | </pre> |
49 | |
50 | |
518eb852 |
51 | \section mapping_s1 Graphical User Interface |
52 | |
53 | To use the GUI to plot DE segmentation run: |
54 | |
062f2b75 |
55 | <pre> |
56 | AliMpCDB::LoadDDLStore2(); |
518eb852 |
57 | new AliMpDEVisu(); |
58 | </pre> |
59 | |
60 | or |
61 | |
62 | <pre> |
062f2b75 |
63 | AliMpCDB::LoadDDLStore2(); |
518eb852 |
64 | new AliMpDEVisu(w, h); |
65 | </pre> |
66 | |
67 | if you want to change the size of the GUI window. |
68 | Typical value are: |
69 | <pre> |
70 | w = 1200, h = 600 for PC |
71 | w = 1000, h = 550 for laptop |
72 | </pre> |
73 | |
74 | The GUI allows: |
75 | - drawing motif of a slat/quadrant |
76 | - search of a given manu (motif) number |
77 | - draw the channel number for a given manu number by clicking of the motif in canvas |
78 | - write down in log message informations about the given detection element |
79 | * DE Id, DE name, |
80 | * number of buspatches, manus, manu serials |
81 | - option to save log message onto disc |
82 | |
83 | \section mapping_s2 Test macros |
84 | |
91509ec6 |
85 | A set of tests macros have been written during the development |
86 | of the mapping classes. To run these macros: |
87 | |
518eb852 |
88 | <pre> |
89 | cd ../mapping/macro |
90 | root |
91 | root [0] .x testMacroName.C |
518eb852 |
92 | </pre> |
93 | |
518eb852 |
94 | |
95 | \section mapping_s3 Data files format |
96 | |
91509ec6 |
97 | \subsection mapping_s3_sub1 zones.dat |
518eb852 |
98 | |
99 | Describes layout of zones, rows, row segments, subzones, motifs |
100 | |
101 | <pre> |
102 | SECTOR_DATA |
103 | number of zones |
104 | number of rows |
105 | direction of constant pad size (X or Y) |
106 | offset in X direction |
107 | offset in Y direction |
108 | |
109 | ZONE |
110 | number of zone |
111 | half legth of pad size in x |
112 | half legth of pad size in y |
113 | |
114 | SUBZONE |
115 | motif id |
116 | motif type_id |
117 | |
118 | ROW_SEGMENT |
119 | x offset (in number of pads) |
120 | y offset (in number of pads) |
121 | row number |
122 | nof motifs |
123 | first motif position Id |
124 | step to the next motif position Id (+1 or -1) |
125 | </pre> |
126 | |
127 | |
91509ec6 |
128 | \subsection mapping_s3_sub2 zones_special.dat |
518eb852 |
129 | |
130 | Describes layout of special row segments (with irregular motifs) |
131 | |
132 | <pre> |
133 | SECTOR_SPECIAL_DATA |
134 | |
135 | MOTIF |
136 | zone id |
137 | motif id |
138 | motif type_id |
139 | |
140 | ROW |
141 | row number |
142 | |
143 | PAD_ROWS |
144 | number of these pad rows in row |
145 | |
146 | PAD_ROW_SEGMENT |
147 | mumber of pads in the rows segment |
148 | motif id |
149 | motif position id |
150 | |
151 | motifX.dat |
152 | ---------- |
153 | Describes characteristics of the motif type X |
154 | |
155 | In lines: |
156 | Berg number |
157 | Kapton number |
158 | Pad number |
159 | Gassi number |
160 | </pre> |
161 | |
162 | |
163 | \subsection mapping_s3_sub3 motifSpecialX.dat |
164 | |
165 | Describes characteristics of the special motif with motif Id X; |
166 | the special motif caontains pads of different size |
167 | |
168 | <pre> |
169 | In lines: |
170 | pad index i (in x) |
171 | pad index j (in y) |
172 | half legth of pad size in x |
173 | half legth of pad size in y |
174 | </pre> |
175 | |
176 | \subsection mapping_s3_sub4 padPosX.dat |
177 | |
178 | Maps pad numbers used in the motifX.dat files to |
179 | the local pad indices (i,j) |
180 | |
181 | <pre> |
182 | In lines: |
183 | Pad number |
184 | pad index i (in x) |
185 | pad index j (in y) |
186 | </pre> |
187 | |
188 | |
91509ec6 |
189 | \subsection mapping_s3_sub5 *.pcb files |
518eb852 |
190 | |
191 | Lines starting with # are comments. |
192 | |
193 | <pre> |
194 | SIZES PadSizeX PadSizeY SizeX SizeY (cm) |
195 | |
196 | MOTIF motifType ix iy |
197 | MOTIF motifType ix iy |
198 | ... |
199 | </pre> |
200 | |
201 | where ix, iy are the local coordinates (in pad unit) of the |
202 | lower-left corner of the motif (0,0 is the lower-left corner |
203 | of the PCB). |
204 | |
205 | PCB *MUST* be described in a rotating way, starting lower-left and |
206 | then counter-clockwise, otherwise the manu-to-motif association |
207 | (fixed in the slat definition files) will be wrong. |
208 | |
209 | Note that for "full" PCBs, the SizeX and SizeY are redundant as they could be |
210 | computed from the motif alone (but that serves as a cross-check that the motif |
211 | pattern given is ok). That's not the case for short or rounded PCB though. |
212 | |
213 | |
91509ec6 |
214 | \subsection mapping_s3_sub6 *.slat files |
518eb852 |
215 | |
216 | A slat is defined by the list of its PCB, described starting |
217 | from the beam and going outward. |
218 | |
219 | One PCB per line, preceded by the keyword PCB |
220 | Other lines not matching this syntax are ignored. |
221 | After the PCB is the list of manu ids for this PCB. |
222 | |
223 | Example : |
224 | |
225 | <pre> |
226 | PCB X 1-3;24-20;42;44;53 |
227 | PCB X 1-14 |
228 | PCB Y 100-90 |
229 | PCB Z 1;2;3;4;5;6;7;12;120 |
230 | </pre> |
231 | |
232 | defines a slat with 4 PCBs : XXYZ |
233 | |
234 | The manu to motif relationship is attached to the fact that we're counting |
235 | counter-clockwise, starting on the lower-left of the PCB. (and the pcb files |
236 | have to follow this convention to defined their motifs, otherwise all |
237 | this won't work). |
238 | |
239 | Note that the definition of the PCBs have to be in files with extension |
240 | .pcb (X.pcb, Y.pcb, Z.pcb) |
241 | |
242 | |
91509ec6 |
243 | \subsection mapping_s3_sub7 DetElemIdToBusPatch.dat |
518eb852 |
244 | |
245 | Lines starting with # are comments. |
246 | |
247 | Contains the detection element identifier with the associated buspatch numbers |
248 | and the corresponding DDL identifier. |
249 | The link between buspatches and DE's is needed on the rawdata level to identify |
250 | the type of quadrant/slat to get the corresponding mapping. |
251 | The DDL id is needed for the rawdata generation only. |
252 | |
253 | To generate this file, the macro MUONGenerateBusPatch.C could be used. |
254 | |
255 | |
062f2b75 |
256 | \subsection mapping_s3_sub8 BusPatchSpecial.dat |
ae649dcb |
257 | |
258 | Lines starting with # are comments. |
259 | |
260 | Contains the list of bus patches which manu readout is |
261 | not in the standard order. The format: |
262 | |
263 | <pre> |
264 | KEYWORD DDLs BusPatches [ManuIDs} |
265 | where KEYWORD = REVERT or EXPLICIT |
266 | </pre> |
267 | |
268 | - For the bus patches following the REVERT keyword, |
269 | the manus are just reordered in a reverted order. |
270 | - For the bus patches following the EXPLICIT keyword, |
271 | the manus filled with a standard procedure (using the DetElemIdToBusPatch.dat |
272 | file) are replaced with the list of manus in this file. |
273 | |
274 | |
062f2b75 |
275 | \subsection mapping_s3_sub9 BusPatchLength.dat |
276 | |
277 | Lines starting with # are comments. |
278 | |
279 | Contains the list of bus patches and their cable length in meters |
280 | |
281 | <pre> |
282 | # DDL 0 |
283 | 1 3 |
284 | 2 3 |
285 | ... |
286 | </pre> |
287 | |
288 | |
289 | \subsection mapping_s3_sub10 crate.dat |
518eb852 |
290 | |
291 | Muon trigger electronics configuration file (decoded in class |
292 | AliMUONTriggerCrateStore) directly copy/paste from the ALICE PRR |
293 | ALICE-EN-2003-010. Gives local board number, name, |
294 | crate name it belongs to, slot number, and internal switches |
295 | (used in the algorithm). |
296 | |
297 | |
8b68068b |
298 | \subsection mapping_s3_sub11 ManuSerialToBin.dat |
299 | |
300 | Lines starting with # are comments. |
301 | |
302 | Contains the manu serial number with their associated bin number, injection and calibration gain. |
303 | |
304 | To compare the bin number with the serial in the CDB database you can run the macro: |
305 | |
306 | <pre> |
307 | AliMpCDB::LoadDDLStore2(); |
308 | .L $ALICE_ROOT/MUON/mapping/macros/MUONCheckManu.C+ |
309 | MUONCheckManu(10, kFALSE); |
310 | </pre> |
311 | |
312 | The function has two parameters, the first is the number of the chamber (zero mean all chambers). |
313 | The macro can create a set of histogramms with the different gain distributions stored into a root file |
314 | (second parameter). |
315 | |
316 | Two files a generated: one with the list of manu per detection element with their associated bin and gain |
317 | value, the other with the bad, strange or unidentified serial number. |
318 | |
319 | |
518eb852 |
320 | \section mapping_s4 Units used |
321 | |
322 | Lengths are in centimeters. |
323 | |
91509ec6 |
324 | This chapter is defined in the READMEmapping.txt file. |
325 | |
518eb852 |
326 | */ |
327 | |