]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/hfe/AliAnalysisTaskFlowITSTPCTOFQCSP.h
Update
[u/mrichter/AliRoot.git] / PWGHF / hfe / AliAnalysisTaskFlowITSTPCTOFQCSP.h
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 &centralitypass); //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 );
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     void                                 SetAssoITSRefit(Bool_t itsref) {fAssoITSRefit = itsref;};
76     void                                 SetAssoTPCCluster(Int_t tpc_clust) {fAssoTPCCluster = tpc_clust;};
77
78     
79     AliHFEpid *GetPID() const { return fPID; };
80     
81 private:
82     
83     Bool_t ProcessCutStep(Int_t cutStep, AliVParticle *track);
84     
85     Bool_t               fDebug; //! enable debug mode
86     AliAODEvent          *fAOD; //AOD object
87     TList                *fOutputList;//output list
88     AliHFEcuts           *fCuts; //Cut Collection
89     Bool_t               fIdentifiedAsOutInz;//Out Of Range in z
90     Bool_t               fPassTheEventCut;//Pass The Event Cut
91     AliCFManager         *fCFM;//!Correction Framework Manager
92     AliHFEpid            *fPID;//PID
93     AliHFEpidQAmanager   *fPIDqa; //! PID QA manager
94     AliFlowTrackCuts     *fCutsRP; // track cuts for reference particles
95     AliFlowTrackCuts     *fNullCuts; // dummy cuts for flow event tracks
96     AliFlowEvent         *fFlowEvent; //! flow events Inclusive e
97     const char           *fkCentralityMethod; // method used to determine centrality (V0 by default)
98     Double_t             fCentrality; // event centrality for QA
99     Double_t             fCentralityMin; // lower bound of cenrality bin
100     Double_t             fCentralityMax; // upper bound of centrality bin
101     Double_t             fInvmassCut;//invariant mass cut value
102     Double_t             fpTCutmin;//pt cut value min
103     Double_t             fpTCutmax; //pt cut value max
104     Int_t                fTrigger; //invariant mass cut value
105     TH1F                 *fPhi; //! QA plot of azimuthal distribution of tracks used for event plane estimation
106     TH1F                 *fEta; //! QA plot of eta distribution of tracks used for event plane estimation
107     TH1F                 *fVZEROA; //! QA plot vzeroa multiplicity (all tracks in event)
108     TH1F                 *fVZEROC; //! QA plot vzeroc multiplicity (all tracks in event)
109     TH1F                 *fTPCM; //! QA plot TPC multiplicity (tracks used for event plane estimation)
110     TH1F                 *fNoEvents; //!no of events
111     TH1F                 *fInclusiveElecPt; //!Inclusive elec pt
112     TH2F                 *fTPCnsigma;//!TPC n sigma vs p
113     TH2F                 *fTPCnsigmaAft;//!TPC n sigma vs p after HFE pid
114     TH2F                 *fITSnsigmaAft;//!ITS n sigma vs p after HFE pid
115     TH2F                 *fTPCnsigmaVSptAft;//!lodviow
116     TH2F                 *fTOFns;//!track TOFnSigma
117     TH2F                 *fTOFnsAft;//!track TOFnSigma after PID
118     TH2F                 *fTOFBetaAft;//!track TOFnSigma after PID2
119     TH1F                 *fCentralityPass; // ! QA histogram of events that pass centrality cut
120     TH1F                 *fCentralityNoPass; //! QA histogram of events that do not pass centrality cut
121     TH1F                 *fInvmassLS1; //!LS Invmass for all rec par
122     TH1F                 *fInvmassULS1;//!ULS Invmass for all rec par
123     TH1F                 *fPhotoElecPt;//!photonic elec pt
124     TH1F                 *fSemiInclElecPt;//!Semi inclusive ele pt
125     TH1F                 *fULSElecPt; //! ULS elec Pt
126     TH1F                 *fLSElecPt;//! LS elec pt
127     TH2F                 *fMultCorAfterCuts; //! QA profile global and tpc multiplicity after outlier cut
128     TH2F                 *fMultvsCentr; //! QA profile of centralty vs multiplicity
129     TProfile             *fSubEventDPhiv2;
130     TH1D                 *EPVzA;//!ep v0a
131     TH1D                 *EPVzC;//!ep v0c
132     TH1D                 *EPTPC;//!ep tpc
133     THnSparseF           *fV2Phi;//! v2 analysis of EP-V0
134     TH1D                 *fvertex;//!vertex
135     TH2F                 *fMultCorBeforeCuts; //! QA profile global and tpc multiplicity after outlier cut
136     THnSparseF           *fQAPid;             //! v2 analysis of EP-V0
137     Double_t             fminITSnsigmaLowpT;  //ID cuts its
138     Double_t             fmaxITSnsigmaLowpT;  //ID cuts its
139     Double_t             fminITSnsigmaHighpT;  //ID cuts its
140     Double_t             fmaxITSnsigmaHighpT;  //ID cuts its
141     Double_t             fminTPCnsigmaLowpT;  //ID cuts tpc
142     Double_t             fmaxTPCnsigmaLowpT;  //ID cuts tpc
143     Double_t             fminTPCnsigmaHighpT;  //ID cuts tpc
144     Double_t             fmaxTPCnsigmaHighpT;  //ID cuts tpc
145    // Bool_t               fQAPIDSparse;       //QAPIDSPARSE
146     Double_t             fminTOFnSigma;  //ID cuts tof
147     Double_t             fmaxTOFnSigma;//ID cuts tof
148     THnSparseF           *fQAPidSparse;             //! v2 analysis of EP-V0
149     Int_t                fTPCS; //tpc signal cluster
150     Int_t                fVz; //vertex range
151     Double_t             fOpeningAngleCut; //openingAngle cut value
152     Bool_t               fOP_angle; //to shitch on and off the op_angle cut
153     TH1F                 *fOpeningAngleLS;  //!opening angle for LS pairs
154     TH1F                 *fOpeningAngleULS; //!opening angle for ULS pairs
155     AliSelectNonHFE      *fNonHFE;//new elienos stuff
156     Bool_t               fDCA;//selection PHelectron
157     TH2F                 *fITSnsigma;//!TPC n sigma vs p
158     TH2F                 *fTPCnsigmaAftITSTOF; //!TPC n sigma vs p
159     TH2F                 *fTPCnsigmaAftTOF; //!TPC n sigma vs p
160     TH2F                 *fITSnsigmaAftTOF;//!jbd
161     TH2F                 *fITSvsTOF;//!TPC n sigma vs p
162     TH2F                 *fTPCvsITS;//!TPC n sigma vs p
163     TH2F                 *fTPCvsITSafterTOF;//!TPC n sigma vs p
164     TH2F                 *fTPCvsTOF;//!jbd
165     Bool_t               fMultCut;//for mult correlationcut
166     TH2F                 *fMultCorAfterCentrBeforeCuts; //! QA profile global and tpc multiplicity after outlier cut
167     TH2F                 *fMultCorAfterVZTRKComp;//!after cent comp
168     TH1F                 *fCentralityBeforePileup;//!cent chneck
169     TH1F                 *fCentralityAfterVZTRK;//!cent chneck2
170     TH1F                 *fCentralityAfterCorrCut;//!cent chneck2
171     TH2F                 *fMultCorAfterCorrCut;//!after cent comp
172     TH1D                 *EPVz;//!v0cep
173     TH1D                 *EPTPCp;//!tpcep
174     TH1D                 *EPTPCn;//!tpcen
175     TProfile             *fSubEventDPhiv2new;//!evrr
176     THnSparseF           *fV2Phivzerotot;//! v2 analysis of EP-V0
177     TH1F                 *fHistCentrDistr;//-> isto for Centr Flat
178     TH1F                 *fCentralityNoPassForFlattening; //!QA histogram of events that do not pass centrality cut for flattening
179     Double_t              fptminAsso;//minassopt
180     THnSparseF           *fSparsephipsiULS;//! ULSSparse
181     THnSparseF           *fSparsephipsiLS;//! LSSparse
182     THnSparseF           *fSparseMassULS;//!ssss
183     THnSparseF           *fSparseMassLS;//!ssssss
184     Int_t                 fAssoTPCCluster;//asso tpc cluster
185     Bool_t                fAssoITSRefit;//asso its refit
186     
187     
188     AliAnalysisTaskFlowITSTPCTOFQCSP(const AliAnalysisTaskFlowITSTPCTOFQCSP&); // not implemented
189     AliAnalysisTaskFlowITSTPCTOFQCSP& operator=(const AliAnalysisTaskFlowITSTPCTOFQCSP&); // not implemented
190     
191     ClassDef(AliAnalysisTaskFlowITSTPCTOFQCSP, 2); //!example of analysis
192 };
193
194 #endif
195
196
197
198