]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ANALYSIS/AliAnalysisTaskESDfilter.h
Modified support macro AddMisalignmentToClusters.C
[u/mrichter/AliRoot.git] / ANALYSIS / AliAnalysisTaskESDfilter.h
index 7fb060ad194c3f69b355858dcd1fe69fea3c1efe..d31f29c65c2d9f03f0a65cc1588e422bb09d9206 100644 (file)
@@ -20,13 +20,14 @@ class AliESDtrack;
 class AliMCEventHandler;
 class TRefArray;
 class AliAODHeader;
+class AliESDtrackCuts;
 
 class AliAnalysisTaskESDfilter : public AliAnalysisTaskSE
 {
  public:
     AliAnalysisTaskESDfilter();
     AliAnalysisTaskESDfilter(const char* name);
-    virtual ~AliAnalysisTaskESDfilter() {;}
+    virtual ~AliAnalysisTaskESDfilter();
     // Implementation of interface methods
     virtual void   UserCreateOutputObjects();
     virtual void   Init();
@@ -37,7 +38,17 @@ class AliAnalysisTaskESDfilter : public AliAnalysisTaskSE
     virtual void ConvertESDtoAOD();
     // Setters
     virtual void SetTrackFilter   (AliAnalysisFilter*   trackF) {fTrackFilter    =   trackF;}
-    virtual void SetTPCOnlyFilterMask (UInt_t filterMask)       {fTPCOnlyFilterMask    =  filterMask;}
+    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;}
@@ -45,12 +56,23 @@ class AliAnalysisTaskESDfilter : public AliAnalysisTaskSE
     virtual void SetPshape        (TF1 *func)                   {fPtshape        =     func;}
     virtual void SetEnableFillAOD (Bool_t b)                    {fEnableFillAOD  =     b;}
 
-    virtual void SetAODPID(AliESDtrack *esdtrack, AliAODTrack *aodtrack, AliAODPid *detpid, Double_t bfield);
-    void SetDetectorRawSignals(AliAODPid *aodpid, AliESDtrack *track, Double_t bfield);
+    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];}
+
 
   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; }
@@ -58,8 +80,13 @@ class AliAnalysisTaskESDfilter : public AliAnalysisTaskSE
   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 EnableV0CascadeVerticesReco() { fIsV0CascadeRecoEnabled = kTRUE; }
+
+  void SetPropagateTrackToEMCal(Bool_t propagate) {fDoPropagateTrackToEMCal = propagate;}
+
   virtual void SetTimeZeroType(AliESDpid::EStartTimeType_t tofTimeZeroType) {fTimeZeroType = tofTimeZeroType;}
   
 private:
@@ -78,10 +105,14 @@ private:
   void ConvertCaloClusters(const AliESDEvent& esd);
   void ConvertEMCALCells(const AliESDEvent& esd);
   void ConvertPHOSCells(const AliESDEvent& esd);
+  void ConvertCaloTrigger(TString calo, const AliESDEvent& esd);
   void ConvertTracklets(const AliESDEvent& esd);
   void ConvertTPCOnlyTracks(const AliESDEvent& esd);
+  void ConvertGlobalConstrainedTracks(const AliESDEvent& esd);
   void ConvertVZERO(const AliESDEvent& esd);
-  
+  void ConvertTZERO(const AliESDEvent& esd);
+  void ConvertZDC(const AliESDEvent& esd);
   TClonesArray& Tracks();
   TClonesArray& V0s();
   TClonesArray& Vertices();
@@ -111,8 +142,18 @@ private:
   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 fTPCOnlyFilterMask; //  Filter Mask used to select and store refitted TPC only tracks
+  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 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)
@@ -121,12 +162,19 @@ private:
   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)
   AliESDpid* fESDpid; // esd pid
   Bool_t fIsPidOwner; // whether we own fESDpid
   Int_t fTimeZeroType;  //  time zero type 
+  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 EMCal surface (430cm) -- true by default
+  
   
-  ClassDef(AliAnalysisTaskESDfilter, 8); // Analysis task for standard ESD filtering
+  ClassDef(AliAnalysisTaskESDfilter, 14); // Analysis task for standard ESD filtering
 };
+
 #endif