Extension for AOD
[u/mrichter/AliRoot.git] / ANALYSIS / AliEPSelectionTask.h
index 7f56495..2eb4c61 100644 (file)
@@ -27,6 +27,8 @@ class AliOADBContainer;
 class AliEPSelectionTask : public AliAnalysisTaskSE {
 
  public:
+  
+  enum ResoMethod{kRandom,kEta};
 
   AliEPSelectionTask();
   AliEPSelectionTask(const char *name);
@@ -38,26 +40,31 @@ class AliEPSelectionTask : public AliAnalysisTaskSE {
   virtual void Terminate(Option_t *option);
   
   TVector2 GetQ(AliEventplane* EP, TObjArray* event);
-  void GetQsub(TVector2& Qsub1, TVector2& Qsub2, TObjArray* event);
-  Double_t GetWeight(AliESDtrack* track);
-  Double_t GetPhiWeight(AliESDtrack* track);
-
-  virtual void  SetDebugLevel(Int_t level) {fDebug = level;}
-  void SetInput(const char* input)         {fAnalysisInput = input;}
-  void SetUseMCRP()                       {fUseMCRP = kTRUE;}
-  void SetUsePhiWeight()                  {fUsePhiWeight = kTRUE;}
-  void SetUsePtWeight()                           {fUsePtWeight = kTRUE;}
-  void SetSaveTrackContribution()         {fSaveTrackContribution = kTRUE;}
+  void GetQsub(TVector2& Qsub1, TVector2& Qsub2, TObjArray* event,AliEventplane* EP);
+  Double_t GetWeight(TObject* track1);
+  Double_t GetPhiWeight(TObject* track1);
+
+  virtual void  SetDebugLevel(Int_t level)   {fDebug = level;}
+  void SetInput(const char* input)           {fAnalysisInput = input;}
+  void SetUseMCRP()                         {fUseMCRP = kTRUE;}
+  void SetUsePhiWeight()                    {fUsePhiWeight = kTRUE;}
+  void SetUsePtWeight()                             {fUsePtWeight = kTRUE;}
+  void SetSaveTrackContribution()           {fSaveTrackContribution = kTRUE;}
   void SetTrackType(TString tracktype);
   void SetPhiDist();
   void SetPersonalESDtrackCuts(AliESDtrackCuts* trackcuts);
+  void SetPersonalAODtrackCuts(UInt_t filterbit = 1, Float_t etalow = -0.8, Float_t etaup = 0.8, Float_t ptlow = 0.5, Float_t ptup = 20.);
   void SetPersonalPhiDistribution(const char* filename, char* listname);
+  void SetEtaGap(Float_t etagap)             {fEtaGap = etagap;}
+  void SetSubeventsSplitMethod(Int_t method) {fSplitMethod = method;}
   
  private:
    
   AliEPSelectionTask(const AliEPSelectionTask& ep);
   AliEPSelectionTask& operator= (const AliEPSelectionTask& ep); 
 
+  TObjArray* GetAODTracksAndMaxID(AliAODEvent* aod, Int_t& maxid);
+
   TString  fAnalysisInput;             // "ESD", "AOD"
   TString  fTrackType;                 // "GLOBAL", "TPC"
   Bool_t   fUseMCRP;                   // i.e. usable for Therminator, when MC RP is provided
@@ -67,7 +74,11 @@ class AliEPSelectionTask : public AliAnalysisTaskSE {
   Bool_t   fUserphidist;               // bool, if personal phi distribution should be used
   Bool_t   fUsercuts;                  // bool, if personal cuts should be used
   Int_t    fRunNumber;                 // runnumber
+  UInt_t   fAODfilterbit;               // AOD filter bit for AOD track selection  
+  Float_t  fEtaGap;                     // Eta Gap between Subevent A and B
+  Int_t    fSplitMethod;                // Splitting Method for subevents
   
+
   AliESDtrackCuts* fESDtrackCuts;       // track cuts
   
   AliOADBContainer* fEPContainer;      //! OADB Container