]>
Commit | Line | Data |
---|---|---|
4c039060 | 1 | /************************************************************************** |
2 | * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
3 | * * | |
4 | * Author: The ALICE Off-line Project. * | |
5 | * Contributors are mentioned in the code where appropriate. * | |
6 | * * | |
7 | * Permission to use, copy, modify and distribute this software and its * | |
8 | * documentation strictly for non-commercial purposes is hereby granted * | |
9 | * without fee, provided that the above copyright notice appears in all * | |
10 | * copies and that both the copyright notice and this permission notice * | |
11 | * appear in the supporting documentation. The authors make no claims * | |
12 | * about the suitability of this software for any purpose. It is * | |
13 | * provided "as is" without express or implied warranty. * | |
14 | **************************************************************************/ | |
15 | ||
16 | /* | |
17 | $Log$ | |
937fe4a4 | 18 | Revision 1.9 1999/09/29 09:24:33 fca |
19 | Introduction of the Copyright and cvs Log | |
4c039060 | 20 | |
937fe4a4 | 21 | */ |
fe4da5cc | 22 | /////////////////////////////////////////////////////////////////////////////// |
23 | // // | |
937fe4a4 | 24 | // Time Of Flight FCA // |
fe4da5cc | 25 | // This class contains the basic functions for the Time Of Flight // |
26 | // detector. Functions specific to one particular geometry are // | |
27 | // contained in the derived classes // | |
937fe4a4 | 28 | // |
29 | // VERSIONE WITH 5 SYMMETRIC MODULES ALONG Z AXIS | |
30 | // ============================================== | |
31 | // | |
32 | // VERSION WITH HOLES FOR PHOS AND TRD IN SPACEFRAME WITH HOLES | |
33 | // | |
34 | // Volume sensibile : FPAD | |
35 | // | |
36 | // | |
37 | // | |
38 | // Begin_Html | |
fe4da5cc | 39 | /* |
1439f98e | 40 | <img src="picts/AliTOFClass.gif"> |
fe4da5cc | 41 | */ |
42 | //End_Html | |
937fe4a4 | 43 | // |
44 | // | |
fe4da5cc | 45 | // // |
46 | /////////////////////////////////////////////////////////////////////////////// | |
47 | ||
48 | #include "AliTOF.h" | |
49 | #include <TNode.h> | |
50 | #include <TTUBE.h> | |
51 | #include <TBRIK.h> | |
52 | #include "AliRun.h" | |
fe4da5cc | 53 | #include "AliConst.h" |
3fe3a833 | 54 | #include <stdlib.h> |
fe4da5cc | 55 | |
56 | ClassImp(AliTOF) | |
57 | ||
58 | //_____________________________________________________________________________ | |
59 | AliTOF::AliTOF() | |
60 | { | |
61 | // | |
62 | // Default constructor | |
63 | // | |
64 | fIshunt = 0; | |
65 | } | |
66 | ||
67 | //_____________________________________________________________________________ | |
68 | AliTOF::AliTOF(const char *name, const char *title) | |
69 | : AliDetector(name,title) | |
70 | { | |
71 | // | |
72 | // AliTOF standard constructor | |
73 | // | |
74 | fHits = new TClonesArray("AliTOFhit", 405); | |
75 | // | |
76 | fIshunt = 0; | |
77 | // | |
78 | SetMarkerColor(7); | |
79 | SetMarkerStyle(2); | |
80 | SetMarkerSize(0.4); | |
3fe3a833 | 81 | // |
82 | // Check that FRAME is there otherwise we have no place where to | |
83 | // put TOF | |
84 | AliModule* FRAME=gAlice->GetModule("FRAME"); | |
85 | if(!FRAME) { | |
86 | Error("Ctor","TOF needs FRAME to be present\n"); | |
87 | exit(1); | |
88 | } | |
fe4da5cc | 89 | } |
90 | ||
91 | //_____________________________________________________________________________ | |
92 | void AliTOF::AddHit(Int_t track, Int_t *vol, Float_t *hits) | |
93 | { | |
94 | // | |
95 | // Add a TOF hit | |
96 | // | |
97 | TClonesArray &lhits = *fHits; | |
98 | new(lhits[fNhits++]) AliTOFhit(fIshunt,track,vol,hits); | |
99 | } | |
100 | ||
101 | //_____________________________________________________________________________ | |
102 | void AliTOF::BuildGeometry() | |
103 | { | |
104 | // | |
105 | // Build TOF ROOT geometry for the ALICE event viewver | |
106 | // | |
107 | TNode *Node, *Top; | |
108 | const int kColorTOF = 27; | |
109 | // | |
110 | // Find top TNODE | |
111 | Top=gAlice->GetGeometry()->GetNode("alice"); | |
112 | // | |
113 | // Define rotation matrixes | |
3fe3a833 | 114 | new TRotMatrix("rot501","rot501",90,-20,90,90-20,0,0); |
115 | new TRotMatrix("rot502","rot502",90,-40,90,90-40,0,0); | |
116 | new TRotMatrix("rot503","rot503",90,-60,90,90-60,0,0); | |
117 | new TRotMatrix("rot504","rot504",90,-80,90,90-80,0,0); | |
118 | new TRotMatrix("rot505","rot505",90,-100,90,90-100,0,0); | |
119 | new TRotMatrix("rot506","rot506",90,-120,90,90-120,0,0); | |
120 | new TRotMatrix("rot507","rot507",90,-140,90,90-140,0,0); | |
121 | new TRotMatrix("rot508","rot508",90,-160,90,90-160,0,0); | |
122 | new TRotMatrix("rot509","rot509",90,-180,90,90-180,0,0); | |
123 | new TRotMatrix("rot510","rot510",90,-200,90,90-200,0,0); | |
124 | new TRotMatrix("rot511","rot511",90,-220,90,90-220,0,0); | |
125 | new TRotMatrix("rot512","rot512",90,-240,90,90-240,0,0); | |
126 | new TRotMatrix("rot513","rot513",90,-260,90,90-260,0,0); | |
127 | new TRotMatrix("rot514","rot514",90,-280,90,90-280,0,0); | |
128 | new TRotMatrix("rot515","rot515",90,-300,90,90-300,0,0); | |
129 | new TRotMatrix("rot516","rot516",90,-320,90,90-320,0,0); | |
130 | new TRotMatrix("rot517","rot517",90,-340,90,90-340,0,0); | |
131 | new TRotMatrix("rot518","rot518",90,-360,90,90-360,0,0); | |
fe4da5cc | 132 | // |
151e057e | 133 | // Position the different copies |
3fe3a833 | 134 | const Float_t rtof=(399+370)/2; |
135 | const Int_t ntof=18; | |
937fe4a4 | 136 | const Float_t kPi = TMath::Pi(); |
137 | const Float_t angle=2*kPi/ntof; | |
151e057e | 138 | Float_t ang; |
151e057e | 139 | // |
fe4da5cc | 140 | // Define TOF basic volume |
937fe4a4 | 141 | |
142 | Float_t zlen1 = 152.5; | |
143 | Float_t zlen2 = 147.0; | |
144 | Float_t zlen3 = 117.0; | |
145 | ||
146 | new TBRIK("S_TOF1","TOF box","void",130/2,29/2,zlen1/2); | |
fe4da5cc | 147 | // |
3fe3a833 | 148 | // Position it |
937fe4a4 | 149 | // |
fe4da5cc | 150 | Top->cd(); |
937fe4a4 | 151 | ang=3.5*angle; |
152 | Node = new TNode("FTO001","FTO001","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),299.15,"rot501"); | |
fe4da5cc | 153 | Node->SetLineColor(kColorTOF); |
154 | fNodes->Add(Node); | |
155 | // | |
156 | Top->cd(); | |
937fe4a4 | 157 | Node = new TNode("FTO101","FTO101","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-299.15,"rot501"); |
fe4da5cc | 158 | Node->SetLineColor(kColorTOF); |
159 | fNodes->Add(Node); | |
160 | // | |
937fe4a4 | 161 | Top->cd(); |
162 | ang=2.5*angle; | |
163 | Node = new TNode("FTO002","FTO002","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),299.15,"rot502"); | |
164 | Node->SetLineColor(kColorTOF); | |
165 | fNodes->Add(Node); | |
fe4da5cc | 166 | // |
167 | Top->cd(); | |
937fe4a4 | 168 | Node = new TNode("FTO102","FTO102","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-299.15,"rot502"); |
fe4da5cc | 169 | Node->SetLineColor(kColorTOF); |
170 | fNodes->Add(Node); | |
171 | // | |
172 | Top->cd(); | |
937fe4a4 | 173 | ang=1.5*angle; |
174 | Node = new TNode("FTO003","FTO003","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),299.15,"rot503"); | |
fe4da5cc | 175 | Node->SetLineColor(kColorTOF); |
176 | fNodes->Add(Node); | |
177 | // | |
937fe4a4 | 178 | Top->cd(); |
179 | Node = new TNode("FTO103","FTO103","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-299.15,"rot503"); | |
180 | Node->SetLineColor(kColorTOF); | |
181 | fNodes->Add(Node); | |
151e057e | 182 | // |
fe4da5cc | 183 | Top->cd(); |
3fe3a833 | 184 | ang=0.5*angle; |
937fe4a4 | 185 | Node = new TNode("FTO004","FTO004","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),299.15,"rot504"); |
fe4da5cc | 186 | Node->SetLineColor(kColorTOF); |
151e057e | 187 | fNodes->Add(Node); |
fe4da5cc | 188 | // |
189 | Top->cd(); | |
937fe4a4 | 190 | Node = new TNode("FTO104","FTO104","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-299.15,"rot504"); |
fe4da5cc | 191 | Node->SetLineColor(kColorTOF); |
192 | fNodes->Add(Node); | |
193 | // | |
194 | Top->cd(); | |
3fe3a833 | 195 | ang=-0.5*angle; |
937fe4a4 | 196 | Node = new TNode("FTO005","FTO005","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),299.15,"rot505"); |
fe4da5cc | 197 | Node->SetLineColor(kColorTOF); |
198 | fNodes->Add(Node); | |
199 | // | |
200 | Top->cd(); | |
937fe4a4 | 201 | Node = new TNode("FTO105","FTO105","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-299.15,"rot505"); |
fe4da5cc | 202 | Node->SetLineColor(kColorTOF); |
203 | fNodes->Add(Node); | |
204 | // | |
205 | Top->cd(); | |
3fe3a833 | 206 | ang=-1.5*angle; |
937fe4a4 | 207 | Node = new TNode("FTO006","FTO006","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),299.15,"rot506"); |
fe4da5cc | 208 | Node->SetLineColor(kColorTOF); |
209 | fNodes->Add(Node); | |
210 | // | |
211 | Top->cd(); | |
937fe4a4 | 212 | Node = new TNode("FTO106","FTO106","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-299.15,"rot506"); |
151e057e | 213 | Node->SetLineColor(kColorTOF); |
214 | fNodes->Add(Node); | |
215 | // | |
937fe4a4 | 216 | Top->cd(); |
217 | ang=-2.5*angle; | |
218 | Node = new TNode("FTO007","FTO006","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),299.15,"rot507"); | |
219 | Node->SetLineColor(kColorTOF); | |
220 | fNodes->Add(Node); | |
151e057e | 221 | // |
937fe4a4 | 222 | Top->cd(); |
223 | Node = new TNode("FTO107","FTO106","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-299.15,"rot507"); | |
fe4da5cc | 224 | Node->SetLineColor(kColorTOF); |
225 | fNodes->Add(Node); | |
226 | // | |
227 | Top->cd(); | |
937fe4a4 | 228 | ang=-3.5*angle; |
229 | Node = new TNode("FTO008","FTO006","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),299.15,"rot508"); | |
fe4da5cc | 230 | Node->SetLineColor(kColorTOF); |
231 | fNodes->Add(Node); | |
232 | // | |
937fe4a4 | 233 | Top->cd(); |
234 | Node = new TNode("FTO108","FTO106","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-299.15,"rot508"); | |
235 | Node->SetLineColor(kColorTOF); | |
236 | fNodes->Add(Node); | |
151e057e | 237 | // |
fe4da5cc | 238 | Top->cd(); |
937fe4a4 | 239 | ang=-4.5*angle; |
240 | Node = new TNode("FTO009","FTO006","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),299.15,"rot509"); | |
fe4da5cc | 241 | Node->SetLineColor(kColorTOF); |
242 | fNodes->Add(Node); | |
243 | // | |
244 | Top->cd(); | |
937fe4a4 | 245 | Node = new TNode("FTO109","FTO106","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-299.15,"rot509"); |
fe4da5cc | 246 | Node->SetLineColor(kColorTOF); |
247 | fNodes->Add(Node); | |
248 | // | |
937fe4a4 | 249 | Top->cd(); |
250 | ang=-5.5*angle; | |
251 | Node = new TNode("FTO010","FTO006","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),299.15,"rot510"); | |
252 | Node->SetLineColor(kColorTOF); | |
253 | fNodes->Add(Node); | |
151e057e | 254 | // |
fe4da5cc | 255 | Top->cd(); |
937fe4a4 | 256 | Node = new TNode("FTO110","FTO106","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-299.15,"rot510"); |
fe4da5cc | 257 | Node->SetLineColor(kColorTOF); |
258 | fNodes->Add(Node); | |
259 | // | |
260 | Top->cd(); | |
937fe4a4 | 261 | ang=-6.5*angle; |
262 | Node = new TNode("FTO011","FTO006","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),299.15,"rot511"); | |
fe4da5cc | 263 | Node->SetLineColor(kColorTOF); |
264 | fNodes->Add(Node); | |
265 | // | |
937fe4a4 | 266 | Top->cd(); |
267 | Node = new TNode("FTO111","FTO106","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-299.15,"rot511"); | |
268 | Node->SetLineColor(kColorTOF); | |
269 | fNodes->Add(Node); | |
270 | // | |
271 | Top->cd(); | |
272 | ang=-7.5*angle; | |
273 | Node = new TNode("FTO012","FTO012","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),299.15,"rot512"); | |
274 | Node->SetLineColor(kColorTOF); | |
275 | fNodes->Add(Node); | |
151e057e | 276 | // |
fe4da5cc | 277 | Top->cd(); |
937fe4a4 | 278 | Node = new TNode("FTO112","FTO112","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-299.15,"rot512"); |
279 | Node->SetLineColor(kColorTOF); | |
280 | fNodes->Add(Node); | |
281 | // | |
282 | Top->cd(); | |
283 | ang=-8.5*angle; | |
284 | Node = new TNode("FTO013","FTO013","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),299.15,"rot513"); | |
fe4da5cc | 285 | Node->SetLineColor(kColorTOF); |
286 | fNodes->Add(Node); | |
287 | // | |
288 | Top->cd(); | |
937fe4a4 | 289 | Node = new TNode("FTO113","FTO113","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-299.15,"rot513"); |
fe4da5cc | 290 | Node->SetLineColor(kColorTOF); |
291 | fNodes->Add(Node); | |
292 | // | |
937fe4a4 | 293 | Top->cd(); |
294 | ang=kPI-0.5*angle; | |
295 | Node = new TNode("FTO014","FTO04","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),299.15,"rot514"); | |
296 | Node->SetLineColor(kColorTOF); | |
297 | fNodes->Add(Node); | |
298 | // | |
299 | Top->cd(); | |
300 | Node = new TNode("FTO114","FTO114","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-299.15,"rot514"); | |
301 | Node->SetLineColor(kColorTOF); | |
302 | fNodes->Add(Node); | |
303 | // | |
304 | Top->cd(); | |
305 | ang=kPI-1.5*angle; | |
306 | Node = new TNode("FTO015","FTO015","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),299.15,"rot515"); | |
307 | Node->SetLineColor(kColorTOF); | |
308 | fNodes->Add(Node); | |
309 | // | |
310 | Top->cd(); | |
311 | Node = new TNode("FTO115","FTO115","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-299.15,"rot515"); | |
312 | Node->SetLineColor(kColorTOF); | |
313 | fNodes->Add(Node); | |
151e057e | 314 | // |
fe4da5cc | 315 | Top->cd(); |
3fe3a833 | 316 | ang=kPI-2.5*angle; |
937fe4a4 | 317 | Node = new TNode("FTO016","FTO016","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),299.15,"rot516"); |
318 | Node->SetLineColor(kColorTOF); | |
319 | fNodes->Add(Node); | |
320 | // | |
321 | Top->cd(); | |
322 | Node = new TNode("FTO116","FTO116","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-299.15,"rot516"); | |
323 | Node->SetLineColor(kColorTOF); | |
324 | fNodes->Add(Node); | |
325 | // | |
326 | Top->cd(); | |
327 | ang=kPi-3.5*angle; | |
328 | Node = new TNode("FTO017","FTO017","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),299.15,"rot517"); | |
329 | Node->SetLineColor(kColorTOF); | |
330 | fNodes->Add(Node); | |
331 | // | |
332 | Top->cd(); | |
333 | Node = new TNode("FTO117","FTO117","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-299.15,"rot517"); | |
334 | Node->SetLineColor(kColorTOF); | |
335 | fNodes->Add(Node); | |
336 | // | |
337 | Top->cd(); | |
338 | ang=kPi/2; | |
339 | Node = new TNode("FTO018","FTO018","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),299.15,"rot518"); | |
fe4da5cc | 340 | Node->SetLineColor(kColorTOF); |
341 | fNodes->Add(Node); | |
342 | // | |
343 | Top->cd(); | |
937fe4a4 | 344 | Node = new TNode("FTO118","FTO118","S_TOF1",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-299.15,"rot518"); |
fe4da5cc | 345 | Node->SetLineColor(kColorTOF); |
3fe3a833 | 346 | fNodes->Add(Node); |
347 | // | |
fe4da5cc | 348 | // |
349 | // Define second TOF volume | |
937fe4a4 | 350 | new TBRIK("S_TOF2","TOF box","void",130/2,29/2,zlen2/2); |
fe4da5cc | 351 | // |
352 | // Position the volume | |
937fe4a4 | 353 | // |
354 | Top->cd(); | |
355 | ang=2.5*angle; | |
356 | Node = new TNode("FTO202","FTO202","S_TOF2",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),146.45,"rot502"); | |
357 | Node->SetLineColor(kColorTOF); | |
358 | fNodes->Add(Node); | |
359 | // | |
360 | Top->cd(); | |
361 | Node = new TNode("FTO402","FTO402","S_TOF2",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-146.45,"rot502"); | |
362 | Node->SetLineColor(kColorTOF); | |
363 | fNodes->Add(Node); | |
364 | // | |
365 | Top->cd(); | |
366 | ang=1.5*angle; | |
367 | Node = new TNode("FTO203","FTO203","S_TOF2",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),146.45,"rot503"); | |
368 | Node->SetLineColor(kColorTOF); | |
369 | fNodes->Add(Node); | |
370 | // | |
371 | Top->cd(); | |
372 | Node = new TNode("FTO403","FTO403","S_TOF2",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-146.45,"rot503"); | |
373 | Node->SetLineColor(kColorTOF); | |
374 | fNodes->Add(Node); | |
375 | // | |
376 | Top->cd(); | |
377 | ang=0.5*angle; | |
378 | Node = new TNode("FTO204","FTO204","S_TOF2",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),146.45,"rot504"); | |
379 | Node->SetLineColor(kColorTOF); | |
380 | fNodes->Add(Node); | |
381 | // | |
382 | Top->cd(); | |
383 | Node = new TNode("FTO404","FTO404","S_TOF2",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-146.45,"rot504"); | |
384 | Node->SetLineColor(kColorTOF); | |
385 | fNodes->Add(Node); | |
386 | // | |
387 | Top->cd(); | |
388 | ang=-0.5*angle; | |
389 | Node = new TNode("FTO205","FTO205","S_TOF2",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),146.45,"rot505"); | |
390 | Node->SetLineColor(kColorTOF); | |
391 | fNodes->Add(Node); | |
392 | // | |
393 | Top->cd(); | |
394 | Node = new TNode("FTO405","FTO405","S_TOF2",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-146.45,"rot505"); | |
395 | Node->SetLineColor(kColorTOF); | |
396 | fNodes->Add(Node); | |
397 | // | |
398 | Top->cd(); | |
399 | ang=-1.5*angle; | |
400 | Node = new TNode("FTO206","FTO206","S_TOF2",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),146.45,"rot506"); | |
401 | Node->SetLineColor(kColorTOF); | |
402 | fNodes->Add(Node); | |
403 | // | |
404 | Top->cd(); | |
405 | Node = new TNode("FTO406","FTO406","S_TOF2",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-146.45,"rot506"); | |
406 | Node->SetLineColor(kColorTOF); | |
407 | fNodes->Add(Node); | |
408 | // | |
fe4da5cc | 409 | Top->cd(); |
3fe3a833 | 410 | ang=-2.5*angle; |
937fe4a4 | 411 | Node = new TNode("FTO207","FTO207","S_TOF2",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),146.45,"rot507"); |
fe4da5cc | 412 | Node->SetLineColor(kColorTOF); |
413 | fNodes->Add(Node); | |
414 | // | |
415 | Top->cd(); | |
937fe4a4 | 416 | Node = new TNode("FTO407","FTO407","S_TOF2",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-146.45,"rot507"); |
fe4da5cc | 417 | Node->SetLineColor(kColorTOF); |
418 | fNodes->Add(Node); | |
419 | // | |
151e057e | 420 | // |
fe4da5cc | 421 | Top->cd(); |
3fe3a833 | 422 | ang=-3.5*angle; |
937fe4a4 | 423 | Node = new TNode("FTO208","FTO208","S_TOF2",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),146.45,"rot508"); |
424 | Node->SetLineColor(kColorTOF); | |
425 | fNodes->Add(Node); | |
426 | // | |
427 | Top->cd(); | |
428 | Node = new TNode("FTO408","FTO408","S_TOF2",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-146.45,"rot508"); | |
fe4da5cc | 429 | Node->SetLineColor(kColorTOF); |
430 | fNodes->Add(Node); | |
431 | // | |
432 | Top->cd(); | |
937fe4a4 | 433 | ang=-kPi/2; |
434 | Node = new TNode("FTO209","FTO209","S_TOF2",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),146.45,"rot509"); | |
fe4da5cc | 435 | Node->SetLineColor(kColorTOF); |
436 | fNodes->Add(Node); | |
437 | // | |
937fe4a4 | 438 | Top->cd(); |
439 | Node = new TNode("FTO409","FTO409","S_TOF2",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-146.45,"rot509"); | |
440 | Node->SetLineColor(kColorTOF); | |
441 | fNodes->Add(Node); | |
151e057e | 442 | // |
fe4da5cc | 443 | Top->cd(); |
937fe4a4 | 444 | ang=-kPi/2-angle; |
445 | Node = new TNode("FTO210","FTO210","S_TOF2",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),146.45,"rot510"); | |
fe4da5cc | 446 | Node->SetLineColor(kColorTOF); |
447 | fNodes->Add(Node); | |
448 | // | |
449 | Top->cd(); | |
937fe4a4 | 450 | Node = new TNode("FTO410","FTO410","S_TOF2",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-146.45,"rot510"); |
fe4da5cc | 451 | Node->SetLineColor(kColorTOF); |
452 | fNodes->Add(Node); | |
453 | // | |
937fe4a4 | 454 | Top->cd(); |
455 | ang=-kPi/2-2*angle; | |
456 | Node = new TNode("FTO211","FTO211","S_TOF2",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),146.45,"rot511"); | |
457 | Node->SetLineColor(kColorTOF); | |
458 | fNodes->Add(Node); | |
151e057e | 459 | // |
fe4da5cc | 460 | Top->cd(); |
937fe4a4 | 461 | Node = new TNode("FTO411","FTO411","S_TOF2",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-146.45,"rot511"); |
fe4da5cc | 462 | Node->SetLineColor(kColorTOF); |
463 | fNodes->Add(Node); | |
464 | // | |
465 | Top->cd(); | |
937fe4a4 | 466 | ang=-kPi/2-3*angle; |
467 | Node = new TNode("FTO212","FTO212","S_TOF2",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),146.45,"rot512"); | |
fe4da5cc | 468 | Node->SetLineColor(kColorTOF); |
469 | fNodes->Add(Node); | |
470 | // | |
937fe4a4 | 471 | Top->cd(); |
472 | Node = new TNode("FTO412","FTO412","S_TOF2",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-146.45,"rot512"); | |
473 | Node->SetLineColor(kColorTOF); | |
474 | fNodes->Add(Node); | |
475 | // | |
476 | // | |
477 | Top->cd(); | |
478 | ang=-kPi/2-4*angle; | |
479 | Node = new TNode("FTO213","FTO213","S_TOF2",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),146.45,"rot513"); | |
480 | Node->SetLineColor(kColorTOF); | |
481 | fNodes->Add(Node); | |
482 | // | |
483 | Top->cd(); | |
484 | Node = new TNode("FTO413","FTO413","S_TOF2",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-146.45,"rot513"); | |
485 | Node->SetLineColor(kColorTOF); | |
486 | fNodes->Add(Node); | |
487 | // | |
488 | Top->cd(); | |
489 | ang=kPi-0.5*angle; | |
490 | Node = new TNode("FTO214","FTO214","S_TOF2",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),146.45,"rot514"); | |
491 | Node->SetLineColor(kColorTOF); | |
492 | fNodes->Add(Node); | |
493 | // | |
494 | Top->cd(); | |
495 | Node = new TNode("FTO414","FTO414","S_TOF2",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-146.45,"rot514"); | |
496 | Node->SetLineColor(kColorTOF); | |
497 | fNodes->Add(Node); | |
151e057e | 498 | // |
fe4da5cc | 499 | Top->cd(); |
937fe4a4 | 500 | ang=kPi-1.5*angle; |
501 | Node = new TNode("FTO215","FTO215","S_TOF2",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),146.45,"rot515"); | |
fe4da5cc | 502 | Node->SetLineColor(kColorTOF); |
503 | fNodes->Add(Node); | |
504 | // | |
505 | Top->cd(); | |
937fe4a4 | 506 | Node = new TNode("FTO415","FTO415","S_TOF2",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-146.45,"rot515"); |
fe4da5cc | 507 | Node->SetLineColor(kColorTOF); |
508 | fNodes->Add(Node); | |
509 | // | |
937fe4a4 | 510 | Top->cd(); |
511 | ang=kPi-2.5*angle; | |
512 | Node = new TNode("FTO216","FTO216","S_TOF2",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),146.45,"rot516"); | |
513 | Node->SetLineColor(kColorTOF); | |
514 | fNodes->Add(Node); | |
151e057e | 515 | // |
937fe4a4 | 516 | Top->cd(); |
517 | Node = new TNode("FTO416","FTO416","S_TOF2",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),-146.45,"rot516"); | |
518 | Node->SetLineColor(kColorTOF); | |
519 | fNodes->Add(Node); | |
520 | ||
fe4da5cc | 521 | // Define third TOF volume |
937fe4a4 | 522 | new TBRIK("S_TOF3","TOF box","void",130/2.,29/2,zlen3/2.); |
fe4da5cc | 523 | // |
524 | // Position it | |
937fe4a4 | 525 | // |
fe4da5cc | 526 | Top->cd(); |
937fe4a4 | 527 | ang=2.5*angle; |
528 | Node = new TNode("FTO302","FTO302","S_TOF3",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),0.,"rot502"); | |
529 | Node->SetLineColor(kColorTOF); | |
530 | fNodes->Add(Node); | |
531 | // | |
532 | Top->cd(); | |
533 | ang=1.5*angle; | |
534 | Node = new TNode("FTO303","FTO303","S_TOF3",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),0.,"rot503"); | |
535 | Node->SetLineColor(kColorTOF); | |
536 | fNodes->Add(Node); | |
537 | // | |
538 | Top->cd(); | |
539 | ang=0.5*angle; | |
540 | Node = new TNode("FTO304","FTO304","S_TOF3",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),0.,"rot504"); | |
541 | Node->SetLineColor(kColorTOF); | |
542 | fNodes->Add(Node); | |
543 | // | |
544 | Top->cd(); | |
545 | ang=-0.5*angle; | |
546 | Node = new TNode("FTO305","FTO305","S_TOF3",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),0.,"rot505"); | |
fe4da5cc | 547 | Node->SetLineColor(kColorTOF); |
548 | fNodes->Add(Node); | |
549 | // | |
550 | Top->cd(); | |
937fe4a4 | 551 | ang=-1.5*angle; |
552 | Node = new TNode("FTO306","FTO306","S_TOF3",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),0.,"rot506"); | |
fe4da5cc | 553 | Node->SetLineColor(kColorTOF); |
554 | fNodes->Add(Node); | |
555 | // | |
151e057e | 556 | // |
fe4da5cc | 557 | Top->cd(); |
937fe4a4 | 558 | ang=kPi+1.5*angle; |
559 | Node = new TNode("FTO312","FTO312","S_TOF3",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),0.,"rot512"); | |
fe4da5cc | 560 | Node->SetLineColor(kColorTOF); |
561 | fNodes->Add(Node); | |
562 | // | |
563 | Top->cd(); | |
937fe4a4 | 564 | ang=kPi+0.5*angle; |
565 | Node = new TNode("FTO313","FTO313","S_TOF3",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),0.,"rot513"); | |
fe4da5cc | 566 | Node->SetLineColor(kColorTOF); |
567 | fNodes->Add(Node); | |
568 | // | |
937fe4a4 | 569 | Top->cd(); |
570 | ang=kPi-0.5*angle; | |
571 | Node = new TNode("FTO314","FTO314","S_TOF3",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),0.,"rot514"); | |
572 | Node->SetLineColor(kColorTOF); | |
573 | fNodes->Add(Node); | |
151e057e | 574 | // |
fe4da5cc | 575 | Top->cd(); |
937fe4a4 | 576 | ang=kPi-1.5*angle; |
577 | Node = new TNode("FTO315","FTO315","S_TOF3",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),0.,"rot515"); | |
fe4da5cc | 578 | Node->SetLineColor(kColorTOF); |
579 | fNodes->Add(Node); | |
580 | // | |
581 | Top->cd(); | |
937fe4a4 | 582 | ang=kPi-2.5*angle; |
583 | Node = new TNode("FTO316","FTO316","S_TOF3",rtof*TMath::Cos(ang),rtof*TMath::Sin(ang),0.,"rot516"); | |
fe4da5cc | 584 | Node->SetLineColor(kColorTOF); |
585 | fNodes->Add(Node); | |
937fe4a4 | 586 | |
fe4da5cc | 587 | } |
588 | ||
589 | //_____________________________________________________________________________ | |
590 | void AliTOF::CreateGeometry() | |
591 | { | |
592 | // | |
3fe3a833 | 593 | // Common geometry code |
fe4da5cc | 594 | // |
595 | //Begin_Html | |
596 | /* | |
1439f98e | 597 | <img src="picts/AliTOFv23.gif"> |
fe4da5cc | 598 | */ |
599 | //End_Html | |
600 | // | |
601 | ||
fe4da5cc | 602 | const Double_t kPi=TMath::Pi(); |
603 | const Double_t kDegrad=kPi/180; | |
fe4da5cc | 604 | // |
937fe4a4 | 605 | Float_t xtof, ytof; |
606 | Float_t ztof0; | |
607 | Float_t rmin, rmax, dwall; | |
608 | ||
3fe3a833 | 609 | // barrel iner radius |
937fe4a4 | 610 | rmin = 370.;//cm |
3fe3a833 | 611 | // barrel outer radius |
612 | rmax = rmin+29; | |
937fe4a4 | 613 | |
3fe3a833 | 614 | // frame inbetween TOF modules |
937fe4a4 | 615 | dwall = 4.;//cm |
3fe3a833 | 616 | // Sizes of TOF module with its support etc.. |
937fe4a4 | 617 | xtof = 2.*(rmin*TMath::Tan(10*kDegrad)-dwall/2-.5); |
3fe3a833 | 618 | ytof = rmax-rmin; |
937fe4a4 | 619 | ztof0 = 375.5;//cm |
3fe3a833 | 620 | |
937fe4a4 | 621 | // TOF size (CO2) |
3fe3a833 | 622 | |
937fe4a4 | 623 | Float_t zlen1 = 159.5;//cm |
624 | Float_t zlen2 = 154.0;//cm | |
625 | Float_t zlen3 = 124.0;//cm | |
3fe3a833 | 626 | |
937fe4a4 | 627 | // TOF module internal definitions |
628 | TOFpc(xtof, ytof, zlen1, zlen2, zlen3, ztof0); | |
fe4da5cc | 629 | } |
630 | ||
631 | //_____________________________________________________________________________ | |
8f72dc0c | 632 | void AliTOF::DrawModule() |
fe4da5cc | 633 | { |
634 | // | |
635 | // Draw a shaded view of the common part of the TOF geometry | |
fe4da5cc | 636 | // |
637 | ||
3fe3a833 | 638 | cout << " Drawing of AliTOF"<< endl; |
fe4da5cc | 639 | // Set everything unseen |
cfce8870 | 640 | gMC->Gsatt("*", "seen", -1); |
fe4da5cc | 641 | // |
642 | // Set ALIC mother transparent | |
cfce8870 | 643 | gMC->Gsatt("ALIC","SEEN",0); |
fe4da5cc | 644 | // |
645 | // Set the volumes visible | |
cfce8870 | 646 | gMC->Gsatt("FBAR","SEEN",0); |
647 | gMC->Gsatt("FTO1","SEEN",1); | |
648 | gMC->Gsatt("FTO2","SEEN",1); | |
649 | gMC->Gsatt("FTO3","SEEN",1); | |
3fe3a833 | 650 | gMC->Gsatt("FBT1","SEEN",1); |
651 | gMC->Gsatt("FBT2","SEEN",1); | |
652 | gMC->Gsatt("FBT3","SEEN",1); | |
653 | gMC->Gsatt("FLT1","SEEN",1); | |
654 | gMC->Gsatt("FLT2","SEEN",1); | |
655 | gMC->Gsatt("FLT3","SEEN",1); | |
cfce8870 | 656 | // |
657 | gMC->Gdopt("hide", "on"); | |
658 | gMC->Gdopt("shad", "on"); | |
659 | gMC->Gsatt("*", "fill", 7); | |
660 | gMC->SetClipBox("."); | |
661 | gMC->SetClipBox("*", 0, 1000, -1000, 1000, -1000, 1000); | |
662 | gMC->DefaultRange(); | |
663 | gMC->Gdraw("alic", 40, 30, 0, 12, 9.5, .02, .02); | |
664 | gMC->Gdhead(1111, "Time Of Flight"); | |
665 | gMC->Gdman(18, 4, "MAN"); | |
666 | gMC->Gdopt("hide","off"); | |
fe4da5cc | 667 | } |
668 | ||
669 | //_____________________________________________________________________________ | |
670 | void AliTOF::CreateMaterials() | |
671 | { | |
672 | // | |
673 | // Defines TOF materials for all versions | |
674 | // Authors : Maxim Martemianov, Boris Zagreev (ITEP) 18/09/98 | |
675 | // | |
676 | Int_t ISXFLD = gAlice->Field()->Integ(); | |
677 | Float_t SXMGMX = gAlice->Field()->Max(); | |
678 | // | |
3fe3a833 | 679 | //--- Quartz (SiO2) |
680 | Float_t aq[2] = { 28.0855,15.9994 }; | |
681 | Float_t zq[2] = { 14.,8. }; | |
682 | Float_t wq[2] = { 1.,2. }; | |
683 | Float_t dq = 2.20; | |
684 | Int_t nq = -2; | |
685 | // --- Freon | |
686 | Float_t afre[2] = { 12.011,18.9984032 }; | |
687 | Float_t zfre[2] = { 6.,9. }; | |
688 | Float_t wfre[2] = { 5.,12. }; | |
689 | Float_t densfre = 1.5; | |
690 | Int_t nfre = -2; | |
691 | // --- CO2 | |
fe4da5cc | 692 | Float_t ac[2] = { 12.,16. }; |
693 | Float_t zc[2] = { 6.,8. }; | |
694 | Float_t wc[2] = { 1.,2. }; | |
3fe3a833 | 695 | Float_t dc = .001977; |
696 | Int_t nc = -2; | |
697 | // For mylar (C5H4O2) | |
698 | Float_t amy[3] = { 12., 1., 16. }; | |
699 | Float_t zmy[3] = { 6., 1., 8. }; | |
700 | Float_t wmy[3] = { 5., 4., 2. }; | |
701 | Float_t dmy = 1.39; | |
702 | Int_t nmy = -3; | |
703 | // For polyethilene (CH2) for honeycomb!!!! | |
704 | Float_t ape[2] = { 12., 1. }; | |
705 | Float_t zpe[2] = { 6., 1. }; | |
706 | Float_t wpe[2] = { 1., 2. }; | |
707 | Float_t dpe = 0.935*0.479; //To have 1%X0 for 1cm as for honeycomb | |
708 | Int_t npe = -2; | |
709 | // --- G10 | |
fe4da5cc | 710 | Float_t ag10[4] = { 12.,1.,16.,28. }; |
711 | Float_t zg10[4] = { 6.,1.,8.,14. }; | |
712 | Float_t wmatg10[4] = { .259,.288,.248,.205 }; | |
3fe3a833 | 713 | Float_t densg10 = 1.7; |
714 | Int_t nlmatg10 = -4; | |
715 | // --- DME | |
fe4da5cc | 716 | Float_t adme[5] = { 12.,1.,16.,19.,79. }; |
717 | Float_t zdme[5] = { 6.,1.,8.,9.,35. }; | |
718 | Float_t wmatdme[5] = { .4056,.0961,.2562,.1014,.1407 }; | |
3fe3a833 | 719 | Float_t densdme = .00205; |
720 | Int_t nlmatdme = 5; | |
721 | // ---- ALUMINA (AL203) | |
fe4da5cc | 722 | Float_t aal[2] = { 27.,16. }; |
723 | Float_t zal[2] = { 13.,8. }; | |
724 | Float_t wmatal[2] = { 2.,3. }; | |
3fe3a833 | 725 | Float_t densal = 2.3; |
726 | Int_t nlmatal = -2; | |
727 | // -- Water | |
728 | Float_t awa[2] = { 1., 16. }; | |
729 | Float_t zwa[2] = { 1., 8. }; | |
730 | Float_t wwa[2] = { 2., 1. }; | |
731 | Float_t dwa = 1.0; | |
732 | Int_t nwa = -2; | |
fe4da5cc | 733 | // |
3fe3a833 | 734 | //AliMaterial(0, "Vacuum$", 1e-16, 1e-16, 1e-16, 1e16, 1e16); |
fe4da5cc | 735 | AliMaterial(1, "Air$",14.61,7.3,0.001205,30423.24,67500.); |
3fe3a833 | 736 | AliMaterial(2, "Cu $", 63.54, 29.0, 8.96, 1.43, 14.8); |
737 | AliMaterial(3, "C $", 12.01, 6.0, 2.265,18.8, 74.4); | |
738 | AliMixture(4, "Polyethilene$", ape, zpe, dpe, npe, wpe); | |
fe4da5cc | 739 | AliMixture(5, "G10$", ag10, zg10, densg10, nlmatg10, wmatg10); |
fe4da5cc | 740 | AliMixture(6, "DME ", adme, zdme, densdme, nlmatdme, wmatdme); |
3fe3a833 | 741 | AliMixture(7, "CO2$", ac, zc, dc, nc, wc); |
fe4da5cc | 742 | AliMixture(8, "ALUMINA$", aal, zal, densal, nlmatal, wmatal); |
3fe3a833 | 743 | AliMaterial(9, "Al $", 26.98, 13., 2.7, 8.9, 37.2); |
3fe3a833 | 744 | AliMaterial(10, "C-TRD$", 12.01, 6., 2.265*18.8/69.282*15./100, 18.8, 74.4); // for 15% |
3fe3a833 | 745 | AliMixture(11, "Mylar$", amy, zmy, dmy, nmy, wmy); |
746 | AliMixture(12, "Freon$", afre, zfre, densfre, nfre, wfre); | |
747 | AliMixture(13, "Quartz$", aq, zq, dq, nq, wq); | |
748 | AliMixture(14, "Water$", awa, zwa, dwa, nwa, wwa); | |
749 | ||
750 | Float_t epsil, stmin, deemax, stemax; | |
fe4da5cc | 751 | // Previous data |
752 | // EPSIL = 0.1 ! Tracking precision, | |
753 | // STEMAX = 0.1 ! Maximum displacement for multiple scattering | |
754 | // DEEMAX = 0.1 ! Maximum fractional energy loss, DLS | |
755 | // STMIN = 0.1 | |
756 | // New data from | |
757 | epsil = .001; | |
758 | stemax = -1.; | |
759 | deemax = -.3; | |
760 | stmin = -.8; | |
937fe4a4 | 761 | |
3fe3a833 | 762 | AliMedium(1, "Air$", 1, 0, ISXFLD, SXMGMX, 10., stemax, deemax, epsil, stmin); |
763 | AliMedium(2, "Cu $", 2, 0, ISXFLD, SXMGMX, 10., stemax, deemax, epsil, stmin); | |
764 | AliMedium(3, "C $", 3, 0, ISXFLD, SXMGMX, 10., stemax, deemax, epsil, stmin); | |
765 | AliMedium(4, "Pol$", 4, 0, ISXFLD, SXMGMX, 10., stemax, deemax, epsil, stmin); | |
ad51aeb0 | 766 | AliMedium(5, "G10$", 5, 0, ISXFLD, SXMGMX, 10., stemax, deemax, epsil, stmin); |
767 | AliMedium(6, "DME$", 6, 0, ISXFLD, SXMGMX, 10., stemax, deemax, epsil, stmin); | |
768 | AliMedium(7, "CO2$", 7, 0, ISXFLD, SXMGMX, 10., -.01, -.1, .01, -.01); | |
769 | AliMedium(8, "ALUMINA$", 8, 0, ISXFLD, SXMGMX, 10., stemax, deemax, epsil, stmin); | |
3fe3a833 | 770 | AliMedium(9, "Al Frame$", 9, 0, ISXFLD, SXMGMX, 10, stemax, deemax, epsil, stmin); |
771 | AliMedium(10, "DME-S$", 6, 1, ISXFLD, SXMGMX, 10., stemax, deemax, epsil, stmin); | |
772 | AliMedium(11, "C-TRD$", 10, 0, ISXFLD, SXMGMX, 10., stemax, deemax, epsil, stmin); | |
773 | AliMedium(12, "Myl$", 11, 0, ISXFLD, SXMGMX, 10., stemax, deemax, epsil, stmin); | |
774 | AliMedium(13, "Fre$", 12, 0, ISXFLD, SXMGMX, 10., stemax, deemax, epsil, stmin); | |
775 | AliMedium(14, "Fre-S$", 12, 1, ISXFLD, SXMGMX, 10., stemax, deemax, epsil, stmin); | |
776 | AliMedium(15, "Glass$", 13, 0, ISXFLD, SXMGMX, 10., stemax, deemax, epsil, stmin); | |
777 | AliMedium(16, "Water$", 14, 0, ISXFLD, SXMGMX, 10., stemax, deemax, epsil, stmin); | |
fe4da5cc | 778 | } |
779 | ||
780 | //_____________________________________________________________________________ | |
781 | Int_t AliTOF::DistancetoPrimitive(Int_t , Int_t ) | |
782 | { | |
783 | // | |
784 | // Returns distance from mouse pointer to detector, default version | |
785 | // | |
786 | return 9999; | |
787 | } | |
788 | ||
789 | //_____________________________________________________________________________ | |
790 | void AliTOF::Init() | |
791 | { | |
792 | // | |
793 | // Initialise TOF detector after it has been built | |
794 | // | |
795 | Int_t i; | |
fe4da5cc | 796 | // |
797 | printf("\n"); | |
798 | for(i=0;i<35;i++) printf("*"); | |
799 | printf(" TOF_INIT "); | |
800 | for(i=0;i<35;i++) printf("*"); | |
801 | printf("\n"); | |
3fe3a833 | 802 | cout << "TOF version " << IsVersion() <<" initialized" << endl; |
fe4da5cc | 803 | // |
804 | // Set id of TOF sensitive volume | |
937fe4a4 | 805 | if (IsVersion() !=0) fIdSens=gMC->VolId("FPAD"); |
fe4da5cc | 806 | // |
807 | for(i=0;i<80;i++) printf("*"); | |
808 | printf("\n"); | |
809 | } | |
810 | ||
811 | ||
812 | ClassImp(AliTOFhit) | |
813 | ||
814 | //___________________________________________ | |
815 | AliTOFhit::AliTOFhit(Int_t shunt, Int_t track, Int_t *vol, Float_t *hits): | |
816 | AliHit(shunt, track) | |
817 | { | |
818 | // | |
819 | // Store a TOF hit | |
820 | // | |
821 | Int_t i; | |
822 | for (i=0;i<3;i++) fVolume[i] = vol[i]; | |
823 | // | |
824 | // Position | |
825 | fX=hits[0]; | |
826 | fY=hits[1]; | |
827 | fZ=hits[2]; | |
828 | // | |
829 | // Momentum | |
830 | fPx=hits[3]; | |
831 | fPy=hits[4]; | |
832 | fPz=hits[5]; | |
833 | fPmom=hits[6]; | |
834 | // | |
835 | // Time Of Flight | |
836 | fTof=hits[7]; | |
837 | } | |
937fe4a4 | 838 |