Corrected compilation options
[u/mrichter/AliRoot.git] / PWGJE / AliAnalysisTaskPartonDisc.h
1 #ifndef ALIANALYSISTASKPARTONDISC_H
2 #define ALIANALYSISTASKPARTONDISC_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * 
5  * See cxx source for full Copyright notice */ 
6
7 //////////////////////////////////////////////////////
8 //                                                  //
9 // Analysis task for parton discrimination studies  //
10 //                                                  //
11 //////////////////////////////////////////////////////
12
13 class TH1F;
14 class TH1I;
15 class TH2F;
16 class TH2I;
17 class TH3F;
18 class TProfile;
19 class AliAODEvent;
20 class AliMCEvent;
21 class AliAODJet;
22 class AliAODTrack;
23 class AliAODMCParticle;
24 class AliAODVertex;
25
26 #include "AliAnalysisTaskSE.h"
27
28 class AliAnalysisTaskPartonDisc : public AliAnalysisTaskSE {
29  public:
30   AliAnalysisTaskPartonDisc();
31   AliAnalysisTaskPartonDisc(const char *name);
32   virtual ~AliAnalysisTaskPartonDisc() {}
33   
34   virtual Bool_t UserNotify();
35   virtual void   UserCreateOutputObjects();
36   virtual void   UserExec(Option_t *option);
37   virtual void   Terminate(const Option_t *);
38   
39   virtual void SetAODwithMC(Bool_t flag)     {fUseAODMC = flag;}
40   virtual void SetMCBranch(const char* mc)   {fBranchMC = mc;}
41   virtual void SetRecBranch(const char* rec) {fBranchRec = rec;}
42   virtual void SetSecondRecBranch(const char* secrec) {fBranchSecRec = secrec;}
43   virtual void SetSqrtS(const Double_t sqrts) {fSqrts = sqrts;}
44   virtual void SetXNtX(const Int_t x) {fNtX = x;}
45   virtual void SetJetRadius(const Double_t jetradius) {fJetRadius = jetradius;}
46   virtual void SetFilterBitTracks(const UInt_t bval) {fFilterBit = bval;}
47   virtual void SetFlavorRadius(const Double_t fradius) {fFlavorRadius = fradius;}
48   virtual void SetPhojetMC(Bool_t flagmc) {fPhojetMC = flagmc;}
49   Int_t        GetMCEventType(AliMCEvent *mcEvent);
50   Int_t        GetPhojetEventType(AliMCEvent *mcEvent);
51   Bool_t       IsInsideAcceptance(AliAODJet *jet);
52   Int_t        GetJetFlavour(AliAODJet *jet, Int_t ntracks,TClonesArray *mcarray);
53   Double_t     GetDeltaR(Double_t eta1, Double_t phi1,Double_t eta2, Double_t phi2);
54   Int_t        GetNumberOfMcChargedTracks(Int_t percentage,AliAODJet *Jet, Int_t ntracks, TClonesArray *mcarray, Double_t jr);
55   Int_t        GetNumberOfChargedTracks(Int_t percentage,AliAODJet *jet, Int_t ntracks, AliAODEvent *aode, Double_t jr);
56   virtual void AllocateStaticContainer(Int_t size);
57   virtual void InitializeStaticContainer(Int_t size);
58   virtual void SortArray(Double_t *pointer, Int_t arraySize);
59   Int_t        TracksForPercentage(Double_t *array, Int_t arraysize, Int_t percentage, Double_t jetenergy);
60   Bool_t       IsMCTrackInsideThisJet(AliAODMCParticle *MCParticle, AliAODJet *Jet, Double_t jr);
61   Bool_t       IsTrackInsideThisJet(AliAODTrack *aodT, AliAODJet *Jet, Double_t jr);
62   Bool_t       VertexInJet(AliAODVertex *pvtx, AliAODVertex *vtx, AliAODJet *jet, Double_t jr);
63   Double_t     GetEtaValue(Double_t theta) const;
64   Double_t     GetThetaAngle(Double_t xval, Double_t yval, Double_t zval);
65   Double_t     GetPhiAngle(Double_t xval, Double_t yval);
66   virtual void SetAODMCInput(Bool_t b){fUseAODJetInput = b;}
67   Double_t     DeltaPhiMC(AliAODJet *jet, AliAODMCParticle *particle);
68   Double_t     DeltaEtaMC(AliAODJet *jet, AliAODMCParticle *particle);
69   Double_t     DeltaPhiSqMC(AliAODJet *jet, AliAODMCParticle *particle);
70   Double_t     DeltaEtaSqMC(AliAODJet *jet, AliAODMCParticle *particle);
71   Double_t     DeltaPhiTrack(AliAODJet *jet, AliAODTrack *track);
72   Double_t     DeltaEtaTrack(AliAODJet *jet, AliAODTrack *track);
73   Double_t     DeltaPhiSqTrack(AliAODJet *jet, AliAODTrack *track);
74   Double_t     DeltaEtaSqTrack(AliAODJet *jet, AliAODTrack *track);
75   virtual void SetMinPtTrackCut(const Double_t minptval) {fMinpTVal = minptval;}
76   static Bool_t NumberOfReadEventsAOD(const char* currFile, Int_t &fNEvents);
77   virtual void  SetOnlyMC(Bool_t flagOnlyMC)     {fUseOnlyMC = flagOnlyMC;}
78   virtual void  SetCheckMCStatus(Bool_t flagMCStatus)     {fCheckMCStatus = flagMCStatus;}
79   virtual void  HasOverlapedCones(TClonesArray *JetArray);
80   virtual void  ResetJetFlags();
81   virtual void  SetEnablePrints(Bool_t flagEnablePrints) {fEnablePrints = flagEnablePrints;}
82   Bool_t        HasPerpendicularCone() const {return fHasPerpCone;}
83   virtual void  SetHIEvent(Bool_t flagHIEvent)     {fIsHIevent = flagHIEvent;}
84   Int_t         GetNMcChargedTracksAboveThreshold(AliAODJet *jet, Int_t ntracks, TClonesArray *mcarray, Double_t jr);
85   Int_t         GetRecalcNTXMc(Int_t percentage, AliAODJet *originaljet, Int_t ntracks, TClonesArray *mcarray, Double_t jr);
86   Int_t         GetRecalcNMcChTrUpThr(AliAODJet *jet, Int_t ntracks, TClonesArray *mcarray, Double_t jr);
87   Int_t         GetNRecChargedTracksAboveThreshold(AliAODJet *jet, Int_t ntracks, AliAODEvent *aode, Double_t jr);
88   Int_t         GetRecalcNTXRec(Int_t percentage,AliAODJet *originaljet, Int_t ntracks, AliAODEvent *aode, Double_t jr);
89   Int_t         GetRecalcNRecChTrUpThr(AliAODJet *jet, Int_t ntracks, AliAODEvent *aode, Double_t jr);
90   Int_t         TracksForPercentageRecalc(Double_t *array, Int_t arraysize, Int_t percentage, Double_t jetenergy);
91   Bool_t        IsTrackInsideExcludedArea(Double_t tracketa, Double_t trackphi, TClonesArray *recojets);
92   Double_t      GetV0ExcludedMultiplicity(TClonesArray *recojets);
93   virtual void  SetMinPtUE(const Double_t minptvalUE) {fMinpTValUE = minptvalUE;}
94   virtual void  SetMaxPtUE(const Double_t maxptvalUE) {fMaxpTValUE = maxptvalUE;}
95   virtual void  SetMinPtMC(const Double_t minptvalMC) {fMinpTValMC = minptvalMC;}
96   Int_t         GetV0LikeExcludedMultMC(TClonesArray *mcjets, TClonesArray *mcparticles);
97   virtual void  SetIncreaseOfExclusionR(const Double_t increaseExclR) {fIncExcR = increaseExclR;}
98   virtual void  ForceNotUseTrackRefs(const Bool_t flagForce) {fForceNotTR = flagForce;};
99   virtual void  NotExtendDiJetExclusion(const Bool_t flagNotDiJ) {fNotExtDiJEx = flagNotDiJ;};
100   virtual void  FillPerpConeHisto(TH3F *currenthisto, Int_t ntracks, AliAODEvent *aode, Int_t CentralityBin, Int_t pTBin);
101   virtual void  ForceSkipSingleTrackJets(const Bool_t flagForceSJ) {fForceSkipSJ = flagForceSJ;};
102   Bool_t        IsEqualRel(Double_t vA, Double_t vB);
103   virtual void  SetEnableJetEtaRestriction(Bool_t flagEnableJetEtaRes) {fIncreasingExcl = flagEnableJetEtaRes;}
104   virtual void  SetTrackRandomRejectionPerc(const Double_t perctrackrr) {fTTrackRandomRejection = perctrackrr;}
105   virtual void  SetTrackInJetRandomRejectionPerc(const Double_t perctrackijrr) {fJTrackRandomRejection = perctrackijrr;}
106   virtual void  SetMinPtCutGlobMult(const Double_t minptglobmult) {fMinPtInGlobMult = minptglobmult;}
107
108  private:
109   AliAODEvent *fAOD;         //! AOD object
110   Bool_t      fUseAODMC;     // Flag for MC info in the AOD
111   Bool_t      fPhojetMC;     // Flag for Phojet MC
112   TString     fBranchMC;     // AOD branch name for MC jets
113   TString     fBranchRec;    // AOD branch name for reconstructed jets
114   TString     fBranchSecRec; // AOD branch name for secondary reconstructed jets 
115   Double_t    fSqrts;        // Value of sqrt{s}  default 0 to spot errors
116   Int_t       fNtX;          // X Value of NTX  default 0 to spot errors
117   Double_t    fJetRadius;    // Radius used in jet finding default 0 to spot errors
118   Double_t    fFlavorRadius; // Radius used in flavor asignment
119   UInt_t      fFilterBit;    // Filterbit value: 16= tracks with standard cuts, 128 = tracks with hit in SDD, 144 (16+128) = all the previous
120   TList       *fOutputList;  //! Output list
121   TH1F        *fJetPt;      //! Pt spectrum of reco jets
122   TH1F        *fJetPtSec;   //! Pt spectrum of secondary reco jets
123   TH1F        *fJetPtMC;    //! Pt spectrum of mc jets
124   TH2F        *fJetEta;     //! Eta of reco jets
125   TH2F        *fJetEtaSec;  //! Eta of secondary reco jets
126   TH2F        *fJetPhi;     //! Phi of reco jets
127   TH2F        *fJetPhiSec;  //! Phi of secondary reco jets
128   TH2F        *fJetEtaMC;   //! Eta of MC jets
129   TH2F        *fJetPhiMC;   //! Phi of MC jets
130   TH2F        *fPtAODMC;    //! Pt spectrum of MC tracks in AOD 
131   TH2F        *fPtAOD;      //! Pt spectrum of tracks in AOD (reco MC or real)
132   TH2F        *fEtaAODMC;   //! Eta distribution of MC AOD tracks 
133   TH2F        *fPhiAODMC;   //! Phi distribution of MC AOD tracks 
134   TH2F        *fEtaAOD;     //! Eta distribution of AOD tracks
135   TH2F        *fPhiAOD;     //! Phi distribution of AOD tracks
136   TH2F        *fFlavor;     //! Flavor distribution of jets
137   TH2F        *fNJetsMC;    //! Number of jets per event in MC
138   TH2F        *fNJetsRD;    //! Number of jets per event in real data or reco MC
139   TH2F        *fNJetsRDSeco;     //! Number of jets per event in real data or reco MC secondary branch
140   TH2F        *fJetsMultPtMC;    //! Jet multiplicity in jet pT in MC
141   TH2F        *fJetsMultPtRD;    //! Jet multiplicity in jet pT in real data or reco MC
142   static Double_t *fgContainer;     //! static container for track counting
143   TH2F        *fNChTr[12];          //! Number of charged tracks in the jets as a function of jet pt (MC)
144   TH2F        *fNChTrRD;            //! Number of charged tracks in the jets as a function of jet pt (Real Data)
145   TProfile    *fProfNChTrRD;        //! Number of charged tracks in the jets as a function of jet pt (Real Data)
146   TH2I        *fProcessPDG[6];      //! Pythia process and pT of the jet
147   TH1F        *fHistPtParton[12];   //! Pt distribution of jets per flavor, mc and reco
148   TH2F        *fFragPion[6];        //! Fragmentation of jet in pions, jet energy
149   TH2F        *fFragKaon[6];        //! Fragmentation of jet in kaons, jet energy
150   TH2F        *fFragProton[6];      //! Fragmentation of jet in protons, jet energy
151   TH2F        *fHistContainerR4[6];    //! Temporary containers for fragmentation of reco jets R4
152   TH2F        *fHistContainerR3[6];    //! Temporary containers for fragmentation of reco jets R3
153   TH2F        *fHistContainerR2[6];    //! Temporary containers for fragmentation of reco jets R2
154   TH2F        *fFragChargedR4[6];   //! Fragmentation of jet in charged part, jet energy R4
155   TH2F        *fFragChargedR3[6];   //! Fragmentation of jet in charged part, jet energy R3
156   TH2F        *fFragChargedR2[6];   //! Fragmentation of jet in charged part, jet energy R2
157   TH2F        *fFragCandidates[2];  //! Tagged candidates for FF
158   TH1F        *fFracQQ;             //! process qq as a function of x_{T} 
159   TH1F        *fFracGQ;             //! process gq as a function of x_{T} 
160   TH1F        *fFracGG;             //! process gg as a function of x_{T}
161   TH1F        *fFracOutGoingQQ;     //! process outgoing qq as a function of x_{T} 
162   TH1F        *fFracOutGoingGQ;     //! process outgoing gq as a function of x_{T} 
163   TH1F        *fFracOutGoingGG;     //! process outgoing gg as a function of x_{T}
164   TProfile    *fh1Xsec;             //! xsection from pyxsec.root
165   TH1F        *fh1Trials;           //! ntrials from pyxsec.root            
166   Short_t      fMpdg;               //! PDG code of mother of parton
167   TH2F        *fProcessJetPt;       //! Pythia Process and jet pT 
168   TH2F        *fFlavorLead;         //! Flavor distribution of the leading jet
169   TH2F        *fProcessLeadJetPt;   //! Pythia Process and jet pT of the leading jet
170   TH3F        *fPDGMothLPart;       //! PDG code of the mother of the leading parton, leading parton, jet pT
171   TH2F        *fFlavProc;           //! Flavor, Flavor status code
172   Float_t      fAvgTrials;          //  Average number of trials
173   Bool_t       fUseAODJetInput;     //  take MC from input AOD not from output AOD
174   Double_t     fMinTrackPtInNTX;    //  Minimum track pT taken into the NTX calculation
175   Double_t     fMaxTrackPtInNTX;    //  Maximum track pT taken into the NTX calculation
176   TH3F        *fMinTrackPtInNTXh[2];//! Histo to save fMinTrackPtInNTX as a function of jet pT
177   TH2F        *fMaxTrackPtInNTXh[2];//! Histo to save fMaxTrackPtInNTX as a function of jet pT
178   TH2F        *fSCM[12];            //! Second central moment as a function of jet pt (MC)
179   TH2F        *fSCMRD;              //! Second central moment as a function of jet pt (Real Data)
180   Double_t     fMinpTVal;           //  Minimum pT track cut for SCM analysis
181   TH2F        *fZVertex;            //! Z coordinate vertex position, number of reco jets
182   TH1F        *fh1Events;           //! nevents read out from PWG4_JetTasksOutput.root
183   Bool_t       fUseOnlyMC;          //  Flag to signal only MC input
184   Bool_t       fCheckMCStatus;      //  Flag to check the status of MC, not working for old aliroot
185   Bool_t       fJetFlags[16];       //  Flag to mark if this jet is ok (acceptance and no overlap), kTRUE if usable
186   Int_t        fEvtCount;           //  Event counter for debugging
187   TH2F        *fNAccJetsMC;         //! Number of accepted jets per event in MC
188   TH2F        *fNAccJetsRD;         //! Number of accepted jets per event in real data or reco MC
189   TH2F        *fNAccJetsRDSeco;     //! Number of jets accepted per event in real data or reco MC secondary branch                    
190   Bool_t       fEnablePrints;       //  Flag to enable print outs
191   TH1F        *fRecJetPtInclusive;  //! Pt spectrum of inclusive reco jets
192   TH1F        *fMCJetPtInclusive;   //! Pt spectrum of inclusive MC jets
193   TH1F        *fRecJetPtLeading;    //! Pt spectrum of leading reco jets
194   TH1F        *fMCJetPtLeading;     //! Pt spectrum of leading MC jets
195   TH1F        *fSecRecJetPtInclusive;  //! Pt spectrum of inclusive reco jets (2nd branch)
196   TH1F        *fSecRecJetPtLeading;    //! Pt spectrum of leading reco jets (2nd branch)
197   Bool_t       fHasPerpCone;           // Flag to indicate if possible to use a perpendicular jet for bckg
198   Double_t     fEtaPerpCoord;          // Eta of perpendicular cone
199   Double_t     fPhiPerpCoord;          // Phi of perpendicular cone
200   Double_t     fPtPerpCoord;           // pT of perpendicular cone
201   Bool_t       fJetEvent;              // Flag to indicate a jet event(in acceptance)
202   AliAODJet   *fPerpCone;              // Perpendicular Cone
203   TH2F        *fNChTrMCPerp;           //! Number of charged tracks in the perpendicular cone MC
204   TH2F        *fNChTrRecPerp;          //! Number of charged tracks in the perpendicular cone Reco or Real
205   TH2F        *fSCMMCPerp;             //! Second central moment as a function of jet pt for the perp cone MC
206   TH2F        *fSCMRecPerp;            //! Second central moment as a function of jet pt for the perp cone Rec
207   Bool_t       fIsHIevent;             // Flag to indicate that is reading a HI event
208   Double_t     fCurrentJetMinPtNT90;   // Min pT used in the NT90 calculation of the current jet
209   Double_t    *fBckgSbsJet;            //! Current jet, background substracted
210   Double_t     fCurrentJetMinPtNT90Recalc;  // Min pT used in the NT90 re-calculation of the current jet 
211                                             // after energy correction of the jet
212   TH2F        *fNChTrCorrMCQuark;           //! Number of charged tracks after jet energy correction, as a function of corrected pT, MC quarks
213   TH2F        *fNChTrCorrMCGluon;           //! Number of charged tracks after jet energy correction, as a function of corrected pT, MC gluons
214   TH2F        *fNChTrCorrMCPerp;            //! Number of charged tracks in the perpendicular cone MC, after correction
215   Bool_t       fIsPossibleToSubstBckg;      //  Flag to signal that there was a perpendicular cone, as is possible to substract background
216   TH3F        *fNChTrRecECorr;              //! Number of charged tracks in the energy corrected jet, as a function of corrected jet pt, centrality
217   TH3F        *fNChTrRecPerpECorr;          //! Number of charged tracks in the perpendicular after correction, as a func. of corr. jet pt, centrality
218   TH1F        *fRefMult;                    //! Reference multiplicity in the AOD
219   TH2F        *fNChTrRDMult[8];             //! Number of charged tracks in the jets as a function of jet pt (Real Data), for reference multiplicities in pp
220   TH1F        *fNAccJetsRDMult[8];          //! Number of accepted jets per event in real data or reco MC, for reference multiplicities in pp
221   Int_t        fCurrentJetCharge;           //  Charge in the current jet
222   TH1F        *fTotalJetCharge[8];          //! Charge of this jet (dependent on event multiplicity)
223   TH2F        *fRefMultWOJet;               //! Reference multiplicity in the AOD and multiplicity without jets
224   TH2F        *fSCMRDMult[8];               //! Second central moment as a function of jet pt (Real Data), for reference multiplicities in pp
225   TH2F        *fNChTrRDMultMC[8];           //! Number of charged tracks in the jets as a function of jet pt (MC Data), for reference multiplicities in pp
226   TH2F        *fSCMRDMultMC[8];             //! Second central moment as a function of jet pt (MC Data), for reference multiplicities in pp
227   TH2F        *fVZEROMult;                  //! Multiplicity in V0A and V0C
228   TH2F        *fMultWOJetVZero;             //! Multiplicity without jets, and VZERO multiplicity
229   AliAODVZERO *fVZero;                      //! AOD VZERO object
230   TH2F        *fNChTrRDMultSE[8];           //! Number of charged tracks in the jets as a function of jet pt (Real Data), for 2nd reference multiplicities in pp
231   TH1F        *fNAccJetsRDMultSE[8];        //! Number of accepted jets per event in real data or reco MC, for 2nd reference multiplicities in pp
232   TH1F        *fTotalJetChargeSE[8];        //! Charge of this jet (dependent on 2nd event multiplicity)
233   TH2F        *fSCMRDMultSE[8];             //! Second central moment as a function of jet pt (Real Data), for 2nd reference multiplicities in pp
234   TH2F        *fRefMultFullV0;              //! Reference multiplicity in the AOD and multiplicity from the full V0
235   TH2F        *fRefMultV0Corr;              //! Reference multiplicity in the AOD and multiplicity from the V0 sectors with no jets (2 leading)
236   TH2F        *fFullV0V0Corr;               //! Multiplicity from the full V0, Multiplicity from the V0 sectors with no jets (2 leading)
237   TH3F        *fNTXV0MultPt;                //! NTX, V0 corrected multiplicity, and jet pT
238   TH3F        *fNTXCBMultPt;                //! NTX, Central Barrel corrected multiplicity, and jet pT
239   TH2F        *fNChTrRDMultOJ[8];           //! Number of charged tracks in the jets as a function of jet pt (Real Data), for reference multiplicities in pp, 1 Jet
240   TH2F        *fSCMRDMultOJ[8];             //! Second central moment as a function of jet pt (Real Data), for reference multiplicities in pp, 1 Jet
241   TH2F        *fNChTrRDMultSEOJ[8];         //! Number of charged tracks in the jets as a function of jet pt (Real Data), for 2nd reference multiplicities in pp, 1 Jet
242   TH2F        *fSCMRDMultSEOJ[8];           //! Second central moment as a function of jet pt (Real Data), for 2nd reference multiplicities in pp, 1 Jet
243   Double_t     fMinpTValUE;                 //  Minimum pT track cut for the UE multiplicity, default 2 GeV for debugging
244   TH2F        *fRefMultFullV0UJ;            //! Reference multiplicity in the AOD and multiplicity from the full V0, un jet
245   TH2F        *fRefMultV0CorrUJ;            //! Reference multiplicity in the AOD and multiplicity from the V0 sectors with no jets (2 leading), un jet
246   TH2F        *fFullV0V0CorrUJ;             //! Multiplicity from the full V0, Multiplicity from the V0 sectors with no jets (2 leading), un jet
247   TH2F        *fMultWOJetVZeroUJ;           //! Multiplicity without jets, and VZERO multiplicity, un jet
248   TH2F        *fRefMultWOJetUJ;             //! Reference multiplicity in the AOD and multiplicity without jets, un jet
249   Double_t     fMaxpTValUE;                 //  Maximum pT track cut for the UE multiplicity, default 2 GeV for debugging
250   TH2F        *fRefAODTrackCount;           //! Correlation between ref aod mult. and my own counting
251   TH2F        *fRefAODTrackCountUJ;         //! Correlation between ref aod mult. and my own counting, single jet event
252   TH2F        *fTrackCountWOJet;            //! Correlation between my own counting TPC & soft TPC
253   TH2F        *fTrackCountWOJetUJ;          //! Correlation between my own counting TPC & soft TPC UJ
254   TH2F        *fTrackCountWOJetUJMC;        //! Correlation between my own counting TPC & soft TPC UJ solo MC
255   TH2F        *fFullV0V0CorrUJMC;           //! Multiplicity from the full V0, Multiplicity from the V0 sectors with no jets, un jet MC no real V0
256   TH2F        *fNChTrRDMultOJMC[8];         //! Number of charged tracks in the jets as a function of jet pt (MC), for reference multiplicities in pp, 1 Jet
257   TH2F        *fSCMRDMultOJMC[8];           //! Second central moment as a function of jet pt (MC), for reference multiplicities in pp, 1 Jet
258   TH2F        *fNChTrRDMultSEOJMC[8];       //! Number of charged tracks in the jets as a function of jet pt (MC), for 2nd reference multiplicities in pp, 1 Jet
259   TH2F        *fSCMRDMultSEOJMC[8];         //! Second central moment as a function of jet pt (MC), for 2nd reference multiplicities in pp, 1 Jet
260   Double_t     fMinpTValMC;                 //  Minimum pT track cut for the MC multiplicity, default 2 GeV for debugging
261   Double_t     fIncExcR;                    //  Increase in the exclusion radius value
262   Bool_t       fForceNotTR;                 //  Force NOT to use track references
263   Bool_t       fNotExtDiJEx;                //  Not extend the exclusion in the dijet area, old behaviour
264   TH3F        *fMinTrackPtInNTXRecalc;      //! Histo to save fMinTrackPtInNTX after recalculation as a function of jet pT
265   TH2F        *fMaxTrackPtInNTXRecalc;      //! Histo to save fMaxTrackPtInNTX after recalculation as a function of jet pT
266   TH3F        *fPtDistInJetConeRaw;         //! pT distributions of tracks inside the cone for jet pT (raw) ranges and centralities
267   TH3F        *fPtDistInPerpConeRaw;        //! pT distributions of tracks inside the perpendicular cone for jet pT (raw) ranges and centralities
268   TH3F        *fPtInPerpCon;                //! summed pT from the perpendicular cone for jet pT (raw) ranges and centralities
269   Double_t     fMinTrackPtInNTXR;           //  Minimum track pT taken into the NTX re-calculation
270   Double_t     fMaxTrackPtInNTXR;           //  Maximum track pT taken into the NTX re-calculation
271   Double_t     fEventCent;                  //  event centrality
272   TH2F        *fNChTrRecPerpMultSEOJ[8];    //! Number of charged tracks in the perpendicular cone reco or real, with multiplicities
273   TH1F        *fJetEtaAll;                  //! Eta distribution of all the found jets, no cuts
274   TH1F        *fJetEtaOnlyTPCcut;           //! Eta distribution of all the found jets, only with eta acceptance cut
275   TH1F        *fJetEtaJetPt[3];             //! Eta distribution of analyzed jets, 3 ranges of pT
276   TH3F        *fNChTrRecECorrPPMult;        //! Number of charged tracks in the energy corrected jet, as a function of corrected jet pt, pp mult
277   TH3F        *fNChTrRecPerpECorrPPMult;    //! Number of charged tracks in the perpendicular after correction, as a func. of corr. jet pt, pp mult
278   Bool_t       fForceSkipSJ;                //  Force to skip single track jets
279   TH2F        *fJetPtCentPbPbRaw;           //! Raw pT spectrum of reco jets, centrality in PbPb
280   TH2F        *fJetPtCentPbPbCorr;          //! Corrected pT spectrum of reco jets, centrality in PbPb
281   Double_t     fJetAcceptance;              //  Acceptance cut on jets, for multiplicity in PbPb
282   Bool_t       fIncreasingExcl;             //  Flag to indicate that the analyis increases exclusion beyond jet radius
283   TH3F        *fTotTracksCone;              //! total number of tracks in the jet cone, for jet pT (raw) ranges and centralities
284   Int_t        fTotTracksInCone;            //  Total number of tracks in the jet cone
285
286   Double_t     fTTrackRandomRejection;      //  Percentage of tracks from the event randomly rejected
287   Double_t     fJTrackRandomRejection;      //  Percentage of tracks from the jet randomly rejected
288   TH1F        *fJEtaMCMultOJ[8];            //! Eta distribution of jets as a function of jet pt (MC), for V0-like multiplicities in pp, 1 Jet
289   TH1F        *fJEtaMCMultSEOJ[8];          //! Eta distribution of jets as a function of jet pt (MC), for TPC-like multiplicities in pp, 1 Jet
290   TH1F        *fJEtaRDMultOJ[8];            //! Eta distribution of jets as a function of jet pt (Reco Data), for V0 multiplicities in pp, 1 Jet
291   TH1F        *fJEtaRDMultSEOJ[8];          //! Eta distribution of jets as a function of jet pt (Reco Data), for TPC-like multiplicities in pp, 1 Jet
292   TH1F        *fJetPtMCMultOJ[8];           //! Pt spectrum jets (MC), for V0-like multiplicities in pp, 1 jet
293   TH1F        *fJetPtMCMultSEOJ[8];         //! Pt spectrum jets (MC), for TPC-like multiplicities in pp, 1 jet
294   TH1F        *fJetPtRDMultOJ[8];           //! Pt spectrum jets (Reco Data), for V0 multiplicities in pp, 1 jet
295   TH1F        *fJetPtRDMultSEOJ[8];         //! Pt spectrum jets (Reco Data), for TPC multiplicities in pp, 1 jet
296   TH2F        *fEntriesQuark[8];            //! Quark NT90 in MC in the multiplicity bins
297   TH2F        *fEntriesGluon[8];            //! Gluon NT90 in MC in the multiplicity bins
298   Double_t     fMinPtInGlobMult;            //  Min pT used in the global multiplicity calculation
299
300   AliAnalysisTaskPartonDisc(const AliAnalysisTaskPartonDisc&); // not implemented
301   AliAnalysisTaskPartonDisc& operator=(const AliAnalysisTaskPartonDisc&); // not implemented
302   
303   ClassDef(AliAnalysisTaskPartonDisc, 4); 
304 };
305
306 #endif