]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/READMEmapping.txt
In case the selected VTrackerData does not offer data at the channel level, we disabl...
[u/mrichter/AliRoot.git] / MUON / READMEmapping.txt
1 // $Id$
2
3 /*! 
4
5 \page README_mapping Mapping
6  
7
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.
13
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
22 $> rm Calib/Mapping/Run0_999999999_v0_s0.root
23 $> rm Calib/DDLStore/Run0_999999999_v0_s0.root
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
51 \section mapping_s1  Graphical User Interface
52   
53 To use the GUI to plot DE segmentation run:
54
55 <pre> 
56 AliMpCDB::LoadDDLStore2();
57 new AliMpDEVisu();
58 </pre>
59
60 or
61
62 <pre>
63 AliMpCDB::LoadDDLStore2();
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
85 A set of tests macros have been written during the development
86 of the mapping classes. To run these macros:
87
88 <pre>
89    cd ../mapping/macro
90    root
91    root [0] .x testMacroName.C    
92 </pre>
93                    
94
95 \section mapping_s3  Data files format
96
97 \subsection mapping_s3_sub1  zones.dat
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
128 \subsection mapping_s3_sub2  zones_special.dat
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
189 \subsection mapping_s3_sub5  *.pcb files
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
214 \subsection mapping_s3_sub6  *.slat files
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   
243 \subsection mapping_s3_sub7  DetElemIdToBusPatch.dat
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
256 \subsection mapping_s3_sub8  BusPatchSpecial.dat
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
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
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
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
320 \section mapping_s4  Units used
321  
322 Lengths are in centimeters.
323  
324 This chapter is defined in the READMEmapping.txt file.
325
326 */
327