ROOT logo
#ifndef ALIANALYSISTASKPHIEFFMC_H
#define ALIANALYSISTASKPHIEFFMC_H

class TH1F;
class TH2F;
class TH3F;
class THnSparse;
class AliAODEvent;

#include "AliAnalysisTaskSE.h"
#include "AliHelperPID.h"
#include "AliAnalyseLeadingTrackUE.h"
class AliHelperPID;
class AliSpectraAODTrackCuts;
class AliSpectraAODEventCuts;
class AliAnalyseLeadingTrackUE;

class AliAnalysisTaskPhiEffMc : public AliAnalysisTaskSE
{
 public:
  
  // constructors
 AliAnalysisTaskPhiEffMc() : AliAnalysisTaskSE(), 
    fAOD(0x0),
    fIsMC(0),
    fOutput(0x0),
    fHelperPID(0x0),
    fTrackCuts(0x0),
    fEventCuts(0x0),
    fPtCut(0.),
    fDoPID(kTRUE)
      {}
  AliAnalysisTaskPhiEffMc(const char *name);
  virtual ~AliAnalysisTaskPhiEffMc() {}
  
  void SetIsMC(Bool_t isMC = kFALSE)    {fIsMC = isMC; }
  Bool_t GetIsMC()           const           { return fIsMC;}
  
  virtual void   UserCreateOutputObjects();
  virtual void   UserExec(Option_t *option);
  virtual void   Terminate(Option_t *);
  
  void SetHelperPID(AliHelperPID* pid)                     { fHelperPID = pid; }
  AliHelperPID                   * GetHelperPID()          { return fHelperPID; }

  AliSpectraAODTrackCuts      * GetTrackCuts()         {  return fTrackCuts; }
  AliSpectraAODEventCuts      * GetEventCuts()         {  return fEventCuts; }
  void SetTrackCuts(AliSpectraAODTrackCuts * tc)       { fTrackCuts = tc; }
  void SetEventCuts(AliSpectraAODEventCuts * vc)       { fEventCuts = vc; }

  void UnlikeSign(TObjArray* kaonsPos, TObjArray* kaonsNeg, THnSparseF* h, Double_t cent = -1);
  void LikeSign(TObjArray* kaonsPos, TObjArray* kaonsNeg, THnSparseF* h, Double_t cent = -1);
  TLorentzVector* makePhi(AliVParticle* p1, AliVParticle* p2);

  void SetPtCut(Double_t ptcut){fPtCut = ptcut;}
  void SetDoPID(Bool_t dopid){fDoPID = dopid;}
  Double_t GetPtCut(){return fPtCut;}
  Bool_t GetDoPID(){return fDoPID;}

 private:
  
  AliAODEvent           *fAOD;         //! AOD object
  Bool_t          fIsMC;// true if processing MC
  TList *fOutput; //! tlist with output  
  AliHelperPID                * fHelperPID;     // points to class for PID
  AliSpectraAODTrackCuts      * fTrackCuts;     // Track Cuts
  AliSpectraAODEventCuts      * fEventCuts;     // Event Cuts

  Double_t fPtCut;  // min pt cut on tracks (pt cut in AliSpectraAODTrackCuts is max pt)
  Bool_t fDoPID; // true -- do PID to select kaons, false -- no PID

  AliAnalysisTaskPhiEffMc(const AliAnalysisTaskPhiEffMc&);
  AliAnalysisTaskPhiEffMc& operator=(const AliAnalysisTaskPhiEffMc&);
  
  ClassDef(AliAnalysisTaskPhiEffMc, 3);
};

