]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGJE/UserTasks/AliAnalysisTaskPIDV0base.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGJE / UserTasks / AliAnalysisTaskPIDV0base.h
index e0a64448a072e55f6e6f5fe56314270cea2813e0..b652d262e851dbaf16dee28d2b409abf39eca630 100644 (file)
@@ -27,9 +27,11 @@ class AliVTrack;
 #include "AliInputEventHandler.h"
 #include "AliTOFPIDResponse.h"
 #include "AliAnalysisTaskSE.h"
+#include "AliAnalysisUtils.h"
 
 class AliAnalysisTaskPIDV0base : public AliAnalysisTaskSE {
  public:
+  enum PileUpRejectionType { kPileUpRejectionOff = 0, kPileUpRejectionSPD = 1, kPileUpRejectionMV = 2 };
   enum TPCcutType { kNoCut = 0, kTPCCutMIGeo = 1, kTPCnclCut = 2 };
   AliAnalysisTaskPIDV0base();
   AliAnalysisTaskPIDV0base(const char *name);
@@ -39,13 +41,15 @@ class AliAnalysisTaskPIDV0base : public AliAnalysisTaskSE {
   virtual void   UserExec(Option_t *option);
   virtual void   Terminate(const Option_t*);
   
-  virtual Bool_t GetVertexIsOk(AliVEvent* event) const;
+  virtual Bool_t GetVertexIsOk(AliVEvent* event, Bool_t doVtxZcut = kTRUE) const;
+  virtual Bool_t GetIsPileUp(AliVEvent* event, PileUpRejectionType pileUpRejectionType) const;
   
   virtual Bool_t GetIsPbpOrpPb() const { return fIsPbpOrpPb; };
   virtual void SetIsPbpOrpPb(Bool_t newValue) { fIsPbpOrpPb = newValue; };
   
   virtual Double_t GetZvtxCutEvent() const { return fZvtxCutEvent; };
-  virtual void SetZvtxCutEvent(Double_t newValue) { fZvtxCutEvent = newValue; };
+  virtual void SetZvtxCutEvent(Double_t newValue) { fZvtxCutEvent = newValue; if (fAnaUtils) fAnaUtils->SetMaxVtxZ(fZvtxCutEvent);};
   
   virtual Bool_t GetUsePhiCut() const { return fUsePhiCut; };
   virtual void SetUsePhiCut(Bool_t newValue) { fUsePhiCut = newValue; };
@@ -93,6 +97,9 @@ class AliAnalysisTaskPIDV0base : public AliAnalysisTaskSE {
   static Bool_t TPCnclCut(const AliVTrack* track);
   
  protected:
+  void FillV0PIDlist(AliESDEvent* esdEvent = 0x0);
+  void ClearV0PIDlist();
+  
   static Double_t fgCutGeo;   // Cut variable for TPCCutMIGeo concerning geometry
   static Double_t fgCutNcr; // Cut variable for TPCCutMIGeo concerning num crossed rows
   static Double_t fgCutNcl;  // Cut variable for TPCCutMIGeo concerning num clusters
@@ -106,6 +113,8 @@ class AliAnalysisTaskPIDV0base : public AliAnalysisTaskSE {
   AliPIDResponse *fPIDResponse;    //! PID response Handler
   AliESDv0KineCuts *fV0KineCuts;       //! ESD V0 kine cuts
   
+  AliAnalysisUtils *fAnaUtils; //! Object to use analysis utils like pile-up rejection
+  
   Bool_t fIsPbpOrpPb;       // Pbp/pPb collision or something else?
   Bool_t fUsePhiCut;        // Use cut on phi (useful for TPC)
   TPCcutType fTPCcutType;   // Type of TPC cut to be used
@@ -127,13 +136,10 @@ class AliAnalysisTaskPIDV0base : public AliAnalysisTaskSE {
   Int_t* fV0motherIndex; //! Pointer to array with index of the mother V0
   
  private:
-  void FillV0PIDlist(AliESDEvent* esdEvent = 0x0);
-  void ClearV0PIDlist();
-  
   AliAnalysisTaskPIDV0base(const AliAnalysisTaskPIDV0base&); // not implemented
   AliAnalysisTaskPIDV0base& operator=(const AliAnalysisTaskPIDV0base&); // not implemented
   
-  ClassDef(AliAnalysisTaskPIDV0base, 1);
+  ClassDef(AliAnalysisTaskPIDV0base, 3);
 };