Place the config and root file at the right place
[u/mrichter/AliRoot.git] / PWGHF / hfe / AliAnalysisTaskFlowTPCEMCalQCSP.h
CommitLineData
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
15class THnSparse;
16class TH2F;
17class TLorentzVector;
18
19class AliEMCALTrack;
20class AliMagF;
21class AliESDEvent;
22class AliAODEvent;
23class AliEMCALGeometry;
24class AliEMCALRecoUtils;
25class AliAnalysisFilter;
26class AliESDtrackCuts;
27class AliESDtrack;
28class AliAODtrack;
29class AliHFEcontainer;
30class AliHFEcuts;
31class AliHFEpid;
32class AliHFEpidQAmanager;
33class AliCFManager;
34class AliFlowTrackCuts;
35class AliFlowTrack;
36class AliFlowEvent;
37class AliFlowCandidateTrack;
38class AliFlowEventSimple;
39class AliCentrality;
20791315 40class AliSelectNonHFE;
41
914042c2 42#include "AliAnalysisTaskSE.h"
914042c2 43
a70c9e97 44class AliAnalysisTaskFlowTPCEMCalQCSP : public AliAnalysisTaskSE {
96387d94 45
46public:
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 &centralitypass); //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
85private:
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