]>
Commit | Line | Data |
---|---|---|
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 | ||
12 | class TFormula; | |
13 | class TH2F; | |
14 | class TH1F; | |
15 | class TF1; | |
16 | class THnSparse; | |
17 | class TRandom3; | |
18 | class TObjArray; | |
19 | class TClonesArray; | |
20 | class TObject; | |
21 | class TString; | |
22 | class TProfile2D; | |
23 | class AliAODEvent; | |
24 | class AliESDEvent; | |
25 | class AliMCEvent; | |
26 | class AliStack; | |
27 | class AliESDtrack; | |
b6e50056 | 28 | class AliEMCALGeometry; |
29 | class AliEMCALRecoUtils; | |
30 | class AliESDCaloCluster; | |
31 | class AliFJWrapper; | |
32 | class AliAODJet; | |
7c915297 | 33 | class 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 |
41 | namespace fastjet { | |
42 | class PseudoJet; | |
43 | } | |
44 | #endif | |
b6e50056 | 45 | class 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 | ||
152 | protected: | |
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 |