]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskFullppJet.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / UserTasks / AliAnalysisTaskFullppJet.h
CommitLineData
b6e50056 1#ifndef ALIANALYSISTASKFULLPPJET_H
2#define ALIANALYSISTASKFULLPPJET_H
3
4// **************************************
5// Task used for the analysis of full pp jets
6// In additional, functions needed for systematic
7// uncertainties are also included
8// *******************************************
9
10#include <vector>
11
12class TFormula;
13class TH2F;
14class TH1F;
15class TF1;
16class THnSparse;
17class TRandom3;
18class TObjArray;
19class TClonesArray;
20class TObject;
21class TString;
22class TProfile2D;
23class AliAODEvent;
24class AliESDEvent;
25class AliMCEvent;
26class AliStack;
27class AliESDtrack;
b6e50056 28class AliEMCALGeometry;
29class AliEMCALRecoUtils;
30class AliESDCaloCluster;
31class AliFJWrapper;
32class AliAODJet;
7c915297 33class TParticle;
b6e50056 34
7c915297 35#include "AliESDtrackCuts.h"
b6e50056 36#include "AliAnalysisTaskSE.h"
dd3f006e 37#ifndef __CINT__
b6e50056 38#include "fastjet/JetDefinition.hh"
39#include "fastjet/PseudoJet.hh"
dd3f006e
CKB
40#else
41namespace fastjet {
42 class PseudoJet;
43}
44#endif
b6e50056 45class AliAnalysisTaskFullppJet : public AliAnalysisTaskSE {
46 public:
47 AliAnalysisTaskFullppJet();
48 AliAnalysisTaskFullppJet(const char *name);
49 virtual ~AliAnalysisTaskFullppJet();
50
51 Bool_t Notify();
52 void UserCreateOutputObjects();
53 void UserExec(Option_t *option);
54 void Terminate(Option_t *);
55 void PrintConfig();
56
57 enum {kTPCOnlyVtx = 1<<3,
58 kTrigger = 1<<4,
59 kHighZ = 1<<5,
7c915297 60 kSuspicious = 1<<6,
61 kGluon = 1<<9,
62 kQuark = 1<<10,
63 kLeadCh = 1<<11 };
b6e50056 64
7c915297 65 enum { kHybrid=0,
66 kTPCOnly=1,
67 kGlobal=2};
68
69 void SetAnaType(Int_t ana) { fAnaType=ana; }
b6e50056 70 void SetMCAna(Bool_t mc) { fIsMC=mc; }
7c915297 71 void SetPhySelForMC(Bool_t phy) { fPhySelForMC=phy; }
b6e50056 72 void SetChargedMC(Bool_t mc) { fChargedMC=mc; }
7c915297 73 void SetRejectSPDPileup(Bool_t re) { fRejectPileup=re; }
74 void SetRejectExoticTrigger(Bool_t re) { fRejectExoticTrigger=re; }
75 void SetCheckTriggerMask(Bool_t check) { fCheckTriggerMask=check; }
b6e50056 76 void SetRunPeriod(char *p) { fPeriod=p; }
77 void SetOfflineTrigger(Bool_t t) { fOfflineTrigger=t; }
78 void SetXsec(Float_t Xsec) { fXsecScale=Xsec; }
79 void SetConstrainChargedInEMCal(Bool_t con) { fConstrainChInEMCal=con; }
80 void SetRejectNK(Bool_t reject) { fRejectNK=reject; }
81 void SetRejectWD(Bool_t reject) { fRejectWD=reject; }
82 void SetVerbosity(Int_t v) { fVerbosity = v; }
83 void SetTrackCutsType(Int_t type) { fTrackCutsType = type; }
84 void SetEsdTrackCuts(AliESDtrackCuts *cuts) { fEsdTrackCuts=cuts; }
85 void SetHybridTrackCuts1(AliESDtrackCuts *cuts) { fHybridTrackCuts1=cuts; }
86 void SetHybridTrackCuts2(AliESDtrackCuts *cuts) { fHybridTrackCuts2=cuts; }
87 void SetKinCutType(Int_t type) { fKinCutType = type; }
88 void SetZvtx(Double_t zvtx) { fZVtxMax = zvtx; }
89 void SetEtaMax(Double_t eta) { fTrkEtaMax = eta; }
90 void SetdEdxRange(Double_t min, Double_t max) { fdEdxMin=min; fdEdxMax=max; }
91 void SetEoverPRange(Double_t min, Double_t max) { fEoverPMin=min; fEoverPMax=max; }
92 void SetMatchType(Int_t type) { fMatchType=type; }
93 void SetRejectExoticCluster(Bool_t reject) { fRejectExoticCluster=reject; }
94 void SetRemoveProblematicSM4(Bool_t remove) { fRemoveBadChannel=remove; }
95 void SetUseGoodSM(Bool_t good) { fUseGoodSM=good; }
96 void SetStudySubEInHC(Bool_t study) { fStudySubEInHC=study; }
97 void SetStudyMcOverSubE(Bool_t study) { fStudyMcOverSubE=study; }
98 void SetRejectElectron(Bool_t reject) { fElectronRejection=reject; }
99 void SetCorrectHadron(Bool_t correct) { fHadronicCorrection=correct; }
100 void SetHCFraction(Float_t fraction) { fFractionHC=fraction; }
101 void SetHCLowerPtCutMIP(Double_t pt) { fHCLowerPtCutMIP=pt; }
102 void SetNonStdBranch(char* name) { fNonStdBranch=name; }
103 void SetNonStdFile(char* name) { fNonStdBranch=name; }
104 void SetAlgorithm(char *algo) { fAlgorithm=algo; }
105 void SetRadius(char *r) { fRadius=r; }
106 void SetRecombinationScheme(Int_t scheme) { fRecombinationScheme=scheme; }
107 void SetSpotGoodJet(Bool_t spot) { fSpotGoodJet=spot; }
108 void SetFindChargedOnlyJet(Bool_t ch) { fFindChargedOnlyJet=ch; }
109 void SetFindNeutralOnlyJet(Bool_t ne) { fFindNeutralOnlyJet=ne; }
110 void SetCheckTrkEffCorr(Bool_t check) { fCheckTrkEffCorr=check; }
111 void SetTrkEffCorrCutZ(Double_t zcut) { fTrkEffCorrCutZ=zcut; }
112 void SetSmearMC(Double_t smear) { fSmearMC=smear; }
113 void SetRunUE(Bool_t run) { fRunUE=run; }
7c915297 114 void SetCheckTPCOnlyVtx(Bool_t check) { fCheckTPCOnlyVtx=check; }
115 void SetRunSecondaries(Bool_t run) { fRunSecondaries=run; }
b6e50056 116
117 //--------------------------------
118 // Kinematic cut
119 //--------------------------------
120 void SetPtRange(Double_t minMB, Double_t maxMB, Double_t minHT, Double_t maxHT)
121 { fTrkPtMin[0]=minMB; fTrkPtMax[0]=maxMB; fTrkPtMin[1]=minHT; fTrkPtMax[1]=maxHT; }
122
123 void SetEtRange(Double_t minMB, Double_t maxMB, Double_t minHT, Double_t maxHT)
124 { fClsEtMin[0]=minMB; fClsEtMax[0]=maxMB; fClsEtMin[1]=minHT; fClsEtMax[1]=maxHT; }
125
126 //--------------------------------
127 // Jet quality cut
128 //--------------------------------
129 void SetJetNEFCut(Double_t min, Double_t max)
130 { fJetNEFMin=min; fJetNEFMax=max; }
131
132 //---------------------------------
133 // Systematic study
134 //---------------------------------
135 void SetSaveQAHistos(Bool_t save) { fSaveQAHistos=save; }
136 void SetSysJetTrigEff(Bool_t sys) { fSysJetTrigEff=sys; }
137 void SetVaryJetTrigEff(Double_t vary) { fVaryJetTrigEff=vary; }
138 void SetSysTrkPtRes(Bool_t sys) { fSysTrkPtRes=sys; }
139 void SetVaryTrkPtRes(Double_t vary) { fVaryTrkPtRes=vary; }
140 void SetSysTrkEff(Bool_t sys) { fSysTrkEff=sys; }
141 void SetVaryTrkEff(Double_t vary) { fVaryTrkEff=vary; }
142 void SetSysTrkClsMth(Bool_t sys) { fSysTrkClsMth=sys; }
143 void SetSysTrkClsCut(Double_t deta, Double_t dphi){ fCutdEta=deta; fCutdPhi=dphi; }
144 void SetSysNonLinearity(Bool_t sys) { fSysNonLinearity=sys; }
145 void SetSysClusterEScale(Bool_t sys) { fSysClusterEScale=sys; }
146 void SetVaryClusterEScale(Double_t vary) { fVaryClusterEScale=vary; }
147 void SetSysClusterERes(Bool_t sys) { fSysClusterERes=sys; }
148 void SetVaryClusterERes(Double_t vary) { fVaryClusterERes=vary; }
7c915297 149 void SetSysClusterizer(Bool_t sys) { fSysClusterizer=sys; }
b6e50056 150
151
152protected:
153 AliESDtrack *GetAcceptTrack(AliESDtrack *esdtrack);
154 Int_t RunOfflineTrigger();
155 Double_t GetOfflineTriggerProbability(AliESDCaloCluster *cluster);
156 Int_t GetClusterSuperModule(AliESDCaloCluster *cluster);
157 void ProcessMC(const Int_t r=0);
158 void GetMCInfo();
159 Bool_t IsGoodMcPartilce(const AliVParticle* vParticle, const Int_t ipart);
5543d2a2 160 Int_t GetParentParton(const Int_t ipart);
7c915297 161 Int_t FindSpatialMatchedJet(fastjet::PseudoJet jet, AliFJWrapper *jetFinder, Double_t &dEta, Double_t &dPhi, Double_t maxR);
b6e50056 162 Int_t FindEnergyMatchedJet(AliFJWrapper *jetFinder1, const Int_t index1, AliFJWrapper *jetFinder2, const Double_t fraction=0.5);
7c915297 163 Bool_t HasPrimaryVertex() const;
164 Bool_t IsPrimaryVertexOk() const;
b6e50056 165 Bool_t IsTPCOnlyVtx() const;
166 Bool_t IsLEDEvent() const;
167 void CheckExoticEvent();
168 void CheckEventTriggerBit();
169 void BookHistos();
170 void GetESDTrax();
171 Bool_t IsElectron(AliESDtrack *track, Double_t clsE) const;
172 void GetESDEMCalClusters();
173 Bool_t IsGoodCluster(AliESDCaloCluster *cluster);
174 Double_t SubtractClusterEnergy(AliESDCaloCluster *cluster, Double_t &eRes, Double_t &MIPE, Double_t &MCsubE);
175 Double_t GetClusterEnergyResolution(AliESDCaloCluster *cluster);
176 void FindDetJets(const Int_t s=0, const Int_t a=0, const Int_t r=0);
177 void FillAODJets(TClonesArray *fJetArray, AliFJWrapper *jetFinder, const Bool_t isTruth = 0);
178 void AnalyzeJets(AliFJWrapper *jetFinder, const Int_t type, const Int_t r);
7c915297 179 void RunAnalyzeUE(AliFJWrapper *jetFinder, const Int_t type, const Bool_t isMCTruth);
180 void AnalyzeSecondaryContribution(AliFJWrapper *jetFinder, const Int_t r, const Int_t etaCut);
181 void AnalyzeSecondaryContributionViaMatching(AliFJWrapper *jetFinder, const Int_t r, const Int_t type, const Int_t etaCut);
182 void GetSecondaryPtFraction(TParticle *particle, Double_t &chPt, Double_t &reGenPt, Double_t &reRecPt);
183 void CheckTPCOnlyVtx(const UInt_t trigger);
b6e50056 184 Bool_t IsGoodJet(fastjet::PseudoJet jet, Double_t radius);
185 Bool_t IsGoodJet(AliAODJet *jet, Double_t radius);
186 Double_t GetLeadingZ(const Int_t jetIndex, AliFJWrapper *jetFinder);
187 Double_t GetZ(const Double_t trkPx, const Double_t trkPy, const Double_t trkPz, const Double_t jetPx, const Double_t jetPy, const Double_t jetPz) const;
188 Double_t GetMeasuredJetPtResolution(const Int_t jetIndex, AliFJWrapper *jetFinder);
189 Double_t GetTrkEff(Double_t inPt);
190 Double_t GetJetMissPtDueToTrackingEfficiency(const Int_t jetIndex, AliFJWrapper *jetFinder, const Int_t radiusIndex);
191 Double_t GetExoticEnergyFraction(AliESDCaloCluster *cluster);
192 Double_t GetSmearedTrackPt(AliESDtrack *track);
b6e50056 193
194 enum { kNBins = 20 };
5543d2a2 195 enum { kNRadii = 3 };
b6e50056 196
197 private:
198 Int_t fVerbosity; // Control output
199 Int_t fEDSFileCounter; // Keep track of the ESD file inside a chain
200 Int_t fNTracksPerChunk; // Number of tracks per ESD file; used for debugging
7c915297 201 Bool_t fRejectPileup; // Flag to reject SPD pileup events
202 Bool_t fRejectExoticTrigger; // Flag to reject events triggered by exotic clusters
203 Int_t fAnaType; // 0-local, 1-grid
b6e50056 204 TString fPeriod; // Data period
205 AliESDEvent *fESD; //! ESD object
206 AliAODEvent *fAOD; //! AOD object
207 AliMCEvent *fMC; //! MC object
208 AliStack *fStack; //! MC stack
209 TObjArray *fTrackArray; //! Array of input tracks
210 TObjArray *fClusterArray; //! Array of input clusters
211 TArrayI *fMcPartArray; //! Array of MC particles
7c915297 212 Bool_t fIsMC; // Flag of MC data
213 Bool_t fPhySelForMC; // Flag to run physics selection in case of MC data
214 Bool_t fChargedMC; // Flag to find only charged MC jets
215 Float_t fXsecScale; // Corss section for each pT hard bin
216 Double_t fCentrality; // V0M for current event
b6e50056 217 Double_t fZVtxMax; // Max vertex z cut
218 Int_t fTriggerType; // 0-MB, 1-EMC
7c915297 219 Bool_t fCheckTriggerMask; // Flag to check the trigger mask for triggered events
b6e50056 220 Bool_t fIsTPCOnlyVtx; // Flag of events with ONLY TPC vertex
221 Bool_t fIsExoticEvent3GeV; // Flag of events with exotic cluster above 3 GeV
222 Bool_t fIsExoticEvent5GeV; // Flag of events with exotic cluster above 5 GeV
223 Bool_t fIsEventTriggerBit; // Flag of triggered events with valid trigger bit
224 Bool_t fOfflineTrigger; // Run offline trigger
225 TH2F *fTriggerMask; //! Offline trigger mask
226 TH1D *fTriggerCurve[10]; //! Trigger turn-on curves of EMCal clusters
227 TF1 *fTriggerEfficiency[10]; //! Fit of trigger turn-on curves for EMCal clusters above 4-5 GeV
228 AliEMCALGeometry *fGeom; //! EMCal goemetry utility
229 AliEMCALRecoUtils *fRecoUtil; //! Reco utility
7c915297 230 AliESDtrackCuts *fEsdTrackCuts; // Track cuts for good tracks
231 AliESDtrackCuts *fHybridTrackCuts1; // Track cuts for tracks without SPD hit
232 AliESDtrackCuts *fHybridTrackCuts2; // Track cuts for tracks witout SPD hit or ITS refit
b6e50056 233 Int_t fTrackCutsType; // 0-Global track, 1-TPCOnly track
234 Int_t fKinCutType; // 0-cut on track before jet finding, 1-cut on jet with high-pt tracks
235 Double_t fTrkEtaMax; // Max |eta| cut
236 Double_t fTrkPtMin[2]; // Min pt cut
237 Double_t fTrkPtMax[2]; // Max pt cut
238 Double_t fdEdxMin; // Min dE/dx cut
239 Double_t fdEdxMax; // Max dE/dx cut
240 Double_t fEoverPMin; // Min E/P cut
241 Double_t fEoverPMax; // Max E/P cut
242 Double_t fClsEtMin[2]; // Min et cut
243 Double_t fClsEtMax[2]; // Max et cut
244 Int_t fMatchType; // 0-extrapolation, 1-extrapolation + MC label
245 Bool_t fRejectExoticCluster; // Flag to reject exotic cluster
246 Bool_t fRemoveBadChannel; // Flag to remove problematic region in SM4
247 Bool_t fUseGoodSM; // Flag to not use trigger bit in SM2,3,4,5
248 Bool_t fStudySubEInHC; // If true, the hadronic correction will be ingored. For physics, it should be set to kFALSE
249 Bool_t fStudyMcOverSubE; // Study the over-subtraction of hadronic correction in simualtion.
250 Bool_t fElectronRejection; // Switches on electron correction to avoid double counting of electrons
251 Bool_t fHadronicCorrection; // switches on hadronic correction to avoid double counting of hadrons
252 Float_t fFractionHC; // fraction of hadronic correction
253 Double_t fHCLowerPtCutMIP; // Lower track pt cut for MIP correction
254 TF1 *fClusterEResolution; //! Parameterization of cluster energy resolution from test beam results
b6e50056 255 Double_t fJetNEFMin; // Min jet NEF cut
256 Double_t fJetNEFMax; // Max jet NEF cut
257 Bool_t fSpotGoodJet; // Good jet catching
258 Bool_t fFindChargedOnlyJet; // Find jets with TPC tracks
259 Bool_t fFindNeutralOnlyJet; // Find jets with EMCal clusters
260 Bool_t fCheckTrkEffCorr; // Check the procedure of tracking efficiency correction
261 Double_t fTrkEffCorrCutZ; // Cut on the tracks that are added back Z < 0.3
262 TF1 *fTrkEffFunc[3]; //! Fit function of tracking efficiency
5543d2a2 263 TH1F *fhCorrTrkEffPtBin[2][kNRadii]; //! Number of tracks per jet pt bin, used to correct the tracking efficiency explicitly
264 TH1F *fhCorrTrkEffSample[2][kNRadii][kNBins]; //! Tracking efficiency estimated from simulation
b6e50056 265 TRandom3 *fRandomGen; //! Random number generator
266 Bool_t fRunUE; // Run analysis of underlying event
7c915297 267 Bool_t fCheckTPCOnlyVtx; // Check events with TPC only vertices
268 Bool_t fRunSecondaries; // Run analysise for secondary particles
269 TH2F *fhSecondaryResponse[3]; //! Response matrix for secondary particles
b6e50056 270
271 Bool_t fSysJetTrigEff; // Flag of systematic uncertainty of jet trigger efficiency
272 Double_t fVaryJetTrigEff; // Variation of cluster E-scale for systematic uncertainty of jet trigger efficiency
273 Bool_t fSysTrkPtRes; // Flag of systematic uncertainty of tracking momentum resolution
274 Double_t fVaryTrkPtRes; // Variation of tracking momentum resolution
275 Bool_t fSysTrkEff; // Flag of systematic uncertainty of tracking efficiency
276 Double_t fVaryTrkEff; // Variation of tracking efficiency
277 Bool_t fSysTrkClsMth; // Flag of systematic uncertainty of track-cluster matching
278 Double_t fCutdEta; // Variation of dEta cut
279 Double_t fCutdPhi; // Variation of dPhi cut
280 Bool_t fSysNonLinearity; // Flag of systematic uncertainty of EMCal non-linearity
7c915297 281 TF1 *fNonLinear; //! Non-linearity correction functions for data
b6e50056 282 Bool_t fSysClusterEScale; // Flag of systematic uncertainty of EMCal energy scale
283 Double_t fVaryClusterEScale; // Variation of EMCal energy scale
284 Bool_t fSysClusterERes; // Flag of systematic uncertainty of EMCal energy resolution
285 Double_t fVaryClusterERes; // Variation of EMCal energy resolution
7c915297 286 Bool_t fSysClusterizer; // Flag of systematic uncertainty on clusterizer
b6e50056 287
7c915297 288 TString fNonStdBranch; // Non-std branch name for AOD jets
289 TString fNonStdFile; // Name of optional file that the non-std branch is written to
290 TString fAlgorithm; // name of algorithm
291 TString fRadius; // Jet cone radius
b6e50056 292 Int_t fRecombinationScheme; // Recombination scheme of jet finding
5543d2a2 293 AliFJWrapper *fDetJetFinder[3][2][kNRadii]; //! Jet finder
294 TClonesArray *fJetTCA[3][2][kNRadii]; //! TCA of jets: in - akt - r
b6e50056 295 Bool_t fConstrainChInEMCal; // Constain charged particle to be in EMCal acceptance
296 Bool_t fRejectNK; // Reject neutron and K_L
297 Bool_t fRejectWD; // Reject primaries, mainly k^0_S, that decay weakly
298 Bool_t fSmearMC; // Flag of smearing tracking resolution in MC to match data. Obselete.
299 TF1 *fTrkPtResData; //! Parameterazation of momentum resolution estimated from data
5543d2a2 300 AliFJWrapper *fTrueJetFinder[kNRadii]; //! Jet finder for particle jets
301 TClonesArray *fMcTruthAntikt[kNRadii]; //! TCA of MC truth anti-kt jets
b6e50056 302
303 TList *fOutputList; //! Output list
304 Bool_t fSaveQAHistos; // Flag of saving QA histograms
7c915297 305 TH1F *fhJetEventCount; //! Event counts to keep track of rejection criteria
b6e50056 306 TH1F *fhJetEventStat; //! Event counts used for jet analysis
7c915297 307 TH1F *fhEventStatTPCVtx; //! Event counts for TPC only vertices
b6e50056 308 TH1F *fhChunkQA; //! Check if the chunk is corrupted
309 TH1F *fVertexGenZ[2]; //! Generated event vertex z
310 TH1F *fEventZ[2]; //! reconstructed event vertex z
311 TH1F *fhNTrials[2]; //! # of trials
312 TH1F *fhNMatchedTrack[2]; //! # of matched tracks per cluster
313 TH2F *fhSubEVsTrkPt[2][4]; //! Subtracted energy due to hadronic correction
5543d2a2 314 TH2F *fhNeutralPtInJet[3][kNRadii]; //! pt of neutral constituents in jet
315 TH2F *fhTrigNeuPtInJet[3][kNRadii]; //! pt of neutral constituents in jet
316 TH2F *fhChargedPtInJet[3][kNRadii]; //! pt of charged constituents in jet
317 TH2F *fhLeadNePtInJet[3][kNRadii]; //! pt of leading neutral constituents in jet
318 TH2F *fhLeadChPtInJet[3][kNRadii]; //! pt of leading charged constituents in jet
319 TH2F *fhChLeadZVsJetPt[2][kNRadii]; //! Leading charged constituent Z vs jet pt
320 TH3F *fhJetPtVsZ[3][kNRadii]; //! Jet pt vs constituent Z vs constituent type
321 TH3F *fRelTrkCon[2][kNRadii]; //! Jet pt vs track pt contribution vs track class
322 TH2F *fhJetPtWithTrkThres[2][kNRadii]; //! pt of jets containing tracks above certian threshold
323 TH2F *fhJetPtWithClsThres[2][kNRadii]; //! pt of jets containing clusters above certian threshold
324 TH2F *fhJetPtVsLowPtCons[2][kNRadii][2]; //! Contribution of low pt particles to jet energy
325 THnSparse *fJetEnergyFraction[3][kNRadii]; //! Jet energy fraction
326 THnSparse *fJetNPartFraction[3][kNRadii]; //! Jet NPart fraction
327 TH1F *fJetCount[3][kNRadii]; //! pT distribution of pions detected
328 TH2F *fhSubClsEVsJetPt[2][kNRadii][5]; //! f*subtracted cluster energy vs jet pt
329 TH2F *fhHCTrkPtClean[2][kNRadii][5]; //! Cleanly subtracted charged pt
330 TH2F *fhHCTrkPtAmbig[2][kNRadii][5]; //! Ambiguously subtracted charged pt
331 TH2F *fHCOverSubE[kNRadii][5]; //! Error made by hadronic correction assessed by using particle jet
332 TH2F *fHCOverSubEFrac[kNRadii][5]; //! Error made by hadronic correction assessed by using particle jet
333 TH3F *fhFcrossVsZleading[2][kNRadii]; //! Jet pt vs Fcross vs Zleading
334 TH1F *fhJetPtInExoticEvent[2][kNRadii]; //! Jet pt in exotic events
7c915297 335 TH2F *fhUEJetPtVsSumPt[3][2][2]; //! Leading jet pt vs underlying event pt
336 TH2F *fhUEJetPtVsConsPt[3][2][2]; //! Leading jet pt vs constituent pt in underlying event
337 TH1F *fhUEJetPtNorm[3][2][2]; //! Leading jet normalization
b6e50056 338 TH1F *fhClsE[2]; //! Cluster energy distribution
5543d2a2 339 TH3F *fhJetInTPCOnlyVtx[2][kNRadii]; //! Jets in full TPC acceptance in events with TPC only vertex
7c915297 340 TH1F *fhSysClusterE[2][2]; //! Cluster energy distribution before and after hadonic correction
341 TH2F *fhSysNCellVsClsE[2][2]; //! NCell vs cluster energy before and after hadonic correction
342
343 // Secondaries
5543d2a2 344 TH2F *fhNKFracVsJetPt[2][kNRadii]; //! Energy fraction lost due to missing neutron and K0L
345 TH2F *fhWeakFracVsJetPt[2][kNRadii]; //! Energy fraction lost due to weakly decaying particles
346 TH2F *fhJetResponseNK[2][kNRadii]; //! Jet response due to missing neutron and K0L using response matrix
347 TH2F *fhJetResponseWP[2][kNRadii]; //! Jet response due to missing weakly decayed particles using response matrix
348 TH2F *fhJetResolutionNK[2][kNRadii]; //! Jet resolution due to missing neutron and K0L using response matrix
349 TH2F *fhJetResolutionWP[2][kNRadii]; //! Jet resolution due to missing weakly decayed particles using response matrix
350 TH2F *fhJetResponseNKSM[2][kNRadii]; //! Jet response due to missing neutron and K0L via matching
351 TH2F *fhJetResponseWPSM[2][kNRadii]; //! Jet response due to missing weakly decayed particles via matching
352 TH3F *fhJetResolutionNKSM[2][kNRadii]; //! Jet resolution due to missing neutron and K0L via matching
353 TH3F *fhJetResolutionWPSM[2][kNRadii]; //! Jet resolution due to missing weakly decayed particles via matching
b6e50056 354
355 AliAnalysisTaskFullppJet(const AliAnalysisTaskFullppJet&); // not implemented
356 AliAnalysisTaskFullppJet &operator=(const AliAnalysisTaskFullppJet&); // not implemented
357
5543d2a2 358 ClassDef(AliAnalysisTaskFullppJet, 3);
b6e50056 359};
360
361#endif