//______________________________________________________________________
AliITSv11::AliITSv11():
fByThick(kTRUE),
- fMajorVersion(IsVersion()),
- fMinorVersion(-1),
fIDMother(0),
- 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),
- fInitGeom((AliITSVersion_t)fMajorVersion,fMinorVersion),
+ fInitGeom(kv11),
fSPDgeom(0),
fSDDgeom(0),
fSSDgeom(0),
AliITSv11::AliITSv11(const char *name, const char *title)
: AliITS("ITS", title),
fByThick(kTRUE),
- fMajorVersion(IsVersion()),
- fMinorVersion(1),
fIDMother(0),
- fInitGeom((AliITSVersion_t)fMajorVersion,fMinorVersion),
+ fInitGeom(kv11),
fSPDgeom(0),
fSDDgeom(0),
fSSDgeom(0),
vALIC->AddNode(vITSS, 1, 0);
//
- const Char_t *cvsDate="$Date: 2013-07-05 15:19:21 +0200 (Fri, 05 Jul 2013) $";
- const Char_t *cvsRevision="$Revision: 63353 $";
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);
}
den = 2.69;
AliMixture(33,"ERGAL$",aA,zZ,den,+9,wW);
AliMedium(33,"ERGAL$",33,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
+
+ // Alcoa (2024) (yet another Aluminium alloy) - 11 sep 14
+ // A,Z from Root TGeoElementTable, W from Web sites
+ zZ[0] = 13.0; aA[0] = 26.9815; // Aluminium
+ zZ[1] = 29.0; aA[1] = 63.546 ; // Copper
+ zZ[2] = 26.0; aA[2] = 55.845 ; // Iron
+ zZ[3] = 25.0; aA[3] = 54.938 ; // Manganese
+ zZ[4] = 12.0; aA[4] = 24.305 ; // Magnesium
+ zZ[5] = 14.0; aA[5] = 28.0855; // Silicon
+ zZ[6] = 30.0; aA[6] = 65.39 ; // Zinc
+ zZ[7] = 24.0; aA[7] = 51.9961; // Chromium
+ zZ[8] = 22.0; aA[8] = 47.867 ; // Titanium
+
+ wW[1] = 0.044000;//Cu - mean value
+ wW[2] = 0.005000;//Fe
+ wW[3] = 0.006000;//Mn - mean value
+ wW[4] = 0.015000;//Mg - mean value
+ wW[5] = 0.005000;//Si
+ wW[6] = 0.002500;//Zn
+ wW[7] = 0.001000;//Cr
+ wW[8] = 0.001500;//Ti
+
+ totFrac = 0;
+ for (Int_t j=1; j<9; j++)
+ totFrac += wW[j];
+ wW[0] = 1. - totFrac;//Al - the remainder
+
+ den = 2.69;
+ AliMixture(32,"ALCOAAL$",aA,zZ,den,+9,wW);
+ AliMedium(32,"ALCOAAL$",32,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;