]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/vertexingHF/AliAnalysisTaskSEHFQA.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / AliAnalysisTaskSEHFQA.h
1 #ifndef ALIANALYSISTASKSEHFQUALITYASSURANCE_H
2 #define ALIANALYSISTASKSEHFQUALITYASSURANCE_H
3
4 /* Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id$ */ 
8
9 //*************************************************************************
10 // Class AliAnalysisTaskSEHFQA
11 // AliAnalysisTaskSE for HF quality assurance
12 // Authors: C.Bianchin, chiara.bianchin@pd.infn.it
13 //*************************************************************************
14
15 #include <TROOT.h>
16 #include <TSystem.h>
17
18 #include "AliAnalysisTaskSE.h"
19
20 class AliRDHFCuts;
21 class TH1F;
22 class AliAODEvent;
23 class AliFlowEvent;
24 class AliFlowTrackCuts;
25
26 class AliAnalysisTaskSEHFQA : public AliAnalysisTaskSE
27 {
28
29  public:
30
31   enum DecChannel {kDplustoKpipi,kD0toKpi,kDstartoKpipi,kDstoKKpi,kD0toKpipipi,kLambdactopKpi,kLambdactoV0};
32
33   AliAnalysisTaskSEHFQA();
34   AliAnalysisTaskSEHFQA(const char *name, DecChannel ch, AliRDHFCuts* cuts);
35   virtual ~AliAnalysisTaskSEHFQA();
36
37   // Implementation of interface methods
38   virtual void UserCreateOutputObjects();
39   virtual void Init();
40   virtual void LocalInit() {Init();}
41   virtual void UserExec(Option_t *option);
42   virtual void Terminate(Option_t *option);
43
44   //setters
45   void SetReadMC(Bool_t mcflag){fReadMC=mcflag;}
46   void SetSimpleMode(Bool_t flag){fSimpleMode=flag;}
47   void SetTrackOn(Bool_t trackon=kTRUE){fOnOff[0]=trackon;}
48   void SetPIDOn(Bool_t pidon=kTRUE){fOnOff[1]=pidon;}
49   void SetCentralityOn(Bool_t centron=kTRUE){fOnOff[2]=centron;}
50   void SetEvSelectionOn(Bool_t evselon=kTRUE){fOnOff[3]=evselon;}
51   void SetFlowObsOn(Bool_t flowobson=kTRUE){fOnOff[4]=flowobson;}
52   void SetUseSelectionBit(Bool_t selectionbiton=kTRUE){fUseSelectionBit=selectionbiton;}
53   void SetSecondCentralityEstimator(AliRDHFCuts::ECentrality est){fEstimator = est;}
54   void SetFillDistributionsForTrackEffChecks(Bool_t filldistrtrackeffcheckson=kFALSE){fFillDistrTrackEffChecks = filldistrtrackeffcheckson;}
55
56   //getters
57   AliRDHFCuts* GetCutObject() const {return fCuts;}
58   DecChannel GetDecayChannel()const {return fDecayChannel;}
59   Bool_t GetTrackStatus() const {return fOnOff[0];}
60   Bool_t GetPIDStatus() const {return fOnOff[1];}
61   Bool_t GetCentralityStatus() const {return fOnOff[2];}
62   Bool_t GetEvSelStatus() const {return fOnOff[3];}
63   Bool_t GetFlowObsStatus() const {return fOnOff[4];}
64   Bool_t GetUseSelectionBit() const {return fUseSelectionBit;}
65   AliRDHFCuts::ECentrality GetSecondCentralityEstimator()const {return fEstimator;}
66   Bool_t GetFillDistributionsForTrackEffChecks()const {return fFillDistrTrackEffChecks;}
67
68  private:
69   AliAnalysisTaskSEHFQA(const AliAnalysisTaskSEHFQA &source);
70   AliAnalysisTaskSEHFQA operator=(const AliAnalysisTaskSEHFQA &source);
71   void FillFlowObs(AliAODEvent *aod);
72
73  TList* fOutputEntries;    //! list sent on output slot 1
74  TList* fOutputPID;        //! list sent on output slot 2
75  TList* fOutputTrack;      //! list sent on output slot 3
76  TList* fOutputCounters;   //! list sent on output slot 5
77  TList* fOutputCheckCentrality;   //! list sent on output slot 6
78  TList* fOutputEvSelection; //! list sent on output slot 7
79  TList* fOutputFlowObs;    //! list sent on output slot 8
80  DecChannel fDecayChannel; //identify the decay channel
81  AliRDHFCuts* fCuts;       // object containing cuts 
82  AliFlowEvent *fFlowEvent; //! to handle the reusage of the flowEvent object
83  AliFlowTrackCuts *fRFPcuts; //! reference flow particle cuts
84  AliRDHFCuts::ECentrality fEstimator; //2nd estimator for centrality
85  Bool_t fReadMC;           // flag to read MC
86  Bool_t fSimpleMode;       // if true, don't do candidates (much faster in PbPb)
87  Bool_t fUseSelectionBit;  // flag to use or not the selection bit
88  Bool_t fOnOff[5];         // on-off the QA on tracks (0), PID (1), centrality (2), event selection -- default is {kTRUE,kTRUE,kTRUE,kTRUE}
89  Bool_t fFillDistrTrackEffChecks;
90
91  ClassDef(AliAnalysisTaskSEHFQA,10); //AnalysisTaskSE for the quality assurance of HF in hadrons
92
93 };
94
95 #endif
96