1 #ifndef ALIANALYSISTASKFLOWITSTPCTOFQCSP_H
2 #define ALIANALYSISTASKFLOWITSTPCTOFQCSP_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 ////////////////////////////////////////////////////////////////////////
9 // Task for Heavy Flavour Electron Flow ITS TPC TOF //
11 // Author: Andrea Dubla (Utrecht University) //
13 ////////////////////////////////////////////////////////////////////////
21 class AliAnalysisFilter;
22 class AliESDtrackCuts;
25 class AliHFEcontainer;
28 class AliHFEpidQAmanager;
30 class AliFlowTrackCuts;
33 class AliFlowCandidateTrack;
34 class AliFlowEventSimple;
37 class AliSelectNonHFE;
38 #include "AliAnalysisTaskSE.h"
41 class AliAnalysisTaskFlowITSTPCTOFQCSP : public AliAnalysisTaskSE {
44 AliAnalysisTaskFlowITSTPCTOFQCSP();
45 AliAnalysisTaskFlowITSTPCTOFQCSP(const char *name);
46 virtual ~AliAnalysisTaskFlowITSTPCTOFQCSP();
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,Float_t fTPCnSigma,Double_t evPlAngV0, Bool_t &fFlagPhotonicElec);
52 void SelectPhotonicElectronMethod(Bool_t dca){fDCA = dca;}
53 void SetInvariantMassCut(Double_t invmass) {fInvmassCut = invmass;};
54 void SetPtMinAssoCut(Double_t ptminimumasso) {fptminAsso = ptminimumasso;};
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 );
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 void SetAssoITSRefit(Bool_t itsref) {fAssoITSRefit = itsref;};
76 void SetAssoTPCCluster(Int_t tpc_clust) {fAssoTPCCluster = tpc_clust;};
77 void SetPhiCut(Bool_t phicut){fPhiCut = phicut;};
80 AliHFEpid *GetPID() const { return fPID; };
84 Bool_t ProcessCutStep(Int_t cutStep, AliVParticle *track);
86 Bool_t fDebug; //! enable debug mode
87 AliAODEvent *fAOD; //AOD object
88 TList *fOutputList;//output list
89 AliHFEcuts *fCuts; //Cut Collection
90 Bool_t fIdentifiedAsOutInz;//Out Of Range in z
91 Bool_t fPassTheEventCut;//Pass The Event Cut
92 AliCFManager *fCFM;//!Correction Framework Manager
94 AliHFEpidQAmanager *fPIDqa; //! PID QA manager
95 AliFlowTrackCuts *fCutsRP; // track cuts for reference particles
96 AliFlowTrackCuts *fNullCuts; // dummy cuts for flow event tracks
97 AliFlowEvent *fFlowEvent; //! flow events Inclusive e
98 const char *fkCentralityMethod; // method used to determine centrality (V0 by default)
99 Double_t fCentrality; // event centrality for QA
100 Double_t fCentralityMin; // lower bound of cenrality bin
101 Double_t fCentralityMax; // upper bound of centrality bin
102 Double_t fInvmassCut;//invariant mass cut value
103 Double_t fpTCutmin;//pt cut value min
104 Double_t fpTCutmax; //pt cut value max
105 Int_t fTrigger; //invariant mass cut value
106 TH1F *fPhi; //! QA plot of azimuthal distribution of tracks used for event plane estimation
107 TH1F *fEta; //! QA plot of eta distribution of tracks used for event plane estimation
108 TH1F *fVZEROA; //! QA plot vzeroa multiplicity (all tracks in event)
109 TH1F *fVZEROC; //! QA plot vzeroc multiplicity (all tracks in event)
110 TH1F *fTPCM; //! QA plot TPC multiplicity (tracks used for event plane estimation)
111 TH1F *fNoEvents; //!no of events
112 TH1F *fInclusiveElecPt; //!Inclusive elec pt
113 TH2F *fTPCnsigma;//!TPC n sigma vs p
114 TH2F *fTPCnsigmaAft;//!TPC n sigma vs p after HFE pid
115 TH2F *fITSnsigmaAft;//!ITS n sigma vs p after HFE pid
116 TH2F *fTPCnsigmaVSptAft;//!lodviow
117 TH2F *fTOFns;//!track TOFnSigma
118 TH2F *fTOFnsAft;//!track TOFnSigma after PID
119 TH2F *fTOFBetaAft;//!track TOFnSigma after PID2
120 TH1F *fCentralityPass; // ! QA histogram of events that pass centrality cut
121 TH1F *fCentralityNoPass; //! QA histogram of events that do not pass centrality cut
122 TH1F *fInvmassLS1; //!LS Invmass for all rec par
123 TH1F *fInvmassULS1;//!ULS Invmass for all rec par
124 TH1F *fPhotoElecPt;//!photonic elec pt
125 TH1F *fSemiInclElecPt;//!Semi inclusive ele pt
126 TH1F *fULSElecPt; //! ULS elec Pt
127 TH1F *fLSElecPt;//! LS elec pt
128 TH2F *fMultCorAfterCuts; //! QA profile global and tpc multiplicity after outlier cut
129 TH2F *fMultvsCentr; //! QA profile of centralty vs multiplicity
130 TProfile *fSubEventDPhiv2;
131 TH1D *EPVzA;//!ep v0a
132 TH1D *EPVzC;//!ep v0c
133 TH1D *EPTPC;//!ep tpc
134 THnSparseF *fV2Phi;//! v2 analysis of EP-V0
135 TH1D *fvertex;//!vertex
136 TH2F *fMultCorBeforeCuts; //! QA profile global and tpc multiplicity after outlier cut
137 THnSparseF *fQAPid; //! v2 analysis of EP-V0
138 Double_t fminITSnsigmaLowpT; //ID cuts its
139 Double_t fmaxITSnsigmaLowpT; //ID cuts its
140 Double_t fminITSnsigmaHighpT; //ID cuts its
141 Double_t fmaxITSnsigmaHighpT; //ID cuts its
142 Double_t fminTPCnsigmaLowpT; //ID cuts tpc
143 Double_t fmaxTPCnsigmaLowpT; //ID cuts tpc
144 Double_t fminTPCnsigmaHighpT; //ID cuts tpc
145 Double_t fmaxTPCnsigmaHighpT; //ID cuts tpc
146 // Bool_t fQAPIDSparse; //QAPIDSPARSE
147 Double_t fminTOFnSigma; //ID cuts tof
148 Double_t fmaxTOFnSigma;//ID cuts tof
149 THnSparseF *fQAPidSparse; //! v2 analysis of EP-V0
150 Int_t fTPCS; //tpc signal cluster
151 Int_t fVz; //vertex range
152 Double_t fOpeningAngleCut; //openingAngle cut value
153 Bool_t fOP_angle; //to shitch on and off the op_angle cut
154 TH1F *fOpeningAngleLS; //!opening angle for LS pairs
155 TH1F *fOpeningAngleULS; //!opening angle for ULS pairs
156 AliSelectNonHFE *fNonHFE;//new elienos stuff
157 Bool_t fDCA;//selection PHelectron
158 TH2F *fITSnsigma;//!TPC n sigma vs p
159 TH2F *fTPCnsigmaAftITSTOF; //!TPC n sigma vs p
160 TH2F *fTPCnsigmaAftTOF; //!TPC n sigma vs p
161 TH2F *fITSnsigmaAftTOF;//!jbd
162 TH2F *fITSvsTOF;//!TPC n sigma vs p
163 TH2F *fTPCvsITS;//!TPC n sigma vs p
164 TH2F *fTPCvsITSafterTOF;//!TPC n sigma vs p
165 TH2F *fTPCvsTOF;//!jbd
166 Bool_t fMultCut;//for mult correlationcut
167 TH2F *fMultCorAfterCentrBeforeCuts; //! QA profile global and tpc multiplicity after outlier cut
168 TH2F *fMultCorAfterVZTRKComp;//!after cent comp
169 TH1F *fCentralityBeforePileup;//!cent chneck
170 TH1F *fCentralityAfterVZTRK;//!cent chneck2
171 TH1F *fCentralityAfterCorrCut;//!cent chneck2
172 TH2F *fMultCorAfterCorrCut;//!after cent comp
174 TH1D *EPTPCp;//!tpcep
175 TH1D *EPTPCn;//!tpcen
176 TProfile *fSubEventDPhiv2new;//!evrr
177 THnSparseF *fV2Phivzerotot;//! v2 analysis of EP-V0
178 TH1F *fHistCentrDistr;//-> isto for Centr Flat
179 TH1F *fCentralityNoPassForFlattening; //!QA histogram of events that do not pass centrality cut for flattening
180 Double_t fptminAsso;//minassopt
181 THnSparseF *fSparsephipsiULS;//! ULSSparse
182 THnSparseF *fSparsephipsiLS;//! LSSparse
183 THnSparseF *fSparseMassULS;//!ssss
184 THnSparseF *fSparseMassLS;//!ssssss
185 Int_t fAssoTPCCluster;//asso tpc cluster
186 Bool_t fAssoITSRefit;//asso its refit
187 Bool_t fPhiCut;//Phi cut to simulate emcal acc
190 AliAnalysisTaskFlowITSTPCTOFQCSP(const AliAnalysisTaskFlowITSTPCTOFQCSP&); // not implemented
191 AliAnalysisTaskFlowITSTPCTOFQCSP& operator=(const AliAnalysisTaskFlowITSTPCTOFQCSP&); // not implemented
193 ClassDef(AliAnalysisTaskFlowITSTPCTOFQCSP, 2); //!example of analysis