ROOT logo
#ifndef ALIANACALOTRACKCORRBASECLASS_H
#define ALIANACALOTRACKCORRBASECLASS_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice     */

//_________________________________________________________________________
// Base class for CaloTrackCorr analysis algorithms
//-- Author: Gustavo Conesa (INFN-LNF, LPSC-Grenoble)
//-- Add the possibility for event selection analysis based on 
//   vertex and multiplicity bins (Yaxian Mao, 10/10/2010)
//
//_________________________________________________________________________

#include <cstdlib>

//ROOT
#include <TList.h> 
#include <TObject.h>
class TClonesArray ;
class TObjArray ;
class TObjString;

//Analysis
#include "AliCaloTrackReader.h"   
#include "AliCaloPID.h"
#include "AliFiducialCut.h"
#include "AliIsolationCut.h"
#include "AliMCAnalysisUtils.h"
#include "AliNeutralMesonSelection.h"
#include "AliCalorimeterUtils.h" 
#include "AliHistogramRanges.h"
#include "AliAODPWG4ParticleCorrelation.h"
#include "AliMixedEvent.h" 
class AliVCaloCells;
class AliStack ; 
class AliHeader ; 
class AliGenEventHeader ; 
class AliEMCALGeometry;
class AliPHOSGeoUtils;
class AliCentrality;
class AliEventplane;
#include "AliAnalysisManager.h"
#include "AliLog.h"

//jets
class AliAODJetEventBackground;

class AliAnaCaloTrackCorrBaseClass : public TObject {
	
public:   
  AliAnaCaloTrackCorrBaseClass() ;          // default ctor
  virtual ~AliAnaCaloTrackCorrBaseClass() ; // virtual dtor
  
  //General methods, to be declared in deriving classes if needed
  
  virtual TList *        GetCreateOutputObjects()               { return (new TList)          ; }
  
  virtual void           Init()                                 { ; }
  virtual void           InitDebug()      ;
  virtual void           InitParameters() ;
  
  virtual void           FillEventMixPool()                     { ; }

  virtual void           MakeAnalysisFillAOD()                  { ; }
  
  virtual void           MakeAnalysisFillHistograms()           { ; }  
    
  virtual void           Print(const Option_t * ) const ;
  
  virtual void           Terminate(TList * /*outputList*/)      { ; }

  //Histograms, cuts 
	
  virtual void           AddToHistogramsName(TString add)       { fAddToHistogramsName = add  ; }
  virtual TString        GetAddedHistogramsStringToName() const { return fAddToHistogramsName ; }
  
  virtual TObjString *   GetAnalysisCuts()                      { return 0x0                  ; }
  virtual TString	       GetBaseParametersList();
  
  //Getters, setters
  virtual Int_t          GetDebug()                       const { return fDebug               ; }
  virtual void           SetDebug(Int_t d)                      { fDebug = d                  ; }
  
  virtual Int_t          GetEventNumber() const ;
  
  // Track multiplicity
  virtual Int_t GetTrackMultiplicity()                     const { return fReader->GetTrackMultiplicity() ; }
  
  //Centrality
  virtual AliCentrality* GetCentrality()                   const { return fReader->GetCentrality()       ; }
  virtual Int_t          GetEventCentrality()              const { if(fUseTrackMultBins)
                                                                        return GetTrackMultiplicity();
                                                                   else return fReader->GetEventCentrality(); }
  
  //Event plane
  virtual AliEventplane* GetEventPlane()                   const { return fReader->GetEventPlane()       ; }           
  virtual Double_t       GetEventPlaneAngle()              const { return fReader->GetEventPlaneAngle()  ; }           
  virtual TString        GetEventPlaneMethod()             const { return fReader->GetEventPlaneMethod() ; }
  
  //AOD branch
  virtual void           AddAODParticle(AliAODPWG4Particle part) ;
  
  virtual void           ConnectInputOutputAODBranches();
  
  virtual TClonesArray * GetCreateOutputAODBranch() ;
  
  virtual TString        GetInputAODName()                 const { return fInputAODName  ; }
  virtual void           SetInputAODName(TString name)           { fInputAODName = name  ; }
  
  virtual TString        GetOutputAODName()                const { return fOutputAODName ; }
  virtual void           SetOutputAODName(TString name)          { fNewAOD = kTRUE ; fOutputAODName = name; }
  
  virtual Bool_t         NewOutputAOD()                    const { return fNewAOD        ; }
  
  virtual TString        GetOutputAODClassName()           const { return fOutputAODClassName ; }
  virtual void           SetOutputAODClassName(TString name)     { fOutputAODClassName = name ; }
  
  virtual TString        GetAODObjArrayName()              const { return fAODObjArrayName ; }
  virtual void           SetAODObjArrayName(TString name)        { fAODObjArrayName = name ; }
  
  virtual TClonesArray * GetInputAODBranch()               const { return fInputAODBranch  ; }
  virtual TClonesArray * GetOutputAODBranch()              const { if(fNewAOD) return fOutputAODBranch; else return fInputAODBranch ; }
  virtual TClonesArray * GetAODBranch(const TString & aodBranchName) const ;
	
  //Track cluster arrays access methods
  virtual TClonesArray*  GetAODCaloClusters()              const ; // Output AOD clusters, not used?
  virtual TClonesArray*  GetAODTracks()                    const ; // Output AOD tracks,   not used?
  virtual AliVCaloCells* GetPHOSCells()                    const { return fReader->GetPHOSCells()  ; }
  virtual AliVCaloCells* GetEMCALCells()                   const { return fReader->GetEMCALCells() ; }
  virtual TObjArray*     GetCTSTracks()                    const ;
  virtual TObjArray*     GetEMCALClusters()                const ;
  virtual TObjArray*     GetPHOSClusters()                 const ;
  

