]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOSvImpacts.cxx
Update pr task: drathee
[u/mrichter/AliRoot.git] / PHOS / AliPHOSvImpacts.cxx
index 9360fccbfcc9b22ba3e5ec30b9ee098666899e67..a9451d62d0bcbcbd7323cada2e9d835c7c53233e 100644 (file)
@@ -49,6 +49,7 @@
 //#include <TTree.h>
 #include <TClonesArray.h>
 #include <TVirtualMC.h>
+#include <TTree.h>
 
 // --- Standard library ---
 
@@ -58,6 +59,7 @@
 #include "AliPHOSImpact.h"
 #include "AliPHOSvImpacts.h"
 #include "AliRun.h"
+#include "AliLoader.h"
 #include "AliMC.h"
 #include "AliLog.h"
 
@@ -65,9 +67,12 @@ ClassImp(AliPHOSvImpacts)
 
 //____________________________________________________________________________
 AliPHOSvImpacts::AliPHOSvImpacts():
-  fEMCImpacts(0),
-  fCPVImpacts(0),
-  fPPSDImpacts(0)
+  fEMCImpacts(new TList),
+  fCPVImpacts(new TList),
+  fPPSDImpacts(new TList),
+  fNEMCImpacts(),
+  fNCPVImpacts(),
+  fNPPSDImpacts()
 {
   // ctor
 }
@@ -77,7 +82,10 @@ AliPHOSvImpacts::AliPHOSvImpacts(const char *name, const char *title):
   AliPHOSv1(name,title),
   fEMCImpacts(new TList),
   fCPVImpacts(new TList),
-  fPPSDImpacts(0)
+  fPPSDImpacts(0),
+  fNEMCImpacts(),
+  fNCPVImpacts(),
+  fNPPSDImpacts()
 {
   // ctor : title is used to identify the layout
   //
@@ -154,12 +162,14 @@ void AliPHOSvImpacts::AddImpact(const char* det, Int_t shunt, Int_t primary, Int
     nImpacts= fNCPVImpacts[module];
     fNCPVImpacts[module]++ ;
   }
+  else
+    AliFatal(Form("Wrong PHOS configuration: det=%s",det));
 
   new((*impacts)[nImpacts]) AliPHOSImpact(shunt,primary,track,pid,p,xyz) ;
 
   AliDebugClass(1,Form("Module %d %s: ",module,det));
   if (AliLog::GetGlobalDebugLevel()>0)
-    (dynamic_cast<AliPHOSImpact*>((impacts->At(nImpacts))))->Print();
+    (static_cast<AliPHOSImpact*>((impacts->At(nImpacts))))->Print();
 }
 
 //____________________________________________________________________________
@@ -186,12 +196,12 @@ void AliPHOSvImpacts::ResetHits()
 
   Int_t i;
   for (i=0; i<GetGeometry()->GetNModules(); i++) {
-    (dynamic_cast<TClonesArray*>(fEMCImpacts->At(i))) -> Clear();
+    (static_cast<TClonesArray*>(fEMCImpacts->At(i))) -> Clear();
     fNEMCImpacts[i] = 0 ;
   }
 
   for (i=0; i<GetGeometry()->GetNModules(); i++) {
-    (dynamic_cast<TClonesArray*>(fCPVImpacts->At(i))) -> Clear();
+    (static_cast<TClonesArray*>(fCPVImpacts->At(i))) -> Clear();
     fNCPVImpacts[i] = 0 ;
   }
   
@@ -216,11 +226,11 @@ void AliPHOSvImpacts::StepManager(void)
 
   // Add impact to EMC
 
-  static Int_t idPXTL = gMC->VolId("PXTL");
-  if( gMC->CurrentVolID(copy) == idPXTL &&
-      gMC->IsTrackEntering() ) {
-    gMC->TrackMomentum(pmom);
-    gMC->TrackPosition(pos) ;
+  static Int_t idPXTL = TVirtualMC::GetMC()->VolId("PXTL");
+  if( TVirtualMC::GetMC()->CurrentVolID(copy) == idPXTL &&
+      TVirtualMC::GetMC()->IsTrackEntering() ) {
+    TVirtualMC::GetMC()->TrackMomentum(pmom);
+    TVirtualMC::GetMC()->TrackPosition(pos) ;
 
     Int_t i;
     for (i=0; i<3; i++) xyzm[i] = pos[i];
@@ -229,16 +239,16 @@ void AliPHOSvImpacts::StepManager(void)
       xyzm[i] = pos[i] ;
       pm[i]   = pmom[i];
     }
-    gMC -> Gmtod (xyzm, xyzd, 1);    // transform coordinate from master to daughter system
-    gMC -> Gmtod (pm,   pd,   2);    // transform 3-momentum from master to daughter system
+    TVirtualMC::GetMC() -> Gmtod (xyzm, xyzd, 1);    // transform coordinate from master to daughter system
+    TVirtualMC::GetMC() -> Gmtod (pm,   pd,   2);    // transform 3-momentum from master to daughter system
 
     // Select tracks coming to the crystal from up or down sides
     if ((pd[1]<0 && xyzd[1] >  GetGeometry()->GetCrystalSize(1)/2-0.1) ||
        (pd[1]>0 && xyzd[1] < -GetGeometry()->GetCrystalSize(1)/2+0.1)) {
     // Select tracks coming to the crystal from up or down sides
-      Int_t pid = gMC->TrackPid();
+      Int_t pid = TVirtualMC::GetMC()->TrackPid();
       Int_t module;
-      gMC->CurrentVolOffID(10,module);
+      TVirtualMC::GetMC()->CurrentVolOffID(10,module);
       module--;
       AddImpact("EMC ",fIshunt, primary,tracknumber, module, pid, pmom, xyzm);
     }
@@ -246,11 +256,11 @@ void AliPHOSvImpacts::StepManager(void)
 
   // Add impact to CPV
 
-  static Int_t idPCPQ = gMC->VolId("PCPQ");
-  if( gMC->CurrentVolID(copy) == idPCPQ &&
-      gMC->IsTrackEntering() ) {
-    gMC->TrackMomentum(pmom);
-    gMC->TrackPosition(pos) ;
+  static Int_t idPCPQ = TVirtualMC::GetMC()->VolId("PCPQ");
+  if( TVirtualMC::GetMC()->CurrentVolID(copy) == idPCPQ &&
+      TVirtualMC::GetMC()->IsTrackEntering() ) {
+    TVirtualMC::GetMC()->TrackMomentum(pmom);
+    TVirtualMC::GetMC()->TrackPosition(pos) ;
 
     Int_t i;
     for (i=0; i<3; i++) xyzm[i] = pos[i];
@@ -259,9 +269,9 @@ void AliPHOSvImpacts::StepManager(void)
       xyzm[i] = pos[i] ;
       pm[i]   = pmom[i];
     }
-    Int_t pid = gMC->TrackPid();
+    Int_t pid = TVirtualMC::GetMC()->TrackPid();
     Int_t module;
-    gMC->CurrentVolOffID(3,module);
+    TVirtualMC::GetMC()->CurrentVolOffID(3,module);
     module--;
     AddImpact("CPV ",fIshunt, primary,tracknumber, module, pid, pmom, xyzm);
   }