]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOSDebug.cxx
Reading muon trigger scalers with the DA of the muon trigger and transfer
[u/mrichter/AliRoot.git] / PHOS / AliPHOSDebug.cxx
index ba2a678079afe9e9fc605746d8c28fa82443b0d5..eeb4c6de49d1453cda4977b57757f521cc9993ee 100644 (file)
 //_________________________________________________________________________
 // Implementation version v1 of PHOS Manager class 
 //---
-// Layout EMC + PPSD has name GPS2:
-// Produces cumulated hits
-//---
 // Layout EMC + CPV  has name IHEP:
 // Produces hits for CPV, cumulated hits
 //---
-// Layout EMC + CPV + PPSD has name GPS:
-// Produces hits for CPV, cumulated hits
-//---
 //*-- Author: Yves Schutz (SUBATECH)
 
 
 // --- ROOT system ---
 
-#include "TBRIK.h"
-#include "TNode.h"
 #include "TRandom.h"
 #include "TTree.h"
 
 #include "AliPHOSv1.h"
 #include "AliPHOSHit.h"
 #include "AliPHOSDigit.h"
-#include "AliPHOSReconstructioner.h"
+#include "AliPHOSReconstructor.h"
 #include "AliRun.h"
 #include "AliConst.h"
-#include "AliMC.h"
 
 ClassImp(AliPHOSv1)
 
@@ -73,9 +64,7 @@ AliPHOSv1::AliPHOSv1(const char *name, const char *title):
 AliPHOSv0(name,title) 
 {
   // ctor : title is used to identify the layout
-  //        GPS2 = 5 modules (EMC + PPSD)
   //        IHEP = 5 modules (EMC + CPV )
-  //        MIXT = 4 modules (EMC + CPV ) and 1 module (EMC + PPSD)
   //
   // We store hits :
   //   - fHits (the "normal" one), which retains the hits associated with
@@ -106,11 +95,10 @@ AliPHOSv0(name,title)
 }
 
 //____________________________________________________________________________