  //jets
  virtual TClonesArray*  GetNonStandardJets()              const { return fReader->GetNonStandardJets() ;}
  virtual AliAODJetEventBackground*  GetBackgroundJets()   const { return fReader->GetBackgroundJets() ;}

  // Common analysis switchs 
  
  enum detector { kEMCAL = AliFiducialCut::kEMCAL, kPHOS = AliFiducialCut::kPHOS,
                  kCTS   = AliFiducialCut::kCTS  , kDCAL = AliFiducialCut::kDCAL,
                  kDCALPHOS = AliFiducialCut::kDCALPHOS } ;

  virtual Int_t          GetCalorimeter()                 const  { return fCalorimeter          ; }
  virtual TString        GetCalorimeterString()           const  { return fCalorimeterString    ; }
  virtual void           SetCalorimeter(TString & calo);
  virtual void           SetCalorimeter(Int_t calo) ;

  virtual Bool_t         IsDataMC()                        const { return fDataMC                ; }
  virtual void           SwitchOnDataMC()                        { fDataMC = kTRUE ;
                                                                   if(!fMCUtils) fMCUtils = new AliMCAnalysisUtils() ; }
  virtual void           SwitchOffDataMC()                       { fDataMC = kFALSE              ; }
  
  virtual Bool_t         IsFiducialCutOn()                 const { return fCheckFidCut           ; }
  virtual void           SwitchOnFiducialCut()                   { fCheckFidCut = kTRUE ;
                                                                   if(!fFidCut)  fFidCut   = new AliFiducialCut()     ; }
  virtual void           SwitchOffFiducialCut()                  { fCheckFidCut = kFALSE         ; }

  virtual Bool_t         IsRealCaloAcceptanceOn()          const { return fCheckRealCaloAcc      ; }
  virtual void           SwitchOnRealCaloAcceptance()            { fCheckRealCaloAcc = kTRUE;  }
  virtual void           SwitchOffRealCaloAcceptance()           { fCheckRealCaloAcc = kFALSE    ; }
  
  virtual Bool_t         IsCaloPIDOn()                     const { return fCheckCaloPID          ; }
  virtual void           SwitchOnCaloPID()                       { fCheckCaloPID = kTRUE ;
                                                                   if(!fCaloPID)  fCaloPID = new AliCaloPID()         ; }
  virtual void           SwitchOffCaloPID()                      { fCheckCaloPID = kFALSE        ; }
  
  virtual Bool_t         MakePlotsOn()                     const { return fMakePlots             ; }
  virtual void           SwitchOnPlotsMaking()                   { fMakePlots = kTRUE            ; }
  virtual void           SwitchOffPlotsMaking()                  { fMakePlots = kFALSE           ; }
  
  virtual Bool_t         IsPileUpAnalysisOn()              const { return fFillPileUpHistograms  ; }
  virtual void           SwitchOnFillPileUpHistograms()          { fFillPileUpHistograms = kTRUE ; }
  virtual void           SwitchOffFillPileUpHistograms()         { fFillPileUpHistograms = kFALSE; }
  
  virtual Bool_t         IsHighMultiplicityAnalysisOn()     const { return fFillHighMultHistograms   ; }
  virtual void           SwitchOnFillHighMultiplicityHistograms() { fFillHighMultHistograms = kTRUE  ; }
  virtual void           SwitchOffFillHighMultiplicityHistograms(){ fFillHighMultHistograms = kFALSE ; }

  // Cluster energy/momentum cut
  
  virtual Float_t        GetMaxPt()                        const { return fMaxPt ; }
  virtual Float_t        GetMinPt()                        const { return fMinPt ; }
  virtual void           SetMaxPt(Float_t pt)                    { fMaxPt = pt   ; }
  virtual void           SetMinPt(Float_t pt)                    { fMinPt = pt   ; }
  virtual void           SetPtCutRange(Double_t mi, Double_t ma) { fMaxPt = ma;  fMinPt=mi; }
  
  virtual Float_t        GetMaxEnergy()                    const { return fMaxPt ; }
  virtual Float_t        GetMinEnergy()                    const { return fMinPt ; }
  virtual void           SetMaxEnergy(Float_t e)                 { fMaxPt = e    ; }
  virtual void           SetMinEnergy(Float_t e)                 { fMinPt = e    ; }
  virtual void           SetEnergyCutRange(Double_t mi, Double_t ma) { fMaxPt = ma;   fMinPt = mi; }
  
  //Cluster Pairs Time cut  
  virtual void           SetPairTimeCut(Float_t t)               { fPairTimeCut  = t   ; } //ns
  virtual Float_t        GetPairTimeCut()                  const { return fPairTimeCut ; } //ns
  
  // Number of TRD modules in front of EMCAL (year <=2012)
  Int_t                  GetFirstSMCoveredByTRD()          const { return fTRDSMCovered ; }
  void                   SetFirstSMCoveredByTRD(Int_t n)         { fTRDSMCovered    = n ; }
  
  //Getters / Setters for parameters of event buffers
  
  virtual Int_t          GetNZvertBin()                    const { return fNZvertBin ; } // number of bins in vertex
  virtual Int_t          GetNRPBin()                       const { return fNrpBin    ; } // number of bins in reaction plain
  virtual Int_t          GetNCentrBin()                    const { return fNCentrBin ; } // number of bins in centrality
  virtual Int_t          GetNTrackMultBin()                const { return GetNCentrBin(); } // number of bins in track multiplicity
  virtual Int_t          GetNMaxEvMix()                    const { return fNmaxMixEv ; } // maximal number of events for mixin
  virtual Float_t        GetZvertexCut()                   const { return GetReader()->GetZvertexCut();} // cut on vertex position
  virtual Int_t          GetTrackMultiplicityBin()         const ;
  virtual Int_t          GetEventCentralityBin()           const ;
  virtual Int_t          GetEventRPBin()                   const ;
  virtual Int_t          GetEventVzBin()                   const ;
  virtual Int_t          GetEventMixBin()                  const ;
  virtual Int_t          GetEventMixBin(Int_t iCen, Int_t iVz, Int_t iRP) const;
  
