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