//
//========================================================================
-//========================================================================
-// !!!WARNING!!!
-// This version allows to change the density (!) of the materials
-// the ITS forward services are made of.
-// By default the density is unchanged (enhancement factor = 1)
-// To change it, put the enhancement factor in the AliITSv11 constructor
-// (i.e in Config.C) as the third parameter : for example, to enhance the
-// density by 10% use
-// AliITS *ITS = new AliITSv11("ITS","ITS v11",1.1);
-//
-//========================================================================
-
// $Log$
// Revision 1.1 2011/06/10 14:48:24 masera
//______________________________________________________________________
AliITSv11::AliITSv11():
fByThick(kTRUE),
- fMajorVersion(IsVersion()),
- fMinorVersion(-1),
fIDMother(0),
- fRhoIncrMatBud(1),
- fInitGeom((AliITSVersion_t)fMajorVersion,fMinorVersion),
+ fInitGeom(kv11),
fSPDgeom(0),
fSDDgeom(0),
fSSDgeom(0),
AliITSv11::AliITSv11(const char *title)
: AliITS("ITS", title),
fByThick(kTRUE),
- fMajorVersion(IsVersion()),
- fMinorVersion(1),
fIDMother(0),
- fRhoIncrMatBud(1),
- fInitGeom((AliITSVersion_t)fMajorVersion,fMinorVersion),
+ fInitGeom(kv11),
fSPDgeom(0),
fSDDgeom(0),
fSSDgeom(0),
}
//______________________________________________________________________
-AliITSv11::AliITSv11(const char *name, const char *title, const Float_t rho)
+AliITSv11::AliITSv11(const char *name, const char *title)
: AliITS("ITS", title),
fByThick(kTRUE),
- fMajorVersion(IsVersion()),
- fMinorVersion(1),
fIDMother(0),
- fRhoIncrMatBud(rho),
- fInitGeom((AliITSVersion_t)fMajorVersion,fMinorVersion),
+ fInitGeom(kv11),
fSPDgeom(0),
fSDDgeom(0),
fSSDgeom(0),
// Return:
// none.
Int_t i;
-
- if (rho != 1.)
- AliWarning(Form("Using non-standard forward material enhancement factor %f !",rho));
fSPDgeom = new AliITSv11GeometrySPD();
fSDDgeom = new AliITSv11GeometrySDD(0);
vALIC->AddNode(vITSS, 1, 0);
//
- const Char_t *cvsDate="$Date$";
- const Char_t *cvsRevision="$Revision$";
const Int_t kLength=100;
Char_t vstrng[kLength];
- if(fInitGeom.WriteVersionString(vstrng,kLength,(AliITSVersion_t)IsVersion(),
- fMinorVersion,cvsDate,cvsRevision)) {
+ if(fInitGeom.WriteVersionString(vstrng,kLength,(AliITSVersion_t)IsVersion())){
vITSV->SetTitle(vstrng);
vITSS->SetTitle(vstrng);
}
Float_t arohac[4] = {12.01, 1.01, 14.010, 16.};
Float_t zrohac[4] = { 6., 1., 7., 8.};
Float_t wrohac[4] = { 14., 10., 2., 6.};
- Float_t drohac = 0.052;
+ Float_t drohac = 0.058;
// If he/she means stainless steel (inox) + Aluminium and Zeff=15.3383 then
//
Float_t wNiSn[2] = {0.33, 0.67};
Float_t dNiSn = wNiSn[0]*8.908 + wNiSn[1]*7.310;
+ // SPD cooling capillaries (Phynox)
+ Float_t aPhynox[5] = { 55.8450, 58.9332, 51.9961, 58.6934, 95.94 };
+ Float_t zPhynox[5] = { 26. , 27. , 24. , 28. , 42. };
+ Float_t wPhynox[5] = { 0.17 , 0.40 , 0.20 , 0.16 , 0.07 };
+ Float_t dPhynox = 8.3;
+
AliMaterial(1,"SI$",0.28086E+02,0.14000E+02,0.23300E+01,0.93600E+01,0.99900E+03);
AliMedium(1,"SI$",1,0,ifield,fieldm,tmaxfdSi,stemaxSi,deemaxSi,epsilSi,stminSi);
AliMixture(7,"SDD SI CHIP$",aSICHIP,zSICHIP,dSICHIP,6,wSICHIP);
AliMedium(7,"SDD SI CHIP$",7,0,ifield,fieldm,tmaxfdSi,stemaxSi,deemaxSi,epsilSi,stminSi);
+ AliMixture(8,"PHYNOX$",aPhynox,zPhynox,dPhynox,5,wPhynox);
+ AliMedium(8,"PHYNOX$",8,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
+
AliMixture(9,"SDD C (M55J)$",aCM55J,zCM55J,dCM55J,4,wCM55J);
AliMedium(9,"SDD C (M55J)$",9,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
AliMixture(12, "Water$",aWater,zWater,dWater,2,wWater);
AliMedium(12,"WATER$",12,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
- AliMixture(24, "WaterServ$",aWater,zWater,dWater*fRhoIncrMatBud,2,wWater);
- AliMedium(24,"WATERSERV$",24,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
-
- AliMixture(13,"Freon$",afre,zfre,densfre*fRhoIncrMatBud,-2,wfre);
+ AliMixture(13,"Freon$",afre,zfre,densfre,-2,wfre);
AliMedium(13,"Freon$",13,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
AliMaterial(14,"COPPER$",0.63546E+02,0.29000E+02,0.89600E+01,0.14300E+01,0.99900E+03);
AliMedium(14,"COPPER$",14,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
- AliMaterial(29,"CUSERV$",0.63546E+02,0.29000E+02,0.89600E+01*fRhoIncrMatBud,0.14300E+01,0.99900E+03);
- AliMedium(29,"CUSERV$",29,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
AliMixture(15,"CERAMICS$",acer,zcer,denscer,5,wcer);
AliMedium(15,"CERAMICS$",15,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
AliMixture(37,"ALCU12$",aAlCu12,zAlCu12,dAlCu12,2,wAlCu12);
AliMedium(37,"ALCU12$",37,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
- AliMixture(38,"MEGOLON$",aMegolon,zMegolon,dMegolon*fRhoIncrMatBud,-2,wMegolon);
+ AliMixture(38,"MEGOLON$",aMegolon,zMegolon,dMegolon,-2,wMegolon);
AliMedium(38,"MEGOLON$",38,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
AliMixture(39,"RYTON$",aRyton,zRyton,dRyton,14,wRyton);
AliMixture(43,"SDD X7R weld$",aX7Rweld,zX7Rweld,dX7Rweld,2,wX7Rweld);
AliMedium(43,"SDD X7R weld$",43,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
- AliMixture(44,"PPS$",aPPS,zPPS,dPPS*fRhoIncrMatBud,-3,wPPS);
+ AliMixture(44,"PPS$",aPPS,zPPS,dPPS,-3,wPPS);
AliMedium(44,"PPS$",44,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
- AliMixture(45,"POLYAX$",aPOLYAX,zPOLYAX,dPOLYAX*fRhoIncrMatBud,-4,wPOLYAX);
+ AliMixture(45,"POLYAX$",aPOLYAX,zPOLYAX,dPOLYAX,-4,wPOLYAX);
AliMedium(45,"POLYAX$",45,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
- AliMixture(46,"PBT$",aPBT,zPBT,dPBT*fRhoIncrMatBud,-3,wPBT);
+ AliMixture(46,"PBT$",aPBT,zPBT,dPBT,-3,wPBT);
AliMedium(46,"PBT$",46,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
AliMixture(47,"PVC$",aPVC,zPVC,dPVC,-3,wPVC);
AliMedium(56,"SPD KAPTON(POLYCH2)$",56,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
// Gaseous Freon has same chemical composition but air density at 1.7 atm
- AliMixture(59,"GASEOUS FREON$",afre,zfre,1.7*dAir*fRhoIncrMatBud,-2,wfre);
+ AliMixture(59,"GASEOUS FREON$",afre,zfre,1.7*dAir,-2,wfre);
AliMedium(59,"GASEOUS FREON$",59,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
AliMixture(61,"EPOXY$",aEpoxy,zEpoxy,dEpoxy,-3,wEpoxy);
AliMedium(61,"EPOXY$",61,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
- AliMixture(22,"EPOXYSERV$",aEpoxy,zEpoxy,dEpoxy*fRhoIncrMatBud,-3,wEpoxy);
- AliMedium(22,"EPOXYSERV$",22,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
-
AliMaterial(62,"SILICON$",0.28086E+02,0.14000E+02,0.23300E+01,0.93600E+01,0.99900E+03);
AliMedium(62,"SILICON$",62,0,ifield,fieldm,tmaxfdSi,stemaxSi,deemaxSi,epsilSi,stminSi);
AliMaterial(64,"ALUMINUM$",0.26982E+02,0.13000E+02,0.26989E+01,0.89000E+01,0.99900E+03);
AliMedium(64,"ALUMINUM$",64,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
- AliMaterial(32,"ALSERV$",0.26982E+02,0.13000E+02,0.26989E+01*fRhoIncrMatBud,0.89000E+01,0.99900E+03);
- AliMedium(32,"ALSERV$",32,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
-
AliMixture(65,"INOX$",aINOX,zINOX,dINOX,9,wINOX);
AliMedium(65,"INOX$",65,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
- AliMixture(31,"INOXSERV$",aINOX,zINOX,dINOX*fRhoIncrMatBud,9,wINOX);
- AliMedium(31,"INOXSERV$",31,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
-
AliMixture(66,"NiSn$",aNiSn,zNiSn,dNiSn,2,wNiSn);
AliMedium(66,"NiSn$",66,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
AliMixture(70, "SDDKAPTON (POLYCH2)", aKapton, zKapton, dKapton, 4, wKapton);
AliMedium(70,"SDDKAPTON (POLYCH2)$",70,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
- AliMixture(23, "SDDKAPTONSERV", aKapton, zKapton, dKapton*fRhoIncrMatBud, 4, wKapton);
- AliMedium(23,"SDDKAPTONSERV$",23,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
-
AliMaterial(71,"ITS SANDW A$",0.12011E+02,0.60000E+01,0.2115E+00,0.17479E+03,0.99900E+03);
AliMedium(71,"ITS SANDW A$",71,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
AliMixture(98,"SDD OPTICFIB$",aoptfib,zoptfib,doptfib,-2,woptfib);
AliMedium(98,"SDD OPTICFIB$",98,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
- AliMixture(30,"SDD OPTICFIBSERV$",aoptfib,zoptfib,doptfib*fRhoIncrMatBud,-2,woptfib);
- AliMedium(30,"SDD OPTICFIBSERV$",30,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
-
- AliMixture(95,"SSD FEP$",aFEP,zFEP,dFEP*fRhoIncrMatBud,-2,wFEP);
+ AliMixture(95,"SSD FEP$",aFEP,zFEP,dFEP,-2,wFEP);
AliMedium(95,"SSD FEP$",95,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
// Mean material for low-voltage cables on SPD trays Side A
AliMedium(67,"POLYURETHANE$",67,0,ifield,fieldm,tmaxfd,stemax,
deemax,epsil,stmin);
- den = 1.158910*fRhoIncrMatBud;
- AliMixture(28,"POLYURESERV$",aA,zZ,den,+4,wW);
- AliMedium(28,"POLYURESERV$",28,0,ifield,fieldm,tmaxfd,stemax,
- deemax,epsil,stmin);
-
// POM (Polyoxymethylene = (CH2O)n ) - 02 May 10
zZ[2] = 8.0; aA[2] = 15.9994; // Oxigen
wW[10] = 0.000000;//Ni
wW[11] = 0.000000;//Ca
- den = 1.4200*fRhoIncrMatBud;
+ den = 1.4200;
AliMixture(57,"POLYOXYMETHYLENE$",aA,zZ,den,+3,wW);
AliMedium(57,"POLYOXYMETHYLENE$",57,0,ifield,fieldm,tmaxfd,stemax,
deemax,epsil,stmin);
totFrac += wW[j];
wW[0] = 1. - totFrac;//Al - the remainder
- den = 2.69*fRhoIncrMatBud;
+ den = 2.69;
AliMixture(93,"ANTICORODAL$",aA,zZ,den,+9,wW);
AliMedium(93,"ANTICORODAL$",93,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
// Return:
// none.
- AliDebug(1,Form("Init: Major version %d Minor version %d",fMajorVersion,
- fMinorVersion));
UpdateInternalGeometry();
AliITS::Init();
- fIDMother = gMC->VolId("ITSV"); // ITS Mother Volume ID.
+ fIDMother = TVirtualMC::GetMC()->VolId("ITSV"); // ITS Mother Volume ID.
}
//______________________________________________________________________
// none.
if(!(this->IsActive())) return;
- if(!(gMC->TrackCharge())) return;
+ if(!(TVirtualMC::GetMC()->TrackCharge())) return;
Int_t copy, lay = 0;
- Int_t id = gMC->CurrentVolID(copy);
+ Int_t id = TVirtualMC::GetMC()->CurrentVolID(copy);
Bool_t notSens = kFALSE;
while ((lay<fIdN) && (notSens = id != fIdSens[lay])) ++lay;
if (notSens) return;
- if(gMC->IsTrackExiting()) {
+ if(TVirtualMC::GetMC()->IsTrackExiting()) {
AddTrackReference(gAlice->GetMCApp()->GetCurrentTrackNumber(), AliTrackReference::kITS);
} // if Outer ITS mother Volume
Int_t cpn0, cpn1, mod, status = 0;
//
// Track status
- if(gMC->IsTrackInside()) status += 1;
- if(gMC->IsTrackEntering()) status += 2;
- if(gMC->IsTrackExiting()) status += 4;
- if(gMC->IsTrackOut()) status += 8;
- if(gMC->IsTrackDisappeared()) status += 16;
- if(gMC->IsTrackStop()) status += 32;
- if(gMC->IsTrackAlive()) status += 64;
+ if(TVirtualMC::GetMC()->IsTrackInside()) status += 1;
+ if(TVirtualMC::GetMC()->IsTrackEntering()) status += 2;
+ if(TVirtualMC::GetMC()->IsTrackExiting()) status += 4;
+ if(TVirtualMC::GetMC()->IsTrackOut()) status += 8;
+ if(TVirtualMC::GetMC()->IsTrackDisappeared()) status += 16;
+ if(TVirtualMC::GetMC()->IsTrackStop()) status += 32;
+ if(TVirtualMC::GetMC()->IsTrackAlive()) status += 64;
//
// retrieve the indices with the volume path
//
switch (lay) {
case 0:case 1: // SPD
- gMC->CurrentVolOffID(1,copy); // ladder
- gMC->CurrentVolOffID(3,cpn1); // stave
- gMC->CurrentVolOffID(5,cpn0); // sector
+ TVirtualMC::GetMC()->CurrentVolOffID(1,copy); // ladder
+ TVirtualMC::GetMC()->CurrentVolOffID(3,cpn1); // stave
+ TVirtualMC::GetMC()->CurrentVolOffID(5,cpn0); // sector
break;
case 2:case 3: // SDD
copy = 1;
- gMC->CurrentVolOffID(2,cpn1);
- gMC->CurrentVolOffID(3,cpn0);
+ TVirtualMC::GetMC()->CurrentVolOffID(2,cpn1);
+ TVirtualMC::GetMC()->CurrentVolOffID(3,cpn0);
break;
case 4:case 5: // SSD
copy = 1;
- gMC->CurrentVolOffID(1,cpn1);
- gMC->CurrentVolOffID(2,cpn0);
+ TVirtualMC::GetMC()->CurrentVolOffID(1,cpn1);
+ TVirtualMC::GetMC()->CurrentVolOffID(2,cpn0);
break;
default:
AliError(Form("Invalid value: lay= %d . Not an ITS sensitive volume",lay));
//
hit.SetModule(mod);
hit.SetTrack(gAlice->GetMCApp()->GetCurrentTrackNumber());
- gMC->TrackPosition(position);
- gMC->TrackMomentum(momentum);
+ TVirtualMC::GetMC()->TrackPosition(position);
+ TVirtualMC::GetMC()->TrackMomentum(momentum);
hit.SetPosition(position);
- hit.SetTime(gMC->TrackTime());
+ hit.SetTime(TVirtualMC::GetMC()->TrackTime());
hit.SetMomentum(momentum);
hit.SetStatus(status);
- hit.SetEdep(gMC->Edep());
+ hit.SetEdep(TVirtualMC::GetMC()->Edep());
hit.SetShunt(GetIshunt());
- if(gMC->IsTrackEntering()){
+ if(TVirtualMC::GetMC()->IsTrackEntering()){
hit.SetStartPosition(position);
- hit.SetStartTime(gMC->TrackTime());
+ hit.SetStartTime(TVirtualMC::GetMC()->TrackTime());
hit.SetStartStatus(status);
return; // don't save entering hit.
} // end if IsEntering
new(lhits[fNhits++]) AliITShit(hit); // Use Copy Construtor.
// Save old position... for next hit.
hit.SetStartPosition(position);
- hit.SetStartTime(gMC->TrackTime());
+ hit.SetStartTime(TVirtualMC::GetMC()->TrackTime());
hit.SetStartStatus(status);
return;