  virtual void           SetNZvertBin(Int_t n = 1 )              { fNZvertBin = n ; if(n < 1) fNZvertBin = 1 ; } // number of bins for vertex position
  virtual void           SetNRPBin   (Int_t n = 1 )              { fNrpBin    = n ; if(n < 1) fNrpBin    = 1 ; } // number of bins in reaction plain
  virtual void           SetNCentrBin(Int_t n = 1 )              { fNCentrBin = n ; if(n < 1) fNCentrBin = 1 ; } // number of bins in centrality
  virtual void           SetNTrackMultBin(Int_t n = 1 )          { SetNCentrBin(n); } // number of bins in track multiplicity
  virtual void           SetNMaxEvMix(Int_t n = 20)              { fNmaxMixEv = n ; if(n < 1) fNmaxMixEv = 1 ; } // maximal number of events for mixing
  virtual void           SetTrackMultiplicityBin(Int_t bin, Int_t mult) { if(bin < 20) fTrackMultBins[bin] = mult ; }
  
  virtual void           SwitchOnTrackMultBins()                 { fUseTrackMultBins = kTRUE  ; }
  virtual void           SwitchOffTrackMultBins()                { fUseTrackMultBins = kFALSE ; }
  
  virtual void           SwitchOnOwnMix()                        { fDoOwnMix         = kTRUE  ; }
  virtual void           SwitchOffOwnMix()                       { fDoOwnMix         = kFALSE ; }
  
  virtual Bool_t         DoOwnMix()                        const { return fDoOwnMix           ; }
  virtual Bool_t         UseTrackMultBins()                const { return fUseTrackMultBins   ; }

  //Mixed event  
  virtual Int_t           CheckMixedEventVertex(Int_t caloLabel, Int_t trackLabel) ;
  virtual AliMixedEvent * GetMixedEvent()                  const { return GetReader()->GetMixedEvent()  ; }
  virtual Int_t           GetNMixedEvent()                 const { return GetReader()->GetNMixedEvent() ; } 
  
  //Vertex methods
  virtual void           GetVertex(Double_t vertex[3])     const { GetReader()->GetVertex(vertex)       ; } 
  virtual Double_t*      GetVertex(Int_t evtIndex)         const { return GetReader()->GetVertex(evtIndex) ; }
  virtual void           GetVertex(Double_t vertex[3],
                                   Int_t evtIndex)         const { GetReader()->GetVertex(vertex,evtIndex) ; }
  //VZERO
  
  virtual Int_t GetV0Signal(Int_t i )                      const { return fReader->GetV0Signal(i)         ; }
  
  virtual Int_t GetV0Multiplicity(Int_t i )                const { return fReader->GetV0Multiplicity(i)   ; }
  
  
  //MC event acces methods
  virtual AliStack *                 GetMCStack()          const ;
  
  virtual AliHeader*                 GetMCHeader()         const ;
  
  virtual AliGenEventHeader        * GetMCGenEventHeader() const ;
  
  //Analysis helpers classes pointers setters and getters
  
  virtual AliCaloPID               * GetCaloPID()                { if(!fCaloPID) fCaloPID = new AliCaloPID();               return  fCaloPID ; }
  
  virtual AliCalorimeterUtils      * GetCaloUtils()        const { return fCaloUtils            ; }
  
  virtual AliFiducialCut           * GetFiducialCut()            { if(!fFidCut)  fFidCut  = new AliFiducialCut();           return  fFidCut  ; }
  
  virtual AliHistogramRanges       * GetHistogramRanges()        { if(!fHisto)   fHisto   = new AliHistogramRanges();       return  fHisto   ; }
  
  virtual AliIsolationCut          * GetIsolationCut()           { if(!fIC)      fIC      = new AliIsolationCut();          return  fIC      ; }
  
  virtual AliMCAnalysisUtils       * GetMCAnalysisUtils()        { if(!fMCUtils) fMCUtils = new AliMCAnalysisUtils();       return  fMCUtils ; }
  
  virtual AliNeutralMesonSelection * GetNeutralMesonSelection()  { if(!fNMS)     fNMS     = new AliNeutralMesonSelection(); return  fNMS     ; }
  
  virtual AliCaloTrackReader       * GetReader()           const { return fReader                        ; }
  
  virtual AliEMCALGeometry         * GetEMCALGeometry()    const { return fCaloUtils->GetEMCALGeometry() ; }
  
  virtual AliPHOSGeoUtils          * GetPHOSGeometry()     const { return fCaloUtils->GetPHOSGeometry()  ; }

  virtual void                       SetCaloPID(AliCaloPID * pid)                                   { delete fCaloPID; fCaloPID = pid     ; }
  
  virtual void                       SetCaloUtils(AliCalorimeterUtils * caloutils)                  { fCaloUtils = caloutils              ; }	
  
  virtual void                       SetFiducialCut(AliFiducialCut * fc)                            { delete fFidCut;  fFidCut  = fc      ; }
  
  virtual void                       SetHistogramRanges(AliHistogramRanges * hr)                    { delete fHisto;   fHisto   = hr      ; }
  
