ROOT logo
#ifndef ALIANALYSISTASKSPECTRAALLCHAOD_H
#define ALIANALYSISTASKSPECTRAALLCHAOD_H

/*  See cxx source for full Copyright notice */

//-------------------------------------------------------------------------
//                      AliAnalysisTaskSpectraAllChAOD
//
//
//
//
// Author: Leonardo Milano, CERN
//-------------------------------------------------------------------------

class AliAODEvent;
class AliSpectraAODTrackCuts;
class AliSpectraAODEventCuts;
class AliHelperPID;

#include "AliAnalysisTaskSE.h"

class AliAnalysisTaskSpectraAllChAOD : public AliAnalysisTaskSE
{
 public:
  // constructors
 AliAnalysisTaskSpectraAllChAOD() : AliAnalysisTaskSE(),
    fAOD(0x0),
    fTrackCuts(0x0),
    fEventCuts(0x0),
    fHelperPID(0x0),
    fIsMC(0),
    fDoDoubleCounting(0),
    fFillOnlyEvents(0),
    fCharge(0),
    fVZEROside(0),
    fOutput(0x0),
    fnCentBins(20),
    fnQvecBins(40),
    fnNchBins(200),
    fIsQvecCalibMode(0),
    fQvecUpperLim(100),
    fIsAOD160(1),
    fnDCABins(60),
    fDCAmin(-3),
    fDCAmax(3),
    fDCAzCut(0),
    fQst(1),
    fQtrk(0),
    fQgenType(0),
    fDoCentrSystCentrality(0)
      {}
  AliAnalysisTaskSpectraAllChAOD(const char *name);
  virtual ~AliAnalysisTaskSpectraAllChAOD() {
    Printf("calling detructor of AliAnalysisTaskSpectraAllChAOD - To be implemented");
  }
  
  void SetIsMC(Bool_t isMC = kFALSE)    {fIsMC = isMC; };
  Bool_t GetIsMC()           const           { return fIsMC;};
 
  void SetDoDoubleCounting(Bool_t doDoubleCounting = kFALSE)    {fDoDoubleCounting = doDoubleCounting; };
  Bool_t GetDoDoubleCounting()           const           { return fDoDoubleCounting;};
 
  void SetFillOnlyEvents(Bool_t fillOnlyEvents = kFALSE)    {fFillOnlyEvents = fillOnlyEvents; };
  Bool_t GetFillOnlyEvents()           const           { return fFillOnlyEvents;};
 
  void SetCharge(Int_t charge = 0)    {fCharge = charge; };
  Int_t GetCharge()           const           { return fCharge;};
  
  void SetVZEROside(Int_t side = 0)    {fVZEROside = side; };
  Int_t GetVZEROside()           const           { return fVZEROside;};
  
  virtual void   UserCreateOutputObjects();
  virtual void   UserExec(Option_t *option);
  virtual void   Terminate(Option_t *);
  
  AliSpectraAODTrackCuts      * GetTrackCuts()         {  return fTrackCuts; }
  AliSpectraAODEventCuts      * GetEventCuts()         {  return fEventCuts; }
  AliHelperPID                   * GetHelperPID()          { return fHelperPID; }
  TList                          * GetOutputList()         { return fOutput; }
  
  void SetTrackCuts(AliSpectraAODTrackCuts * tc)       { fTrackCuts = tc; }
  void SetEventCuts(AliSpectraAODEventCuts * vc)       { fEventCuts = vc; }
  void SetHelperPID(AliHelperPID* pid)                     { fHelperPID = pid; }
  void SetnCentBins(Int_t val)                             { fnCentBins = val; }
  void SetnQvecBins(Int_t val)                             { fnQvecBins = val; }
  void SetnNchBins(Int_t val)                             { fnNchBins = val; }
  void SetQvecCalibMode(Bool_t mode)                  { fIsQvecCalibMode = mode; }
  void SetQvecUpperLimit(Double_t val)                { fQvecUpperLim = val; }
  
