]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/hfe/AliAnalysisTaskFlowITSTPCTOFQCSP.h
Coverity fix (unused variable)
[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 ITS TPC 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     void                                 SetPhiCut(Bool_t phicut){fPhiCut = phicut;};
78
79     
80     AliHFEpid *GetPID() const { return fPID; };
81     
82 private:
83     
84     Bool_t ProcessCutStep(Int_t cutStep, AliVParticle *track);
85     
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
93     AliHFEpid            *fPID;//PID
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
173     TH1D                 *EPVz;//!v0cep
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
188
189     
190     AliAnalysisTaskFlowITSTPCTOFQCSP(const AliAnalysisTaskFlowITSTPCTOFQCSP&); // not implemented
191     AliAnalysisTaskFlowITSTPCTOFQCSP& operator=(const AliAnalysisTaskFlowITSTPCTOFQCSP&); // not implemented
192     
193     ClassDef(AliAnalysisTaskFlowITSTPCTOFQCSP, 2); //!example of analysis
194 };
195
196 #endif
197
198
199
200