]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/EMCALTasks/AliAnalysisTaskEMCALPhotonIsolation.h
New version for photon isolation task
[u/mrichter/AliRoot.git] / PWGGA / EMCALTasks / AliAnalysisTaskEMCALPhotonIsolation.h
CommitLineData
1c662fe8 1#ifndef ALIANALYSISTASKEMCALPHOTONISOLATION_H
2#define ALIANALYSISTASKEMCALPHOTONISOLATION_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6 //////////////////////////////////////////////////////////////////////////
7 // //
8 // Task for Isolated Gamma in p-p,p-Pb and eventually g-h Correlation //
9 // //
10 // Author: Davide Francesco Lodato (Utrecht University) //
11 // Lucile Ronflette (Subatech, Nantes) //
12 // Marco Marquard (University Frankfurt am Main) //
13 //////////////////////////////////////////////////////////////////////////
14
15 //ROOT System
16
17class TH1;
18class TH2;
19class TH3;
20class THnSparse;
21class TList;
22class TObjArray;
23class AliEMCALGeometry;
24class AliESDCaloCells;
25class AliESDEvent;
26class AliESDtrack;
27class TClonesArray;
28class TList;
29class TString;
30class AliVCluster;
31class AliVParticle;
32class AliESDtrackCuts;
33class AliAODEvent;
34class AliAODCaloCells;
35class AliVCluster;
36class AliMCEvent;
37class AliStack;
38class TParticle;
39class AliClusterContainer;
40class AliParticleContainer;
41class AliEmcalParticle;
42 //AliRoot System
43class AliEMCALTrack;
44 //class AliMagF;
45class AliEMCALRecoUtils;
46 //class AliAnalysisFilter;
47class AliAODTrack;
48class AliAODCaloCluster;
49class AliESDCaloCluster;
50class AliVCaloCells;
7c97fe2d 51class AliAODMCParticle;
1c662fe8 52 //class AliEventPoolManager;
53
54#include "AliAnalysisTaskEmcal.h"
55
56class AliAnalysisTaskEMCALPhotonIsolation : public AliAnalysisTaskEmcal {
57public:
58 AliAnalysisTaskEMCALPhotonIsolation();
59 AliAnalysisTaskEMCALPhotonIsolation(const char *name, Bool_t histo=kFALSE);
60 virtual ~AliAnalysisTaskEMCALPhotonIsolation();
7c97fe2d 61
bab35745 62 void UserCreateOutputObjects();
7c97fe2d 63
1c662fe8 64 void SetIsoConeRadius(Float_t r) { fIsoConeRadius = r ;}
7c97fe2d 65 void SetEtIsoThreshold(Float_t r) {fEtIsoThreshold = r ;}
1c662fe8 66 void SetCTMdeltaEta (Float_t r) { fdetacut = r ;}
67 void SetCTMdeltaPhi (Float_t r) { fdphicut = r ;}
68 void SetIsoMethod (Int_t r ) { fIsoMethod = r ;}
7c97fe2d 69 void SetEtIsoMethod (Int_t r ) { fEtIsoMethod = r ;}
1c662fe8 70 void SetUEMethod (Int_t UE) { fUEMethod = UE;}
71 void SetOutputFormat (Int_t iOut) { fWho = iOut;}
72 void SetQA (Bool_t QA) { fQA = QA;}
73 void SetMC (Bool_t MC) { fIsMC = MC;}
74 void SetUSEofTPC (Bool_t TPC) { fTPC4Iso = TPC;}
75 void SetLCAnalysis (Bool_t LC) { fisLCAnalysis = LC;}
76
77protected:
7c97fe2d 78
79 void FillQAHistograms(AliVCluster *coi, TLorentzVector vecCOI); // Fill some QA histograms
bab35745 80 void EtIsoCellPhiBand(TLorentzVector c, Float_t &etIso, Float_t &phiBand); //EIsoCone via Cells UE via PhiBand EMCAL
81 void EtIsoCellEtaBand(TLorentzVector c, Float_t &etIso, Float_t &etaBand); //EIsoCone via Cells UE via EtaBand EMCAL
82 void EtIsoClusPhiBand(TLorentzVector c, Float_t &etIso, Float_t &etaBand, Int_t index); //EIsoCone via Clusters UE via EtaBand EMCAL
83 void EtIsoClusEtaBand(TLorentzVector c, Float_t &etIso, Float_t &etaBand, Int_t index); //EIsoCone via Clusters UE via EtaBand EMCAL
84 void PtIsoTrackPhiBand(TLorentzVector c, Float_t &ptIso, Float_t &phiBand); //PIsoCone via Track UE via PhiBand TPC
85 void PtIsoTrackEtaBand(TLorentzVector c, Float_t &ptIso, Float_t &etaBand); //PIsoCone via Track UE via EtaBand TPC
86 // void PtIsoTraClusPhiBand(TLorentzVector c, Float_t &ptIso, Float_t &phiBand); //(P+E)IsoCone via Track/Clus UE via PhiBand TPC+EMCAL
87 // void PtIsoTraClusEtaBand(TLorentzVector c, Float_t &ptIso, Float_t &etaBand); //(P+E)IsoCone via Track/Clus UE via EtaBand TPC+EMCAL
88 void PtIsoTrackOrthCones(TLorentzVector c, Float_t &ptIso, Float_t &cones); //PIsoCone via Tracks UE via Orthogonal Cones in Phi
89 void PtIsoTrackFullTPC(TLorentzVector c, Float_t &ptIso, Float_t &full); //PIsoCone via Tracks UE via FullTPC - IsoCone - B2BEtaBand
7c97fe2d 90// Bool_t ClustTrackMatching(AliVCluster *cluster);
91 Bool_t ClustTrackMatching(AliEmcalParticle *emccluster);
bab35745 92 Bool_t CheckBoundaries(TLorentzVector vecCOI);
93 // void FillNCOutput(AliVCluster *COI, TLorentzVector vecCOI, Int_t index);
7c97fe2d 94
1c662fe8 95 Float_t* GenerateFixedBinArray(Int_t n, Float_t min, Float_t max) const;
7c97fe2d 96 void ExecOnce();
bab35745 97 Bool_t Run();
7c97fe2d 98 void AnalyzeMC();
99 void LookforParticle(Int_t, Double_t, Double_t, Double_t,Double_t,Double_t, Int_t);
100
101
1c662fe8 102 using AliAnalysisTaskEmcal::FillGeneralHistograms;
103 Bool_t FillGeneralHistograms(AliVCluster *COI, TLorentzVector VecCOI, Int_t index);
104 //Bool_t FillGeneralHistograms(AliVCluster *COI, TLorentzVector VecCOI, Int_t index);
7c97fe2d 105
106 AliAODEvent *fAOD; //!
107 AliVEvent *fVevent; //! AliVEvent
1c662fe8 108 // TObjArray fParticleCollArray; // Neutral Clusters collection array
7c97fe2d 109 TClonesArray *fNCluster; // Neutral clusters
110 TClonesArray *fAODMCParticles; //!
111 TClonesArray *fTracksAna; //! hybrid track array in
112 AliStack *fStack;//!
113
1c662fe8 114 Int_t fWho; // MODE for the Output Object (TTree or THnSparse)
7c97fe2d 115
116
1c662fe8 117 //IMPLEMENT ALL THE HISTOGRAMS AND ALL THE OUTPUT OBJECTS WE WANT!!!
118 // TList *fOutputList; //! Output list
bab35745 119// TGeoHMatrix *fGeomMatrix[12];//! Geometry misalignment matrices for EMCal
7c97fe2d 120
121
1c662fe8 122 TH1 *fTrackMult; //!Track Multiplicity ---QA
123 TH1 *fTrackMultEMCAL; //!Track Multiplicity EMCAL ---QA
124 TH1 *fClustMult; //!Cluster Multiplicity EMCAL ---QA
125 TH1 *fPVZBefore; //!Z Vertex distribution before cuts. ---QA
126 TH2 *fEtaPhiCell; //!EMCAL Active Cells Distribution EtaPhi ---QA
127 TH2 *fEtaPhiClus; //!EMCAL Cluster Distribution EtaPhi ---QA
128 TH2 *fClusEvsClusT; //!Cluster Energy vs Cluster Time ---QA
7c97fe2d 129 TH1 *fVz; //! Veretex Z distribution
130 TH1 *fEvents; //! Number of Events
1c662fe8 131 TH1 *fPT; //!Pt distribution
7c97fe2d 132 TH1 *fE; //!E distribution
133 TH1 *fPtaftTime; //!E distribution for clusters after cluster time cut
134 TH1 *fPtaftTM; //!E distribution for neutral clusters
135 TH1 *fPtaftFC; //!E distribution for clusters after fiducial cut
136 TH1 *fPtaftM02C; //!E distribution for clusters after shower shape cut
137 TH1 *fClusTime; //!Time distribution for clusters
1c662fe8 138 TH2 *fM02; //!Squared_Lambda0 distribution
139 TH1 *fNLM; //!NLM distribution
7c97fe2d 140 TH1 *fDeltaETAClusTrack; //!dEta Cluster-Track!
141 TH1 *fDeltaPHIClusTrack; //!dPhi Cluster-Track!
142 TH1 *fDeltaETAClusTrackMatch; //!dEta Cluster-Track matched!
143 TH1 *fDeltaPHIClusTrackMatch; //!dPhi Cluster-Track matched!
1c662fe8 144 TH2 *fDeltaETAClusTrackVSpT; //!dEta Cluster-Track VS pT!
145 TH2 *fDeltaPHIClusTrackVSpT; //!dPhi Cluster-Track VS pT!
146 TH1 *fEtIsoCells; //!Isolation Energy with EMCAL Cells
7c97fe2d 147 TH2 *fEtIsoClust; //!Isolation Energy with EMCAL Clusters
148 TH2 *fPtIsoTrack; //!Isolation Pt with Tracks
1c662fe8 149 TH1 *fPtEtIsoTC; //!Isolation with Pt from Tracks and Et from NON-Matched Clusters
150 TH2 *fPhiBandUEClust; //!UE with Phi Band (Clusters)
151 TH2 *fEtaBandUEClust; //!UE with Eta Band (Clusters)
152 TH2 *fPhiBandUECells; //!UE with Phi Band (Cells)
153 TH2 *fEtaBandUECells; //!UE with Eta Band (Cells)
154 TH2 *fPhiBandUETracks; //!UE with Phi Band (Tracks)
155 TH2 *fEtaBandUETracks; //!UE with Eta Band (Tracks)
156 TH2 *fPerpConesUETracks; //!UE with Cones (Tracks ONLY)
157 TH2 *fTPCWithoutIsoConeB2BbandUE; //!UE with Full TPC except IsoCone and EtaBand in Back2Back
7c97fe2d 158 TH1 *fNTotClus10GeV; //!number of TOTAL clusters with Energy bigger than 10 GeV
1c662fe8 159 TH1 *fRecoPV; //! primary vertex reconstruction
160 TH1 *fEtIsolatedCells; //! Isolated photons, isolation with cells
161 TH1 *fEtIsolatedClust; //! Isolated photons, isolation with clusters
7c97fe2d 162 TH1 *fPtIsolatedNClust; //! Isolated neutral clusters
163 TH1 *fPtIsolatedNTracks; //! Isolated neutral clusters with tracks
164 TH1 *fEtIsolatedTracks; //! Isolated photons, isolation with tracks
165 TH2 *fPtvsM02iso; //! Isolated clusters, pt distribution vs M02
166 TH2 *fPtvsM02noiso; //! Non isolated clusters, pt distribution vs M02
167 TH2 *fTestIndex; //! Index and local index test
168 TH2 *fTestIndexE;
169 TH2 *fTestLocalIndexE;
170 TH2 *fTestEnergyCone; //! ernergy cone clusters vs tracks
171 TH2 *fTestEtaPhiCone;
172
1c662fe8 173 THnSparse *fOutputTHnS; //! 1st Method 4 Output
7c97fe2d 174 THnSparse *fOutMCTruth; //! 1st Method 4 MC truth Output //Isolation on pTMax
175 THnSparse *fOutClustMC; //! 1st Method 4 MC+Truth Output via Clusterlabel
176
177 TTree *fOutputQATree; //! 2nd method 4 QA Output
1c662fe8 178 TTree *fOutputTree; //! 2nd Method 4 Output
7c97fe2d 179
180 TH3 *fphietaPhotons; //!
181 TH3 *fphietaOthers; //!
182 TH3 *fphietaOthersBis;//!
183
1c662fe8 184 Float_t fIsoConeRadius; // Radius for the Isolation Cont
185 Int_t fEtIsoMethod; // Isolation definition 0=SumEt<EtThr, 1=SumEt<%Ephoton, 2=Etmax<EtThr
186 Double_t fEtIsoThreshold; // Et isolation threshold, supposed to be % if method one is choosed
187 Double_t fdetacut; // cut on deta between track and cluster
188 Double_t fdphicut; // cut on dphi between track and cluster
189 Double_t fM02mincut; // lambda0^2 minimum cut
190 Double_t fM02maxcut; // lambda0^2 maximum cut
191 Bool_t fQA; // Flag for few further QA plots wrt the ones already done in the EMCALTask
192 Bool_t fIsMC; // Flag for MC Truth Analysis
193 Bool_t fTPC4Iso; //0=EMCAL_ONLY; 1=EMCAL+TPC
194 Int_t fIsoMethod; //0=Cells, 1=Clusters (EMCAL_ONLY), 2=Tracks (EMCAL w/o TPC)
195 Int_t fUEMethod; //0=PhiBand, 1=EtaBand, (EMCAL or TPC) 2= Ort Cones, 3=FullTPC (only with TPC)
1c662fe8 196 Int_t fNDimensions; //!number of Dimensions for the THnSPARSE
7c97fe2d 197 Int_t fMCDimensions;
198 Int_t fMCQAdim; //!
bab35745 199 Bool_t fisLCAnalysis; // Flag to pass from Leading Clusters Analysis to a NC One
7c97fe2d 200 Int_t fTest1;
201 Int_t fTest2;
1c662fe8 202
203// Initialization for TTree variables
7c97fe2d 204 Double_t fEClustersT; // E for all clusters
205 Double_t fPtClustersT; // Pt for all clusters
206 Double_t fEtClustersT; // Et for all clusters
207 Double_t fEtaClustersT; // Eta for all clusters
208 Double_t fPhiClustersT; // Phi for all clusters
209 Double_t fM02ClustersT; // lamnda0^2 for all clusters
210
bab35745 211 Int_t fevents; // N events
7c97fe2d 212 Int_t fNClustersT; // Clusters multiplicity
213 Double_t flambda0T; // M02 for considered clusters (leading one or all depending on flag)
214 Double_t fM02isoT; // M02 for isolated clusters
215 Double_t fM02noisoT; // M02 for non isolated clusters
216 Double_t fPtnoisoT; // Pt for non isolated clusters
217 Double_t fEtT; // Et for considered clusters (leading one or all depending on flag)
218 Double_t fPtT; // Pt for considered clusters (leading one or all depending on flag)
219 Double_t fPtisoT; // Pt for all isolated neutral clusters
220 Double_t fEtisolatedT; // Et for isolated clusters
221 Double_t fPtisolatedT; // Pt for isolated clusters
222 Double_t fetaT; // Eta for considered clusters
223 Double_t fphiT; // Phi for considered clusters
224 Double_t fsumEtisoconeT; // sum Et in cone
bab35745 225 Double_t fsumEtUE; // sum UE
7c97fe2d 226
227
bab35745 228 // AliParticleContainer *fTracksCont; //!Tracks
1c662fe8 229 // AliParticleContainer *fclusters; //!Container for Particle container 4 clusters
230
231private:
232 AliAnalysisTaskEMCALPhotonIsolation(const AliAnalysisTaskEMCALPhotonIsolation&); // not implemented
233 AliAnalysisTaskEMCALPhotonIsolation &operator=(const AliAnalysisTaskEMCALPhotonIsolation&); // not implemented
7c97fe2d 234
235
1c662fe8 236 ClassDef(AliAnalysisTaskEMCALPhotonIsolation, 1) //EMCAL Neutrals base analysis task
237};
238#endif
7c97fe2d 239