]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/Correlations/JCORRAN/AliJHistos.cxx
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[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 #include <TGrid.h>
24 #include <TPRegexp.h>
25
26 //______________________________________________________________________________
27 AliJHistos::AliJHistos(AliJCard* cardP) :
28   fCard(cardP),
29   fHMG(NULL),
30   fCentBin(),
31   fVtxBin(),
32   fPTtBin(),
33   fPTaBin(),
34   fXEBin(),
35   fKLongBin(),
36   fRGapBin(),
37   fEtaGapBin(),
38   fPhiGapBin(),
39   fMassBin(),
40   fTypBin(),
41   fTypBin3(),
42   fPairPtBin(),
43   fhMixStat(),
44   fTestHist(),
45   fhPtNear(),
46   fhPtFar(),
47   fhPhi(),
48   fhDphiAssoc(),
49   fhDphiAssocXEbin(),
50   fhDphiAssoc2DIAA(),
51   fhDphiAssoc2D(),
52   fhDphiDetaKlong(),
53   fhDphiDetaKlongR(),
54   fhDphiDetaXe(),
55   fhDphiDetaXeR(),
56   fhDphiDetaPta(),
57   fhDphiDetaPtaR(),
58   fhBgAssocKlong(),
59   fhBgAssocKlongR(),
60   fhBgAssocXe(),
61   fhBgAssocXeR(),
62   fhBgAssocPta(),
63   fhBgAssocPtaR(),
64   fhInvariantMassXe(),
65   fhInvariantMassKlong(),
66   fhInvariantMassPta(),
67   fhInvariantMassXeLikeSign(),
68   fhInvariantMassKlongLikeSign(),
69   fhInvariantMassPtaLikeSign(),
70   fhInvariantMassXeUnlikeSign(),
71   fhInvariantMassKlongUnlikeSign(),
72   fhInvariantMassPtaUnlikeSign(),
73   fhDphiAssocIsolTrigg(),
74   fhMeanPtAssoc(),
75   fhMeanZtAssoc(),
76   fhPtAssocUE(),
77   fhPtaEtaGapN(),
78   fhPtaRGapN(),
79   fhPtAssocUEIsolTrigg(),
80   fhPtAssocN(),
81   fhPtAssocF(),
82   fhCosThetaStar(),
83   fhCMSrap(),
84   fpCMSrap(),
85   fhInvMass(),
86   fhPairPtMass(),
87   fhPairDPhi(),
88   fhPairDpT(),
89   fhPairPtDphi(),
90   fhPairPt(),
91   fhDEtaNear(),
92   fhDEtaNearM(),
93   fhDEtaNearXEbin(),
94   fhDEtaNearMXEbin(),
95   fhDRNearPt(),
96   fhDRFarPt(),
97   fhDRNearPtMoon(),
98   fhDRFarPtMoon(),
99   fhDRNearPtMoonM(),
100   fhDRFarPtMoonM(),
101   fhDEtaFar(),
102   fhIphiTrigg(),
103   fhIetaTrigg(),
104   fhIphiAssoc(),
105   fhIetaAssoc(),
106   fhFixPtBin(),
107   fhTriggPtBin(),
108   fhTriggPtBinIsolTrigg(),
109   fhTriggMult(),
110   fhAssocPtBin(),
111   fhxEN(),
112   fhxEF(),
113   fhxEFIsolTrigg(),
114   fhPoutF(),
115   fhxEPtBin(),
116   fhJT(),
117   fhJTBg(),
118   fhJTBgR(),
119   fhJTLikeSign(),
120   fhJTBgLikeSign(),
121   fhJTBgRLikeSign(),
122   fhJTUnlikeSign(),
123   fhJTBgUnlikeSign(),
124   fhJTBgRUnlikeSign(),
125   fhJTKlong(),
126   fhJTKlongBg(),
127   fhJTKlongBgR(),
128   fhJTKlongLikeSign(),
129   fhJTKlongBgLikeSign(),
130   fhJTKlongBgRLikeSign(),
131   fhJTKlongUnlikeSign(),
132   fhJTKlongBgUnlikeSign(),
133   fhJTKlongBgRUnlikeSign(),
134   fhJTPta(),
135   fhJTPtaBg(),
136   fhJTPtaBgR(),
137   fhJTPtaLikeSign(),
138   fhJTPtaBgLikeSign(),
139   fhJTPtaBgRLikeSign(),
140   fhJTPtaUnlikeSign(),
141   fhJTPtaBgUnlikeSign(),
142   fhJTPtaBgRUnlikeSign(),
143   fHmgInclusive(NULL),
144   fhIetaTriggFromFile(),
145   fhIetaAssocFromFile(),
146   fhIphiTriggFromFile(),
147   fhIphiAssocFromFile(),
148   fhDphiAssocMixFromFile(),
149   fhLPpt(),
150   fhLPpairPt(),
151   fhChargedPt(),
152   fhChargedPtNoCorr(),
153   fhChargedPtJacek(),
154   fhChargedPtJacekEta(),
155   fhChargedPtFiete(),
156   fhVdelta2(),
157   fhVdelta3(),
158   fhVN(),
159   fhTrackingEfficiency(),
160   fpV2(),
161   fpV3(),
162   fpVdeltaNorm(),
163   fhChargedEta(),
164   fhLPeta(),
165   fhAssocMult(),
166   fhChargedMult(),
167   fhChargedMultCut(),
168   fhChargedMultCent(),
169   fhXt(),
170   fhXtWeighted(),
171   fhXtWeightedHT(),
172   fhPtForXt(),
173   fhConeActivity(),
174   fhConeActivityIsolated(),
175   fhPerpConeActivity(),
176   fhPerpConeActivityIsolated(),
177   fhV0AMult(),
178   fhZVertRaw(),
179   fhZVertRawErr(),
180   fhZVert(),
181   fhCentr(),
182   fhiCentr(),
183   fhEventPerRun(),
184   fhVertexZTriggVtx(),
185   fhIsolatedLPpt(),
186   fhBkgActivity(),
187   fhDphiLPJet(),
188   fhDEtaLPJet(),
189   fhDPtLPJet(),
190   fhLPJetPTt(),
191   fhLPJetPt(),
192   fhLPJetEtaPTt(),
193   fhLPJetRapidityPTt(),
194   fhLPJetMassPTt(),
195   fhLeadingJetWLPPTt(),
196   fhJetPt(),
197   fhLeadingJetPt(),
198   fhLeadingJetWLPPt(),
199   fhJetAssymPTt(),
200   fhJetMassPTt(),
201   fhJetUEPt(),
202   fhJetDphi(),
203   fhJetDeta(),
204   fhJetMultPt(),
205   fhJetRho(),
206   fhJetRhoSigma(),
207   fhJetPartMult(),
208   fhRecoDiJetM(),
209   fhRecoDiJetdPhi(),
210   fhRecoDiJetkT(),
211   fhNParton71(),
212   fhNStringGroup(),
213   fhNStringGroupFrom(),
214   fhNTracksInStringGroupFrom(),
215   fhRapidity71From(),
216   fhPt71From(),
217   fhTrackSelection(),
218   fNJacek(0),
219   fPttJacek(0),
220   fNEta(0),
221   fEta(0),
222   fNJanFiete(0),
223   fJanFiete(0),
224   fhEvents(),
225   fhEventTrigger(),
226   fmaxEtaRange(0),
227   fmaxTriggEtaRange(0),
228   ftriggFiducCut(0),
229   fnUE(0),
230   fnUEfar(0),
231   fLowRange(0),
232   fHighRange(0)
233 {   // constructor
234
235     fmaxEtaRange = fCard->Get("EtaRange");
236     ftriggFiducCut =  fCard->Get("TriggerFiducialEtaCut"); //FK// Fiduc cut 
237     fmaxTriggEtaRange =  fmaxEtaRange - ftriggFiducCut; //FK// Trigger range
238
239     fHMG = new AliJHistManager( "HistManager");
240     //for (int hiklong = 0; hiklong < fCard->GetNoOfBins(kLongType); hiklong++)
241     //kRGapType kEtaGapType
242     fCentBin   .Set("Cent",   "C", "Cend:%2.0f-%2.0f%%" ).SetBin( fCard->GetVector("CentBinBorders"));
243     fVtxBin    .Set("Vtx",    "V", "Vtx:%2.0f-%2.0f" ).SetBin(fCard->GetVector("zVertBins"));
244     fPTtBin    .Set("PTt",    "T", "%.2f<p_{Tt}<%.2f").SetBin(fCard->GetVector("TriggPtBorders"));
245     fPTaBin    .Set("PTa",    "A", "%.2f<p_{Ta}<%.2f").SetBin(fCard->GetVector("AssocPtBorders"));
246     fXEBin     .Set("XE",     "X", "%.1f<x_{E}<%.1f" ).SetBin(fCard->GetVector("xEBorders"));
247     fKLongBin  .Set("KLong", "L",  "%.1f<k_{#parallel}<%.1f").SetBin(fCard->GetVector("KlongBorders"));
248     fRGapBin   .Set("RGap",  "R",  "%.1f<R_{gap}<%.1f").SetBin(fCard->GetVector("RGapThresholds"));
249     fEtaGapBin .Set("EtaGap", "E", "%.1f<#eta_{gap}<%.1f").SetBin(fCard->GetVector("EtaGapThresholds"));
250     fPhiGapBin .Set("PhiGap", "P", "%.1f<#phi_{gap}<%.1f" ).SetBin(fCard->GetVector("EtaGapThresholds"));
251     fMassBin   .Set("Mass",   "M", "%.1f<M_{jj}<%.1f").SetBin(fCard->GetVector("PairInvariantMassBins"));
252     fTypBin    .Set("Type",   "D", "", AliJBin::kSingle ).SetBin( "0 1" );
253     fTypBin3    .Set("Type3",   "D", "", AliJBin::kSingle ).SetBin( "0 1 2 3" );
254     //card->IsLessThanUpperPairPtCut(-ipairpt)
255     fPairPtBin .Set("PairPt", "", AliJBin::kSingle ).SetBin( fCard->GetN("UpperPairPtCut") );
256
257     const int nJacek =  73 ;
258     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,
259       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,
260       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};
261   
262     //const int nJacek =  59 ;
263     //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.,
264     //    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,
265     //    11., 12., 13., 14., 15., 16., 18., 20, 22, 24, 26., 28., 30.};
266   
267     fNJacek = nJacek;  // Number of bins
268     fPttJacek = new double[fNJacek+1];
269     for(int i = 0; i <= fNJacek; i++){
270       fPttJacek[i] = pttJacek[i];
271     }
272   
273     const int nEta = 3;
274     double eta[nEta+1] = {-0.8,-0.2,0.3,0.8};// eta bins
275   
276     fNEta = nEta;  // Number of bins
277     fEta = new double[fNEta+1];
278     for(int i = 0; i <= fNEta; i++){
279       fEta[i] = eta[i];
280     }
281   
282     const int nJanFiete=200;
283     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,
284       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,
285       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,
286       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,
287       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,
288       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,
289       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,
290       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,
291       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};
292
293     fNJanFiete = nJanFiete;  // Number of bins
294     fJanFiete = new double[fNJanFiete+1];
295     for(int i = 0; i <= fNJanFiete; i++){
296       fJanFiete[i] = janFiete[i];
297     }
298   
299     //fhtyp[1] = "Real";
300     //fhtyp[2] = "Mixed";
301     //fhtyp[3] = "Rap. Gap";
302 }
303
304 //______________________________________________________________________________
305 AliJHistos::AliJHistos(const AliJHistos& obj) : 
306   fCard(obj.fCard),
307   fHMG(obj.fHMG),
308   fCentBin(obj.fCentBin),
309   fVtxBin(obj.fVtxBin),
310   fPTtBin(obj.fPTtBin),
311   fPTaBin(obj.fPTaBin),
312   fXEBin(obj.fXEBin),
313   fKLongBin(obj.fKLongBin),
314   fRGapBin(obj.fRGapBin),
315   fEtaGapBin(obj.fEtaGapBin),
316   fPhiGapBin(obj.fPhiGapBin),
317   fMassBin(obj.fMassBin),
318   fTypBin(obj.fTypBin),
319   fTypBin3(obj.fTypBin3),
320   fPairPtBin(obj.fPairPtBin),
321   fhMixStat(obj.fhMixStat),
322   fTestHist(obj.fTestHist),
323   fhPtNear(obj.fhPtNear),
324   fhPtFar(obj.fhPtFar),
325   fhPhi(obj.fhPhi),
326   fhDphiAssoc(obj.fhDphiAssoc),
327   fhDphiAssocXEbin(obj.fhDphiAssocXEbin),
328   fhDphiAssoc2DIAA(obj.fhDphiAssoc2DIAA),
329   fhDphiAssoc2D(obj.fhDphiAssoc2D),
330   fhDphiDetaKlong(obj.fhDphiDetaKlong),
331   fhDphiDetaKlongR(obj.fhDphiDetaKlongR),
332   fhDphiDetaXe(obj.fhDphiDetaXe),
333   fhDphiDetaXeR(obj.fhDphiDetaXeR),
334   fhDphiDetaPta(obj.fhDphiDetaPta),
335   fhDphiDetaPtaR(obj.fhDphiDetaPtaR),
336   fhBgAssocKlong(obj.fhBgAssocKlong),
337   fhBgAssocKlongR(obj.fhBgAssocKlongR),
338   fhBgAssocXe(obj.fhBgAssocXe),
339   fhBgAssocXeR(obj.fhBgAssocXeR),
340   fhBgAssocPta(obj.fhBgAssocPta),
341   fhBgAssocPtaR(obj.fhBgAssocPtaR),
342   fhInvariantMassXe(obj.fhInvariantMassXe),
343   fhInvariantMassKlong(obj.fhInvariantMassKlong),
344   fhInvariantMassPta(obj.fhInvariantMassPta),
345   fhInvariantMassXeLikeSign(obj.fhInvariantMassXeLikeSign),
346   fhInvariantMassKlongLikeSign(obj.fhInvariantMassKlongLikeSign),
347   fhInvariantMassPtaLikeSign(obj.fhInvariantMassPtaLikeSign),
348   fhInvariantMassXeUnlikeSign(obj.fhInvariantMassXeUnlikeSign),
349   fhInvariantMassKlongUnlikeSign(obj.fhInvariantMassKlongUnlikeSign),
350   fhInvariantMassPtaUnlikeSign(obj.fhInvariantMassPtaUnlikeSign),
351   fhDphiAssocIsolTrigg(obj.fhDphiAssocIsolTrigg),
352   fhMeanPtAssoc(obj.fhMeanPtAssoc),
353   fhMeanZtAssoc(obj.fhMeanZtAssoc),
354   fhPtAssocUE(obj.fhPtAssocUE),
355   fhPtaEtaGapN(obj.fhPtaEtaGapN),
356   fhPtaRGapN(obj.fhPtaRGapN),
357   fhPtAssocUEIsolTrigg(obj.fhPtAssocUEIsolTrigg),
358   fhPtAssocN(obj.fhPtAssocN),
359   fhPtAssocF(obj.fhPtAssocF),
360   fhCosThetaStar(obj.fhCosThetaStar),
361   fhCMSrap(obj.fhCMSrap),
362   fpCMSrap(obj.fpCMSrap),
363   fhInvMass(obj.fhInvMass),
364   fhPairPtMass(obj.fhPairPtMass),
365   fhPairDPhi(obj.fhPairDPhi),
366   fhPairDpT(obj.fhPairDpT),
367   fhPairPtDphi(obj.fhPairDPhi),
368   fhPairPt(obj.fhPairPt),
369   fhDEtaNear(obj.fhDEtaNear),
370   fhDEtaNearM(obj.fhDEtaNearM),
371   fhDEtaNearXEbin(obj.fhDEtaNearXEbin),
372   fhDEtaNearMXEbin(obj.fhDEtaNearMXEbin),
373   fhDRNearPt(obj.fhDRNearPt),
374   fhDRFarPt(obj.fhDRFarPt),
375   fhDRNearPtMoon(obj.fhDRNearPtMoon),
376   fhDRFarPtMoon(obj.fhDRFarPtMoon),
377   fhDRNearPtMoonM(obj.fhDRNearPtMoonM),
378   fhDRFarPtMoonM(obj.fhDRFarPtMoonM),
379   fhDEtaFar(obj.fhDEtaFar),
380   fhIphiTrigg(obj.fhIphiTrigg),
381   fhIetaTrigg(obj.fhIetaTrigg),
382   fhIphiAssoc(obj.fhIphiAssoc),
383   fhIetaAssoc(obj.fhIetaAssoc),
384   fhFixPtBin(obj.fhFixPtBin),
385   fhTriggPtBin(obj.fhTriggPtBin),
386   fhTriggPtBinIsolTrigg(obj.fhTriggPtBinIsolTrigg),
387   fhTriggMult(obj.fhTriggMult),
388   fhAssocPtBin(obj.fhAssocPtBin),
389   fhxEN(obj.fhxEN),
390   fhxEF(obj.fhxEF),
391   fhxEFIsolTrigg(obj.fhxEFIsolTrigg),
392   fhPoutF(obj.fhPoutF),
393   fhxEPtBin(obj.fhxEPtBin),
394   fhJT(obj.fhJT),
395   fhJTBg(obj.fhJTBg),
396   fhJTBgR(obj.fhJTBgR),
397   fhJTLikeSign(obj.fhJTLikeSign),
398   fhJTBgLikeSign(obj.fhJTBgLikeSign),
399   fhJTBgRLikeSign(obj.fhJTBgRLikeSign),
400   fhJTUnlikeSign(obj.fhJTUnlikeSign),
401   fhJTBgUnlikeSign(obj.fhJTBgUnlikeSign),
402   fhJTBgRUnlikeSign(obj.fhJTBgRUnlikeSign),
403   fhJTKlong(obj.fhJTKlong),
404   fhJTKlongBg(obj.fhJTKlongBg),
405   fhJTKlongBgR(obj.fhJTKlongBgR),
406   fhJTKlongLikeSign(obj.fhJTKlongLikeSign),
407   fhJTKlongBgLikeSign(obj.fhJTKlongBgLikeSign),
408   fhJTKlongBgRLikeSign(obj.fhJTKlongBgRLikeSign),
409   fhJTKlongUnlikeSign(obj.fhJTKlongUnlikeSign),
410   fhJTKlongBgUnlikeSign(obj.fhJTKlongBgUnlikeSign),
411   fhJTKlongBgRUnlikeSign(obj.fhJTKlongBgRUnlikeSign),
412   fhJTPta(obj.fhJTPta),
413   fhJTPtaBg(obj.fhJTPtaBg),
414   fhJTPtaBgR(obj.fhJTPtaBgR),
415   fhJTPtaLikeSign(obj.fhJTPtaLikeSign),
416   fhJTPtaBgLikeSign(obj.fhJTPtaBgLikeSign),
417   fhJTPtaBgRLikeSign(obj.fhJTPtaBgRLikeSign),
418   fhJTPtaUnlikeSign(obj.fhJTPtaUnlikeSign),
419   fhJTPtaBgUnlikeSign(obj.fhJTPtaBgUnlikeSign),
420   fhJTPtaBgRUnlikeSign(obj.fhJTPtaBgRUnlikeSign),
421   fHmgInclusive(obj.fHmgInclusive),
422   fhIetaTriggFromFile(),
423   fhIetaAssocFromFile(),
424   fhIphiTriggFromFile(),
425   fhIphiAssocFromFile(),
426   fhDphiAssocMixFromFile(),
427   fhLPpt(obj.fhLPpt),
428   fhLPpairPt(obj.fhLPpairPt),
429   fhChargedPt(obj.fhChargedPt),
430   fhChargedPtNoCorr(obj.fhChargedPtNoCorr),
431   fhChargedPtJacek(obj.fhChargedPtJacek),
432   fhChargedPtJacekEta(obj.fhChargedPtJacekEta),
433   fhChargedPtFiete(obj.fhChargedPtFiete),
434   fhVdelta2(obj.fhVdelta2),
435   fhVdelta3(obj.fhVdelta3),
436   fhVN(obj.fhVN),
437   fhTrackingEfficiency(obj.fhTrackingEfficiency),
438   fpV2(obj.fpV2),
439   fpV3(obj.fpV3),
440   fpVdeltaNorm(obj.fpVdeltaNorm),
441   fhChargedEta(obj.fhChargedEta),
442   fhLPeta(obj.fhLPeta),
443   fhAssocMult(obj.fhAssocMult),
444   fhChargedMult(obj.fhChargedMult),
445   fhChargedMultCut(obj.fhChargedMultCut),
446   fhChargedMultCent(obj.fhChargedMultCent),
447   fhXt(obj.fhXt),
448   fhXtWeighted(obj.fhXtWeighted),
449   fhXtWeightedHT(obj.fhXtWeightedHT),
450   fhPtForXt(obj.fhPtForXt),
451   fhConeActivity(obj.fhConeActivity),
452   fhConeActivityIsolated(obj.fhConeActivityIsolated),
453   fhPerpConeActivity(obj.fhPerpConeActivity),
454   fhPerpConeActivityIsolated(obj.fhPerpConeActivityIsolated),
455   fhV0AMult(obj.fhV0AMult),
456   fhZVertRaw(obj.fhZVertRaw),
457   fhZVertRawErr(obj.fhZVertRawErr),
458   fhZVert(obj.fhZVert),
459   fhCentr(obj.fhCentr),
460   fhiCentr(obj.fhiCentr),
461   fhEventPerRun(obj.fhEventPerRun),
462   fhVertexZTriggVtx(obj.fhVertexZTriggVtx),
463   fhIsolatedLPpt(obj.fhIsolatedLPpt),
464   fhBkgActivity(obj.fhBkgActivity),
465   fhDphiLPJet(obj.fhDphiLPJet),
466   fhDEtaLPJet(obj.fhDEtaLPJet),
467   fhDPtLPJet(obj.fhDPtLPJet),
468   fhLPJetPTt(obj.fhLPJetPTt),
469   fhLPJetPt(obj.fhLPJetPt),
470   fhLPJetEtaPTt(obj.fhLPJetEtaPTt),
471   fhLPJetRapidityPTt(obj.fhLPJetRapidityPTt),
472   fhLPJetMassPTt(obj.fhLPJetMassPTt),
473   fhLeadingJetWLPPTt(obj.fhLeadingJetWLPPTt),
474   fhJetPt(obj.fhJetPt),
475   fhLeadingJetPt(obj.fhLeadingJetPt),
476   fhLeadingJetWLPPt(obj.fhLeadingJetWLPPt),
477   fhJetAssymPTt(obj.fhJetAssymPTt),
478   fhJetMassPTt(obj.fhJetMassPTt),
479   fhJetUEPt(obj.fhJetUEPt),
480   fhJetDphi(obj.fhJetDphi),
481   fhJetDeta(obj.fhJetDeta),
482   fhJetMultPt(obj.fhJetMultPt),
483   fhJetRho(obj.fhJetRho),
484   fhJetRhoSigma(obj.fhJetRhoSigma),
485   fhJetPartMult(obj.fhJetPartMult),
486   fhRecoDiJetM(obj.fhRecoDiJetM),
487   fhRecoDiJetdPhi(obj.fhRecoDiJetdPhi),
488   fhRecoDiJetkT(obj.fhRecoDiJetkT),
489   fhNParton71(obj.fhNParton71),
490   fhNStringGroup(obj.fhNStringGroup),
491   fhNStringGroupFrom(obj.fhNStringGroupFrom),
492   fhNTracksInStringGroupFrom(obj.fhNTracksInStringGroupFrom),
493   fhRapidity71From(obj.fhRapidity71From),
494   fhPt71From(obj.fhPt71From),
495   fhTrackSelection(obj.fhTrackSelection),
496   fNJacek(obj.fNJacek),
497   fPttJacek(obj.fPttJacek),
498   fNEta(obj.fNEta),
499   fEta(obj.fEta),
500   fNJanFiete(obj.fNJanFiete),
501   fJanFiete(obj.fJanFiete),
502   fhEvents(obj.fhEvents),
503   fhEventTrigger(obj.fhEventTrigger),
504   fmaxEtaRange(obj.fmaxEtaRange),
505   fmaxTriggEtaRange(obj.fmaxTriggEtaRange),
506   ftriggFiducCut(obj.ftriggFiducCut),
507   fnUE(obj.fnUE),
508   fnUEfar(obj.fnUEfar),
509   fLowRange(obj.fLowRange),
510   fHighRange(obj.fHighRange)
511 {
512     // copy constructor
513     JUNUSED(obj);
514 }
515
516 //______________________________________________________________________________
517 AliJHistos& AliJHistos::operator=(const AliJHistos& obj){
518     // copy constructor
519     JUNUSED(obj);
520     return *this;
521 }
522
523 AliJHistos::~AliJHistos() {
524         delete fHMG;
525         delete fHmgInclusive;
526 }
527
528 //______________________________________________________________________________
529 void AliJHistos::CreateAzimuthCorrHistos()
530 {
531   // Comment needed here!
532   fHMG->cd();
533   
534     int    bins = 240; // 240 is divisible by 2,3,4,612*24=280    -1/3 and  0.5 and 5/3  are bin edges 
535     //double fLowRange = -1.0/3, fHighRange= 5.0/3;
536     fLowRange = -9./20.;   //lower range for dphi histos
537     fHighRange= fLowRange+2;       //upper range for dphi histos;
538     double ptbw=10/100.0;  //see hPt histo below, let's make 10 bins per 1GeV/c
539
540     fnUE=20;
541     double uEa = fCard->GetBinBorder(kAssocType, 0), uEb = fCard->GetBinBorder(kAssocType, fCard->GetNoOfBins(kAssocType));
542     double logUEbw = (log(uEb)-log(uEa))/fnUE;
543     for(int ij=0;ij<=fnUE;ij++) fUEBinsx[ij]=uEa*exp(ij*logUEbw);
544
545     fnUEfar=10;
546     logUEbw = (log(uEb)-log(uEa))/fnUEfar;
547     for(int ij=0;ij<=fnUE;ij++) fUEBinsxFar[ij]=uEa*exp(ij*logUEbw);
548
549
550     if(fCard->GetNoOfBins(kCentrType) > kMaxNoCentrBin ){
551         cout<<"ERROR: No of Centrality bins exceed max dim in AliJHistos.cxx "<<endl;
552         exit(0);
553     }
554
555     //==================================
556     //  trigger pt fhistos 
557     //==================================
558     //TODO tmp
559     double pTt1 = fPTtBin.GetMin();
560     double pTt2 = fPTtBin.GetMax();
561     double pTa1 = fPTaBin.GetMin();
562     double pTa2 = fPTaBin.GetMax();
563
564     fhTriggPtBinIsolTrigg
565         << TH1D( "hTriggPtBinIsolTrigg", "", (int)TMath::Ceil((pTt2-pTt1)/ptbw),pTt1, pTt2)
566         <<  fTypBin << fCentBin << fPTtBin  
567         << "END";
568     fhTriggMult
569         << TH1D( "hTriggMult", "",  100, -0.5, 99.5) 
570         <<  fCentBin << fPTtBin  << "END";
571     fhIphiTrigg
572         << TH1D( "fhIphiTrigg", "",  bins, -kJPi-0.1, kJPi+0.1) 
573         <<  fCentBin << fPTtBin  << "END";
574     fhIetaTrigg
575         << TH1D( "hIetaTrigg", "",  80, -fmaxEtaRange, fmaxEtaRange) 
576         <<  fCentBin << fPTtBin  << "END";// inclusive eta
577     fhTriggPtBin
578         << TH1D( "hTriggPtBin", "", (int)TMath::Ceil((pTt2-pTt1)/ptbw),pTt1, pTt2) 
579         <<  fCentBin << fVtxBin << fPTtBin  << "END";
580
581     //=====================================
582     //  associated pt fhistos with etaGaps
583     //=====================================
584
585     fhDphiAssoc
586         << TH1D( "hDphiAssoc", "",  bins, fLowRange, fHighRange) 
587         <<  fTypBin << fCentBin << fEtaGapBin << fPTtBin << fPTaBin  << "END";
588
589     fhDEtaNear
590         << TH1D( "hDEtaNear", "",  320, -2*fmaxEtaRange, 2*fmaxEtaRange) 
591         <<  fCentBin << fVtxBin << fEtaGapBin << fPTtBin << fPTaBin  << "END";
592     fhDEtaNearM
593         << TH1D( "hDEtaNearM", "",  320, -2*fmaxEtaRange, 2*fmaxEtaRange) 
594         <<  fCentBin << fVtxBin << fEtaGapBin << fPTtBin << fPTaBin  << "END";
595     //=====================================
596     //  associated pt fhistos with etaGaps XE bins
597     //=====================================
598     // xe bins
599     fhDphiAssocXEbin
600         << TH1D( "hDphiAssocXEbin", "",  bins, fLowRange, fHighRange) 
601         <<  fTypBin << fCentBin << fEtaGapBin << fPTtBin << fXEBin  << "END";
602     fTestHist
603         << TH1D( "testHist","", 5 , 0 ,5 )
604         <<fTypBin << fCentBin << fEtaGapBin << fPTtBin << fXEBin << "END";
605     for( int ityp=0;ityp<fTypBin.Size();ityp++ ){
606         for( int ic=0;ic<fCentBin.Size();ic++){
607             for( int ie=0;ie<fEtaGapBin.Size();ie++ ){
608                 for( int it=0;it<fPTtBin.Size();it++ ){
609                     for( int ix=0;ix<fXEBin.Size();ix++ ){
610                         fTestHist[ityp][ic][ie][it][ix]->SetBinContent( 1, double(ityp) );
611                         fTestHist[ityp][ic][ie][it][ix]->SetBinContent( 2, double(ic) );
612                         fTestHist[ityp][ic][ie][it][ix]->SetBinContent( 3, double(ie) );
613                         fTestHist[ityp][ic][ie][it][ix]->SetBinContent( 4, double(it) );
614                         fTestHist[ityp][ic][ie][it][ix]->SetBinContent( 5, double(ix) );
615                     }
616                 }
617             }
618         }
619     }
620     fhDEtaNearXEbin
621         << TH1D( "hDEtaNearXEbin", "",  320, -2*fmaxEtaRange, 2*fmaxEtaRange) 
622         <<  fCentBin << fVtxBin << fEtaGapBin << fPTtBin << fXEBin  << "END";
623     fhDEtaNearMXEbin
624         << TH1D( "hDEtaNearMXEbin", "",  320, -2*fmaxEtaRange, 2*fmaxEtaRange) 
625         <<  fCentBin << fVtxBin << fEtaGapBin << fPTtBin << fXEBin  << "END";
626     //=======================================
627     //  associated fpt fhistos without etaGaps
628     //=======================================
629     fhDphiAssocIsolTrigg
630         << TH1D( "hDphiAssocIsolTrigg", "",  bins, fLowRange, fHighRange) 
631         <<  fTypBin << fCentBin << fPTtBin << fPTaBin  << "END";//FK//
632     fhMeanPtAssoc
633         << TProfile( "hMeanPtAssoc", "", bins, fLowRange, fHighRange) 
634         <<  fCentBin << fPTtBin << fPTaBin  << "END";
635     fhMeanZtAssoc
636         << TProfile( "hMeanZtAssoc", "", bins, fLowRange, fHighRange) 
637         <<  fCentBin << fPTtBin << fPTaBin  << "END";
638     fhAssocPtBin
639         << TH1D( "hAssocPtBin", "", (int)TMath::Ceil((pTa2-pTa1)/ptbw), pTa1, pTa2) 
640         <<  fCentBin << fPTtBin << fPTaBin  << "END";
641     fhIphiAssoc
642         << TH1D( "fhIphiAssoc", "",  bins, -kJPi-0.1, kJPi+0.1) 
643         <<  fCentBin << fPTaBin  << "END";
644     fhIetaAssoc
645         << TH1D( "hIetaAssoc", "",  80, -fmaxEtaRange, fmaxEtaRange) 
646         <<  fCentBin << fPTaBin  << "END";
647     fhDEtaFar
648         << TH1D( "hDEtaFar", "",  120, -2*fmaxEtaRange, 2*fmaxEtaRange) 
649         <<  fTypBin << fCentBin << fPTtBin  << "END";
650
651     //==========================
652     //UE fhistos
653     //==========================
654     fhPtAssocUE
655         << TH1D( "hPtAssocUE", "",  fnUE, fUEBinsx) 
656         <<  fCentBin << fEtaGapBin << fPTtBin  << "END";
657     fhPtaEtaGapN
658         << TH1D( "hPtaEtaGapN", "",  fnUE, fUEBinsx) 
659         <<  fCentBin << fEtaGapBin << fPTtBin  << "END";
660     fhPtaRGapN
661         << TH1D( "hPtaRGapN", "",  fnUE, fUEBinsx) 
662         <<  fCentBin << fRGapBin << fPTtBin  << "END";
663     fhPtAssocUEIsolTrigg
664         << TH1D( "hPtAssocUEIsolTrigg", "", fnUE, fUEBinsx) 
665         <<  fPTtBin  << "END";//FK//
666     fhPtAssocN
667         << TH1D( "hPtAssocN", "",  fnUE, fUEBinsx) 
668         <<  fPTtBin  << "END";
669     fhPtAssocF
670         << TH1D( "hPtAssocF", "",  fnUE, fUEBinsx) 
671         <<  fPTtBin  << "END";
672   
673     //======================
674     // invariant mass histograms
675     //======================
676
677     fhInvariantMassXe 
678         << TH1D("hInvariantMassXe","",1500,0,3)
679         <<  fTypBin << fCentBin << fPTtBin << fXEBin  << "END";
680
681     fhInvariantMassKlong 
682         << TH1D("hInvariantMassKlong","",1500,0,3)
683         <<  fTypBin << fCentBin << fPTtBin << fKLongBin  << "END";
684
685     fhInvariantMassPta 
686         << TH1D("hInvariantMassPta","",1500,0,3)
687         <<  fTypBin << fCentBin << fPTtBin << fPTaBin  << "END";
688
689     // Like sign pairs for invariant mass histograms
690     
691     fhInvariantMassXeLikeSign 
692         << TH1D("hInvariantMassXeLikeSign","",1500,0,3)
693         <<  fTypBin << fCentBin << fPTtBin << fXEBin  << "END";
694
695     fhInvariantMassKlongLikeSign 
696         << TH1D("hInvariantMassKlongLikeSign","",1500,0,3)
697         <<  fTypBin << fCentBin << fPTtBin << fKLongBin  << "END";
698
699     fhInvariantMassPtaLikeSign
700         << TH1D("hInvariantMassPtaLikeSign","",1500,0,3)
701         <<  fTypBin << fCentBin << fPTtBin << fPTaBin  << "END";
702
703     // Unlike sign pairs for invariant mass histograms
704     
705     fhInvariantMassXeUnlikeSign 
706         << TH1D("hInvariantMassXeUnlikeSign","",1500,0,3)
707         <<  fTypBin << fCentBin << fPTtBin << fXEBin  << "END";
708
709     fhInvariantMassKlongUnlikeSign 
710         << TH1D("hInvariantMassKlongUnlikeSign","",1500,0,3)
711         <<  fTypBin << fCentBin << fPTtBin << fKLongBin  << "END";
712
713     fhInvariantMassPtaUnlikeSign
714         << TH1D("hInvariantMassPtaUnlikeSign","",1500,0,3)
715         <<  fTypBin << fCentBin << fPTtBin << fPTaBin  << "END";
716
717     //=======================
718     //jT fhistos
719     //=======================
720   
721     int nJT = 100;
722     double jtLow = 0.05, jtHigh = 20;
723   
724     double logBinsJt[101];
725     double logJt = (log(jtHigh)-log(jtLow))/nJT;
726     for(int ij=0;ij<=nJT;ij++) logBinsJt[ij]=jtLow*exp(ij*logJt);
727   
728     fhPoutF
729         << TH1D( "hPoutF", "",  300, 0, 15) 
730         <<  fTypBin << fCentBin << fPTtBin << fPTaBin  << "END";//FK//
731     
732     // Histograms in xlong bins
733     
734     fhJT
735         << TH1D( "hJT", "",  nJT, logBinsJt) 
736         <<  fTypBin << fCentBin << fPTtBin << fXEBin  << "END";
737
738     fhJTBg
739         << TH1D( "hJTBg", "",  nJT, logBinsJt)
740         <<  fCentBin << fEtaGapBin << fPTtBin << fXEBin  << "END";
741
742     fhJTBgR
743         << TH1D( "hJTBgR", "",  nJT, logBinsJt) 
744         <<  fCentBin << fRGapBin << fPTtBin << fXEBin  << "END";
745
746     fhJTLikeSign
747         << TH1D( "hJTLikeSign", "",  nJT, logBinsJt) 
748         <<  fTypBin << fCentBin << fPTtBin << fXEBin  << "END";
749
750     fhJTBgLikeSign
751         << TH1D( "hJTBgLikeSign", "",  nJT, logBinsJt)
752         <<  fCentBin << fEtaGapBin << fPTtBin << fXEBin  << "END";
753
754     fhJTBgRLikeSign
755         << TH1D( "hJTBgRLikeSign", "",  nJT, logBinsJt) 
756         <<  fCentBin << fRGapBin << fPTtBin << fXEBin  << "END";
757
758     fhJTUnlikeSign
759         << TH1D( "hJTUnlikeSign", "",  nJT, logBinsJt) 
760         <<  fTypBin << fCentBin << fPTtBin << fXEBin  << "END";
761
762     fhJTBgUnlikeSign
763         << TH1D( "hJTBgUnlikeSign", "",  nJT, logBinsJt)
764         <<  fCentBin << fEtaGapBin << fPTtBin << fXEBin  << "END";
765
766     fhJTBgRUnlikeSign
767         << TH1D( "hJTBgRUnlikeSign", "",  nJT, logBinsJt) 
768         <<  fCentBin << fRGapBin << fPTtBin << fXEBin  << "END";
769
770     fhBgAssocXe
771         << TH1D( "hBgAssocXe", "",  fnUE, fUEBinsx) 
772         <<  fCentBin << fEtaGapBin << fPTtBin << fXEBin  << "END";
773
774     fhBgAssocXeR
775         << TH1D( "hBgAssocXeR", "",  fnUE, fUEBinsx) 
776         <<  fCentBin << fRGapBin << fPTtBin << fXEBin  << "END";
777
778     fhDphiDetaXe
779         << TH2D( "hDphiDetaXe", "",  100, -2*fmaxEtaRange, 2*fmaxEtaRange, 100, -kJPi/2, kJPi/2) 
780         <<  fCentBin << fEtaGapBin << fPTtBin << fXEBin  << "END";
781
782     fhDphiDetaXeR
783         << TH2D( "hDphiDetaXeR", "",  100, -2*fmaxEtaRange, 2*fmaxEtaRange, 100, -kJPi/2, kJPi/2) 
784         <<  fCentBin << fRGapBin << fPTtBin << fXEBin  << "END";
785
786     // Histograms in klong bins
787
788     fhJTKlong
789         << TH1D( "hJTKlong", "",  nJT, logBinsJt) 
790         <<  fTypBin << fCentBin << fPTtBin << fKLongBin  << "END";
791     
792     fhJTKlongBg
793         << TH1D( "hJTKlongBg", "",  nJT, logBinsJt) 
794         <<  fCentBin << fEtaGapBin << fPTtBin << fKLongBin  << "END";
795
796     fhJTKlongBgR
797         << TH1D( "hJTKlongBgR", "",  nJT, logBinsJt) 
798         <<  fCentBin << fRGapBin << fPTtBin << fKLongBin  << "END";
799
800     fhJTKlongLikeSign
801         << TH1D( "hJTKlongLikeSign", "",  nJT, logBinsJt) 
802         <<  fTypBin << fCentBin << fPTtBin << fKLongBin  << "END";
803     
804     fhJTKlongBgLikeSign
805         << TH1D( "hJTKlongBgLikeSign", "",  nJT, logBinsJt) 
806         <<  fCentBin << fEtaGapBin << fPTtBin << fKLongBin  << "END";
807
808     fhJTKlongBgRLikeSign
809         << TH1D( "hJTKlongBgRLikeSign", "",  nJT, logBinsJt) 
810         <<  fCentBin << fRGapBin << fPTtBin << fKLongBin  << "END";
811
812     fhJTKlongUnlikeSign
813         << TH1D( "hJTKlongUnlikeSign", "",  nJT, logBinsJt) 
814         <<  fTypBin << fCentBin << fPTtBin << fKLongBin  << "END";
815     
816     fhJTKlongBgUnlikeSign
817         << TH1D( "hJTKlongBgUnlikeSign", "",  nJT, logBinsJt) 
818         <<  fCentBin << fEtaGapBin << fPTtBin << fKLongBin  << "END";
819
820     fhJTKlongBgRUnlikeSign
821         << TH1D( "hJTKlongBgRUnlikeSign", "",  nJT, logBinsJt) 
822         <<  fCentBin << fRGapBin << fPTtBin << fKLongBin  << "END";
823
824     fhBgAssocKlong
825         << TH1D( "hBgAssocKlong", "",  fnUE, fUEBinsx) 
826         <<  fCentBin << fEtaGapBin << fPTtBin << fKLongBin  << "END";
827
828     fhBgAssocKlongR
829         << TH1D( "hBgAssocKlongR", "",  fnUE, fUEBinsx) 
830         <<  fCentBin << fRGapBin << fPTtBin << fKLongBin  << "END";
831
832     fhDphiDetaKlong
833         << TH2D( "hDphiDetaKlong", "",  100, -2*fmaxEtaRange, 2*fmaxEtaRange, 100, -kJPi/2, kJPi/2) 
834         <<  fCentBin << fEtaGapBin << fPTtBin << fKLongBin  << "END";
835
836     fhDphiDetaKlongR
837         << TH2D( "hDphiDetaKlongR", "",  100, -2*fmaxEtaRange, 2*fmaxEtaRange, 100, -kJPi/2, kJPi/2) 
838         <<  fCentBin << fRGapBin << fPTtBin << fKLongBin  << "END";
839
840     // Histograms in pta bins
841
842     fhJTPta
843         << TH1D( "hJTPta", "",  nJT, logBinsJt) 
844         <<  fTypBin << fCentBin << fPTtBin << fPTaBin  << "END";
845
846     fhJTPtaBg
847         << TH1D( "hJTPtaBg", "",  nJT, logBinsJt) 
848         <<  fCentBin << fEtaGapBin << fPTtBin << fPTaBin  << "END";
849
850     fhJTPtaBgR
851         << TH1D( "hJTPtaBgR", "",  nJT, logBinsJt) 
852         <<  fCentBin << fRGapBin << fPTtBin << fPTaBin  << "END";
853
854     fhJTPtaLikeSign
855         << TH1D( "hJTPtaLikeSign", "",  nJT, logBinsJt) 
856         <<  fTypBin << fCentBin << fPTtBin << fPTaBin  << "END";
857
858     fhJTPtaBgLikeSign
859         << TH1D( "hJTPtaBgLikeSign", "",  nJT, logBinsJt) 
860         <<  fCentBin << fEtaGapBin << fPTtBin << fPTaBin  << "END";
861
862     fhJTPtaBgRLikeSign
863         << TH1D( "hJTPtaBgRLikeSign", "",  nJT, logBinsJt) 
864         <<  fCentBin << fRGapBin << fPTtBin << fPTaBin  << "END";
865
866     fhJTPtaUnlikeSign
867         << TH1D( "hJTPtaUnlikeSign", "",  nJT, logBinsJt) 
868         <<  fTypBin << fCentBin << fPTtBin << fPTaBin  << "END";
869
870     fhJTPtaBgUnlikeSign
871         << TH1D( "hJTPtaBgUnlikeSign", "",  nJT, logBinsJt) 
872         <<  fCentBin << fEtaGapBin << fPTtBin << fPTaBin  << "END";
873
874     fhJTPtaBgRUnlikeSign
875         << TH1D( "hJTPtaBgRUnlikeSign", "",  nJT, logBinsJt) 
876         <<  fCentBin << fRGapBin << fPTtBin << fPTaBin  << "END";
877
878     fhBgAssocPta
879         << TH1D( "hBgAssocPta", "",  fnUE, fUEBinsx) 
880         <<  fCentBin << fEtaGapBin << fPTtBin << fPTaBin  << "END";
881
882     fhBgAssocPtaR
883         << TH1D( "hBgAssocPtaR", "",  fnUE, fUEBinsx) 
884         <<  fCentBin << fRGapBin << fPTtBin << fPTaBin  << "END";
885
886     fhDphiDetaPta
887         << TH2D( "hDphiDetaPta", "",  100, -2*fmaxEtaRange, 2*fmaxEtaRange, 100, -kJPi/2, kJPi/2) 
888         <<  fCentBin << fEtaGapBin << fPTtBin << fPTaBin  << "END";
889
890     fhDphiDetaPtaR
891         << TH2D( "hDphiDetaPtaR", "",  100, -2*fmaxEtaRange, 2*fmaxEtaRange, 100, -kJPi/2, kJPi/2) 
892         <<  fCentBin << fRGapBin << fPTtBin << fPTaBin  << "END";
893 }
894
895
896 void AliJHistos::CreateIAAMoons()
897 {
898     fHMG->cd();
899     //--- IAA signal ---
900     fhDRNearPt
901         << TH1D( "hDRNearPt", "",  fnUE, fUEBinsx) 
902         <<  fTypBin << fCentBin << fVtxBin << fRGapBin << fPTtBin  << "END";
903     fhDRFarPt
904         << TH1D( "hDRFarPt", "",  fnUEfar, fUEBinsxFar) 
905         <<  fTypBin << fCentBin << fVtxBin << fRGapBin << fPTtBin  << "END";
906
907     // --- Moons ---
908     fhDRNearPtMoon
909         << TH1D( "hDRNearPtMoon", "",  fnUE, fUEBinsx) 
910         <<  fCentBin << fVtxBin << fRGapBin << fPhiGapBin << fPTtBin  << "END";
911     fhDRNearPtMoonM
912         << TH1D( "hDRNearPtMoonM", "",  fnUE, fUEBinsx) 
913         <<  fCentBin << fVtxBin << fRGapBin << fPhiGapBin << fPTtBin  << "END";
914
915     fhDRFarPtMoon
916         << TH1D( "hDRFarPtMoon", "",  fnUE, fUEBinsx) 
917         <<  fCentBin << fVtxBin << fRGapBin << fPhiGapBin << fPTtBin  << "END";
918     fhDRFarPtMoonM
919         << TH1D( "hDRFarPtMoonM", "",  fnUE, fUEBinsx) 
920         <<  fCentBin << fVtxBin << fRGapBin << fPhiGapBin << fPTtBin  << "END";
921
922     //==========================
923     // 2D fhistos 
924     //==========================
925     fhDphiAssoc2DIAA
926         << TH2D( "hDphiAssoc2DIAA", "",  100, -2*fmaxEtaRange, 2*fmaxEtaRange, 100, fLowRange, fHighRange) 
927         <<  fTypBin << fCentBin << fVtxBin << fPTtBin << fPTaBin  << "END";
928     fhDphiAssoc2D
929         << TH2D( "hDphiAssoc2D", "",  100, -2*fmaxEtaRange, 2*fmaxEtaRange, 100, fLowRange, fHighRange) 
930         <<  fRGapBin << fPhiGapBin  << "END";
931 }
932
933 void AliJHistos::CreateXEHistos(){
934     //==================================
935     //  xe slopes
936     //==================================
937     fHMG->cd();
938     double xel=0.0, xeh=1.2;
939     int nbxE = int((xeh-xel)/0.04);
940
941     fhxEPtBin
942         << TH1D( "hxEPtBin", "",  nbxE, xel, xeh) 
943         <<  fTypBin3 << fPTtBin << fPTaBin  << "END";
944     fhxEF 
945         << TH1D( "hxEF", "", nbxE, xel, xeh)
946         << fTypBin << fPTtBin <<"END";
947     fhxEFIsolTrigg
948         << TH1D( "hxEFIsoTrigg", "", nbxE, xel, xeh)
949         << fTypBin << fPTtBin << "END";
950     fhxEN 
951         << TH1D("hxEN", "", nbxE, xel, xeh)
952         << fTypBin << fPTtBin << "END";
953
954 }
955
956 void AliJHistos::CreatePairPtCosThetaStar(){
957     // pairs
958     fHMG->cd();
959     int    bins = 288; // 12*24    -1/3 and  0.5 and 5/3  are bin edges 
960     double lowRange = -1./3, highRange= 5./3;
961     //=================
962     //pairPT
963     //=================
964     fhPairPtDphi
965         << TH1D( "hPairPtDphi", "",  bins, lowRange, highRange) 
966         <<  fTypBin << fPTtBin << fPTaBin  << "END";
967     fhPairPt
968         << TH1D( "hPairPt", "",  210, 0, 70) 
969         <<  fTypBin << fPTtBin << fPTaBin  << "END";
970     //==================================
971     //  CosThetaStar fhistos 
972     //==================================
973     //cout<<"ippt="<<fPairPtBin<<" "<<fCard->IsLessThanUpperPairPtCut(-fPairPtBin)<<endl;
974     fhCosThetaStar
975         << TH1D( "hCosThetaStar", "",  100, 0, 1) 
976         <<  fTypBin << fPairPtBin << fMassBin  << "END";
977     fhCMSrap
978         << TH2D( "hCMSrap", "",  100, 0, 1, 50, -1, 1) 
979         <<  fPairPtBin << fMassBin  << "END";
980     fhInvMass
981         << TH1D( "hInvMass", "",  200, 0, 40) 
982         <<  fPairPtBin << "END";
983
984     fhPairPtMass
985         << TH1D( "hPairPtMass", "",  250, 0, 50) 
986         <<  fMassBin  << "END";
987     fhPairDPhi
988         << TH1D( "hPairDPhi", "",   bins, lowRange, highRange) 
989         <<  fMassBin  << "END";
990     fhPairDpT
991         << TH1D( "hPairDpT", "",  150, 0-25./150./2., 25-25./150./2.) 
992         <<  fMassBin  << "END";
993     fpCMSrap
994         << TProfile("pCMSrap","no pair pT cut",100,-1,1) 
995         << "END";
996 }
997
998 //______________________________________________________________________________
999 void AliJHistos::CreatePtCorrHistos(){
1000     // pt corr histos
1001     fHMG->cd();
1002     int ptbins=30;
1003     double lpt=0,upt=8;
1004     fhPtNear
1005         << TH1D( "hPtNear", "",  ptbins, lpt, upt) 
1006         <<  fTypBin << 3 << fCentBin  << "END";
1007     fhPtFar
1008         << TH1D( "hPtFar", "",  ptbins, lpt, upt) 
1009         <<  fTypBin << 3 << fCentBin  << "END";
1010 }
1011
1012 //______________________________________________________________________________
1013 void AliJHistos::CreateRunByRunHistos(int runID, int runcounter) const {
1014   // Todo
1015   fHMG->cd();
1016   JUNUSED(runID);
1017   JUNUSED(runcounter);
1018 } //TODO
1019
1020
1021 //______________________________________________________________________________
1022 void AliJHistos::CreateEventTrackHistos(){
1023   // comment needed
1024   fHMG->cd();
1025     int nBINS=150;
1026     double logBinsX[nBINS+1], limL=0.1, limH=100;
1027     double logBW = (log(limH)-log(limL))/nBINS;
1028     for(int ij=0;ij<=nBINS;ij++) logBinsX[ij]=limL*exp(ij*logBW);
1029
1030     fhLPpt       <<  TH1D("hLPpt","LP pt", nBINS, logBinsX ) << "END";
1031     fhLPpairPt   << TH1D("hLPpairPt","LP pair pt", nBINS, logBinsX )<< "END";
1032     fhChargedEta << TH1D("hChargedEta","All eta",100,-1.0,1.0)<< "END";
1033     fhLPeta      << TH1D("hLPeta","LP eta",100,-1.0,1.0)<< "END";
1034     fhIsolatedLPpt << TH1D("hIsolatedLPpt","Isolated LP pt", nBINS, logBinsX )<< "END";
1035     fhChargedPtFiete << TH1D("hChargedPtFiete", "Jan Fiete bins", fNJanFiete, fJanFiete )<< "END";
1036
1037
1038     fhAssocMult << TH1D("hAssocMult","Assoc  mlt",100,-0.5,99.5)<< "END";
1039
1040     fhChargedMult 
1041         << TH1D("hChargedMult","", 300, 0., 3500.)
1042         << fCentBin << "END"; 
1043     fhChargedMultCut 
1044         << TH1D("hChargedMultCut","",  300, 0., 3500.)
1045         << fCentBin << "END"; 
1046     fhZVert 
1047         << TH1D("hZVert", "", 100, -30., 30.)
1048         << fCentBin << "END";
1049     fhChargedPt 
1050         << TH1D("hChargedPt","", nBINS, logBinsX )
1051         << fCentBin << "END";
1052     fhChargedPtNoCorr 
1053         << TH1D("hChargedPtNoCorr","", nBINS, logBinsX )
1054         << fCentBin << "END";
1055     fhChargedPtJacek 
1056         << TH1D("hChargedPtJacek","", fNJacek, fPttJacek )
1057         << fCentBin << "END";
1058     fhChargedPtJacekEta
1059         << TH1D("hChargedPtJacekEta","", fNJacek, fPttJacek )
1060         << fCentBin << 3 << "END";
1061
1062     fhVdelta2 << TH1D("hVdelta2","", 100, -0.2, 5)
1063         << fCentBin << "END";
1064     fhVdelta3 << TH1D("hVdelta3","", 100, -0.2, 5)
1065         << fCentBin << "END";
1066     fhVN << TH1D("hVN","", 100, -kJPi, kJPi)
1067         << fCentBin << "END";
1068     fhTrackingEfficiency << TProfile("hTrackingEff","",fNJacek, fPttJacek)
1069         << fCentBin << "END";
1070     fhV0AMult << TH1D("hV0Mult","", 2000,0,2000 )
1071         << fCentBin << "END";
1072     fpV2 << TProfile("pV2", "v2 with cent", 50, 0, 90) << "END";
1073     fpV3 << TProfile("pV3", "v3 with cent", 50, 0, 90) << "END";
1074     fpVdeltaNorm << TProfile("pVdeltaNorm", "mult with cent", 50, 0, 90) << "END";
1075     fhChargedMultCent << TH2D("hChargedMultCent ", "log(fmult) vs cent", 100, 0, 90, 100, 1, 10) << "END";
1076     fhZVertRaw << TH1D("hZVertRaw","vertex 0", 120, -30., 30.) << "END";
1077     fhZVertRawErr << TH1D("hZVertRawErr","vertex 0 Err", 100, 0, 0.1) << "END";
1078     fhCentr << TH1D("hCentr","centrality", 101, -0.5, 100.5) << "END";
1079     fhiCentr << TH1D("hiCentr","centrality",10, -0.5, 9.5) << "END";
1080     fhEventPerRun << TH1D("hEventPerRun","log(eve)/run",200, 0, 30.0) << "END";
1081     fhBkgActivity 
1082         << TH1D("hBkgActivity", "", 200, 0, 20) 
1083         << fPTtBin <<"END";
1084
1085     //------------------ for Abs Norm FK --------------------------------
1086     double   binsVertexMult[] = {0,1,2,3,4,5,10000};
1087     int   nbinsVertexMult  = sizeof(binsVertexMult)/sizeof(double)-1;
1088     //double binsVertexZ[]    = {-10,-5,-2,0,2,5,10};
1089     double binsVertexZ[]    = {-10,-6,-3,-2,-1.5,-1,-0.5,0,0.5,1,1.5,2,3,6,10};
1090     int   nbinsVertexZ   = sizeof(binsVertexZ)/sizeof(double)-1;
1091     fhVertexZTriggVtx << TH2D("hVertexZTriggVtx","Vertex counts", nbinsVertexMult, binsVertexMult, nbinsVertexZ, binsVertexZ) << "END";
1092
1093     // event counter
1094     fhEvents        
1095         << TH1D("hEvents","events passing cuts", 100, -0.5, 100-0.5 ) << "END";
1096     fhEventTrigger  
1097         << TH1D("hEventTrigger","Trigger count", 50, -0.5, 50.-.5 )
1098         << "END";
1099     fhTrackSelection
1100         << TH1D("hTrackSelection","checking bit convention", 100, -0.5, 100-0.5) << "END";
1101     // TODO fhEvents->SetXTitle( "0 - all, 1 - SDD selected, 2 - has vertex, 3 - good vertex, 4 - trigger + MB, 5 - trigger, 6 - BX, 7 - centrality" );
1102 }
1103
1104 void AliJHistos::CreateJetHistos(){
1105     fHMG->cd();
1106     // jet histos
1107     int nBINS=200;
1108     double logBinsX[nBINS+1], limL=0.1, limH=200;
1109     double logBW = (log(limH)-log(limL))/nBINS;
1110     for(int ij=0;ij<=nBINS;ij++) logBinsX[ij]=limL*exp(ij*logBW);
1111
1112     fhLPJetPt
1113         << TH1D( "hLPJetPt", "",   nBINS, logBinsX) 
1114         <<  fCentBin  << "END";
1115     fhJetPt
1116         << TH1D( "hJetPt", "",   nBINS, logBinsX) 
1117         <<  fCentBin  << "END";
1118     fhLeadingJetPt
1119         << TH1D( "hLeadingJetPt", "",   nBINS, logBinsX) 
1120         <<  fCentBin  << "END";
1121     fhLeadingJetWLPPt
1122         << TH1D( "hLeadingJetWLPPt", "",   nBINS, logBinsX) 
1123         <<  fCentBin  << "END";
1124     fhLPJetPTt
1125         << TH1D( "hLPJetPTt", "",   nBINS, logBinsX) 
1126         <<  fCentBin << fPTtBin  << "END";
1127     fhLeadingJetWLPPTt
1128         << TH1D( "hLeadingJetWLPPTt", "",   nBINS, logBinsX) 
1129         <<  fCentBin << fPTtBin  << "END";
1130     fhLPJetEtaPTt
1131         << TH1D( "hLPJetEtaPTt", "",  100, -1, 1) 
1132         <<  fCentBin << fPTtBin  << "END";
1133     fhLPJetRapidityPTt
1134         << TH1D( "hLPJetRapidityPTt", "",  100, -1, 1) 
1135         <<  fCentBin << fPTtBin  << "END";
1136     fhLPJetMassPTt
1137         << TH1D( "hLPJetMassPTt", "",   nBINS, logBinsX) 
1138         <<  fCentBin << fPTtBin  << "END";
1139     fhDphiLPJet
1140         << TH1D( "hDphiLPJet", "",  160, -kJPi/2., kJPi/2.) 
1141         <<  fCentBin << fPTtBin  << "END";
1142     fhDEtaLPJet
1143         << TH1D( "hDEtaLPJet", "",   240, -1.2, 1.2) 
1144         <<  fCentBin << fPTtBin  << "END";
1145     // LP jet vs Leading Jet
1146     fhDPtLPJet
1147         << TH1D( "hDPtLPJet", "",  100, 0, 10.) 
1148         <<  fCentBin << fPTtBin  << "END";
1149     //==================================
1150     fhJetDphi << TH1D( "hJetDphi", "#Delta#phi", 100,-TMath::Pi(), TMath::Pi())
1151         << fTypBin << fPTtBin <<"END";
1152     fhJetDeta << TH1D("hJetDeta","#Delta#eta ",100,-1, 1)
1153         << fTypBin << fPTtBin <<"END";
1154     fhJetMultPt << TH1D("hJetMultPt","Jet Multiplicity ",100,0-0.5, 100-0.5)
1155         << fPTtBin <<"END";
1156     fhJetRho << TH1D("hJetRho","#rho",200,0, 50)
1157         << fPTtBin <<"END";
1158     fhJetRhoSigma << TH1D("hJetRhoSigma","#sigma",200,0, 50)
1159         << fPTtBin <<"END";
1160     // How many particles in a jet
1161     fhJetPartMult << TH1D("hJetPartMult","Number of consituents",100, 0-0.5, 100-0.5)
1162         << fPTtBin <<"END";
1163     fhRecoDiJetM
1164         << TH1D("hRecoDiJetM", "Invariant Mass", 201,-0.5, 200 ) 
1165         << "END";
1166     fhJetUEPt
1167         << TH1D("hJetUEPt","UE particles p_{T} by Jet substract",nBINS,logBinsX) 
1168         << "END";
1169     // pytfPTaBin
1170     fhNParton71
1171         << TH1D("hNParton71", "hNParton71", 100, -0.5, 100-0.5) 
1172         <<"END";
1173     fhNStringGroup
1174         << TH1D("hNStringGroup", "hNStringGroup", 100, -0.5, 100-0.5) 
1175         <<"END";
1176     fhNStringGroupFrom << TH1D("hNStringGroupFrom", "hNStringGroupFrom", 100, -0.5, 100-0.5) << 2 <<"END";
1177     fhNTracksInStringGroupFrom << TH1D("hNTracksInStringGroupFrom", "hNTracksInStringGroupFrom", 100, -0.5, 100-0.5) << 2 << "END";
1178     fhRapidity71From << TH1D("hRapidity71From", "hRapidity71From", 100, -8, 8 ) << 2 << "END";
1179     fhPt71From
1180         << TH1D("hPt71From", "hPt71From", 1000, 0, 100) 
1181         << 2 << "END";
1182
1183 }
1184
1185 //______________________________________________________________________________
1186 void AliJHistos::CreateXtHistos() {
1187     // TODO comment
1188     //
1189     fHMG->cd();
1190     // Esko
1191     TH1::SetDefaultSumw2(kTRUE);
1192     cout << "GetDefaultSumw2() = " << TH1::GetDefaultSumw2() << endl;
1193
1194     // xT binning
1195     int nBinsXt=200;
1196     double logBinsXt[nBinsXt+1];
1197     double xTLimL = 1e-5, xTLimH = 1.0, xTlogBW = (log(xTLimH)-log(xTLimL))/nBinsXt;
1198     for(int ij=0;ij<=nBinsXt;ij++) logBinsXt[ij]=xTLimL*exp(ij*xTlogBW);
1199
1200
1201     // pT binning
1202     int nBinsPt=200;
1203     double logBinsPt[nBinsPt+1];
1204     double pTLimL=0.1, pTLimH=200 , pTlogBW = (log(pTLimH)-log(pTLimL))/nBinsPt;
1205     for(int ij=0;ij<=nBinsPt;ij++) logBinsPt[ij]=pTLimL*exp(ij*pTlogBW);
1206
1207     fhConeActivity << TProfile("hActivity", "Mean activity inside cone", nBinsPt, logBinsPt );
1208     fhPerpConeActivity << TProfile("hPerpActivity", "Mean activity inside perpendicular cone", nBinsPt, logBinsPt );
1209     fhConeActivityIsolated << TProfile("hActivityIsolated", "Mean pion activity inside cone isolated", nBinsPt, logBinsPt );
1210
1211     fhPerpConeActivityIsolated << TProfile("hPerpActivityIsolated", "Mean activity inside perpendicular cone", nBinsPt, logBinsPt );
1212     fhPtForXt 
1213         << TH1D("hPtForXt","", fNJacek, fPttJacek )
1214         << 3 << fCentBin <<"END";
1215
1216     fhXt 
1217         << TH1D("hXt", "Charged xT", nBinsXt, logBinsXt )
1218         << 3 << fCentBin <<"END";
1219
1220     fhXtWeighted 
1221         << TH1D("hXtWeighted", "Charged xT", nBinsXt, logBinsXt )
1222         << 3 << fCentBin <<"END";
1223
1224     fhXtWeightedHT 
1225         << TH1D("hXtWeightedHT", "", nBinsXt, logBinsXt )
1226         << 3 << fCentBin <<"END";
1227 }
1228
1229 //______________________________________________________________________________
1230 //void AliJHistos::ReadInclusiveHistos(TFile *inFile){
1231 void AliJHistos::ReadInclusiveHistos(const char *inclusFileName){
1232         // read inclusive histos
1233         fHMG->cd();
1234
1235         TPMERegexp sep("::");
1236         int ncol = sep.Split( inclusFileName );
1237     TString filename = sep[0];
1238
1239         if (TString(inclusFileName).BeginsWith("alien:"))  TGrid::Connect("alien:");
1240         TFile *inclusFile = TFile::Open(filename);
1241     TDirectory * dir =  (TDirectory*) inclusFile;
1242     if( ncol > 1 ) dir = (TDirectory*)( inclusFile->Get(sep[1]));
1243     if( !dir ) {
1244                 cout << " ReadInclusiveHistos wrong file name or dirname !!!!" << endl;
1245         }
1246
1247      cout<<inclusFileName<<"\t"<<filename<<"\t";
1248      if( ncol > 1 ) cout<<sep[1];
1249          cout<<endl;
1250          dir->Print();
1251
1252          dir->cd();
1253
1254          fHmgInclusive = new AliJHistManager("hst");
1255          fHmgInclusive->LoadConfig();
1256
1257          fhIetaTriggFromFile = fHmgInclusive->GetTH1D("hIetaTrigg");
1258          fhIetaTriggFromFile.Print();
1259          fhIetaTriggFromFile[0][0]->Print();
1260
1261          fhIphiTriggFromFile = fHmgInclusive->GetTH1D("fhIphiTrigg"); // TODO
1262          fhIphiTriggFromFile.Print();
1263          fhIetaAssocFromFile = fHmgInclusive->GetTH1D("hIetaAssoc");
1264          fhIetaAssocFromFile.Print();
1265          fhIphiAssocFromFile = fHmgInclusive->GetTH1D("fhIphiAssoc");
1266          fhIphiAssocFromFile.Print();
1267
1268          int numCent = fCard->GetNoOfBins(kCentrType);
1269          int numPtt  = fCard->GetNoOfBins(kTriggType);
1270          int numPta  = fCard->GetNoOfBins(kAssocType);
1271          int numEtaGaps = fCard->GetNoOfBins(kEtaGapType);
1272          int numZvtx = fCard->GetNoOfBins(kZVertType);
1273
1274          //------------ R e a d   mixed  D a t a ------------    
1275          const int zFirstBin = 0 ;
1276          const int etaGapFirstBin = 0 ;
1277          AliJTH1D hDEtaNearTmp = fHmgInclusive->GetTH1D("hDEtaNear");
1278          for (int hic = 0;hic < numCent; hic++) {
1279                  for (int hit = 0; hit < numPtt;hit++){
1280                          for (int hia = 0; hia < numPta; hia++){
1281                                  fhDEtaNearMixFromFile[hic][hit][hia]= hDEtaNearTmp[hic][zFirstBin][etaGapFirstBin][hit][hia]; 
1282                                  for (int iEtaGap=0; iEtaGap < numEtaGaps; iEtaGap++){//fdphi slices 
1283                                          for (int hiz = 0; hiz < numZvtx; hiz++) {
1284                                                  if( iEtaGap==etaGapFirstBin && hiz==zFirstBin ) continue;
1285                                                  TH1D *hid = hDEtaNearTmp[hic][hiz][iEtaGap][hit][hia];
1286                                                          fhDEtaNearMixFromFile[hic][hit][hia]->Add(hid);
1287                                          }
1288                                  }
1289                                  //normalize to traingle
1290                                  double counts  = fhDEtaNearMixFromFile[hic][hit][hia]->Integral();
1291                                  double bw      = fhDEtaNearMixFromFile[hic][hit][hia]->GetBinWidth(1);
1292                                  int rebin = 4;
1293                                  if(counts<5000) rebin=8;
1294                                  if(counts<3000) rebin=10;
1295                                  if(counts<1000) rebin=16;
1296                                  fhDEtaNearMixFromFile[hic][hit][hia]->Rebin(rebin);
1297                                  if(counts>0)  fhDEtaNearMixFromFile[hic][hit][hia]->Scale(2.*fmaxEtaRange/counts/bw/rebin);//triangle  f(0)=1, f(1.6)=0
1298                                  //if(counts>0)  fhDEtaNearMixFromFile[hic][hit][hia]->Scale(2.*fmaxEtaRange/counts/bw);
1299                                  //cout<<"c=" << hic <<" as="<< hia <<" entries="<< fhDEtaNearMixFromFile[hic][hit][hia]->GetEntries() <<endl; 
1300
1301                          }   
1302                  }   
1303          }   
1304
1305
1306          //for (int hic = 0;hic < fCard->GetNoOfBins(kCentrType);hic++) {
1307          //   for (int hit = 0; hit < fCard->GetNoOfBins(kTriggType);hit++){
1308          //      for (int hia = 0; hia < fCard->GetNoOfBins(kAssocType); hia++){
1309          //         hDphiAssocMixSpectraFile[hic][hit][hia]= (TH1D*) inclusFile->Get(Form("xhDphiAssoc%02dC%02dE00T%02dA%02d",1, hic, hit, hia));//FK//mix2
1310          //      }
1311          //   }
1312          //}
1313 }