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