]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/PartCorrBase/AliAnaPartCorrBaseClass.cxx
Adding ZDC TDC histo for DQM shifter
[u/mrichter/AliRoot.git] / PWG4 / PartCorrBase / AliAnaPartCorrBaseClass.cxx
CommitLineData
1c5acb87 1/**************************************************************************
2 * Copyright(c) 1998-1999, 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/* $Id: $ */
16
17//_________________________________________________________________________
18// Base class for analysis algorithms
19//-- Author: Gustavo Conesa (LNF-INFN)
20//_________________________________________________________________________
5025c139 21// --Yaxian Mao: Add the possibality for event selection analysis based on vertex and multiplicity bins (10/10/2010)
1c5acb87 22
23
24// --- ROOT system ---
25#include <TClonesArray.h>
477d6cee 26//#include <Riostream.h>
1c5acb87 27
28//---- AliRoot system ----
1c5acb87 29#include "AliAnaPartCorrBaseClass.h"
30#include "AliCaloTrackReader.h"
765d44e7 31#include "AliCalorimeterUtils.h"
1c5acb87 32#include "AliCaloPID.h"
ff45398a 33#include "AliFiducialCut.h"
1c5acb87 34#include "AliIsolationCut.h"
6639984f 35#include "AliMCAnalysisUtils.h"
1c5acb87 36#include "AliNeutralMesonSelection.h"
f37fa8d2 37#include "AliVCaloCells.h"
477d6cee 38#include "AliAODEvent.h"
42dc8e7d 39#include "AliAODHandler.h"
40#include "AliAnalysisManager.h"
c8fe2783 41#include "AliAODPWG4Particle.h"
1c5acb87 42
43ClassImp(AliAnaPartCorrBaseClass)
44
45
46//_______________________________________________
47 AliAnaPartCorrBaseClass::AliAnaPartCorrBaseClass() :
48 TObject(), fDataMC(0), fDebug(0), fCheckFidCut(0),
7cd4e982 49 fCheckCaloPID(0), fRecalculateCaloPID(0), fMinPt(0), fMaxPt(0),
5025c139 50 fMultiBin(0),fNZvertBin(0),fNrpBin(0),fZvtxCut(0.), fMaxMulti(0),fMinMulti(0),
d7c10d78 51 fUseSelectEvent(kFALSE), fMakePlots(kFALSE),
3c769bf6 52 fReader(0x0), fInputAODBranch(0x0), fInputAODName(""),
53 fOutputAODBranch(0x0), fNewAOD(kFALSE),
54 fOutputAODName(""), fOutputAODClassName(""),
591cc579 55 fAODObjArrayName(""), fAddToHistogramsName(""),
3c769bf6 56 fCaloPID(0x0), fFidCut(0x0), fIC(0x0),fMCUtils(0x0), fNMS(0x0),
78219bac 57 fCaloUtils(0x0),
5a2dbc3c 58 fHistoPtBins(0), fHistoPtMax(0.), fHistoPtMin(0.),
59 fHistoPhiBins(0), fHistoPhiMax(0.), fHistoPhiMin(0.),
60 fHistoEtaBins(0), fHistoEtaMax(0.), fHistoEtaMin(0.),
61 fHistoMassBins(0), fHistoMassMax(0.), fHistoMassMin(0.),
798a9b04 62 fHistoAsymBins(0), fHistoAsymMax(0.), fHistoAsymMin(0.),
63 fHistoV0SBins(0), fHistoV0SMax(0), fHistoV0SMin(0),
64 fHistoV0MBins(0), fHistoV0MMax(0), fHistoV0MMin(0),
65 fHistoTrMBins(0), fHistoTrMMax(0), fHistoTrMMin(0)
1c5acb87 66{
67 //Default Ctor
4a745797 68
1c5acb87 69 //Initialize parameters
70 InitParameters();
71}
fb9841b8 72
1c5acb87 73//____________________________________________________________________________
74AliAnaPartCorrBaseClass::~AliAnaPartCorrBaseClass()
75{
76 // Remove all pointers except analysis output pointers.
7787a778 77//printf("---Delete analysis %s\n", fAODObjArrayName.Data());
78 // Not sure if it should be me who deletes the delta AOD branches.
79// if(fOutputAODBranch){
80// fOutputAODBranch->Clear() ;
81// delete fOutputAODBranch ;
82// }
83//
84// if(fInputAODBranch){
85// fInputAODBranch->Clear() ;
86// delete fInputAODBranch ;
87// }
477d6cee 88
7787a778 89 //if(fCaloUtils) delete fCaloUtils ; //Already deleted in maker
90 //if(fReader) delete fReader ; //Already deleted in maker
91
765d44e7 92 if(fCaloPID) delete fCaloPID ;
93 if(fFidCut) delete fFidCut ;
94 if(fIC) delete fIC ;
95 if(fMCUtils) delete fMCUtils ;
96 if(fNMS) delete fNMS ;
5025c139 97
98 // printf("--- analysis deleted \n");
1c5acb87 99}
100
1c5acb87 101//____________________________________________________________________________
102void AliAnaPartCorrBaseClass::AddAODParticle(AliAODPWG4Particle pc) {
103 //Put AOD calo cluster in the AODParticleCorrelation array
104
477d6cee 105 if(fOutputAODBranch){
106
107 Int_t i = fOutputAODBranch->GetEntriesFast();
108 //new((*fOutputAODBranch)[i]) AliAODPWG4Particle(pc);
109 if(strcmp(fOutputAODBranch->GetClass()->GetName(),"AliAODPWG4Particle")==0)
110 new((*fOutputAODBranch)[i]) AliAODPWG4Particle(pc);
111 else if(strcmp(fOutputAODBranch->GetClass()->GetName(),"AliAODPWG4ParticleCorrelation")==0)
112 new((*fOutputAODBranch)[i]) AliAODPWG4ParticleCorrelation(pc);
113 else {
114 printf("AliAnaPartCorrBaseClass::AddAODParticle() - Cannot add an object of type < %s >, to the AOD TClonesArray \n",
115 fOutputAODBranch->GetClass()->GetName());
116 abort();
117 }
118 }
119 else {
120 printf(" AliAnaPartCorrBaseClass::AddAODParticle() - No AOD branch available!!!\n");
121 abort();
122 }
123
1c5acb87 124}
125
f37fa8d2 126//___________________________________________________________________________
42dc8e7d 127TClonesArray * AliAnaPartCorrBaseClass::GetAODBranch(TString aodName) const {
128 //Recover ouput and input AOD pointers for each event in the maker
129
130 //Delta AODs
1e86c71e 131 if(fDebug > 3) printf("AliAnaPartCorrBaseClass::GetAODBranch() - Get Input Branch with name: <%s>; \n",aodName.Data());
132
f37fa8d2 133 //Get the AOD handler, if output AOD is created use it, if not get the branches from the input which should be deltaAODs
134 AliAODHandler* aodHandler = 0x0;
135 Bool_t outAOD = kFALSE;
136 if((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler()) outAOD = kTRUE;
137 if(outAOD) aodHandler = (AliAODHandler*) ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
138 else aodHandler = (AliAODHandler*) ((AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler());
139
140 if(!GetReader()->WriteDeltaAODToFile())
141 {
142 return (TClonesArray *) (fReader->GetAODBranchList())->FindObject(aodName);
143 }
144 else if (aodHandler->GetExtensions())
145 {
146 AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject(GetReader()->GetDeltaAODFileName());
147 if(ext){
148 AliAODEvent *aodEvent = ext->GetAOD();
149 TClonesArray * aodbranch = (TClonesArray*) aodEvent->FindListObject(aodName);
150 if(aodbranch) return aodbranch;
151 else {
152 if(outAOD) return (TClonesArray *) fReader->GetOutputEvent()->FindListObject(aodName);
153 else return (TClonesArray *) fReader->GetInputEvent() ->FindListObject(aodName);
154 }
155 }
156 else{//If no Delta AODs, kept in standard branch, to revise.
157 if(outAOD) return (TClonesArray *) fReader->GetOutputEvent()->FindListObject(aodName);
158 else return (TClonesArray *) fReader->GetInputEvent() ->FindListObject(aodName);
159 }
160 }
161 else{ //If no Delta AODs, kept in standard branch, to revise.
162 if(outAOD) return (TClonesArray *) fReader->GetOutputEvent()->FindListObject(aodName);
163 else return (TClonesArray *) fReader->GetInputEvent() ->FindListObject(aodName);
164 }
165
42dc8e7d 166}
477d6cee 167
477d6cee 168
f37fa8d2 169
42dc8e7d 170//___________________________________________________
171void AliAnaPartCorrBaseClass::ConnectInputOutputAODBranches() {
172 //Recover ouput and input AOD pointers for each event in the maker
173
174 //Delta AODs
1e86c71e 175 if(fDebug > 3) printf("AliAnaPartCorrBaseClass::ConnectInputOutputAODBranches() - Connect Input with name: <%s>; Connect output with name <%s>\n",fInputAODName.Data(),fOutputAODName.Data());
f37fa8d2 176
1e86c71e 177 //Get the AOD handler, if output AOD is created use it, if not get the branches from the input which should be deltaAODs
178 AliAODHandler* aodHandler = 0x0;
179 Bool_t outAOD = kFALSE;
180 if((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler()) outAOD = kTRUE;
181 if(outAOD) aodHandler = (AliAODHandler*) ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
f37fa8d2 182 else aodHandler = (AliAODHandler*) ((AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler());
1e86c71e 183
f37fa8d2 184 if(!GetReader()->WriteDeltaAODToFile())
185 {
186 fOutputAODBranch = (TClonesArray *) (fReader->GetAODBranchList())->FindObject(fOutputAODName);
187 fInputAODBranch = (TClonesArray *) (fReader->GetAODBranchList())->FindObject(fInputAODName);
188 }
189 else if (aodHandler->GetExtensions()) {
190
42dc8e7d 191 AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject(GetReader()->GetDeltaAODFileName());
192 if(ext){
f37fa8d2 193 AliAODEvent *aodEvent = ext->GetAOD();
194 if(fNewAOD)fOutputAODBranch = (TClonesArray*) aodEvent->FindListObject(fOutputAODName);
195 fInputAODBranch = (TClonesArray*) aodEvent->FindListObject(fInputAODName);
196 if(!fOutputAODBranch && fNewAOD) fOutputAODBranch = (TClonesArray *) fReader->GetOutputEvent()->FindListObject(fOutputAODName);
197 if(!fInputAODBranch) fInputAODBranch = (TClonesArray *) fReader->GetOutputEvent()->FindListObject(fInputAODName);
42dc8e7d 198 }
199 else{//If no Delta AODs, kept in standard branch, to revise.
0866d83a 200 if(fNewAOD && fReader->GetOutputEvent()) {
1e86c71e 201 fOutputAODBranch = (TClonesArray *) fReader->GetOutputEvent()->FindListObject(fOutputAODName);
202 fInputAODBranch = (TClonesArray *) fReader->GetOutputEvent()->FindListObject(fInputAODName);
203 }
7cd31fd6 204 else {
205 fInputAODBranch = (TClonesArray *) fReader->GetInputEvent()->FindListObject(fInputAODName);
0866d83a 206 if(!fInputAODBranch && fReader->GetOutputEvent() )
207 fInputAODBranch = (TClonesArray *) fReader->GetOutputEvent()->FindListObject(fInputAODName);//Try the output event.
7cd31fd6 208 }
1e86c71e 209 }
210 }
211 else{ //If no Delta AODs, kept in standard branch
0866d83a 212 if(fNewAOD && fReader->GetOutputEvent()) {
42dc8e7d 213 fOutputAODBranch = (TClonesArray *) fReader->GetOutputEvent()->FindListObject(fOutputAODName);
1e86c71e 214 fInputAODBranch = (TClonesArray *) fReader->GetOutputEvent()->FindListObject(fInputAODName);
42dc8e7d 215 }
7cd31fd6 216 else{
1e86c71e 217 fInputAODBranch = (TClonesArray *) fReader->GetInputEvent()->FindListObject(fInputAODName);
0866d83a 218 if(!fInputAODBranch && fReader->GetOutputEvent())
219 fInputAODBranch = (TClonesArray *) fReader->GetOutputEvent()->FindListObject(fInputAODName);//Try the output event.
7cd31fd6 220 }
42dc8e7d 221 }
1e86c71e 222
223 if(GetDebug() > 1){
f37fa8d2 224 if(fNewAOD && !fOutputAODBranch)
225 printf(" AliAnaPartCorrBaseClass::ConnectInputOutputAODBranches() - Output Branch <%s>, not found!\n",fOutputAODName.Data());
226 if(!fNewAOD && !fInputAODBranch)
227 printf(" AliAnaPartCorrBaseClass::ConnectInputOutputAODBranches() - Input Branch <%s>, not found!\n",fInputAODName.Data());
42dc8e7d 228 }
1c5acb87 229}
5ae09196 230//
231////__________________________________________________________________________
232//Bool_t AliAnaPartCorrBaseClass::IsTrackMatched(AliVCluster* cluster) const {
233// //Check if there is any track attached to this cluster
234//
235// Int_t nMatches = cluster->GetNTracksMatched();
236//// printf("N matches %d, first match %d\n",nMatches,cluster->GetTrackMatchedIndex());
237//// if (cluster->GetTrackMatched(0)) printf("\t matched track id %d\n",((AliVTrack*)cluster->GetTrackMatched(0))->GetID()) ;
238//// else if(cluster->GetTrackMatchedIndex()>=0) printf("\t matched track id %d\n",((AliVTrack*) GetReader()->GetInputEvent()->GetTrack(cluster->GetTrackMatchedIndex()))->GetID()) ;
239//
240// if(fReader->GetDataType()==AliCaloTrackReader::kESD)
241// {
242//
243// if (nMatches > 0) {
244// if (nMatches == 1 ) {
245// Int_t iESDtrack = cluster->GetTrackMatchedIndex();
246// //printf("Track Matched index %d\n",iESDtrack);
247// if(iESDtrack==-1) return kFALSE ;// Default value of array, there is no match
248// else return kTRUE;
249// }//Just one, check
250// else return kTRUE ;//More than one, there is a match.
251// }// > 0
252// else return kFALSE; //It does not happen, but in case
253//
254// }//ESDs
255// else
256// {
257// //AODs
258// if(nMatches > 0) return kTRUE; //There is at least one match.
259// else return kFALSE;
260//
261// }//AODs or MC (copy into AOD)
262//
263// return kFALSE;
264//
265//}
266//
1c5acb87 267//__________________________________________________
591cc579 268TObjArray * AliAnaPartCorrBaseClass::GetAODCTS() const {
477d6cee 269 //Get list of referenced tracks from reader
1c5acb87 270
271 return fReader->GetAODCTS();
272
273}
274
275//__________________________________________________
591cc579 276TObjArray * AliAnaPartCorrBaseClass::GetAODPHOS() const {
477d6cee 277 //Get list of PHOS reference caloclusters from reader
1c5acb87 278
279 return fReader->GetAODPHOS();
280
281}
282
1c5acb87 283//__________________________________________________
591cc579 284TObjArray * AliAnaPartCorrBaseClass::GetAODEMCAL() const {
477d6cee 285 //Get list of emcal referenced caloclusters from reader
1c5acb87 286
287 return fReader->GetAODEMCAL();
288
289}
290
477d6cee 291//__________________________________________________
292TClonesArray * AliAnaPartCorrBaseClass::GetAODCaloClusters() const {
293 //Get list of all caloclusters in AOD output file
294
295 return fReader->GetOutputEvent()->GetCaloClusters();
296
297}
298
299//__________________________________________________
300TClonesArray * AliAnaPartCorrBaseClass::GetAODTracks() const {
301 //Get list of all tracks in AOD output file
302
303 return fReader->GetOutputEvent()->GetTracks();
304
305}
306
1c5acb87 307//__________________________________________________
308TString AliAnaPartCorrBaseClass::GetBaseParametersList() {
309 //Put data member values in string to keep in output container
310
477d6cee 311 TString parList ; //this will be list of parameters used for this analysis.
5ae09196 312 const Int_t buffersize = 255;
313 char onePar[buffersize] ;
314 snprintf(onePar,buffersize,"--- AliAnaPartCorrBaseClass ---\n") ;
477d6cee 315 parList+=onePar ;
5ae09196 316 snprintf(onePar,buffersize,"Minimal P_t: %2.2f ; Max\n", fMinPt) ;
477d6cee 317 parList+=onePar ;
5ae09196 318 snprintf(onePar,buffersize,"Minimal P_t: %2.2f ; Max\n", fMaxPt) ;
477d6cee 319 parList+=onePar ;
5ae09196 320 snprintf(onePar,buffersize,"fDataMC =%d (Check MC information, on/off) \n",fDataMC) ;
477d6cee 321 parList+=onePar ;
5ae09196 322 snprintf(onePar,buffersize,"fCheckFidCut=%d (Check Fiducial cut selection on/off) \n",fCheckFidCut) ;
477d6cee 323 parList+=onePar ;
5ae09196 324 snprintf(onePar,buffersize,"fCheckCaloPID =%d (Use Bayesian PID in calorimetes, on/off) \n",fCheckCaloPID) ;
477d6cee 325 parList+=onePar ;
5ae09196 326 snprintf(onePar,buffersize,"fRecalculateCaloPID =%d (Calculate PID from shower/tof/tracking parameters, on/off) \n",fRecalculateCaloPID) ;
477d6cee 327 parList+=onePar ;
5ae09196 328 snprintf(onePar,buffersize,"fInputAODName =%s Input AOD name \n",fInputAODName.Data()) ;
a3aebfff 329 parList+=onePar ;
330 if(fNewAOD){
5ae09196 331 snprintf(onePar,buffersize,"fOutputAODName =%s Output AOD name \n",fOutputAODName.Data()) ;
332 parList+=onePar ;
333 snprintf(onePar,buffersize,"fOutputAODClassName =%s Output AOD class name \n",fOutputAODClassName.Data()) ;
a3aebfff 334 parList+=onePar ;
a3aebfff 335 }
5ae09196 336 snprintf(onePar,buffersize,"fAODObjArrayName =%s Reference arrays in AOD name \n",fAODObjArrayName.Data()) ;
a3aebfff 337 parList+=onePar ;
5ae09196 338 snprintf(onePar,buffersize,"fAddToHistogramsName =%s String added to beginning of histograms name \n",fAddToHistogramsName.Data()) ;
a3aebfff 339 parList+=onePar ;
340
1c5acb87 341 return parList;
342
343}
344
345//__________________________________________________
346 TClonesArray * AliAnaPartCorrBaseClass::GetCreateOutputAODBranch() {
477d6cee 347 //Create AOD branch filled in the analysis
348
349 printf("Create AOD branch of %s objects and with name < %s >\n",
350 fOutputAODClassName.Data(),fOutputAODName.Data()) ;
351
352 TClonesArray * aodBranch = new TClonesArray(fOutputAODClassName, 0);
353 aodBranch->SetName(fOutputAODName);
354 return aodBranch ;
355
1c5acb87 356 }
357
6639984f 358//__________________________________________________
359Int_t AliAnaPartCorrBaseClass::GetEventNumber() const {
360 //Get current event number
361
362 return fReader->GetEventNumber() ;
363}
364
1c5acb87 365//__________________________________________________
366AliStack * AliAnaPartCorrBaseClass::GetMCStack() const {
367 //Get stack pointer from reader
368
369 return fReader->GetStack();
370
371}
372//__________________________________________________
373AliHeader * AliAnaPartCorrBaseClass::GetMCHeader() const {
374 //Get header pointer from reader
375
376 return fReader->GetHeader();
377
378}
379
380//__________________________________________________
381AliGenEventHeader * AliAnaPartCorrBaseClass::GetMCGenEventHeader() const {
382 //Get GenEventHeader pointer from reader
383
384 return fReader->GetGenEventHeader();
385
386}
387
388//__________________________________________________
389void AliAnaPartCorrBaseClass::InitParameters()
390{
391 //Initialize the parameters of the analysis.
392 fDataMC = kFALSE;
393 fDebug = -1;
394 fCheckCaloPID = kTRUE ;
395 fCheckFidCut = kFALSE ;
396 fRecalculateCaloPID = kFALSE ;
1e86c71e 397 fMinPt = 0.1 ; //Min pt in particle analysis
1c5acb87 398 fMaxPt = 300. ; //Max pt in particle analysis
5025c139 399 fMultiBin = 1;
400 fNZvertBin = 1;
401 fNrpBin = 1;
af7b3903 402 fZvtxCut = 10;
5025c139 403 fMaxMulti = 1000;
404 fMinMulti = 0;
405 fUseSelectEvent = kFALSE ;
406
78219bac 407 //fReader = new AliCaloTrackReader(); //Initialized in maker
408 //fCaloUtils = new AliCalorimeterUtils();//Initialized in maker
f37fa8d2 409
4a745797 410 fNewAOD = kFALSE ;
411 fOutputAODName = "PartCorr";
412 fOutputAODClassName = "AliAODPWG4Particle";
413 fInputAODName = "PartCorr";
a3aebfff 414 fAddToHistogramsName = "";
4a745797 415 fAODObjArrayName = "Ref";
7cd4e982 416
5a2dbc3c 417 //Histogram settings
418 fHistoPtBins = 240 ;
419 fHistoPtMax = 120 ;
420 fHistoPtMin = 0. ;
421
422 fHistoPhiBins = 120 ;
423 fHistoPhiMax = TMath::TwoPi();
424 fHistoPhiMin = 0. ;
425
426 fHistoEtaBins = 100 ;
427 fHistoEtaMax = 1 ;
428 fHistoEtaMin = -1 ;
429
430 fHistoMassBins = 200;
431 fHistoMassMax = 1. ;
432 fHistoMassMin = 0. ;
433
434 fHistoAsymBins = 10 ;
435 fHistoAsymMax = 1. ;
436 fHistoAsymMin = 0. ;
798a9b04 437
438 fHistoV0SBins = 100 ;
439 fHistoV0SMax = 10000 ;
440 fHistoV0SMin = 0 ;
441
442 fHistoV0MBins = 100;
443 fHistoV0MMax = 10000 ;
444 fHistoV0MMin = 0 ;
445
446 fHistoTrMBins = 100 ;
af7b3903 447 fHistoTrMMax = 2000 ;
798a9b04 448 fHistoTrMMin = 0 ;
c8fe2783 449
1c5acb87 450}
451
452//__________________________________________________________________
453void AliAnaPartCorrBaseClass::Print(const Option_t * opt) const
454{
477d6cee 455 //Print some relevant parameters set for the analysis
456
457 if(! opt)
458 return;
a3aebfff 459
477d6cee 460 printf("New AOD: = %d\n",fNewAOD);
461 printf("Input AOD name: = %s\n",fInputAODName.Data());
462 printf("Output AOD name: = %s\n",fOutputAODName.Data());
463 printf("Output AOD Class name: = %s\n",fOutputAODClassName.Data());
464 printf("Min Photon pT = %2.2f\n", fMinPt) ;
465 printf("Max Photon pT = %3.2f\n", fMaxPt) ;
466 printf("Check PID = %d\n", fCheckCaloPID) ;
467 printf("Recalculate PID = %d\n", fRecalculateCaloPID) ;
ff45398a 468 printf("Check Fiducial cut = %d\n", fCheckFidCut) ;
477d6cee 469 printf("Check MC labels = %d\n", fDataMC);
d7c10d78 470 printf("Make plots? = %d \n", fMakePlots);
477d6cee 471 printf("Debug Level = %d\n", fDebug);
5a2dbc3c 472 printf("Histograms: %3.1f < pT < %3.1f, Nbin = %d\n", fHistoPtMin, fHistoPtMax, fHistoPtBins);
473 printf("Histograms: %3.1f < phi < %3.1f, Nbin = %d\n", fHistoPhiMin, fHistoPhiMax, fHistoPhiBins);
474 printf("Histograms: %3.1f < eta < %3.1f, Nbin = %d\n", fHistoEtaMin, fHistoEtaMax, fHistoEtaBins);
475 printf("Histograms: %3.1f < mass < %3.1f, Nbin = %d\n", fHistoMassMin, fHistoMassMax, fHistoMassBins);
476 printf("Histograms: %3.1f < asymmetry < %3.1f, Nbin = %d\n", fHistoAsymMin, fHistoAsymMax, fHistoAsymBins);
798a9b04 477 printf("Histograms: %d < V0 Signal < %d, Nbin = %d\n", fHistoV0SMin, fHistoV0SMax, fHistoV0SBins);
478 printf("Histograms: %d < V0 Mult < %d, Nbin = %d\n", fHistoV0MMin, fHistoV0MMax, fHistoV0MBins);
479 printf("Histograms: %d < Track Mult < %d, Nbin = %d\n", fHistoTrMMin, fHistoTrMMax, fHistoTrMBins);
480
591cc579 481 printf("Name of reference array : %s\n", fAODObjArrayName.Data());
a3aebfff 482 printf("String added histograms name : %s\n",fAddToHistogramsName.Data());
483
477d6cee 484 printf(" \n") ;
485
1c5acb87 486}
c8fe2783 487
c8fe2783 488
489