]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/hfe/AliAnalysisTaskFlowTPCTOFQCSP.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGHF / hfe / AliAnalysisTaskFlowTPCTOFQCSP.h
1 #ifndef ALIANALYSISTASKFLOWTPCTOFQCSP_H
2 #define ALIANALYSISTASKFLOWTPCTOFQCSP_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 AliAnalysisTaskFlowTPCTOFQCSP : public AliAnalysisTaskSE {
42
43   public:
44     AliAnalysisTaskFlowTPCTOFQCSP();
45     AliAnalysisTaskFlowTPCTOFQCSP(const char *name);
46     virtual ~AliAnalysisTaskFlowTPCTOFQCSP();
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, Bool_t &fFlagPhotonicElec);
52     void                                 SelectPhotonicElectronMethod(Bool_t dca){fDCA = dca;}
53     void                                 SetInvariantMassCut(Double_t invmass) {fInvmassCut = invmass;};
54     void                                 SetpTCuttrack(Double_t ptcut) {fpTCut = ptcut;};
55     void                                 SetTrigger(Int_t trig) {fTrigger = trig;};
56     void                                 SetTPCS(Int_t sig) {fTPCS = sig;};
57     void                                 SetVz(Int_t ver) {fVz = ver;};
58     void                                 SetQAPIDSparse(Bool_t qapidsparse) {fQAPIDSparse = qapidsparse;};
59     void                                 SetPhiCut(Bool_t phicut){fPhiCut = phicut;};
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 minTPCnsigma, Double_t maxTPCnsigma, Double_t minTOFnSigma, Double_t maxTOFnSigma);
71
72
73
74   //  AliHFEpid *GetPID() const { return fPID; };
75
76   private:
77
78     Bool_t ProcessCutStep(Int_t cutStep, AliVParticle *track);
79
80     Bool_t               fDebug; //! enable debug mode
81     AliAODEvent              *fAOD;                     //AOD object
82     TList                        *fOutputList;          //output list
83     AliHFEcuts                   *fCuts;                 //Cut Collection
84     Bool_t                           fIdentifiedAsOutInz;    //Out Of Range in z
85     Bool_t                           fPassTheEventCut;       //Pass The Event Cut
86     AliCFManager                 *fCFM;                  //!Correction Framework Manager
87  //   AliHFEpid                      *fPID;                  //PID
88  //   AliHFEpidQAmanager   *fPIDqa;             //! PID QA manager
89     AliFlowTrackCuts     *fCutsRP; // track cuts for reference particles
90     AliFlowTrackCuts     *fNullCuts; // dummy cuts for flow event tracks
91     AliFlowEvent         *fFlowEvent; //! flow events Inclusive e 
92     const char           *fkCentralityMethod; // method used to determine centrality (V0 by default)
93     Double_t             fCentrality; // event centrality for QA
94     Double_t             fCentralityMin; // lower bound of cenrality bin
95     Double_t             fCentralityMax; // upper bound of centrality bin
96     Double_t             fInvmassCut;           //invariant mass cut value
97     Double_t             fpTCut;    //pt cut value
98     Int_t                    fTrigger;          //invariant mass cut value
99     TH1F                 *fPhi; //! QA plot of azimuthal distribution of tracks used for event plane estimation
100     TH1F                 *fEta; //! QA plot of eta distribution of tracks used for event plane estimation
101     TH1F                 *fVZEROA; //! QA plot vzeroa multiplicity (all tracks in event)
102     TH1F                 *fVZEROC; //! QA plot vzeroc multiplicity (all tracks in event)
103     TH1F                 *fTPCM; //! QA plot TPC multiplicity (tracks used for event plane estimation)
104     TH1F                         *fNoEvents;            //no of events
105     TH1F                 *fInclusiveElecPt; // Inclusive elec pt
106 //    TH2F                           *fTPCnsigma;               //TPC n sigma vs p
107     TH2F                         *fTPCnsigmaAft;                //TPC n sigma vs p after HFE pid
108 //    TH2F                           *fTOFns;           //track TOFnSigma
109     TH2F                             *fTOFnsAft;                //track TOFnSigma after PID
110     TH2F                             *fTOFBetaAft;
111     TH1F                 *fCentralityPass; // ! QA histogram of events that pass centrality cut
112     TH1F                 *fCentralityNoPass; //! QA histogram of events that do not pass centrality cut
113     TH1F                 *fInvmassLS1; //LS Invmass for all rec par
114     TH1F                 *fInvmassULS1;//ULS Invmass for all rec par
115     TH1F                             *fPhotoElecPt;             //photonic elec pt
116     TH1F                             *fSemiInclElecPt;  //Semi inclusive ele pt
117     TH1F                 *fULSElecPt; //ULS elec Pt
118     TH1F                 *fLSElecPt;// LS elec pt
119     TH2F                 *fMultCorAfterCuts; //! QA profile global and tpc multiplicity after outlier cut
120     TH2F                 *fMultvsCentr; //! QA profile of centralty vs multiplicity
121         TProfile                         *fSubEventDPhiv2;
122         TH1D                     *EPVzA;//ep v0a
123         TH1D                     *EPVzC;//ep v0c
124         TH1D                     *EPTPC;//ep tpc
125     THnSparseF           *fV2Phi;//! v2 analysis of EP-V0
126     TH1D                 *fvertex;//vertex
127     TH2F                 *fMultCorBeforeCuts; //! QA profile global and tpc multiplicity after outlier cut
128     AliPIDResponse       *fPIDResponse;//!  pidresponse
129     THnSparseF           *fQAPid;             //! v2 analysis of EP-V0
130     Double_t              fminTPCnsigma;  //ID cuts tpc
131     Double_t              fmaxTPCnsigma;  //ID cuts tpc
132     Bool_t                            fQAPIDSparse;       //QAPIDSPARSE
133     Double_t              fminTOFnSigma;  //ID cuts tof
134     Double_t              fmaxTOFnSigma;//ID cuts tof
135     THnSparseF           *fQAPidSparse;             //! v2 analysis of EP-V0
136     Int_t                 fTPCS; //tpc signal cluster
137     Int_t                 fVz; //vertex range
138     Bool_t                            fPhiCut;       //Phi cut to simulate emcal acc
139     Double_t                  fOpeningAngleCut; //openingAngle cut value
140     Bool_t                fOP_angle; //to shitch on and off the op_angle cut
141     TH1F                             *fOpeningAngleLS;  //opening angle for LS pairs
142     TH1F                             *fOpeningAngleULS; //opening angle for ULS pairs
143     AliSelectNonHFE      *fNonHFE;//new elienos stuff
144     Bool_t                fDCA;//selection PHelectron
145
146     
147     AliAnalysisTaskFlowTPCTOFQCSP(const AliAnalysisTaskFlowTPCTOFQCSP&); // not implemented
148     AliAnalysisTaskFlowTPCTOFQCSP& operator=(const AliAnalysisTaskFlowTPCTOFQCSP&); // not implemented
149
150     ClassDef(AliAnalysisTaskFlowTPCTOFQCSP, 2); //!example of analysis
151 };
152
153 #endif
154
155