]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSv11.cxx
commented define _ClusterTopology_ - to be used only for the special productions
[u/mrichter/AliRoot.git] / ITS / AliITSv11.cxx
index 55fd6eb1e15190b417cad67304bb7af1db15fc33..488a134d57ac20ba5327e371c888cc888fce80ca 100644 (file)
@@ -71,10 +71,8 @@ ClassImp(AliITSv11)
 //______________________________________________________________________
 AliITSv11::AliITSv11():
   fByThick(kTRUE),
-  fMajorVersion(IsVersion()),
-  fMinorVersion(-1),
   fIDMother(0),
-  fInitGeom((AliITSVersion_t)fMajorVersion,fMinorVersion),
+  fInitGeom(kv11),
   fSPDgeom(0),
   fSDDgeom(0),
   fSSDgeom(0),
@@ -93,10 +91,8 @@ AliITSv11::AliITSv11():
 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),
@@ -139,10 +135,8 @@ AliITSv11::AliITSv11(const char *title)
 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),
@@ -613,12 +607,9 @@ void AliITSv11::CreateGeometry()
   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);
   }
@@ -1552,6 +1543,36 @@ void AliITSv11::CreateMaterials()
     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);
 
 }
 
@@ -1566,12 +1587,10 @@ void AliITSv11::Init()
     // 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.
 }
 
 //______________________________________________________________________
@@ -1618,16 +1637,16 @@ void AliITSv11::StepManager()
     //   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
 
@@ -1638,32 +1657,32 @@ void AliITSv11::StepManager()
     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));
@@ -1682,17 +1701,17 @@ void AliITSv11::StepManager()
     //
     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
@@ -1701,7 +1720,7 @@ void AliITSv11::StepManager()
     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;