]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/Correlations/JCORRAN/AliJHistos.cxx
flat friends update
[u/mrichter/AliRoot.git] / PWGCF / Correlations / JCORRAN / AliJHistos.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-2014, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 // Comment describing what this class does needed!
17
18 #include "AliJHistos.h"
19 #include  "AliJCard.h"
20 #include  "AliJBaseTrack.h"
21 #include  "AliJPhoton.h"
22 #include  "AliJTrack.h"
23
24 //______________________________________________________________________________
25 AliJHistos::AliJHistos(AliJCard* cardP) :
26   fCard(cardP),
27   fHMG(NULL),
28   fCentBin(),
29   fVtxBin(),
30   fPTtBin(),
31   fPTaBin(),
32   fXEBin(),
33   fKLongBin(),
34   fRGapBin(),
35   fEtaGapBin(),
36   fPhiGapBin(),
37   fMassBin(),
38   fTypBin(),
39   fTypBin3(),
40   fPairPtBin(),
41   fhMixStat(),
42   fTestHist(),
43   fhPtNear(),
44   fhPtFar(),
45   fhPhi(),
46   fhDphiAssoc(),
47   fhDphiAssocXEbin(),
48   fhDphiAssoc2DIAA(),
49   fhDphiAssoc2D(),
50   fhDphiDetaKlong(),
51   fhDphiDetaKlongR(),
52   fhDphiDetaXe(),
53   fhDphiDetaXeR(),
54   fhDphiDetaPta(),
55   fhDphiDetaPtaR(),
56   fhBgAssocKlong(),
57   fhBgAssocKlongR(),
58   fhBgAssocXe(),
59   fhBgAssocXeR(),
60   fhBgAssocPta(),
61   fhBgAssocPtaR(),
62   fhDphiAssocIsolTrigg(),
63   fhMeanPtAssoc(),
64   fhMeanZtAssoc(),
65   fhPtAssocUE(),
66   fhPtaEtaGapN(),
67   fhPtaRGapN(),
68   fhPtAssocUEIsolTrigg(),
69   fhPtAssocN(),
70   fhPtAssocF(),
71   fhCosThetaStar(),
72   fhCMSrap(),
73   fpCMSrap(),
74   fhInvMass(),
75   fhPairPtMass(),
76   fhPairDPhi(),
77   fhPairDpT(),
78   fhPairPtDphi(),
79   fhPairPt(),
80   fhDEtaNear(),
81   fhDEtaNearM(),
82   fhDEtaNearXEbin(),
83   fhDEtaNearMXEbin(),
84   fhDRNearPt(),
85   fhDRFarPt(),
86   fhDRNearPtMoon(),
87   fhDRFarPtMoon(),
88   fhDRNearPtMoonM(),
89   fhDRFarPtMoonM(),
90   fhDEtaFar(),
91   fhIphiTrigg(),
92   fhIetaTrigg(),
93   fhIphiAssoc(),
94   fhIetaAssoc(),
95   fhFixPtBin(),
96   fhTriggPtBin(),
97   fhTriggPtBinIsolTrigg(),
98   fhTriggMult(),
99   fhAssocPtBin(),
100   fhxEN(),
101   fhxEF(),
102   fhxEFIsolTrigg(),
103   fhPoutF(),
104   fhxEPtBin(),
105   fhJT(),
106   fhJTBg(),
107   fhJTBgR(),
108   fhJTKlong(),
109   fhJTKlongBg(),
110   fhJTKlongBgR(),
111   fhJTPta(),
112   fhJTPtaBg(),
113   fhJTPtaBgR(),
114   fhLPpt(),
115   fhLPpairPt(),
116   fhChargedPt(),
117   fhChargedPtNoCorr(),
118   fhChargedPtJacek(),
119   fhChargedPtJacekEta(),
120   fhChargedPtFiete(),
121   fhVdelta2(),
122   fhVdelta3(),
123   fhVN(),
124   fhTrackingEfficiency(),
125   fpV2(),
126   fpV3(),
127   fpVdeltaNorm(),
128   fhChargedEta(),
129   fhLPeta(),
130   fhAssocMult(),
131   fhChargedMult(),
132   fhChargedMultCut(),
133   fhChargedMultCent(),
134   fhXt(),
135   fhXtWeighted(),
136   fhXtWeightedHT(),
137   fhPtForXt(),
138   fhConeActivity(),
139   fhConeActivityIsolated(),
140   fhPerpConeActivity(),
141   fhPerpConeActivityIsolated(),
142   fhV0AMult(),
143   fhZVertRaw(),
144   fhZVertRawErr(),
145   fhZVert(),
146   fhCentr(),
147   fhiCentr(),
148   fhEventPerRun(),
149   fhVertexZTriggVtx(),
150   fhIsolatedLPpt(),
151   fhBkgActivity(),
152   fhDphiLPJet(),
153   fhDEtaLPJet(),
154   fhDPtLPJet(),
155   fhLPJetPTt(),
156   fhLPJetPt(),
157   fhLPJetEtaPTt(),
158   fhLPJetRapidityPTt(),
159   fhLPJetMassPTt(),
160   fhLeadingJetWLPPTt(),
161   fhJetPt(),
162   fhLeadingJetPt(),
163   fhLeadingJetWLPPt(),
164   fhJetAssymPTt(),
165   fhJetMassPTt(),
166   fhJetUEPt(),
167   fhJetDphi(),
168   fhJetDeta(),
169   fhJetMultPt(),
170   fhJetRho(),
171   fhJetRhoSigma(),
172   fhJetPartMult(),
173   fhRecoDiJetM(),
174   fhRecoDiJetdPhi(),
175   fhRecoDiJetkT(),
176   fhNParton71(),
177   fhNStringGroup(),
178   fhNStringGroupFrom(),
179   fhNTracksInStringGroupFrom(),
180   fhRapidity71From(),
181   fhPt71From(),
182   fhTrackSelection(),
183   fNJacek(0),
184   fPttJacek(0),
185   fNEta(0),
186   fEta(0),
187   fNJanFiete(0),
188   fJanFiete(0),
189   fhEvents(),
190   fhEventTrigger(),
191   fmaxEtaRange(0),
192   fmaxTriggEtaRange(0),
193   ftriggFiducCut(0),
194   fnUE(0),
195   fnUEfar(0),
196   fLowRange(0),
197   fHighRange(0)
198 {   // constructor
199
200     fmaxEtaRange = fCard->Get("EtaRange");
201     ftriggFiducCut =  fCard->Get("TriggerFiducialEtaCut"); //FK// Fiduc cut 
202     fmaxTriggEtaRange =  fmaxEtaRange - ftriggFiducCut; //FK// Trigger range
203
204     fHMG = AliJHistManager::GlobalManager();
205     //for (int hiklong = 0; hiklong < fCard->GetNoOfBins(kLongType); hiklong++)
206     //kRGapType kEtaGapType
207     fCentBin   .Set("Cent",   "C", "C %2.0f-%2.0f%%" ).SetBin( fCard->GetVector("CentBinBorders"));
208     fVtxBin    .Set("Vtx",    "V", "" ).SetBin(fCard->GetVector("zVertBins"));
209     fPTtBin    .Set("PTt",    "T", "").SetBin(fCard->GetVector("TriggPtBorders"));
210     fPTaBin    .Set("PTa",    "A", "").SetBin(fCard->GetVector("AssocPtBorders"));
211     fXEBin     .Set("XE",     "X", "x_{E}: %2.1f-%2.1f" ).SetBin(fCard->GetVector("xEBorders"));
212     fKLongBin  .Set("KLong", "L", "k_{#parallel}: %2.1f-%2.1f").SetBin(fCard->GetVector("KlongBorders"));
213     fRGapBin   .Set("RGap",  "R",  "").SetBin(fCard->GetVector("RGapThresholds"));
214     fEtaGapBin .Set("EtaGap", "E", "").SetBin(fCard->GetVector("EtaGapThresholds"));
215     fPhiGapBin .Set("PhiGap", "P", "" ).SetBin(fCard->GetVector("EtaGapThresholds"));
216     fMassBin   .Set("Mass",   "M", "Mass").SetBin(fCard->GetVector("PairInvariantMassBins"));
217     fTypBin    .Set("Type",   "D", "", AliJBin::kSingle ).SetBin( "0 1" );
218     fTypBin3    .Set("Type3",   "D", "", AliJBin::kSingle ).SetBin( "0 1 2 3" );
219     //card->IsLessThanUpperPairPtCut(-ipairpt)
220     fPairPtBin .Set("PairPt", "", AliJBin::kSingle ).SetBin( fCard->GetN("UpperPairPtCut") );
221
222     const int nJacek =  73 ;
223     double pttJacek[nJacek+1] = {0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95,
224       1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.2, 2.4, 2.6, 2.8, 3, 3.2, 3.4, 3.6, 3.8, 4, 4.5, 5, 5.5, 6, 6.5, 7, 8, 9,
225       10, 11, 12, 13, 14, 15, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 40, 45, 50, 60, 70, 80, 90, 100};
226   
227     //const int nJacek =  59 ;
228     //double pttJacek[nJacek] = { 0.15, 0.20, 0.25, 0.30, 0.35, 0.40, 0.45, 0.5, 0.55, 0.60, 0.65, 0.70, 0.75, 0.80, 0.85, 0.9, 0.95, 1.,
229     //    1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.2, 2.4, 2.6, 2.8, 3., 3.2, 3.4, 3.6, 3.8, 4., 4.5, 5., 5.5, 6., 6.5, 7., 8., 9., 10,
230     //    11., 12., 13., 14., 15., 16., 18., 20, 22, 24, 26., 28., 30.};
231   
232     fNJacek = nJacek;  // Number of bins
233     fPttJacek = new double[fNJacek+1];
234     for(int i = 0; i <= fNJacek; i++){
235       fPttJacek[i] = pttJacek[i];
236     }
237   
238     const int nEta = 3;
239     double eta[nEta+1] = {-0.8,-0.2,0.3,0.8};// eta bins
240   
241     fNEta = nEta;  // Number of bins
242     fEta = new double[fNEta+1];
243     for(int i = 0; i <= fNEta; i++){
244       fEta[i] = eta[i];
245     }
246   
247     const int nJanFiete=200;
248     double janFiete[nJanFiete+1]={0, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2, 2.25, 2.5, 2.75, 3, 3.25, 3.5, 3.75, 4, 4.25, 4.5, 4.75, 5, 5.25, 5.5,
249       5.75, 6, 6.25, 6.5, 6.75, 7, 7.25, 7.5, 7.75, 8, 8.25, 8.5, 8.75, 9, 9.25, 9.5, 9.75, 10, 10.25, 10.5, 10.75, 11, 11.25, 11.5, 11.75,
250       12, 12.25, 12.5, 12.75, 13, 13.25, 13.5, 13.75, 14, 14.25, 14.5, 14.75, 15, 15.25, 15.5, 15.75, 16, 16.25, 16.5, 16.75, 17, 17.25, 17.5,
251       17.75, 18, 18.25, 18.5, 18.75, 19, 19.25, 19.5, 19.75, 20, 20.25, 20.5, 20.75, 21, 21.25, 21.5, 21.75, 22, 22.25, 22.5, 22.75, 23, 23.25,
252       23.5, 23.75, 24, 24.25, 24.5, 24.75, 25, 25.25, 25.5, 25.75, 26, 26.25, 26.5, 26.75, 27, 27.25, 27.5, 27.75, 28, 28.25, 28.5, 28.75, 29,
253       29.25, 29.5, 29.75, 30, 30.25, 30.5, 30.75, 31, 31.25, 31.5, 31.75, 32, 32.25, 32.5, 32.75, 33, 33.25, 33.5, 33.75, 34, 34.25, 34.5, 34.75,
254       35, 35.25, 35.5, 35.75, 36, 36.25, 36.5, 36.75, 37, 37.25, 37.5, 37.75, 38, 38.25, 38.5, 38.75, 39, 39.25, 39.5, 39.75, 40, 40.25, 40.5,
255       40.75, 41, 41.25, 41.5, 41.75, 42, 42.25, 42.5, 42.75, 43, 43.25, 43.5, 43.75, 44, 44.25, 44.5, 44.75, 45, 45.25, 45.5, 45.75, 46, 46.25,
256       46.5, 46.75, 47, 47.25, 47.5, 47.75, 48, 48.25, 48.5, 48.75, 49, 49.25, 49.5, 49.75, 50};
257
258     fNJanFiete = nJanFiete;  // Number of bins
259     fJanFiete = new double[fNJanFiete+1];
260     for(int i = 0; i <= fNJanFiete; i++){
261       fJanFiete[i] = janFiete[i];
262     }
263   
264     //fhtyp[1] = "Real";
265     //fhtyp[2] = "Mixed";
266     //fhtyp[3] = "Rap. Gap";
267 }
268
269 //______________________________________________________________________________
270 AliJHistos::AliJHistos(const AliJHistos& obj) : 
271   fCard(obj.fCard),
272   fHMG(obj.fHMG),
273   fCentBin(obj.fCentBin),
274   fVtxBin(obj.fVtxBin),
275   fPTtBin(obj.fPTtBin),
276   fPTaBin(obj.fPTaBin),
277   fXEBin(obj.fXEBin),
278   fKLongBin(obj.fKLongBin),
279   fRGapBin(obj.fRGapBin),
280   fEtaGapBin(obj.fEtaGapBin),
281   fPhiGapBin(obj.fPhiGapBin),
282   fMassBin(obj.fMassBin),
283   fTypBin(obj.fTypBin),
284   fTypBin3(obj.fTypBin3),
285   fPairPtBin(obj.fPairPtBin),
286   fhMixStat(obj.fhMixStat),
287   fTestHist(obj.fTestHist),
288   fhPtNear(obj.fhPtNear),
289   fhPtFar(obj.fhPtFar),
290   fhPhi(obj.fhPhi),
291   fhDphiAssoc(obj.fhDphiAssoc),
292   fhDphiAssocXEbin(obj.fhDphiAssocXEbin),
293   fhDphiAssoc2DIAA(obj.fhDphiAssoc2DIAA),
294   fhDphiAssoc2D(obj.fhDphiAssoc2D),
295   fhDphiDetaKlong(obj.fhDphiDetaKlong),
296   fhDphiDetaKlongR(obj.fhDphiDetaKlongR),
297   fhDphiDetaXe(obj.fhDphiDetaXe),
298   fhDphiDetaXeR(obj.fhDphiDetaXeR),
299   fhDphiDetaPta(obj.fhDphiDetaPta),
300   fhDphiDetaPtaR(obj.fhDphiDetaPtaR),
301   fhBgAssocKlong(obj.fhBgAssocKlong),
302   fhBgAssocKlongR(obj.fhBgAssocKlongR),
303   fhBgAssocXe(obj.fhBgAssocXe),
304   fhBgAssocXeR(obj.fhBgAssocXeR),
305   fhBgAssocPta(obj.fhBgAssocPta),
306   fhBgAssocPtaR(obj.fhBgAssocPtaR),
307   fhDphiAssocIsolTrigg(obj.fhDphiAssocIsolTrigg),
308   fhMeanPtAssoc(obj.fhMeanPtAssoc),
309   fhMeanZtAssoc(obj.fhMeanZtAssoc),
310   fhPtAssocUE(obj.fhPtAssocUE),
311   fhPtaEtaGapN(obj.fhPtaEtaGapN),
312   fhPtaRGapN(obj.fhPtaRGapN),
313   fhPtAssocUEIsolTrigg(obj.fhPtAssocUEIsolTrigg),
314   fhPtAssocN(obj.fhPtAssocN),
315   fhPtAssocF(obj.fhPtAssocF),
316   fhCosThetaStar(obj.fhCosThetaStar),
317   fhCMSrap(obj.fhCMSrap),
318   fpCMSrap(obj.fpCMSrap),
319   fhInvMass(obj.fhInvMass),
320   fhPairPtMass(obj.fhPairPtMass),
321   fhPairDPhi(obj.fhPairDPhi),
322   fhPairDpT(obj.fhPairDpT),
323   fhPairPtDphi(obj.fhPairDPhi),
324   fhPairPt(obj.fhPairPt),
325   fhDEtaNear(obj.fhDEtaNear),
326   fhDEtaNearM(obj.fhDEtaNearM),
327   fhDEtaNearXEbin(obj.fhDEtaNearXEbin),
328   fhDEtaNearMXEbin(obj.fhDEtaNearMXEbin),
329   fhDRNearPt(obj.fhDRNearPt),
330   fhDRFarPt(obj.fhDRFarPt),
331   fhDRNearPtMoon(obj.fhDRNearPtMoon),
332   fhDRFarPtMoon(obj.fhDRFarPtMoon),
333   fhDRNearPtMoonM(obj.fhDRNearPtMoonM),
334   fhDRFarPtMoonM(obj.fhDRFarPtMoonM),
335   fhDEtaFar(obj.fhDEtaFar),
336   fhIphiTrigg(obj.fhIphiTrigg),
337   fhIetaTrigg(obj.fhIetaTrigg),
338   fhIphiAssoc(obj.fhIphiAssoc),
339   fhIetaAssoc(obj.fhIetaAssoc),
340   fhFixPtBin(obj.fhFixPtBin),
341   fhTriggPtBin(obj.fhTriggPtBin),
342   fhTriggPtBinIsolTrigg(obj.fhTriggPtBinIsolTrigg),
343   fhTriggMult(obj.fhTriggMult),
344   fhAssocPtBin(obj.fhAssocPtBin),
345   fhxEN(obj.fhxEN),
346   fhxEF(obj.fhxEF),
347   fhxEFIsolTrigg(obj.fhxEFIsolTrigg),
348   fhPoutF(obj.fhPoutF),
349   fhxEPtBin(obj.fhxEPtBin),
350   fhJT(obj.fhJT),
351   fhJTBg(obj.fhJTBg),
352   fhJTBgR(obj.fhJTBgR),
353   fhJTKlong(obj.fhJTKlong),
354   fhJTKlongBg(obj.fhJTKlongBg),
355   fhJTKlongBgR(obj.fhJTKlongBgR),
356   fhJTPta(obj.fhJTPta),
357   fhJTPtaBg(obj.fhJTPtaBg),
358   fhJTPtaBgR(obj.fhJTPtaBgR),
359   fhLPpt(obj.fhLPpt),
360   fhLPpairPt(obj.fhLPpairPt),
361   fhChargedPt(obj.fhChargedPt),
362   fhChargedPtNoCorr(obj.fhChargedPtNoCorr),
363   fhChargedPtJacek(obj.fhChargedPtJacek),
364   fhChargedPtJacekEta(obj.fhChargedPtJacekEta),
365   fhChargedPtFiete(obj.fhChargedPtFiete),
366   fhVdelta2(obj.fhVdelta2),
367   fhVdelta3(obj.fhVdelta3),
368   fhVN(obj.fhVN),
369   fhTrackingEfficiency(obj.fhTrackingEfficiency),
370   fpV2(obj.fpV2),
371   fpV3(obj.fpV3),
372   fpVdeltaNorm(obj.fpVdeltaNorm),
373   fhChargedEta(obj.fhChargedEta),
374   fhLPeta(obj.fhLPeta),
375   fhAssocMult(obj.fhAssocMult),
376   fhChargedMult(obj.fhChargedMult),
377   fhChargedMultCut(obj.fhChargedMultCut),
378   fhChargedMultCent(obj.fhChargedMultCent),
379   fhXt(obj.fhXt),
380   fhXtWeighted(obj.fhXtWeighted),
381   fhXtWeightedHT(obj.fhXtWeightedHT),
382   fhPtForXt(obj.fhPtForXt),
383   fhConeActivity(obj.fhConeActivity),
384   fhConeActivityIsolated(obj.fhConeActivityIsolated),
385   fhPerpConeActivity(obj.fhPerpConeActivity),
386   fhPerpConeActivityIsolated(obj.fhPerpConeActivityIsolated),
387   fhV0AMult(obj.fhV0AMult),
388   fhZVertRaw(obj.fhZVertRaw),
389   fhZVertRawErr(obj.fhZVertRawErr),
390   fhZVert(obj.fhZVert),
391   fhCentr(obj.fhCentr),
392   fhiCentr(obj.fhiCentr),
393   fhEventPerRun(obj.fhEventPerRun),
394   fhVertexZTriggVtx(obj.fhVertexZTriggVtx),
395   fhIsolatedLPpt(obj.fhIsolatedLPpt),
396   fhBkgActivity(obj.fhBkgActivity),
397   fhDphiLPJet(obj.fhDphiLPJet),
398   fhDEtaLPJet(obj.fhDEtaLPJet),
399   fhDPtLPJet(obj.fhDPtLPJet),
400   fhLPJetPTt(obj.fhLPJetPTt),
401   fhLPJetPt(obj.fhLPJetPt),
402   fhLPJetEtaPTt(obj.fhLPJetEtaPTt),
403   fhLPJetRapidityPTt(obj.fhLPJetRapidityPTt),
404   fhLPJetMassPTt(obj.fhLPJetMassPTt),
405   fhLeadingJetWLPPTt(obj.fhLeadingJetWLPPTt),
406   fhJetPt(obj.fhJetPt),
407   fhLeadingJetPt(obj.fhLeadingJetPt),
408   fhLeadingJetWLPPt(obj.fhLeadingJetWLPPt),
409   fhJetAssymPTt(obj.fhJetAssymPTt),
410   fhJetMassPTt(obj.fhJetMassPTt),
411   fhJetUEPt(obj.fhJetUEPt),
412   fhJetDphi(obj.fhJetDphi),
413   fhJetDeta(obj.fhJetDeta),
414   fhJetMultPt(obj.fhJetMultPt),
415   fhJetRho(obj.fhJetRho),
416   fhJetRhoSigma(obj.fhJetRhoSigma),
417   fhJetPartMult(obj.fhJetPartMult),
418   fhRecoDiJetM(obj.fhRecoDiJetM),
419   fhRecoDiJetdPhi(obj.fhRecoDiJetdPhi),
420   fhRecoDiJetkT(obj.fhRecoDiJetkT),
421   fhNParton71(obj.fhNParton71),
422   fhNStringGroup(obj.fhNStringGroup),
423   fhNStringGroupFrom(obj.fhNStringGroupFrom),
424   fhNTracksInStringGroupFrom(obj.fhNTracksInStringGroupFrom),
425   fhRapidity71From(obj.fhRapidity71From),
426   fhPt71From(obj.fhPt71From),
427   fhTrackSelection(obj.fhTrackSelection),
428   fNJacek(obj.fNJacek),
429   fPttJacek(obj.fPttJacek),
430   fNEta(obj.fNEta),
431   fEta(obj.fEta),
432   fNJanFiete(obj.fNJanFiete),
433   fJanFiete(obj.fJanFiete),
434   fhEvents(obj.fhEvents),
435   fhEventTrigger(obj.fhEventTrigger),
436   fmaxEtaRange(obj.fmaxEtaRange),
437   fmaxTriggEtaRange(obj.fmaxTriggEtaRange),
438   ftriggFiducCut(obj.ftriggFiducCut),
439   fnUE(obj.fnUE),
440   fnUEfar(obj.fnUEfar),
441   fLowRange(obj.fLowRange),
442   fHighRange(obj.fHighRange)
443 {
444     // copy constructor
445     JUNUSED(obj);
446 }
447
448 //______________________________________________________________________________
449 AliJHistos& AliJHistos::operator=(const AliJHistos& obj){
450     // copy constructor
451     JUNUSED(obj);
452     return *this;
453 }
454
455 //______________________________________________________________________________
456 void AliJHistos::CreateAzimuthCorrHistos()
457 {
458   // Comment needed here!
459   
460     int    bins = 240; // 240 is divisible by 2,3,4,612*24=280    -1/3 and  0.5 and 5/3  are bin edges 
461     //double fLowRange = -1.0/3, fHighRange= 5.0/3;
462     fLowRange = -9./20.;   //lower range for dphi histos
463     fHighRange= fLowRange+2;       //upper range for dphi histos;
464     double ptbw=10/100.0;  //see hPt histo below, let's make 10 bins per 1GeV/c
465
466     fnUE=20;
467     double uEa = fCard->GetBinBorder(kAssocType, 0), uEb = fCard->GetBinBorder(kAssocType, fCard->GetNoOfBins(kAssocType));
468     double logUEbw = (log(uEb)-log(uEa))/fnUE;
469     for(int ij=0;ij<=fnUE;ij++) fUEBinsx[ij]=uEa*exp(ij*logUEbw);
470
471     fnUEfar=10;
472     logUEbw = (log(uEb)-log(uEa))/fnUEfar;
473     for(int ij=0;ij<=fnUE;ij++) fUEBinsxFar[ij]=uEa*exp(ij*logUEbw);
474
475
476     if(fCard->GetNoOfBins(kCentrType) > kMaxNoCentrBin ){
477         cout<<"ERROR: No of Centrality bins exceed max dim in AliJHistos.cxx "<<endl;
478         exit(0);
479     }
480
481     //==================================
482     //  trigger pt fhistos 
483     //==================================
484     //TODO tmp
485     double pTt1 = fPTtBin.GetMin();
486     double pTt2 = fPTtBin.GetMax();
487     double pTa1 = fPTaBin.GetMin();
488     double pTa2 = fPTaBin.GetMax();
489
490     fhTriggPtBinIsolTrigg
491         << TH1D( "hTriggPtBinIsolTrigg", "", (int)TMath::Ceil((pTt2-pTt1)/ptbw),pTt1, pTt2)
492         <<  fTypBin << fCentBin << fPTtBin  
493         << "END";
494     fhTriggMult
495         << TH1D( "hTriggMult", "",  100, -0.5, 99.5) 
496         <<  fCentBin << fPTtBin  << "END";
497     fhIphiTrigg
498         << TH1D( "fhIphiTrigg", "",  bins, -kJPi-0.1, kJPi+0.1) 
499         <<  fCentBin << fPTtBin  << "END";
500     fhIetaTrigg
501         << TH1D( "hIetaTrigg", "",  80, -fmaxEtaRange, fmaxEtaRange) 
502         <<  fCentBin << fPTtBin  << "END";// inclusive eta
503     fhTriggPtBin
504         << TH1D( "hTriggPtBin", "", (int)TMath::Ceil((pTt2-pTt1)/ptbw),pTt1, pTt2) 
505         <<  fCentBin << fVtxBin << fPTtBin  << "END";
506
507     //=====================================
508     //  associated pt fhistos with etaGaps
509     //=====================================
510
511     fhDphiAssoc
512         << TH1D( "hDphiAssoc", "",  bins, fLowRange, fHighRange) 
513         <<  fTypBin << fCentBin << fEtaGapBin << fPTtBin << fPTaBin  << "END";
514
515     fhDEtaNear
516         << TH1D( "hDEtaNear", "",  320, -2*fmaxEtaRange, 2*fmaxEtaRange) 
517         <<  fCentBin << fVtxBin << fEtaGapBin << fPTtBin << fPTaBin  << "END";
518     fhDEtaNearM
519         << TH1D( "hDEtaNearM", "",  320, -2*fmaxEtaRange, 2*fmaxEtaRange) 
520         <<  fCentBin << fVtxBin << fEtaGapBin << fPTtBin << fPTaBin  << "END";
521     //=====================================
522     //  associated pt fhistos with etaGaps XE bins
523     //=====================================
524     // xe bins
525     fhDphiAssocXEbin
526         << TH1D( "hDphiAssocXEbin", "",  bins, fLowRange, fHighRange) 
527         <<  fTypBin << fCentBin << fEtaGapBin << fPTtBin << fXEBin  << "END";
528     fTestHist
529         << TH1D( "testHist","", 5 , 0 ,5 )
530         <<fTypBin << fCentBin << fEtaGapBin << fPTtBin << fXEBin << "END";
531     for( int ityp=0;ityp<fTypBin.Size();ityp++ ){
532         for( int ic=0;ic<fCentBin.Size();ic++){
533             for( int ie=0;ie<fEtaGapBin.Size();ie++ ){
534                 for( int it=0;it<fPTtBin.Size();it++ ){
535                     for( int ix=0;ix<fXEBin.Size();ix++ ){
536                         fTestHist[ityp][ic][ie][it][ix]->SetBinContent( 1, double(ityp) );
537                         fTestHist[ityp][ic][ie][it][ix]->SetBinContent( 2, double(ic) );
538                         fTestHist[ityp][ic][ie][it][ix]->SetBinContent( 3, double(ie) );
539                         fTestHist[ityp][ic][ie][it][ix]->SetBinContent( 4, double(it) );
540                         fTestHist[ityp][ic][ie][it][ix]->SetBinContent( 5, double(ix) );
541                     }
542                 }
543             }
544         }
545     }
546     fhDEtaNearXEbin
547         << TH1D( "hDEtaNearXEbin", "",  320, -2*fmaxEtaRange, 2*fmaxEtaRange) 
548         <<  fCentBin << fVtxBin << fEtaGapBin << fPTtBin << fXEBin  << "END";
549     fhDEtaNearMXEbin
550         << TH1D( "hDEtaNearMXEbin", "",  320, -2*fmaxEtaRange, 2*fmaxEtaRange) 
551         <<  fCentBin << fVtxBin << fEtaGapBin << fPTtBin << fXEBin  << "END";
552     //=======================================
553     //  associated fpt fhistos without etaGaps
554     //=======================================
555     fhDphiAssocIsolTrigg
556         << TH1D( "hDphiAssocIsolTrigg", "",  bins, fLowRange, fHighRange) 
557         <<  fTypBin << fCentBin << fPTtBin << fPTaBin  << "END";//FK//
558     fhMeanPtAssoc
559         << TProfile( "hMeanPtAssoc", "", bins, fLowRange, fHighRange) 
560         <<  fCentBin << fPTtBin << fPTaBin  << "END";
561     fhMeanZtAssoc
562         << TProfile( "hMeanZtAssoc", "", bins, fLowRange, fHighRange) 
563         <<  fCentBin << fPTtBin << fPTaBin  << "END";
564     fhAssocPtBin
565         << TH1D( "hAssocPtBin", "", (int)TMath::Ceil((pTa2-pTa1)/ptbw), pTa1, pTa2) 
566         <<  fCentBin << fPTtBin << fPTaBin  << "END";
567     fhIphiAssoc
568         << TH1D( "fhIphiAssoc", "",  bins, -kJPi-0.1, kJPi+0.1) 
569         <<  fCentBin << fPTaBin  << "END";
570     fhIetaAssoc
571         << TH1D( "hIetaAssoc", "",  80, -fmaxEtaRange, fmaxEtaRange) 
572         <<  fCentBin << fPTaBin  << "END";
573     fhDEtaFar
574         << TH1D( "hDEtaFar", "",  120, -2*fmaxEtaRange, 2*fmaxEtaRange) 
575         <<  fTypBin << fCentBin << fPTtBin  << "END";
576
577     //==========================
578     //UE fhistos
579     //==========================
580     fhPtAssocUE
581         << TH1D( "hPtAssocUE", "",  fnUE, fUEBinsx) 
582         <<  fCentBin << fEtaGapBin << fPTtBin  << "END";
583     fhPtaEtaGapN
584         << TH1D( "hPtaEtaGapN", "",  fnUE, fUEBinsx) 
585         <<  fCentBin << fEtaGapBin << fPTtBin  << "END";
586     fhPtaRGapN
587         << TH1D( "hPtaRGapN", "",  fnUE, fUEBinsx) 
588         <<  fCentBin << fRGapBin << fPTtBin  << "END";
589     fhPtAssocUEIsolTrigg
590         << TH1D( "hPtAssocUEIsolTrigg", "", fnUE, fUEBinsx) 
591         <<  fPTtBin  << "END";//FK//
592     fhPtAssocN
593         << TH1D( "hPtAssocN", "",  fnUE, fUEBinsx) 
594         <<  fPTtBin  << "END";
595     fhPtAssocF
596         << TH1D( "hPtAssocF", "",  fnUE, fUEBinsx) 
597         <<  fPTtBin  << "END";
598   
599     //=======================
600     //jT fhistos
601     //=======================
602   
603     int nJT = 100;
604     double jtLow = 0.05, jtHigh = 20;
605   
606     double logBinsJt[101];
607     double logJt = (log(jtHigh)-log(jtLow))/nJT;
608     for(int ij=0;ij<=nJT;ij++) logBinsJt[ij]=jtLow*exp(ij*logJt);
609   
610     fhPoutF
611         << TH1D( "hPoutF", "",  300, 0, 15) 
612         <<  fTypBin << fCentBin << fPTtBin << fPTaBin  << "END";//FK//
613     //let's not compute mixed frandom background - takes a lot of time.
614     fhJTKlongBg
615         << TH1D( "hJTKlongBg", "",  nJT, logBinsJt) 
616         <<  fCentBin << fEtaGapBin << fPTtBin << fKLongBin  << "END";
617     fhDphiDetaKlong
618         << TH2D( "hDphiDetaKlong", "",  100, -2*fmaxEtaRange, 2*fmaxEtaRange, 100, -kJPi/2, kJPi/2) 
619         <<  fCentBin << fEtaGapBin << fPTtBin << fKLongBin  << "END";
620     fhBgAssocKlong
621         << TH1D( "hBgAssocKlong", "",  fnUE, fUEBinsx) 
622         <<  fCentBin << fEtaGapBin << fPTtBin << fKLongBin  << "END";
623     //let's not compute mixed frandom background - takes a lot of time.
624     fhJTKlongBgR
625         << TH1D( "hJTKlongBgR", "",  nJT, logBinsJt) 
626         <<  fCentBin << fRGapBin << fPTtBin << fKLongBin  << "END";
627     fhDphiDetaKlongR
628         << TH2D( "hDphiDetaKlongR", "",  100, -2*fmaxEtaRange, 2*fmaxEtaRange, 100, -kJPi/2, kJPi/2) 
629         <<  fCentBin << fRGapBin << fPTtBin << fKLongBin  << "END";
630     fhBgAssocKlongR
631         << TH1D( "hBgAssocKlongR", "",  fnUE, fUEBinsx) 
632         <<  fCentBin << fRGapBin << fPTtBin << fKLongBin  << "END";
633     fhJTKlong
634         << TH1D( "hJTKlong", "",  nJT, logBinsJt) 
635         <<  fTypBin << fCentBin << fPTtBin << fKLongBin  << "END";
636     // xe bins
637     fhJTBg
638         << TH1D( "hJTBg", "",  nJT, logBinsJt)
639         <<  fCentBin << fEtaGapBin << fPTtBin << fXEBin  << "END";
640     fhDphiDetaXe
641         << TH2D( "hDphiDetaXe", "",  100, -2*fmaxEtaRange, 2*fmaxEtaRange, 100, -kJPi/2, kJPi/2) 
642         <<  fCentBin << fEtaGapBin << fPTtBin << fXEBin  << "END";
643     fhBgAssocXe
644         << TH1D( "hBgAssocXe", "",  fnUE, fUEBinsx) 
645         <<  fCentBin << fEtaGapBin << fPTtBin << fXEBin  << "END";
646     fhJTBgR
647         << TH1D( "hJTBgR", "",  nJT, logBinsJt) 
648         <<  fCentBin << fRGapBin << fPTtBin << fXEBin  << "END";
649     fhDphiDetaXeR
650         << TH2D( "hDphiDetaXeR", "",  100, -2*fmaxEtaRange, 2*fmaxEtaRange, 100, -kJPi/2, kJPi/2) 
651         <<  fCentBin << fRGapBin << fPTtBin << fXEBin  << "END";
652     fhBgAssocXeR
653         << TH1D( "hBgAssocXeR", "",  fnUE, fUEBinsx) 
654         <<  fCentBin << fRGapBin << fPTtBin << fXEBin  << "END";
655     fhJT
656         << TH1D( "hJT", "",  nJT, logBinsJt) 
657         <<  fTypBin << fCentBin << fPTtBin << fXEBin  << "END";
658     fhJTPtaBg
659         << TH1D( "hJTPtaBg", "",  nJT, logBinsJt) 
660         <<  fCentBin << fEtaGapBin << fPTtBin << fPTaBin  << "END";
661     fhDphiDetaPta
662         << TH2D( "hDphiDetaPta", "",  100, -2*fmaxEtaRange, 2*fmaxEtaRange, 100, -kJPi/2, kJPi/2) 
663         <<  fCentBin << fEtaGapBin << fPTtBin << fPTaBin  << "END";
664     fhBgAssocPta
665         << TH1D( "hBgAssocPta", "",  fnUE, fUEBinsx) 
666         <<  fCentBin << fEtaGapBin << fPTtBin << fPTaBin  << "END";
667     fhJTPtaBgR
668         << TH1D( "hJTPtaBgR", "",  nJT, logBinsJt) 
669         <<  fCentBin << fRGapBin << fPTtBin << fPTaBin  << "END";
670     fhDphiDetaPtaR
671         << TH2D( "hDphiDetaPtaR", "",  100, -2*fmaxEtaRange, 2*fmaxEtaRange, 100, -kJPi/2, kJPi/2) 
672         <<  fCentBin << fRGapBin << fPTtBin << fPTaBin  << "END";
673     fhBgAssocPtaR
674         << TH1D( "hBgAssocPtaR", "",  fnUE, fUEBinsx) 
675         <<  fCentBin << fRGapBin << fPTtBin << fPTaBin  << "END";
676     fhJTPta
677         << TH1D( "hJTPta", "",  nJT, logBinsJt) 
678         <<  fTypBin << fCentBin << fPTtBin << fPTaBin  << "END";
679 }
680
681
682 void AliJHistos::CreateIAAMoons()
683 {
684     //--- IAA signal ---
685     fhDRNearPt
686         << TH1D( "hDRNearPt", "",  fnUE, fUEBinsx) 
687         <<  fTypBin << fCentBin << fVtxBin << fRGapBin << fPTtBin  << "END";
688     fhDRFarPt
689         << TH1D( "hDRFarPt", "",  fnUEfar, fUEBinsxFar) 
690         <<  fTypBin << fCentBin << fVtxBin << fRGapBin << fPTtBin  << "END";
691
692     // --- Moons ---
693     fhDRNearPtMoon
694         << TH1D( "hDRNearPtMoon", "",  fnUE, fUEBinsx) 
695         <<  fCentBin << fVtxBin << fRGapBin << fPhiGapBin << fPTtBin  << "END";
696     fhDRNearPtMoonM
697         << TH1D( "hDRNearPtMoonM", "",  fnUE, fUEBinsx) 
698         <<  fCentBin << fVtxBin << fRGapBin << fPhiGapBin << fPTtBin  << "END";
699
700     fhDRFarPtMoon
701         << TH1D( "hDRFarPtMoon", "",  fnUE, fUEBinsx) 
702         <<  fCentBin << fVtxBin << fRGapBin << fPhiGapBin << fPTtBin  << "END";
703     fhDRFarPtMoonM
704         << TH1D( "hDRFarPtMoonM", "",  fnUE, fUEBinsx) 
705         <<  fCentBin << fVtxBin << fRGapBin << fPhiGapBin << fPTtBin  << "END";
706
707     //==========================
708     // 2D fhistos 
709     //==========================
710     fhDphiAssoc2DIAA
711         << TH2D( "hDphiAssoc2DIAA", "",  100, -2*fmaxEtaRange, 2*fmaxEtaRange, 100, fLowRange, fHighRange) 
712         <<  fTypBin << fCentBin << fVtxBin << fPTtBin << fPTaBin  << "END";
713     fhDphiAssoc2D
714         << TH2D( "hDphiAssoc2D", "",  100, -2*fmaxEtaRange, 2*fmaxEtaRange, 100, fLowRange, fHighRange) 
715         <<  fRGapBin << fPhiGapBin  << "END";
716 }
717
718 void AliJHistos::CreateXEHistos(){
719     //==================================
720     //  xe slopes
721     //==================================
722     double xel=0.0, xeh=1.2;
723     int nbxE = int((xeh-xel)/0.04);
724
725     fhxEPtBin
726         << TH1D( "hxEPtBin", "",  nbxE, xel, xeh) 
727         <<  fTypBin3 << fPTtBin << fPTaBin  << "END";
728     fhxEF 
729         << TH1D( "hxEF", "", nbxE, xel, xeh)
730         << fTypBin << fPTtBin <<"END";
731     fhxEFIsolTrigg
732         << TH1D( "hxEFIsoTrigg", "", nbxE, xel, xeh)
733         << fTypBin << fPTtBin << "END";
734     fhxEN 
735         << TH1D("hxEN", "", nbxE, xel, xeh)
736         << fTypBin << fPTtBin << "END";
737
738 }
739
740 void AliJHistos::CreatePairPtCosThetaStar(){
741     // pairs
742     int    bins = 288; // 12*24    -1/3 and  0.5 and 5/3  are bin edges 
743     double lowRange = -1./3, highRange= 5./3;
744     //=================
745     //pairPT
746     //=================
747     fhPairPtDphi
748         << TH1D( "hPairPtDphi", "",  bins, lowRange, highRange) 
749         <<  fTypBin << fPTtBin << fPTaBin  << "END";
750     fhPairPt
751         << TH1D( "hPairPt", "",  210, 0, 70) 
752         <<  fTypBin << fPTtBin << fPTaBin  << "END";
753     //==================================
754     //  CosThetaStar fhistos 
755     //==================================
756     //cout<<"ippt="<<fPairPtBin<<" "<<fCard->IsLessThanUpperPairPtCut(-fPairPtBin)<<endl;
757     fhCosThetaStar
758         << TH1D( "hCosThetaStar", "",  100, 0, 1) 
759         <<  fTypBin << fPairPtBin << fMassBin  << "END";
760     fhCMSrap
761         << TH2D( "hCMSrap", "",  100, 0, 1, 50, -1, 1) 
762         <<  fPairPtBin << fMassBin  << "END";
763     fhInvMass
764         << TH1D( "hInvMass", "",  200, 0, 40) 
765         <<  fPairPtBin << "END";
766
767     fhPairPtMass
768         << TH1D( "hPairPtMass", "",  250, 0, 50) 
769         <<  fMassBin  << "END";
770     fhPairDPhi
771         << TH1D( "hPairDPhi", "",   bins, lowRange, highRange) 
772         <<  fMassBin  << "END";
773     fhPairDpT
774         << TH1D( "hPairDpT", "",  150, 0-25./150./2., 25-25./150./2.) 
775         <<  fMassBin  << "END";
776     fpCMSrap
777         << TProfile("pCMSrap","no pair pT cut",100,-1,1) 
778         << "END";
779 }
780
781 //______________________________________________________________________________
782 void AliJHistos::CreatePtCorrHistos(){
783     // pt corr histos
784     int ptbins=30;
785     double lpt=0,upt=8;
786     fhPtNear
787         << TH1D( "hPtNear", "",  ptbins, lpt, upt) 
788         <<  fTypBin << 3 << fCentBin  << "END";
789     fhPtFar
790         << TH1D( "hPtFar", "",  ptbins, lpt, upt) 
791         <<  fTypBin << 3 << fCentBin  << "END";
792 }
793
794 //______________________________________________________________________________
795 void AliJHistos::CreateRunByRunHistos(int runID, int runcounter) const {
796   // Todo
797   JUNUSED(runID);
798   JUNUSED(runcounter);
799 } //TODO
800
801
802 //______________________________________________________________________________
803 void AliJHistos::CreateEventTrackHistos(){
804   // comment needed
805     int nBINS=150;
806     double logBinsX[nBINS+1], limL=0.1, limH=100;
807     double logBW = (log(limH)-log(limL))/nBINS;
808     for(int ij=0;ij<=nBINS;ij++) logBinsX[ij]=limL*exp(ij*logBW);
809
810     fhLPpt       <<  TH1D("hLPpt","LP pt", nBINS, logBinsX ) << "END";
811     fhLPpairPt   << TH1D("hLPpairPt","LP pair pt", nBINS, logBinsX )<< "END";
812     fhChargedEta << TH1D("hChargedEta","All eta",100,-1.0,1.0)<< "END";
813     fhLPeta      << TH1D("hLPeta","LP eta",100,-1.0,1.0)<< "END";
814     fhIsolatedLPpt << TH1D("hIsolatedLPpt","Isolated LP pt", nBINS, logBinsX )<< "END";
815     fhChargedPtFiete << TH1D("hChargedPtFiete", "Jan Fiete bins", fNJanFiete, fJanFiete )<< "END";
816
817
818     fhAssocMult << TH1D("hAssocMult","Assoc  mlt",100,-0.5,99.5)<< "END";
819
820     fhChargedMult 
821         << TH1D("hChargedMult","", 300, 0., 3500.)
822         << fCentBin << "END"; 
823     fhChargedMultCut 
824         << TH1D("hChargedMultCut","",  300, 0., 3500.)
825         << fCentBin << "END"; 
826     fhZVert 
827         << TH1D("hZVert", "", 100, -30., 30.)
828         << fCentBin << "END";
829     fhChargedPt 
830         << TH1D("hChargedPt","", nBINS, logBinsX )
831         << fCentBin << "END";
832     fhChargedPtNoCorr 
833         << TH1D("hChargedPtNoCorr","", nBINS, logBinsX )
834         << fCentBin << "END";
835     fhChargedPtJacek 
836         << TH1D("hChargedPtJacek","", fNJacek, fPttJacek )
837         << fCentBin << "END";
838     fhChargedPtJacekEta
839         << TH1D("hChargedPtJacekEta","", fNJacek, fPttJacek )
840         << fCentBin << 3 << "END";
841
842     fhVdelta2 << TH1D("hVdelta2","", 100, -0.2, 5)
843         << fCentBin << "END";
844     fhVdelta3 << TH1D("hVdelta3","", 100, -0.2, 5)
845         << fCentBin << "END";
846     fhVN << TH1D("hVN","", 100, -kJPi, kJPi)
847         << fCentBin << "END";
848     fhTrackingEfficiency << TProfile("hTrackingEff","",fNJacek, fPttJacek)
849         << fCentBin << "END";
850     fhV0AMult << TH1D("hV0Mult","", 2000,0,2000 )
851         << fCentBin << "END";
852     fpV2 << TProfile("pV2", "v2 with cent", 50, 0, 90) << "END";
853     fpV3 << TProfile("pV3", "v3 with cent", 50, 0, 90) << "END";
854     fpVdeltaNorm << TProfile("pVdeltaNorm", "mult with cent", 50, 0, 90) << "END";
855     fhChargedMultCent << TH2D("hChargedMultCent ", "log(fmult) vs cent", 100, 0, 90, 100, 1, 10) << "END";
856     fhZVertRaw << TH1D("hZVertRaw","vertex 0", 120, -30., 30.) << "END";
857     fhZVertRawErr << TH1D("hZVertRawErr","vertex 0 Err", 100, 0, 0.1) << "END";
858     fhCentr << TH1D("hCentr","centrality", 101, -0.5, 100.5) << "END";
859     fhiCentr << TH1D("hiCentr","centrality",10, -0.5, 9.5) << "END";
860     fhEventPerRun << TH1D("hEventPerRun","log(eve)/run",200, 0, 30.0) << "END";
861     fhBkgActivity 
862         << TH1D("hBkgActivity", "", 200, 0, 20) 
863         << fPTtBin <<"END";
864
865     //------------------ for Abs Norm FK --------------------------------
866     double   binsVertexMult[] = {0,1,2,3,4,5,10000};
867     int   nbinsVertexMult  = sizeof(binsVertexMult)/sizeof(double)-1;
868     //double binsVertexZ[]    = {-10,-5,-2,0,2,5,10};
869     double binsVertexZ[]    = {-10,-6,-3,-2,-1.5,-1,-0.5,0,0.5,1,1.5,2,3,6,10};
870     int   nbinsVertexZ   = sizeof(binsVertexZ)/sizeof(double)-1;
871     fhVertexZTriggVtx << TH2D("hVertexZTriggVtx","Vertex counts", nbinsVertexMult, binsVertexMult, nbinsVertexZ, binsVertexZ) << "END";
872
873     // event counter
874     fhEvents        
875         << TH1D("hEvents","events passing cuts", 100, -0.5, 100-0.5 ) << "END";
876     fhEventTrigger  
877         << TH1D("hEventTrigger","Trigger count", 50, -0.5, 50.-.5 )
878         << "END";
879     fhTrackSelection
880         << TH1D("hTrackSelection","checking bit convention", 100, -0.5, 100-0.5) << "END";
881     // TODO fhEvents->SetXTitle( "0 - all, 1 - SDD selected, 2 - has vertex, 3 - good vertex, 4 - trigger + MB, 5 - trigger, 6 - BX, 7 - centrality" );
882 }
883
884 void AliJHistos::CreateJetHistos(){
885     // jet histos
886     int nBINS=200;
887     double logBinsX[nBINS+1], limL=0.1, limH=200;
888     double logBW = (log(limH)-log(limL))/nBINS;
889     for(int ij=0;ij<=nBINS;ij++) logBinsX[ij]=limL*exp(ij*logBW);
890
891     fhLPJetPt
892         << TH1D( "hLPJetPt", "",   nBINS, logBinsX) 
893         <<  fCentBin  << "END";
894     fhJetPt
895         << TH1D( "hJetPt", "",   nBINS, logBinsX) 
896         <<  fCentBin  << "END";
897     fhLeadingJetPt
898         << TH1D( "hLeadingJetPt", "",   nBINS, logBinsX) 
899         <<  fCentBin  << "END";
900     fhLeadingJetWLPPt
901         << TH1D( "hLeadingJetWLPPt", "",   nBINS, logBinsX) 
902         <<  fCentBin  << "END";
903     fhLPJetPTt
904         << TH1D( "hLPJetPTt", "",   nBINS, logBinsX) 
905         <<  fCentBin << fPTtBin  << "END";
906     fhLeadingJetWLPPTt
907         << TH1D( "hLeadingJetWLPPTt", "",   nBINS, logBinsX) 
908         <<  fCentBin << fPTtBin  << "END";
909     fhLPJetEtaPTt
910         << TH1D( "hLPJetEtaPTt", "",  100, -1, 1) 
911         <<  fCentBin << fPTtBin  << "END";
912     fhLPJetRapidityPTt
913         << TH1D( "hLPJetRapidityPTt", "",  100, -1, 1) 
914         <<  fCentBin << fPTtBin  << "END";
915     fhLPJetMassPTt
916         << TH1D( "hLPJetMassPTt", "",   nBINS, logBinsX) 
917         <<  fCentBin << fPTtBin  << "END";
918     fhDphiLPJet
919         << TH1D( "hDphiLPJet", "",  160, -kJPi/2., kJPi/2.) 
920         <<  fCentBin << fPTtBin  << "END";
921     fhDEtaLPJet
922         << TH1D( "hDEtaLPJet", "",   240, -1.2, 1.2) 
923         <<  fCentBin << fPTtBin  << "END";
924     // LP jet vs Leading Jet
925     fhDPtLPJet
926         << TH1D( "hDPtLPJet", "",  100, 0, 10.) 
927         <<  fCentBin << fPTtBin  << "END";
928     //==================================
929     fhJetDphi << TH1D( "hJetDphi", "#Delta#phi", 100,-TMath::Pi(), TMath::Pi())
930         << fTypBin << fPTtBin <<"END";
931     fhJetDeta << TH1D("hJetDeta","#Delta#eta ",100,-1, 1)
932         << fTypBin << fPTtBin <<"END";
933     fhJetMultPt << TH1D("hJetMultPt","Jet Multiplicity ",100,0-0.5, 100-0.5)
934         << fPTtBin <<"END";
935     fhJetRho << TH1D("hJetRho","#rho",200,0, 50)
936         << fPTtBin <<"END";
937     fhJetRhoSigma << TH1D("hJetRhoSigma","#sigma",200,0, 50)
938         << fPTtBin <<"END";
939     // How many particles in a jet
940     fhJetPartMult << TH1D("hJetPartMult","Number of consituents",100, 0-0.5, 100-0.5)
941         << fPTtBin <<"END";
942     fhRecoDiJetM
943         << TH1D("hRecoDiJetM", "Invariant Mass", 201,-0.5, 200 ) 
944         << "END";
945     fhJetUEPt
946         << TH1D("hJetUEPt","UE particles p_{T} by Jet substract",nBINS,logBinsX) 
947         << "END";
948     // pytfPTaBin
949     fhNParton71
950         << TH1D("hNParton71", "hNParton71", 100, -0.5, 100-0.5) 
951         <<"END";
952     fhNStringGroup
953         << TH1D("hNStringGroup", "hNStringGroup", 100, -0.5, 100-0.5) 
954         <<"END";
955     fhNStringGroupFrom << TH1D("hNStringGroupFrom", "hNStringGroupFrom", 100, -0.5, 100-0.5) << 2 <<"END";
956     fhNTracksInStringGroupFrom << TH1D("hNTracksInStringGroupFrom", "hNTracksInStringGroupFrom", 100, -0.5, 100-0.5) << 2 << "END";
957     fhRapidity71From << TH1D("hRapidity71From", "hRapidity71From", 100, -8, 8 ) << 2 << "END";
958     fhPt71From
959         << TH1D("hPt71From", "hPt71From", 1000, 0, 100) 
960         << 2 << "END";
961
962 }
963
964 //______________________________________________________________________________
965 void AliJHistos::CreateXtHistos() {
966
967     // TODO MakeDirectory("xT");
968     // Esko
969     TH1::SetDefaultSumw2(kTRUE);
970     cout << "GetDefaultSumw2() = " << TH1::GetDefaultSumw2() << endl;
971
972     // xT binning
973     int nBinsXt=200;
974     double logBinsXt[nBinsXt+1];
975     double xTLimL = 1e-5, xTLimH = 1.0, xTlogBW = (log(xTLimH)-log(xTLimL))/nBinsXt;
976     for(int ij=0;ij<=nBinsXt;ij++) logBinsXt[ij]=xTLimL*exp(ij*xTlogBW);
977
978
979     // pT binning
980     int nBinsPt=200;
981     double logBinsPt[nBinsPt+1];
982     double pTLimL=0.1, pTLimH=200 , pTlogBW = (log(pTLimH)-log(pTLimL))/nBinsPt;
983     for(int ij=0;ij<=nBinsPt;ij++) logBinsPt[ij]=pTLimL*exp(ij*pTlogBW);
984
985     fhConeActivity << TProfile("hActivity", "Mean activity inside cone", nBinsPt, logBinsPt );
986     fhPerpConeActivity << TProfile("hPerpActivity", "Mean activity inside perpendicular cone", nBinsPt, logBinsPt );
987     fhConeActivityIsolated << TProfile("hActivityIsolated", "Mean pion activity inside cone isolated", nBinsPt, logBinsPt );
988
989     fhPerpConeActivityIsolated << TProfile("hPerpActivityIsolated", "Mean activity inside perpendicular cone", nBinsPt, logBinsPt );
990     fhPtForXt 
991         << TH1D("hPtForXt","", fNJacek, fPttJacek )
992         << 3 << fCentBin <<"END";
993
994     fhXt 
995         << TH1D("hXt", "Charged xT", nBinsXt, logBinsXt )
996         << 3 << fCentBin <<"END";
997
998     fhXtWeighted 
999         << TH1D("hXtWeighted", "Charged xT", nBinsXt, logBinsXt )
1000         << 3 << fCentBin <<"END";
1001
1002     fhXtWeightedHT 
1003         << TH1D("hXtWeightedHT", "", nBinsXt, logBinsXt )
1004         << 3 << fCentBin <<"END";
1005 }
1006
1007 //______________________________________________________________________________
1008 //void AliJHistos::ReadInclusiveHistos(TFile *inFile){
1009 void AliJHistos::ReadInclusiveHistos(const char *inclusFileName){
1010     // read inclusive histos
1011     TFile *inclusFile = new TFile(inclusFileName, "READ");
1012
1013     //inFile->ls();
1014     //cout<<((TH1D*) inclusFile->Get(Form("hIetaTrigg%02d%02d", 0, 0)))->GetEntries() <<endl; 
1015     //abort();
1016
1017     for (int hic = 0;hic < fCard->GetNoOfBins(kCentrType);hic++) {
1018         for (int hit = 0; hit < fCard->GetNoOfBins(kTriggType);hit++){
1019             fhIetaTriggFromFile[hic][hit] = (TH1D*) inclusFile->Get(Form("hIetaTrigg%02d%02d", hic, hit));//FK//mix2 
1020             //fhistoList->Add(fhIetaTriggFromFile[hic][hit]);
1021             fhIphiTriggFromFile[hic][hit] = (TH1D*) inclusFile->Get(Form("hIphiTrigg%02d%02d", hic, hit));//FK//mix2 
1022             //fhistoList->Add(fhIphiTriggFromFile[hic][hit]);
1023             cout<<"c=" << hic <<" tr="<< hit <<" "<<fhIetaTriggFromFile[hic][hit]<<flush;
1024             cout<<" entries="<<fhIetaTriggFromFile[hic][hit]->GetEntries() << endl; 
1025         }
1026     }
1027
1028     for (int hic = 0;hic < fCard->GetNoOfBins(kCentrType);hic++) {
1029         for (int hia = 0; hia < fCard->GetNoOfBins(kAssocType); hia++){
1030             fhIetaAssocFromFile[hic][hia] = (TH1D*) inclusFile->Get(Form("hIetaAssoc%02d%02d", hic, hia));//FK//mix2
1031             //fhistoList->Add(fhIetaAssocFromFile[hic][hia]);
1032             fhIphiAssocFromFile[hic][hia] = (TH1D*) inclusFile->Get(Form("hIphiAssoc%02d%02d", hic, hia));//FK//mix2
1033             //fhistoList->Add(fhIphiAssocFromFile[hic][hia]);
1034             cout<<"c=" << hic <<" as="<< hia <<" entries="<< fhIetaAssocFromFile[hic][hia]->GetEntries() <<endl; 
1035         }
1036     }
1037
1038     int numCent = fCard->GetNoOfBins(kCentrType);
1039     int numPtt  = fCard->GetNoOfBins(kTriggType);
1040     int numPta  = fCard->GetNoOfBins(kAssocType);
1041     int numEtaGaps = fCard->GetNoOfBins(kEtaGapType);
1042     int numZvtx = fCard->GetNoOfBins(kZVertType);
1043
1044     //------------ R e a d   mixed  D a t a ------------    
1045     const int zFirstBin = 0 ;
1046     const int etaGapFirstBin = 0 ;
1047     for (int hic = 0;hic < numCent; hic++) {
1048         for (int hit = 0; hit < numPtt;hit++){
1049             for (int hia = 0; hia < numPta; hia++){
1050                 fhDEtaNearMixFromFile[hic][hit][hia]=  (TH1D*) inclusFile->Get(Form("hDEtaNear/hDEtaNear%02d%02d%02d%02d%02d%02d", 1, hic, zFirstBin, etaGapFirstBin, hit, hia));
1051                 for (int iEtaGap=0; iEtaGap < numEtaGaps; iEtaGap++){//fdphi slices 
1052                     for (int hiz = 0; hiz < numZvtx; hiz++) {
1053                         if( iEtaGap==etaGapFirstBin && hiz==zFirstBin ) continue;
1054                         TH1D *hid = (TH1D*) inclusFile->Get(Form("hDEtaNear/hDEtaNear%02d%02d%02d%02d%02d%02d", 1, hic, hiz, iEtaGap, hit, hia));
1055                         fhDEtaNearMixFromFile[hic][hit][hia]->Add(hid);
1056                     }
1057                 }
1058                 //normalize to traingle
1059                 double counts  = fhDEtaNearMixFromFile[hic][hit][hia]->Integral();
1060                 double bw      = fhDEtaNearMixFromFile[hic][hit][hia]->GetBinWidth(1);
1061                 int rebin = 4;
1062                 if(counts<5000) rebin=8;
1063                 if(counts<3000) rebin=10;
1064                 if(counts<1000) rebin=16;
1065                 fhDEtaNearMixFromFile[hic][hit][hia]->Rebin(rebin);
1066                 if(counts>0)  fhDEtaNearMixFromFile[hic][hit][hia]->Scale(2.*fmaxEtaRange/counts/bw/rebin);//triangle  f(0)=1, f(1.6)=0
1067                 //if(counts>0)  fhDEtaNearMixFromFile[hic][hit][hia]->Scale(2.*fmaxEtaRange/counts/bw);
1068                 //cout<<"c=" << hic <<" as="<< hia <<" entries="<< fhDEtaNearMixFromFile[hic][hit][hia]->GetEntries() <<endl; 
1069
1070             }   
1071         }   
1072     }   
1073
1074
1075     //for (int hic = 0;hic < fCard->GetNoOfBins(kCentrType);hic++) {
1076     //   for (int hit = 0; hit < fCard->GetNoOfBins(kTriggType);hit++){
1077     //      for (int hia = 0; hia < fCard->GetNoOfBins(kAssocType); hia++){
1078     //         hDphiAssocMixSpectraFile[hic][hit][hia]= (TH1D*) inclusFile->Get(Form("xhDphiAssoc%02dC%02dE00T%02dA%02d",1, hic, hit, hia));//FK//mix2
1079     //      }
1080     //   }
1081     //}
1082 }