-AliPHOSv1::AliPHOSv1(AliPHOSReconstructioner * Reconstructioner, const char *name, const char *title):
+AliPHOSv1::AliPHOSv1(AliPHOSReconstructor * Reconstructioner, const char *name, const char *title):
   AliPHOSv0(name,title)
 {
   // ctor : title is used to identify the layout
-  //        GPS2 = 5 modules (EMC + PPSD)   
 
   fPinElectronicNoise = 0.010 ;
 
@@ -228,8 +216,13 @@ void AliPHOSv1::Hits2SDigits()
   for (itrack=0; itrack<gAlice->GetNtrack(); itrack++){
         
     //=========== Get the Hits Tree for the Primary track itrack
-    gAlice->ResetHits();    
-    gAlice->TreeH()->GetEvent(itrack);
+    gAlice->ResetHits();
+    if (TreeH() == 0x0)
+     {
+       Error("Hits2SDigits","Can not find TreeH in the folder");
+       return;
+     }
+    TreeH()->GetEvent(itrack);
       
 
     for ( i = 0 ; i < fHits->GetEntries() ; i++ ) {
@@ -435,7 +428,7 @@ void AliPHOSv1::MakeBranch(Option_t* opt, char *file)
 }
 
 //_____________________________________________________________________________
-void AliPHOSv1::Reconstruction(AliPHOSReconstructioner * Reconstructioner)
+void AliPHOSv1::Reconstruction(AliPHOSReconstructor * Reconstructioner)
 { 
   // 1. Reinitializes the existing RecPoint, TrackSegment, and RecParticles Lists and 
   // 2. Creates TreeR with a branch for each list
@@ -512,87 +505,55 @@ void AliPHOSv1::StepManager(void)
   Bool_t         entered = kFALSE ;  
   Int_t          copy     ;
 
-  Int_t tracknumber =  gAlice->CurrentTrack() ; 
-  Int_t primary     =  gAlice->GetPrimary( gAlice->CurrentTrack() ); 
+  Int_t tracknumber =  gAlice->GetCurrentTrackNumber() ; 
+  Int_t primary     =  gAlice->GetPrimary( gAlice->GetCurrentTrackNumber() ); 
   TString name      =  GetGeometry()->GetName() ; 
   Int_t trackpid    =  0  ; 
 
-  if( gMC->IsTrackEntering() ){ // create hit with position and momentum of new particle, 
+  if( TVirtualMC::GetMC()->IsTrackEntering() ){ // create hit with position and momentum of new particle, 
                                 // but may be without energy deposition
 
     // Current position of the hit in the local ref. system
-      gMC -> TrackPosition(pos);
+      TVirtualMC::GetMC() -> TrackPosition(pos);
       Float_t xyzm[3], xyzd[3] ;
       Int_t i;
       for (i=0; i<3; i++) xyzm[i] = pos[i];
-      gMC -> Gmtod (xyzm, xyzd, 1);    // transform coordinate from master to daughter system
+      TVirtualMC::GetMC() -> Gmtod (xyzm, xyzd, 1);    // transform coordinate from master to daughter system
       xyd[0]  = xyzd[0];
       xyd[1]  =-xyzd[1];
       xyd[2]  =-xyzd[2];
 
       
       // Current momentum of the hit's track in the local ref. system
-      gMC -> TrackMomentum(pmom);
+      TVirtualMC::GetMC() -> TrackMomentum(pmom);
       Float_t pm[3], pd[3];
       for (i=0; i<3; i++) pm[i]   = pmom[i];
-      gMC -> Gmtod (pm, pd, 2);        // transform 3-momentum from master to daughter system
+      TVirtualMC::GetMC() -> Gmtod (pm, pd, 2);        // transform 3-momentum from master to daughter system
       pmom[0] = pd[0];
       pmom[1] =-pd[1];
       pmom[2] =-pd[2];
 
-      trackpid = gMC->TrackPid();
+      trackpid = TVirtualMC::GetMC()->TrackPid();
       entered = kTRUE ;      // Mark to create hit even withou energy deposition
 
   }
 
 
-  if ( name == "GPS2" || name == "MIXT" ) {            // ======> CPV is a GPS' PPSD
-
-    if( gMC->CurrentVolID(copy) == gMC->VolId("PPCE") ) // We are inside a gas cell 
-    {
-      gMC->TrackPosition(pos) ;
-      xyze[0] = pos[0] ;
-      xyze[1] = pos[1] ;
-      xyze[2] = pos[2] ;
-      xyze[3] = gMC->Edep() ; 
-
-      if ( (xyze[3] != 0) || entered ) { // there is deposited energy or new particle entering  PPSD
-               gMC->CurrentVolOffID(5, relid[0]) ;  // get the PHOS Module number
-       if ( name == "MIXT" && strcmp(gMC->CurrentVolOffName(5),"PHO1") == 0 ){
-         relid[0] += GetGeometry()->GetNModules() - GetGeometry()->GetNPPSDModules();
-       }
-               gMC->CurrentVolOffID(3, relid[1]) ;  // get the Micromegas Module number 
-      // 1-> GetGeometry()->GetNumberOfModulesPhi() * GetGeometry()->GetNumberOfModulesZ() upper
-      //   > GetGeometry()->GetNumberOfModulesPhi() * GetGeometry()->GetNumberOfModulesZ() lower
-               gMC->CurrentVolOffID(1, relid[2]) ;  // get the row number of the cell
-        gMC->CurrentVolID(relid[3]) ;        // get the column number 
-
-       // get the absolute Id number
-
-               GetGeometry()->RelToAbsNumbering(relid, absid) ; 
-
-       // add current hit to the hit list      
-         AddHit(fIshunt, primary, tracknumber, absid, xyze, trackpid, pmom, xyd);
-
-
-      } // there is deposited energy 
-    } // We are inside the gas of the CPV  
-  } // GPS2 configuration
-
-  if ( name == "IHEP" || name == "MIXT" ) {       // ======> CPV is a IHEP's one
+  if ( name == "IHEP" ) {       // ======> CPV is a IHEP's one
 
     // Yuri Kharlov, 28 September 2000
 
-    if( gMC->CurrentVolID(copy) == gMC->VolId("PCPQ") &&
+    static Int_t idPCPQ = TVirtualMC::GetMC()->VolId("PCPQ");
+    if( TVirtualMC::GetMC()->CurrentVolID(copy) == idPCPQ &&
        entered &&
-       gMC->TrackCharge() != 0) {      
+       TVirtualMC::GetMC()->TrackCharge() != 0) {      
       
       // Digitize the current CPV hit:
 
       // 1. find pad response and
       
       Int_t moduleNumber;
-      gMC->CurrentVolOffID(3,moduleNumber);
+      TVirtualMC::GetMC()->CurrentVolOffID(3,moduleNumber);
       moduleNumber--;
 
 
@@ -656,24 +617,21 @@ void AliPHOSv1::StepManager(void)
   } // end of IHEP configuration
   
 
-  if(gMC->CurrentVolID(copy) == gMC->VolId("PXTL") ) { //  We are inside a PBWO crystal
-    gMC->TrackPosition(pos) ;
+  if(TVirtualMC::GetMC()->CurrentVolID(copy) == TVirtualMC::GetMC()->VolId("PXTL") ) { //  We are inside a PBWO crystal
+    TVirtualMC::GetMC()->TrackPosition(pos) ;
     xyze[0] = pos[0] ;
     xyze[1] = pos[1] ;
     xyze[2] = pos[2] ;
-    xyze[3] = gMC->Edep() ;
+    xyze[3] = TVirtualMC::GetMC()->Edep() ;
 
   
     if ( (xyze[3] != 0) || entered ) {  // Track is inside the crystal and deposits some energy or just entered 
 
-      gMC->CurrentVolOffID(10, relid[0]) ; // get the PHOS module number ;
-
-      if ( name == "MIXT" && strcmp(gMC->CurrentVolOffName(10),"PHO1") == 0 )
-       relid[0] += GetGeometry()->GetNModules() - GetGeometry()->GetNPPSDModules();      
+      TVirtualMC::GetMC()->CurrentVolOffID(10, relid[0]) ; // get the PHOS module number ;
 
       relid[1] = 0   ;                    // means PBW04
-      gMC->CurrentVolOffID(4, relid[2]) ; // get the row number inside the module
-      gMC->CurrentVolOffID(3, relid[3]) ; // get the cell number inside the module
+      TVirtualMC::GetMC()->CurrentVolOffID(4, relid[2]) ; // get the row number inside the module
+      TVirtualMC::GetMC()->CurrentVolOffID(3, relid[3]) ; // get the cell number inside the module
       
       // get the absolute Id number
       GetGeometry()->RelToAbsNumbering(relid, absid) ;