  virtual void                       SetIsolationCut(AliIsolationCut * ic)                          { delete fIC;      fIC      = ic      ; }
  
  virtual void                       SetMCAnalysisUtils(AliMCAnalysisUtils * mcutils)               { delete fMCUtils; fMCUtils = mcutils ; }
  
  virtual void                       SetNeutralMesonSelection(AliNeutralMesonSelection * const nms) { delete fNMS;     fNMS     = nms     ; }
  
  virtual void                       SetReader(AliCaloTrackReader * reader)                         { fReader = reader                    ; }
  
  //Calorimeter specific access methods and calculations
    
  virtual Bool_t         IsTrackMatched(AliVCluster * cluster, AliVEvent* event) {
   return GetCaloPID()->IsTrackMatched(cluster, fCaloUtils, event) ; } 
  
  virtual Int_t          GetModuleNumberCellIndexes(Int_t absId, Int_t calo, Int_t & icol, Int_t & irow, Int_t &iRCU) const {
	  return fCaloUtils->GetModuleNumberCellIndexes(absId, calo, icol, irow,iRCU) ; }
  
  virtual Int_t          GetModuleNumber(AliAODPWG4Particle * part) const {
	  return fCaloUtils->GetModuleNumber(part, fReader->GetInputEvent()) ; }
  
  virtual Int_t          GetModuleNumber(AliVCluster * cluster)     const {
	  return fCaloUtils->GetModuleNumber(cluster) ; }
  
  virtual AliVCluster*   FindCluster(TObjArray* clusters, const Int_t id, Int_t & iclus, const Int_t first=0) ;

private:    
  
  Bool_t                     fDataMC ;             // Flag to access MC data when using ESD or AOD     
  Int_t                      fDebug ;              // Debug level
  Int_t                      fCalorimeter ;        // Calorimeter selection
  TString                    fCalorimeterString ;  // Calorimeter selection
  Bool_t                     fCheckFidCut ;        // Do analysis for clusters in defined region
  Bool_t                     fCheckRealCaloAcc ;   // When analysis of MC particle kinematics, check their hit in Calorimeter in Real Geometry or use FidCut
  Bool_t                     fCheckCaloPID ;       // Do analysis for calorimeters
  Bool_t                     fRecalculateCaloPID ; // Recalculate PID or use PID weights in calorimeters
  Float_t                    fMinPt ;              // Maximum pt of (trigger) particles in the analysis
  Float_t                    fMaxPt ;              // Minimum pt of (trigger) particles in the analysis
  Float_t                    fPairTimeCut;         // Maximum difference between time of cluster pairs (ns)
  Int_t                      fTRDSMCovered;        // From which SM EMCal is covered by TRD
  
  Int_t                      fNZvertBin ;	         // Number of bins in event container for vertex position
  Int_t                      fNrpBin ;	           // Number of bins in event container for reaction plain
  Int_t                      fNCentrBin ;	         // Number of bins in event container for centrality
  Int_t                      fNmaxMixEv ;	         // Maximal number of events stored in buffer for mixing
  Bool_t                     fDoOwnMix;            // Do combinatorial background not the one provided by the frame
  Bool_t                     fUseTrackMultBins;    // Use track multiplicity and not centrality bins in mixing
  Int_t                      fTrackMultBins[20];   // Multiplicity bins limits. Number of bins set with SetNTrackMult() that calls SetNCentrBin().
  Bool_t                     fFillPileUpHistograms;   // Fill pile-up related histograms
  Bool_t                     fFillHighMultHistograms; // Histograms with centrality and event plane for triggers pT
  Bool_t                     fMakePlots   ;        // Print plots
    
  TClonesArray*              fInputAODBranch ;     //! Selected input particles branch
  TString                    fInputAODName ;       //  Name of input AOD branch;
  TClonesArray*              fOutputAODBranch ;    //! Selected output particles branch
  Bool_t                     fNewAOD ;             //  Flag, new aod branch added to the analysis or not.
  TString                    fOutputAODName ;      //  Name of output AOD branch;
  TString                    fOutputAODClassName;  //  Type of aod objects to be stored in the TClonesArray (AliAODPWG4Particle, AliAODPWG4ParticleCorrelation ...)	
  TString                    fAODObjArrayName ;    //  Name of ref array kept in a TList in AliAODParticleCorrelation with clusters or track references.
  TString                    fAddToHistogramsName; //  Add this string to histograms name
  
  //Analysis helper classes access pointers
  AliCaloPID               * fCaloPID;             // PID calculation
  AliCalorimeterUtils      * fCaloUtils ;          // Pointer to CalorimeterUtils
  AliFiducialCut           * fFidCut;              // Acceptance cuts
  AliHistogramRanges       * fHisto ;              // Histogram ranges container
  AliIsolationCut          * fIC;                  // Isolation cut 
  AliMCAnalysisUtils       * fMCUtils;             // MonteCarlo Analysis utils 
  AliNeutralMesonSelection * fNMS;                 // Neutral Meson Selection
  AliCaloTrackReader       * fReader;              // Acces to ESD/AOD/MC data

  AliAnaCaloTrackCorrBaseClass(              const AliAnaCaloTrackCorrBaseClass & bc) ; // cpy ctor
  AliAnaCaloTrackCorrBaseClass & operator = (const AliAnaCaloTrackCorrBaseClass & bc) ; // cpy assignment
  
  ClassDef(AliAnaCaloTrackCorrBaseClass,26)
} ;


