AliPhysics  d9e9949 (d9e9949)
AliAnalysisTaskEmcalJetCDF.cxx
Go to the documentation of this file.
1 /**************************************************************************
2  * Copyright(c) 1998-2016, 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 #include <cmath>
17 
18 #include <TClonesArray.h>
19 #include <TH1D.h>
20 #include <TH2D.h>
21 #include <TArrayD.h>
22 #include <TString.h>
23 
24 #include <AliVCluster.h>
25 #include <AliVParticle.h>
26 #include <AliLog.h>
27 
28 #include "AliTLorentzVector.h"
29 #include "AliEmcalJet.h"
30 #include "AliRhoParameter.h"
31 #include "AliJetContainer.h"
32 #include "AliParticleContainer.h"
33 #include "AliClusterContainer.h"
34 #include "AliAnalysisManager.h"
35 #include "AliVEventHandler.h"
36 #include "AliAnalysisDataContainer.h"
37 
38 #include "AliEmcalList.h"
39 
41 
42 using std::cout;
43 using std::endl;
44 
46 ClassImp ( AliAnalysisTaskEmcalJetCDF );
48 
54  fHistManager()
55 {}
56 
63  AliAnalysisTaskEmcalJet ( name, kTRUE ),
64  fHistManager(name)
65  {
66  // Standard constructor.
67  SetMakeGeneralHistograms ( kTRUE );
68  }
69 
72 
81  {
82  return kTRUE;
83  }
84 
85 //________________________________________________________________________
87  {
88  TH1::SetDefaultSumw2(kTRUE);
89  TH2::SetDefaultSumw2(kTRUE);
90 
91  namespace CDF = NS_AliAnalysisTaskEmcalJetCDF;
92  TString histname = "", groupname = "", fullgroupname = "";
93 
94  AliJetContainer* jetCont = NULL;
95  TIter next(&fJetCollArray);
96  while ( (jetCont = static_cast<AliJetContainer*>(next())) ) {
97  //##### EARLY VALIDITY CHECKS - BAIL OUT FAST
98 
99  // get particles connected to jets
100  AliParticleContainer* fTracksCont = jetCont->GetParticleContainer();
101  if (!fTracksCont) { std::cout << "********* JET CONTAINER WITHOUT TRACKS CONTAINER *********" << std::endl; continue; }
102  TClonesArray* fTracksContArray = fTracksCont->GetArray();
103 
104  // Number of Jets found in event - accepted cuts applied by JetContainer
105  Int_t fNJets_accepted = jetCont->GetNJets();
106 
107  // Multiplicity in event - accepted tracks in tracks container
108  Int_t fNaccPart = fTracksCont->GetNAcceptedParticles();
109 
110  // protection
111  if ( ( fNJets_accepted < 1 ) || ( fNaccPart < 1 ) ) {
112  if ( fDebug > 1 ) { std::cout << "accepted (fNJets || fNPart) == 0" << std::endl; }
113  continue;
114  }
115 
116  if ( fDebug > 1 ) { std::cout << "fNJets = " << fNJets_accepted << " ; fNPart = " << fNaccPart << std::endl; }
117 
118  // get jet1 - if there is no leading jet there is no point to continue
119  AliEmcalJet* jet1 = jetCont->GetLeadingJet(); // internaly checked for AcceptedJet
120  if (!jet1) {
121  if ( fDebug > 1 ) { Printf ( "Jet1 not found (did not survive cuts?)\n" ); }
122  continue;
123  }
124 
125 //######################################################################################################
126  groupname = jetCont->GetName();
127 
128  Double_t jet_pt_min = jetCont->GetMinPt();
129  Double_t jet_pt_max = jetCont->GetMaxPt();
130 
131  TString jetstrmin = TString::Itoa((Int_t)jet_pt_min,10);
132  TString jetstrmax = TString::Itoa((Int_t)jet_pt_max,10);
133 
134  // add to groupname the min,max pt cuts of jets in the container
135  groupname = groupname + "_" + "ptbin" + "_" + jetstrmin + "_" + jetstrmax;
136 
137 //######################################################################################################
138 // Get histo pointers from Hist Manager
139  histname = TString::Format("%s/histo1_%d", groupname.Data(), fCentBin);
140  TH1D* fH1 = (TH1D*)GetHistogram(histname.Data());
141 
142  histname = TString::Format("%s/histo2_%d", groupname.Data(), fCentBin);
143  TH1D* fH2 = (TH1D*)GetHistogram(histname.Data());
144 
145  histname = TString::Format("%s/histo3_%d", groupname.Data(), fCentBin);
146  TH1D* fH3 = (TH1D*)GetHistogram(histname.Data());
147 
148  histname = TString::Format("%s/histo4_%d", groupname.Data(), fCentBin);
149  TH1D* fH4 = (TH1D*)GetHistogram(histname.Data());
150 
151  histname = TString::Format("%s/histo4c_%d", groupname.Data(), fCentBin);
152  TH1D* fH4c = (TH1D*)GetHistogram(histname.Data());
153 
154  histname = TString::Format("%s/histo5_%d", groupname.Data(), fCentBin);
155  TH1D* fH5 = (TH1D*)GetHistogram(histname.Data());
156 
157  histname = TString::Format("%s/histo6_%d", groupname.Data(), fCentBin);
158  TH1D* fH6 = (TH1D*)GetHistogram(histname.Data());
159 
160  histname = TString::Format("%s/histo6c_%d", groupname.Data(), fCentBin);
161  TH1D* fH6c = (TH1D*)GetHistogram(histname.Data());
162 
163  histname = TString::Format("%s/histo7_%d", groupname.Data(), fCentBin);
164  TH2D* fH7 = (TH2D*)GetHistogram(histname.Data());
165 
166  histname = TString::Format("%s/histo7all_%d", groupname.Data(), fCentBin);
167  TH2D* fH7all = (TH2D*)GetHistogram(histname.Data());
168 //######################################################################################################
169  histname = TString::Format("%s/histo8_%d", groupname.Data(), fCentBin);
170  TH1D* fH8 = (TH1D*)GetHistogram(histname.Data());
171 
172  histname = TString::Format("%s/histo8_all_%d", groupname.Data(), fCentBin);
173  TH1D* fH8_all = (TH1D*)GetHistogram(histname.Data());
174 
175  histname = TString::Format("%s/histo8_p_%d", groupname.Data(), fCentBin);
176  TH1D* fH8_p = (TH1D*)GetHistogram(histname.Data());
177 
178  histname = TString::Format("%s/histo8_all_p_%d", groupname.Data(), fCentBin);
179  TH1D* fH8_all_p = (TH1D*)GetHistogram(histname.Data());
180 
181  histname = TString::Format("%s/histo8_pt_%d", groupname.Data(), fCentBin);
182  TH1D* fH8_pt = (TH1D*)GetHistogram(histname.Data());
183 
184  histname = TString::Format("%s/histo8_all_pt_%d", groupname.Data(), fCentBin);
185  TH1D* fH8_all_pt = (TH1D*)GetHistogram(histname.Data());
186 
187  histname = TString::Format("%s/histo8xi_%d", groupname.Data(), fCentBin);
188  TH1D* fH8xi = (TH1D*)GetHistogram(histname.Data());
189 
190  histname = TString::Format("%s/histo8xi_all_%d", groupname.Data(), fCentBin);
191  TH1D* fH8xi_all = (TH1D*)GetHistogram(histname.Data());
192 
193  histname = TString::Format("%s/histo8xi_p_%d", groupname.Data(), fCentBin);
194  TH1D* fH8xi_p = (TH1D*)GetHistogram(histname.Data());
195 
196  histname = TString::Format("%s/histo8xi_all_p_%d", groupname.Data(), fCentBin);
197  TH1D* fH8xi_all_p = (TH1D*)GetHistogram(histname.Data());
198 
199  histname = TString::Format("%s/histo8xi_pt_%d", groupname.Data(), fCentBin);
200  TH1D* fH8xi_pt = (TH1D*)GetHistogram(histname.Data());
201 
202  histname = TString::Format("%s/histo8xi_all_pt_%d", groupname.Data(), fCentBin);
203  TH1D* fH8xi_all_pt = (TH1D*)GetHistogram(histname.Data());
204 //######################################################################################################
205 
206  histname = TString::Format("%s/histo15_%d", groupname.Data(), fCentBin);
207  TH2D* fH15 = (TH2D*)GetHistogram(histname.Data());
208 
209  histname = TString::Format("%s/histo15_n70_%d", groupname.Data(), fCentBin);
210  TH2D* fH15_n70 = (TH2D*)GetHistogram(histname.Data());
211 
212  histname = TString::Format("%s/histo15_n75_%d", groupname.Data(), fCentBin);
213  TH2D* fH15_n75 = (TH2D*)GetHistogram(histname.Data());
214 
215  histname = TString::Format("%s/histo15_n80_%d", groupname.Data(), fCentBin);
216  TH2D* fH15_n80 = (TH2D*)GetHistogram(histname.Data());
217 
218  histname = TString::Format("%s/histo15_n85_%d", groupname.Data(), fCentBin);
219  TH2D* fH15_n85 = (TH2D*)GetHistogram(histname.Data());
220 
221  histname = TString::Format("%s/histo15_n90_%d", groupname.Data(), fCentBin);
222  TH2D* fH15_n90 = (TH2D*)GetHistogram(histname.Data());
223 
224  histname = TString::Format("%s/histo15_pt70_%d", groupname.Data(), fCentBin);
225  TH2D* fH15_pt70 = (TH2D*)GetHistogram(histname.Data());
226 
227  histname = TString::Format("%s/histo15_pt75_%d", groupname.Data(), fCentBin);
228  TH2D* fH15_pt75 = (TH2D*)GetHistogram(histname.Data());
229 
230  histname = TString::Format("%s/histo15_pt80_%d", groupname.Data(), fCentBin);
231  TH2D* fH15_pt80 = (TH2D*)GetHistogram(histname.Data());
232 
233  histname = TString::Format("%s/histo15_pt85_%d", groupname.Data(), fCentBin);
234  TH2D* fH15_pt85 = (TH2D*)GetHistogram(histname.Data());
235 
236  histname = TString::Format("%s/histo15_pt90_%d", groupname.Data(), fCentBin);
237  TH2D* fH15_pt90 = (TH2D*)GetHistogram(histname.Data());
238 
239  histname = TString::Format("%s/histo15all_%d", groupname.Data(), fCentBin);
240  TH2D* fH15all = (TH2D*)GetHistogram(histname.Data());
241 
242  histname = TString::Format("%s/histo15all_n70_%d", groupname.Data(), fCentBin);
243  TH2D* fH15all_n70 = (TH2D*)GetHistogram(histname.Data());
244 
245  histname = TString::Format("%s/histo15all_n75_%d", groupname.Data(), fCentBin);
246  TH2D* fH15all_n75 = (TH2D*)GetHistogram(histname.Data());
247 
248  histname = TString::Format("%s/histo15all_n80_%d", groupname.Data(), fCentBin);
249  TH2D* fH15all_n80 = (TH2D*)GetHistogram(histname.Data());
250 
251  histname = TString::Format("%s/histo15all_n85_%d", groupname.Data(), fCentBin);
252  TH2D* fH15all_n85 = (TH2D*)GetHistogram(histname.Data());
253 
254  histname = TString::Format("%s/histo15all_n90_%d", groupname.Data(), fCentBin);
255  TH2D* fH15all_n90 = (TH2D*)GetHistogram(histname.Data());
256 
257  histname = TString::Format("%s/histo15all_pt70_%d", groupname.Data(), fCentBin);
258  TH2D* fH15all_pt70 = (TH2D*)GetHistogram(histname.Data());
259 
260  histname = TString::Format("%s/histo15all_pt75_%d", groupname.Data(), fCentBin);
261  TH2D* fH15all_pt75 = (TH2D*)GetHistogram(histname.Data());
262 
263  histname = TString::Format("%s/histo15all_pt80_%d", groupname.Data(), fCentBin);
264  TH2D* fH15all_pt80 = (TH2D*)GetHistogram(histname.Data());
265 
266  histname = TString::Format("%s/histo15all_pt85_%d", groupname.Data(), fCentBin);
267  TH2D* fH15all_pt85 = (TH2D*)GetHistogram(histname.Data());
268 
269  histname = TString::Format("%s/histo15all_pt90_%d", groupname.Data(), fCentBin);
270  TH2D* fH15all_pt90 = (TH2D*)GetHistogram(histname.Data());
271 //######################################################################################################
272 
273  histname = TString::Format("%s/histo20_%d", groupname.Data(), fCentBin);
274  TH1D* fH20 = (TH1D*)GetHistogram(histname.Data());
275 
276  histname = TString::Format("%s/histo20_n70_%d", groupname.Data(), fCentBin);
277  TH1D* fH20_n70 = (TH1D*)GetHistogram(histname.Data());
278 
279  histname = TString::Format("%s/histo20_n75_%d", groupname.Data(), fCentBin);
280  TH1D* fH20_n75 = (TH1D*)GetHistogram(histname.Data());
281 
282  histname = TString::Format("%s/histo20_n80_%d", groupname.Data(), fCentBin);
283  TH1D* fH20_n80 = (TH1D*)GetHistogram(histname.Data());
284 
285  histname = TString::Format("%s/histo20_n85_%d", groupname.Data(), fCentBin);
286  TH1D* fH20_n85 = (TH1D*)GetHistogram(histname.Data());
287 
288  histname = TString::Format("%s/histo20_n90_%d", groupname.Data(), fCentBin);
289  TH1D* fH20_n90 = (TH1D*)GetHistogram(histname.Data());
290 
291  histname = TString::Format("%s/histo20_pt70_%d", groupname.Data(), fCentBin);
292  TH1D* fH20_pt70 = (TH1D*)GetHistogram(histname.Data());
293 
294  histname = TString::Format("%s/histo20_pt75_%d", groupname.Data(), fCentBin);
295  TH1D* fH20_pt75 = (TH1D*)GetHistogram(histname.Data());
296 
297  histname = TString::Format("%s/histo20_pt80_%d", groupname.Data(), fCentBin);
298  TH1D* fH20_pt80 = (TH1D*)GetHistogram(histname.Data());
299 
300  histname = TString::Format("%s/histo20_pt85_%d", groupname.Data(), fCentBin);
301  TH1D* fH20_pt85 = (TH1D*)GetHistogram(histname.Data());
302 
303  histname = TString::Format("%s/histo20_pt90_%d", groupname.Data(), fCentBin);
304  TH1D* fH20_pt90 = (TH1D*)GetHistogram(histname.Data());
305 
306  histname = TString::Format("%s/histo20all_%d", groupname.Data(), fCentBin);
307  TH1D* fH20all = (TH1D*)GetHistogram(histname.Data());
308 
309  histname = TString::Format("%s/histo20all_n70_%d", groupname.Data(), fCentBin);
310  TH1D* fH20all_n70 = (TH1D*)GetHistogram(histname.Data());
311 
312  histname = TString::Format("%s/histo20all_n75_%d", groupname.Data(), fCentBin);
313  TH1D* fH20all_n75 = (TH1D*)GetHistogram(histname.Data());
314 
315  histname = TString::Format("%s/histo20all_n80_%d", groupname.Data(), fCentBin);
316  TH1D* fH20all_n80 = (TH1D*)GetHistogram(histname.Data());
317 
318  histname = TString::Format("%s/histo20all_n85_%d", groupname.Data(), fCentBin);
319  TH1D* fH20all_n85 = (TH1D*)GetHistogram(histname.Data());
320 
321  histname = TString::Format("%s/histo20all_n90_%d", groupname.Data(), fCentBin);
322  TH1D* fH20all_n90 = (TH1D*)GetHistogram(histname.Data());
323 
324  histname = TString::Format("%s/histo20all_pt70_%d", groupname.Data(), fCentBin);
325  TH1D* fH20all_pt70 = (TH1D*)GetHistogram(histname.Data());
326 
327  histname = TString::Format("%s/histo20all_pt75_%d", groupname.Data(), fCentBin);
328  TH1D* fH20all_pt75 = (TH1D*)GetHistogram(histname.Data());
329 
330  histname = TString::Format("%s/histo20all_pt80_%d", groupname.Data(), fCentBin);
331  TH1D* fH20all_pt80 = (TH1D*)GetHistogram(histname.Data());
332 
333  histname = TString::Format("%s/histo20all_pt85_%d", groupname.Data(), fCentBin);
334  TH1D* fH20all_pt85 = (TH1D*)GetHistogram(histname.Data());
335 
336  histname = TString::Format("%s/histo20all_pt90_%d", groupname.Data(), fCentBin);
337  TH1D* fH20all_pt90 = (TH1D*)GetHistogram(histname.Data());
338 //######################################################################################################
339 
340  histname = TString::Format("%s/histo_g_%d", groupname.Data(), fCentBin);
341  TH1D* fHg = (TH1D*)GetHistogram(histname.Data());
342 
343  histname = TString::Format("%s/histo_g_n70_%d", groupname.Data(), fCentBin);
344  TH1D* fHg_n70 = (TH1D*)GetHistogram(histname.Data());
345 
346  histname = TString::Format("%s/histo_g_n75_%d", groupname.Data(), fCentBin);
347  TH1D* fHg_n75 = (TH1D*)GetHistogram(histname.Data());
348 
349  histname = TString::Format("%s/histo_g_n80_%d", groupname.Data(), fCentBin);
350  TH1D* fHg_n80 = (TH1D*)GetHistogram(histname.Data());
351 
352  histname = TString::Format("%s/histo_g_n85_%d", groupname.Data(), fCentBin);
353  TH1D* fHg_n85 = (TH1D*)GetHistogram(histname.Data());
354 
355  histname = TString::Format("%s/histo_g_n90_%d", groupname.Data(), fCentBin);
356  TH1D* fHg_n90 = (TH1D*)GetHistogram(histname.Data());
357 
358  histname = TString::Format("%s/histo_g_pt70_%d", groupname.Data(), fCentBin);
359  TH1D* fHg_pt70 = (TH1D*)GetHistogram(histname.Data());
360 
361  histname = TString::Format("%s/histo_g_pt75_%d", groupname.Data(), fCentBin);
362  TH1D* fHg_pt75 = (TH1D*)GetHistogram(histname.Data());
363 
364  histname = TString::Format("%s/histo_g_pt80_%d", groupname.Data(), fCentBin);
365  TH1D* fHg_pt80 = (TH1D*)GetHistogram(histname.Data());
366 
367  histname = TString::Format("%s/histo_g_pt85_%d", groupname.Data(), fCentBin);
368  TH1D* fHg_pt85 = (TH1D*)GetHistogram(histname.Data());
369 
370  histname = TString::Format("%s/histo_g_pt90_%d", groupname.Data(), fCentBin);
371  TH1D* fHg_pt90 = (TH1D*)GetHistogram(histname.Data());
372 //######################################################################################################
373 
374  histname = TString::Format("%s/histo_ptd_%d", groupname.Data(), fCentBin);
375  TH1D* fHptd = (TH1D*)GetHistogram(histname.Data());
376 
377  histname = TString::Format("%s/histo_ptd_n70_%d", groupname.Data(), fCentBin);
378  TH1D* fHptd_n70 = (TH1D*)GetHistogram(histname.Data());
379 
380  histname = TString::Format("%s/histo_ptd_n75_%d", groupname.Data(), fCentBin);
381  TH1D* fHptd_n75 = (TH1D*)GetHistogram(histname.Data());
382 
383  histname = TString::Format("%s/histo_ptd_n80_%d", groupname.Data(), fCentBin);
384  TH1D* fHptd_n80 = (TH1D*)GetHistogram(histname.Data());
385 
386  histname = TString::Format("%s/histo_ptd_n85_%d", groupname.Data(), fCentBin);
387  TH1D* fHptd_n85 = (TH1D*)GetHistogram(histname.Data());
388 
389  histname = TString::Format("%s/histo_ptd_n90_%d", groupname.Data(), fCentBin);
390  TH1D* fHptd_n90 = (TH1D*)GetHistogram(histname.Data());
391 
392  histname = TString::Format("%s/histo_ptd_pt70_%d", groupname.Data(), fCentBin);
393  TH1D* fHptd_pt70 = (TH1D*)GetHistogram(histname.Data());
394 
395  histname = TString::Format("%s/histo_ptd_pt75_%d", groupname.Data(), fCentBin);
396  TH1D* fHptd_pt75 = (TH1D*)GetHistogram(histname.Data());
397 
398  histname = TString::Format("%s/histo_ptd_pt80_%d", groupname.Data(), fCentBin);
399  TH1D* fHptd_pt80 = (TH1D*)GetHistogram(histname.Data());
400 
401  histname = TString::Format("%s/histo_ptd_pt85_%d", groupname.Data(), fCentBin);
402  TH1D* fHptd_pt85 = (TH1D*)GetHistogram(histname.Data());
403 
404  histname = TString::Format("%s/histo_ptd_pt90_%d", groupname.Data(), fCentBin);
405  TH1D* fHptd_pt90 = (TH1D*)GetHistogram(histname.Data());
406 //######################################################################################################
407 
408  histname = TString::Format("%s/histo_Rjt_%d", groupname.Data(), fCentBin);
409  TH2D* fH_Rjt = (TH2D*)GetHistogram(histname.Data());
410 
411  histname = TString::Format("%s/histo_Rjt_n70_%d", groupname.Data(), fCentBin);
412  TH2D* fH_Rjt_n70 = (TH2D*)GetHistogram(histname.Data());
413 
414  histname = TString::Format("%s/histo_Rjt_n75_%d", groupname.Data(), fCentBin);
415  TH2D* fH_Rjt_n75 = (TH2D*)GetHistogram(histname.Data());
416 
417  histname = TString::Format("%s/histo_Rjt_n80_%d", groupname.Data(), fCentBin);
418  TH2D* fH_Rjt_n80 = (TH2D*)GetHistogram(histname.Data());
419 
420  histname = TString::Format("%s/histo_Rjt_n85_%d", groupname.Data(), fCentBin);
421  TH2D* fH_Rjt_n85 = (TH2D*)GetHistogram(histname.Data());
422 
423  histname = TString::Format("%s/histo_Rjt_n90_%d", groupname.Data(), fCentBin);
424  TH2D* fH_Rjt_n90 = (TH2D*)GetHistogram(histname.Data());
425 
426  histname = TString::Format("%s/histo_Rjt_pt70_%d", groupname.Data(), fCentBin);
427  TH2D* fH_Rjt_pt70 = (TH2D*)GetHistogram(histname.Data());
428 
429  histname = TString::Format("%s/histo_Rjt_pt75_%d", groupname.Data(), fCentBin);
430  TH2D* fH_Rjt_pt75 = (TH2D*)GetHistogram(histname.Data());
431 
432  histname = TString::Format("%s/histo_Rjt_pt80_%d", groupname.Data(), fCentBin);
433  TH2D* fH_Rjt_pt80 = (TH2D*)GetHistogram(histname.Data());
434 
435  histname = TString::Format("%s/histo_Rjt_pt85_%d", groupname.Data(), fCentBin);
436  TH2D* fH_Rjt_pt85 = (TH2D*)GetHistogram(histname.Data());
437 
438  histname = TString::Format("%s/histo_Rjt_pt90_%d", groupname.Data(), fCentBin);
439  TH2D* fH_Rjt_pt90 = (TH2D*)GetHistogram(histname.Data());
440 //######################################################################################################
441 
442  histname = TString::Format("%s/histo_jt_%d", groupname.Data(), fCentBin);
443  TH1D* fH_jt = (TH1D*)GetHistogram(histname.Data());
444 
445  histname = TString::Format("%s/histo_jt_n70_%d", groupname.Data(), fCentBin);
446  TH1D* fH_jt_n70 = (TH1D*)GetHistogram(histname.Data());
447 
448  histname = TString::Format("%s/histo_jt_n75_%d", groupname.Data(), fCentBin);
449  TH1D* fH_jt_n75 = (TH1D*)GetHistogram(histname.Data());
450 
451  histname = TString::Format("%s/histo_jt_n80_%d", groupname.Data(), fCentBin);
452  TH1D* fH_jt_n80 = (TH1D*)GetHistogram(histname.Data());
453 
454  histname = TString::Format("%s/histo_jt_n85_%d", groupname.Data(), fCentBin);
455  TH1D* fH_jt_n85 = (TH1D*)GetHistogram(histname.Data());
456 
457  histname = TString::Format("%s/histo_jt_n90_%d", groupname.Data(), fCentBin);
458  TH1D* fH_jt_n90 = (TH1D*)GetHistogram(histname.Data());
459 
460  histname = TString::Format("%s/histo_jt_pt70_%d", groupname.Data(), fCentBin);
461  TH1D* fH_jt_pt70 = (TH1D*)GetHistogram(histname.Data());
462 
463  histname = TString::Format("%s/histo_jt_pt75_%d", groupname.Data(), fCentBin);
464  TH1D* fH_jt_pt75 = (TH1D*)GetHistogram(histname.Data());
465 
466  histname = TString::Format("%s/histo_jt_pt80_%d", groupname.Data(), fCentBin);
467  TH1D* fH_jt_pt80 = (TH1D*)GetHistogram(histname.Data());
468 
469  histname = TString::Format("%s/histo_jt_pt85_%d", groupname.Data(), fCentBin);
470  TH1D* fH_jt_pt85 = (TH1D*)GetHistogram(histname.Data());
471 
472  histname = TString::Format("%s/histo_jt_pt90_%d", groupname.Data(), fCentBin);
473  TH1D* fH_jt_pt90 = (TH1D*)GetHistogram(histname.Data());
474 
475 
476 //######################################################################################################
477  // get clusters connected to jets
478  AliClusterContainer* fCaloClustersCont = jetCont->GetClusterContainer();
479  // accepted clusters in cluster container
480  Int_t fNaccClus = -1;
481  if (fCaloClustersCont) { fNaccClus = fCaloClustersCont->GetNAcceptedClusters(); }
482 
483  fH5->Fill ( fNJets_accepted ); // Distribution of jets in events;
484 
485  UShort_t counter_part = 0; Double_t counter_pt = 0.; // counter for npart and pt recording
486  UShort_t jet_n90 = -99 ; Double_t jet_pt90 = -99.99 ;
487  UShort_t jet_n85 = -99 ; Double_t jet_pt85 = -99.99 ;
488  UShort_t jet_n80 = -99 ; Double_t jet_pt80 = -99.99 ;
489  UShort_t jet_n75 = -99 ; Double_t jet_pt75 = -99.99 ;
490  UShort_t jet_n70 = -99 ; Double_t jet_pt70 = -99.99 ;
491 
492  // variables used to compute g and ptD
493  Double_t g_tot = 0.; Double_t sum_part_pt_tot = 0.; Double_t sum_part_pt2_tot = 0.;
494  Double_t g_n90 = 0.; Double_t sum_part_pt_n90 = 0.; Double_t sum_part_pt2_n90 = 0.;
495  Double_t g_n85 = 0.; Double_t sum_part_pt_n85 = 0.; Double_t sum_part_pt2_n85 = 0.;
496  Double_t g_n80 = 0.; Double_t sum_part_pt_n80 = 0.; Double_t sum_part_pt2_n80 = 0.;
497  Double_t g_n75 = 0.; Double_t sum_part_pt_n75 = 0.; Double_t sum_part_pt2_n75 = 0.;
498  Double_t g_n70 = 0.; Double_t sum_part_pt_n70 = 0.; Double_t sum_part_pt2_n70 = 0.;
499  Double_t g_pt90 = 0.; Double_t sum_part_pt_pt90 = 0.; Double_t sum_part_pt2_pt90 = 0.;
500  Double_t g_pt85 = 0.; Double_t sum_part_pt_pt85 = 0.; Double_t sum_part_pt2_pt85 = 0.;
501  Double_t g_pt80 = 0.; Double_t sum_part_pt_pt80 = 0.; Double_t sum_part_pt2_pt80 = 0.;
502  Double_t g_pt75 = 0.; Double_t sum_part_pt_pt75 = 0.; Double_t sum_part_pt2_pt75 = 0.;
503  Double_t g_pt70 = 0.; Double_t sum_part_pt_pt70 = 0.; Double_t sum_part_pt2_pt70 = 0.;
504 
505  // **************************************************************
506  // LEADING JETS
507  // **************************************************************
508  if ( jet1 ) {
509  if ( fDebug > 1 ) { std::cout << "+++++++++++++++++>>>>>>>>> Leading jet found" << std::endl; jet1->Print(); }
510 
511  // vector of sorted indexes of particles in leading jet - jet1 : sorting by p_T jet constituents
512  std::vector< int > jet1_sorted_idxvec = jet1->GetPtSortedTrackConstituentIndexes ( fTracksContArray );
513 
514  Double_t jet1_pt = jet1->Pt();
515  UShort_t jet1_npart = jet1->GetNumberOfTracks();
516  UShort_t jet1_nconst = jet1->GetNumberOfConstituents();
517 
518  UShort_t jet1_n90 = ( UShort_t ) ( 0.90 * jet1_npart );
519  Double_t jet1_pt90 = 0.90 * jet1_pt;
520 
521  UShort_t jet1_n85 = ( UShort_t ) ( 0.85 * jet1_npart );
522  Double_t jet1_pt85 = 0.85 * jet1_pt;
523 
524  UShort_t jet1_n80 = ( UShort_t ) ( 0.80 * jet1_npart );
525  Double_t jet1_pt80 = 0.80 * jet1_pt;
526 
527  UShort_t jet1_n75 = ( UShort_t ) ( 0.75 * jet1_npart );
528  Double_t jet1_pt75 = 0.75 * jet1_pt;
529 
530  UShort_t jet1_n70 = ( UShort_t ) ( 0.70 * jet1_npart );
531  Double_t jet1_pt70 = 0.70 * jet1_pt;
532 
533  fH6->Fill ( jet1_npart ); // Multiplicity of jet1 - charged tracks
534  fH6c->Fill ( jet1_nconst ); // Multiplicity of jet1 - all constituents
535  fH7->Fill ( jet1_pt, jet1_nconst ); // N(jet) vs P_{T}(jet1)
536 
537  Int_t track_idx = -999; // index variable for tracks
538  counter_part = 0; counter_pt = 0.; // reset counters
539  //___________________________________________________________________________
540  // parsing tracks of jet1 (leading jet) in decreasing order of Pt
541  for (std::size_t i = 0; i < jet1_npart; i++ ) {
542  track_idx = jet1_sorted_idxvec.at (i);
543  //track = dynamic_cast<AliVParticle*>(fTracksContArray->At( track_idx ));
544  AliVParticle* track = jet1->TrackAt ( track_idx, fTracksContArray );
545  if (!track) { std::cout << "Parsing tracks of jet1 :: track not defined but it should!!!" << std::endl; continue; }
546 
547  Double_t dpart = jet1->DeltaR ( track );
548  Double_t track_pt = track->Pt();
549 
550  fH8->Fill ( jet1->GetZ ( track ) ); // Momentum distribution for leading jet (FF)
551  fH8xi->Fill ( jet1->GetXi ( track ) ); // Momentum distribution for leading jet (FF) xi
552 
553  Double_t z_p = CDF::Z_ptot(jet1, track);
554  fH8_p->Fill ( z_p ); // Momentum distribution for jets (FF)
555  fH8xi_p->Fill ( CDF::Xi (z_p) ); // Momentum distribution for jets (FF) xi
556 
557  Double_t z_pt = CDF::Z_pt(jet1, track);
558  fH8_pt->Fill ( z_pt ); // Momentum distribution for jets (FF)
559  fH8xi_pt->Fill ( CDF::Xi (z_pt) ); // Momentum distribution for jets (FF) xi
560 
561  fH15->Fill ( dpart, track_pt, track_pt ); // <p_{T}> track vs the Distance R from Jet1
562  fH20->Fill ( dpart ); // Distribution of R in leading jet
563 
564  // fill histograms for 70% of particles with highest pt
565  if ( counter_part <= jet1_n70 ) {
566  fH15_n70->Fill ( dpart, track_pt, track_pt ); // <p_{T}> track vs the Distance R from Jet1 - 80% of particles
567  fH20_n70->Fill ( dpart ); // Distribution of R in leading jet
568  }
569  // fill histograms for 75% of particles with highest pt
570  if ( counter_part <= jet1_n75 ) {
571  fH15_n75->Fill ( dpart, track_pt, track_pt ); // <p_{T}> track vs the Distance R from Jet1 - 80% of particles
572  fH20_n75->Fill ( dpart ); // Distribution of R in leading jet
573  }
574  // fill histograms for 80% of particles with highest pt
575  if ( counter_part <= jet1_n80 ) {
576  fH15_n80->Fill ( dpart, track_pt, track_pt ); // <p_{T}> track vs the Distance R from Jet1 - 80% of particles
577  fH20_n80->Fill ( dpart ); // Distribution of R in leading jet
578  }
579  // fill histograms for 85% of particles with highest pt
580  if ( counter_part <= jet1_n85 ) {
581  fH15_n85->Fill ( dpart, track_pt, track_pt ); // <p_{T}> track vs the Distance R from Jet1 - 80% of particles
582  fH20_n85->Fill ( dpart ); // Distribution of R in leading jet
583  }
584  // fill histograms for 90% of particles with highest pt
585  if ( counter_part <= jet1_n90 ) {
586  fH15_n90->Fill ( dpart, track_pt, track_pt ); // <p_{T}> track vs the Distance R from Jet1 - 80% of particles
587  fH20_n90->Fill ( dpart ); // Distribution of R in leading jet
588  }
589 
590  // fill histograms for particles that have first 70% of pt
591  if ( counter_pt <= jet1_pt70 ) {
592  fH15_pt70->Fill ( dpart, track_pt, track_pt ); // <p_{T}> track vs the Distance R from Jet1 - 80% of pt
593  fH20_pt70->Fill ( dpart ); // Distribution of R in leading jet
594  }
595  // fill histograms for particles that have first 75% of pt
596  if ( counter_pt <= jet1_pt75 ) {
597  fH15_pt75->Fill ( dpart, track_pt, track_pt ); // <p_{T}> track vs the Distance R from Jet1 - 80% of pt
598  fH20_pt75->Fill ( dpart ); // Distribution of R in leading jet
599  }
600  // fill histograms for particles that have first 80% of pt
601  if ( counter_pt <= jet1_pt80 ) {
602  fH15_pt80->Fill ( dpart, track_pt, track_pt ); // <p_{T}> track vs the Distance R from Jet1 - 80% of pt
603  fH20_pt80->Fill ( dpart ); // Distribution of R in leading jet
604  }
605  // fill histograms for particles that have first 80% of pt
606  if ( counter_pt <= jet1_pt85 ) {
607  fH15_pt85->Fill ( dpart, track_pt, track_pt ); // <p_{T}> track vs the Distance R from Jet1 - 80% of pt
608  fH20_pt85->Fill ( dpart ); // Distribution of R in leading jet
609  }
610  // fill histograms for particles that have first 80% of pt
611  if ( counter_pt <= jet1_pt90 ) {
612  fH15_pt90->Fill ( dpart, track_pt, track_pt ); // <p_{T}> track vs the Distance R from Jet1 - 80% of pt
613  fH20_pt90->Fill ( dpart ); // Distribution of R in leading jet
614  }
615 
616  ++counter_part; counter_pt += track_pt;
617  } // end of loop over jet1 tracks
618  } // end of jet1 (leading jet) processing
619 
620  // **************************************************************
621  // ALL JETS
622  // **************************************************************
623  Double_t jet_pt = 0. ; UShort_t jet_npart = 0; UShort_t jet_nconst = 0;
624 
625  // loop over all jets
626  for( auto jet : jetCont->accepted()) {
627  if (!jet) { continue; }
628 
629  // vector of sorted indexes of particles in jet
630  std::vector< int > jet_sorted_idxvec ;
631 
632  Int_t track_idx = -999; // index variable for tracks
633  jet_pt = 0. ; jet_npart = 0; jet_nconst = 0;
634  counter_part = 0; counter_pt = 0.; // reset counters
635 
636  // jet : Sorting by p_T jet constituents
637  jet_sorted_idxvec.clear();
638  jet_sorted_idxvec = jet->GetPtSortedTrackConstituentIndexes ( fTracksContArray );
639 
640  jet_pt = jet->Pt();
641  jet_npart = jet->GetNumberOfTracks();
642  jet_nconst = jet->GetNumberOfConstituents();
643 
644  // variables for g and pdt computations
645  g_tot = 0.; sum_part_pt_tot = 0.; sum_part_pt2_tot = 0.;
646  g_n90 = 0.; sum_part_pt_n90 = 0.; sum_part_pt2_n90 = 0.;
647  g_n85 = 0.; sum_part_pt_n85 = 0.; sum_part_pt2_n85 = 0.;
648  g_n80 = 0.; sum_part_pt_n80 = 0.; sum_part_pt2_n80 = 0.;
649  g_n75 = 0.; sum_part_pt_n75 = 0.; sum_part_pt2_n75 = 0.;
650  g_n70 = 0.; sum_part_pt_n70 = 0.; sum_part_pt2_n70 = 0.;
651  g_pt90 = 0.; sum_part_pt_pt90 = 0.; sum_part_pt2_pt90 = 0.;
652  g_pt85 = 0.; sum_part_pt_pt85 = 0.; sum_part_pt2_pt85 = 0.;
653  g_pt80 = 0.; sum_part_pt_pt80 = 0.; sum_part_pt2_pt80 = 0.;
654  g_pt75 = 0.; sum_part_pt_pt75 = 0.; sum_part_pt2_pt75 = 0.;
655  g_pt70 = 0.; sum_part_pt_pt70 = 0.; sum_part_pt2_pt70 = 0.;
656 
657  // sentinels for the pt tail cuts
658  jet_n90 = ( UShort_t ) ( 0.9 * jet_npart );
659  jet_pt90 = 0.9 * jet_pt;
660 
661  jet_n85 = ( UShort_t ) ( 0.85 * jet_npart );
662  jet_pt85 = 0.85 * jet_pt;
663 
664  jet_n80 = ( UShort_t ) ( 0.8 * jet_npart );
665  jet_pt80 = 0.8 * jet_pt;
666 
667  jet_n75 = ( UShort_t ) ( 0.75 * jet_npart );
668  jet_pt75 = 0.75 * jet_pt;
669 
670  jet_n70 = ( UShort_t ) ( 0.7 * jet_npart );
671  jet_pt70 = 0.7 * jet_pt;
672 
673  fH1->Fill ( jet_pt ); // Pt distribution of jets
674  fH2->Fill ( jet->Eta() ); // Eta distribution of jets
675  fH3->Fill ( jet->Phi() ); // Phi distribution of jets
676  fH4->Fill ( jet_npart ); // Multiplicity of jets
677  fH4c->Fill ( jet_nconst ); // Multiplicity of jets - all constituents
678  fH7all->Fill ( jet_pt, jet_nconst ); // N(jet) vs P_{T} - all jets
679 
680  // parsing all jet tracks
681  for (std::size_t i = 0; i < jet_npart; i++ ) {
682  track_idx = jet_sorted_idxvec.at (i);
683  //track = dynamic_cast<AliVParticle*>(fTracksContArray->At( track_idx ));
684  AliVParticle* track = jet->TrackAt ( track_idx, fTracksContArray );
685  if (!track) { std::cout << "Parsing tracks of jets :: track not defined but it should!!!" << std::endl; continue; }
686 
687  Double_t dpart = jet->DeltaR ( track );
688  Double_t track_pt = track->Pt();
689  Double_t jt = CDF::Perp (*track, *jet);
690 
691  fH8_all->Fill ( jet->GetZ ( track ) ); // Momentum distribution for jets (FF)
692  fH8xi_all->Fill ( jet->GetXi ( track ) ); // Momentum distribution for jets (FF) xi
693 
694  Double_t z_p = CDF::Z_ptot(jet,track);
695  fH8_all_p->Fill ( z_p ); // Momentum distribution for jets (FF)
696  fH8xi_all_p->Fill ( CDF::Xi (z_p) ); // Momentum distribution for jets (FF) xi
697 
698  Double_t z_pt = CDF::Z_pt(jet,track);
699  fH8_all_pt->Fill ( z_pt ); // Momentum distribution for jets (FF)
700  fH8xi_all_pt->Fill ( CDF::Xi (z_pt) ); // Momentum distribution for jets (FF) xi
701 
702  fH15all->Fill ( dpart, track_pt, track_pt ); // p_{T} track vs the Distance R from jet
703  fH20all->Fill ( dpart ); // Distribution of R in leading jet
704 
705  fH_Rjt->Fill ( dpart, jt, jt ); // jt track vs dR weighted with jt
706  fH_jt->Fill ( jt ); // jt track vs dR
707 
708  // computing components for g and ptD in the jet tracks loop
709  g_tot += (track_pt * dpart)/jet_pt;
710  sum_part_pt_tot += TMath::Abs(track_pt);
711  sum_part_pt2_tot += TMath::Power( track_pt, 2 );
712 
713  //#############################################################################################
714  if ( counter_part <= jet_n90 ) {
715  fH15all_n90->Fill ( dpart, track_pt ); // p_{T} track vs the Distance R from Jet - 80% of particles
716  fH20all_n90->Fill ( dpart );
717  fH_Rjt_n90->Fill ( dpart, jt, jt );
718  fH_jt_n90->Fill ( jt ); // jt track vs dR
719 
720  // computing components for g and ptD in the jet tracks loop
721  g_n90 += (track_pt * dpart)/jet_pt;
722  sum_part_pt_n90 += track_pt;
723  sum_part_pt2_n90 += TMath::Power( track_pt, 2 );
724  }
725 
726  if ( counter_pt <= jet_pt90 ) {
727  fH15all_pt90->Fill ( dpart, track_pt ); // p_{T} track vs the Distance R from Jet - 80% of pt
728  fH20all_pt90->Fill ( dpart );
729  fH_Rjt_pt90->Fill ( dpart, jt, jt );
730  fH_jt_pt90->Fill ( jt ); // jt track vs dR
731 
732  // computing components for g and ptD in the jet tracks loop
733  g_pt90 += (track_pt * dpart)/jet_pt;
734  sum_part_pt_pt90 += track_pt;
735  sum_part_pt2_pt90 += TMath::Power( track_pt, 2 );
736  }
737 
738  //#############################################################################################
739  if ( counter_part <= jet_n85 ) {
740  fH15all_n85->Fill ( dpart, track_pt ); // p_{T} track vs the Distance R from Jet - 80% of particles
741  fH20all_n85->Fill ( dpart );
742  fH_Rjt_n85->Fill ( dpart, jt, jt );
743  fH_jt_n85->Fill ( jt ); // jt track vs dR
744 
745  // computing components for g and ptD in the jet tracks loop
746  g_n85 += (track_pt * dpart)/jet_pt;
747  sum_part_pt_n85 += track_pt;
748  sum_part_pt2_n85 += TMath::Power( track_pt, 2 );
749  }
750 
751  if ( counter_pt <= jet_pt85 ) {
752  fH15all_pt85->Fill ( dpart, track_pt ); // p_{T} track vs the Distance R from Jet - 80% of pt
753  fH20all_pt85->Fill ( dpart );
754  fH_Rjt_pt85->Fill ( dpart, jt, jt );
755  fH_jt_pt85->Fill ( jt ); // jt track vs dR
756 
757  // computing components for g and ptD in the jet tracks loop
758  g_pt85 += (track_pt * dpart)/jet_pt;
759  sum_part_pt_pt85 += track_pt;
760  sum_part_pt2_pt85 += TMath::Power( track_pt, 2 );
761  }
762 
763  //#############################################################################################
764  if ( counter_part <= jet_n80 ) {
765  fH15all_n80->Fill ( dpart, track_pt ); // p_{T} track vs the Distance R from Jet - 80% of particles
766  fH20all_n80->Fill ( dpart );
767  fH_Rjt_n80->Fill ( dpart, jt, jt );
768  fH_jt_n80->Fill ( jt ); // jt track vs dR
769 
770  // computing components for g and ptD in the jet tracks loop
771  g_n80 += (track_pt * dpart)/jet_pt;
772  sum_part_pt_n80 += track_pt;
773  sum_part_pt2_n80 += TMath::Power( track_pt, 2 );
774  }
775 
776  if ( counter_pt <= jet_pt80 ) {
777  fH15all_pt80->Fill ( dpart, track_pt ); // p_{T} track vs the Distance R from Jet - 80% of pt
778  fH20all_pt80->Fill ( dpart );
779  fH_Rjt_pt80->Fill ( dpart, jt, jt );
780  fH_jt_pt80->Fill ( jt ); // jt track vs dR
781 
782  // computing components for g and ptD in the jet tracks loop
783  g_pt80 += (track_pt * dpart)/jet_pt;
784  sum_part_pt_pt80 += track_pt;
785  sum_part_pt2_pt80 += TMath::Power( track_pt, 2 );
786  }
787 
788  //#############################################################################################
789  if ( counter_part <= jet_n75 ) {
790  fH15all_n75->Fill ( dpart, track_pt ); // p_{T} track vs the Distance R from Jet - 80% of particles
791  fH20all_n75->Fill ( dpart );
792  fH_Rjt_n75->Fill ( dpart, jt, jt );
793  fH_jt_n75->Fill ( jt ); // jt track vs dR
794 
795  // computing components for g and ptD in the jet tracks loop
796  g_n75 += (track_pt * dpart)/jet_pt;
797  sum_part_pt_n75 += track_pt;
798  sum_part_pt2_n75 += TMath::Power( track_pt, 2 );
799  }
800 
801  if ( counter_pt <= jet_pt75 ) {
802  fH15all_pt75->Fill ( dpart, track_pt ); // p_{T} track vs the Distance R from Jet - 80% of pt
803  fH20all_pt75->Fill ( dpart );
804  fH_Rjt_pt75->Fill ( dpart, jt, jt );
805  fH_jt_pt75->Fill ( jt ); // jt track vs dR
806 
807  // computing components for g and ptD in the jet tracks loop
808  g_pt75 += (track_pt * dpart)/jet_pt;
809  sum_part_pt_pt75 += track_pt;
810  sum_part_pt2_pt75 += TMath::Power( track_pt, 2 );
811  }
812 
813  //#############################################################################################
814  if ( counter_part <= jet_n70 ) {
815  fH15all_n70->Fill ( dpart, track_pt ); // p_{T} track vs the Distance R from Jet - 80% of particles
816  fH20all_n70->Fill ( dpart );
817  fH_Rjt_n70->Fill ( dpart, jt, jt );
818  fH_jt_n70->Fill ( jt ); // jt track vs dR
819 
820  // computing components for g and ptD in the jet tracks loop
821  g_n70 += (track_pt * dpart)/jet_pt;
822  sum_part_pt_n70 += track_pt;
823  sum_part_pt2_n70 += TMath::Power( track_pt, 2 );
824  }
825 
826  if ( counter_pt <= jet_pt70 ) {
827  fH15all_pt70->Fill ( dpart, track_pt ); // p_{T} track vs the Distance R from Jet - 80% of pt
828  fH20all_pt70->Fill ( dpart );
829  fH_Rjt_pt70->Fill ( dpart, jt, jt );
830  fH_jt_pt70->Fill ( jt ); // jt track vs dR
831 
832  // computing components for g and ptD in the jet tracks loop
833  g_pt70 += (track_pt * dpart)/jet_pt;
834  sum_part_pt_pt70 += track_pt;
835  sum_part_pt2_pt70 += TMath::Power( track_pt, 2 );
836  }
837  ++counter_part; counter_pt += track_pt;
838  } // end of loop over jet tracks
839 
840  fHg->Fill ( g_tot );
841  fHg_n70->Fill ( g_n70 ); fHg_pt70->Fill ( g_pt70 );
842  fHg_n75->Fill ( g_n75 ); fHg_pt75->Fill ( g_pt75 );
843  fHg_n80->Fill ( g_n80 ); fHg_pt80->Fill ( g_pt80 );
844  fHg_n85->Fill ( g_n85 ); fHg_pt85->Fill ( g_pt85 );
845  fHg_n90->Fill ( g_n90 ); fHg_pt90->Fill ( g_pt90 );
846 
847  if ( sum_part_pt_tot > 1e-8 )
848  { fHptd->Fill( TMath::Sqrt(sum_part_pt2_tot)/sum_part_pt_tot ); }
849  else
850  { if ( fDebug > 2 ) cout << "sum_part_pt_tot aprox 0!!!!" << endl; }
851 
852  if ( sum_part_pt_n70 > 1e-8 )
853  { fHptd_n70->Fill( TMath::Sqrt(sum_part_pt2_n70)/sum_part_pt_n70 ); }
854  else
855  { if ( fDebug > 2 ) cout << "sum_part_pt_n70 aprox 0!!!!" << endl; }
856 
857  if ( sum_part_pt_n75 > 1e-8 )
858  { fHptd_n75->Fill( TMath::Sqrt(sum_part_pt2_n75)/sum_part_pt_n75 ); }
859  else
860  { if ( fDebug > 2 ) cout << "sum_part_pt_n75 aprox 0!!!!" << endl; }
861 
862  if ( sum_part_pt_n80 > 1e-8 )
863  { fHptd_n80->Fill( TMath::Sqrt(sum_part_pt2_n80)/sum_part_pt_n80 ); }
864  else
865  { if ( fDebug > 2 ) cout << "sum_part_pt_n80 aprox 0!!!!" << endl; }
866 
867  if ( sum_part_pt_n85 > 1e-8 )
868  { fHptd_n85->Fill( TMath::Sqrt(sum_part_pt2_n85)/sum_part_pt_n85 ); }
869  else
870  { if ( fDebug > 2 ) cout << "sum_part_pt_n85 aprox 0!!!!" << endl; }
871 
872  if ( sum_part_pt_n90 > 1e-8 )
873  { fHptd_n90->Fill( TMath::Sqrt(sum_part_pt2_n90)/sum_part_pt_n90 ); }
874  else
875  { if ( fDebug > 2 ) cout << "sum_part_pt_n90 aprox 0!!!!" << endl; }
876 
877  if ( sum_part_pt_pt70 > 1e-8 )
878  { fHptd_pt70->Fill( TMath::Sqrt(sum_part_pt2_pt70)/sum_part_pt_pt70 ); }
879  else
880  { if ( fDebug > 2 ) cout << "sum_part_pt_pt70 aprox 0!!!!" << endl; }
881 
882  if ( sum_part_pt_pt75 > 1e-8 )
883  { fHptd_pt75->Fill( TMath::Sqrt(sum_part_pt2_pt75)/sum_part_pt_pt75 ); }
884  else
885  { if ( fDebug > 2 ) cout << "sum_part_pt_pt75 aprox 0!!!!" << endl; }
886 
887  if ( sum_part_pt_pt80 > 1e-8 )
888  { fHptd_pt80->Fill( TMath::Sqrt(sum_part_pt2_pt80)/sum_part_pt_pt80 ); }
889  else
890  { if ( fDebug > 2 ) cout << "sum_part_pt_pt80 aprox 0!!!!" << endl; }
891 
892  if ( sum_part_pt_pt85 > 1e-8 )
893  { fHptd_pt85->Fill( TMath::Sqrt(sum_part_pt2_pt85)/sum_part_pt_pt85 ); }
894  else
895  { if ( fDebug > 2 ) cout << "sum_part_pt_pt85 aprox 0!!!!" << endl; }
896 
897  if ( sum_part_pt_pt90 > 1e-8 )
898  { fHptd_pt90->Fill( TMath::Sqrt(sum_part_pt2_pt90)/sum_part_pt_pt90 ); }
899  else
900  { if ( fDebug > 2 ) cout << "sum_part_pt_pt90 aprox 0!!!!" << endl; }
901 
902  } // end of loopt over all jets
903  } // end of loop over jet container collection
904 
905  // post data at every processing
906  PostData ( 1, fOutput ); // Post data for ALL output slots > 0 here.
907  return kTRUE;
908  }
909 
910 //________________________________________________________________________
912  {
913  // Create user output.
915 
916  TString histname = "", histtitle = "", groupname = "", fullgroupname = "";
917  AliJetContainer* jetCont = 0;
918  TIter next(&fJetCollArray);
919  while ((jetCont = static_cast<AliJetContainer*>(next())))
920  {
921  groupname = jetCont->GetName();
922 
923  Double_t jet_pt_min = jetCont->GetMinPt();
924  Double_t jet_pt_max = jetCont->GetMaxPt();
925 
926  TString jetstrmin = TString::Itoa((Int_t)jet_pt_min,10);
927  TString jetstrmax = TString::Itoa((Int_t)jet_pt_max,10);
928 
929  // add to groupname the min,max pt cuts of jets in the container
930  groupname = groupname + "_" + "ptbin" + "_" + jetstrmin + "_" + jetstrmax;
931 
932  fHistManager.CreateHistoGroup(groupname);
933  for (Int_t cent = 0; cent < fNcentBins; cent++)
934  {
935  //=====================================================================================
936  Int_t h1_nbin = 300; Double_t h1_binwidth = 1; Double_t h1_low = 0;
937  Double_t h1_high = h1_low + h1_binwidth * h1_nbin; // 1GeV/bin
938  histname = TString::Format("%s/histo1_%d", groupname.Data(), cent);
939  histtitle = TString::Format("%s;#it{p}_{T,jet} (GeV/#it{c}) (accepted);Jets", histname.Data()); // Pt distro of jets
940  fHistManager.CreateTH1(histname, histtitle, h1_nbin, h1_low, h1_high);
941 
942  //=====================================================================================
943  Int_t h2_nbin = 200; Double_t h2_binwidth = 0.01; Double_t h2_low = -1;
944  Double_t h2_high = h2_low + h2_binwidth * h2_nbin;
945  histname = TString::Format("%s/histo2_%d", groupname.Data(), cent);
946  histtitle = TString::Format("%s;#it{#eta}_{jet};Jets", histname.Data()); // Eta distro of jets
947  fHistManager.CreateTH1(histname, histtitle, h2_nbin, h2_low, h2_high); // 1 unit of rapidity / 100 bin
948 
949  //=====================================================================================
950  Int_t h3_nbin = 126; Double_t h3_binwidth = 0.05; Double_t h3_low = 0.;
951  Double_t h3_high = h3_low + h3_binwidth * h3_nbin;
952  histname = TString::Format("%s/histo3_%d", groupname.Data(), cent);
953  histtitle = TString::Format("%s;#it{#phi}_{jet};Jets", histname.Data()); // Phi distro of jets
954  fHistManager.CreateTH1(histname, histtitle, h3_nbin, h3_low, h3_high);
955 
956  //=====================================================================================
957  Int_t h4_nbin = 100; Double_t h4_binwidth = 1; Double_t h4_low = 0;
958  Double_t h4_high = h4_low + h4_binwidth * h4_nbin; // 1 unit of multiplicity /bin
959  histname = TString::Format("%s/histo4_%d", groupname.Data(), cent);
960  histtitle = TString::Format("%s;N_{tracks}(jet);Jets", histname.Data()); // Multiplicity of all jets; chg tracks
961  fHistManager.CreateTH1(histname, histtitle, h4_nbin, h4_low, h4_high);
962 
963  histname = TString::Format("%s/histo4c_%d", groupname.Data(), cent);
964  histtitle = TString::Format("%s;N_{tracks}(jet);Jets", histname.Data());
965  fHistManager.CreateTH1(histname, histtitle, h4_nbin, h4_low, h4_high); // Multiplicity of all jets; all tracks
966 
967  histname = TString::Format("%s/histo6_%d", groupname.Data(), cent);
968  histtitle = TString::Format("%s;N_{tracks}(jet1);Jets", histname.Data()); // Multiplicity of jet1; chg tracks
969  fHistManager.CreateTH1(histname, histtitle, h4_nbin, h4_low, h4_high);
970 
971  histname = TString::Format("%s/histo6c_%d", groupname.Data(), cent);
972  histtitle = TString::Format("%s;N_{tracks}(jet1);Jets", histname.Data()); // Multiplicity of jet1; all tracks
973  fHistManager.CreateTH1(histname, histtitle, h4_nbin, h4_low, h4_high);
974  //#####################################
975 
976  //=====================================================================================
977  Int_t h5_nbin = 100; Double_t h5_binwidth = 1; Double_t h5_low = 0;
978  Double_t h5_high = h5_low + h5_binwidth * h5_nbin;
979  histname = TString::Format("%s/histo5_%d", groupname.Data(), cent);
980  histtitle = TString::Format("%s;N_{jets};Events", histname.Data()); // Distribution of jets in events
981  fHistManager.CreateTH1(histname, histtitle, h5_nbin, h5_low, h5_high);
982 
983  //=====================================================================================
984  Int_t h7_xnbin = 300; Double_t h7_xbinwidth = 1; Double_t h7_xlow = 0;
985  Double_t h7_xhigh = h7_xlow + h7_xbinwidth * h7_xnbin;
986  Int_t h7_ynbin = 100; Double_t h7_ybinwidth = 1; Double_t h7_ylow = 0;
987  Double_t h7_yhigh = h7_ylow + h7_ybinwidth * h7_ynbin;
988 
989  histname = TString::Format("%s/histo7_%d", groupname.Data(), cent);
990  histtitle = TString::Format("%s;#it{p}_{T,jet1} (GeV/c);N_{tracks}(jet1)", histname.Data()); // N vs pt jet1
991  fHistManager.CreateTH2(histname, histtitle, h7_xnbin, h7_xlow, h7_xhigh, h7_ynbin, h7_ylow, h7_yhigh);
992 
993  histname = TString::Format("%s/histo7all_%d", groupname.Data(), cent);
994  histtitle = TString::Format("%s;#it{p}_{T,jet} (GeV/c);N_{tracks}(jets)", histname.Data()); // N vs pt all jets
995  fHistManager.CreateTH2(histname, histtitle, h7_xnbin, h7_xlow, h7_xhigh, h7_ynbin, h7_ylow, h7_yhigh);
996  //#####################################
997 
998  //=====================================================================================
999  Int_t h8_nbin = 101; Double_t h8_binwidth = 0.01; Double_t h8_low = 0;
1000  Double_t h8_high = h8_low + h8_binwidth * h8_nbin;
1001 
1002  // Standard implementation of Z
1003  histname = TString::Format("%s/histo8_%d", groupname.Data(), cent);
1004  histtitle = TString::Format("%s - jet1;z;F(Z) = 1/N_{jet1} dN/dz", histname.Data()); // scalar z ; jet1
1005  fHistManager.CreateTH1(histname, histtitle, h8_nbin, h8_low, h8_high);
1006 
1007  histname = TString::Format("%s/histo8_all_%d", groupname.Data(), cent);
1008  histtitle = TString::Format("%s - all jets;z;F(Z) = 1/N_{jets} dN/dz", histname.Data()); // scalar z ; all jets
1009  fHistManager.CreateTH1(histname, histtitle, h8_nbin, h8_low, h8_high);
1010 
1011  //########################################################
1012  // P_tot implementation of Z
1013  histname = TString::Format("%s/histo8_p_%d", groupname.Data(), cent);
1014  histtitle = TString::Format("%s - jet1 P_tot;z = p_{track}/p_{jet1};F(Z) = 1/N_{jet1} dN/dz", histname.Data());
1015  fHistManager.CreateTH1(histname, histtitle, h8_nbin, h8_low, h8_high);
1016 
1017  histname = TString::Format("%s/histo8_all_p_%d", groupname.Data(), cent);
1018  histtitle = TString::Format("%s - all jets P_tot;z = p_{track}/p_{jet};F(Z) = 1/N_{jets} dN/dz", histname.Data());
1019  fHistManager.CreateTH1(histname, histtitle, h8_nbin, h8_low, h8_high);
1020 
1021  //########################################################
1022  // Pt implementation of Z
1023  histname = TString::Format("%s/histo8_pt_%d", groupname.Data(), cent);
1024  histtitle = TString::Format("%s - jet1 Pt;z = p_{T,track}/p_{T,jet1};F(Z) = 1/N_{jet1} dN/dz", histname.Data());
1025  fHistManager.CreateTH1(histname, histtitle, h8_nbin, h8_low, h8_high);
1026 
1027  histname = TString::Format("%s/histo8_all_pt_%d", groupname.Data(), cent);
1028  histtitle = TString::Format("%s - all jets Pt;z = p_{T,track}/p_{T,jet1};F(Z) = 1/N_{jets} dN/dz", histname.Data());
1029  fHistManager.CreateTH1(histname, histtitle, h8_nbin, h8_low, h8_high);
1030  //########################################################
1031 
1032  //=====================================================================================
1033  Int_t h8xi_nbin = 140; Double_t h8xi_binwidth = 0.05; Double_t h8xi_low = 0;
1034  Double_t h8xi_high = h8xi_low + h8xi_binwidth * h8xi_nbin;
1035  histname = TString::Format("%s/histo8xi_%d", groupname.Data(), cent);
1036  histtitle = TString::Format("%s - jet1;#xi = ln(1/z);D(#xi) = 1/N_{jet1} dN/d#xi", histname.Data());
1037  fHistManager.CreateTH1(histname, histtitle, h8xi_nbin, h8xi_low, h8xi_high);
1038 
1039  histname = TString::Format("%s/histo8xi_all_%d", groupname.Data(), cent);
1040  histtitle = TString::Format("%s - all jets;#xi = ln(1/z);D(#xi) = 1/N_{jets} dN/d#xi", histname.Data());
1041  fHistManager.CreateTH1(histname, histtitle, h8xi_nbin, h8xi_low, h8xi_high);
1042 
1043  //########################################################
1044  histname = TString::Format("%s/histo8xi_p_%d", groupname.Data(), cent);
1045  histtitle = TString::Format("%s - jet1 P_tot;#xi = ln(1/z);D(#xi) = 1/N_{jet1} dN/d#xi", histname.Data());
1046  fHistManager.CreateTH1(histname, histtitle, h8xi_nbin, h8xi_low, h8xi_high);
1047 
1048  histname = TString::Format("%s/histo8xi_all_p_%d", groupname.Data(), cent);
1049  histtitle = TString::Format("%s - all jets P_tot;#xi = ln(1/z);D(#xi) = 1/N_{jets} dN/d#xi", histname.Data());
1050  fHistManager.CreateTH1(histname, histtitle, h8xi_nbin, h8xi_low, h8xi_high);
1051 
1052  //########################################################
1053  histname = TString::Format("%s/histo8xi_pt_%d", groupname.Data(), cent);
1054  histtitle = TString::Format("%s - jet1 Pt;#xi = ln(1/z);D(#xi) = 1/N_{jet1} dN/d#xi", histname.Data());
1055  fHistManager.CreateTH1(histname, histtitle, h8xi_nbin, h8xi_low, h8xi_high);
1056 
1057  histname = TString::Format("%s/histo8xi_all_pt_%d", groupname.Data(), cent);
1058  histtitle = TString::Format("%s - all jets Pt;#xi = ln(1/z);D(#xi) = 1/N_{jets} dN/d#xi", histname.Data());
1059  fHistManager.CreateTH1(histname, histtitle, h8xi_nbin, h8xi_low, h8xi_high);
1060  //########################################################
1061 
1062  //=====================================================================================
1063  Int_t h15_xnbin = 60; Double_t h15_xbinwidth = 0.01; Double_t h15_xlow = 0.;
1064  Double_t h15_xhigh = h15_xlow + h15_xbinwidth * h15_xnbin;
1065  Int_t h15_ynbin = 400; Double_t h15_ybinwidth = 1.; Double_t h15_ylow = 0.;
1066  Double_t h15_yhigh = h15_ylow + h15_ybinwidth * h15_ynbin;
1067 
1068  //########################################################
1069  histname = TString::Format("%s/histo15_%d", groupname.Data(), cent);
1070  histtitle = TString::Format("%s - jet1;dR;#it{p}_{T,track} (GeV/c)", histname.Data()); // p_T track vs dR
1071  fHistManager.CreateTH2(histname, histtitle, h15_xnbin, h15_xlow, h15_xhigh, h15_ynbin, h15_ylow, h15_yhigh);
1072 
1073  //########################################################
1074  histname = TString::Format("%s/histo15_n70_%d", groupname.Data(), cent);
1075  histtitle = TString::Format("%s - jet1;dR;#it{p}_{T,track} (GeV/c)", histname.Data()); // p_T track vs dR
1076  fHistManager.CreateTH2(histname, histtitle, h15_xnbin, h15_xlow, h15_xhigh, h15_ynbin, h15_ylow, h15_yhigh);
1077 
1078  histname = TString::Format("%s/histo15_n75_%d", groupname.Data(), cent);
1079  histtitle = TString::Format("%s - jet1;dR;#it{p}_{T,track} (GeV/c)", histname.Data()); // p_T track vs dR
1080  fHistManager.CreateTH2(histname, histtitle, h15_xnbin, h15_xlow, h15_xhigh, h15_ynbin, h15_ylow, h15_yhigh);
1081 
1082  histname = TString::Format("%s/histo15_n80_%d", groupname.Data(), cent);
1083  histtitle = TString::Format("%s - jet1;dR;#it{p}_{T,track} (GeV/c)", histname.Data()); // p_T track vs dR
1084  fHistManager.CreateTH2(histname, histtitle, h15_xnbin, h15_xlow, h15_xhigh, h15_ynbin, h15_ylow, h15_yhigh);
1085 
1086  histname = TString::Format("%s/histo15_n85_%d", groupname.Data(), cent);
1087  histtitle = TString::Format("%s - jet1;dR;#it{p}_{T,track} (GeV/c)", histname.Data()); // p_T track vs dR
1088  fHistManager.CreateTH2(histname, histtitle, h15_xnbin, h15_xlow, h15_xhigh, h15_ynbin, h15_ylow, h15_yhigh);
1089 
1090  histname = TString::Format("%s/histo15_n90_%d", groupname.Data(), cent);
1091  histtitle = TString::Format("%s - jet1;dR;#it{p}_{T,track} (GeV/c)", histname.Data()); // p_T track vs dR
1092  fHistManager.CreateTH2(histname, histtitle, h15_xnbin, h15_xlow, h15_xhigh, h15_ynbin, h15_ylow, h15_yhigh);
1093 
1094  //########################################################
1095  histname = TString::Format("%s/histo15_pt70_%d", groupname.Data(), cent);
1096  histtitle = TString::Format("%s - jet1;dR;#it{p}_{T,track} (GeV/c)", histname.Data()); // p_T track vs dR
1097  fHistManager.CreateTH2(histname, histtitle, h15_xnbin, h15_xlow, h15_xhigh, h15_ynbin, h15_ylow, h15_yhigh);
1098 
1099  histname = TString::Format("%s/histo15_pt75_%d", groupname.Data(), cent);
1100  histtitle = TString::Format("%s - jet1;dR;#it{p}_{T,track} (GeV/c)", histname.Data()); // p_T track vs dR
1101  fHistManager.CreateTH2(histname, histtitle, h15_xnbin, h15_xlow, h15_xhigh, h15_ynbin, h15_ylow, h15_yhigh);
1102 
1103  histname = TString::Format("%s/histo15_pt80_%d", groupname.Data(), cent);
1104  histtitle = TString::Format("%s - jet1;dR;#it{p}_{T,track} (GeV/c)", histname.Data()); // p_T track vs dR
1105  fHistManager.CreateTH2(histname, histtitle, h15_xnbin, h15_xlow, h15_xhigh, h15_ynbin, h15_ylow, h15_yhigh);
1106 
1107  histname = TString::Format("%s/histo15_pt85_%d", groupname.Data(), cent);
1108  histtitle = TString::Format("%s - jet1;dR;#it{p}_{T,track} (GeV/c)", histname.Data()); // p_T track vs dR
1109  fHistManager.CreateTH2(histname, histtitle, h15_xnbin, h15_xlow, h15_xhigh, h15_ynbin, h15_ylow, h15_yhigh);
1110 
1111  histname = TString::Format("%s/histo15_pt90_%d", groupname.Data(), cent);
1112  histtitle = TString::Format("%s - jet1;dR;#it{p}_{T,track} (GeV/c)", histname.Data()); // p_T track vs dR
1113  fHistManager.CreateTH2(histname, histtitle, h15_xnbin, h15_xlow, h15_xhigh, h15_ynbin, h15_ylow, h15_yhigh);
1114  //########################################################
1115 
1116  //########################################################
1117  histname = TString::Format("%s/histo15all_%d", groupname.Data(), cent);
1118  histtitle = TString::Format("%s - all jets;dR;#it{p}_{T,track} (GeV/c)", histname.Data()); // p_T track vs dR
1119  fHistManager.CreateTH2(histname, histtitle, h15_xnbin, h15_xlow, h15_xhigh, h15_ynbin, h15_ylow, h15_yhigh);
1120 
1121  //########################################################
1122  histname = TString::Format("%s/histo15all_n70_%d", groupname.Data(), cent);
1123  histtitle = TString::Format("%s - all jets;dR;#it{p}_{T,track} (GeV/c)", histname.Data()); // p_T track vs dR
1124  fHistManager.CreateTH2(histname, histtitle, h15_xnbin, h15_xlow, h15_xhigh, h15_ynbin, h15_ylow, h15_yhigh);
1125 
1126  histname = TString::Format("%s/histo15all_n75_%d", groupname.Data(), cent);
1127  histtitle = TString::Format("%s - all jets;dR;#it{p}_{T,track} (GeV/c)", histname.Data()); // p_T track vs dR
1128  fHistManager.CreateTH2(histname, histtitle, h15_xnbin, h15_xlow, h15_xhigh, h15_ynbin, h15_ylow, h15_yhigh);
1129 
1130  histname = TString::Format("%s/histo15all_n80_%d", groupname.Data(), cent);
1131  histtitle = TString::Format("%s - all jets;dR;#it{p}_{T,track} (GeV/c)", histname.Data()); // p_T track vs dR
1132  fHistManager.CreateTH2(histname, histtitle, h15_xnbin, h15_xlow, h15_xhigh, h15_ynbin, h15_ylow, h15_yhigh);
1133 
1134  histname = TString::Format("%s/histo15all_n85_%d", groupname.Data(), cent);
1135  histtitle = TString::Format("%s - all jets;dR;#it{p}_{T,track} (GeV/c)", histname.Data()); // p_T track vs dR
1136  fHistManager.CreateTH2(histname, histtitle, h15_xnbin, h15_xlow, h15_xhigh, h15_ynbin, h15_ylow, h15_yhigh);
1137 
1138  histname = TString::Format("%s/histo15all_n90_%d", groupname.Data(), cent);
1139  histtitle = TString::Format("%s - all jets;dR;#it{p}_{T,track} (GeV/c)", histname.Data()); // p_T track vs dR
1140  fHistManager.CreateTH2(histname, histtitle, h15_xnbin, h15_xlow, h15_xhigh, h15_ynbin, h15_ylow, h15_yhigh);
1141 
1142  //########################################################
1143  histname = TString::Format("%s/histo15all_pt70_%d", groupname.Data(), cent);
1144  histtitle = TString::Format("%s - all jets;dR;#it{p}_{T,track} (GeV/c)", histname.Data()); // p_T track vs dR
1145  fHistManager.CreateTH2(histname, histtitle, h15_xnbin, h15_xlow, h15_xhigh, h15_ynbin, h15_ylow, h15_yhigh);
1146 
1147  histname = TString::Format("%s/histo15all_pt75_%d", groupname.Data(), cent);
1148  histtitle = TString::Format("%s - all jets;dR;#it{p}_{T,track} (GeV/c)", histname.Data()); // p_T track vs dR
1149  fHistManager.CreateTH2(histname, histtitle, h15_xnbin, h15_xlow, h15_xhigh, h15_ynbin, h15_ylow, h15_yhigh);
1150 
1151  histname = TString::Format("%s/histo15all_pt80_%d", groupname.Data(), cent);
1152  histtitle = TString::Format("%s - all jets;dR;#it{p}_{T,track} (GeV/c)", histname.Data()); // p_T track vs dR
1153  fHistManager.CreateTH2(histname, histtitle, h15_xnbin, h15_xlow, h15_xhigh, h15_ynbin, h15_ylow, h15_yhigh);
1154 
1155  histname = TString::Format("%s/histo15all_pt85_%d", groupname.Data(), cent);
1156  histtitle = TString::Format("%s - all jets;dR;#it{p}_{T,track} (GeV/c)", histname.Data()); // p_T track vs dR
1157  fHistManager.CreateTH2(histname, histtitle, h15_xnbin, h15_xlow, h15_xhigh, h15_ynbin, h15_ylow, h15_yhigh);
1158 
1159  histname = TString::Format("%s/histo15all_pt90_%d", groupname.Data(), cent);
1160  histtitle = TString::Format("%s - all jets;dR;#it{p}_{T,track} (GeV/c)", histname.Data()); // p_T track vs dR
1161  fHistManager.CreateTH2(histname, histtitle, h15_xnbin, h15_xlow, h15_xhigh, h15_ynbin, h15_ylow, h15_yhigh);
1162  //########################################################
1163 
1164  //=====================================================================================
1165  Int_t h20_nbin = 60; Double_t h20_binwidth = 0.01; Double_t h20_low = 0.;
1166  Double_t h20_high = h20_low + h20_binwidth * h20_nbin;
1167 
1168  //########################################################
1169  histname = TString::Format("%s/histo20_%d", groupname.Data(), cent);
1170  histtitle = TString::Format("%s - jet1;R_{tracks};dN/dR", histname.Data());
1171  fHistManager.CreateTH1(histname, histtitle, h20_nbin, h20_low, h20_high);
1172 
1173  //########################################################
1174  histname = TString::Format("%s/histo20_n70_%d", groupname.Data(), cent);
1175  histtitle = TString::Format("%s - jet1;R_{tracks};dN/dR", histname.Data());
1176  fHistManager.CreateTH1(histname, histtitle, h20_nbin, h20_low, h20_high);
1177 
1178  histname = TString::Format("%s/histo20_n75_%d", groupname.Data(), cent);
1179  histtitle = TString::Format("%s - jet1;R_{tracks};dN/dR", histname.Data());
1180  fHistManager.CreateTH1(histname, histtitle, h20_nbin, h20_low, h20_high);
1181 
1182  histname = TString::Format("%s/histo20_n80_%d", groupname.Data(), cent);
1183  histtitle = TString::Format("%s - jet1;R_{tracks};dN/dR", histname.Data());
1184  fHistManager.CreateTH1(histname, histtitle, h20_nbin, h20_low, h20_high);
1185 
1186  histname = TString::Format("%s/histo20_n85_%d", groupname.Data(), cent);
1187  histtitle = TString::Format("%s - jet1;R_{tracks};dN/dR", histname.Data());
1188  fHistManager.CreateTH1(histname, histtitle, h20_nbin, h20_low, h20_high);
1189 
1190  histname = TString::Format("%s/histo20_n90_%d", groupname.Data(), cent);
1191  histtitle = TString::Format("%s - jet1;R_{tracks};dN/dR", histname.Data());
1192  fHistManager.CreateTH1(histname, histtitle, h20_nbin, h20_low, h20_high);
1193  //########################################################
1194 
1195  //########################################################
1196  histname = TString::Format("%s/histo20_pt70_%d", groupname.Data(), cent);
1197  histtitle = TString::Format("%s - jet1;R_{tracks};dN/dR", histname.Data());
1198  fHistManager.CreateTH1(histname, histtitle, h20_nbin, h20_low, h20_high);
1199 
1200  histname = TString::Format("%s/histo20_pt75_%d", groupname.Data(), cent);
1201  histtitle = TString::Format("%s - jet1;R_{tracks};dN/dR", histname.Data());
1202  fHistManager.CreateTH1(histname, histtitle, h20_nbin, h20_low, h20_high);
1203 
1204  histname = TString::Format("%s/histo20_pt80_%d", groupname.Data(), cent);
1205  histtitle = TString::Format("%s - jet1;R_{tracks};dN/dR", histname.Data());
1206  fHistManager.CreateTH1(histname, histtitle, h20_nbin, h20_low, h20_high);
1207 
1208  histname = TString::Format("%s/histo20_pt85_%d", groupname.Data(), cent);
1209  histtitle = TString::Format("%s - jet1;R_{tracks};dN/dR", histname.Data());
1210  fHistManager.CreateTH1(histname, histtitle, h20_nbin, h20_low, h20_high);
1211 
1212  histname = TString::Format("%s/histo20_pt90_%d", groupname.Data(), cent);
1213  histtitle = TString::Format("%s - jet1;R_{tracks};dN/dR", histname.Data());
1214  fHistManager.CreateTH1(histname, histtitle, h20_nbin, h20_low, h20_high);
1215  //########################################################
1216 
1217  //########################################################
1218  histname = TString::Format("%s/histo20all_%d", groupname.Data(), cent);
1219  histtitle = TString::Format("%s - all jets;R_{tracks};dN/dR", histname.Data());
1220  fHistManager.CreateTH1(histname, histtitle, h20_nbin, h20_low, h20_high);
1221 
1222  //########################################################
1223  histname = TString::Format("%s/histo20all_n70_%d", groupname.Data(), cent);
1224  histtitle = TString::Format("%s - all jets;R_{tracks};dN/dR", histname.Data());
1225  fHistManager.CreateTH1(histname, histtitle, h20_nbin, h20_low, h20_high);
1226 
1227  histname = TString::Format("%s/histo20all_n75_%d", groupname.Data(), cent);
1228  histtitle = TString::Format("%s - all jets;R_{tracks};dN/dR", histname.Data());
1229  fHistManager.CreateTH1(histname, histtitle, h20_nbin, h20_low, h20_high);
1230 
1231  histname = TString::Format("%s/histo20all_n80_%d", groupname.Data(), cent);
1232  histtitle = TString::Format("%s - all jets;R_{tracks};dN/dR", histname.Data());
1233  fHistManager.CreateTH1(histname, histtitle, h20_nbin, h20_low, h20_high);
1234 
1235  histname = TString::Format("%s/histo20all_n85_%d", groupname.Data(), cent);
1236  histtitle = TString::Format("%s - all jets;R_{tracks};dN/dR", histname.Data());
1237  fHistManager.CreateTH1(histname, histtitle, h20_nbin, h20_low, h20_high);
1238 
1239  histname = TString::Format("%s/histo20all_n90_%d", groupname.Data(), cent);
1240  histtitle = TString::Format("%s - all jets;R_{tracks};dN/dR", histname.Data());
1241  fHistManager.CreateTH1(histname, histtitle, h20_nbin, h20_low, h20_high);
1242  //########################################################
1243 
1244  //########################################################
1245  histname = TString::Format("%s/histo20all_pt70_%d", groupname.Data(), cent);
1246  histtitle = TString::Format("%s - all jets;R_{tracks};dN/dR", histname.Data());
1247  fHistManager.CreateTH1(histname, histtitle, h20_nbin, h20_low, h20_high);
1248 
1249  histname = TString::Format("%s/histo20all_pt75_%d", groupname.Data(), cent);
1250  histtitle = TString::Format("%s - all jets;R_{tracks};dN/dR", histname.Data());
1251  fHistManager.CreateTH1(histname, histtitle, h20_nbin, h20_low, h20_high);
1252 
1253  histname = TString::Format("%s/histo20all_pt80_%d", groupname.Data(), cent);
1254  histtitle = TString::Format("%s - all jets;R_{tracks};dN/dR", histname.Data());
1255  fHistManager.CreateTH1(histname, histtitle, h20_nbin, h20_low, h20_high);
1256 
1257  histname = TString::Format("%s/histo20all_pt85_%d", groupname.Data(), cent);
1258  histtitle = TString::Format("%s - all jets;R_{tracks};dN/dR", histname.Data());
1259  fHistManager.CreateTH1(histname, histtitle, h20_nbin, h20_low, h20_high);
1260 
1261  histname = TString::Format("%s/histo20all_pt90_%d", groupname.Data(), cent);
1262  histtitle = TString::Format("%s - all jets;R_{tracks};dN/dR", histname.Data());
1263  fHistManager.CreateTH1(histname, histtitle, h20_nbin, h20_low, h20_high);
1264  //########################################################
1265 
1266  //=====================================================================================
1267  // Distribution of girth (radial girth) g = sum_jet_parts ( r_i * ( pt_i/pt_jet ) )
1268  Int_t hg_nbin = 50; Double_t hg_binwidth = 0.01; Double_t hg_low = 0.;
1269  Double_t hg_high = hg_low + hg_binwidth * hg_nbin;
1270 
1271  //########################################################
1272  histname = TString::Format("%s/histo_g_%d", groupname.Data(), cent);
1273  histtitle = TString::Format("%s - all jets;g;1/N_{jets} dN/dg", histname.Data());
1274  fHistManager.CreateTH1(histname, histtitle, hg_nbin, hg_low, hg_high);
1275  //########################################################
1276 
1277  //########################################################
1278  histname = TString::Format("%s/histo_g_n70_%d", groupname.Data(), cent);
1279  histtitle = TString::Format("%s - all jets;g;1/N_{jets} dN/dg", histname.Data());
1280  fHistManager.CreateTH1(histname, histtitle, hg_nbin, hg_low, hg_high);
1281 
1282  histname = TString::Format("%s/histo_g_n75_%d", groupname.Data(), cent);
1283  histtitle = TString::Format("%s - all jets;g;1/N_{jets} dN/dg", histname.Data());
1284  fHistManager.CreateTH1(histname, histtitle, hg_nbin, hg_low, hg_high);
1285 
1286  histname = TString::Format("%s/histo_g_n80_%d", groupname.Data(), cent);
1287  histtitle = TString::Format("%s - all jets;g;1/N_{jets} dN/dg", histname.Data());
1288  fHistManager.CreateTH1(histname, histtitle, hg_nbin, hg_low, hg_high);
1289 
1290  histname = TString::Format("%s/histo_g_n85_%d", groupname.Data(), cent);
1291  histtitle = TString::Format("%s - all jets;g;1/N_{jets} dN/dg", histname.Data());
1292  fHistManager.CreateTH1(histname, histtitle, hg_nbin, hg_low, hg_high);
1293 
1294  histname = TString::Format("%s/histo_g_n90_%d", groupname.Data(), cent);
1295  histtitle = TString::Format("%s - all jets;g;1/N_{jets} dN/dg", histname.Data());
1296  fHistManager.CreateTH1(histname, histtitle, hg_nbin, hg_low, hg_high);
1297  //########################################################
1298 
1299  //########################################################
1300  histname = TString::Format("%s/histo_g_pt70_%d", groupname.Data(), cent);
1301  histtitle = TString::Format("%s - all jets;g;1/N_{jets} dN/dg", histname.Data());
1302  fHistManager.CreateTH1(histname, histtitle, hg_nbin, hg_low, hg_high);
1303 
1304  histname = TString::Format("%s/histo_g_pt75_%d", groupname.Data(), cent);
1305  histtitle = TString::Format("%s - all jets;g;1/N_{jets} dN/dg", histname.Data());
1306  fHistManager.CreateTH1(histname, histtitle, hg_nbin, hg_low, hg_high);
1307 
1308  histname = TString::Format("%s/histo_g_pt80_%d", groupname.Data(), cent);
1309  histtitle = TString::Format("%s - all jets;g;1/N_{jets} dN/dg", histname.Data());
1310  fHistManager.CreateTH1(histname, histtitle, hg_nbin, hg_low, hg_high);
1311 
1312  histname = TString::Format("%s/histo_g_pt85_%d", groupname.Data(), cent);
1313  histtitle = TString::Format("%s - all jets;g;1/N_{jets} dN/dg", histname.Data());
1314  fHistManager.CreateTH1(histname, histtitle, hg_nbin, hg_low, hg_high);
1315 
1316  histname = TString::Format("%s/histo_g_pt90_%d", groupname.Data(), cent);
1317  histtitle = TString::Format("%s - all jets;g;1/N_{jets} dN/dg", histname.Data());
1318  fHistManager.CreateTH1(histname, histtitle, hg_nbin, hg_low, hg_high);
1319  //########################################################
1320 
1321  //=====================================================================================
1322  // Distribution of dispersion d pt_D = sqrt ( sum (pt_i^2) )/sum (pt_i)
1323  Int_t hptd_nbin = 40; Double_t hptd_binwidth = 0.05; Double_t hptd_low = 0.;
1324  Double_t hptd_high = hptd_low + hptd_binwidth * hptd_nbin;
1325 
1326  //########################################################
1327  histname = TString::Format("%s/histo_ptd_%d", groupname.Data(), cent);
1328  histtitle = TString::Format("%s - all jets;ptd;1/N_{jets} dN/dp_{T}D", histname.Data());
1329  fHistManager.CreateTH1(histname, histtitle, hptd_nbin, hptd_low, hptd_high);
1330  //########################################################
1331 
1332  //########################################################
1333  histname = TString::Format("%s/histo_ptd_n70_%d", groupname.Data(), cent);
1334  histtitle = TString::Format("%s - all jets;ptd;1/N_{jets} dN/dp_{T}D", histname.Data());
1335  fHistManager.CreateTH1(histname, histtitle, hptd_nbin, hptd_low, hptd_high);
1336 
1337  histname = TString::Format("%s/histo_ptd_n75_%d", groupname.Data(), cent);
1338  histtitle = TString::Format("%s - all jets;ptd;1/N_{jets} dN/dp_{T}D", histname.Data());
1339  fHistManager.CreateTH1(histname, histtitle, hptd_nbin, hptd_low, hptd_high);
1340 
1341  histname = TString::Format("%s/histo_ptd_n80_%d", groupname.Data(), cent);
1342  histtitle = TString::Format("%s - all jets;ptd;1/N_{jets} dN/dp_{T}D", histname.Data());
1343  fHistManager.CreateTH1(histname, histtitle, hptd_nbin, hptd_low, hptd_high);
1344 
1345  histname = TString::Format("%s/histo_ptd_n85_%d", groupname.Data(), cent);
1346  histtitle = TString::Format("%s - all jets;ptd;1/N_{jets} dN/dp_{T}D", histname.Data());
1347  fHistManager.CreateTH1(histname, histtitle, hptd_nbin, hptd_low, hptd_high);
1348 
1349  histname = TString::Format("%s/histo_ptd_n90_%d", groupname.Data(), cent);
1350  histtitle = TString::Format("%s - all jets;ptd;1/N_{jets} dN/dp_{T}D", histname.Data());
1351  fHistManager.CreateTH1(histname, histtitle, hptd_nbin, hptd_low, hptd_high);
1352  //########################################################
1353 
1354  //########################################################
1355  histname = TString::Format("%s/histo_ptd_pt70_%d", groupname.Data(), cent);
1356  histtitle = TString::Format("%s - all jets;ptd;1/N_{jets} dN/dp_{T}D", histname.Data());
1357  fHistManager.CreateTH1(histname, histtitle, hptd_nbin, hptd_low, hptd_high);
1358 
1359  histname = TString::Format("%s/histo_ptd_pt75_%d", groupname.Data(), cent);
1360  histtitle = TString::Format("%s - all jets;ptd;1/N_{jets} dN/dp_{T}D", histname.Data());
1361  fHistManager.CreateTH1(histname, histtitle, hptd_nbin, hptd_low, hptd_high);
1362 
1363  histname = TString::Format("%s/histo_ptd_pt80_%d", groupname.Data(), cent);
1364  histtitle = TString::Format("%s - all jets;ptd;1/N_{jets} dN/dp_{T}D", histname.Data());
1365  fHistManager.CreateTH1(histname, histtitle, hptd_nbin, hptd_low, hptd_high);
1366 
1367  histname = TString::Format("%s/histo_ptd_pt85_%d", groupname.Data(), cent);
1368  histtitle = TString::Format("%s - all jets;ptd;1/N_{jets} dN/dp_{T}D", histname.Data());
1369  fHistManager.CreateTH1(histname, histtitle, hptd_nbin, hptd_low, hptd_high);
1370 
1371  histname = TString::Format("%s/histo_ptd_pt90_%d", groupname.Data(), cent);
1372  histtitle = TString::Format("%s - all jets;ptd;1/N_{jets} dN/dp_{T}D", histname.Data());
1373  fHistManager.CreateTH1(histname, histtitle, hptd_nbin, hptd_low, hptd_high);
1374  //########################################################
1375 
1376  //=====================================================================================
1377  Int_t h_Rjt_xnbin = 60; Double_t h_Rjt_xbinwidth = 0.01; Double_t h_Rjt_xlow = 0.;
1378  Double_t h_Rjt_xhigh = h_Rjt_xlow + h_Rjt_xbinwidth * h_Rjt_xnbin;
1379  Int_t h_Rjt_ynbin = 500; Double_t h_Rjt_ybinwidth = 0.01; Double_t h_Rjt_ylow = 0.;
1380  Double_t h_Rjt_yhigh = h_Rjt_ylow + h_Rjt_ybinwidth * h_Rjt_ynbin;
1381 
1382  //########################################################
1383  histname = TString::Format("%s/histo_Rjt_%d", groupname.Data(), cent);
1384  histtitle = TString::Format("%s ;dR;j_{T} (GeV/c);", histname.Data()); // j_T track vs dR
1385  fHistManager.CreateTH2(histname, histtitle, h_Rjt_xnbin, h_Rjt_xlow, h_Rjt_xhigh, h_Rjt_ynbin, h_Rjt_ylow, h_Rjt_yhigh);
1386 
1387  //########################################################
1388  histname = TString::Format("%s/histo_Rjt_n70_%d", groupname.Data(), cent);
1389  histtitle = TString::Format("%s ;dR;j_{T} (GeV/c);", histname.Data()); // j_T track vs dR
1390  fHistManager.CreateTH2(histname, histtitle, h_Rjt_xnbin, h_Rjt_xlow, h_Rjt_xhigh, h_Rjt_ynbin, h_Rjt_ylow, h_Rjt_yhigh);
1391 
1392  histname = TString::Format("%s/histo_Rjt_n75_%d", groupname.Data(), cent);
1393  histtitle = TString::Format("%s ;dR;j_{T} (GeV/c);", histname.Data()); // j_T track vs dR
1394  fHistManager.CreateTH2(histname, histtitle, h_Rjt_xnbin, h_Rjt_xlow, h_Rjt_xhigh, h_Rjt_ynbin, h_Rjt_ylow, h_Rjt_yhigh);
1395 
1396  histname = TString::Format("%s/histo_Rjt_n80_%d", groupname.Data(), cent);
1397  histtitle = TString::Format("%s ;dR;j_{T} (GeV/c);", histname.Data()); // j_T track vs dR
1398  fHistManager.CreateTH2(histname, histtitle, h_Rjt_xnbin, h_Rjt_xlow, h_Rjt_xhigh, h_Rjt_ynbin, h_Rjt_ylow, h_Rjt_yhigh);
1399 
1400  histname = TString::Format("%s/histo_Rjt_n85_%d", groupname.Data(), cent);
1401  histtitle = TString::Format("%s ;dR;j_{T} (GeV/c);", histname.Data()); // j_T track vs dR
1402  fHistManager.CreateTH2(histname, histtitle, h_Rjt_xnbin, h_Rjt_xlow, h_Rjt_xhigh, h_Rjt_ynbin, h_Rjt_ylow, h_Rjt_yhigh);
1403 
1404  histname = TString::Format("%s/histo_Rjt_n90_%d", groupname.Data(), cent);
1405  histtitle = TString::Format("%s ;dR;j_{T} (GeV/c);", histname.Data()); // j_T track vs dR
1406  fHistManager.CreateTH2(histname, histtitle, h_Rjt_xnbin, h_Rjt_xlow, h_Rjt_xhigh, h_Rjt_ynbin, h_Rjt_ylow, h_Rjt_yhigh);
1407 
1408  //########################################################
1409  histname = TString::Format("%s/histo_Rjt_pt70_%d", groupname.Data(), cent);
1410  histtitle = TString::Format("%s ;dR;j_{T} (GeV/c);", histname.Data()); // j_T track vs dR
1411  fHistManager.CreateTH2(histname, histtitle, h_Rjt_xnbin, h_Rjt_xlow, h_Rjt_xhigh, h_Rjt_ynbin, h_Rjt_ylow, h_Rjt_yhigh);
1412 
1413  histname = TString::Format("%s/histo_Rjt_pt75_%d", groupname.Data(), cent);
1414  histtitle = TString::Format("%s ;dR;j_{T} (GeV/c);", histname.Data()); // j_T track vs dR
1415  fHistManager.CreateTH2(histname, histtitle, h_Rjt_xnbin, h_Rjt_xlow, h_Rjt_xhigh, h_Rjt_ynbin, h_Rjt_ylow, h_Rjt_yhigh);
1416 
1417  histname = TString::Format("%s/histo_Rjt_pt80_%d", groupname.Data(), cent);
1418  histtitle = TString::Format("%s ;dR;j_{T} (GeV/c);", histname.Data()); // j_T track vs dR
1419  fHistManager.CreateTH2(histname, histtitle, h_Rjt_xnbin, h_Rjt_xlow, h_Rjt_xhigh, h_Rjt_ynbin, h_Rjt_ylow, h_Rjt_yhigh);
1420 
1421  histname = TString::Format("%s/histo_Rjt_pt85_%d", groupname.Data(), cent);
1422  histtitle = TString::Format("%s ;dR;j_{T} (GeV/c);", histname.Data()); // j_T track vs dR
1423  fHistManager.CreateTH2(histname, histtitle, h_Rjt_xnbin, h_Rjt_xlow, h_Rjt_xhigh, h_Rjt_ynbin, h_Rjt_ylow, h_Rjt_yhigh);
1424 
1425  histname = TString::Format("%s/histo_Rjt_pt90_%d", groupname.Data(), cent);
1426  histtitle = TString::Format("%s ;dR;j_{T} (GeV/c);", histname.Data()); // j_T track vs dR
1427  fHistManager.CreateTH2(histname, histtitle, h_Rjt_xnbin, h_Rjt_xlow, h_Rjt_xhigh, h_Rjt_ynbin, h_Rjt_ylow, h_Rjt_yhigh);
1428  //########################################################
1429 
1430  //=====================================================================================
1431  Int_t h_jt_xnbin = 500; Double_t h_jt_xbinwidth = 0.01; Double_t h_jt_xlow = 0.;
1432  Double_t h_jt_xhigh = h_jt_xlow + h_jt_xbinwidth * h_jt_xnbin;
1433 
1434  //########################################################
1435  histname = TString::Format("%s/histo_jt_%d", groupname.Data(), cent);
1436  histtitle = TString::Format("%s ;j_{T} (GeV/c);1/N_{jets} dN/dj_{T};", histname.Data()); // j_T track vs dR
1437  fHistManager.CreateTH1(histname, histtitle, h_jt_xnbin, h_jt_xlow, h_jt_xhigh);
1438 
1439  //########################################################
1440  histname = TString::Format("%s/histo_jt_n70_%d", groupname.Data(), cent);
1441  histtitle = TString::Format("%s ;j_{T} (GeV/c);1/N_{jets} dN/dj_{T};", histname.Data()); // j_T track vs dR
1442  fHistManager.CreateTH1(histname, histtitle, h_jt_xnbin, h_jt_xlow, h_jt_xhigh);
1443 
1444  histname = TString::Format("%s/histo_jt_n75_%d", groupname.Data(), cent);
1445  histtitle = TString::Format("%s ;j_{T} (GeV/c);1/N_{jets} dN/dj_{T};", histname.Data()); // j_T track vs dR
1446  fHistManager.CreateTH1(histname, histtitle, h_jt_xnbin, h_jt_xlow, h_jt_xhigh);
1447 
1448  histname = TString::Format("%s/histo_jt_n80_%d", groupname.Data(), cent);
1449  histtitle = TString::Format("%s ;j_{T} (GeV/c);1/N_{jets} dN/dj_{T};", histname.Data()); // j_T track vs dR
1450  fHistManager.CreateTH1(histname, histtitle, h_jt_xnbin, h_jt_xlow, h_jt_xhigh);
1451 
1452  histname = TString::Format("%s/histo_jt_n85_%d", groupname.Data(), cent);
1453  histtitle = TString::Format("%s ;j_{T} (GeV/c);1/N_{jets} dN/dj_{T};", histname.Data()); // j_T track vs dR
1454  fHistManager.CreateTH1(histname, histtitle, h_jt_xnbin, h_jt_xlow, h_jt_xhigh);
1455 
1456  histname = TString::Format("%s/histo_jt_n90_%d", groupname.Data(), cent);
1457  histtitle = TString::Format("%s ;j_{T} (GeV/c);1/N_{jets} dN/dj_{T};", histname.Data()); // j_T track vs dR
1458  fHistManager.CreateTH1(histname, histtitle, h_jt_xnbin, h_jt_xlow, h_jt_xhigh);
1459 
1460  //########################################################
1461  histname = TString::Format("%s/histo_jt_pt70_%d", groupname.Data(), cent);
1462  histtitle = TString::Format("%s ;j_{T} (GeV/c);1/N_{jets} dN/dj_{T};", histname.Data()); // j_T track vs dR
1463  fHistManager.CreateTH1(histname, histtitle, h_jt_xnbin, h_jt_xlow, h_jt_xhigh);
1464 
1465  histname = TString::Format("%s/histo_jt_pt75_%d", groupname.Data(), cent);
1466  histtitle = TString::Format("%s ;j_{T} (GeV/c);1/N_{jets} dN/dj_{T};", histname.Data()); // j_T track vs dR
1467  fHistManager.CreateTH1(histname, histtitle, h_jt_xnbin, h_jt_xlow, h_jt_xhigh);
1468 
1469  histname = TString::Format("%s/histo_jt_pt80_%d", groupname.Data(), cent);
1470  histtitle = TString::Format("%s ;j_{T} (GeV/c);1/N_{jets} dN/dj_{T};", histname.Data()); // j_T track vs dR
1471  fHistManager.CreateTH1(histname, histtitle, h_jt_xnbin, h_jt_xlow, h_jt_xhigh);
1472 
1473  histname = TString::Format("%s/histo_jt_pt85_%d", groupname.Data(), cent);
1474  histtitle = TString::Format("%s ;j_{T} (GeV/c);1/N_{jets} dN/dj_{T};", histname.Data()); // j_T track vs dR
1475  fHistManager.CreateTH1(histname, histtitle, h_jt_xnbin, h_jt_xlow, h_jt_xhigh);
1476 
1477  histname = TString::Format("%s/histo_jt_pt90_%d", groupname.Data(), cent);
1478  histtitle = TString::Format("%s ;j_{T} (GeV/c);1/N_{jets} dN/dj_{T};", histname.Data()); // j_T track vs dR
1479  fHistManager.CreateTH1(histname, histtitle, h_jt_xnbin, h_jt_xlow, h_jt_xhigh);
1480  //########################################################
1481 
1482  }
1483  //end of loop over fNcentBins
1484  }
1485  // end of loop over jet containers
1486 
1487  // =========== Switch on Sumw2 for all histos ===========
1488  TH1::SetDefaultSumw2(kTRUE);
1489  TH2::SetDefaultSumw2(kTRUE);
1490 
1491  // add all fHistManager content to fOutput
1492  TIter nexthist(fHistManager.GetListOfHistograms());
1493  TObject* obj = NULL;
1494  while ((obj = nexthist())) { fOutput->Add(obj); }
1495 
1496  PostData ( 1, fOutput ); // Post data for ALL output slots > 0 here.
1497  }
1498 
1504  {
1506  }
1507 
1512  {
1513  }
1514 
1515 //________________________________________________________________________
1517 {
1518  return fHistManager.FindObject(histName);
1519 }
1520 
1521 //########################################################################
1522 // Namespace AliAnalysisTaskEmcalJetCDF
1523 //########################################################################
1524 
1525 //__________________________________________________________________________________________________
1526 std::vector<Int_t> NS_AliAnalysisTaskEmcalJetCDF::SortTracksPt ( AliVEvent* event )
1527  {
1528  // Sorting by p_T (decreasing) event tracks
1529  Int_t entries = event->GetNumberOfTracks();
1530 
1531  // Create vector for Pt sorting
1532  std::vector<ptidx_pair> pair_list;
1533  pair_list.reserve ( entries );
1534 
1535  for ( Int_t i_entry = 0; i_entry < entries; i_entry++ )
1536  {
1537  AliVParticle* track = event->GetTrack ( i_entry );
1538  if ( !track ) { std::cout << Form ("Unable to find track %d in collection %s", i_entry, event->GetName()) << std::endl ; continue; }
1539 
1540  pair_list.push_back ( std::make_pair ( track->Pt(), i_entry ) );
1541  }
1542 
1543  std::stable_sort ( pair_list.begin(), pair_list.end(), sort_descend() );
1544 
1545  // return an vector of indexes of constituents (sorted descending by pt)
1546  std::vector<Int_t> index_sorted_list;
1547  index_sorted_list.reserve ( entries );
1548 
1549  // populating the return object with indexes of sorted tracks
1550  for (auto it : pair_list) { index_sorted_list.push_back(it.second); }
1551 
1552  return index_sorted_list;
1553  }
1554 
1555 //__________________________________________________________________________________________________
1557  {
1558  // Sorting by p_T (decreasing) event tracks
1559  Int_t entries = trackscont->GetNEntries();
1560 
1561  // Create vector for Pt sorting
1562  std::vector<ptidx_pair> pair_list;
1563  pair_list.reserve ( entries );
1564 
1565  UInt_t i_entry = 0;
1566  AliParticleContainer* partCont = 0;
1567  for(auto part : partCont->all()) {
1568  if (!part) {continue;}
1569  pair_list.push_back ( std::make_pair ( part->Pt(), i_entry++ ) );
1570  }
1571 
1572  std::stable_sort ( pair_list.begin(), pair_list.end(), sort_descend() );
1573 
1574  // return an vector of indexes of constituents (sorted descending by pt)
1575  std::vector<Int_t> index_sorted_list;
1576  index_sorted_list.reserve ( i_entry );
1577 
1578  // populating the return object with indexes of sorted tracks
1579  for (auto it : pair_list) { index_sorted_list.push_back(it.second); }
1580 
1581  return index_sorted_list;
1582  }
1583 
1584 
1591 AliAnalysisTaskEmcalJetCDF* NS_AliAnalysisTaskEmcalJetCDF::AddTaskEmcalJetCDF ( const char* ntracks, const char* nclusters, const char* ncells, const char* tag)
1592  {
1593  // Get the pointer to the existing analysis manager via the static access method.
1594  //==============================================================================
1595  AliAnalysisManager* mgr = AliAnalysisManager::GetAnalysisManager();
1596  if ( !mgr ) { ::Error ( "AddTaskEmcalJetCDF", "No analysis manager to connect to." ); return NULL; }
1597 
1598  // Check the analysis type using the event handlers connected to the analysis manager.
1599  //==============================================================================
1600  AliVEventHandler* handler = mgr->GetInputEventHandler();
1601  if (!handler) { ::Error ( "AddTaskEmcalJetCDF", "This task requires an input event handler" ); return NULL; }
1602 
1603  enum EDataType_t { kUnknown, kESD, kAOD }; EDataType_t dataType = kUnknown;
1604 
1605  if (handler->InheritsFrom("AliESDInputHandler")) { dataType = kESD; }
1606  else
1607  if (handler->InheritsFrom("AliAODInputHandler")) { dataType = kAOD; }
1608 
1609  //-------------------------------------------------------
1610  // Init the task and do settings
1611  //-------------------------------------------------------
1612  TString suffix ( tag );
1613  TString tracks ( ntracks );
1614  TString clusters ( nclusters );
1615  TString cells ( ncells );
1616 
1617  if ( tracks.EqualTo("usedefault") )
1618  {
1619  if ( dataType == kESD ) { tracks = "Tracks"; }
1620  else
1621  if ( dataType == kAOD ) { tracks = "tracks"; }
1622  else
1623  { tracks = ""; }
1624  }
1625 
1626  if ( clusters.EqualTo("usedefault") )
1627  {
1628  if ( dataType == kESD ) { clusters = "CaloClusters"; }
1629  else
1630  if ( dataType == kAOD ) { clusters = "caloClusters"; }
1631  else
1632  { clusters = ""; }
1633  }
1634 
1635  if ( cells.EqualTo("usedefault") )
1636  {
1637  if (dataType == kESD) { cells = "EMCALCells"; }
1638  else
1639  if (dataType == kAOD) { cells = "emcalCells"; }
1640  else
1641  { cells = ""; }
1642  }
1643 
1644  TString name("JetCDF");
1645  if (!tracks.IsNull()) { name += "_" + tracks; }
1646  if (!clusters.IsNull()) { name += "_" + clusters; }
1647  if (!cells.IsNull()) { name += "_" + cells; }
1648  if (!suffix.IsNull()) { name += "_" + suffix; }
1649 
1650  AliAnalysisTaskEmcalJetCDF* cdfTask = new AliAnalysisTaskEmcalJetCDF ( name.Data() );
1651  cdfTask->SetVzRange(-10,10);
1652  cdfTask->SetCaloCellsName(cells.Data());
1653 
1654  if ( tracks.EqualTo("mcparticles") ) {
1655  // AliMCParticleContainer* mcpartCont =
1656  cdfTask->AddMCParticleContainer ( tracks.Data() );
1657  }
1658  else
1659  if ( tracks.EqualTo("tracks") || tracks.EqualTo("Tracks") ) {
1660  // AliTrackContainer* trackCont =
1661  cdfTask->AddTrackContainer( tracks.Data() );
1662  }
1663  else
1664  if ( !tracks.IsNull())
1665  { cdfTask->AddParticleContainer(tracks.Data()); }
1666 
1667  cdfTask->AddClusterContainer(clusters.Data());
1668 
1669  //-------------------------------------------------------
1670  // Final settings, pass to manager and set the containers
1671  //-------------------------------------------------------
1672  mgr->AddTask ( cdfTask );
1673 
1674  // Create containers for input/output
1675  AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
1676 
1677  TString contname = name + "_histos";
1678  TString outfile (Form("%s", AliAnalysisManager::GetCommonFileName()));
1679  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer ( contname.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, outfile.Data() );
1680 
1681  mgr->ConnectInput ( cdfTask, 0, cinput1 );
1682  mgr->ConnectOutput ( cdfTask, 1, coutput1 );
1683 
1684  return cdfTask;
1685  }
1686 
1696  void NS_AliAnalysisTaskEmcalJetCDF::jetContSetParams ( AliJetContainer* jetCont, Float_t jetptmin, Float_t jetptmax, Float_t jetareacutperc, Int_t leadhadtype, Int_t nLeadJets, Float_t mintrackpt, Float_t maxtrackpt)
1697  {
1698  if (!jetCont) { return; }
1699  jetCont->SetJetPtCut ( jetptmin );
1700  jetCont->SetJetPtCutMax ( jetptmax );
1701  jetCont->SetPercAreaCut ( jetareacutperc );
1702  jetCont->SetLeadingHadronType ( leadhadtype ); // 0 = charged, 1 = neutral, 2 = both
1703  jetCont->SetNLeadingJets(nLeadJets);
1704  jetCont->SetMinTrackPt(mintrackpt);
1705  jetCont->SetMaxTrackPt(maxtrackpt);
1706  }
1707 
1708 
1709 // kate: indent-mode none; indent-width 2; replace-tabs on;
1710 
THistManager fHistManager
Histogram manager.
THashList * CreateHistoGroup(const char *groupname)
Create a new group of histograms within a parent group.
double Double_t
Definition: External.C:58
Double_t GetXi(const AliVParticle *trk) const
const AliParticleIterableContainer all() const
void SetLeadingHadronType(Int_t t)
Declaration of class AliTLorentzVector.
AliClusterContainer * GetClusterContainer() const
Int_t fCentBin
!event centrality bin
std::vector< Int_t > SortTracksPt(AliVEvent *event)
void SetPercAreaCut(Float_t p)
void SetVzRange(Double_t min, Double_t max)
void jetContSetParams(AliJetContainer *jetCont, Float_t jetptmin=1., Float_t jetptmax=500., Float_t jetareacutperc=0., Int_t leadhadtype=2, Int_t nLeadJets=1, Float_t mintrackpt=0.15, Float_t maxtrackpt=1000.)
AliClusterContainer * AddClusterContainer(const char *n)
Create new cluster container and attach it to the task.
UShort_t GetNumberOfConstituents() const
Definition: AliEmcalJet.h:140
Container for particles within the EMCAL framework.
Int_t TrackAt(Int_t idx) const
Definition: AliEmcalJet.h:160
UShort_t GetNumberOfTracks() const
Definition: AliEmcalJet.h:139
std::ostream & Print(std::ostream &in) const
AliParticleContainer * GetParticleContainer() const
AliEmcalJet * GetLeadingJet(const char *opt="")
void SetMinTrackPt(Float_t b)
TH2 * CreateTH2(const char *name, const char *title, int nbinsx, double xmin, double xmax, int nbinsy, double ymin, double ymax, Option_t *opt="")
Create a new TH2 within the container.
TObject * FindObject(const char *name) const
Find an object inside the container.
int Int_t
Definition: External.C:63
void SetJetPtCut(Float_t cut)
unsigned int UInt_t
Definition: External.C:33
THashList * GetListOfHistograms() const
Get the list of histograms.
Definition: THistManager.h:671
float Float_t
Definition: External.C:68
void SetNLeadingJets(Int_t t)
TObject * GetHistogram(const char *histName)
Int_t GetNJets() const
AliParticleContainer * AddParticleContainer(const char *n)
Create new particle container and attach it to the task.
TH1 * CreateTH1(const char *name, const char *title, int nbins, double xmin, double xmax, Option_t *opt="")
Create a new TH1 within the container.
Double_t Z_pt(const AliEmcalJet *jet, const AliVParticle *trk)
Definition: External.C:228
Int_t fNcentBins
how many centrality bins
Definition: External.C:212
AliAnalysisTaskEmcalJetCDF * AddTaskEmcalJetCDF(const char *ntracks="usedefault", const char *nclusters="usedefault", const char *ncells="usedefault", const char *tag="CDF")
Int_t GetNAcceptedClusters() const
AliMCParticleContainer * AddMCParticleContainer(const char *n)
Create new container for MC particles and attach it to the task.
Double_t GetZ(const Double_t trkPx, const Double_t trkPy, const Double_t trkPz) const
TObjArray fJetCollArray
jet collection array
Double_t DeltaR(const AliVParticle *part) const
Double_t Perp(const AliVParticle &trk1, const AliVParticle &trk2)
Double_t Pt() const
Definition: AliEmcalJet.h:109
AliEmcalList * fOutput
!output list
virtual ~AliAnalysisTaskEmcalJetCDF()
Destructor.
AliTrackContainer * AddTrackContainer(const char *n)
Create new track container and attach it to the task.
void SetMakeGeneralHistograms(Bool_t g)
Base task in the EMCAL jet framework.
Represent a jet reconstructed using the EMCal jet framework.
Definition: AliEmcalJet.h:51
unsigned short UShort_t
Definition: External.C:28
functional for sorting pair by first element - descending
const char Option_t
Definition: External.C:48
void UserCreateOutputObjects()
Main initialization function on the worker.
const AliJetIterableContainer accepted() const
bool Bool_t
Definition: External.C:53
Declaration of class AliAnalysisTaskEmcalJetCDF.
EDataType_t
Switch for the data type.
void SetCaloCellsName(const char *n)
Int_t GetNAcceptedParticles() const
void SetMaxTrackPt(Float_t b)
Container structure for EMCAL clusters.
Double_t Z_ptot(const AliEmcalJet *jet, const AliVParticle *trk)
Container for jet within the EMCAL jet framework.
void SetJetPtCutMax(Float_t cut)
std::vector< int > GetPtSortedTrackConstituentIndexes(TClonesArray *tracks) const
Analysis of jet shapes and FF of all jets and leading jets.