1 #ifndef AliAnalysisTaskEMCALIsoPhoton_h
2 #define AliAnalysisTaskEMCALIsoPhoton_h
11 class AliEMCALGeometry;
12 class AliESDCaloCells;
15 class AliESDtrackCuts;
21 #include "AliAnalysisTaskSE.h"
23 class AliAnalysisTaskEMCALIsoPhoton : public AliAnalysisTaskSE {
25 AliAnalysisTaskEMCALIsoPhoton();
26 AliAnalysisTaskEMCALIsoPhoton(const char *name);
27 virtual ~AliAnalysisTaskEMCALIsoPhoton() {}
29 void UserCreateOutputObjects();
30 void UserExec(Option_t *option);
31 void Terminate(Option_t *);
33 void GetCeIso(TVector3 vec, Float_t &iso, Float_t &phiband, Float_t &core);
34 Double_t GetCrossEnergy(const AliVCluster *cluster, Short_t &idmax);
35 Double_t GetMaxCellEnergy(const AliVCluster *cluster, Short_t &id) const;
36 void GetTrIso(TVector3 vec, Float_t &iso, Float_t &phiband, Float_t &core);
39 void SetExotCut(Double_t c) { fExoticCut = c; }
40 void SetGeoName(const char *n) { fGeoName = n; }
41 void SetIsoConeR(Double_t r) { fIsoConeR = r; }
42 void SetPeriod(const char *n) { fPeriod = n; }
43 void SetTriggerBit(const char *tb) { fTrigBit = tb; }
44 void SetPrimTrackCuts(AliESDtrackCuts *c) { fPrTrCuts = c; }
45 void SetTrainMode(Bool_t t) { fIsTrain = t; }
46 void SetMcMode(Bool_t mc) { fIsMc = mc; }
49 TRefArray *fCaloClusters; //!pointer to EMCal clusters
50 TObjArray *fSelPrimTracks; //!pointer to ESD primary tracks
51 TClonesArray *fTracks; //!track input array
52 AliESDCaloCells *fEMCalCells; //!pointer to EMCal cells
53 AliESDtrackCuts *fPrTrCuts; //pointer to hold the prim track cuts
54 AliEMCALGeometry *fGeom; // geometry utils
55 TString fGeoName; // geometry name (def = EMCAL_FIRSTYEARV1)
56 TString fPeriod; // string to the LHC period
57 TString fTrigBit; // string to the trigger bit name
58 Bool_t fIsTrain; // variable to set train mode
59 Bool_t fIsMc; // variable to set mc mode
60 Double_t fExoticCut; // variable to set the cut on exotic clusters
61 Double_t fIsoConeR; // variable to set the isolation cone radius
62 Int_t fNDimensions; // variable to set the number of dimensions of n-sparse
63 Double_t fECut; // variable to set the minimum E of a cluster
64 Int_t fTrackMult; // global variable with the event multiplicity
68 AliESDEvent *fESD; //! ESD object
69 AliMCEvent *fMCEvent; //! MC event object
70 AliStack *fStack; //!MC particles stack object
72 TList *fOutputList; //! Output list
73 //histograms for events with 1+ track pt>1
74 TH1F *fEvtSel; //!evt selection counter: 0=all trg, 1=pv cut
75 TH1F *fNClusEt10; //!number of clusters w/ Et>10 in the event
76 TH1F *fPVtxZ; //!primary vertex Z before cut
77 TH1F *fDirPhotonPtMC; //!direct produced photon pt
78 TH1F *fDecayPhotonPtMC; //!decay photon pt
79 TH2F *fCellAbsIdVsAmpl; //!cell abs id vs cell amplitude (energy)
80 TH2F *fNClusHighClusE; //!total number of clusters vs. highest clus energy in the event
81 THnSparse *fHnOutput; //!Output matrix with 7 dimensions
83 AliAnalysisTaskEMCALIsoPhoton(const AliAnalysisTaskEMCALIsoPhoton&); // not implemented
84 AliAnalysisTaskEMCALIsoPhoton& operator=(const AliAnalysisTaskEMCALIsoPhoton&); // not implemented
86 ClassDef(AliAnalysisTaskEMCALIsoPhoton, 1); // Class to analyse isolated photons