#endif
 AliAnalysisTaskPhiEffMc.h:1
 AliAnalysisTaskPhiEffMc.h:2
 AliAnalysisTaskPhiEffMc.h:3
 AliAnalysisTaskPhiEffMc.h:4
 AliAnalysisTaskPhiEffMc.h:5
 AliAnalysisTaskPhiEffMc.h:6
 AliAnalysisTaskPhiEffMc.h:7
 AliAnalysisTaskPhiEffMc.h:8
 AliAnalysisTaskPhiEffMc.h:9
 AliAnalysisTaskPhiEffMc.h:10
 AliAnalysisTaskPhiEffMc.h:11
 AliAnalysisTaskPhiEffMc.h:12
 AliAnalysisTaskPhiEffMc.h:13
 AliAnalysisTaskPhiEffMc.h:14
 AliAnalysisTaskPhiEffMc.h:15
 AliAnalysisTaskPhiEffMc.h:16
 AliAnalysisTaskPhiEffMc.h:17
 AliAnalysisTaskPhiEffMc.h:18
 AliAnalysisTaskPhiEffMc.h:19
 AliAnalysisTaskPhiEffMc.h:20
 AliAnalysisTaskPhiEffMc.h:21
 AliAnalysisTaskPhiEffMc.h:22
 AliAnalysisTaskPhiEffMc.h:23
 AliAnalysisTaskPhiEffMc.h:24
 AliAnalysisTaskPhiEffMc.h:25
 AliAnalysisTaskPhiEffMc.h:26
 AliAnalysisTaskPhiEffMc.h:27
 AliAnalysisTaskPhiEffMc.h:28
 AliAnalysisTaskPhiEffMc.h:29
 AliAnalysisTaskPhiEffMc.h:30
 AliAnalysisTaskPhiEffMc.h:31
 AliAnalysisTaskPhiEffMc.h:32
 AliAnalysisTaskPhiEffMc.h:33
 AliAnalysisTaskPhiEffMc.h:34
 AliAnalysisTaskPhiEffMc.h:35
 AliAnalysisTaskPhiEffMc.h:36
 AliAnalysisTaskPhiEffMc.h:37
 AliAnalysisTaskPhiEffMc.h:38
 AliAnalysisTaskPhiEffMc.h:39
 AliAnalysisTaskPhiEffMc.h:40
 AliAnalysisTaskPhiEffMc.h:41
 AliAnalysisTaskPhiEffMc.h:42
 AliAnalysisTaskPhiEffMc.h:43
 AliAnalysisTaskPhiEffMc.h:44
 AliAnalysisTaskPhiEffMc.h:45
 AliAnalysisTaskPhiEffMc.h:46
 AliAnalysisTaskPhiEffMc.h:47
 AliAnalysisTaskPhiEffMc.h:48
 AliAnalysisTaskPhiEffMc.h:49
 AliAnalysisTaskPhiEffMc.h:50
 AliAnalysisTaskPhiEffMc.h:51
 AliAnalysisTaskPhiEffMc.h:52
 AliAnalysisTaskPhiEffMc.h:53
 AliAnalysisTaskPhiEffMc.h:54
 AliAnalysisTaskPhiEffMc.h:55
 AliAnalysisTaskPhiEffMc.h:56
 AliAnalysisTaskPhiEffMc.h:57
 AliAnalysisTaskPhiEffMc.h:58
 AliAnalysisTaskPhiEffMc.h:59
 AliAnalysisTaskPhiEffMc.h:60
 AliAnalysisTaskPhiEffMc.h:61
 AliAnalysisTaskPhiEffMc.h:62
 AliAnalysisTaskPhiEffMc.h:63
 AliAnalysisTaskPhiEffMc.h:64
 AliAnalysisTaskPhiEffMc.h:65
 AliAnalysisTaskPhiEffMc.h:66
 AliAnalysisTaskPhiEffMc.h:67
 AliAnalysisTaskPhiEffMc.h:68
 AliAnalysisTaskPhiEffMc.h:69
 AliAnalysisTaskPhiEffMc.h:70
 AliAnalysisTaskPhiEffMc.h:71
 AliAnalysisTaskPhiEffMc.h:72
 AliAnalysisTaskPhiEffMc.h:73
 AliAnalysisTaskPhiEffMc.h:74
 AliAnalysisTaskPhiEffMc.h:75
 AliAnalysisTaskPhiEffMc.h:76
 AliAnalysisTaskPhiEffMc.h:77
 AliAnalysisTaskPhiEffMc.h:78