Compatibility with ROOT trunk
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveEMCALData.cxx
index eef7b93..ea40eaf 100644 (file)
@@ -19,6 +19,7 @@
 #include <TLorentzVector.h>
 
 #include "AliRunLoader.h"
+#include "AliEMCAL.h"
 #include "AliEMCALLoader.h"
 #include "AliESDVertex.h"
 #include "AliEMCALHit.h"
@@ -41,7 +42,8 @@ class AliEMCAL;
 class AliEMCALGeometry;
 class AliEveEMCALSModule;
 
-
+using std::cout;
+using std::endl;
 ClassImp(AliEveEMCALData)
 
 //______________________________________________________________________________
@@ -356,34 +358,44 @@ void AliEveEMCALData::LoadHitsFromEMCALLoader(AliEMCALLoader* const emcl)
   // Get hit information from EMCAL Loader
   //
 
-  AliEMCALHit* hit;
+       AliEMCALHit* hit;
   
-  //Fill array of hits                                                                        
-  TClonesArray *hits = (TClonesArray*)emcl->Hits();
-
-  //Get hits from the list                                                                    
-  for(Int_t ihit = 0; ihit< hits->GetEntries();ihit++){
-
-    hit = static_cast<AliEMCALHit *>(hits->At(ihit)) ;
+       //Fill array of hits                                                                        
+       TClonesArray *hits = 0;//(TClonesArray*)emcl->Hits();
+       TTree *treeH = emcl->TreeH();   
+       if (treeH) {
+               Int_t nTrack = treeH->GetEntries();  // TreeH has array of hits for every primary
+               TBranch * branchH = treeH->GetBranch("EMCAL");
+               //if(fHits)fHits->Clear();
+               branchH->SetAddress(&hits);
+               for (Int_t iTrack = 0; iTrack < nTrack; iTrack++) {
+                       branchH->GetEntry(iTrack);
+                       
+                       //Get hits from the list                                                                    
+                       for(Int_t ihit = 0; ihit< hits->GetEntries();ihit++){
+
+                               hit = static_cast<AliEMCALHit *>(hits->At(ihit)) ;
     
-    if(hit != 0){
-      if(fDebug>1) cout << "Hit info " << hit->GetId() << " " << hit->GetEnergy() << endl;
-
-      Int_t id = hit->GetId();
-      // These are local coordinates
-      Double_t xl = 0.; Double_t yl = 0.; Double_t zl = 0.;
-      // Get global coordinates
-      Double_t x = hit->X();
-      Double_t y = hit->Y();
-      Double_t z = hit->Z();
-      Double_t amp = hit->GetEnergy();
-      Int_t iSupMod = 0;
-      // Get SM Id
-      GetGeomInfo(id,iSupMod,xl,yl,zl);
-      fSM[iSupMod]->RegisterHit(id,iSupMod,amp,x,y,z);
-    }
-  }
-  
+                               if(hit != 0){
+                                       if(fDebug>1) cout << "Hit info " << hit->GetId() << " " << hit->GetEnergy() << endl;
+
+                                       Int_t id = hit->GetId();
+                                       // These are local coordinates
+                                       Double_t xl = 0.; Double_t yl = 0.; Double_t zl = 0.;
+                                       // Get global coordinates
+                                       Double_t x = hit->X();
+                                       Double_t y = hit->Y();
+                                       Double_t z = hit->Z();
+                                       Double_t amp = hit->GetEnergy();
+                                       Int_t iSupMod = 0;
+                                       // Get SM Id
+                                       GetGeomInfo(id,iSupMod,xl,yl,zl);
+                                       fSM[iSupMod]->RegisterHit(id,iSupMod,amp,x,y,z);
+                               }//hit exists
+                       }//hit loop
+                       hits->Clear();
+               }// track loop
+       }//treeH exists
 }
 
 //______________________________________________________________________________
@@ -402,7 +414,7 @@ void AliEveEMCALData::LoadDigits(TTree *t)
   AliEMCALDigit * dig;
 
   //  Double_t amp   = -1 ;
-  Double_t ampInt   = -1 ;
+  Double_t ampFlo   = -1 ;
   Int_t id      = -1 ;
   Int_t iSupMod =  0 ;
   Double_t x, y, z;