  void SetIsAOD160(Bool_t aod)                        { fIsAOD160 = aod; }
  void SetnDCABin(Int_t val)                          { fnDCABins = val; } 
  void SetDCAmin(Double_t val)                        { fDCAmin = val; }
  void SetDCAmax(Double_t val)                        { fDCAmax = val; }
  Bool_t GetDCA(const AliAODTrack* trk, Double_t * p);
  void SetDCAzCut(Double_t val)                        { fDCAzCut = val; }
  
  void SetQStack(Int_t val) { fQst = val ; } // type==0 q-reco - type==1 qgen
  void SetQTrack(Int_t val) { fQtrk = val ; } // type==0 q-reco - type==1 qgen
  void SetQgenType(Int_t val) { fQgenType = val ; } // type==0 qgen from tracks - type==1 qgen from vzero
  
  void SetDoCentrSystCentrality(Bool_t val) { fDoCentrSystCentrality = val; } //enable systematic for centrality

 private:
  
  AliAODEvent                   * fAOD;                         //! AOD object
  AliSpectraAODTrackCuts      * fTrackCuts;                   // Track Cuts
  AliSpectraAODEventCuts      * fEventCuts;                   // Event Cuts
  AliHelperPID                   * fHelperPID;                    // points to class for PID
  Bool_t                          fIsMC;                         // true if processing MC
  Bool_t                          fDoDoubleCounting;           // true is double counting for Nsigma accepetd
  Bool_t                          fFillOnlyEvents;               // if true fill only NSparseHistEv
  Int_t                            fCharge;                      // charge to be selected
  Int_t                            fVZEROside;                  // 0: VZERO-A 1: VZERO-C
  TList                          * fOutput;                     // output list
  Int_t                            fnCentBins;                  // number of bins for the centrality axis
  Int_t                            fnQvecBins;                 // number of bins for the q vector axis
  Int_t                            fnNchBins;                 // number of bins for the Nch axis
  Bool_t                           fIsQvecCalibMode;          //calib mode for Qvector percentile
  Double_t                         fQvecUpperLim;             //Upper limit for Qvector
  Bool_t                           fIsAOD160;              // enable DCA for AOD160
  Int_t                            fnDCABins;              // number of bins for DCA axis
  Double_t                         fDCAmin;                // min DCA value
  Double_t                         fDCAmax;                // max DCA value
  Double_t                         fDCAzCut;               //cut on DCA z
  
  Int_t fQst; // type==0 q-reco - type==1 qgen
  Int_t fQtrk; // type==0 q-reco - type==1 qgen
  Int_t fQgenType; // type==0 qgen from tracks - type==1 qgen from vzero
  
  Bool_t fDoCentrSystCentrality; //systematic check on centrality estimation
  
  AliAnalysisTaskSpectraAllChAOD(const AliAnalysisTaskSpectraAllChAOD&);
  AliAnalysisTaskSpectraAllChAOD& operator=(const AliAnalysisTaskSpectraAllChAOD&);
  
  ClassDef(AliAnalysisTaskSpectraAllChAOD, 12);
};

