]>
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 | ||
34 | void GetCeIso(TVector3 vec, Float_t &iso, Float_t &phiband, Float_t &core); | |
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(); |
f507c09b | 40 | Float_t GetClusSource(const AliVCluster *cluster); |
41 | void FollowGamma(); | |
42 | void GetDaughtersInfo(const int firstd, const int lastd, const int selfid, const char *indputindent); | |
bd092f0f | 43 | void SetExotCut(Double_t c) { fExoticCut = c; } |
44 | void SetGeoName(const char *n) { fGeoName = n; } | |
45 | void SetIsoConeR(Double_t r) { fIsoConeR = r; } | |
46 | void SetPeriod(const char *n) { fPeriod = n; } | |
751194e8 | 47 | void SetTriggerBit(const char *tb) { fTrigBit = tb; } |
bd092f0f | 48 | void SetPrimTrackCuts(AliESDtrackCuts *c) { fPrTrCuts = c; } |
49 | void SetTrainMode(Bool_t t) { fIsTrain = t; } | |
c7bb0b43 | 50 | void SetMcMode(Bool_t mc) { fIsMc = mc; } |
ecd47673 | 51 | void SetDebugOn(Bool_t d) { fDebug = d; } |
f3843637 | 52 | void SetPathStringSelect(char *p) { fPathStrOpt = p; } |
f507c09b | 53 | void SetEtCut(Double_t ec) { fECut = ec; } |
bd092f0f | 54 | |
55 | protected: | |
56 | TRefArray *fCaloClusters; //!pointer to EMCal clusters | |
57 | TObjArray *fSelPrimTracks; //!pointer to ESD primary tracks | |
3f4073ba | 58 | TClonesArray *fTracks; //!track input array |
bd092f0f | 59 | AliESDCaloCells *fEMCalCells; //!pointer to EMCal cells |
ae41967e | 60 | AliESDtrackCuts *fPrTrCuts; //pointer to hold the prim track cuts |
bd092f0f | 61 | AliEMCALGeometry *fGeom; // geometry utils |
62 | TString fGeoName; // geometry name (def = EMCAL_FIRSTYEARV1) | |
63 | TString fPeriod; // string to the LHC period | |
751194e8 | 64 | TString fTrigBit; // string to the trigger bit name |
bd092f0f | 65 | Bool_t fIsTrain; // variable to set train mode |
c7bb0b43 | 66 | Bool_t fIsMc; // variable to set mc mode |
ecd47673 | 67 | Bool_t fDebug; // variable to set on/off debugging printouts |
f3843637 | 68 | TString fPathStrOpt; // variable to set the name of files to be analyzed (MC only) |
bd092f0f | 69 | Double_t fExoticCut; // variable to set the cut on exotic clusters |
70 | Double_t fIsoConeR; // variable to set the isolation cone radius | |
965c985f | 71 | Int_t fNDimensions; // variable to set the number of dimensions of n-sparse |
72 | Double_t fECut; // variable to set the minimum E of a cluster | |
16a4050e | 73 | Int_t fTrackMult; // global variable with the event multiplicity |
f507c09b | 74 | TString fMcIdFamily; // string that holds the ids of all particles originated from the prompt photon |
75 | Int_t fNClusForDirPho; // number of clusters from prompt photon per event | |
76 | Float_t fDirPhoPt; // prompt photon pt (assumes only one per event) | |
16a4050e | 77 | |
bd092f0f | 78 | |
79 | private: | |
80 | AliESDEvent *fESD; //! ESD object | |
c7bb0b43 | 81 | AliMCEvent *fMCEvent; //! MC event object |
82 | AliStack *fStack; //!MC particles stack object | |
83 | ||
bd092f0f | 84 | TList *fOutputList; //! Output list |
85 | //histograms for events with 1+ track pt>1 | |
86 | TH1F *fEvtSel; //!evt selection counter: 0=all trg, 1=pv cut | |
0b21f686 | 87 | TH1F *fNClusEt10; //!number of clusters w/ Et>10 in the event |
bd092f0f | 88 | TH1F *fPVtxZ; //!primary vertex Z before cut |
f507c09b | 89 | TH1F *fTrMultDist; //!track multiplicity distribution |
caaf99d3 | 90 | TH3F *fMCDirPhotonPtEtaPhi; //!direct produced photon pt |
c7bb0b43 | 91 | TH1F *fDecayPhotonPtMC; //!decay photon pt |
bd092f0f | 92 | TH2F *fCellAbsIdVsAmpl; //!cell abs id vs cell amplitude (energy) |
93 | TH2F *fNClusHighClusE; //!total number of clusters vs. highest clus energy in the event | |
f507c09b | 94 | TH2F *fClusEtMcPt; //!cluster et x mc-pt |
95 | TH2F *fClusMcDetaDphi; //!delta-eta x delta-phi(reco-mc) | |
96 | TH2F *fNClusPerPho; //!delta-eta x delta-phi(reco-mc) | |
97 | TH2F *fMCDirPhotonPtEtaNoClus; //!eta x phi for prompt photons that didn't produce clusters | |
965c985f | 98 | THnSparse *fHnOutput; //!Output matrix with 7 dimensions |
99 | ||
bd092f0f | 100 | AliAnalysisTaskEMCALIsoPhoton(const AliAnalysisTaskEMCALIsoPhoton&); // not implemented |
101 | AliAnalysisTaskEMCALIsoPhoton& operator=(const AliAnalysisTaskEMCALIsoPhoton&); // not implemented | |
102 | ||
103 | ClassDef(AliAnalysisTaskEMCALIsoPhoton, 1); // Class to analyse isolated photons | |
104 | }; | |
105 | #endif |