#endif //ALIANACALOTRACKCORRBASECLASS_H



 AliAnaCaloTrackCorrBaseClass.h:1
 AliAnaCaloTrackCorrBaseClass.h:2
 AliAnaCaloTrackCorrBaseClass.h:3
 AliAnaCaloTrackCorrBaseClass.h:4
 AliAnaCaloTrackCorrBaseClass.h:5
 AliAnaCaloTrackCorrBaseClass.h:6
 AliAnaCaloTrackCorrBaseClass.h:7
 AliAnaCaloTrackCorrBaseClass.h:8
 AliAnaCaloTrackCorrBaseClass.h:9
 AliAnaCaloTrackCorrBaseClass.h:10
 AliAnaCaloTrackCorrBaseClass.h:11
 AliAnaCaloTrackCorrBaseClass.h:12
 AliAnaCaloTrackCorrBaseClass.h:13
 AliAnaCaloTrackCorrBaseClass.h:14
 AliAnaCaloTrackCorrBaseClass.h:15
 AliAnaCaloTrackCorrBaseClass.h:16
 AliAnaCaloTrackCorrBaseClass.h:17
 AliAnaCaloTrackCorrBaseClass.h:18
 AliAnaCaloTrackCorrBaseClass.h:19
 AliAnaCaloTrackCorrBaseClass.h:20
 AliAnaCaloTrackCorrBaseClass.h:21
 AliAnaCaloTrackCorrBaseClass.h:22
 AliAnaCaloTrackCorrBaseClass.h:23
 AliAnaCaloTrackCorrBaseClass.h:24
 AliAnaCaloTrackCorrBaseClass.h:25
 AliAnaCaloTrackCorrBaseClass.h:26
 AliAnaCaloTrackCorrBaseClass.h:27
 AliAnaCaloTrackCorrBaseClass.h:28
 AliAnaCaloTrackCorrBaseClass.h:29
 AliAnaCaloTrackCorrBaseClass.h:30
 AliAnaCaloTrackCorrBaseClass.h:31
 AliAnaCaloTrackCorrBaseClass.h:32
 AliAnaCaloTrackCorrBaseClass.h:33
 AliAnaCaloTrackCorrBaseClass.h:34
 AliAnaCaloTrackCorrBaseClass.h:35
 AliAnaCaloTrackCorrBaseClass.h:36
 AliAnaCaloTrackCorrBaseClass.h:37
 AliAnaCaloTrackCorrBaseClass.h:38
 AliAnaCaloTrackCorrBaseClass.h:39
 AliAnaCaloTrackCorrBaseClass.h:40
 AliAnaCaloTrackCorrBaseClass.h:41
 AliAnaCaloTrackCorrBaseClass.h:42
 AliAnaCaloTrackCorrBaseClass.h:43
 AliAnaCaloTrackCorrBaseClass.h:44
 AliAnaCaloTrackCorrBaseClass.h:45
 AliAnaCaloTrackCorrBaseClass.h:46
 AliAnaCaloTrackCorrBaseClass.h:47
 AliAnaCaloTrackCorrBaseClass.h:48
 AliAnaCaloTrackCorrBaseClass.h:49
 AliAnaCaloTrackCorrBaseClass.h:50
 AliAnaCaloTrackCorrBaseClass.h:51
 AliAnaCaloTrackCorrBaseClass.h:52
 AliAnaCaloTrackCorrBaseClass.h:53
 AliAnaCaloTrackCorrBaseClass.h:54
 AliAnaCaloTrackCorrBaseClass.h:55
 AliAnaCaloTrackCorrBaseClass.h:56
 AliAnaCaloTrackCorrBaseClass.h:57
 AliAnaCaloTrackCorrBaseClass.h:58
 AliAnaCaloTrackCorrBaseClass.h:59
 AliAnaCaloTrackCorrBaseClass.h:60
 AliAnaCaloTrackCorrBaseClass.h:61
 AliAnaCaloTrackCorrBaseClass.h:62
 AliAnaCaloTrackCorrBaseClass.h:63
 AliAnaCaloTrackCorrBaseClass.h:64
 AliAnaCaloTrackCorrBaseClass.h:65
 AliAnaCaloTrackCorrBaseClass.h:66
 AliAnaCaloTrackCorrBaseClass.h:67
 AliAnaCaloTrackCorrBaseClass.h:68
 AliAnaCaloTrackCorrBaseClass.h:69
 AliAnaCaloTrackCorrBaseClass.h:70
 AliAnaCaloTrackCorrBaseClass.h:71
 AliAnaCaloTrackCorrBaseClass.h:72
 AliAnaCaloTrackCorrBaseClass.h:73
 AliAnaCaloTrackCorrBaseClass.h:74
 AliAnaCaloTrackCorrBaseClass.h:75
 AliAnaCaloTrackCorrBaseClass.h:76
 AliAnaCaloTrackCorrBaseClass.h:77
 AliAnaCaloTrackCorrBaseClass.h:78
 AliAnaCaloTrackCorrBaseClass.h:79
 AliAnaCaloTrackCorrBaseClass.h:80
 AliAnaCaloTrackCorrBaseClass.h:81
 AliAnaCaloTrackCorrBaseClass.h:82
 AliAnaCaloTrackCorrBaseClass.h:83
 AliAnaCaloTrackCorrBaseClass.h:84
 AliAnaCaloTrackCorrBaseClass.h:85
 AliAnaCaloTrackCorrBaseClass.h:86
 AliAnaCaloTrackCorrBaseClass.h:87
 AliAnaCaloTrackCorrBaseClass.h:88
 AliAnaCaloTrackCorrBaseClass.h:89
 AliAnaCaloTrackCorrBaseClass.h:90
 AliAnaCaloTrackCorrBaseClass.h:91
 AliAnaCaloTrackCorrBaseClass.h:92
 AliAnaCaloTrackCorrBaseClass.h:93
 AliAnaCaloTrackCorrBaseClass.h:94
 AliAnaCaloTrackCorrBaseClass.h:95
 AliAnaCaloTrackCorrBaseClass.h:96
 AliAnaCaloTrackCorrBaseClass.h:97
 AliAnaCaloTrackCorrBaseClass.h:98
 AliAnaCaloTrackCorrBaseClass.h:99
 AliAnaCaloTrackCorrBaseClass.h:100
 AliAnaCaloTrackCorrBaseClass.h:101
 AliAnaCaloTrackCorrBaseClass.h:102
 AliAnaCaloTrackCorrBaseClass.h:103
 AliAnaCaloTrackCorrBaseClass.h:104
 AliAnaCaloTrackCorrBaseClass.h:105
 AliAnaCaloTrackCorrBaseClass.h:106
 AliAnaCaloTrackCorrBaseClass.h:107
 AliAnaCaloTrackCorrBaseClass.h:108
 AliAnaCaloTrackCorrBaseClass.h:109
 AliAnaCaloTrackCorrBaseClass.h:110
 AliAnaCaloTrackCorrBaseClass.h:111
 AliAnaCaloTrackCorrBaseClass.h:112
 AliAnaCaloTrackCorrBaseClass.h:113
 AliAnaCaloTrackCorrBaseClass.h:114
 AliAnaCaloTrackCorrBaseClass.h:115
 AliAnaCaloTrackCorrBaseClass.h:116
 AliAnaCaloTrackCorrBaseClass.h:117
 AliAnaCaloTrackCorrBaseClass.h:118
 AliAnaCaloTrackCorrBaseClass.h:119
 AliAnaCaloTrackCorrBaseClass.h:120
 AliAnaCaloTrackCorrBaseClass.h:121
 AliAnaCaloTrackCorrBaseClass.h:122
 AliAnaCaloTrackCorrBaseClass.h:123
 AliAnaCaloTrackCorrBaseClass.h:124
 AliAnaCaloTrackCorrBaseClass.h:125
 AliAnaCaloTrackCorrBaseClass.h:126
 AliAnaCaloTrackCorrBaseClass.h:127
 AliAnaCaloTrackCorrBaseClass.h:128
 AliAnaCaloTrackCorrBaseClass.h:129
 AliAnaCaloTrackCorrBaseClass.h:130
 AliAnaCaloTrackCorrBaseClass.h:131
 AliAnaCaloTrackCorrBaseClass.h:132
 AliAnaCaloTrackCorrBaseClass.h:133
 AliAnaCaloTrackCorrBaseClass.h:134
 AliAnaCaloTrackCorrBaseClass.h:135
 AliAnaCaloTrackCorrBaseClass.h:136
 AliAnaCaloTrackCorrBaseClass.h:137
 AliAnaCaloTrackCorrBaseClass.h:138
 AliAnaCaloTrackCorrBaseClass.h:139
 AliAnaCaloTrackCorrBaseClass.h:140
 AliAnaCaloTrackCorrBaseClass.h:141
 AliAnaCaloTrackCorrBaseClass.h:142
 AliAnaCaloTrackCorrBaseClass.h:143
 AliAnaCaloTrackCorrBaseClass.h:144
 AliAnaCaloTrackCorrBaseClass.h:145
 AliAnaCaloTrackCorrBaseClass.h:146
 AliAnaCaloTrackCorrBaseClass.h:147
 AliAnaCaloTrackCorrBaseClass.h:148
 AliAnaCaloTrackCorrBaseClass.h:149
 AliAnaCaloTrackCorrBaseClass.h:150
 AliAnaCaloTrackCorrBaseClass.h:151
 AliAnaCaloTrackCorrBaseClass.h:152
 AliAnaCaloTrackCorrBaseClass.h:153
 AliAnaCaloTrackCorrBaseClass.h:154
 AliAnaCaloTrackCorrBaseClass.h:155
 AliAnaCaloTrackCorrBaseClass.h:156
 AliAnaCaloTrackCorrBaseClass.h:157
 AliAnaCaloTrackCorrBaseClass.h:158
 AliAnaCaloTrackCorrBaseClass.h:159
 AliAnaCaloTrackCorrBaseClass.h:160
 AliAnaCaloTrackCorrBaseClass.h:161
 AliAnaCaloTrackCorrBaseClass.h:162
 AliAnaCaloTrackCorrBaseClass.h:163
 AliAnaCaloTrackCorrBaseClass.h:164
 AliAnaCaloTrackCorrBaseClass.h:165
 AliAnaCaloTrackCorrBaseClass.h:166
 AliAnaCaloTrackCorrBaseClass.h:167
 AliAnaCaloTrackCorrBaseClass.h:168
 AliAnaCaloTrackCorrBaseClass.h:169
 AliAnaCaloTrackCorrBaseClass.h:170
 AliAnaCaloTrackCorrBaseClass.h:171
 AliAnaCaloTrackCorrBaseClass.h:172
 AliAnaCaloTrackCorrBaseClass.h:173
 AliAnaCaloTrackCorrBaseClass.h:174
 AliAnaCaloTrackCorrBaseClass.h:175
 AliAnaCaloTrackCorrBaseClass.h:176
 AliAnaCaloTrackCorrBaseClass.h:177
 AliAnaCaloTrackCorrBaseClass.h:178
 AliAnaCaloTrackCorrBaseClass.h:179
 AliAnaCaloTrackCorrBaseClass.h:180
 AliAnaCaloTrackCorrBaseClass.h:181
 AliAnaCaloTrackCorrBaseClass.h:182
 AliAnaCaloTrackCorrBaseClass.h:183
 AliAnaCaloTrackCorrBaseClass.h:184
 AliAnaCaloTrackCorrBaseClass.h:185
 AliAnaCaloTrackCorrBaseClass.h:186
 AliAnaCaloTrackCorrBaseClass.h:187
 AliAnaCaloTrackCorrBaseClass.h:188
 AliAnaCaloTrackCorrBaseClass.h:189
 AliAnaCaloTrackCorrBaseClass.h:190
 AliAnaCaloTrackCorrBaseClass.h:191
 AliAnaCaloTrackCorrBaseClass.h:192
 AliAnaCaloTrackCorrBaseClass.h:193
 AliAnaCaloTrackCorrBaseClass.h:194
 AliAnaCaloTrackCorrBaseClass.h:195
 AliAnaCaloTrackCorrBaseClass.h:196
 AliAnaCaloTrackCorrBaseClass.h:197
 AliAnaCaloTrackCorrBaseClass.h:198
 AliAnaCaloTrackCorrBaseClass.h:199
 AliAnaCaloTrackCorrBaseClass.h:200
 AliAnaCaloTrackCorrBaseClass.h:201
 AliAnaCaloTrackCorrBaseClass.h:202
 AliAnaCaloTrackCorrBaseClass.h:203
 AliAnaCaloTrackCorrBaseClass.h:204
 AliAnaCaloTrackCorrBaseClass.h:205
 AliAnaCaloTrackCorrBaseClass.h:206
 AliAnaCaloTrackCorrBaseClass.h:207
 AliAnaCaloTrackCorrBaseClass.h:208
 AliAnaCaloTrackCorrBaseClass.h:209
 AliAnaCaloTrackCorrBaseClass.h:210
 AliAnaCaloTrackCorrBaseClass.h:211
 AliAnaCaloTrackCorrBaseClass.h:212
 AliAnaCaloTrackCorrBaseClass.h:213
 AliAnaCaloTrackCorrBaseClass.h:214
 AliAnaCaloTrackCorrBaseClass.h:215
 AliAnaCaloTrackCorrBaseClass.h:216
 AliAnaCaloTrackCorrBaseClass.h:217
 AliAnaCaloTrackCorrBaseClass.h:218
 AliAnaCaloTrackCorrBaseClass.h:219
 AliAnaCaloTrackCorrBaseClass.h:220
 AliAnaCaloTrackCorrBaseClass.h:221
 AliAnaCaloTrackCorrBaseClass.h:222
 AliAnaCaloTrackCorrBaseClass.h:223
 AliAnaCaloTrackCorrBaseClass.h:224
 AliAnaCaloTrackCorrBaseClass.h:225
 AliAnaCaloTrackCorrBaseClass.h:226
 AliAnaCaloTrackCorrBaseClass.h:227
 AliAnaCaloTrackCorrBaseClass.h:228
 AliAnaCaloTrackCorrBaseClass.h:229
 AliAnaCaloTrackCorrBaseClass.h:230
 AliAnaCaloTrackCorrBaseClass.h:231
 AliAnaCaloTrackCorrBaseClass.h:232
 AliAnaCaloTrackCorrBaseClass.h:233
 AliAnaCaloTrackCorrBaseClass.h:234
 AliAnaCaloTrackCorrBaseClass.h:235
 AliAnaCaloTrackCorrBaseClass.h:236
 AliAnaCaloTrackCorrBaseClass.h:237
 AliAnaCaloTrackCorrBaseClass.h:238
 AliAnaCaloTrackCorrBaseClass.h:239
 AliAnaCaloTrackCorrBaseClass.h:240
 AliAnaCaloTrackCorrBaseClass.h:241
 AliAnaCaloTrackCorrBaseClass.h:242
 AliAnaCaloTrackCorrBaseClass.h:243
 AliAnaCaloTrackCorrBaseClass.h:244
 AliAnaCaloTrackCorrBaseClass.h:245
 AliAnaCaloTrackCorrBaseClass.h:246
 AliAnaCaloTrackCorrBaseClass.h:247
 AliAnaCaloTrackCorrBaseClass.h:248
 AliAnaCaloTrackCorrBaseClass.h:249
 AliAnaCaloTrackCorrBaseClass.h:250
 AliAnaCaloTrackCorrBaseClass.h:251
 AliAnaCaloTrackCorrBaseClass.h:252
 AliAnaCaloTrackCorrBaseClass.h:253
 AliAnaCaloTrackCorrBaseClass.h:254
 AliAnaCaloTrackCorrBaseClass.h:255
 AliAnaCaloTrackCorrBaseClass.h:256
 AliAnaCaloTrackCorrBaseClass.h:257
 AliAnaCaloTrackCorrBaseClass.h:258
 AliAnaCaloTrackCorrBaseClass.h:259
 AliAnaCaloTrackCorrBaseClass.h:260
 AliAnaCaloTrackCorrBaseClass.h:261
 AliAnaCaloTrackCorrBaseClass.h:262
 AliAnaCaloTrackCorrBaseClass.h:263
 AliAnaCaloTrackCorrBaseClass.h:264
 AliAnaCaloTrackCorrBaseClass.h:265
 AliAnaCaloTrackCorrBaseClass.h:266
 AliAnaCaloTrackCorrBaseClass.h:267
 AliAnaCaloTrackCorrBaseClass.h:268
 AliAnaCaloTrackCorrBaseClass.h:269
 AliAnaCaloTrackCorrBaseClass.h:270
 AliAnaCaloTrackCorrBaseClass.h:271
 AliAnaCaloTrackCorrBaseClass.h:272
 AliAnaCaloTrackCorrBaseClass.h:273
 AliAnaCaloTrackCorrBaseClass.h:274
 AliAnaCaloTrackCorrBaseClass.h:275
 AliAnaCaloTrackCorrBaseClass.h:276
 AliAnaCaloTrackCorrBaseClass.h:277
 AliAnaCaloTrackCorrBaseClass.h:278
 AliAnaCaloTrackCorrBaseClass.h:279
 AliAnaCaloTrackCorrBaseClass.h:280
 AliAnaCaloTrackCorrBaseClass.h:281
 AliAnaCaloTrackCorrBaseClass.h:282
 AliAnaCaloTrackCorrBaseClass.h:283
 AliAnaCaloTrackCorrBaseClass.h:284
 AliAnaCaloTrackCorrBaseClass.h:285
 AliAnaCaloTrackCorrBaseClass.h:286
 AliAnaCaloTrackCorrBaseClass.h:287
 AliAnaCaloTrackCorrBaseClass.h:288
 AliAnaCaloTrackCorrBaseClass.h:289
 AliAnaCaloTrackCorrBaseClass.h:290
 AliAnaCaloTrackCorrBaseClass.h:291
 AliAnaCaloTrackCorrBaseClass.h:292
 AliAnaCaloTrackCorrBaseClass.h:293
 AliAnaCaloTrackCorrBaseClass.h:294
 AliAnaCaloTrackCorrBaseClass.h:295
 AliAnaCaloTrackCorrBaseClass.h:296
 AliAnaCaloTrackCorrBaseClass.h:297
 AliAnaCaloTrackCorrBaseClass.h:298
 AliAnaCaloTrackCorrBaseClass.h:299
 AliAnaCaloTrackCorrBaseClass.h:300
 AliAnaCaloTrackCorrBaseClass.h:301
 AliAnaCaloTrackCorrBaseClass.h:302
 AliAnaCaloTrackCorrBaseClass.h:303
 AliAnaCaloTrackCorrBaseClass.h:304
 AliAnaCaloTrackCorrBaseClass.h:305
 AliAnaCaloTrackCorrBaseClass.h:306
 AliAnaCaloTrackCorrBaseClass.h:307
 AliAnaCaloTrackCorrBaseClass.h:308
 AliAnaCaloTrackCorrBaseClass.h:309
 AliAnaCaloTrackCorrBaseClass.h:310
 AliAnaCaloTrackCorrBaseClass.h:311
 AliAnaCaloTrackCorrBaseClass.h:312
 AliAnaCaloTrackCorrBaseClass.h:313
 AliAnaCaloTrackCorrBaseClass.h:314
 AliAnaCaloTrackCorrBaseClass.h:315
 AliAnaCaloTrackCorrBaseClass.h:316
 AliAnaCaloTrackCorrBaseClass.h:317
 AliAnaCaloTrackCorrBaseClass.h:318
 AliAnaCaloTrackCorrBaseClass.h:319
 AliAnaCaloTrackCorrBaseClass.h:320
 AliAnaCaloTrackCorrBaseClass.h:321
 AliAnaCaloTrackCorrBaseClass.h:322
 AliAnaCaloTrackCorrBaseClass.h:323
 AliAnaCaloTrackCorrBaseClass.h:324
 AliAnaCaloTrackCorrBaseClass.h:325
 AliAnaCaloTrackCorrBaseClass.h:326
 AliAnaCaloTrackCorrBaseClass.h:327
 AliAnaCaloTrackCorrBaseClass.h:328
 AliAnaCaloTrackCorrBaseClass.h:329
 AliAnaCaloTrackCorrBaseClass.h:330
 AliAnaCaloTrackCorrBaseClass.h:331
 AliAnaCaloTrackCorrBaseClass.h:332
 AliAnaCaloTrackCorrBaseClass.h:333
 AliAnaCaloTrackCorrBaseClass.h:334
 AliAnaCaloTrackCorrBaseClass.h:335
 AliAnaCaloTrackCorrBaseClass.h:336
 AliAnaCaloTrackCorrBaseClass.h:337
 AliAnaCaloTrackCorrBaseClass.h:338
 AliAnaCaloTrackCorrBaseClass.h:339
 AliAnaCaloTrackCorrBaseClass.h:340
 AliAnaCaloTrackCorrBaseClass.h:341
 AliAnaCaloTrackCorrBaseClass.h:342
 AliAnaCaloTrackCorrBaseClass.h:343
 AliAnaCaloTrackCorrBaseClass.h:344
 AliAnaCaloTrackCorrBaseClass.h:345
 AliAnaCaloTrackCorrBaseClass.h:346
 AliAnaCaloTrackCorrBaseClass.h:347
 AliAnaCaloTrackCorrBaseClass.h:348
 AliAnaCaloTrackCorrBaseClass.h:349
 AliAnaCaloTrackCorrBaseClass.h:350
 AliAnaCaloTrackCorrBaseClass.h:351
 AliAnaCaloTrackCorrBaseClass.h:352
 AliAnaCaloTrackCorrBaseClass.h:353
 AliAnaCaloTrackCorrBaseClass.h:354
 AliAnaCaloTrackCorrBaseClass.h:355
 AliAnaCaloTrackCorrBaseClass.h:356
 AliAnaCaloTrackCorrBaseClass.h:357
 AliAnaCaloTrackCorrBaseClass.h:358
 AliAnaCaloTrackCorrBaseClass.h:359
 AliAnaCaloTrackCorrBaseClass.h:360
 AliAnaCaloTrackCorrBaseClass.h:361
 AliAnaCaloTrackCorrBaseClass.h:362
 AliAnaCaloTrackCorrBaseClass.h:363
 AliAnaCaloTrackCorrBaseClass.h:364
 AliAnaCaloTrackCorrBaseClass.h:365
 AliAnaCaloTrackCorrBaseClass.h:366
 AliAnaCaloTrackCorrBaseClass.h:367