]>
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;}; | |
164d5623 | 54 | void SetPtMinAssoCut(Double_t ptminimumasso) {fptminAsso = ptminimumasso;}; |
4c12b1ec R |
55 | void SetpTCuttrack(Double_t ptcutmin, Double_t ptcutmax); |
56 | void SetTrigger(Int_t trig) {fTrigger = trig;}; | |
57 | void SetTPCS(Int_t sig) {fTPCS = sig;}; | |
58 | void SetVz(Int_t ver) {fVz = ver;}; | |
59 | // void SetQAPIDSparse(Bool_t qapidsparse) {fQAPIDSparse = qapidsparse;}; | |
60 | void SetOpeningAngleflag(Bool_t opang){fOP_angle = opang;}; | |
61 | void SetOpeningAngleCut(Double_t opanglecut) {fOpeningAngleCut = opanglecut;}; | |
62 | template <typename T> void PlotVZeroMultiplcities(const T* event) const; | |
63 | template <typename T> void SetNullCuts(T* aod); | |
64 | void PrepareFlowEvent(Int_t iMulti, AliFlowEvent *FlowEv) const; | |
65 | virtual void UserCreateOutputObjects(); | |
66 | virtual void UserExec(Option_t *option); | |
67 | virtual void Terminate(Option_t *); | |
68 | void SetRPCuts(AliFlowTrackCuts *cutsRP) { fCutsRP = cutsRP; } | |
69 | void SetHFECuts(AliHFEcuts * const cuts) { fCuts = cuts; }; | |
70 | 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 ); | |
71 | ||
72 | void SetMultCorrelationCut(Bool_t multcut) {fMultCut = multcut;}; | |
73 | void SetHistoForCentralityFlattening(TH1F *h,Double_t minCentr,Double_t maxCentr,Double_t centrRef=0.,Int_t switchTRand=0); | |
74 | Bool_t IsEventSelectedForCentrFlattening(Float_t centvalue); | |
75 | ||
76 | ||
77 | AliHFEpid *GetPID() const { return fPID; }; | |
78 | ||
79 | private: | |
80 | ||
81 | Bool_t ProcessCutStep(Int_t cutStep, AliVParticle *track); | |
82 | ||
83 | Bool_t fDebug; //! enable debug mode | |
03b64410 | 84 | AliAODEvent *fAOD; //AOD object |
85 | TList *fOutputList;//output list | |
86 | AliHFEcuts *fCuts; //Cut Collection | |
87 | Bool_t fIdentifiedAsOutInz;//Out Of Range in z | |
88 | Bool_t fPassTheEventCut;//Pass The Event Cut | |
89 | AliCFManager *fCFM;//!Correction Framework Manager | |
90 | AliHFEpid *fPID;//PID | |
91 | AliHFEpidQAmanager *fPIDqa; //! PID QA manager | |
4c12b1ec R |
92 | AliFlowTrackCuts *fCutsRP; // track cuts for reference particles |
93 | AliFlowTrackCuts *fNullCuts; // dummy cuts for flow event tracks | |
041e6d56 | 94 | AliFlowEvent *fFlowEvent; //! flow events Inclusive e |
4c12b1ec R |
95 | const char *fkCentralityMethod; // method used to determine centrality (V0 by default) |
96 | Double_t fCentrality; // event centrality for QA | |
97 | Double_t fCentralityMin; // lower bound of cenrality bin | |
98 | Double_t fCentralityMax; // upper bound of centrality bin | |
03b64410 | 99 | Double_t fInvmassCut;//invariant mass cut value |
100 | Double_t fpTCutmin;//pt cut value min | |
101 | Double_t fpTCutmax; //pt cut value max | |
102 | Int_t fTrigger; //invariant mass cut value | |
4c12b1ec R |
103 | TH1F *fPhi; //! QA plot of azimuthal distribution of tracks used for event plane estimation |
104 | TH1F *fEta; //! QA plot of eta distribution of tracks used for event plane estimation | |
105 | TH1F *fVZEROA; //! QA plot vzeroa multiplicity (all tracks in event) | |
106 | TH1F *fVZEROC; //! QA plot vzeroc multiplicity (all tracks in event) | |
107 | TH1F *fTPCM; //! QA plot TPC multiplicity (tracks used for event plane estimation) | |
03b64410 | 108 | TH1F *fNoEvents; //!no of events |
109 | TH1F *fInclusiveElecPt; //!Inclusive elec pt | |
110 | TH2F *fTPCnsigma;//!TPC n sigma vs p | |
111 | TH2F *fTPCnsigmaAft;//!TPC n sigma vs p after HFE pid | |
112 | TH2F *fITSnsigmaAft;//!ITS n sigma vs p after HFE pid | |
113 | TH2F *fTPCnsigmaVSptAft;//!lodviow | |
114 | TH2F *fTOFns;//!track TOFnSigma | |
115 | TH2F *fTOFnsAft;//!track TOFnSigma after PID | |
116 | TH2F *fTOFBetaAft;//!track TOFnSigma after PID2 | |
4c12b1ec R |
117 | TH1F *fCentralityPass; // ! QA histogram of events that pass centrality cut |
118 | TH1F *fCentralityNoPass; //! QA histogram of events that do not pass centrality cut | |
03b64410 | 119 | TH1F *fInvmassLS1; //!LS Invmass for all rec par |
120 | TH1F *fInvmassULS1;//!ULS Invmass for all rec par | |
121 | TH1F *fPhotoElecPt;//!photonic elec pt | |
122 | TH1F *fSemiInclElecPt;//!Semi inclusive ele pt | |
123 | TH1F *fULSElecPt; //! ULS elec Pt | |
124 | TH1F *fLSElecPt;//! LS elec pt | |
4c12b1ec R |
125 | TH2F *fMultCorAfterCuts; //! QA profile global and tpc multiplicity after outlier cut |
126 | TH2F *fMultvsCentr; //! QA profile of centralty vs multiplicity | |
127 | TProfile *fSubEventDPhiv2; | |
03b64410 | 128 | TH1D *EPVzA;//!ep v0a |
129 | TH1D *EPVzC;//!ep v0c | |
130 | TH1D *EPTPC;//!ep tpc | |
4c12b1ec | 131 | THnSparseF *fV2Phi;//! v2 analysis of EP-V0 |
03b64410 | 132 | TH1D *fvertex;//!vertex |
4c12b1ec R |
133 | TH2F *fMultCorBeforeCuts; //! QA profile global and tpc multiplicity after outlier cut |
134 | THnSparseF *fQAPid; //! v2 analysis of EP-V0 | |
135 | Double_t fminITSnsigmaLowpT; //ID cuts its | |
136 | Double_t fmaxITSnsigmaLowpT; //ID cuts its | |
137 | Double_t fminITSnsigmaHighpT; //ID cuts its | |
138 | Double_t fmaxITSnsigmaHighpT; //ID cuts its | |
139 | Double_t fminTPCnsigmaLowpT; //ID cuts tpc | |
140 | Double_t fmaxTPCnsigmaLowpT; //ID cuts tpc | |
141 | Double_t fminTPCnsigmaHighpT; //ID cuts tpc | |
142 | Double_t fmaxTPCnsigmaHighpT; //ID cuts tpc | |
143 | // Bool_t fQAPIDSparse; //QAPIDSPARSE | |
144 | Double_t fminTOFnSigma; //ID cuts tof | |
145 | Double_t fmaxTOFnSigma;//ID cuts tof | |
146 | THnSparseF *fQAPidSparse; //! v2 analysis of EP-V0 | |
147 | Int_t fTPCS; //tpc signal cluster | |
148 | Int_t fVz; //vertex range | |
149 | Double_t fOpeningAngleCut; //openingAngle cut value | |
150 | Bool_t fOP_angle; //to shitch on and off the op_angle cut | |
03b64410 | 151 | TH1F *fOpeningAngleLS; //!opening angle for LS pairs |
152 | TH1F *fOpeningAngleULS; //!opening angle for ULS pairs | |
4c12b1ec R |
153 | AliSelectNonHFE *fNonHFE;//new elienos stuff |
154 | Bool_t fDCA;//selection PHelectron | |
03b64410 | 155 | TH2F *fITSnsigma;//!TPC n sigma vs p |
156 | TH2F *fTPCnsigmaAftITSTOF; //!TPC n sigma vs p | |
164d5623 | 157 | TH2F *fTPCnsigmaAftTOF; //!TPC n sigma vs p |
03b64410 | 158 | TH2F *fITSnsigmaAftTOF;//!jbd |
159 | TH2F *fITSvsTOF;//!TPC n sigma vs p | |
160 | TH2F *fTPCvsITS;//!TPC n sigma vs p | |
161 | TH2F *fTPCvsITSafterTOF;//!TPC n sigma vs p | |
162 | TH2F *fTPCvsTOF;//!jbd | |
4c12b1ec R |
163 | Bool_t fMultCut;//for mult correlationcut |
164 | TH2F *fMultCorAfterCentrBeforeCuts; //! QA profile global and tpc multiplicity after outlier cut | |
165 | TH2F *fMultCorAfterVZTRKComp;//!after cent comp | |
166 | TH1F *fCentralityBeforePileup;//!cent chneck | |
167 | TH1F *fCentralityAfterVZTRK;//!cent chneck2 | |
168 | TH1F *fCentralityAfterCorrCut;//!cent chneck2 | |
169 | TH2F *fMultCorAfterCorrCut;//!after cent comp | |
03b64410 | 170 | TH1D *EPVz;//!v0cep |
171 | TH1D *EPTPCp;//!tpcep | |
172 | TH1D *EPTPCn;//!tpcen | |
164d5623 | 173 | TProfile *fSubEventDPhiv2new;//!evrr |
4c12b1ec | 174 | THnSparseF *fV2Phivzerotot;//! v2 analysis of EP-V0 |
03b64410 | 175 | TH1F *fHistCentrDistr;//-> isto for Centr Flat |
176 | TH1F *fCentralityNoPassForFlattening; //!QA histogram of events that do not pass centrality cut for flattening | |
164d5623 | 177 | Double_t fptminAsso;//minassopt |
4c12b1ec R |
178 | |
179 | AliAnalysisTaskFlowITSTPCTOFQCSP(const AliAnalysisTaskFlowITSTPCTOFQCSP&); // not implemented | |
180 | AliAnalysisTaskFlowITSTPCTOFQCSP& operator=(const AliAnalysisTaskFlowITSTPCTOFQCSP&); // not implemented | |
181 | ||
182 | ClassDef(AliAnalysisTaskFlowITSTPCTOFQCSP, 2); //!example of analysis | |
183 | }; | |
184 | ||
185 | #endif | |
186 | ||
187 | ||
188 | ||
189 |