]>
Commit | Line | Data |
---|---|---|
bd092f0f | 1 | #ifndef AliAnalysisTaskEMCALIsoPhoton_h |
2 | #define AliAnalysisTaskEMCALIsoPhoton_h | |
3 | ||
4 | // $Id$ | |
5 | ||
6 | class TH1F; | |
7 | class TH2F; | |
8 | class TObjArray; | |
9 | class AliEMCALGeometry; | |
10 | class AliESDCaloCells; | |
11 | class AliESDEvent; | |
12 | class AliESDtrack; | |
13 | class AliESDtrackCuts; | |
14 | class AliVCluster; | |
15 | ||
16 | #include "AliAnalysisTaskSE.h" | |
17 | ||
18 | class AliAnalysisTaskEMCALIsoPhoton : public AliAnalysisTaskSE { | |
19 | public: | |
20 | AliAnalysisTaskEMCALIsoPhoton(); | |
21 | AliAnalysisTaskEMCALIsoPhoton(const char *name); | |
22 | virtual ~AliAnalysisTaskEMCALIsoPhoton() {} | |
23 | ||
24 | void UserCreateOutputObjects(); | |
25 | void UserExec(Option_t *option); | |
26 | void Terminate(Option_t *); | |
27 | ||
28 | void GetCeIso(TVector3 vec, Float_t &iso, Float_t &phiband, Float_t &core); | |
29 | Double_t GetCrossEnergy(const AliVCluster *cluster, Short_t &idmax); | |
30 | Double_t GetMaxCellEnergy(const AliVCluster *cluster, Short_t &id) const; | |
31 | void GetTrIso(TVector3 vec, Float_t &iso, Float_t &phiband, Float_t &core); | |
32 | void FillClusHists(); | |
33 | void SetExotCut(Double_t c) { fExoticCut = c; } | |
34 | void SetGeoName(const char *n) { fGeoName = n; } | |
35 | void SetIsoConeR(Double_t r) { fIsoConeR = r; } | |
36 | void SetPeriod(const char *n) { fPeriod = n; } | |
751194e8 | 37 | void SetTriggerBit(const char *tb) { fTrigBit = tb; } |
bd092f0f | 38 | void SetPrimTrackCuts(AliESDtrackCuts *c) { fPrTrCuts = c; } |
39 | void SetTrainMode(Bool_t t) { fIsTrain = t; } | |
40 | ||
41 | protected: | |
42 | TRefArray *fCaloClusters; //!pointer to EMCal clusters | |
43 | TObjArray *fSelPrimTracks; //!pointer to ESD primary tracks | |
44 | AliESDCaloCells *fEMCalCells; //!pointer to EMCal cells | |
45 | AliESDtrackCuts *fPrTrCuts; //!pointer to hold the prim track cuts | |
46 | AliEMCALGeometry *fGeom; // geometry utils | |
47 | TString fGeoName; // geometry name (def = EMCAL_FIRSTYEARV1) | |
48 | TString fPeriod; // string to the LHC period | |
751194e8 | 49 | TString fTrigBit; // string to the trigger bit name |
bd092f0f | 50 | Bool_t fIsTrain; // variable to set train mode |
51 | Double_t fExoticCut; // variable to set the cut on exotic clusters | |
52 | Double_t fIsoConeR; // variable to set the isolation cone radius | |
53 | ||
54 | private: | |
55 | AliESDEvent *fESD; //! ESD object | |
56 | TList *fOutputList; //! Output list | |
57 | //histograms for events with 1+ track pt>1 | |
58 | TH1F *fEvtSel; //!evt selection counter: 0=all trg, 1=pv cut | |
59 | TH1F *fPVtxZ; //!primary vertex Z before cut | |
60 | TH2F *fCellAbsIdVsAmpl; //!cell abs id vs cell amplitude (energy) | |
61 | TH2F *fNClusHighClusE; //!total number of clusters vs. highest clus energy in the event | |
62 | TH2F *fM02Et; //!M02 vs Et for all clusters | |
63 | TH2F *fM02EtTM; //!M02 vs Et for clusters with track-match (dEta=0.01 && dPhi=0.025) | |
64 | TH2F *fM02EtCeIso1; //!M02 vs Et for clusters with isolation neutral Et<1GeV | |
65 | TH2F *fM02EtCeIso2; //!M02 vs Et for clusters with isolation neutral Et<2GeV | |
66 | TH2F *fM02EtCeIso5; //!M02 vs Et for clusters with isolation neutral Et<5GeV | |
67 | TH2F *fM02EtTrIso1; //!M02 vs Et for clusters with isolation charged Et<1GeV | |
68 | TH2F *fM02EtTrIso2; //!M02 vs Et for clusters with isolation charged Et<2GeV | |
69 | TH2F *fM02EtTrIso5; //!M02 vs Et for clusters with isolation charged Et<5GeV | |
70 | TH2F *fM02EtAllIso1; //!M02 vs Et for clusters with isolation total Et<1GeV | |
71 | TH2F *fM02EtAllIso2; //!M02 vs Et for clusters with isolation total Et<2GeV | |
72 | TH2F *fM02EtAllIso5; //!M02 vs Et for clusters with isolation total Et<5GeV | |
73 | TH2F *fCeIsoVsEtPho; //!Neutral isolation Et vs. cluster Et, 0.05<M02<0.30 | |
74 | TH2F *fTrIsoVsEtPho; //!Charged isolation Et vs. cluster Et, 0.05<M02<0.30 | |
75 | TH2F *fAllIsoVsEtPho; //!Total isolation Et vs. cluster Et, 0.05<M02<0.30 | |
76 | //track matched stuff | |
77 | TH2F *fM02EtCeIso1TM; //!Track-matched M02 vs Et for clusters with isolation neutral Et<1GeV | |
78 | TH2F *fM02EtCeIso2TM; //!Track-matched M02 vs Et for clusters with isolation neutral Et<2GeV | |
79 | TH2F *fM02EtCeIso5TM; //!Track-matched M02 vs Et for clusters with isolation neutral Et<5GeV | |
80 | TH2F *fM02EtTrIso1TM; //!Track-matched M02 vs Et for clusters with isolation charged Et<1GeV | |
81 | TH2F *fM02EtTrIso2TM; //!Track-matched M02 vs Et for clusters with isolation charged Et<2GeV | |
82 | TH2F *fM02EtTrIso5TM; //!Track-matched M02 vs Et for clusters with isolation charged Et<5GeV | |
83 | TH2F *fM02EtAllIso1TM; //!Track-matched M02 vs Et for clusters with isolation total Et<1GeV | |
84 | TH2F *fM02EtAllIso2TM; //!Track-matched M02 vs Et for clusters with isolation total Et<2GeV | |
85 | TH2F *fM02EtAllIso5TM; //!Track-matched M02 vs Et for clusters with isolation total Et<5GeV | |
86 | TH2F *fCeIsoVsEtPhoTM; //!Track-matched Neutral isolation Et vs. cluster Et, 0.05<M02<0.30 | |
87 | TH2F *fTrIsoVsEtPhoTM; //!Track-matched Charged isolation Et vs. cluster Et, 0.05<M02<0.30 | |
88 | TH2F *fAllIsoVsEtPhoTM; //!Track-matched Total isolation Et vs. cluster Et, 0.05<M02<0.30 | |
89 | ||
90 | AliAnalysisTaskEMCALIsoPhoton(const AliAnalysisTaskEMCALIsoPhoton&); // not implemented | |
91 | AliAnalysisTaskEMCALIsoPhoton& operator=(const AliAnalysisTaskEMCALIsoPhoton&); // not implemented | |
92 | ||
93 | ClassDef(AliAnalysisTaskEMCALIsoPhoton, 1); // Class to analyse isolated photons | |
94 | }; | |
95 | #endif |