]>
Commit | Line | Data |
---|---|---|
9d63a2f6 | 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; | |
40 | #include "AliAnalysisTaskSE.h" | |
914042c2 | 41 | |
a70c9e97 | 42 | class AliAnalysisTaskFlowTPCEMCalQCSP : public AliAnalysisTaskSE { |
914042c2 | 43 | |
44 | public: | |
a70c9e97 | 45 | AliAnalysisTaskFlowTPCEMCalQCSP(); |
46 | AliAnalysisTaskFlowTPCEMCalQCSP(const char *name); | |
47 | virtual ~AliAnalysisTaskFlowTPCEMCalQCSP(); | |
914042c2 | 48 | |
49 | void SetEnableDebugMode() {fDebug = kTRUE; }; | |
50 | void SetCentralityParameters(Double_t CentralityMin, Double_t CentralityMax, const char* CentralityMethod); //select centrality | |
51 | void CheckCentrality(AliAODEvent *event,Bool_t ¢ralitypass); //to use only events with the correct centrality.... | |
52 | void SelectPhotonicElectron(Int_t itrack,const AliAODTrack *track, Bool_t &fFlagPhotonicElec); | |
53 | void SetInvariantMassCut(Double_t invmass) {fInvmassCut = invmass;}; | |
54 | void SetTrigger(Int_t trig) {fTrigger = trig;}; | |
9d63a2f6 | 55 | void SetFlowSideBands(Bool_t sidebandsflow){fSideBandsFlow = sidebandsflow;} |
56 | void Setphiminuspsi(Bool_t phipsi){fPhiminusPsi = phipsi;} | |
57 | void SetPurity(Bool_t Purityel){fpurity = Purityel;} | |
914042c2 | 58 | template <typename T> void PlotVZeroMultiplcities(const T* event) const; |
59 | template <typename T> void SetNullCuts(T* aod); | |
60 | void PrepareFlowEvent(Int_t iMulti, AliFlowEvent *FlowEv) const; | |
61 | virtual void UserCreateOutputObjects(); | |
62 | virtual void UserExec(Option_t *option); | |
63 | virtual void Terminate(Option_t *); | |
64 | void SetRPCuts(AliFlowTrackCuts *cutsRP) { fCutsRP = cutsRP; } | |
65 | void SetHFECuts(AliHFEcuts * const cuts) { fCuts = cuts; }; | |
66 | 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); | |
67 | ||
68 | ||
69 | ||
70 | AliHFEpid *GetPID() const { return fPID; }; | |
71 | ||
72 | private: | |
73 | ||
74 | Bool_t ProcessCutStep(Int_t cutStep, AliVParticle *track); | |
75 | ||
76 | Bool_t fDebug; //! enable debug mode | |
77 | AliAODEvent *fAOD; //AOD object | |
78 | AliEMCALGeometry *fGeom; // emcal geometry | |
79 | TList *fOutputList; //output list | |
80 | AliHFEcuts *fCuts; //Cut Collection | |
81 | Bool_t fIdentifiedAsOutInz; //Out Of Range in z | |
82 | Bool_t fPassTheEventCut; //Pass The Event Cut | |
914042c2 | 83 | AliCFManager *fCFM; //!Correction Framework Manager |
84 | AliHFEpid *fPID; //PID | |
85 | AliHFEpidQAmanager *fPIDqa; //! PID QA manager | |
86 | AliFlowTrackCuts *fCutsRP; // track cuts for reference particles | |
87 | AliFlowTrackCuts *fNullCuts; // dummy cuts for flow event tracks | |
88 | AliFlowEvent *fFlowEvent; //! flow events Inclusive e | |
89 | const char *fkCentralityMethod; // method used to determine centrality (V0 by default) | |
90 | Double_t fCentrality; // event centrality for QA | |
91 | Double_t fCentralityMin; // lower bound of cenrality bin | |
92 | Double_t fCentralityMax; // upper bound of centrality bin | |
93 | Double_t fInvmassCut; //invariant mass cut value | |
94 | Int_t fTrigger; //invariant mass cut value | |
95 | TH1F *fPhi; //! QA plot of azimuthal distribution of tracks used for event plane estimation | |
96 | TH1F *fEta; //! QA plot of eta distribution of tracks used for event plane estimation | |
97 | TH1F *fVZEROA; //! QA plot vzeroa multiplicity (all tracks in event) | |
98 | TH1F *fVZEROC; //! QA plot vzeroc multiplicity (all tracks in event) | |
99 | TH1F *fTPCM; //! QA plot TPC multiplicity (tracks used for event plane estimation) | |
100 | TH1F *fNoEvents; //no of events | |
101 | TH2F *fTrkEovPBef; //track E/p before HFE pid | |
9d63a2f6 | 102 | // TH2F *fdEdxBef; //track dEdx vs p before HFE pid |
914042c2 | 103 | TH1F *fInclusiveElecPt; // Inclusive elec pt |
104 | TH2F *fTPCnsigma; //TPC n sigma vs p | |
105 | TH2F *fTPCnsigmaAft; //TPC n sigma vs p after HFE pid | |
106 | TH1F *fCentralityPass; // ! QA histogram of events that pass centrality cut | |
107 | TH1F *fCentralityNoPass; //! QA histogram of events that do not pass centrality cut | |
914042c2 | 108 | TH1F *fInvmassLS1; //LS Invmass for all rec par |
109 | TH1F *fInvmassULS1;//ULS Invmass for all rec par | |
110 | TH1F *fPhotoElecPt; //photonic elec pt | |
111 | TH1F *fSemiInclElecPt; //Semi inclusive ele pt | |
112 | TH1F *fULSElecPt; //ULS elec Pt | |
113 | TH1F *fLSElecPt;// LS elec pt | |
9d63a2f6 | 114 | Double_t fminTPC; //ID cuts tpc |
115 | Double_t fmaxTPC; //ID cuts tpc | |
116 | Double_t fminEovP; //ID cuts eovp | |
117 | Double_t fmaxEovP;//ID cuts eovp | |
118 | Double_t fminM20;//ID cuts SS | |
119 | Double_t fmaxM20;//ID cuts SS | |
120 | Double_t fminM02;//ID cuts SS | |
121 | Double_t fmaxM02;//ID cuts SS | |
122 | Double_t fDispersion;//ID cuts SS | |
123 | TH2F *fMultCorAfterCuts; //! QA profile global and tpc multiplicity after outlier cut | |
124 | TH2F *fMultvsCentr; //! QA profile of centralty vs multiplicity | |
125 | TProfile *fSubEventDPhiv2; | |
126 | TH1D *EPVzA;//v0aep | |
127 | TH1D *EPVzC;//v0cep | |
128 | TH1D *EPTPC;//tpcep | |
129 | THnSparseF *fV2Phi;//! v2 analysis of EP-V0 | |
130 | THnSparseD *fSparseElectronHadron;//! Trk matching sparse for v1 clusterizer | |
131 | TH1D *fvertex;//huge ThNsparse | |
132 | TH2F *fMultCorBeforeCuts; //! QA profile global and tpc multiplicity after outlier cut | |
133 | Bool_t fSideBandsFlow;//flow from side bands for contamination | |
134 | Bool_t fPhiminusPsi;//flow from phi minus psi method | |
135 | AliFlowEvent *fFlowEventCont; //! flow events for elect Contamination | |
136 | Bool_t fpurity; //for purity evaluation | |
137 | THnSparseD *fSparseElectronpurity;//! Trk matching sparse for v1 clusterizer | |
914042c2 | 138 | |
a70c9e97 | 139 | AliAnalysisTaskFlowTPCEMCalQCSP(const AliAnalysisTaskFlowTPCEMCalQCSP&); // not implemented |
140 | AliAnalysisTaskFlowTPCEMCalQCSP& operator=(const AliAnalysisTaskFlowTPCEMCalQCSP&); // not implemented | |
914042c2 | 141 | |
a70c9e97 | 142 | ClassDef(AliAnalysisTaskFlowTPCEMCalQCSP, 2); //!example of analysis |
914042c2 | 143 | }; |
144 | ||
145 | #endif | |
146 | ||
147 |