1 #ifndef ALIANALYSISTASKSEHFQUALITYASSURANCE_H
2 #define ALIANALYSISTASKSEHFQUALITYASSURANCE_H
4 /* Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
9 //*************************************************************************
10 // Class AliAnalysisTaskSEHFQA
11 // AliAnalysisTaskSE for HF quality assurance
12 // Authors: C.Bianchin, chiara.bianchin@pd.infn.it
13 //*************************************************************************
18 #include "AliAnalysisTaskSE.h"
24 class AliFlowTrackCuts;
26 class AliAnalysisTaskSEHFQA : public AliAnalysisTaskSE
31 enum DecChannel {kDplustoKpipi,kD0toKpi,kDstartoKpipi,kDstoKKpi,kD0toKpipipi,kLambdactopKpi,kLambdactoV0};
33 AliAnalysisTaskSEHFQA();
34 AliAnalysisTaskSEHFQA(const char *name, DecChannel ch, AliRDHFCuts* cuts);
35 virtual ~AliAnalysisTaskSEHFQA();
37 // Implementation of interface methods
38 virtual void UserCreateOutputObjects();
40 virtual void LocalInit() {Init();}
41 virtual void UserExec(Option_t *option);
42 virtual void Terminate(Option_t *option);
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;}
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;}
69 AliAnalysisTaskSEHFQA(const AliAnalysisTaskSEHFQA &source);
70 AliAnalysisTaskSEHFQA operator=(const AliAnalysisTaskSEHFQA &source);
71 void FillFlowObs(AliAODEvent *aod);
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;
91 ClassDef(AliAnalysisTaskSEHFQA,10); //AnalysisTaskSE for the quality assurance of HF in hadrons