]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - JETAN/AliJetESDReader.cxx
Test script updated
[u/mrichter/AliRoot.git] / JETAN / AliJetESDReader.cxx
index 547730358ee52fc59096e7a2524858c0ed12e09f..c2247426407f78d69c1d9b6dd2144fd166f9435c 100755 (executable)
 // ESD reader for jet analysis
 // Authors: Mercedes Lopez Noriega (mercedes.lopez.noriega@cern.ch)
 //          Magali Estienne <magali.estienne@subatech.in2p3.fr>
+//
+// **February 2011
+// implemented standard geometry (AliEMCALGeometry) instead of dummy one (AliJetDummyGeo)
+// moved geometry definition in AliJetReader
+// marco.bregant@subatech.in2p3.fr
 //------------------------------------------------------------------------- 
 
 // --- Standard library ---
@@ -25,6 +30,7 @@
 
 // --- ROOT system ---
 #include <TSystem.h>
+#include <TString.h>
 #include <TStopwatch.h>
 #include <TLorentzVector.h>
 #include <TVector3.h>
 #include "AliJetESDReader.h"
 #include "AliJetESDReaderHeader.h"
 #include "AliESDEvent.h"
+#include "AliVEvent.h"
 #include "AliESD.h"
 #include "AliESDtrack.h"
-#include "AliJetDummyGeo.h"
+#include "AliEMCALGeometry.h"
+#include "AliEMCALEMCGeometry.h"
 #include "AliJetESDFillUnitArrayTracks.h"
 #include "AliJetESDFillUnitArrayEMCalDigits.h"
 #include "AliJetHadronCorrectionv1.h"
 #include "AliJetUnitArray.h"
 #include "AliAnalysisTask.h"
+#include "AliOADBContainer.h"
 
+using std::cout;
+using std::endl;
 ClassImp(AliJetESDReader)
 
 AliJetESDReader::AliJetESDReader():
-  AliJetReader(),  
-  fGeom(0),
+  AliJetReader(), 
   fHadCorr(0x0),
   fTpcGrid(0x0),
   fEmcalGrid(0x0),
@@ -294,8 +304,11 @@ void AliJetESDReader::CreateTasks(TChain* tree)
   fDZ = fReaderHeader->GetDZ();
   fTree = tree;
 
-  // Init EMCAL geometry 
-  SetEMCALGeometry();
+  // Init EMCAL geometry, if needed
+   if(fGeom == 0)
+         SetEMCALGeometry();
+       else Info(" SetEMCALGeometry","was already done.. it's called just once !!");
+
   // Init parameters
   InitParameters();
   // Create and init unit array
@@ -393,35 +406,6 @@ Bool_t AliJetESDReader::ExecTasks(Bool_t procid, TRefArray* refArray)
   return kTRUE;
 }
 
-//____________________________________________________________________________
-Bool_t AliJetESDReader::SetEMCALGeometry()
-{
-  // 
-  // Set the EMCal Geometry
-  //
-
-  if (!fTree->GetFile()) 
-    return kFALSE;
-
-  TString geomFile(fTree->GetFile()->GetName());
-  geomFile.ReplaceAll("AliESDs", "geometry");
-  
-  // temporary workaround for PROOF bug #18505
-  geomFile.ReplaceAll("#geometry.root#geometry.root", "#geometry.root");
-  if(fDebug>1) printf("Current geometry file %s \n", geomFile.Data());
-
-  // Define EMCAL geometry to be able to read ESDs
-  fGeom = AliJetDummyGeo::GetInstance();
-  if (fGeom == 0)
-    fGeom = AliJetDummyGeo::GetInstance("EMCAL_COMPLETE","EMCAL");
-  
-  // To be setted to run some AliEMCALGeometry functions
-  TGeoManager::Import(geomFile);
-  fGeom->GetTransformationForSM();  
-  printf("\n EMCal Geometry set ! \n");
-  
-  return kTRUE;
-}
 
 //____________________________________________________________________________  
 void AliJetESDReader::InitParameters()
@@ -434,7 +418,7 @@ void AliJetESDReader::InitParameters()
       fECorrection    = 0;        // For electron correction
     else fECorrection = 1;        // For electron correction
   }
-  fNumUnits       = fGeom->GetNCells();      // Number of cells in EMCAL
+  fNumUnits       = fGeom->GetEMCGeometry()->GetNCells();      // Number of cells in EMCAL
   if(fDebug>1) printf("\n EMCal parameters initiated ! \n");
 }
 
@@ -473,31 +457,31 @@ void AliJetESDReader::InitUnitArray()
          // Define a grid of cell for the gaps between SM
          Double_t phimin0 = 0., phimin1 = 0., phimin2 = 0., phimin3 = 0., phimin4 = 0.;
          Double_t phimax0 = 0., phimax1 = 0., phimax2 = 0., phimax3 = 0., phimax4 = 0.;
-         fGeom->GetPhiBoundariesOfSMGap(0,phimin0,phimax0);
+         fGeom->GetEMCGeometry()->GetPhiBoundariesOfSMGap(0,phimin0,phimax0);
          fGrid0 = new AliJetGrid(0,95,phimin0,phimax0,-0.7,0.7); // 0.015 x 0.015
          fGrid0->SetGridType(0);
          fGrid0->SetMatrixIndexes();
          fGrid0->SetIndexIJ();
          n0 = fGrid0->GetNEntries();
-         fGeom->GetPhiBoundariesOfSMGap(1,phimin1,phimax1);
+         fGeom->GetEMCGeometry()->GetPhiBoundariesOfSMGap(1,phimin1,phimax1);
          fGrid1 = new AliJetGrid(0,95,phimin1,phimax1,-0.7,0.7); // 0.015 x 0.015
          fGrid1->SetGridType(0);
          fGrid1->SetMatrixIndexes();
          fGrid1->SetIndexIJ();
          n1 = fGrid1->GetNEntries();
-         fGeom->GetPhiBoundariesOfSMGap(2,phimin2,phimax2);
+         fGeom->GetEMCGeometry()->GetPhiBoundariesOfSMGap(2,phimin2,phimax2);
          fGrid2 = new AliJetGrid(0,95,phimin2,phimax2,-0.7,0.7); // 0.015 x 0.015
          fGrid2->SetGridType(0);
          fGrid2->SetMatrixIndexes();
          fGrid2->SetIndexIJ();
          n2 = fGrid2->GetNEntries();
-         fGeom->GetPhiBoundariesOfSMGap(3,phimin3,phimax3);
+         fGeom->GetEMCGeometry()->GetPhiBoundariesOfSMGap(3,phimin3,phimax3);
          fGrid3 = new AliJetGrid(0,95,phimin3,phimax3,-0.7,0.7); // 0.015 x 0.015
          fGrid3->SetGridType(0);  
          fGrid3->SetMatrixIndexes();
          fGrid3->SetIndexIJ();
          n3 = fGrid3->GetNEntries();
-         fGeom->GetPhiBoundariesOfSMGap(4,phimin4,phimax4);
+         fGeom->GetEMCGeometry()->GetPhiBoundariesOfSMGap(4,phimin4,phimax4);
          fGrid4 = new AliJetGrid(0,95,phimin4,phimax4,-0.7,0.7); // 0.015 x 0.015
          fGrid4->SetGridType(0);
          fGrid4->SetMatrixIndexes();