1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
17 /////////////////////////////////////////////////////////////////////
19 // START ( T-zero) detector version 1 //
23 <img src="gif/AliSTARTv1Class.gif">
28 //////////////////////////////////////////////////////////////////////
30 #include <Riostream.h>
33 #include <TGeometry.h>
34 #include <TLorentzVector.h>
38 #include <TVirtualMC.h>
43 #include "AliSTARThit.h"
44 #include "AliSTARTv1.h"
49 //--------------------------------------------------------------------
50 AliSTARTv1::AliSTARTv1(const char *name, const char *title):
54 // Standart constructor for START Detector version 0
58 // setBufferSize(128000);
60 //-------------------------------------------------------------------------
61 void AliSTARTv1::CreateGeometry()
64 // Create the geometry of START Detector version 0
68 <img src="gif/AliSTARTv0.gif">
73 Int_t *idtmed = fIdtmed->GetArray();
79 Float_t pstartR[18]={0., 360., 5.,
80 -76.5+0.00+69.7, 4.25, 10.,
81 -76.5+6.05+69.7, 4.5, 10.,
82 -76.5+8.05+69.7, 4.5, 10.,
83 -76.5+8.05+69.7, 5.1, 10.,
84 -62.9+0.00+69.7, 5.1, 10.};
86 Float_t pstart[3]={4.3, 12.,6.8};
87 Float_t pinstart[3]={0.,1.6,6.5};
88 Float_t ppmt[3]={0.,1.5,3.5};
90 Float_t preg[3]={0.,0.875,0.005}; //dobavil bogdanov
92 Float_t pdivider[3]={0.,1.2,1.75};
93 Float_t pdiv2[3]={0.,1.2,1.25};
94 Float_t pdiv1[3]={0.6,1.2,0.5};
95 // Float_t ptop[3]={0.,1.3,1.5};
96 Float_t ptop[3]={0.,1.0,1.5};
97 Float_t pbot[3]={0.6,1.2,0.1};
98 Float_t pglass[3]={1.2,1.3,2.};
99 Float_t pcer[3]={0.9,1.1,0.09};
100 Float_t psteel[3]={0.9,1.1,0.01};
101 Float_t ppins[3]={0.6,1.2,0.014};
102 Float_t phole[3]={0.6,1.2,0.015};
103 Float_t pknob[3]={0.5,0.6,0.4};
104 Float_t pknob_vac[3]={0.,0.5,0.4};
105 Float_t pknob_bot[3]={0.,0.6,0.05};
106 Float_t pribber[3] = {0.,1.2,2.413/2.};
107 Float_t presist[3] = {0.,1.2,0.087/2.};
108 Float_t psupport1[3] = {4.51,4.6,4.0};//C kozhuh vnutri
109 Float_t psupport2[3] = {9.4,9.5,4.0};// snaruzhi C
110 Float_t psupport3[3] = {4.51,9.5,0.05};//kryshki C
111 Float_t psupport5[3] = {1.44,1.5,6.5}; // stakanchik dlai feu C
112 Float_t psupport6[3] = {0,1.5,0.05}; //kryshechka stakanchika Al
113 Float_t psupport7[3] = {1.5,1.6,0.6}; //kolechko snaruzhu stakanchika Al
114 // Mother Volume katushka dlia krepezha vokrug truby k Absorbru
115 AliMatrix(idrotm[901], 90., 0., 90., 90., 180., 0.);
125 ppcon[6] = ppcon[3]+1.;
135 ppcon[12] = ppcon[9]+0.1;
140 ppcon[15] = ppcon[12];
145 ppcon[18] = ppcon[15]+7.05;
150 ppcon[21] = ppcon[18];
155 ppcon[24] = ppcon[21]+0.01;
160 ppcon[27] = ppcon[24];
165 ppcon[30] = ppcon[27]+4.5;
170 ppcon[33] = ppcon[30];
175 ppcon[36] = ppcon[33];
180 ppcon[39] = ppcon[33]+0.4;
185 // ppcon[39] = ppcon[36];
189 gMC->Gsvolu("0SUP", "PCON", idtmed[kAir], ppcon,42);
191 gMC->Gspos("0SUP",1,"ALIC",0.,0.,z,idrotm[901],"ONLY");
194 Float_t zdetRight=69.7,zdetLeft=350;
195 //-------------------------------------------------------------------
197 //-------------------------------------------------------------------
200 gMC->Gsvolu("0STR","PCON",idtmed[kAir],pstartR,18);
201 gMC->Gsvolu("0STL","TUBE",idtmed[kAir],pstart,3);
202 gMC->Gspos("0STR",1,"ALIC",0.,0.,-zdetRight-pstart[2],idrotm[901],"ONLY");
203 gMC->Gspos("0STL",1,"ALIC",0.,0.,zdetLeft+pstart[2],0,"ONLY");
206 gMC->Gsvolu("0INS","TUBE",idtmed[kAir],pinstart,3);
207 gMC->Gsvolu("0PMT","TUBE",idtmed[kOpAir],ppmt,3);
208 gMC->Gsvolu("0DIV","TUBE",idtmed[kVac],pdivider,3);
209 gMC->Gsvolu("0SU1","TUBE",idtmed[kC],psupport1,3);//C kozhuh vnutri
210 gMC->Gsvolu("0SU2","TUBE",idtmed[kC],psupport2,3);// snaruzhi C
211 gMC->Gsvolu("0SU3","TUBE",idtmed[kC],psupport3,3);//kryshka perednaiai C
212 gMC->Gsvolu("0SU4","TUBE",idtmed[kC],psupport3,3);//kryshka zadnaiai C
213 // gMC->Gsvolu("0SU5","TUBE",idtmed[kAir],psupport4,3);// dyrki dlia feu v zadnej kryshke Air
214 gMC->Gsvolu("0SU6","TUBE",idtmed[kC],psupport5,3);// stakanchik dlai feu C
215 gMC->Gsvolu("0SU7","TUBE",idtmed[kAl],psupport6,3);//kryshechka stakanchika Al
216 gMC->Gsvolu("0SU8","TUBE",idtmed[kAl],psupport7,3);//kolechko snaruzhu stakanchika Al
218 // first ring: 12 units of Scintillator+PMT+divider
219 Float_t theta = (180 / TMath::Pi()) * TMath::ATan(6.5 / zdetRight);
220 Float_t angle = 2 * TMath::Pi() / 12;
223 for (is=0; is<12; is++)
226 x = 6.5 * TMath::Sin(is * angle);
227 y = 6.5 * TMath::Cos(is * angle);
230 phi[1] = 90 - is * 30;
231 phi[2] = 90 - is * 30;
232 for (Int_t j = 0; j < 3; j++)
233 if (phi[j] < 0) phi[j] += 360;
235 AliMatrix (idrotm[902 + is], 90., phi[0],
238 z=-pstart[2]+pinstart[2]+0.2;
239 gMC->Gspos ("0INS", is + 1, "0STR", x, y, z, idrotm[902 + is], "ONLY");
240 gMC->Gspos ("0INS", is + 13, "0STL", x, y, z, 0, "ONLY");
242 x = 9 * TMath::Sin(angle/2+is * angle);
243 y = 9 * TMath::Cos(angle/2+is * angle);
245 gMC->Gspos ("0INS", is + 25, "0STL", x, y, z, 0, "ONLY");
252 z=-pinstart[2]+ppmt[2]+2.*psupport6[2]+0.1;
253 gMC->Gspos("0PMT",1,"0INS",x,y,z,0,"ONLY");
254 z=z+pdivider[2]+ppmt[2];
255 gMC->Gspos("0DIV",1,"0INS",x,y,z,0,"ONLY");
259 // Entry window (glass)
260 gMC->Gsvolu("0TOP","TUBE",idtmed[kOpGlass],ptop,3); //glass
261 // gMC->Gsvolu("0TOP","TUBE",idtmed[12],ptop,3); //lucite
263 gMC->Gspos("0TOP",1,"0PMT",0,0,z,0,"ONLY");
267 gMC->Gsvolu ("0REG", "TUBE", idtmed[kOpGlass], preg, 3); //photocathode dobavil bogdanov(AliSTARTv2)
268 z = -ppmt[2] + 2 * ptop[2] + preg[2]; //photocathode dobavil bogdanov
269 gMC->Gspos ("0REG", 1, "0PMT", 0, 0, z, 0, "ONLY"); //photocathode dobavil bogdanov(AliSTARTv2)
272 gMC->Gsvolu("0BOT","TUBE",idtmed[kGlass],pbot,3);
274 if(fDebug) printf("%s: Z bottom %f\n",ClassName(),z);
275 gMC->Gspos("0BOT",1,"0PMT",0,0,z,0,"ONLY");
276 // Side cylinder glass
277 gMC->Gsvolu("0OUT","TUBE",idtmed[kGlass],pglass,3);
279 gMC->Gspos("0OUT",1,"0PMT",0,0,z,0,"ONLY");
280 //PMT electrodes support structure
281 gMC->Gsvolu("0CER","TUBE",idtmed[kCer],pcer,3);
282 gMC->Gsvolu("0STE","TUBE",idtmed[kSteel],psteel,3);
283 z=-ppmt[2]+2*ptop[2]+0.3;;
284 for (is=1; is<=15; is++)
286 z=z+psteel[2]+pcer[2];
287 gMC->Gspos("0CER",is,"0PMT",0,0,z,0,"ONLY");
288 z=z+psteel[2]+pcer[2];
289 gMC->Gspos("0STE",is,"0PMT",0,0,z,0,"ONLY");
293 // Knob at the bottom of PMT baloon
295 gMC->Gsvolu("0NB","TUBE",idtmed[6],pknob,3);
296 z=-pdivider[2]+pknob[2];
297 gMC->Gspos("0NB",1,"0DIV",0,0,z,0,"ONLY");
298 gMC->Gsvolu("0KB","TUBE",idtmed[kGlass],pknob_bot,3);
299 z=-pdivider[2]+2*pknob[2]+pknob_bot[2];
300 gMC->Gspos("0KB",1,"0DIV ",0,0,z,0,"ONLY");
301 gMC->Gsvolu("0VAC","TUBE",idtmed[kVac],pknob_vac,3);
302 z=-pdivider[2]+pknob_vac[2];
303 gMC->Gspos("0VAC",1,"0DIV",0,0,z,0,"ONLY");
304 //Steel pins + pin holes
305 gMC->Gsvolu("0PIN","TUBE",idtmed[kSteel],ppins,3);
306 z=-pdivider[2]+ppins[2];
307 gMC->Gspos("0PIN",1,"0DIV",0,0,z,0,"ONLY");
308 gMC->Gsvolu("0HOL","TUBE",idtmed[kBrass],phole,3);
309 z=-pdivider[2]+2*ppins[2]+phole[2];
310 gMC->Gspos("0HOL",1,"0DIV",0,0,z,0,"ONLY");
313 gMC->Gsvolu("0V1","TUBE",idtmed[kCer],pdiv1,3);
314 z=-pdivider[2]+pdiv1[2];
315 gMC->Gspos("0V1",1,"0DIV",0,0,z,0,"ONLY");
317 gMC->Gsvolu("0V2","TUBE",idtmed[kAir],pdiv2,3);
318 z=pdivider[2]-pdiv2[2];
319 gMC->Gspos("0V2",1,"0DIV",0,0,z,0,"ONLY");
320 gMC->Gsvolu("0RS","TUBE",idtmed[kCer],presist,3);
321 z=-pdiv2[2]+presist[2];
322 gMC->Gspos("0RS",1,"0V2",0,0,z,0,"ONLY");
323 gMC->Gsvolu("0RB","TUBE",idtmed[kRibber],pribber,3);
324 z=pdiv2[2]-pribber[2];
325 gMC->Gspos("0RB",1,"0V2",0,0,z,0,"ONLY");
330 z=-pstart[2]+psupport1[2];
331 gMC->Gspos("0SU1",2,"0STL",0,0,z,0,"ONLY"); //C kozhuh snaruzhi
332 gMC->Gspos("0SU2",2,"0STL",0,0,z,0,"ONLY"); //C kozhuh vnutri
333 z=-pstart[2]+psupport3[2];
334 gMC->Gspos("0SU3",2,"0STL",0,0,z,0,"ONLY"); //peredniaia kryshka
335 z=-pstart[2]+2.*psupport1[2];
336 gMC->Gspos("0SU4",2,"0STL",0,0,z,0,"MANY"); //zadnaiai kryshka
338 z=-pstart[2]+psupport1[2]+0.1;
339 gMC->Gspos("0SU1",1,"0STR",0,0,z,0,"ONLY"); //C kozhuh snaruzhi
340 gMC->Gspos("0SU2",1,"0STR",0,0,z,0,"ONLY"); //C kozhuh vnutri
341 z=-pstart[2]+psupport3[2]+0.1;
342 gMC->Gspos("0SU3",1,"0STR",0,0,z,0,"ONLY"); //peredniaia kryshka
343 z=-pstart[2]+2.*psupport1[2]+0.1;
344 gMC->Gspos("0SU4",1,"0STR",0,0,z,0,"MANY"); //zadnaiai kryshka
345 gMC->Gspos("0SU6",1,"0INS",0,0,0,0,"ONLY");//C stakanchik dlia feu
346 z=-pinstart[2]+psupport6[2];
347 gMC->Gspos("0SU7",1,"0INS",0,0,z,0,"ONLY"); //Al kryshechka
349 z=pinstart[2]-psupport7[2];
350 gMC->Gspos("0SU8",1,"0INS",0,0,z,0,"ONLY"); //Al kolechko
357 gMC->Gsvolu("0SC0","TUBE",idtmed[kC],par,3);
359 gMC->Gspos("0SC0",1,"0SUP",0,0,z,0,"ONLY");
364 gMC->Gsvolu("0SC1","TUBE",idtmed[kC],par,3);
366 gMC->Gspos("0SC1",1,"0SUP",0,0,z,0,"ONLY");
371 gMC->Gsvolu("0SC2","TUBE",idtmed[kC],par,3);
373 gMC->Gspos("0SC2",1,"0SUP",0,0,z,0,"ONLY");
382 gMC->Gsvolu("0SC3","CONE",idtmed[kC],parC,5);
384 gMC->Gspos("0SC3",1,"0SUP",0,0,z,0,"ONLY");
389 gMC->Gsvolu("0SC4","TUBE",idtmed[kC],par,3);
391 gMC->Gspos("0SC4",1,"0SUP",0,0,z,0,"ONLY");
395 gMC->Gsvolu("0SA0","TUBE",idtmed[kAl],par,3);
396 gMC->Gspos("0SA0",1,"0SUP",0,0,z,0,"ONLY");
397 //gvozdi dlia skruchivaniia Al i C parts
400 gMC->Gsvolu("0SN1","TUBE",idtmed[kSteel],par,3);
401 gMC->Gspos("0SN1",1,"0SUP",0,0,z,0,"ONLY");
407 gMC->Gsvolu("0SA1","TUBE",idtmed[kAl],par,3);
410 gMC->Gspos("0SA1",1,"0SUP",0,0,z,0,"ONLY");
415 gMC->Gsvolu("0SA2","TUBE",idtmed[kAl],par,3);
417 gMC->Gspos("0SA2",1,"0SUP",0,0,z,0,"ONLY");
419 par[0]=3.16; // eta chast' prikruchena k absorberu
422 gMC->Gsvolu("0SA3","TUBE",idtmed[kAl],par,3);
424 gMC->Gspos("0SA3",1,"0SUP",0,0,z,0,"ONLY");
425 par[0]=3.16; // gvozdi eta chast' prikruchena k absorberu
428 gMC->Gsvolu("0SN2","TUBE",idtmed[kSteel],par,3);
429 gMC->Gspos("0SN2",1,"0SUP",0,0,z,0,"ONLY");
433 //------------------------------------------------------------------------
434 void AliSTARTv1::CreateMaterials()
436 Int_t isxfld = gAlice->Field()->Integ();
437 Float_t sxmgmx = gAlice->Field()->Max();
438 Float_t a,z,d,radl,absl,buf[1];
440 Int_t *idtmed = fIdtmed->GetArray();
444 Float_t aAir[4]={12.0107,14.0067,15.9994,39.948};
445 Float_t zAir[4]={6.,7.,8.,18.};
446 Float_t wAir[4]={0.000124,0.755267,0.231781,0.012827};
447 Float_t dAir = 1.20479E-3;
450 Float_t ascin[2]={1.01,12.01};
451 Float_t zscin[2]={1,6};
452 Float_t wscin[2]={1,1};
453 Float_t denscin=1.03;
454 //Lucite C(CH3)CO2CH3
455 Float_t alucite[3]={1.01,12.01,15.999};
456 Float_t zlucite[3]={1,6,8};
457 Float_t wlucite[3]={8,5,2};
458 Float_t denlucite=1.16;
460 Float_t aglass[2]={28.0855,15.9994};
461 Float_t zglass[2]={14.,8.};
462 Float_t wglass[2]={1.,2.};
464 // Ceramic 97.2% Al2O3 , 2.8% SiO2
465 Float_t acer[2],zcer[2],wcer[2]={0.972,0.028};
466 Float_t aCeramic[2] = { 26.981539,15.9994 };
467 Float_t zCeramic[2] = { 13.,8. };
468 Float_t wCeramic[2] = { 2.,3. };
469 Float_t denscer = 3.6;
471 // Brass 80% Cu, 20% Zn
472 Float_t abrass[2] = {63.546,65.39};
473 Float_t zbrass[2] = {29,30};
474 Float_t wbrass[2] = {0.8,0.2};
475 Float_t denbrass=8.96;
478 Float_t aribber[3] = {12.,1.,32.};
479 Float_t zribber[3] = {6.,1.,16.};
480 Float_t wribber[3] = {6.,12.,1.};
481 Float_t denribber=0.8;
483 Float_t asupport[2] = {12.,1.};
484 Float_t zsupport[2] = {6.,1.};
485 Float_t wsupport[2] = {1.,1.};
486 Float_t densupport=0.1;
488 //*** Definition Of avaible START materials ***
489 AliMaterial(0, "START Steel$", 55.850,26.,7.87,1.76,999);
490 AliMaterial(1, "START Vacuum$", 1.e-16,1.e-16,1.e-16,1.e16,999);
491 AliMixture(2, "START Air$", aAir, zAir, dAir,4,wAir);
492 AliMaterial(10, "CarbonPlastic$", 12.01, 6.0, 2.26, 18.8,999);
493 AliMaterial(11, "Aliminium$", 26.98, 13.0, 2.7, 8.9,999);
495 AliMixture( 3, "Ceramic $",aCeramic, zCeramic, denscer, -2, wCeramic);
496 AliMixture( 4, "PMT glass $",aglass,zglass,dglass,-2,wglass);
498 gMC->Gfmate((*fIdmate)[3], namate, a, z, d, radl, absl, buf, nbuf);
501 gMC->Gfmate((*fIdmate)[4], namate, a, z, d, radl, absl, buf, nbuf);
506 AliMixture( 9, "Ceramic $", acer, zcer, denscer, 2, wcer);
507 AliMixture( 5, "Scintillator$",ascin,zscin,denscin,-2,wscin);
508 AliMixture( 6, "Brass $", abrass, zbrass, denbrass, 2, wbrass);
509 AliMixture( 7, "Ribber $",aribber,zribber,denribber,-3,wribber);
510 AliMixture( 8, "Lucite$",alucite,zlucite,denlucite,-3,wlucite);
511 AliMixture( 9, "Penoplast$",asupport,zsupport,densupport,-2,wsupport);
513 AliMedium(1, "START Air$", 2, 0, isxfld, sxmgmx, 10., .1, 1., .003, .003);
514 AliMedium(2, "Scintillator$", 5, 1, isxfld, sxmgmx, 10., .01, 1., .003, .003);
515 AliMedium(3, "Vacuum$", 1, 0, isxfld, sxmgmx, 10., .01, .1, .003, .003);
516 AliMedium(4, "Ceramic$", 9, 0, isxfld, sxmgmx, 10., .01, .1, .003, .003);
517 AliMedium(6, "Glass$", 4, 1, isxfld, sxmgmx, 10., .01, .1, .003, .003);
518 AliMedium(8, "Steel$", 0, 0, isxfld, sxmgmx, 1., .001, 1., .001, .001);
519 AliMedium(9, "Ribber $", 7, 0, isxfld, sxmgmx, 10., .01, .1, .003, .003);
520 AliMedium(11, "Brass $", 6, 0, isxfld, sxmgmx, 10., .01, .1, .003, .003);
521 AliMedium(12, "Lucite$", 8, 1, isxfld, sxmgmx, 10., .01, 1., .003, .003);
522 AliMedium(13, "CarbonPlastic$", 10, 0, isxfld, sxmgmx, 10., .01, 1., .003, .003);
523 AliMedium(14, "PenoPlast$", 9, 0, isxfld, sxmgmx, 10., .01, 1., .003, .003);
524 AliMedium(15, "Aluminium$", 11, 0, isxfld, sxmgmx, 10., .01, 1., .003, .003);
525 AliMedium(16, "OpticalGlass$", 4, 1, isxfld, sxmgmx, 10., .01, .1, .003, .003);
526 AliMedium(17, "START OpAir$", 2, 0, isxfld, sxmgmx, 10., .1, 1., .003, .003);
529 // Definition Cherenkov parameters
531 const Int_t kNbins=30;
533 Float_t aPckov[kNbins];
534 Float_t aRindexSiO2[kNbins], rindexAir[kNbins], efficAll[kNbins], absorAir[kNbins];
536 Float_t aAbsSiO2[kNbins]={//New values from A.DiMauro 28.10.03 total 31
537 34.4338, 30.5424, 30.2584, 31.4928, 31.7868, 17.8397, 9.3410, 6.4492, 6.1128, 5.8128,
538 5.5589, 5.2877, 5.0162, 4.7999, 4.5734, 4.2135, 3.7471, 2.6033, 1.5223, 0.9658,
539 0.4242, 0.2500, 0.1426, 0.0863, 0.0793, 0.0724, 0.0655, 0.0587, 0.0001, 0.0001};
542 // Float_t aAbsSiO2[kNbins]={30*2000.};
543 for(i=0;i<kNbins;i++)
545 aPckov[i]=(0.1*i+5.5)*1e-9;//Photons energy bins 5.5 eV - 8.5 eV step 0.1 eV
546 aRindexSiO2[i]=1.458; //refractive index for qwarts
553 gMC->SetCerenkov (idtmed[kOpGlass], kNbins, aPckov, aAbsSiO2, efficAll, aRindexSiO2 );
554 gMC->SetCerenkov (idtmed[kOpAir], kNbins , aPckov, absorAir, efficAll,
556 if(fDebug) cout<<ClassName()<<": ++++++++++++++Medium set++++++++++"<<endl;
559 //---------------------------------------------------------------------
560 void AliSTARTv1::DrawDetector()
563 // Draw a shaded view of the Forward multiplicity detector version 0
566 //Set ALIC mother transparent
567 gMC->Gsatt("ALIC","SEEN",0);
569 //Set volumes visible
570 // gMC->Gsatt("0STR","SEEN",0);
571 // gMC->Gsatt("0INS","SEEN",0);
572 // gMC->Gsatt("0PMT","SEEN",1);
573 // gMC->Gsatt("0DIV","SEEN",1);
575 gMC->Gdopt("hide","off");
576 gMC->Gdopt("shad","on");
577 gMC->SetClipBox(".");
578 gMC->SetClipBox("*",0,1000,-1000,1000,-1000,1000);
580 gMC->Gdraw("alic",90,0,0,-35,9.5,.6,0.6);
581 //gMC->Gdraw("alic",0,0,0,10,9.5,.8,0.8); //other side view
582 gMC->Gdhead(1111,"T-Zero detector");
583 gMC->Gdopt("hide","off");
586 //-------------------------------------------------------------------
587 void AliSTARTv1::Init()
589 // Initialises version 0 of the Forward Multiplicity Detector
591 //Int_t *idtmed = gAlice->Idtmed();
593 fIdSens1=gMC->VolId("0REG");
595 AliDebug(1,Form("%s: *** START version 1 initialized ***\n",ClassName()));
599 //-------------------------------------------------------------------
601 void AliSTARTv1::StepManager()
604 // Called for every step in the START Detector
607 static Float_t hits[6];
611 TClonesArray &lhits = *fHits;
613 if(!gMC->IsTrackAlive()) return; // particle has disappeared
615 // If particles is photon then ...
617 if (gMC->TrackPid() == 50000050)
619 id=gMC->CurrentVolID(copy);
622 // Check the sensetive volume
624 if(gMC->IsTrackEntering()) {
625 gMC->CurrentVolOffID(2,copy);
627 gMC->CurrentVolOffID(3,copy1);
630 gMC->TrackPosition(pos);
634 if(pos[2]<0) vol[0]=2;
635 if(pos[2]>=0) vol[0]=1;
637 Float_t etot=gMC->Etot();
639 Int_t iPart= gMC->TrackPid();
640 Int_t partID=gMC->IdFromPDG(iPart);
642 // if (partID!=50) cout<<partID<<endl;
643 Float_t ttime=gMC->TrackTime();
647 if(gMC->IsTrackExiting())
648 new(lhits[fNhits++]) AliSTARThit(fIshunt,gAlice->GetMCApp()->GetCurrentTrackNumber(),vol,hits);
652 //---------------------------------------------------------------------