]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ANALYSIS/ESDfilter/AliAnalysisTaskESDfilter.h
Merge branch 'master_patch'
[u/mrichter/AliRoot.git] / ANALYSIS / ESDfilter / AliAnalysisTaskESDfilter.h
index 9e8dbed5e38c11b8be87a72a3021aec47289798a..cb9e192c76e3c19d357b0d03c2c5f38f50220f99 100644 (file)
@@ -25,79 +25,64 @@ class AliESDtrackCuts;
 class AliAnalysisTaskESDfilter : public AliAnalysisTaskSE
 {
  public:
-    AliAnalysisTaskESDfilter();
-    AliAnalysisTaskESDfilter(const char* name);
-    virtual ~AliAnalysisTaskESDfilter();
-    // Implementation of interface methods
-    virtual void   UserCreateOutputObjects();
-    virtual void   Init();
-    virtual void   LocalInit() {Init();}
-    virtual Bool_t Notify();
-    virtual void   UserExec(Option_t *option);
-    virtual void   Terminate(Option_t *option);
-
-    virtual void ConvertESDtoAOD();
-    // Setters
-    virtual void SetTrackFilter   (AliAnalysisFilter*   trackF) {fTrackFilter    =   trackF;}
-    virtual void SetTPCOnlyFilterMask (UInt_t filterMask)       {SetTPCConstrainedFilterMask(filterMask);}
-
-    virtual void SetTPCConstrainedFilterMask (UInt_t filterMask)       {fTPCConstrainedFilterMask    =  filterMask;}
-    virtual void SetHybridFilterMaskTPCConstrainedGlobal(UInt_t filterMask)  {fHybridFilterMaskTPCCG    =  filterMask;}
-    virtual void SetWriteHybridTPCConstrainedOnly(bool b){fWriteHybridTPCCOnly = b;}
-
-    virtual void SetGlobalConstrainedFilterMask (UInt_t filterMask)    {fGlobalConstrainedFilterMask    =  filterMask;}
-    virtual void SetHybridFilterMaskGlobalConstrainedGlobal(UInt_t filterMask)  {fHybridFilterMaskGCG    =  filterMask;}
-    virtual void SetWriteHybridGlobalConstrainedOnly(bool b){fWriteHybridGCOnly = b;}
-
-
-    virtual void SetKinkFilter    (AliAnalysisFilter*    KinkF) {fKinkFilter     =    KinkF;}
-    virtual void SetV0Filter      (AliAnalysisFilter*      V0F) {fV0Filter       =      V0F;}
-    virtual void SetCascadeFilter (AliAnalysisFilter* CascadeF) {fCascadeFilter  = CascadeF;}
-    virtual void SetPthreshold    (Double_t p)                  {fHighPthreshold =        p;}
-    virtual void SetPshape        (TF1 *func)                   {fPtshape        =     func;}
-    virtual void SetEnableFillAOD (Bool_t b)                    {fEnableFillAOD  =     b;}
-
-    virtual void SetAODPID(AliESDtrack *esdtrack, AliAODTrack *aodtrack, AliAODPid *detpid);
-    void SetDetectorRawSignals(AliAODPid *aodpid, AliESDtrack *track);
-
-    void SetV0Cuts(const Double_t cuts[7]) {for (Int_t icut = 0; icut<7; icut++) fV0Cuts[icut] = cuts[icut];}
-
-    void SetCascadeCuts(const Double_t cuts[8]) {for (Int_t icut = 0; icut<8; icut++) fCascadeCuts[icut] = cuts[icut];} 
-
-    void GetV0Cuts(Double_t cuts[7]) const {for (Int_t icut = 0; icut<7; icut++) cuts[icut] = fV0Cuts[icut];}
-
-    void GetCascadeCuts(Double_t cuts[8]) const {for (Int_t icut = 0; icut<8; icut++) cuts[icut] = fCascadeCuts[icut];}
-
-
+  AliAnalysisTaskESDfilter();
+  AliAnalysisTaskESDfilter(const char* name);
+  virtual ~AliAnalysisTaskESDfilter();
+  // Implementation of interface methods
+  virtual void   UserCreateOutputObjects();
+  virtual void   Init();
+  virtual void   LocalInit() {Init();}
+  virtual Bool_t Notify();
+  virtual void   UserExec(Option_t *option);
+  virtual void   Terminate(Option_t *option);
+  virtual void   ConvertESDtoAOD();
+
+  // Setters
+  virtual void SetTrackFilter   (AliAnalysisFilter*   trackF)                {fTrackFilter                 = trackF;}
+  virtual void SetTPCOnlyFilterMask (UInt_t filterMask)                      {SetTPCConstrainedFilterMask(filterMask);}
+  virtual void SetTPCConstrainedFilterMask (UInt_t filterMask)               {fTPCConstrainedFilterMask    = filterMask;}
+  virtual void SetHybridFilterMaskTPCConstrainedGlobal(UInt_t filterMask)    {fHybridFilterMaskTPCCG       = filterMask;}
+  virtual void SetWriteHybridTPCConstrainedOnly(bool b)                      {fWriteHybridTPCCOnly         = b;}
+  virtual void SetGlobalConstrainedFilterMask (UInt_t filterMask)            {fGlobalConstrainedFilterMask = filterMask;}
+  virtual void SetHybridFilterMaskGlobalConstrainedGlobal(UInt_t filterMask) {fHybridFilterMaskGCG         = filterMask;}
+  virtual void SetWriteHybridGlobalConstrainedOnly(bool b)    {fWriteHybridGCOnly = b;}
+  virtual void SetKinkFilter    (AliAnalysisFilter*    KinkF) {fKinkFilter        = KinkF;}
+  virtual void SetV0Filter      (AliAnalysisFilter*      V0F) {fV0Filter          = V0F;}
+  virtual void SetCascadeFilter (AliAnalysisFilter* CascadeF) {fCascadeFilter     = CascadeF;}
+  virtual void SetPthreshold    (Double_t p)                  {fHighPthreshold    = p;}
+  virtual void SetPshape        (TF1 *func)                   {fPtshape           = func;}
+  virtual void SetEnableFillAOD (Bool_t b)                    {fEnableFillAOD     = b;}
+  virtual void SetAODPID(AliESDtrack *esdtrack, AliAODTrack *aodtrack, AliAODPid *detpid);
+  void SetDetectorRawSignals(AliAODPid *aodpid, AliESDtrack *track);
+  void SetV0Cuts(const Double_t cuts[7]) {for (Int_t icut = 0; icut<7; icut++) fV0Cuts[icut] = cuts[icut];}
+  void SetCascadeCuts(const Double_t cuts[8]) {for (Int_t icut = 0; icut<8; icut++) fCascadeCuts[icut] = cuts[icut];} 
+  void GetV0Cuts(Double_t cuts[7]) const {for (Int_t icut = 0; icut<7; icut++) cuts[icut] = fV0Cuts[icut];}
+  void GetCascadeCuts(Double_t cuts[8]) const {for (Int_t icut = 0; icut<8; icut++) cuts[icut] = fCascadeCuts[icut];}
   Bool_t AddMetadataToUserInfo();
   void PrintTask(Option_t *option="all", Int_t indent=0) const;
-  
-  void DisableVZERO() { fIsVZEROEnabled = kFALSE; }
-  void DisableTZERO() { fIsTZEROEnabled = kFALSE; }
-  void DisableZDC()   { fIsZDCEnabled   = kFALSE; }
-  void DisableCascades() { fAreCascadesEnabled = kFALSE; }
-  void DisableV0s() { fAreV0sEnabled = kFALSE; }
-  void DisableKinks() { fAreKinksEnabled = kFALSE; }
-  void DisableTracks() { fAreTracksEnabled = kFALSE; }
-  void DisablePmdClusters() { fArePmdClustersEnabled = kFALSE; }
-  void DisableCaloClusters() { fAreCaloClustersEnabled = kFALSE; }
-  void DisableCells() { fAreEMCALCellsEnabled = fArePHOSCellsEnabled = kFALSE; }
-  void DisableCaloTrigger(TString calo = "PHOS") { if (calo.Contains("EMCAL")) fAreEMCALTriggerEnabled = kFALSE; else fArePHOSTriggerEnabled = kFALSE; }
-  void DisableTracklets() { fAreTrackletsEnabled = kFALSE; }
-  void DisableHMPID()  { fIsHMPIDEnabled = kFALSE; } 
-
-  void EnableV0CascadeVerticesReco() { fIsV0CascadeRecoEnabled = kTRUE; }
-
+  void DisableVZERO()        {fIsVZEROEnabled = kFALSE;}
+  void DisableTZERO()        {fIsTZEROEnabled = kFALSE;}
+  void DisableZDC()          {fIsZDCEnabled   = kFALSE;}
+  void DisableCascades()     {fAreCascadesEnabled = kFALSE;}
+  void DisableV0s()          {fAreV0sEnabled = kFALSE;}
+  void DisableKinks()        {fAreKinksEnabled = kFALSE;}
+  void DisableTracks()       {fAreTracksEnabled = kFALSE;}
+  void DisablePmdClusters()  {fArePmdClustersEnabled = kFALSE;}
+  void DisableCaloClusters() {fAreCaloClustersEnabled = kFALSE;}
+  void DisableCells()        {fAreEMCALCellsEnabled = fArePHOSCellsEnabled = kFALSE; }
+  void DisableCaloTrigger(TString calo = "PHOS") {if (calo.Contains("EMCAL")) fAreEMCALTriggerEnabled = kFALSE; else fArePHOSTriggerEnabled = kFALSE;}
+  void DisableTracklets()    {fAreTrackletsEnabled = kFALSE;}
+  void DisableHMPID()        {fIsHMPIDEnabled = kFALSE;} 
+  void EnableV0CascadeVerticesReco() {fIsV0CascadeRecoEnabled = kTRUE;}
   void SetPropagateTrackToEMCal(Bool_t propagate) {fDoPropagateTrackToEMCal = propagate;}
-  void SetEMCalSurfaceDistance(Double_t d) {fEMCalSurfaceDistance = d;}
-
+  void SetEMCalSurfaceDistance(Double_t d)        {fEMCalSurfaceDistance = d;}
   void SetRefitVertexTracks(Int_t algo=6, Double_t* cuts=0);
   
 private:
-    AliAnalysisTaskESDfilter(const AliAnalysisTaskESDfilter&);
-    AliAnalysisTaskESDfilter& operator=(const AliAnalysisTaskESDfilter&);
-    void PrintMCInfo(AliStack *pStack,Int_t label); // for debugging
-    Double_t Chi2perNDF(AliESDtrack* track);
+  AliAnalysisTaskESDfilter(const AliAnalysisTaskESDfilter&);
+  AliAnalysisTaskESDfilter& operator=(const AliAnalysisTaskESDfilter&);
+  void PrintMCInfo(AliStack *pStack,Int_t label); // for debugging
+  Double_t Chi2perNDF(AliESDtrack* track);
     
   AliAODHeader* ConvertHeader(const AliESDEvent& esd);
   void ConvertCascades(const AliESDEvent& esd);
@@ -126,66 +111,62 @@ private:
   TClonesArray& Cascades();
   
   // Filtering
-  AliAnalysisFilter* fTrackFilter;      //  Track   Filter
-  AliAnalysisFilter* fKinkFilter;       //  Kink    Filter
-  AliAnalysisFilter* fV0Filter;         //  V0      Filter
-  AliAnalysisFilter* fCascadeFilter;    //  Cascade Filter
-  // PID
-  Double_t     fHighPthreshold;    //  Pt threshold for detector signal setting
-  TF1 *        fPtshape;           //  Pt spectrum distribution
-  Bool_t       fEnableFillAOD;     //  value that decides if this task activates AOD filling
-  Bool_t* fUsedTrack; //! indices of used tracks
-  UInt_t* fUsedTrackCopy; //! filterbits of tracks for which a copy was added to the AODs
-  Bool_t* fUsedKink; //! indices of used kinks
-  Bool_t* fUsedV0; //! indices of used V0s
-  TRefArray* fAODTrackRefs; // array of track references
-  TRefArray* fAODV0VtxRefs; // array of v0 vertices references
-  TRefArray* fAODV0Refs ; // array of v0s references
-  AliMCEventHandler* fMChandler; // pointer to MC handler (if any)
-  Int_t fNumberOfTracks; // current number of tracks
-  Int_t fNumberOfPositiveTracks; // current number of positive tracks
-  Int_t fNumberOfV0s; // current number of v0s
-  Int_t fNumberOfVertices; // current number of vertices
-  Int_t fNumberOfCascades; // current number of cascades
-  Int_t fNumberOfKinks; // current number of kinks
-  Bool_t fOldESDformat; // is the ESD in old format ?
-  AliAODVertex* fPrimaryVertex; // pointer to primary vertex of the event
-  UInt_t fTPCConstrainedFilterMask;      //  Filter Mask used to select and store refitted TPC only tracks
-  UInt_t fHybridFilterMaskTPCCG; //  Filter Mask used to mark global tracks as hybrid
-  Bool_t fWriteHybridTPCCOnly;// write only the complent tracks not all global constrained
-
-  UInt_t fGlobalConstrainedFilterMask; //  Filter Mask used to select and store refitted TPC only tracks
-  UInt_t fHybridFilterMaskGCG;  //  Filter Mask used to mark global tracks as hybrid
-  Bool_t fWriteHybridGCOnly;// write only the complent tracks not all global constrained
-
-  Bool_t fIsVZEROEnabled; // whether or not to fill the vzero branch (true by default)
-  Bool_t fIsTZEROEnabled; // whether or not to fill the tzero branch (true by default)
-  Bool_t fIsZDCEnabled; // whether or not to fill the zdc branch (true by default)
-  Bool_t fIsHMPIDEnabled; // whether or not to fill the hmpid branch (true by default) 
-  Bool_t fIsV0CascadeRecoEnabled; // whether or not to reconstruct again V0s and cascades (false by default)
-  Bool_t fAreCascadesEnabled; // whether or not to fill the cascades branch (true by default)
-  Bool_t fAreV0sEnabled; // whether or not to fill the v0 branch (true by default)
-  Bool_t fAreKinksEnabled; // whether or not to fill the kinks (true by default)
-  Bool_t fAreTracksEnabled; // whether or not to fill the (central) tracks branch (true by default)
-  Bool_t fArePmdClustersEnabled; // whether or not to fill the pmd clusters (true by default)
-  Bool_t fAreCaloClustersEnabled; // whether or not to fill the calo clusters (true by default)
-  Bool_t fAreEMCALCellsEnabled; // whether or not to fill the emcal cells (true by default)
-  Bool_t fArePHOSCellsEnabled; // whether or not to fill the phos cells (true by default)
-  Bool_t fAreEMCALTriggerEnabled; // whether or not to fill the emcal trigger (true by default)
-  Bool_t fArePHOSTriggerEnabled; // whether or not to fill the phos trigger (true by default)
-  Bool_t fAreTrackletsEnabled; // whether or not to fill the tracklets (true by default)
-  Bool_t fIsTRDEnabled; // whether or not to fill on-line tracklets and tracks from TRD (true by default)
-  AliESDpid* fESDpid; // esd pid
-  Bool_t fIsPidOwner; // whether we own fESDpid
-  AliESDtrackCuts* fTPCaloneTrackCuts; // TPC stand-alone track cuts
-  Double_t        fV0Cuts[7];       // Array to store the values for the different reco selections V0 related
-  Double_t        fCascadeCuts[8];  // Array to store the values for the different reco selections cascades related
-  Bool_t fDoPropagateTrackToEMCal;  // whether or not to propagate the tracks to the EMCal surface -- true by default
-  Double_t fEMCalSurfaceDistance;   // EMCal surface distance from the center of the detector (r = 440 by default)
-  //
-  Int_t     fRefitVertexTracks;      // request to refit the vertex if >=0 (algoID if cuts not supplied, otherwise ncuts)
-  Int_t     fRefitVertexTracksNCuts; // number of cut parameters
-  Double_t* fRefitVertexTracksCuts;  //[fRefitVertexTracksNCuts] optional cuts for vertex refit
+  AliAnalysisFilter* fTrackFilter;                 // Track   Filter
+  AliAnalysisFilter* fKinkFilter;                  // Kink    Filter
+  AliAnalysisFilter* fV0Filter;                    // V0      Filter
+  AliAnalysisFilter* fCascadeFilter;               // Cascade Filter
+  Double_t           fHighPthreshold;              // Pt threshold for detector signal setting
+  TF1 *              fPtshape;                     // Pt spectrum distribution
+  Bool_t             fEnableFillAOD;               // value that decides if this task activates AOD filling
+  Bool_t*            fUsedTrack;                   //! indices of used tracks
+  UInt_t*            fUsedTrackCopy;               //! filterbits of tracks for which a copy was added to the AODs
+  Bool_t*            fUsedKink;                    //! indices of used kinks
+  Bool_t*            fUsedV0;                      //! indices of used V0s
+  TRefArray*         fAODTrackRefs;                // array of track references
+  TRefArray*         fAODV0VtxRefs;                // array of v0 vertices references
+  TRefArray*         fAODV0Refs;                   // array of v0s references
+  AliMCEventHandler* fMChandler;                   // pointer to MC handler (if any)
+  Int_t              fNumberOfTracks;              // current number of tracks
+  Int_t              fNumberOfPositiveTracks;      // current number of positive tracks
+  Int_t              fNumberOfV0s;                 // current number of v0s
+  Int_t              fNumberOfVertices;            // current number of vertices
+  Int_t              fNumberOfCascades;            // current number of cascades
+  Int_t              fNumberOfKinks;               // current number of kinks
+  Bool_t             fOldESDformat;                // is the ESD in old format ?
+  AliAODVertex*      fPrimaryVertex;               // pointer to primary vertex of the event
+  UInt_t             fTPCConstrainedFilterMask;    // Filter Mask used to select and store refitted TPC only tracks
+  UInt_t             fHybridFilterMaskTPCCG;       // Filter Mask used to mark global tracks as hybrid
+  Bool_t             fWriteHybridTPCCOnly;         // write only the complent tracks not all global constrained
+  UInt_t             fGlobalConstrainedFilterMask; // Filter Mask used to select and store refitted TPC only tracks
+  UInt_t             fHybridFilterMaskGCG;         // Filter Mask used to mark global tracks as hybrid
+  Bool_t             fWriteHybridGCOnly;           // write only the complent tracks not all global constrained
+  Bool_t             fIsVZEROEnabled;              // whether or not to fill the vzero branch (true by default)
+  Bool_t             fIsTZEROEnabled;              // whether or not to fill the tzero branch (true by default)
+  Bool_t             fIsZDCEnabled;                // whether or not to fill the zdc branch (true by default)
+  Bool_t             fIsHMPIDEnabled;              // whether or not to fill the hmpid branch (true by default) 
+  Bool_t             fIsV0CascadeRecoEnabled;      // whether or not to reconstruct again V0s and cascades (false by default)
+  Bool_t             fAreCascadesEnabled;          // whether or not to fill the cascades branch (true by default)
+  Bool_t             fAreV0sEnabled;               // whether or not to fill the v0 branch (true by default)
+  Bool_t             fAreKinksEnabled;             // whether or not to fill the kinks (true by default)
+  Bool_t             fAreTracksEnabled;            // whether or not to fill the (central) tracks branch (true by default)
+  Bool_t             fArePmdClustersEnabled;       // whether or not to fill the pmd clusters (true by default)
+  Bool_t             fAreCaloClustersEnabled;      // whether or not to fill the calo clusters (true by default)
+  Bool_t             fAreEMCALCellsEnabled;        // whether or not to fill the emcal cells (true by default)
+  Bool_t             fArePHOSCellsEnabled;         // whether or not to fill the phos cells (true by default)
+  Bool_t             fAreEMCALTriggerEnabled;      // whether or not to fill the emcal trigger (true by default)
+  Bool_t             fArePHOSTriggerEnabled;       // whether or not to fill the phos trigger (true by default)
+  Bool_t             fAreTrackletsEnabled;         // whether or not to fill the tracklets (true by default)
+  Bool_t             fIsTRDEnabled;                // whether or not to fill on-line tracklets and tracks from TRD (true by default)
+  AliESDpid*         fESDpid;                      // esd pid
+  Bool_t             fIsPidOwner;                  // whether we own fESDpid
+  AliESDtrackCuts*   fTPCaloneTrackCuts;           // TPC stand-alone track cuts
+  Double_t           fV0Cuts[7];                   // Array to store the values for the different reco selections V0 related
+  Double_t           fCascadeCuts[8];              // Array to store the values for the different reco selections cascades related
+  Bool_t             fDoPropagateTrackToEMCal;     // whether or not to propagate the tracks to the EMCal surface -- true by default
+  Double_t           fEMCalSurfaceDistance;        // EMCal surface distance from the center of the detector (r = 440 by default)
+  Int_t              fRefitVertexTracks;           // request to refit the vertex if >=0 (algoID if cuts not supplied, otherwise ncuts)
+  Int_t              fRefitVertexTracksNCuts;      // number of cut parameters
+  Double_t*          fRefitVertexTracksCuts;       //[fRefitVertexTracksNCuts] optional cuts for vertex refit
   
   ClassDef(AliAnalysisTaskESDfilter, 19); // Analysis task for standard ESD filtering
 };