1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
16 #ifndef ALIANALYSISTASKFlowTPCEMCalEP_H
17 #define ALIANALYSISTASKFlowTPCEMCalEP_H
27 class AliEMCALGeometry;
28 class AliEMCALRecoUtils;
29 class AliAnalysisFilter;
30 class AliESDtrackCuts;
32 class AliHFEcontainer;
35 class AliHFEpidQAmanager;
38 #include "AliAnalysisTaskSE.h"
40 class AliAnalysisTaskFlowTPCEMCalEP : public AliAnalysisTaskSE {
42 AliAnalysisTaskFlowTPCEMCalEP();
43 AliAnalysisTaskFlowTPCEMCalEP(const char *name);
44 virtual ~AliAnalysisTaskFlowTPCEMCalEP();
46 virtual void UserCreateOutputObjects();
47 virtual void UserExec(Option_t *option);
48 virtual void Terminate(Option_t *);
50 void SetHFECuts(AliHFEcuts * const cuts) { fCuts = cuts; };
51 void SetOpeningAngleCut (Double_t openingAngle) {fOpeningAngleCut = openingAngle;};
52 void SetInvariantMassCut (Double_t invmass) {fInvmassCut = invmass;};
53 AliHFEpid *GetPID() const { return fPID; }
54 void SetRejectKinkMother(Bool_t rejectKinkMother = kFALSE) { fRejectKinkMother = rejectKinkMother; };
55 void SelectPhotonicElectron(Int_t iTracks,AliESDtrack *track,Bool_t &fFlagPhotonicElec, Bool_t &fFlagPhotonicElecBCG);
57 Double_t GetCos2DeltaPhi(Double_t phiA,Double_t phiB) const;
58 Double_t GetDeltaPhi(Double_t phiA,Double_t phiB) const;
59 Double_t GetPi0weight(Double_t mcPi0pT) const;
60 Double_t GetEtaweight(Double_t mcEtapT) const;
61 Double_t GetDweight(Int_t whichD, Double_t mcDpT) const;
65 Bool_t ProcessCutStep(Int_t cutStep, AliVParticle *track);
67 AliESDEvent *fESD; //!ESD object
68 AliMCEvent *fMC; //!MC object
70 TList *fOutputList; //! output list
72 AliESDtrackCuts *fTrackCuts; //! ESD track cuts
73 AliHFEcuts *fCuts; //! Cut Collection
74 Bool_t fIdentifiedAsOutInz; //Out Of Range in z
75 Bool_t fPassTheEventCut; //Pass The Event Cut
76 Bool_t fRejectKinkMother; //Reject Kink Mother
78 Double_t fVz; //z position of the primary vertex
79 AliCFManager *fCFM; //! Correction Framework Manager
80 AliHFEpid *fPID; //! PID
81 AliHFEpidQAmanager *fPIDqa; //! PID QA manager
82 Double_t fOpeningAngleCut; //openingAngle cut value
83 Double_t fInvmassCut; //invariant mass cut value
85 TH1F *fNoEvents; //! no of events
86 TH1F *fTrkpt; //! track pt
87 TH2F *fTrkEovPBef; //! track E/p before HFE pid
88 TH2F *fTrkEovPAft; //! track E/p after HFE pid
89 TH2F *fdEdxBef; //! track dEdx vs p before HFE pid
90 TH2F *fdEdxAft; //! track dEdx vs p after HFE pid
91 TH1F *fInvmassLS; //! Inv mass of LS (e,e)
92 TH1F *fInvmassULS; //! Inv mass of ULS (e,e)
93 TH1F *fOpeningAngleLS; //! opening angle for LS pairs
94 TH1F *fOpeningAngleULS; //! opening angle for ULS pairs
95 TH1F *fPhotoElecPt; //! photonic elec pt
96 TH1F *fSemiInclElecPt; //! Semi inclusive ele pt
97 THnSparse *fMCphotoElecPt; //! pt distribution (MC)
99 TH1F *fTrackPtBefTrkCuts; //! Track pt before track cuts
100 TH1F *fTrackPtAftTrkCuts; //! Track pt after track cuts
101 TH2F *fTPCnsigma; //! TPC n sigma vs p
103 TH1F *fCent; //! centrality
104 TH2F *fevPlaneV0A; //! V0A event plane distribution
105 TH2F *fevPlaneV0C; //! V0C event plane distribution
106 TH2F *fevPlaneTPC; //! TPC event plane distribution
107 TH2F *fTPCsubEPres; //! TPC event plane resolution
108 THnSparse *fEPres; //! event plane resolution
109 THnSparse *fCorr; //! correlations
110 THnSparse *feTPCV2; //! inclusive eletron v2 (only TPC PID)
111 THnSparse *feV2; //! inclusive eletron v2 (TPC + EMCAL PID)
112 THnSparse *fphoteV2; //! photonic electron v2 (TPC + EMCAL PID)
113 THnSparse *fChargPartV2; //! charged particle v2
115 TH2F *fGammaWeight; //! gamma weight
116 TH2F *fPi0Weight; //! pi0 weight
117 TH2F *fEtaWeight; //! eta weight
118 TH2F *fD0Weight; //! D0 weight
119 TH2F *fDplusWeight; //! D+ weight
120 TH2F *fDminusWeight; //! D- weight
129 TH1F *fTot_pi0e; //! inclusive electron
130 TH1F *fPhot_pi0e; //! ULS pair
131 TH1F *fPhotBCG_pi0e; //! LS pair
132 TH1F *fTot_etae; //! inclusive electron
133 TH1F *fPhot_etae; //! ULS pair
134 TH1F *fPhotBCG_etae; //! LS pair
136 THnSparse *fCocktail; //! for cocktail
138 AliAnalysisTaskFlowTPCEMCalEP(const AliAnalysisTaskFlowTPCEMCalEP&); // not implemented
139 AliAnalysisTaskFlowTPCEMCalEP& operator=(const AliAnalysisTaskFlowTPCEMCalEP&); // not implemented
141 ClassDef(AliAnalysisTaskFlowTPCEMCalEP, 1); //!example of analysis