]>
Commit | Line | Data |
---|---|---|
040cc6fa | 1 | #ifndef ALIANALYSISTASKFLOWTPCEMCALQCSP_H |
2 | #define ALIANALYSISTASKFLOWTPCEMCALQCSP_H | |
914042c2 | 3 | |
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | //////////////////////////////////////////////////////////////////////// | |
8 | // // | |
9d63a2f6 | 9 | // Task for Heavy Flavour Electron Flow TPC plus EMCal // |
914042c2 | 10 | // // |
11 | // Author: Andrea Dubla (Utrecht University) // | |
12 | // // | |
13 | //////////////////////////////////////////////////////////////////////// | |
14 | ||
15 | class THnSparse; | |
16 | class TH2F; | |
17 | class TLorentzVector; | |
18 | ||
19 | class AliEMCALTrack; | |
20 | class AliMagF; | |
21 | class AliESDEvent; | |
22 | class AliAODEvent; | |
23 | class AliEMCALGeometry; | |
24 | class AliEMCALRecoUtils; | |
25 | class AliAnalysisFilter; | |
26 | class AliESDtrackCuts; | |
27 | class AliESDtrack; | |
28 | class AliAODtrack; | |
29 | class AliHFEcontainer; | |
30 | class AliHFEcuts; | |
31 | class AliHFEpid; | |
32 | class AliHFEpidQAmanager; | |
33 | class AliCFManager; | |
34 | class AliFlowTrackCuts; | |
35 | class AliFlowTrack; | |
36 | class AliFlowEvent; | |
37 | class AliFlowCandidateTrack; | |
38 | class AliFlowEventSimple; | |
39 | class AliCentrality; | |
20791315 | 40 | class AliSelectNonHFE; |
41 | ||
914042c2 | 42 | #include "AliAnalysisTaskSE.h" |
914042c2 | 43 | |
a70c9e97 | 44 | class AliAnalysisTaskFlowTPCEMCalQCSP : public AliAnalysisTaskSE { |
96387d94 | 45 | |
46 | public: | |
a70c9e97 | 47 | AliAnalysisTaskFlowTPCEMCalQCSP(); |
48 | AliAnalysisTaskFlowTPCEMCalQCSP(const char *name); | |
49 | virtual ~AliAnalysisTaskFlowTPCEMCalQCSP(); | |
96387d94 | 50 | |
914042c2 | 51 | void SetEnableDebugMode() {fDebug = kTRUE; }; |
52 | void SetCentralityParameters(Double_t CentralityMin, Double_t CentralityMax, const char* CentralityMethod); //select centrality | |
53 | void CheckCentrality(AliAODEvent *event,Bool_t ¢ralitypass); //to use only events with the correct centrality.... | |
54 | void SelectPhotonicElectron(Int_t itrack,const AliAODTrack *track, Bool_t &fFlagPhotonicElec); | |
55 | void SetInvariantMassCut(Double_t invmass) {fInvmassCut = invmass;}; | |
040cc6fa | 56 | void SetpTCuttrack(Double_t ptcut) {fpTCut = ptcut;}; |
914042c2 | 57 | void SetTrigger(Int_t trig) {fTrigger = trig;}; |
8e8d9d2a | 58 | void SetAssoTPCCluster(Int_t tpc_clust) {fAssoTPCCluster = tpc_clust;}; |
ff36a82c | 59 | void SetMultCorrelationCut(Bool_t multcut) {fMultCut = multcut;}; |
8e8d9d2a | 60 | void SetAssoITSRefit(Bool_t itsref) {fAssoITSRefit = itsref;}; |
9d63a2f6 | 61 | void SetFlowSideBands(Bool_t sidebandsflow){fSideBandsFlow = sidebandsflow;} |
20791315 | 62 | void SelectPhotonicElectronMethod(Bool_t dca){fDCA = dca;} |
9d63a2f6 | 63 | void Setphiminuspsi(Bool_t phipsi){fPhiminusPsi = phipsi;} |
64 | void SetPurity(Bool_t Purityel){fpurity = Purityel;} | |
914042c2 | 65 | template <typename T> void PlotVZeroMultiplcities(const T* event) const; |
66 | template <typename T> void SetNullCuts(T* aod); | |
67 | void PrepareFlowEvent(Int_t iMulti, AliFlowEvent *FlowEv) const; | |
68 | virtual void UserCreateOutputObjects(); | |
69 | virtual void UserExec(Option_t *option); | |
70 | virtual void Terminate(Option_t *); | |
71 | void SetRPCuts(AliFlowTrackCuts *cutsRP) { fCutsRP = cutsRP; } | |
72 | void SetHFECuts(AliHFEcuts * const cuts) { fCuts = cuts; }; | |
73 | void SetIDCuts(Double_t minTPC, Double_t maxTPC, Double_t minEovP, Double_t maxEovP, Double_t minM20, Double_t maxM20, Double_t minM02, Double_t maxM02, Double_t Dispersion); | |
20791315 | 74 | void SetOpeningAngleflag(Bool_t opang){fOP_angle = opang;}; |
75 | void SetOpeningAngleCut(Double_t opanglecut) {fOpeningAngleCut = opanglecut;}; | |
9f508565 | 76 | void SetHistoForCentralityFlattening(TH1F *h,Double_t minCentr,Double_t maxCentr,Double_t centrRef=0.,Int_t switchTRand=0); |
77 | Bool_t IsEventSelectedForCentrFlattening(Float_t centvalue); | |
96387d94 | 78 | |
acd6f996 | 79 | |
96387d94 | 80 | |
81 | ||
82 | ||
914042c2 | 83 | AliHFEpid *GetPID() const { return fPID; }; |
96387d94 | 84 | |
85 | private: | |
86 | ||
914042c2 | 87 | Bool_t ProcessCutStep(Int_t cutStep, AliVParticle *track); |
96387d94 | 88 | |
914042c2 | 89 | Bool_t fDebug; //! enable debug mode |
96387d94 | 90 | AliAODEvent *fAOD; //AOD object |
91 | AliEMCALGeometry *fGeom; // emcal geometry | |
92 | TList *fOutputList; //output list | |
93 | AliHFEcuts *fCuts; //Cut Collection | |
94 | Bool_t fIdentifiedAsOutInz; //Out Of Range in z | |
95 | Bool_t fPassTheEventCut; //Pass The Event Cut | |
96 | AliCFManager *fCFM; //!Correction Framework Manager | |
97 | AliHFEpid *fPID; //PID | |
98 | AliHFEpidQAmanager *fPIDqa; //! PID QA manager | |
914042c2 | 99 | AliFlowTrackCuts *fCutsRP; // track cuts for reference particles |
100 | AliFlowTrackCuts *fNullCuts; // dummy cuts for flow event tracks | |
96387d94 | 101 | AliFlowEvent *fFlowEvent; //! flow events Inclusive e |
914042c2 | 102 | const char *fkCentralityMethod; // method used to determine centrality (V0 by default) |
103 | Double_t fCentrality; // event centrality for QA | |
104 | Double_t fCentralityMin; // lower bound of cenrality bin | |
105 | Double_t fCentralityMax; // upper bound of centrality bin | |
96387d94 | 106 | Double_t fInvmassCut; //invariant mass cut value |
040cc6fa | 107 | Double_t fpTCut; //pt cut value |
96387d94 | 108 | Int_t fTrigger; //invariant mass cut value |
914042c2 | 109 | TH1F *fPhi; //! QA plot of azimuthal distribution of tracks used for event plane estimation |
110 | TH1F *fEta; //! QA plot of eta distribution of tracks used for event plane estimation | |
111 | TH1F *fVZEROA; //! QA plot vzeroa multiplicity (all tracks in event) | |
112 | TH1F *fVZEROC; //! QA plot vzeroc multiplicity (all tracks in event) | |
113 | TH1F *fTPCM; //! QA plot TPC multiplicity (tracks used for event plane estimation) | |
96387d94 | 114 | TH1F *fNoEvents; //no of events |
115 | TH2F *fTrkEovPBef; //track E/p before HFE pid | |
116 | // TH2F *fdEdxBef; //track dEdx vs p before HFE pid | |
914042c2 | 117 | TH1F *fInclusiveElecPt; // Inclusive elec pt |
96387d94 | 118 | TH2F *fTPCnsigma; //TPC n sigma vs p |
119 | TH2F *fTPCnsigmaAft; //TPC n sigma vs p after HFE pid | |
914042c2 | 120 | TH1F *fCentralityPass; // ! QA histogram of events that pass centrality cut |
121 | TH1F *fCentralityNoPass; //! QA histogram of events that do not pass centrality cut | |
914042c2 | 122 | TH1F *fInvmassLS1; //LS Invmass for all rec par |
123 | TH1F *fInvmassULS1;//ULS Invmass for all rec par | |
96387d94 | 124 | TH1F *fPhotoElecPt; //photonic elec pt |
125 | TH1F *fSemiInclElecPt; //Semi inclusive ele pt | |
914042c2 | 126 | TH1F *fULSElecPt; //ULS elec Pt |
127 | TH1F *fLSElecPt;// LS elec pt | |
96387d94 | 128 | Double_t fminTPC; //ID cuts tpc |
129 | Double_t fmaxTPC; //ID cuts tpc | |
130 | Double_t fminEovP; //ID cuts eovp | |
131 | Double_t fmaxEovP;//ID cuts eovp | |
132 | Double_t fminM20;//ID cuts SS | |
133 | Double_t fmaxM20;//ID cuts SS | |
134 | Double_t fminM02;//ID cuts SS | |
135 | Double_t fmaxM02;//ID cuts SS | |
136 | Double_t fDispersion;//ID cuts SS | |
9d63a2f6 | 137 | TH2F *fMultCorAfterCuts; //! QA profile global and tpc multiplicity after outlier cut |
138 | TH2F *fMultvsCentr; //! QA profile of centralty vs multiplicity | |
96387d94 | 139 | TProfile *fSubEventDPhiv2; |
140 | TH1D *EPVzA;//v0aep | |
141 | TH1D *EPVzC;//v0cep | |
142 | TH1D *EPTPC;//tpcep | |
9d63a2f6 | 143 | THnSparseF *fV2Phi;//! v2 analysis of EP-V0 |
144 | THnSparseD *fSparseElectronHadron;//! Trk matching sparse for v1 clusterizer | |
145 | TH1D *fvertex;//huge ThNsparse | |
146 | TH2F *fMultCorBeforeCuts; //! QA profile global and tpc multiplicity after outlier cut | |
96387d94 | 147 | Bool_t fSideBandsFlow;//flow from side bands for contamination |
148 | Bool_t fPhiminusPsi;//flow from phi minus psi method | |
9d63a2f6 | 149 | AliFlowEvent *fFlowEventCont; //! flow events for elect Contamination |
96387d94 | 150 | Bool_t fpurity; //for purity evaluation |
9d63a2f6 | 151 | THnSparseD *fSparseElectronpurity;//! Trk matching sparse for v1 clusterizer |
96387d94 | 152 | TH1F *fOpeningAngleLS; //opening angle for LS pairs |
153 | TH1F *fOpeningAngleULS; //opening angle for ULS pairs | |
20791315 | 154 | AliSelectNonHFE *fNonHFE;//new elienos stuff |
96387d94 | 155 | Bool_t fDCA;//selection PHelectron |
156 | Double_t fOpeningAngleCut; //openingAngle cut value | |
157 | Bool_t fOP_angle; //to shitch on and off the op_angle cut | |
158 | Int_t fAssoTPCCluster;//asso tpc cluster | |
9f508565 | 159 | Bool_t fAssoITSRefit;//asso its refit |
160 | Bool_t fMultCut;//for mult correlationcut | |
ff36a82c | 161 | TH2F *fMultCorAfterCentrBeforeCuts; //! QA profile global and tpc multiplicity after outlier cut |
162 | TH2F *fMultCorAfterVZTRKComp;//!after cent comp | |
163 | TH1F *fCentralityBeforePileup;//!cent chneck | |
164 | TH1F *fCentralityAfterVZTRK;//!cent chneck2 | |
acd6f996 | 165 | TH1F *fCentralityAfterCorrCut;//!cent chneck2 |
166 | TH2F *fMultCorAfterCorrCut;//!after cent comp | |
9f508565 | 167 | TH1D *EPVz;//v0cep |
168 | TH1D *EPTPCp;//tpcep | |
169 | TH1D *EPTPCn;//!tpcep | |
170 | TProfile *fSubEventDPhiv2new; | |
171 | THnSparseF *fV2Phivzerotot;//! v2 analysis of EP-V0 | |
172 | TH1F *fHistCentrDistr;// isto for Centr Flat | |
173 | TH1F *fCentralityNoPassForFlattening; //! QA histogram of events that do not pass centrality cut for flattening | |
174 | TH1F *fInvmassLS1highpt; //LS Invmass for all rec par high pt | |
175 | TH1F *fInvmassULS1highpt;//ULS Invmass for all rec par high pt | |
acd6f996 | 176 | |
96387d94 | 177 | |
20791315 | 178 | |
a70c9e97 | 179 | AliAnalysisTaskFlowTPCEMCalQCSP(const AliAnalysisTaskFlowTPCEMCalQCSP&); // not implemented |
180 | AliAnalysisTaskFlowTPCEMCalQCSP& operator=(const AliAnalysisTaskFlowTPCEMCalQCSP&); // not implemented | |
96387d94 | 181 | |
a70c9e97 | 182 | ClassDef(AliAnalysisTaskFlowTPCEMCalQCSP, 2); //!example of analysis |
914042c2 | 183 | }; |
184 | ||
185 | #endif | |
186 |