]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG/CaloTrackCorrBase/AliCaloTrackReader.h
Add pile up selection via EMCal cluster multiplicity, add or update pile-up control...
[u/mrichter/AliRoot.git] / PWG / CaloTrackCorrBase / AliCaloTrackReader.h
index 8e47f8f03d4a180ea871f33ee23a2f1efed37d41..80f142ecd3b0ce72a6024899dd90d2eb00d941da 100755 (executable)
@@ -118,11 +118,22 @@ public:
   void             SetEMCALEMax (Float_t  e)               { SetEMCALPtMax(e)              ; }
   void             SetPHOSEMax  (Float_t  e)               { SetPHOSPtMax (e)              ; }
   
-  Double_t         GetEMCALTimeCutMin()             const { return fEMCALTimeCutMin        ; }
-  Double_t         GetEMCALTimeCutMax()             const { return fEMCALTimeCutMax        ; } 
+  //Time cut
+  
+  Double_t         GetEMCALTimeCutMin()              const { return fEMCALTimeCutMin       ; }
+  Double_t         GetEMCALTimeCutMax()              const { return fEMCALTimeCutMax       ; } 
 
-  void             SetEMCALTimeCut(Double_t a, Double_t b) { fEMCALTimeCutMin = a; 
+  Bool_t           IsInTimeWindow(const Double_t tof, const Float_t energy)  const ;
+  
+  void             SetEMCALTimeCut(Double_t a, Double_t b) { fEMCALTimeCutMin = a ; 
                                                              fEMCALTimeCutMax = b          ; } // ns
+  
+  void             SetEMCALParametrizedMinTimeCut(Int_t i, Float_t par) { fEMCALParamTimeCutMin[i] = par ; } 
+  void             SetEMCALParametrizedMaxTimeCut(Int_t i, Float_t par) { fEMCALParamTimeCutMax[i] = par ; } 
+  
+  void             SwitchOnUseParametrizedTimeCut()        { fUseParamTimeCut = kTRUE      ; }
+  void             SwitchOffUseParametrizedTimeCut()       { fUseParamTimeCut = kFALSE     ; }
+
   // Fidutial cuts  
   virtual AliFiducialCut * GetFiducialCut()                { 
                     if(!fFiducialCut) fFiducialCut = new AliFiducialCut(); 
@@ -179,18 +190,18 @@ public:
   virtual void     FillInputPHOSCells() ;
   virtual void     FillInputVZERO() ;  
   
-  Int_t            GetV0Signal(Int_t i)              const { return fV0ADC[i]              ; }
-  Int_t            GetV0Multiplicity(Int_t i)        const { return fV0Mul[i]              ; }
+  Int_t            GetV0Signal(Int_t i)              const { return fV0ADC[i]               ; }
+  Int_t            GetV0Multiplicity(Int_t i)        const { return fV0Mul[i]               ; }
   
-  void             SetEMCALClusterListName(TString &name)  { fEMCALClustersListName = name ; }
-  TString          GetEMCALClusterListName()         const { return fEMCALClustersListName ; }
+  void             SetEMCALClusterListName(TString &name)  { fEMCALClustersListName = name  ; }
+  TString          GetEMCALClusterListName()         const { return fEMCALClustersListName  ; }
 
   // Arrayes with clusters/track/cells access method
-  virtual TObjArray*     GetCTSTracks()              const { return fCTSTracks             ; }
-  virtual TObjArray*     GetEMCALClusters()          const { return fEMCALClusters         ; }
-  virtual TObjArray*     GetPHOSClusters()           const { return fPHOSClusters          ; }
-  virtual AliVCaloCells* GetEMCALCells()             const { return fEMCALCells            ; }
-  virtual AliVCaloCells* GetPHOSCells()              const { return fPHOSCells             ; }
+  virtual TObjArray*     GetCTSTracks()              const { return fCTSTracks              ; }
+  virtual TObjArray*     GetEMCALClusters()          const { return fEMCALClusters          ; }
+  virtual TObjArray*     GetPHOSClusters()           const { return fPHOSClusters           ; }
+  virtual AliVCaloCells* GetEMCALCells()             const { return fEMCALCells             ; }
+  virtual AliVCaloCells* GetPHOSCells()              const { return fPHOSCells              ; }
    
   //-------------------------------------
   // Event/track selection methods
@@ -208,13 +219,18 @@ public:
   TString          GetFiredTriggerClassName()        const { return fFiredTriggerClassName   ; }
   TString          GetFiredTriggerClasses() ;               
   
-  UInt_t           GetEventTriggerMask()                 const { return fEventTriggerMask        ; }
+  UInt_t           GetEventTriggerMask()             const { return fEventTriggerMask        ; }
   void             SetEventTriggerMaks(UInt_t evtTrig = AliVEvent::kAny) 
                                                            { fEventTriggerMask = evtTrig     ; }
+
+  UInt_t           GetMixEventTriggerMask()             const { return fMixEventTriggerMask  ; }
+  void             SetMixEventTriggerMaks(UInt_t evtTrig = AliVEvent::kAnyINT) 
+                                                           { fMixEventTriggerMask = evtTrig  ; }
+  
   
-  Bool_t           IsEventTriggerAtSEOn()           const { return fEventTriggerAtSE         ; }
-  void             SwitchOnEventTriggerAtSE()             { fEventTriggerAtSE       = kTRUE  ; }
-  void             SwitchOffEventTriggerAtSE()            { fEventTriggerAtSE       = kFALSE ; }
+  Bool_t           IsEventTriggerAtSEOn()            const { return fEventTriggerAtSE        ; }
+  void             SwitchOnEventTriggerAtSE()              { fEventTriggerAtSE      = kTRUE  ; }
+  void             SwitchOffEventTriggerAtSE()             { fEventTriggerAtSE      = kFALSE ; }
   
   void             SwitchOnEventSelection()                { fDoEventSelection      = kTRUE  ; }
   void             SwitchOffEventSelection()               { fDoEventSelection      = kFALSE ; }
@@ -228,6 +244,21 @@ public:
   void             SwitchOffPrimaryVertexSelection()       { fUseEventsWithPrimaryVertex = kFALSE ; }
   Bool_t           IsPrimaryVertexSelectionDone()    const { return fUseEventsWithPrimaryVertex   ; } 
   
+  Bool_t           IsPileUpFromSPD()               const ;
+  Bool_t           IsPileUpFromEMCal()             const ;
+  Bool_t           IsPileUpFromSPDAndEMCal()       const ;
+  Bool_t           IsPileUpFromSPDOrEMCal()        const ;
+  Bool_t           IsPileUpFromSPDAndNotEMCal()    const ;
+  Bool_t           IsPileUpFromEMCalAndNotSPD()    const ;
+  Bool_t           IsPileUpFromNotSPDAndNotEMCal() const ;
+
+  void             SetPileUpParamForSPD  (Int_t i, Double_t param)
+                                                           { fPileUpParamSPD[i]  = param ; }
+  void             SetPileUpParamForEMCal(Int_t param)     { fNPileUpClustersCut = param ; }
+  
+  Int_t            GetNPileUpClusters()                    { return  fNPileUpClusters    ; }
+  Int_t            GetNNonPileUpClusters()                 { return  fNNonPileUpClusters ; }
+
   // Track selection
   ULong_t          GetTrackStatus()                  const { return fTrackStatus       ; }
   void             SetTrackStatus(ULong_t bit)             { fTrackStatus = bit        ; }             
@@ -237,6 +268,12 @@ public:
   
   AliESDtrackCuts* GetTrackCuts()                    const { return fESDtrackCuts      ; }
   void             SetTrackCuts(AliESDtrackCuts * cuts)    ;
+
+  void             SwitchOnConstrainTrackToVertex()        { fConstrainTrack = kTRUE   ; } 
+  void             SwitchOffConstrainTrackToVertex()       { fConstrainTrack = kFALSE  ; }      
+  
+  void             SwitchOnAODHybridTrackSelection()       { fSelectHybridTracks = kTRUE  ; } 
+  void             SwitchOffAODHybridTrackSelection()      { fSelectHybridTracks = kFALSE ; }      
   
   Int_t            GetTrackMultiplicity()            const { return fTrackMult         ; }
   Float_t          GetTrackMultiplicityEtaCut()      const { return fTrackMultEtaCut   ; }
@@ -267,7 +304,8 @@ public:
   //--------------------------
   // Centrality / Event Plane
   //--------------------------
-  virtual AliCentrality* GetCentrality()             const { return fInputEvent->GetCentrality() ; } //Look in AOD reader, different there
+  virtual AliCentrality* GetCentrality()             const { if(fDataType!=kMC) return fInputEvent->GetCentrality() ; 
+                                                             else               return 0x0       ; } 
   virtual void     SetCentralityClass(TString name)        { fCentralityClass   = name           ; }
   virtual void     SetCentralityOpt(Int_t opt)             { fCentralityOpt     = opt            ; }
   virtual TString  GetCentralityClass()              const { return fCentralityClass             ; }
@@ -279,10 +317,39 @@ public:
   virtual Float_t  GetCentralityBin(Int_t i)         const { if(i < 0 || i > 1) return 0 ; 
                                                              else return fCentralityBin[i]              ; }
   
-  virtual AliEventplane* GetEventPlane()             const { return fInputEvent->GetEventplane() ; }           
+  virtual AliEventplane* GetEventPlane()             const { if(fDataType!=kMC) return fInputEvent->GetEventplane() ;
+                                                             else               return 0x0       ; }  
+  virtual Double_t       GetEventPlaneAngle()        const ;          
   virtual void           SetEventPlaneMethod(TString m)    { fEventPlaneMethod = m               ; }
   virtual TString        GetEventPlaneMethod()       const { return fEventPlaneMethod            ; }
 
+  //--------------------
+  // Mixing
+  //--------------------
+
+  Int_t   GetLastCaloMixedEvent()                    const { return fLastMixedCaloEvent          ; }
+  Int_t   GetLastTracksMixedEvent ()                 const { return fLastMixedTracksEvent        ; }
+  
+  TList * GetListWithMixedEventsForCalo  (Int_t bi)  const { if(fListMixedCaloEvents)   return fListMixedCaloEvents[bi]     ; else return 0 ; }
+  TList * GetListWithMixedEventsForTracks(Int_t bi)  const { if(fListMixedTracksEvents) return fListMixedTracksEvents [bi]  ; else return 0 ; }  
+   
+  Bool_t  ListWithMixedEventsForCaloExists()         const { if(fListMixedCaloEvents) return kTRUE  ;
+                                                             else                     return kFALSE ; }
+
+  Bool_t  ListWithMixedEventsForTracksExists()       const { if(fListMixedTracksEvents) return kTRUE  ;
+                                                             else                       return kFALSE ; }
+  
+  void    SetLastCaloMixedEvent  (Int_t e)                 { fLastMixedCaloEvent    = e          ; }
+  void    SetLastTracksMixedEvent(Int_t e)                 { fLastMixedTracksEvent  = e          ; }
+  
+  void    SetListWithMixedEventsForCalo (TList ** l)       { 
+            if(fListMixedCaloEvents) printf("AliCaloTrackReader::SetListWithMixedEventsForCalo() - Track Mixing event list already set, nothing done\n");
+            else                        fListMixedCaloEvents    = l ; }
+  
+  void    SetListWithMixedEventsForTracks(TList ** l)      { 
+            if(fListMixedTracksEvents)  printf("AliCaloTrackReader::SetListWithMixedEventsForTracks() - Calorimeter Mixing event list already set, nothing done\n");
+            else                        fListMixedTracksEvents  = l ; }
+  
   //-------------------------------------
   // Other methods
   //-------------------------------------
@@ -307,7 +374,7 @@ public:
   
   //Filtered kinematics in AOD 
   virtual TClonesArray*     GetAODMCParticles(Int_t input = 0) const ;
-  virtual AliAODMCHeader*   GetAODMCHeader(Int_t input = 0)    const ;
+  virtual AliAODMCHeader*   GetAODMCHeader()         const ;
        
   virtual AliVEvent*        GetInputEvent()          const { return fInputEvent            ; }
   virtual AliVEvent*        GetOriginalInputEvent()  const { return 0x0                    ; }
@@ -330,6 +397,13 @@ public:
   virtual Float_t  GetPtHardAndJetFactor()               const { return  fPtHardAndJetPtFactor    ; }
   virtual void     SetPtHardAndJetPtFactor(Float_t factor)     { fPtHardAndJetPtFactor = factor   ; }          
   
+  virtual Bool_t   ComparePtHardAndClusterPt() ;
+  virtual Bool_t   IsPtHardAndClusterPtComparisonSet()       const { return  fComparePtHardAndClusterPt   ; }
+  virtual void     SetPtHardAndClusterPtComparison(Bool_t compare) { fComparePtHardAndClusterPt = compare ; }  
+  virtual Float_t  GetPtHardAndClusterFactor()               const { return  fPtHardAndClusterPtFactor    ; }
+  virtual void     SetPtHardAndClusterPtFactor(Float_t factor)     { fPtHardAndClusterPtFactor = factor   ; }          
+  
+  
   //MC reader methods, declared there to allow compilation, they are only used in the MC reader:
   
   virtual void AddNeutralParticlesArray(TArrayI & /*array*/) { ; }  
@@ -350,75 +424,89 @@ public:
 
   
  protected:
-  Int_t                   fEventNumber;    // Event number
-  Int_t            fDataType ;      // Select MC:Kinematics, Data:ESD/AOD, MCData:Both
-  Int_t            fDebug;          // Debugging level
-  AliFiducialCut * fFiducialCut;    //! Acceptance cuts
-  Bool_t           fCheckFidCut ;   // Do analysis for clusters in defined region         
+  Int_t                   fEventNumber;            // Event number
+  Int_t            fDataType ;              // Select MC:Kinematics, Data:ESD/AOD, MCData:Both
+  Int_t            fDebug;                  // Debugging level
+  AliFiducialCut * fFiducialCut;            //! Acceptance cuts
+  Bool_t           fCheckFidCut ;           // Do analysis for clusters in defined region         
 
   Bool_t           fComparePtHardAndJetPt;  // In MonteCarlo, jet events, reject fake events with wrong jet energy.
   Float_t          fPtHardAndJetPtFactor;   // Factor between ptHard and jet pT to reject/accept event.
 
-  Float_t          fCTSPtMin;       // pT Threshold on charged particles 
-  Float_t          fEMCALPtMin;     // pT Threshold on emcal clusters
-  Float_t          fPHOSPtMin;      // pT Threshold on phos clusters
-  Float_t          fCTSPtMax;       // pT Threshold on charged particles 
-  Float_t          fEMCALPtMax;     // pT Threshold on emcal clusters
-  Float_t          fPHOSPtMax;      // pT Threshold on phos clusters
-  Double_t         fEMCALTimeCutMin;// Remove clusters/cells with time smaller than this value, in ns
-  Double_t         fEMCALTimeCutMax;// Remove clusters/cells with time larger than this value, in ns
-
-  TList          * fAODBranchList ; //-> List with AOD branches created and needed in analysis  
-  TObjArray      * fCTSTracks ;     //-> temporal array with tracks
-  TObjArray      * fEMCALClusters ; //-> temporal array with EMCAL CaloClusters
-  TObjArray      * fPHOSClusters ;  //-> temporal array with PHOS  CaloClusters
-  AliVCaloCells  * fEMCALCells ;    //! temporal array with EMCAL CaloCells
-  AliVCaloCells  * fPHOSCells ;     //! temporal array with PHOS  CaloCells
-
-  AliVEvent      * fInputEvent;     //! pointer to esd or aod input
-  AliAODEvent    * fOutputEvent;    //! pointer to aod output
-  AliMCEvent     * fMC;             //! Monte Carlo Event Handler  
-
-  Bool_t           fFillCTS;        // use data from CTS
-  Bool_t           fFillEMCAL;      // use data from EMCAL
-  Bool_t           fFillPHOS;       // use data from PHOS
-  Bool_t           fFillEMCALCells; // use data from EMCAL
-  Bool_t           fFillPHOSCells;  // use data from PHOS
+  Bool_t           fComparePtHardAndClusterPt;  // In MonteCarlo, jet events, reject events with too large cluster energy
+  Float_t          fPtHardAndClusterPtFactor;   // Factor between ptHard and cluster pT to reject/accept event.
+  
+  Float_t          fCTSPtMin;               // pT Threshold on charged particles 
+  Float_t          fEMCALPtMin;             // pT Threshold on emcal clusters
+  Float_t          fPHOSPtMin;              // pT Threshold on phos clusters
+  Float_t          fCTSPtMax;               // pT Threshold on charged particles 
+  Float_t          fEMCALPtMax;             // pT Threshold on emcal clusters
+  Float_t          fPHOSPtMax;              // pT Threshold on phos clusters
+  Double_t         fEMCALTimeCutMin;        // Remove clusters/cells with time smaller than this value, in ns
+  Double_t         fEMCALTimeCutMax;        // Remove clusters/cells with time larger than this value, in ns
+  Float_t          fEMCALParamTimeCutMin[4];// Remove clusters/cells with time smaller than parametrized value, in ns
+  Double_t         fEMCALParamTimeCutMax[4];// Remove clusters/cells with time larger than parametrized value, in ns
+  Bool_t           fUseParamTimeCut;        // Use simple or parametrized time cut
+  
+  TList          * fAODBranchList ;         //-> List with AOD branches created and needed in analysis  
+  TObjArray      * fCTSTracks ;             //-> temporal array with tracks
+  TObjArray      * fEMCALClusters ;         //-> temporal array with EMCAL CaloClusters
+  TObjArray      * fPHOSClusters ;          //-> temporal array with PHOS  CaloClusters
+  AliVCaloCells  * fEMCALCells ;            //! temporal array with EMCAL CaloCells
+  AliVCaloCells  * fPHOSCells ;             //! temporal array with PHOS  CaloCells
+
+  AliVEvent      * fInputEvent;             //! pointer to esd or aod input
+  AliAODEvent    * fOutputEvent;            //! pointer to aod output
+  AliMCEvent     * fMC;                     //! Monte Carlo Event Handler  
+
+  Bool_t           fFillCTS;                // use data from CTS
+  Bool_t           fFillEMCAL;              // use data from EMCAL
+  Bool_t           fFillPHOS;               // use data from PHOS
+  Bool_t           fFillEMCALCells;         // use data from EMCAL
+  Bool_t           fFillPHOSCells;          // use data from PHOS
   Bool_t           fRecalculateClusters;    // Correct clusters, recalculate them if recalibration parameters is given
   Bool_t           fSelectEmbeddedClusters; // Use only simulated clusters that come from embedding.
   
-  ULong_t          fTrackStatus        ; // Track selection bit, select tracks refitted in TPC, ITS ...
-  ULong_t          fTrackFilterMask    ; // Track selection bit, for AODs (any difference with track status?)
-  AliESDtrackCuts *fESDtrackCuts       ; // Track cut  
-  Int_t            fTrackMult          ; // Track multiplicity
-  Float_t          fTrackMultEtaCut    ; // Track multiplicity eta cut
-  Bool_t           fReadStack          ; // Access kine information from stack
-  Bool_t                fReadAODMCParticles ; // Access kine information from filtered AOD MC particles
+  ULong_t          fTrackStatus        ;    // Track selection bit, select tracks refitted in TPC, ITS ...
+  ULong_t          fTrackFilterMask    ;    // Track selection bit, for AODs (any difference with track status?)
+  AliESDtrackCuts *fESDtrackCuts       ;    // Track cut 
+  Bool_t           fConstrainTrack     ;    // Constrain Track to vertex
+  Bool_t           fSelectHybridTracks ;    // Select CTS tracks of type hybrid (only for AODs)
+  Int_t            fTrackMult          ;    // Track multiplicity
+  Float_t          fTrackMultEtaCut    ;    // Track multiplicity eta cut
+  Bool_t           fReadStack          ;    // Access kine information from stack
+  Bool_t                fReadAODMCParticles ;    // Access kine information from filtered AOD MC particles
        
-  TString          fDeltaAODFileName   ; // Delta AOD file name
-  TString          fFiredTriggerClassName; // Name of trigger event type used to do the analysis
+  TString          fDeltaAODFileName   ;    // Delta AOD file name
+  TString          fFiredTriggerClassName;  // Name of trigger event type used to do the analysis
 
-  UInt_t           fEventTriggerMask ;   // select this triggerered event
-  Bool_t           fEventTriggerAtSE;    // select triggered event at SE base task or here
+  UInt_t           fEventTriggerMask ;      // select this triggerered event
+  UInt_t           fMixEventTriggerMask ;   // select this triggerered event for mixing, tipically kMB or kAnyINT
+  Bool_t           fEventTriggerAtSE;       // select triggered event at SE base task or here
   
-  Bool_t           fAnaLED;              // Analyze LED data only.
+  Bool_t           fAnaLED;                 // Analyze LED data only.
 
-  TString          fTaskName;            // Name of task that executes the analysis
+  TString          fTaskName;               // Name of task that executes the analysis
        
-  AliCalorimeterUtils * fCaloUtils ;     //  Pointer to CalorimeterUtils
+  AliCalorimeterUtils * fCaloUtils ;        //  Pointer to CalorimeterUtils
 
-  AliMixedEvent  * fMixedEvent  ;        //! mixed event object. This class is not the owner
-  Int_t            fNMixedEvent ;        // number of events in mixed event buffer
-  Double_t      ** fVertex      ;        //! vertex array 3 dim for each mixed event buffer
+  AliMixedEvent  * fMixedEvent  ;           //! mixed event object. This class is not the owner
+  Int_t            fNMixedEvent ;           // number of events in mixed event buffer
+  Double_t      ** fVertex      ;           //! vertex array 3 dim for each mixed event buffer
+  
+  TList **         fListMixedTracksEvents ; //! Container for tracks stored for different events, used in case of own mixing, set in analysis class
+  TList **         fListMixedCaloEvents;    //! Container for photon stored for different events, used in case of own mixing, set in analysis class
+  Int_t            fLastMixedTracksEvent  ; //  Temporary container with the last event added to the mixing list for tracks
+  Int_t            fLastMixedCaloEvent ;    //  Temporary container with the last event added to the mixing list for photons
   
-  Bool_t           fWriteOutputDeltaAOD; // Write the created delta AOD objects into file  
-       Bool_t           fOldAOD;              // Old AODs, before revision 4.20
+  Bool_t           fWriteOutputDeltaAOD;    // Write the created delta AOD objects into file  
+       Bool_t           fOldAOD;                 // Old AODs, before revision 4.20
   
-  Int_t            fV0ADC[2]    ;        // Integrated V0 signal
-  Int_t            fV0Mul[2]    ;        // Integrated V0 Multiplicity
+  Int_t            fV0ADC[2]    ;           // Integrated V0 signal
+  Int_t            fV0Mul[2]    ;           // Integrated V0 Multiplicity
 
-  Bool_t           fCaloFilterPatch;             // CaloFilter patch
-  TString          fEMCALClustersListName;       // Alternative list of clusters produced elsewhere and not from InputEvent
+  Bool_t           fCaloFilterPatch;        // CaloFilter patch
+  TString          fEMCALClustersListName;  // Alternative list of clusters produced elsewhere and not from InputEvent
   
   // Event selection
   Float_t          fZvtxCut ;                     // Cut on vertex position
@@ -428,20 +516,30 @@ public:
   Bool_t           fDoV0ANDEventSelection;       // Select events depending on V0, fDoEventSelection should be on
   Bool_t           fUseEventsWithPrimaryVertex ; // Select events with primary vertex
   AliTriggerAnalysis* fTriggerAnalysis;          // Access to trigger selection algorithm for V0AND calculation
-  
+  Double_t         fPileUpParamSPD[5];           // Parameters to pass to method IsPileupFromSPD: Int_t minContributors,
+                                                 // Double_t minZdist, 
+                                                 // Double_t nSigmaZdist, 
+                                                 // Double_t nSigmaDiamXY, 
+                                                 // Double_t nSigmaDiamZ)
+  // Pile-up in EMCal
+  Int_t            fNPileUpClusters;             // Number of clusters with time avobe 20 ns
+  Int_t            fNNonPileUpClusters;          // Number of clusters with time below 20 ns
+  Int_t            fNPileUpClustersCut;          // Cut to select event as pile-up
+
   //Centrality/Event plane
-  TString          fCentralityClass;     // Name of selected centrality class     
-  Int_t            fCentralityOpt;       // Option for the returned value of the centrality, possible options 5, 10, 100
-  Int_t            fCentralityBin[2];    // Minimum and maximum value of the centrality for the analysis
-  TString          fEventPlaneMethod;    // Name of event plane method, by default "Q"
+  TString          fCentralityClass;        // Name of selected centrality class     
+  Int_t            fCentralityOpt;          // Option for the returned value of the centrality, possible options 5, 10, 100
+  Int_t            fCentralityBin[2];       // Minimum and maximum value of the centrality for the analysis
+  TString          fEventPlaneMethod;       // Name of event plane method, by default "Q"
   
   Bool_t           fImportGeometryFromFile; // Import geometry settings in geometry.root file
   TString          fImportGeometryFilePath; // path fo geometry.root file
 
+  
   AliCaloTrackReader(              const AliCaloTrackReader & r) ; // cpy ctor
   AliCaloTrackReader & operator = (const AliCaloTrackReader & r) ; // cpy assignment
   
-  ClassDef(AliCaloTrackReader,37)
+  ClassDef(AliCaloTrackReader,46)
   
 } ;