]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/EMCALTasks/AliAnalysisTaskEMCALPhotonIsolation.h
- changes to new Conv Calo Task for efficient running on the grid
[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;
51 //class AliEventPoolManager;
52
53#include "AliAnalysisTaskEmcal.h"
54
55class AliAnalysisTaskEMCALPhotonIsolation : public AliAnalysisTaskEmcal {
56public:
57 AliAnalysisTaskEMCALPhotonIsolation();
58 AliAnalysisTaskEMCALPhotonIsolation(const char *name, Bool_t histo=kFALSE);
59 virtual ~AliAnalysisTaskEMCALPhotonIsolation();
60
61 void UserCreateOutputObjects();
62
63 void SetIsoConeRadius(Float_t r) { fIsoConeRadius = r ;}
64 void SetCTMdeltaEta (Float_t r) { fdetacut = r ;}
65 void SetCTMdeltaPhi (Float_t r) { fdphicut = r ;}
66 void SetIsoMethod (Int_t r ) { fIsoMethod = r ;}
67 void SetUEMethod (Int_t UE) { fUEMethod = UE;}
68 void SetOutputFormat (Int_t iOut) { fWho = iOut;}
69 void SetQA (Bool_t QA) { fQA = QA;}
70 void SetMC (Bool_t MC) { fIsMC = MC;}
71 void SetUSEofTPC (Bool_t TPC) { fTPC4Iso = TPC;}
72 void SetLCAnalysis (Bool_t LC) { fisLCAnalysis = LC;}
73
74protected:
75
76 void EtIsoCellPhiBand(TLorentzVector c, Float_t &EtIso, Float_t &PhiBand); //EIsoCone via Cells UE via PhiBand EMCAL
77 void EtIsoCellEtaBand(TLorentzVector c, Float_t &EtIso, Float_t &EtaBand); //EIsoCone via Cells UE via EtaBand EMCAL
78 void EtIsoClusPhiBand(TLorentzVector c, Float_t &EtIso, Float_t &EtaBand, Int_t index); //EIsoCone via Clusters UE via EtaBand EMCAL
79 void EtIsoClusEtaBand(TLorentzVector c, Float_t &EtIso, Float_t &EtaBand, Int_t index); //EIsoCone via Clusters UE via EtaBand EMCAL
80 void PtIsoTrackPhiBand(TLorentzVector c, Float_t &PtIso, Float_t &PhiBand); //PIsoCone via Track UE via PhiBand TPC
81 void PtIsoTrackEtaBand(TLorentzVector c, Float_t &PtIso, Float_t &EtaBand); //PIsoCone via Track UE via EtaBand TPC
82 // void PtIsoTraClusPhiBand(TLorentzVector c, Float_t &PtIso, Float_t &PhiBand); //(P+E)IsoCone via Track/Clus UE via PhiBand TPC+EMCAL
83 // void PtIsoTraClusEtaBand(TLorentzVector c, Float_t &PtIso, Float_t &EtaBand); //(P+E)IsoCone via Track/Clus UE via EtaBand TPC+EMCAL
84 void PtIsoTrackOrthCones(TLorentzVector c, Float_t &PtIso, Float_t &Cones); //PIsoCone via Tracks UE via Orthogonal Cones in Phi
85 void PtIsoTrackFullTPC(TLorentzVector c, Float_t &PtIso, Float_t &Full); //PIsoCone via Tracks UE via FullTPC - IsoCone - B2BEtaBand
86 Bool_t ClustTrackMatching(AliVCluster *cluster);
87 Bool_t CheckBoundaries(TLorentzVector VecCOI);
88 // void FillNCOutput(AliVCluster *COI, TLorentzVector VecCOI, Int_t index);
89
90 Float_t* GenerateFixedBinArray(Int_t n, Float_t min, Float_t max) const;
91 void ExecOnce();
92 Bool_t Run();
93
94 using AliAnalysisTaskEmcal::FillGeneralHistograms;
95 Bool_t FillGeneralHistograms(AliVCluster *COI, TLorentzVector VecCOI, Int_t index);
96 //Bool_t FillGeneralHistograms(AliVCluster *COI, TLorentzVector VecCOI, Int_t index);
97
98
99 // TObjArray fParticleCollArray; // Neutral Clusters collection array
100 TClonesArray *fNCluster; // Neutral clusters
101
102 Int_t fWho; // MODE for the Output Object (TTree or THnSparse)
103
104
105
106
107
108 //IMPLEMENT ALL THE HISTOGRAMS AND ALL THE OUTPUT OBJECTS WE WANT!!!
109 // TList *fOutputList; //! Output list
110 TGeoHMatrix *fGeomMatrix[12];//! Geometry misalignment matrices for EMCal
111
112
113 TH1 *fTrackMult; //!Track Multiplicity ---QA
114 TH1 *fTrackMultEMCAL; //!Track Multiplicity EMCAL ---QA
115 TH1 *fClustMult; //!Cluster Multiplicity EMCAL ---QA
116 TH1 *fPVZBefore; //!Z Vertex distribution before cuts. ---QA
117 TH2 *fEtaPhiCell; //!EMCAL Active Cells Distribution EtaPhi ---QA
118 TH2 *fEtaPhiClus; //!EMCAL Cluster Distribution EtaPhi ---QA
119 TH2 *fClusEvsClusT; //!Cluster Energy vs Cluster Time ---QA
120 TH1 *fGoodEventsOnPVZ; //!Number of selected events After the Cut on Primary Vertex
121 TH1 *fPT; //!Pt distribution
122 TH2 *fM02; //!Squared_Lambda0 distribution
123 TH1 *fNLM; //!NLM distribution
124 TH2 *fDeltaETAClusTrackVSpT; //!dEta Cluster-Track VS pT!
125 TH2 *fDeltaPHIClusTrackVSpT; //!dPhi Cluster-Track VS pT!
126 TH1 *fEtIsoCells; //!Isolation Energy with EMCAL Cells
127 TH1 *fEtIsoClust; //!Isolation Energy with EMCAL Clusters
128 TH1 *fPtIsoTrack; //!Isolation Pt with Tracks
129 TH1 *fPtEtIsoTC; //!Isolation with Pt from Tracks and Et from NON-Matched Clusters
130 TH2 *fPhiBandUEClust; //!UE with Phi Band (Clusters)
131 TH2 *fEtaBandUEClust; //!UE with Eta Band (Clusters)
132 TH2 *fPhiBandUECells; //!UE with Phi Band (Cells)
133 TH2 *fEtaBandUECells; //!UE with Eta Band (Cells)
134 TH2 *fPhiBandUETracks; //!UE with Phi Band (Tracks)
135 TH2 *fEtaBandUETracks; //!UE with Eta Band (Tracks)
136 TH2 *fPerpConesUETracks; //!UE with Cones (Tracks ONLY)
137 TH2 *fTPCWithoutIsoConeB2BbandUE; //!UE with Full TPC except IsoCone and EtaBand in Back2Back
138 TH1 *fNTotClus10GeV; //!number of TOTAL clusters with Energy bigger than 10 GeV
139 TH1 *fRecoPV; //! primary vertex reconstruction
140 TH1 *fEtIsolatedCells; //! Isolated photons, isolation with cells
141 TH1 *fEtIsolatedClust; //! Isolated photons, isolation with clusters
142 TH1 *fEtIsolatedTracks; //! Isolated photons, isolation with tracks
143 TH1 *fTest; //!
144
145 THnSparse *fOutputTHnS; //! 1st Method 4 Output
146 THnSparse *fOutPTMAX; //! 1st Method 4 Isolation on pTMax
147
148 TTree *fOutputTree; //! 2nd Method 4 Output
149
150 Float_t fIsoConeRadius; // Radius for the Isolation Cont
151 Int_t fEtIsoMethod; // Isolation definition 0=SumEt<EtThr, 1=SumEt<%Ephoton, 2=Etmax<EtThr
152 Double_t fEtIsoThreshold; // Et isolation threshold, supposed to be % if method one is choosed
153 Double_t fdetacut; // cut on deta between track and cluster
154 Double_t fdphicut; // cut on dphi between track and cluster
155 Double_t fM02mincut; // lambda0^2 minimum cut
156 Double_t fM02maxcut; // lambda0^2 maximum cut
157 Bool_t fQA; // Flag for few further QA plots wrt the ones already done in the EMCALTask
158 Bool_t fIsMC; // Flag for MC Truth Analysis
159 Bool_t fTPC4Iso; //0=EMCAL_ONLY; 1=EMCAL+TPC
160 Int_t fIsoMethod; //0=Cells, 1=Clusters (EMCAL_ONLY), 2=Tracks (EMCAL w/o TPC)
161 Int_t fUEMethod; //0=PhiBand, 1=EtaBand, (EMCAL or TPC) 2= Ort Cones, 3=FullTPC (only with TPC)
162 Double_t *fVertex; //!event vertex
163 Int_t fNDimensions; //!number of Dimensions for the THnSPARSE
164 Bool_t fisLCAnalysis; // Flag to pass from Leading Clusters Analysis to a NC One
165
166// Initialization for TTree variables
167 Int_t fevents;
168 Double_t flambda0T;
169 Double_t fEtT;
170 Double_t fPtT;
171 Double_t fEtisoT;
172 Double_t fPtisoT;
173 Double_t fetaT;
174 Double_t fphiT;
175 Double_t fsumEtisoconeT;
176 Double_t fsumEtUE;
177 // AliParticleContainer *fTracksCont; //!Tracks
178 // AliParticleContainer *fclusters; //!Container for Particle container 4 clusters
179
180private:
181 AliAnalysisTaskEMCALPhotonIsolation(const AliAnalysisTaskEMCALPhotonIsolation&); // not implemented
182 AliAnalysisTaskEMCALPhotonIsolation &operator=(const AliAnalysisTaskEMCALPhotonIsolation&); // not implemented
183
184
185 ClassDef(AliAnalysisTaskEMCALPhotonIsolation, 1) //EMCAL Neutrals base analysis task
186};
187#endif