]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/hfe/AliAnalysisTaskFlowITSTPCTOFQCSP.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGHF / hfe / AliAnalysisTaskFlowITSTPCTOFQCSP.h
1 #ifndef ALIANALYSISTASKFLOWITSTPCTOFQCSP_H
2 #define ALIANALYSISTASKFLOWITSTPCTOFQCSP_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 ////////////////////////////////////////////////////////////////////////
8 //                                                                    //
9 //  Task for Heavy Flavour Electron Flow  TPC plus TOF                //
10 //                                                                    //
11 //  Author: Andrea Dubla (Utrecht University)                         //
12 //                                                                    //
13 ////////////////////////////////////////////////////////////////////////
14
15 class THnSparse;
16 class TH2F;
17 class TLorentzVector;
18 class AliMagF;
19 class AliESDEvent;
20 class AliAODEvent;
21 class AliAnalysisFilter;
22 class AliESDtrackCuts;
23 class AliESDtrack;
24 class AliAODtrack;
25 class AliHFEcontainer;
26 class AliHFEcuts;
27 class AliHFEpid;
28 class AliHFEpidQAmanager;
29 class AliCFManager;
30 class AliFlowTrackCuts;
31 class AliFlowTrack;
32 class AliFlowEvent;
33 class AliFlowCandidateTrack;
34 class AliFlowEventSimple;
35 class AliCentrality;
36 class AliPIDResponse;
37 class AliSelectNonHFE;
38 #include "AliAnalysisTaskSE.h"
39
40
41 class AliAnalysisTaskFlowITSTPCTOFQCSP : public AliAnalysisTaskSE {
42     
43 public:
44     AliAnalysisTaskFlowITSTPCTOFQCSP();
45     AliAnalysisTaskFlowITSTPCTOFQCSP(const char *name);
46     virtual ~AliAnalysisTaskFlowITSTPCTOFQCSP();
47     
48     void                                 SetEnableDebugMode() {fDebug = kTRUE; };
49     void                                 SetCentralityParameters(Double_t CentralityMin, Double_t CentralityMax, const char* CentralityMethod); //select centrality
50     void                                 CheckCentrality(AliAODEvent *event,Bool_t &centralitypass); //to use only events with the correct centrality....
51     void                                 SelectPhotonicElectron(Int_t itrack,const AliAODTrack *track, Bool_t &fFlagPhotonicElec);
52     void                                 SelectPhotonicElectronMethod(Bool_t dca){fDCA = dca;}
53     void                                 SetInvariantMassCut(Double_t invmass) {fInvmassCut = invmass;};
54     void                                 SetpTCuttrack(Double_t ptcutmin, Double_t ptcutmax);
55     void                                 SetTrigger(Int_t trig) {fTrigger = trig;};
56     void                                 SetTPCS(Int_t sig) {fTPCS = sig;};
57     void                                 SetVz(Int_t ver) {fVz = ver;};
58 //    void                                 SetQAPIDSparse(Bool_t qapidsparse) {fQAPIDSparse = qapidsparse;};
59     void                                 SetOpeningAngleflag(Bool_t opang){fOP_angle = opang;};
60     void                                 SetOpeningAngleCut(Double_t opanglecut) {fOpeningAngleCut = opanglecut;};
61     template <typename T> void           PlotVZeroMultiplcities(const T* event) const;
62     template <typename T> void           SetNullCuts(T* aod);
63     void                                 PrepareFlowEvent(Int_t iMulti, AliFlowEvent *FlowEv) const;
64     virtual void                         UserCreateOutputObjects();
65     virtual void                         UserExec(Option_t *option);
66     virtual void                         Terminate(Option_t *);
67     void                                 SetRPCuts(AliFlowTrackCuts *cutsRP) { fCutsRP = cutsRP; }
68     void                                 SetHFECuts(AliHFEcuts * const cuts) { fCuts = cuts; };
69     void                                 SetIDCuts(Double_t minTOFnSigma, Double_t maxTOFnSigma, Double_t minITSnsigmalowpt, Double_t maxITSnsigmalowpt,Double_t minITSnsigmahighpt, Double_t maxITSnsigmahighpt, Double_t minTPCnsigmalowpt, Double_t maxTPCnsigmalowpt,Double_t minTPCnsigmahighpt, Double_t maxTPCnsigmahighpt );
70     
71     void                                 SetMultCorrelationCut(Bool_t multcut) {fMultCut = multcut;};
72     void                                 SetHistoForCentralityFlattening(TH1F *h,Double_t minCentr,Double_t maxCentr,Double_t centrRef=0.,Int_t switchTRand=0);
73     Bool_t                               IsEventSelectedForCentrFlattening(Float_t centvalue);
74     
75     
76     AliHFEpid *GetPID() const { return fPID; };
77     
78 private:
79     
80     Bool_t ProcessCutStep(Int_t cutStep, AliVParticle *track);
81     
82     Bool_t               fDebug; //! enable debug mode
83     AliAODEvent          *fAOD;                     //AOD object
84     TList                *fOutputList;          //output list
85     AliHFEcuts           *fCuts;                 //Cut Collection
86     Bool_t               fIdentifiedAsOutInz;    //Out Of Range in z
87     Bool_t               fPassTheEventCut;       //Pass The Event Cut
88     AliCFManager         *fCFM;                  //!Correction Framework Manager
89     AliHFEpid            *fPID;                  //PID
90     AliHFEpidQAmanager   *fPIDqa;             //! PID QA manager
91     AliFlowTrackCuts     *fCutsRP; // track cuts for reference particles
92     AliFlowTrackCuts     *fNullCuts; // dummy cuts for flow event tracks
93     AliFlowEvent         *fFlowEvent; //! flow events Inclusive e
94     const char           *fkCentralityMethod; // method used to determine centrality (V0 by default)
95     Double_t             fCentrality; // event centrality for QA
96     Double_t             fCentralityMin; // lower bound of cenrality bin
97     Double_t             fCentralityMax; // upper bound of centrality bin
98     Double_t             fInvmassCut;           //invariant mass cut value
99     Double_t             fpTCutmin;    //pt cut value min
100     Double_t             fpTCutmax;    //pt cut value max
101     Int_t                fTrigger;          //invariant mass cut value
102     TH1F                 *fPhi; //! QA plot of azimuthal distribution of tracks used for event plane estimation
103     TH1F                 *fEta; //! QA plot of eta distribution of tracks used for event plane estimation
104     TH1F                 *fVZEROA; //! QA plot vzeroa multiplicity (all tracks in event)
105     TH1F                 *fVZEROC; //! QA plot vzeroc multiplicity (all tracks in event)
106     TH1F                 *fTPCM; //! QA plot TPC multiplicity (tracks used for event plane estimation)
107     TH1F                 *fNoEvents;            //no of events
108     TH1F                 *fInclusiveElecPt; // Inclusive elec pt
109     TH2F                 *fTPCnsigma;               //TPC n sigma vs p
110     TH2F                 *fTPCnsigmaAft;                //TPC n sigma vs p after HFE pid
111     TH2F                 *fITSnsigmaAft;                //ITS n sigma vs p after HFE pid
112     TH2F                 *fTPCnsigmaVSptAft;   //lodviow
113     TH2F                 *fTOFns;           //track TOFnSigma
114     TH2F                 *fTOFnsAft;                //track TOFnSigma after PID
115     TH2F                 *fTOFBetaAft;
116     TH1F                 *fCentralityPass; // ! QA histogram of events that pass centrality cut
117     TH1F                 *fCentralityNoPass; //! QA histogram of events that do not pass centrality cut
118     TH1F                 *fInvmassLS1; //LS Invmass for all rec par
119     TH1F                 *fInvmassULS1;//ULS Invmass for all rec par
120     TH1F                 *fPhotoElecPt;             //photonic elec pt
121     TH1F                 *fSemiInclElecPt;  //Semi inclusive ele pt
122     TH1F                 *fULSElecPt; //ULS elec Pt
123     TH1F                 *fLSElecPt;// LS elec pt
124     TH2F                 *fMultCorAfterCuts; //! QA profile global and tpc multiplicity after outlier cut
125     TH2F                 *fMultvsCentr; //! QA profile of centralty vs multiplicity
126     TProfile             *fSubEventDPhiv2;
127     TH1D                 *EPVzA;//ep v0a
128     TH1D                 *EPVzC;//ep v0c
129     TH1D                 *EPTPC;//ep tpc
130     THnSparseF           *fV2Phi;//! v2 analysis of EP-V0
131     TH1D                 *fvertex;//vertex
132     TH2F                 *fMultCorBeforeCuts; //! QA profile global and tpc multiplicity after outlier cut
133     THnSparseF           *fQAPid;             //! v2 analysis of EP-V0
134     Double_t             fminITSnsigmaLowpT;  //ID cuts its
135     Double_t             fmaxITSnsigmaLowpT;  //ID cuts its
136     Double_t             fminITSnsigmaHighpT;  //ID cuts its
137     Double_t             fmaxITSnsigmaHighpT;  //ID cuts its
138     Double_t             fminTPCnsigmaLowpT;  //ID cuts tpc
139     Double_t             fmaxTPCnsigmaLowpT;  //ID cuts tpc
140     Double_t             fminTPCnsigmaHighpT;  //ID cuts tpc
141     Double_t             fmaxTPCnsigmaHighpT;  //ID cuts tpc
142    // Bool_t               fQAPIDSparse;       //QAPIDSPARSE
143     Double_t             fminTOFnSigma;  //ID cuts tof
144     Double_t             fmaxTOFnSigma;//ID cuts tof
145     THnSparseF           *fQAPidSparse;             //! v2 analysis of EP-V0
146     Int_t                fTPCS; //tpc signal cluster
147     Int_t                fVz; //vertex range
148     Double_t             fOpeningAngleCut; //openingAngle cut value
149     Bool_t               fOP_angle; //to shitch on and off the op_angle cut
150     TH1F                 *fOpeningAngleLS;  //opening angle for LS pairs
151     TH1F                 *fOpeningAngleULS; //opening angle for ULS pairs
152     AliSelectNonHFE      *fNonHFE;//new elienos stuff
153     Bool_t               fDCA;//selection PHelectron
154     TH2F                 *fITSnsigma;               //TPC n sigma vs p
155     TH2F                 *fTPCnsigmaAftITSTOF;               //TPC n sigma vs p
156     TH2F                 *fTPCnsigmaAftTOF; //TPC n sigma vs p
157     TH2F                 *fITSnsigmaAftTOF;//jbd
158     TH2F                 *fITSvsTOF;               //TPC n sigma vs p
159     TH2F                 *fTPCvsITS;               //TPC n sigma vs p
160     TH2F                 *fTPCvsITSafterTOF; //TPC n sigma vs p
161     TH2F                 *fTPCvsTOF;//jbd
162     Bool_t               fMultCut;//for mult correlationcut
163     TH2F                 *fMultCorAfterCentrBeforeCuts; //! QA profile global and tpc multiplicity after outlier cut
164     TH2F                 *fMultCorAfterVZTRKComp;//!after cent comp
165     TH1F                 *fCentralityBeforePileup;//!cent chneck
166     TH1F                 *fCentralityAfterVZTRK;//!cent chneck2
167     TH1F                 *fCentralityAfterCorrCut;//!cent chneck2
168     TH2F                 *fMultCorAfterCorrCut;//!after cent comp
169     TH1D                 *EPVz;//v0cep
170     TH1D                 *EPTPCp;//tpcep
171     TH1D                 *EPTPCn;//!tpcep
172     TProfile             *fSubEventDPhiv2new;
173     THnSparseF           *fV2Phivzerotot;//! v2 analysis of EP-V0
174     TH1F                 *fHistCentrDistr;// isto for Centr Flat
175     TH1F                 *fCentralityNoPassForFlattening; //! QA histogram of events that do not pass centrality cut for flattening
176   
177     
178     AliAnalysisTaskFlowITSTPCTOFQCSP(const AliAnalysisTaskFlowITSTPCTOFQCSP&); // not implemented
179     AliAnalysisTaskFlowITSTPCTOFQCSP& operator=(const AliAnalysisTaskFlowITSTPCTOFQCSP&); // not implemented
180     
181     ClassDef(AliAnalysisTaskFlowITSTPCTOFQCSP, 2); //!example of analysis
182 };
183
184 #endif
185
186
187
188