@@ -414,9 +426,9 @@ void AliEveEMCALData::LoadDigits(TTree *t)
       if(dig != 0) {
        id   = dig->GetId() ; //cell (digit) label
        // adc
-       ampInt  = dig->GetAmp(); //amplitude in cell (digit)
+       ampFlo  = dig->GetAmplitude(); //amplitude in cell (digit)
        // GeV
-       //      amp = ampInt*0.0153; // To be modified with correct OCDB conversion     
+       //      amp = ampFlo*0.0153; // To be modified with correct OCDB conversion     
 
        GetGeomInfo(id,iSupMod,x,y,z);
 
@@ -425,7 +437,7 @@ void AliEveEMCALData::LoadDigits(TTree *t)
 // //  fSM[iSupMod]->SaveDigit(dig);
 // //  if(iSupMod<fNsmfull) fSMfull[iSupMod]->RegisterDigit(id,iSupMod,amp,x,y,z);
 // //  if(iSupMod>fNsmfull) fSMhalf[iSupMod-10]->RegisterDigit(id,iSupMod,amp,x,y,z);
-       fSM[iSupMod]->RegisterDigit(id,iSupMod,ampInt,x,y,z);
+       fSM[iSupMod]->RegisterDigit(id,iSupMod,ampFlo,x,y,z);
 //     fSM[iSupMod]->SaveDigit(dig);
 //     if(iSupMod<fNsmfull) fSMfull[iSupMod]->RegisterDigit(id,iSupMod,amp,x,y,z);
 //     if(iSupMod>fNsmfull) fSMhalf[iSupMod-10]->RegisterDigit(id,iSupMod,amp,x,y,z);
@@ -454,7 +466,7 @@ void AliEveEMCALData::LoadDigitsFromEMCALLoader(AliEMCALLoader* const emcl)
   //Get digits from the list  
   
   //  Double_t amp   = -1 ;
-  Double_t ampInt   = -1 ;
+  Double_t ampFlo   = -1 ;
   Int_t id      = -1 ;
   Int_t iSupMod =  0 ;
   Double_t x, y, z;
@@ -464,19 +476,19 @@ void AliEveEMCALData::LoadDigitsFromEMCALLoader(AliEMCALLoader* const emcl)
      dig = static_cast<AliEMCALDigit *>(digits->At(idig)) ;
 
      if(dig != 0){
-       if(fDebug>1) cout << "Digit info " << dig->GetId() << " " << dig->GetAmp() << endl;
+       if(fDebug>1) cout << "Digit info " << dig->GetId() << " " << dig->GetAmplitude() << endl;
        id   = dig->GetId() ; //cell (digit) label
        // adc
-       ampInt  = dig->GetAmp(); //amplitude in cell (digit)
+       ampFlo  = dig->GetAmplitude(); //amplitude in cell (digit)
        // GeV
-       //       amp = ampInt*0.0153.; // To be modified with correct OCDB conversion
+       //       amp = ampFlo*0.0153.; // To be modified with correct OCDB conversion
 
        GetGeomInfo(id,iSupMod,x,y,z);
        
        //       // GeV
        //       fSM[iSupMod]->RegisterDigit(id,iSupMod,amp,x,y,z);
        // adc
-       fSM[iSupMod]->RegisterDigit(id,iSupMod,ampInt,x,y,z);
+       fSM[iSupMod]->RegisterDigit(id,iSupMod,ampFlo,x,y,z);
      }
       else {
        cout << "Digit object empty" << endl;
@@ -503,9 +515,9 @@ void AliEveEMCALData::LoadDigitsFromESD()
     {
       Int_t id   = cells.GetCellNumber(icell);
       // adc
-      Double_t ampInt  = cells.GetAmplitude(icell);
+      Double_t ampFlo  = cells.GetAmplitude(icell);
       // GeV
-      //      Double_t amp = ampInt*0.0153; // To be modified with correct OCDB conversion
+      //      Double_t amp = ampFlo*0.0153; // To be modified with correct OCDB conversion
 
       GetGeomInfo(id,iSupMod,x,y,z);
 
@@ -514,9 +526,9 @@ void AliEveEMCALData::LoadDigitsFromESD()
 //       if(iSupMod<fNsmfull) fSMfull[iSupMod]->RegisterDigit(id,iSupMod,amp,x,y,z);
 //       if(iSupMod>fNsmfull) fSMhalf[iSupMod-10]->RegisterDigit(id,iSupMod,amp,x,y,z);
       // adc
-      fSM[iSupMod]->RegisterDigit(id,iSupMod,ampInt,x,y,z);
-      if(iSupMod<fNsmfull) fSMfull[iSupMod]->RegisterDigit(id,iSupMod,ampInt,x,y,z);
-      if(iSupMod>fNsmfull) fSMhalf[iSupMod-10]->RegisterDigit(id,iSupMod,ampInt,x,y,z);
+      fSM[iSupMod]->RegisterDigit(id,iSupMod,ampFlo,x,y,z);
+      if(iSupMod<fNsmfull) fSMfull[iSupMod]->RegisterDigit(id,iSupMod,ampFlo,x,y,z);
+      if(iSupMod>fNsmfull) fSMhalf[iSupMod-10]->RegisterDigit(id,iSupMod,ampFlo,x,y,z);
 
     } // end loop cells
 }
@@ -548,14 +560,14 @@ void AliEveEMCALData::LoadRecPoints(TTree* const t)
        // GeV
        Double_t amp = (Double_t)rp->GetEnergy();
        // adc
-       Double_t ampInt = amp/0.0153; // To be modified with correct OCDB conversion
+       Double_t ampFlo = amp/0.0153; // To be modified with correct OCDB conversion
        TVector3 lpos;
        rp->GetLocalPosition(lpos);
 
 //     // GeV
 //     fSM[iSupMod]->RegisterCluster(iSupMod,amp,lpos[0],lpos[1],lpos[2]);
         // adc
-       fSM[iSupMod]->RegisterCluster(iSupMod,ampInt,lpos[0],lpos[1],lpos[2]);
+       fSM[iSupMod]->RegisterCluster(iSupMod,ampFlo,lpos[0],lpos[1],lpos[2]);
       }
     }
   }
