]>
Commit | Line | Data |
---|---|---|
4c12b1ec R |
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 ¢ralitypass); //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 |