]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskFullppJet.h
fix compilation warnings
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / UserTasks / AliAnalysisTaskFullppJet.h
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;
28 class AliEMCALGeometry;
29 class AliEMCALRecoUtils;
30 class AliESDCaloCluster;
31 class AliFJWrapper;
32 class AliAODJet;
33 class TParticle;
34
35 #include "AliESDtrackCuts.h"
36 #include "AliAnalysisTaskSE.h"
37 #ifndef __CINT__
38 #include "fastjet/JetDefinition.hh"
39 #include "fastjet/PseudoJet.hh"
40 #else
41 namespace fastjet {
42   class PseudoJet;
43 }
44 #endif
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,
60         kSuspicious =   1<<6,
61         kGluon =   1<<9,
62         kQuark =   1<<10,
63         kLeadCh = 1<<11 };
64
65   enum { kHybrid=0,
66          kTPCOnly=1,
67          kGlobal=2};
68
69   void SetAnaType(Int_t ana)                      { fAnaType=ana;                   }
70   void SetMCAna(Bool_t mc)                        { fIsMC=mc;                       }
71   void SetPhySelForMC(Bool_t phy)                 { fPhySelForMC=phy;               }
72   void SetChargedMC(Bool_t mc)                    { fChargedMC=mc;                  }
73   void SetRejectSPDPileup(Bool_t re)              { fRejectPileup=re;               }
74   void SetRejectExoticTrigger(Bool_t re)          { fRejectExoticTrigger=re;        }
75   void SetCheckTriggerMask(Bool_t check)          { fCheckTriggerMask=check;        }
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;                     }
114   void SetCheckTPCOnlyVtx(Bool_t check)           { fCheckTPCOnlyVtx=check;         }
115   void SetRunSecondaries(Bool_t run)              { fRunSecondaries=run;            }
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;        }
149   void SetSysClusterizer(Bool_t sys)                { fSysClusterizer=sys;          }
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);
160   Int_t        GetParentParton(const Int_t ipart);
161   Int_t        FindSpatialMatchedJet(fastjet::PseudoJet jet, AliFJWrapper *jetFinder, Double_t &dEta, Double_t &dPhi, Double_t maxR);
162   Int_t        FindEnergyMatchedJet(AliFJWrapper *jetFinder1, const Int_t index1, AliFJWrapper *jetFinder2, const Double_t fraction=0.5);
163   Bool_t       HasPrimaryVertex() const;
164   Bool_t       IsPrimaryVertexOk() const;
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);
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);
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);
193
194   enum { kNBins = 20 };
195   enum { kNRadii = 3 };
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
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
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
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
217   Double_t          fZVtxMax;                           //  Max vertex z cut
218   Int_t             fTriggerType;                       //  0-MB, 1-EMC
219   Bool_t            fCheckTriggerMask;                  //  Flag to check the trigger mask for triggered events
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
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
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
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
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
265   TRandom3          *fRandomGen;                        //! Random number generator
266   Bool_t            fRunUE;                             //  Run analysis of underlying event
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
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
281   TF1               *fNonLinear;                        //! Non-linearity correction functions for data
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
286   Bool_t            fSysClusterizer;                    //  Flag of systematic uncertainty on clusterizer
287   
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
292   Int_t             fRecombinationScheme;               //  Recombination scheme of jet finding
293   AliFJWrapper      *fDetJetFinder[3][2][kNRadii];      //! Jet finder
294   TClonesArray      *fJetTCA[3][2][kNRadii];            //! TCA of jets: in - akt - r
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
300   AliFJWrapper      *fTrueJetFinder[kNRadii];           //! Jet finder for particle jets
301   TClonesArray      *fMcTruthAntikt[kNRadii];           //! TCA of MC truth anti-kt jets
302
303   TList             *fOutputList;                       //! Output list
304   Bool_t            fSaveQAHistos;                      //  Flag of saving QA histograms
305   TH1F              *fhJetEventCount;                   //! Event counts to keep track of rejection criteria
306   TH1F              *fhJetEventStat;                    //! Event counts used for jet analysis
307   TH1F              *fhEventStatTPCVtx;                 //! Event counts for TPC only vertices
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
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
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
338   TH1F              *fhClsE[2];                         //! Cluster energy distribution
339   TH3F              *fhJetInTPCOnlyVtx[2][kNRadii];     //! Jets in full TPC acceptance in events with TPC only vertex
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
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
354
355   AliAnalysisTaskFullppJet(const AliAnalysisTaskFullppJet&);            // not implemented
356   AliAnalysisTaskFullppJet &operator=(const AliAnalysisTaskFullppJet&); // not implemented
357
358   ClassDef(AliAnalysisTaskFullppJet, 3);
359 };
360
361 #endif