]>
Commit | Line | Data |
---|---|---|
bd092f0f | 1 | #ifndef AliAnalysisTaskEMCALIsoPhoton_h |
2 | #define AliAnalysisTaskEMCALIsoPhoton_h | |
3 | ||
4 | // $Id$ | |
5 | ||
6 | class TH1F; | |
7 | class TH2F; | |
caaf99d3 | 8 | class TH3F; |
965c985f | 9 | class THnSparse; |
a62631a9 | 10 | class TList; |
bd092f0f | 11 | class TObjArray; |
12 | class AliEMCALGeometry; | |
13 | class AliESDCaloCells; | |
14 | class AliESDEvent; | |
15 | class AliESDtrack; | |
16 | class AliESDtrackCuts; | |
17 | class AliVCluster; | |
c7bb0b43 | 18 | class AliMCEvent; |
19 | class AliStack; | |
20 | class TParticle; | |
bd092f0f | 21 | |
22 | #include "AliAnalysisTaskSE.h" | |
23 | ||
24 | class AliAnalysisTaskEMCALIsoPhoton : public AliAnalysisTaskSE { | |
25 | public: | |
26 | AliAnalysisTaskEMCALIsoPhoton(); | |
27 | AliAnalysisTaskEMCALIsoPhoton(const char *name); | |
28 | virtual ~AliAnalysisTaskEMCALIsoPhoton() {} | |
29 | ||
30 | void UserCreateOutputObjects(); | |
31 | void UserExec(Option_t *option); | |
32 | void Terminate(Option_t *); | |
33 | ||
f224025f | 34 | void GetCeIso(TVector3 vec, Int_t maxid, Float_t &iso, Float_t &phiband, Float_t &core); |
bd092f0f | 35 | Double_t GetCrossEnergy(const AliVCluster *cluster, Short_t &idmax); |
36 | Double_t GetMaxCellEnergy(const AliVCluster *cluster, Short_t &id) const; | |
37 | void GetTrIso(TVector3 vec, Float_t &iso, Float_t &phiband, Float_t &core); | |
38 | void FillClusHists(); | |
c7bb0b43 | 39 | void FillMcHists(); |
b8b781cb | 40 | Float_t GetClusSource(const AliVCluster *cluster); |
f507c09b | 41 | void FollowGamma(); |
22ad7981 | 42 | void GetDaughtersInfo(int firstd, int lastd, int selfid, const char *indputindent); |
f912f9a9 | 43 | Float_t GetMcPtSumInCone(Float_t etaclus, Float_t phiclus, Float_t R); |
bd092f0f | 44 | void SetExotCut(Double_t c) { fExoticCut = c; } |
45 | void SetGeoName(const char *n) { fGeoName = n; } | |
46 | void SetIsoConeR(Double_t r) { fIsoConeR = r; } | |
47 | void SetPeriod(const char *n) { fPeriod = n; } | |
751194e8 | 48 | void SetTriggerBit(const char *tb) { fTrigBit = tb; } |
bd092f0f | 49 | void SetPrimTrackCuts(AliESDtrackCuts *c) { fPrTrCuts = c; } |
50 | void SetTrainMode(Bool_t t) { fIsTrain = t; } | |
c7bb0b43 | 51 | void SetMcMode(Bool_t mc) { fIsMc = mc; } |
ecd47673 | 52 | void SetDebugOn(Bool_t d) { fDebug = d; } |
f3843637 | 53 | void SetPathStringSelect(char *p) { fPathStrOpt = p; } |
f507c09b | 54 | void SetEtCut(Double_t ec) { fECut = ec; } |
bd092f0f | 55 | |
56 | protected: | |
57 | TRefArray *fCaloClusters; //!pointer to EMCal clusters | |
58 | TObjArray *fSelPrimTracks; //!pointer to ESD primary tracks | |
3f4073ba | 59 | TClonesArray *fTracks; //!track input array |
bd092f0f | 60 | AliESDCaloCells *fEMCalCells; //!pointer to EMCal cells |
ae41967e | 61 | AliESDtrackCuts *fPrTrCuts; //pointer to hold the prim track cuts |
bd092f0f | 62 | AliEMCALGeometry *fGeom; // geometry utils |
63 | TString fGeoName; // geometry name (def = EMCAL_FIRSTYEARV1) | |
64 | TString fPeriod; // string to the LHC period | |
751194e8 | 65 | TString fTrigBit; // string to the trigger bit name |
bd092f0f | 66 | Bool_t fIsTrain; // variable to set train mode |
c7bb0b43 | 67 | Bool_t fIsMc; // variable to set mc mode |
ecd47673 | 68 | Bool_t fDebug; // variable to set on/off debugging printouts |
f3843637 | 69 | TString fPathStrOpt; // variable to set the name of files to be analyzed (MC only) |
bd092f0f | 70 | Double_t fExoticCut; // variable to set the cut on exotic clusters |
71 | Double_t fIsoConeR; // variable to set the isolation cone radius | |
965c985f | 72 | Int_t fNDimensions; // variable to set the number of dimensions of n-sparse |
73 | Double_t fECut; // variable to set the minimum E of a cluster | |
16a4050e | 74 | Int_t fTrackMult; // global variable with the event multiplicity |
f507c09b | 75 | TString fMcIdFamily; // string that holds the ids of all particles originated from the prompt photon |
76 | Int_t fNClusForDirPho; // number of clusters from prompt photon per event | |
77 | Float_t fDirPhoPt; // prompt photon pt (assumes only one per event) | |
f9e2362a | 78 | Float_t fHigherPtCone; // higher pt inside the cone around the candidate |
16a4050e | 79 | |
bd092f0f | 80 | |
81 | private: | |
82 | AliESDEvent *fESD; //! ESD object | |
c7bb0b43 | 83 | AliMCEvent *fMCEvent; //! MC event object |
84 | AliStack *fStack; //!MC particles stack object | |
85 | ||
bd092f0f | 86 | TList *fOutputList; //! Output list |
87 | //histograms for events with 1+ track pt>1 | |
092ceec8 | 88 | TH1F *fEvtSel; //!evt selection counter: 0=all trg, 1=pv cut |
89 | TH1F *fNClusEt10; //!number of clusters w/ Et>10 in the event | |
cc57d293 | 90 | TH1F *fRecoPV; //!histogram to record if an event has a prim. vert. |
092ceec8 | 91 | TH1F *fPVtxZ; //!primary vertex Z before cut |
92 | TH1F *fTrMultDist; //!track multiplicity distribution | |
93 | TH3F *fMCDirPhotonPtEtaPhi; //!direct produced photon pt | |
94 | TH1F *fDecayPhotonPtMC; //!decay photon pt | |
95 | TH2F *fCellAbsIdVsAmpl; //!cell abs id vs cell amplitude (energy) | |
96 | TH2F *fNClusHighClusE; //!total number of clusters vs. highest clus energy in the event | |
f9e2362a | 97 | TH2F *fHigherPtConeM02; //!M02 vs. the higher pt of a track inside the cone |
092ceec8 | 98 | TH2F *fClusEtMcPt; //!cluster et x mc-pt |
99 | TH2F *fClusMcDetaDphi; //!delta-eta x delta-phi(reco-mc) | |
100 | TH2F *fNClusPerPho; //!delta-eta x delta-phi(reco-mc) | |
f912f9a9 | 101 | TH2F *fMcPtInConeBG; //!sum of mc-pt of "primary" particles inside de cone, as a function of NET-ISO in BG template |
102 | TH2F *fMcPtInConeSBG; //!sum of mc-pt of "primary" particles inside de cone, as a function of NET-ISO in SBG range | |
103 | TH2F *fMcPtInConeBGnoUE; //!sum of mc-pt of "primary" particles inside de cone, as a function of NET-ISO in BG template no UE sub | |
104 | TH2F *fMcPtInConeSBGnoUE; //!sum of mc-pt of "primary" particles inside de cone, as a function of NET-ISO in SBG range no UE sub | |
81f2660f | 105 | TH2F *fAllIsoEtMcGamma; //!all iso distribution vs. Et clus for clusters comming from a MC prompt photon |
106 | TH2F *fAllIsoNoUeEtMcGamma; //!all iso distribution (without UE subtraction) vs. Et clus for clusters comming from a MC prompt photon | |
092ceec8 | 107 | TH3F *fMCDirPhotonPtEtaPhiNoClus; //!pt x eta x phi for prompt photons that didn't produce clusters |
108 | THnSparse *fHnOutput; //!Output matrix with 7 dimensions | |
965c985f | 109 | |
bd092f0f | 110 | AliAnalysisTaskEMCALIsoPhoton(const AliAnalysisTaskEMCALIsoPhoton&); // not implemented |
111 | AliAnalysisTaskEMCALIsoPhoton& operator=(const AliAnalysisTaskEMCALIsoPhoton&); // not implemented | |
112 | ||
113 | ClassDef(AliAnalysisTaskEMCALIsoPhoton, 1); // Class to analyse isolated photons | |
114 | }; | |
115 | #endif |