]>
Commit | Line | Data |
---|---|---|
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 | ||
298 | \section mapping_s4 Units used | |
299 | ||
300 | Lengths are in centimeters. | |
301 | ||
91509ec6 | 302 | This chapter is defined in the READMEmapping.txt file. |
303 | ||
518eb852 | 304 | */ |
305 |