]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/hfe/AliAnalysisTaskFlowTPCEMCalQCSP.h
Update
[u/mrichter/AliRoot.git] / PWGHF / hfe / AliAnalysisTaskFlowTPCEMCalQCSP.h
1 #ifndef ALIANALYSISTASKFLOWTPCEMCALQCSP_H
2 #define ALIANALYSISTASKFLOWTPCEMCALQCSP_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                              //
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"
41 //#include "AliCentrality.h"
42
43 class AliAnalysisTaskFlowTPCEMCalQCSP : public AliAnalysisTaskSE {
44
45   public:
46     AliAnalysisTaskFlowTPCEMCalQCSP();
47     AliAnalysisTaskFlowTPCEMCalQCSP(const char *name);
48     virtual ~AliAnalysisTaskFlowTPCEMCalQCSP();
49
50     void                                 SetEnableDebugMode() {fDebug = kTRUE; };
51     void                                 SetCentralityParameters(Double_t CentralityMin, Double_t CentralityMax, const char* CentralityMethod); //select centrality
52     void                                 CheckCentrality(AliAODEvent *event,Bool_t &centralitypass); //to use only events with the correct centrality....
53     void                                 SelectPhotonicElectron(Int_t itrack,const AliAODTrack *track, Bool_t &fFlagPhotonicElec);
54     void                                 SetInvariantMassCut(Double_t invmass) {fInvmassCut = invmass;};
55     void                                 SetTrigger(Int_t trig) {fTrigger = trig;};
56     template <typename T> void           PlotVZeroMultiplcities(const T* event) const;
57     template <typename T> void           SetNullCuts(T* aod);
58     void                                 PrepareFlowEvent(Int_t iMulti, AliFlowEvent *FlowEv) const;
59     virtual void                         UserCreateOutputObjects();
60     virtual void                         UserExec(Option_t *option);
61     virtual void                         Terminate(Option_t *);
62     void                                 SetRPCuts(AliFlowTrackCuts *cutsRP) { fCutsRP = cutsRP; }
63     void                                 SetHFECuts(AliHFEcuts * const cuts) { fCuts = cuts; };
64     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);
65
66
67
68     AliHFEpid *GetPID() const { return fPID; };
69
70   private:
71
72     Bool_t ProcessCutStep(Int_t cutStep, AliVParticle *track);
73
74     Bool_t               fDebug; //! enable debug mode
75     AliAODEvent              *fAOD;                     //AOD object
76     AliEMCALGeometry     *fGeom;                // emcal geometry
77     TList                        *fOutputList;          //output list
78     AliHFEcuts                   *fCuts;                 //Cut Collection
79     Bool_t                           fIdentifiedAsOutInz;    //Out Of Range in z
80     Bool_t                           fPassTheEventCut;       //Pass The Event Cut
81     Double_t             fVz;                    //z position of the primary vertex
82     AliCFManager                 *fCFM;                  //!Correction Framework Manager
83     AliHFEpid                *fPID;                  //PID
84     AliHFEpidQAmanager   *fPIDqa;               //! PID QA manager
85     AliFlowTrackCuts     *fCutsRP; // track cuts for reference particles
86     AliFlowTrackCuts     *fNullCuts; // dummy cuts for flow event tracks
87     AliFlowEvent         *fFlowEvent; //! flow events Inclusive e 
88     const char           *fkCentralityMethod; // method used to determine centrality (V0 by default)
89     Double_t             fCentrality; // event centrality for QA
90     Double_t             fCentralityMin; // lower bound of cenrality bin
91     Double_t             fCentralityMax; // upper bound of centrality bin
92     Double_t             fInvmassCut;           //invariant mass cut value
93     Int_t                    fTrigger;          //invariant mass cut value
94     TH1F                 *fPhi; //! QA plot of azimuthal distribution of tracks used for event plane estimation
95     TH1F                 *fEta; //! QA plot of eta distribution of tracks used for event plane estimation
96     TH1F                 *fVZEROA; //! QA plot vzeroa multiplicity (all tracks in event)
97     TH1F                 *fVZEROC; //! QA plot vzeroc multiplicity (all tracks in event)
98     TH1F                 *fTPCM; //! QA plot TPC multiplicity (tracks used for event plane estimation)
99     TH1F                         *fNoEvents;            //no of events
100     TH2F                         *fTrkEovPBef;          //track E/p before HFE pid
101     TH2F                             *fdEdxBef;         //track dEdx vs p before HFE pid
102     TH1F                 *fInclusiveElecPt; // Inclusive elec pt
103     TH2F                             *fTPCnsigma;               //TPC n sigma vs p
104     TH2F                         *fTPCnsigmaAft;                //TPC n sigma vs p after HFE pid
105     TH1F                 *fCentralityPass; // ! QA histogram of events that pass centrality cut
106     TH1F                 *fCentralityNoPass; //! QA histogram of events that do not pass centrality cut
107     THnSparse            *fSparseElectron;//! Trk matching sparse for v1 clusterizer
108     Double_t             *fvalueElectron;//! 6dim sparse fill for trk matching quantities
109     TH1F                 *fInvmassLS1; //LS Invmass for all rec par
110     TH1F                 *fInvmassULS1;//ULS Invmass for all rec par
111     TH1F                             *fPhotoElecPt;             //photonic elec pt
112     TH1F                             *fSemiInclElecPt;  //Semi inclusive ele pt
113     TH1F                 *fULSElecPt; //ULS elec Pt
114     TH1F                 *fLSElecPt;// LS elec pt
115         
116     Double_t fminTPC;  //ID cuts tpc
117     Double_t fmaxTPC;  //ID cuts tpc
118     Double_t fminEovP;  //ID cuts eovp
119     Double_t fmaxEovP;//ID cuts eovp
120     Double_t fminM20;//ID cuts SS
121     Double_t fmaxM20;//ID cuts SS
122     Double_t fminM02;//ID cuts SS
123     Double_t fmaxM02;//ID cuts SS
124     Double_t fDispersion;//ID cuts SS
125     
126         
127     AliAnalysisTaskFlowTPCEMCalQCSP(const AliAnalysisTaskFlowTPCEMCalQCSP&); // not implemented
128     AliAnalysisTaskFlowTPCEMCalQCSP& operator=(const AliAnalysisTaskFlowTPCEMCalQCSP&); // not implemented
129
130     ClassDef(AliAnalysisTaskFlowTPCEMCalQCSP, 2); //!example of analysis
131 };
132
133 #endif
134
135