]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/EMCALTasks/AliAnalysisTaskEMCALIsoPhoton.h
remove filter bit cut and let hybrid selection only
[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;
caaf99d3 8class TH3F;
965c985f 9class THnSparse;
a62631a9 10class TList;
bd092f0f 11class TObjArray;
12class AliEMCALGeometry;
4d4ce2d2 13class AliOADBContainer;
bd092f0f 14class AliESDCaloCells;
15class AliESDEvent;
16class AliESDtrack;
17class AliESDtrackCuts;
2e20efe5 18class AliAODEvent;
19class AliAODCaloCells;
bd092f0f 20class AliVCluster;
c7bb0b43 21class AliMCEvent;
22class AliStack;
23class TParticle;
822c9944 24class TGeoHMatrix;
bd092f0f 25
26#include "AliAnalysisTaskSE.h"
27
28class AliAnalysisTaskEMCALIsoPhoton : public AliAnalysisTaskSE {
29 public:
30 AliAnalysisTaskEMCALIsoPhoton();
31 AliAnalysisTaskEMCALIsoPhoton(const char *name);
32 virtual ~AliAnalysisTaskEMCALIsoPhoton() {}
33
34 void UserCreateOutputObjects();
35 void UserExec(Option_t *option);
36 void Terminate(Option_t *);
37
f224025f 38 void GetCeIso(TVector3 vec, Int_t maxid, Float_t &iso, Float_t &phiband, Float_t &core);
bd092f0f 39 Double_t GetCrossEnergy(const AliVCluster *cluster, Short_t &idmax);
40 Double_t GetMaxCellEnergy(const AliVCluster *cluster, Short_t &id) const;
41 void GetTrIso(TVector3 vec, Float_t &iso, Float_t &phiband, Float_t &core);
1c86c72c 42 Double_t GetTrackMatchedPt(Int_t matchIndex);
bd092f0f 43 void FillClusHists();
c7bb0b43 44 void FillMcHists();
2b7205ad 45 void FillQA();
b8b781cb 46 Float_t GetClusSource(const AliVCluster *cluster);
f507c09b 47 void FollowGamma();
22ad7981 48 void GetDaughtersInfo(int firstd, int lastd, int selfid, const char *indputindent);
f912f9a9 49 Float_t GetMcPtSumInCone(Float_t etaclus, Float_t phiclus, Float_t R);
112eb594 50 void LoopOnCells();
bd092f0f 51 void SetExotCut(Double_t c) { fExoticCut = c; }
52 void SetGeoName(const char *n) { fGeoName = n; }
53 void SetIsoConeR(Double_t r) { fIsoConeR = r; }
54 void SetPeriod(const char *n) { fPeriod = n; }
751194e8 55 void SetTriggerBit(const char *tb) { fTrigBit = tb; }
bd092f0f 56 void SetPrimTrackCuts(AliESDtrackCuts *c) { fPrTrCuts = c; }
57 void SetTrainMode(Bool_t t) { fIsTrain = t; }
c7bb0b43 58 void SetMcMode(Bool_t mc) { fIsMc = mc; }
ecd47673 59 void SetDebugOn(Bool_t d) { fDebug = d; }
f3843637 60 void SetPathStringSelect(char *p) { fPathStrOpt = p; }
f507c09b 61 void SetEtCut(Double_t ec) { fECut = ec; }
26a8db0f 62 void SetImportGeometryFromFile(Bool_t im,
63 TString pa = "") { fImportGeometryFromFile = im ;
64 fImportGeometryFilePath = pa ; }
48aab590 65 void SetTrackFilterBit(ULong_t bit) { fFilterBit = bit; }
bd092f0f 66
112eb594 67
bd092f0f 68 protected:
2e20efe5 69 TObjArray *fESDClusters; //!pointer to EMCal clusters
70 TObjArray *fAODClusters; //!pointer to EMCal clusters
bd092f0f 71 TObjArray *fSelPrimTracks; //!pointer to ESD primary tracks
3f4073ba 72 TClonesArray *fTracks; //!track input array
2e20efe5 73 AliESDCaloCells *fESDCells; //!pointer to EMCal cells, esd
74 AliAODCaloCells *fAODCells; //!pointer to EMCal cells, aod
ae41967e 75 AliESDtrackCuts *fPrTrCuts; //pointer to hold the prim track cuts
bd092f0f 76 AliEMCALGeometry *fGeom; // geometry utils
77 TString fGeoName; // geometry name (def = EMCAL_FIRSTYEARV1)
4d4ce2d2 78 AliOADBContainer *fOADBContainer; //!OADB container used to load misalignment matrices
bd092f0f 79 TString fPeriod; // string to the LHC period
751194e8 80 TString fTrigBit; // string to the trigger bit name
bd092f0f 81 Bool_t fIsTrain; // variable to set train mode
c7bb0b43 82 Bool_t fIsMc; // variable to set mc mode
ecd47673 83 Bool_t fDebug; // variable to set on/off debugging printouts
f3843637 84 TString fPathStrOpt; // variable to set the name of files to be analyzed (MC only)
bd092f0f 85 Double_t fExoticCut; // variable to set the cut on exotic clusters
86 Double_t fIsoConeR; // variable to set the isolation cone radius
965c985f 87 Int_t fNDimensions; // variable to set the number of dimensions of n-sparse
88 Double_t fECut; // variable to set the minimum E of a cluster
16a4050e 89 Int_t fTrackMult; // global variable with the event multiplicity
f507c09b 90 TString fMcIdFamily; // string that holds the ids of all particles originated from the prompt photon
91 Int_t fNClusForDirPho; // number of clusters from prompt photon per event
92 Float_t fDirPhoPt; // prompt photon pt (assumes only one per event)
f9e2362a 93 Float_t fHigherPtCone; // higher pt inside the cone around the candidate
26a8db0f 94 Bool_t fImportGeometryFromFile; // Import geometry settings in geometry.root file
95 TString fImportGeometryFilePath; // path fo geometry.root file
112eb594 96 Double_t fMaxPtTrack; //track with highest pt in event
97 Double_t fMaxEClus; //cluster with highest energy in event
98 Int_t fNCells50; // variable to keep the number of cells with E>50 MeV
48aab590 99 ULong_t fFilterBit; // Track selection bit, for AODs
100
16a4050e 101
bd092f0f 102
103 private:
104 AliESDEvent *fESD; //! ESD object
2e20efe5 105 AliAODEvent *fAOD; //! AOD object
c7bb0b43 106 AliMCEvent *fMCEvent; //! MC event object
107 AliStack *fStack; //!MC particles stack object
822c9944 108 TGeoHMatrix *fGeomMatrix[12];//! Geometry misalignment matrices for EMCal
bd092f0f 109 TList *fOutputList; //! Output list
110 //histograms for events with 1+ track pt>1
092ceec8 111 TH1F *fEvtSel; //!evt selection counter: 0=all trg, 1=pv cut
112 TH1F *fNClusEt10; //!number of clusters w/ Et>10 in the event
cc57d293 113 TH1F *fRecoPV; //!histogram to record if an event has a prim. vert.
092ceec8 114 TH1F *fPVtxZ; //!primary vertex Z before cut
115 TH1F *fTrMultDist; //!track multiplicity distribution
e53ab710 116 TH3F *fMCDirPhotonPtEtaPhi; //!direct produced photon pt, eta, phi
117 TH3F *fMCIsoDirPhotonPtEtaPhi; //!direct produced photon pt, eta, phi, isolated @ mc level
092ceec8 118 TH1F *fDecayPhotonPtMC; //!decay photon pt
119 TH2F *fCellAbsIdVsAmpl; //!cell abs id vs cell amplitude (energy)
120 TH2F *fNClusHighClusE; //!total number of clusters vs. highest clus energy in the event
f9e2362a 121 TH2F *fHigherPtConeM02; //!M02 vs. the higher pt of a track inside the cone
092ceec8 122 TH2F *fClusEtMcPt; //!cluster et x mc-pt
123 TH2F *fClusMcDetaDphi; //!delta-eta x delta-phi(reco-mc)
124 TH2F *fNClusPerPho; //!delta-eta x delta-phi(reco-mc)
f912f9a9 125 TH2F *fMcPtInConeBG; //!sum of mc-pt of "primary" particles inside de cone, as a function of NET-ISO in BG template
126 TH2F *fMcPtInConeSBG; //!sum of mc-pt of "primary" particles inside de cone, as a function of NET-ISO in SBG range
127 TH2F *fMcPtInConeBGnoUE; //!sum of mc-pt of "primary" particles inside de cone, as a function of NET-ISO in BG template no UE sub
128 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 129 TH2F *fAllIsoEtMcGamma; //!all iso distribution vs. Et clus for clusters comming from a MC prompt photon
130 TH2F *fAllIsoNoUeEtMcGamma; //!all iso distribution (without UE subtraction) vs. Et clus for clusters comming from a MC prompt photon
092ceec8 131 TH3F *fMCDirPhotonPtEtaPhiNoClus; //!pt x eta x phi for prompt photons that didn't produce clusters
132 THnSparse *fHnOutput; //!Output matrix with 7 dimensions
965c985f 133
2b7205ad 134 //QA histos
135 TList *fQAList; //!output list holding QA histos
136 TH1F *fNTracks; //!number of tracks from Array->GetEntries()
137 TH1F *fEmcNCells; //!number of emcal cells in the event
138 TH1F *fEmcNClus; //!# of emcal clusters
139 TH1F *fEmcNClusCut; //!# of clusters in an event with at least 1 clus with E > fECut ("triggered event")
140 TH1F *fNTracksECut; //!number of tracks from Array->GetEntries() in "triggered event"
141 TH1F *fEmcNCellsCut; //!number of emcal cells in a in "triggered event"
e4ba80ad 142 TH2F *fEmcClusEPhi; //!cluster E spectrum vs. phi
143 TH2F *fEmcClusEPhiCut; //!cluster E spectrum vs. phi in "triggered event"
144 TH2F *fEmcClusEEta; //!cluster E spectrum vs. eta
145 TH2F *fEmcClusEEtaCut; //!cluster E spectrum vs. eta in "triggered event"
146 TH2F *fTrackPtPhi; //!selected tracks pt vs. phi
147 TH2F *fTrackPtPhiCut; //!selected tracks pt vs. phi in "triggered event"
148 TH2F *fTrackPtEta; //!selected tracks pt vs. eta
149 TH2F *fTrackPtEtaCut; //!selected tracks pt vs. eta in "triggered event"
3ae97198 150 TH2F *fMaxCellEPhi; //!max cell energy vs. cell phi
2b7205ad 151
152
bd092f0f 153 AliAnalysisTaskEMCALIsoPhoton(const AliAnalysisTaskEMCALIsoPhoton&); // not implemented
154 AliAnalysisTaskEMCALIsoPhoton& operator=(const AliAnalysisTaskEMCALIsoPhoton&); // not implemented
155
156 ClassDef(AliAnalysisTaskEMCALIsoPhoton, 1); // Class to analyse isolated photons
157};
158#endif