@@ -590,14 +602,14 @@ void AliEveEMCALData::LoadRecPointsFromEMCALLoader(AliEMCALLoader* const emcl)
        if(fDebug>1) cout << "RecPoint info " << rp->GetAbsId() << " " << rp->GetEnergy() << endl;
        Int_t iSupMod = rp->GetSuperModuleNumber();
        Double_t amp = (Double_t)rp->GetEnergy();
-       Double_t ampInt = amp/0.0153; // To be modified with correct OCDB conversion
+       Double_t ampFlo = amp/0.0153; // To be modified with correct OCDB conversion
        TVector3 lpos;
        rp->GetLocalPosition(lpos);
        
 //        // GeV
 //        fSM[iSupMod]->RegisterCluster(iSupMod,amp,lpos[0],lpos[1],lpos[2]);
        // adc
-       fSM[iSupMod]->RegisterCluster(iSupMod,ampInt,lpos[0],lpos[1],lpos[2]);
+       fSM[iSupMod]->RegisterCluster(iSupMod,ampFlo,lpos[0],lpos[1],lpos[2]);
     }
   }
   
@@ -631,8 +643,6 @@ void AliEveEMCALData::LoadRecPointsFromESD()
   Int_t nclus = caloClusters->GetEntries();
   cout << "nclus: " << nclus << endl; 
   
-  if(!caloClusters) return;
-
   for (Int_t iclus =  0; iclus <  nclus; iclus++) 
     {
       AliESDCaloCluster *clus = (AliESDCaloCluster *) caloClusters->At(iclus) ; 
@@ -642,7 +652,7 @@ void AliEveEMCALData::LoadRecPointsFromESD()
       // adc
       //      Int_t   eneInt = (Int_t)energy*500+0.5;
       Double_t eneInt = energy/0.0153; // To be modified with correct OCDB conversion
-      Double_t disp   = clus->GetClusterDisp() ;
+      Double_t disp   = clus->GetDispersion() ;
       
       clus->GetPosition(pos) ; // Global position
       TVector3 vpos(pos[0],pos[1],pos[2]) ;