#endif
 AliAnalysisTaskSpectraAllChAOD.h:1
 AliAnalysisTaskSpectraAllChAOD.h:2
 AliAnalysisTaskSpectraAllChAOD.h:3
 AliAnalysisTaskSpectraAllChAOD.h:4
 AliAnalysisTaskSpectraAllChAOD.h:5
 AliAnalysisTaskSpectraAllChAOD.h:6
 AliAnalysisTaskSpectraAllChAOD.h:7
 AliAnalysisTaskSpectraAllChAOD.h:8
 AliAnalysisTaskSpectraAllChAOD.h:9
 AliAnalysisTaskSpectraAllChAOD.h:10
 AliAnalysisTaskSpectraAllChAOD.h:11
 AliAnalysisTaskSpectraAllChAOD.h:12
 AliAnalysisTaskSpectraAllChAOD.h:13
 AliAnalysisTaskSpectraAllChAOD.h:14
 AliAnalysisTaskSpectraAllChAOD.h:15
 AliAnalysisTaskSpectraAllChAOD.h:16
 AliAnalysisTaskSpectraAllChAOD.h:17
 AliAnalysisTaskSpectraAllChAOD.h:18
 AliAnalysisTaskSpectraAllChAOD.h:19
 AliAnalysisTaskSpectraAllChAOD.h:20
 AliAnalysisTaskSpectraAllChAOD.h:21
 AliAnalysisTaskSpectraAllChAOD.h:22
 AliAnalysisTaskSpectraAllChAOD.h:23
 AliAnalysisTaskSpectraAllChAOD.h:24
 AliAnalysisTaskSpectraAllChAOD.h:25
 AliAnalysisTaskSpectraAllChAOD.h:26
 AliAnalysisTaskSpectraAllChAOD.h:27
 AliAnalysisTaskSpectraAllChAOD.h:28
 AliAnalysisTaskSpectraAllChAOD.h:29
 AliAnalysisTaskSpectraAllChAOD.h:30
 AliAnalysisTaskSpectraAllChAOD.h:31
 AliAnalysisTaskSpectraAllChAOD.h:32
 AliAnalysisTaskSpectraAllChAOD.h:33
 AliAnalysisTaskSpectraAllChAOD.h:34
 AliAnalysisTaskSpectraAllChAOD.h:35
 AliAnalysisTaskSpectraAllChAOD.h:36
 AliAnalysisTaskSpectraAllChAOD.h:37
 AliAnalysisTaskSpectraAllChAOD.h:38
 AliAnalysisTaskSpectraAllChAOD.h:39
 AliAnalysisTaskSpectraAllChAOD.h:40
 AliAnalysisTaskSpectraAllChAOD.h:41
 AliAnalysisTaskSpectraAllChAOD.h:42
 AliAnalysisTaskSpectraAllChAOD.h:43
 AliAnalysisTaskSpectraAllChAOD.h:44
 AliAnalysisTaskSpectraAllChAOD.h:45
 AliAnalysisTaskSpectraAllChAOD.h:46
 AliAnalysisTaskSpectraAllChAOD.h:47
 AliAnalysisTaskSpectraAllChAOD.h:48
 AliAnalysisTaskSpectraAllChAOD.h:49
 AliAnalysisTaskSpectraAllChAOD.h:50
 AliAnalysisTaskSpectraAllChAOD.h:51
 AliAnalysisTaskSpectraAllChAOD.h:52
 AliAnalysisTaskSpectraAllChAOD.h:53
 AliAnalysisTaskSpectraAllChAOD.h:54
 AliAnalysisTaskSpectraAllChAOD.h:55
 AliAnalysisTaskSpectraAllChAOD.h:56
 AliAnalysisTaskSpectraAllChAOD.h:57
 AliAnalysisTaskSpectraAllChAOD.h:58
 AliAnalysisTaskSpectraAllChAOD.h:59
 AliAnalysisTaskSpectraAllChAOD.h:60
 AliAnalysisTaskSpectraAllChAOD.h:61
 AliAnalysisTaskSpectraAllChAOD.h:62
 AliAnalysisTaskSpectraAllChAOD.h:63
 AliAnalysisTaskSpectraAllChAOD.h:64
 AliAnalysisTaskSpectraAllChAOD.h:65
 AliAnalysisTaskSpectraAllChAOD.h:66
 AliAnalysisTaskSpectraAllChAOD.h:67
 AliAnalysisTaskSpectraAllChAOD.h:68
 AliAnalysisTaskSpectraAllChAOD.h:69
 AliAnalysisTaskSpectraAllChAOD.h:70
 AliAnalysisTaskSpectraAllChAOD.h:71
 AliAnalysisTaskSpectraAllChAOD.h:72
 AliAnalysisTaskSpectraAllChAOD.h:73
 AliAnalysisTaskSpectraAllChAOD.h:74
 AliAnalysisTaskSpectraAllChAOD.h:75
 AliAnalysisTaskSpectraAllChAOD.h:76
 AliAnalysisTaskSpectraAllChAOD.h:77
 AliAnalysisTaskSpectraAllChAOD.h:78
 AliAnalysisTaskSpectraAllChAOD.h:79
 AliAnalysisTaskSpectraAllChAOD.h:80
 AliAnalysisTaskSpectraAllChAOD.h:81
 AliAnalysisTaskSpectraAllChAOD.h:82
 AliAnalysisTaskSpectraAllChAOD.h:83
 AliAnalysisTaskSpectraAllChAOD.h:84
 AliAnalysisTaskSpectraAllChAOD.h:85
 AliAnalysisTaskSpectraAllChAOD.h:86
 AliAnalysisTaskSpectraAllChAOD.h:87
 AliAnalysisTaskSpectraAllChAOD.h:88
 AliAnalysisTaskSpectraAllChAOD.h:89
 AliAnalysisTaskSpectraAllChAOD.h:90
 AliAnalysisTaskSpectraAllChAOD.h:91
 AliAnalysisTaskSpectraAllChAOD.h:92
 AliAnalysisTaskSpectraAllChAOD.h:93
 AliAnalysisTaskSpectraAllChAOD.h:94
 AliAnalysisTaskSpectraAllChAOD.h:95
 AliAnalysisTaskSpectraAllChAOD.h:96
 AliAnalysisTaskSpectraAllChAOD.h:97
 AliAnalysisTaskSpectraAllChAOD.h:98
 AliAnalysisTaskSpectraAllChAOD.h:99
 AliAnalysisTaskSpectraAllChAOD.h:100
 AliAnalysisTaskSpectraAllChAOD.h:101
 AliAnalysisTaskSpectraAllChAOD.h:102
 AliAnalysisTaskSpectraAllChAOD.h:103
 AliAnalysisTaskSpectraAllChAOD.h:104
 AliAnalysisTaskSpectraAllChAOD.h:105
 AliAnalysisTaskSpectraAllChAOD.h:106
 AliAnalysisTaskSpectraAllChAOD.h:107
 AliAnalysisTaskSpectraAllChAOD.h:108
 AliAnalysisTaskSpectraAllChAOD.h:109
 AliAnalysisTaskSpectraAllChAOD.h:110
 AliAnalysisTaskSpectraAllChAOD.h:111
 AliAnalysisTaskSpectraAllChAOD.h:112
 AliAnalysisTaskSpectraAllChAOD.h:113
 AliAnalysisTaskSpectraAllChAOD.h:114
 AliAnalysisTaskSpectraAllChAOD.h:115
 AliAnalysisTaskSpectraAllChAOD.h:116
 AliAnalysisTaskSpectraAllChAOD.h:117
 AliAnalysisTaskSpectraAllChAOD.h:118
 AliAnalysisTaskSpectraAllChAOD.h:119
 AliAnalysisTaskSpectraAllChAOD.h:120
 AliAnalysisTaskSpectraAllChAOD.h:121
 AliAnalysisTaskSpectraAllChAOD.h:122
 AliAnalysisTaskSpectraAllChAOD.h:123
 AliAnalysisTaskSpectraAllChAOD.h:124
 AliAnalysisTaskSpectraAllChAOD.h:125
 AliAnalysisTaskSpectraAllChAOD.h:126
 AliAnalysisTaskSpectraAllChAOD.h:127
 AliAnalysisTaskSpectraAllChAOD.h:128
 AliAnalysisTaskSpectraAllChAOD.h:129
 AliAnalysisTaskSpectraAllChAOD.h:130
 AliAnalysisTaskSpectraAllChAOD.h:131
 AliAnalysisTaskSpectraAllChAOD.h:132
 AliAnalysisTaskSpectraAllChAOD.h:133
 AliAnalysisTaskSpectraAllChAOD.h:134
 AliAnalysisTaskSpectraAllChAOD.h:135
 AliAnalysisTaskSpectraAllChAOD.h:136
 AliAnalysisTaskSpectraAllChAOD.h:137
 AliAnalysisTaskSpectraAllChAOD.h:138