]>
Commit | Line | Data |
---|---|---|
b6e1e92d | 1 | $Id$ |
2 | ||
3 | ||
4 | The mapping package | |
5 | ==================== | |
6 | ||
7 | See detailed description in ALICE-INT-2003-025. | |
8 | ||
973884d7 | 9 | Units used |
10 | ============ | |
11 | ||
12 | Lengths are in centimeters. | |
13 | ||
b6e1e92d | 14 | Test macros |
15 | ============ | |
16 | cd ../mapping/macro | |
17 | root | |
18 | root [0] .x testMacroName.C | |
19 | - see available macros below | |
20 | ||
21 | A set of test macros be run at once by test_suite.pl scripts: | |
22 | test_suite.pl - run all test macros and compare results with | |
23 | the reference output | |
24 | test_suite_ref.pl - generates reference output | |
25 | !! this script will overwrite the refence output | |
26 | provided with the source; | |
27 | it should be used only by developers | |
28 | ||
29 | Macros included in the test suite: | |
30 | testReadSector.C | |
31 | testReadMotifType.C | |
32 | testGraphics.C | |
33 | testSectorFind.C | |
34 | testPlaneFind.C | |
35 | testPrintLimits.C | |
36 | testExistingPads.C | |
37 | testPadDimensions.C | |
38 | testSectorPadIterators.C | |
39 | testMotifTypeIterators.C | |
40 | testNeighboursPadIterator.C | |
41 | testAnyPadIterators.C | |
42 | testPadsUp.C | |
43 | testPlaneAreaIterator.C | |
44 | ||
45 | Other macros (not included in the test suite): | |
46 | testAllIndices.C | |
47 | testUpdateGlobalIndices.C | |
48 | ||
49 | ||
50 | Data files format | |
5149305f | 51 | ================= |
b6e1e92d | 52 | |
53 | zones.dat: | |
54 | ------------- | |
55 | Describes layout of zones, rows, row segments, subzones, motifs | |
56 | ||
57 | SECTOR_DATA | |
58 | number of zones | |
59 | number of rows | |
60 | direction of constant pad size (X or Y) | |
14b7b896 | 61 | offset in X direction |
62 | offset in Y direction | |
b6e1e92d | 63 | |
64 | ZONE | |
65 | number of zone | |
66 | half legth of pad size in x | |
67 | half legth of pad size in y | |
68 | ||
69 | SUBZONE | |
70 | motif id | |
71 | motif type_id | |
72 | ||
73 | ROW_SEGMENT | |
74 | x offset (in number of pads) | |
75 | y offset (in number of pads) | |
76 | row number | |
77 | nof motifs | |
78 | first motif position Id | |
79 | step to the next motif position Id (+1 or -1) | |
80 | ||
81 | zones_special.dat: | |
82 | ------------------ | |
83 | Describes layout of special row segments (with irregular motifs) | |
84 | ||
85 | SECTOR_SPECIAL_DATA | |
86 | ||
87 | MOTIF | |
88 | zone id | |
89 | motif id | |
90 | motif type_id | |
91 | ||
92 | ROW | |
93 | row number | |
94 | ||
95 | PAD_ROWS | |
96 | number of these pad rows in row | |
97 | ||
98 | PAD_ROW_SEGMENT | |
99 | mumber of pads in the rows segment | |
100 | motif id | |
101 | motif position id | |
102 | ||
103 | motifX.dat | |
104 | ---------- | |
105 | Describes characteristics of the motif type X | |
106 | ||
107 | In lines: | |
108 | Berg number | |
109 | Kapton number | |
110 | Pad number | |
111 | Gassi number | |
112 | ||
113 | motifSpecialX.dat | |
114 | ------------------ | |
115 | Describes characteristics of the special motif with motif Id X; | |
116 | the special motif caontains pads of different size | |
117 | ||
118 | In lines: | |
119 | pad index i (in x) | |
120 | pad index j (in y) | |
121 | half legth of pad size in x | |
122 | half legth of pad size in y | |
123 | ||
124 | padPosX.dat | |
125 | ----------- | |
126 | Maps pad numbers used in the motifX.dat files to | |
127 | the local pad indices (i,j) | |
128 | ||
129 | In lines: | |
130 | Pad number | |
131 | pad index i (in x) | |
132 | pad index j (in y) | |
133 | ||
5149305f | 134 | |
135 | *.pcb files | |
136 | ============ | |
137 | ||
138 | Lines starting with # are comments. | |
139 | ||
973884d7 | 140 | SIZES PadSizeX PadSizeY SizeX SizeY (cm) |
5149305f | 141 | |
142 | MOTIF motifType ix iy | |
143 | MOTIF motifType ix iy | |
144 | ... | |
145 | ||
146 | where ix, iy are the local coordinates (in pad unit) of the | |
147 | lower-left corner of the motif (0,0 is the lower-left corner | |
148 | of the PCB). | |
149 | ||
150 | PCB *MUST* be described in a rotating way, starting lower-left and | |
151 | then counter-clockwise, otherwise the manu-to-motif association | |
152 | (fixed in the slat definition files) will be wrong. | |
153 | ||
154 | Note that for "full" PCBs, the SizeX and SizeY are redundant as they could be | |
155 | computed from the motif alone (but that serves as a cross-check that the motif | |
156 | pattern given is ok). That's not the case for short or rounded PCB though. | |
157 | ||
158 | *.slat files | |
159 | ============= | |
160 | ||
161 | A slat is defined by the list of its PCB, described starting | |
162 | from the beam and going outward. | |
163 | ||
164 | One PCB per line, preceded by the keyword PCB | |
165 | Other lines not matching this syntax are ignored. | |
166 | After the PCB is the list of manu ids for this PCB. | |
167 | ||
168 | Example : | |
169 | ||
170 | PCB X 1-3;24-20;42;44;53 | |
171 | PCB X 1-14 | |
172 | PCB Y 100-90 | |
173 | PCB Z 1;2;3;4;5;6;7;12;120 | |
174 | ||
175 | defines a slat with 4 PCBs : XXYZ | |
176 | ||
177 | The manu to motif relationship is attached to the fact that we're counting | |
178 | counter-clockwise, starting on the lower-left of the PCB. (and the pcb files | |
179 | have to follow this convention to defined their motifs, otherwise all | |
180 | this won't work). | |
181 | ||
182 | Note that the definition of the PCBs have to be in files with extension | |
183 | .pcb (X.pcb, Y.pcb, Z.pcb) | |
184 | ||
185 | ||
59a274b3 | 186 | DetElemIdToBusPatch.dat |
187 | ======================= | |
188 | Lines starting with # are comments. | |
b6e1e92d | 189 | |
59a274b3 | 190 | Contains the detection element identifier with the associated buspatch numbers |
191 | and the corresponding DDL identifier. | |
192 | The link between buspatches and DE's is needed on the rawdata level to identify | |
193 | the type of quadrant/slat to get the corresponding mapping. | |
194 | The DDL id is needed for the rawdata generation only. | |
195 | ||
196 | To generate this file, the macro MUONGenerateBusPatch.C could be used. |