]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/CaloTrackCorrBase/AliAnaCaloTrackCorrBaseClass.cxx
Avoid names that only differ in use of capital/small letters
[u/mrichter/AliRoot.git] / PWG / CaloTrackCorrBase / AliAnaCaloTrackCorrBaseClass.cxx
CommitLineData
f15155ed 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
16//_________________________________________________________________________
17// Base class for CaloTrackCorr analysis algorithms
18//-- Author: Gustavo Conesa (LNF-INFN, LPSC-Grenoble)
19//
20//
21//_________________________________________________________________________
22
23
24// --- ROOT system ---
25#include <TClonesArray.h>
26//#include <Riostream.h>
27
28//---- AliRoot system ----
29#include "AliAnaCaloTrackCorrBaseClass.h"
30#include "AliCaloTrackReader.h"
31#include "AliCalorimeterUtils.h"
32#include "AliCaloPID.h"
33#include "AliFiducialCut.h"
34#include "AliIsolationCut.h"
35#include "AliMCAnalysisUtils.h"
36#include "AliNeutralMesonSelection.h"
37#include "AliVCaloCells.h"
38#include "AliAODEvent.h"
39#include "AliAODHandler.h"
40#include "AliAnalysisManager.h"
41#include "AliAODPWG4Particle.h"
42
43ClassImp(AliAnaCaloTrackCorrBaseClass)
44
45
46//__________________________________________________________
47AliAnaCaloTrackCorrBaseClass::AliAnaCaloTrackCorrBaseClass() :
48TObject(),
aebb2aa4 49fDataMC(0), fDebug(0),
50fCheckFidCut(0), fCheckRealCaloAcc(0),
f15155ed 51fCheckCaloPID(0), fRecalculateCaloPID(0),
4d1d8f00 52fMinPt(0), fMaxPt(0),
53fPairTimeCut(200), fTRDSMCovered(-1),
255de269 54fNZvertBin(0), fNrpBin(0),
55fNCentrBin(0), fNmaxMixEv(0),
56fDoOwnMix(0), fUseTrackMultBins(0),
57fMakePlots(kFALSE),
f15155ed 58fInputAODBranch(0x0), fInputAODName(""),
59fOutputAODBranch(0x0), fNewAOD(kFALSE),
60fOutputAODName(""), fOutputAODClassName(""),
61fAODObjArrayName(""), fAddToHistogramsName(""),
62fCaloPID(0x0), fCaloUtils(0x0),
63fFidCut(0x0), fHisto(0x0),
64fIC(0x0), fMCUtils(0x0),
65fNMS(0x0), fReader(0x0)
66{
67 //Default Ctor
68
69 //Initialize parameters
70 InitParameters();
71}
72
73//___________________________________________________________
74AliAnaCaloTrackCorrBaseClass::~AliAnaCaloTrackCorrBaseClass()
75{
76 // Remove all pointers except analysis output pointers.
77
78 //delete fCaloUtils ; //Already deleted in maker
79 //delete fReader ; //Already deleted in maker
80
0de1814a 81 delete fCaloPID ;
82 delete fFidCut ;
83 delete fIC ;
84 delete fMCUtils ;
85 delete fNMS ;
86 delete fHisto ;
f15155ed 87}
88
89//______________________________________________________________________
90void AliAnaCaloTrackCorrBaseClass::AddAODParticle(AliAODPWG4Particle pc)
91{
92 //Put AOD calo cluster in the AODParticleCorrelation array
93
94 if(fOutputAODBranch){
95
96 Int_t i = fOutputAODBranch->GetEntriesFast();
97 //new((*fOutputAODBranch)[i]) AliAODPWG4Particle(pc);
98 if(strcmp(fOutputAODBranch->GetClass()->GetName(),"AliAODPWG4Particle")==0)
99 new((*fOutputAODBranch)[i]) AliAODPWG4Particle(pc);
100 else if(strcmp(fOutputAODBranch->GetClass()->GetName(),"AliAODPWG4ParticleCorrelation")==0)
101 new((*fOutputAODBranch)[i]) AliAODPWG4ParticleCorrelation(pc);
102 else {
103 printf("AliAnaCaloTrackCorrBaseClass::AddAODParticle() - Cannot add an object of type < %s >, to the AOD TClonesArray \n",
104 fOutputAODBranch->GetClass()->GetName());
105 abort();
106 }
107 }
108 else {
109 printf(" AliAnaCaloTrackCorrBaseClass::AddAODParticle() - No AOD branch available!!!\n");
110 abort();
111 }
112
113}
114
8a2dbbff 115//__________________________________________________________________________________________
116Int_t AliAnaCaloTrackCorrBaseClass::CheckMixedEventVertex(Int_t caloLabel, Int_t trackLabel)
04f7a616 117{
118 // Check vertex in mixed events
119
120 if (!GetMixedEvent()) return 1; // Not mixed event continue normal processing
121
122 Int_t evt = -1;
123
124 if (caloLabel >= 0 )
125 {
126 evt = GetMixedEvent()->EventIndexForCaloCluster(caloLabel) ;
127 }
128 else if(trackLabel >= 0 )
129 {
130 evt = GetMixedEvent()->EventIndex(trackLabel) ;
131 }
132 else
133 return 0; // go to next entry in the particle list
134
135 if(evt == -1)
136 return 0 ; // to content coverity
137
138 if (TMath::Abs(GetVertex(evt)[2]) > GetZvertexCut()) return -1; // Vertex out of range process next event
139
140 return 1 ; // continue processing normally
141
142}
f15155ed 143
144//________________________________________________________________
145void AliAnaCaloTrackCorrBaseClass::ConnectInputOutputAODBranches()
146{
147 //Recover ouput and input AOD pointers for each event in the maker
148
149 //Delta AODs
150 if(fDebug > 3) printf("AliAnaCaloTrackCorrBaseClass::ConnectInputOutputAODBranches() - Connect Input with name: <%s>; Connect output with name <%s>\n",fInputAODName.Data(),fOutputAODName.Data());
151
152 //Get the AOD handler, if output AOD is created use it, if not get the branches from the input which should be deltaAODs
153 AliAODHandler* aodHandler = 0x0;
154 Bool_t outAOD = kFALSE;
155 if((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler()) outAOD = kTRUE;
156 if(outAOD) aodHandler = (AliAODHandler*) ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
157 else aodHandler = (AliAODHandler*) ((AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler());
158
159 if(!GetReader()->WriteDeltaAODToFile())
160 {
161 fOutputAODBranch = (TClonesArray *) (fReader->GetAODBranchList())->FindObject(fOutputAODName);
162 fInputAODBranch = (TClonesArray *) (fReader->GetAODBranchList())->FindObject(fInputAODName);
163 }
164 else if (aodHandler->GetExtensions()) {
165
166 AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject(GetReader()->GetDeltaAODFileName());
167 if(ext){
168 AliAODEvent *aodEvent = ext->GetAOD();
169 if(fNewAOD)fOutputAODBranch = (TClonesArray*) aodEvent->FindListObject(fOutputAODName);
170 fInputAODBranch = (TClonesArray*) aodEvent->FindListObject(fInputAODName);
171 if(!fOutputAODBranch && fNewAOD) fOutputAODBranch = (TClonesArray *) fReader->GetOutputEvent()->FindListObject(fOutputAODName);
172 if(!fInputAODBranch) fInputAODBranch = (TClonesArray *) fReader->GetOutputEvent()->FindListObject(fInputAODName);
173 }
174 else{//If no Delta AODs, kept in standard branch, to revise.
175 if(fNewAOD && fReader->GetOutputEvent()) {
176 fOutputAODBranch = (TClonesArray *) fReader->GetOutputEvent()->FindListObject(fOutputAODName);
177 fInputAODBranch = (TClonesArray *) fReader->GetOutputEvent()->FindListObject(fInputAODName);
178 }
179 else {
180 fInputAODBranch = (TClonesArray *) fReader->GetInputEvent()->FindListObject(fInputAODName);
181 if(!fInputAODBranch && fReader->GetOutputEvent() )
182 fInputAODBranch = (TClonesArray *) fReader->GetOutputEvent()->FindListObject(fInputAODName);//Try the output event.
183 }
184 }
185 }
186 else{ //If no Delta AODs, kept in standard branch
187 if(fNewAOD && fReader->GetOutputEvent()) {
188 fOutputAODBranch = (TClonesArray *) fReader->GetOutputEvent()->FindListObject(fOutputAODName);
189 fInputAODBranch = (TClonesArray *) fReader->GetOutputEvent()->FindListObject(fInputAODName);
190 }
191 else{
192 fInputAODBranch = (TClonesArray *) fReader->GetInputEvent()->FindListObject(fInputAODName);
193 if(!fInputAODBranch && fReader->GetOutputEvent())
194 fInputAODBranch = (TClonesArray *) fReader->GetOutputEvent()->FindListObject(fInputAODName);//Try the output event.
195 }
196 }
197
198 if(GetDebug() > 1){
199 if(fNewAOD && !fOutputAODBranch)
200 printf(" AliAnaCaloTrackCorrBaseClass::ConnectInputOutputAODBranches() - Output Branch <%s>, not found!\n",fOutputAODName.Data());
201 if(!fNewAOD && !fInputAODBranch)
202 printf(" AliAnaCaloTrackCorrBaseClass::ConnectInputOutputAODBranches() - Input Branch <%s>, not found!\n",fInputAODName.Data());
203 }
204}
205
8a2dbbff 206//_____________________________________________________________________________________
207AliVCluster * AliAnaCaloTrackCorrBaseClass::FindCluster(TObjArray* clusters, Int_t id,
208 Int_t & iclus, Int_t first)
f15155ed 209{
210 // Given the cluster ID stored in AliAODPWG4Particle, get the originator cluster and its index in the array
211
212 if(!clusters) return 0x0;
213
214 for(iclus = first; iclus < clusters->GetEntriesFast(); iclus++){
215 AliVCluster *cluster= dynamic_cast<AliVCluster*> (clusters->At(iclus));
216 if(cluster){
217 if (cluster->GetID()==id) {
218 return cluster;
219 }
220 }
221 }// calorimeter clusters loop
222
223 return 0x0;
224
225}
226
227//______________________________________________________________________________
228TClonesArray * AliAnaCaloTrackCorrBaseClass::GetAODBranch(TString aodName) const
229{
230 //Recover ouput and input AOD pointers for each event in the maker
231
232 //Delta AODs
233 if(fDebug > 3) printf("AliAnaCaloTrackCorrBaseClass::GetAODBranch() - Get Input Branch with name: <%s>; \n",aodName.Data());
234
235 //Get the AOD handler, if output AOD is created use it, if not get the branches from the input which should be deltaAODs
236 AliAODHandler* aodHandler = 0x0;
237 Bool_t outAOD = kFALSE;
238 if((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler()) outAOD = kTRUE;
239 if(outAOD) aodHandler = (AliAODHandler*) ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
240 else aodHandler = (AliAODHandler*) ((AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler());
241
242 if(!GetReader()->WriteDeltaAODToFile())
243 {
244 return (TClonesArray *) (fReader->GetAODBranchList())->FindObject(aodName);
245 }
246 else if (aodHandler->GetExtensions())
247 {
248 AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject(GetReader()->GetDeltaAODFileName());
249 if(ext){
250 AliAODEvent *aodEvent = ext->GetAOD();
251 TClonesArray * aodbranch = (TClonesArray*) aodEvent->FindListObject(aodName);
252 if(aodbranch) return aodbranch;
253 else {
254 if(outAOD) return (TClonesArray *) fReader->GetOutputEvent()->FindListObject(aodName);
255 else return (TClonesArray *) fReader->GetInputEvent() ->FindListObject(aodName);
256 }
257 }
258 else{//If no Delta AODs, kept in standard branch, to revise.
259 if(outAOD) return (TClonesArray *) fReader->GetOutputEvent()->FindListObject(aodName);
260 else return (TClonesArray *) fReader->GetInputEvent() ->FindListObject(aodName);
261 }
262 }
263 else{ //If no Delta AODs, kept in standard branch, to revise.
264 if(outAOD) return (TClonesArray *) fReader->GetOutputEvent()->FindListObject(aodName);
265 else return (TClonesArray *) fReader->GetInputEvent() ->FindListObject(aodName);
266 }
267
268}
269
270//_____________________________________________________________
271TObjArray * AliAnaCaloTrackCorrBaseClass::GetCTSTracks() const
272{
273 //Get list of referenced tracks from reader
274
275 return fReader->GetCTSTracks();
276
277}
278
279//________________________________________________________________
280TObjArray * AliAnaCaloTrackCorrBaseClass::GetPHOSClusters() const
281{
282 //Get list of PHOS reference caloclusters from reader
283
284 return fReader->GetPHOSClusters();
285
286}
287
288//_________________________________________________________________
289TObjArray * AliAnaCaloTrackCorrBaseClass::GetEMCALClusters() const
290{
291 //Get list of emcal referenced caloclusters from reader
292
293 return fReader->GetEMCALClusters();
294
295}
296
297//______________________________________________________________________
298TClonesArray * AliAnaCaloTrackCorrBaseClass::GetAODCaloClusters() const
299{
300 //Get list of all caloclusters in AOD output file
301
302 return fReader->GetOutputEvent()->GetCaloClusters();
303
304}
305
306//________________________________________________________________
307TClonesArray * AliAnaCaloTrackCorrBaseClass::GetAODTracks() const
308{
309 //Get list of all tracks in AOD output file
310
311 return fReader->GetOutputEvent()->GetTracks();
312
313}
314
315//____________________________________________________________
316TString AliAnaCaloTrackCorrBaseClass::GetBaseParametersList()
317{
318 //Put data member values in string to keep in output container
319
320 TString parList ; //this will be list of parameters used for this analysis.
321 const Int_t buffersize = 255;
322 char onePar[buffersize] ;
323 snprintf(onePar,buffersize,"--- AliAnaCaloTrackCorrBaseClass ---\n") ;
324 parList+=onePar ;
325 snprintf(onePar,buffersize,"Minimal P_t: %2.2f ; Max\n", fMinPt) ;
326 parList+=onePar ;
327 snprintf(onePar,buffersize,"Minimal P_t: %2.2f ; Max\n", fMaxPt) ;
328 parList+=onePar ;
329 snprintf(onePar,buffersize,"|t_{1}-t_{2}| < %2.2f ; Max\n", fPairTimeCut) ;
330 parList+=onePar ;
331 snprintf(onePar,buffersize,"fDataMC =%d (Check MC information, on/off) \n",fDataMC) ;
332 parList+=onePar ;
333 snprintf(onePar,buffersize,"fCheckFidCut=%d (Check Fiducial cut selection on/off) \n",fCheckFidCut) ;
334 parList+=onePar ;
aebb2aa4 335 snprintf(onePar,buffersize,"fCheckRealCaloAcc=%d (Check Real Calo Acceptance on/off) \n",fCheckRealCaloAcc) ;
336 parList+=onePar ;
f15155ed 337 snprintf(onePar,buffersize,"fCheckCaloPID =%d (Use Bayesian PID in calorimetes, on/off) \n",fCheckCaloPID) ;
338 parList+=onePar ;
339 snprintf(onePar,buffersize,"fRecalculateCaloPID =%d (Calculate PID from shower/tof/tracking parameters, on/off) \n",fRecalculateCaloPID) ;
340 parList+=onePar ;
341 snprintf(onePar,buffersize,"fInputAODName =%s Input AOD name \n",fInputAODName.Data()) ;
342 parList+=onePar ;
343 if(fNewAOD){
344 snprintf(onePar,buffersize,"fOutputAODName =%s Output AOD name \n",fOutputAODName.Data()) ;
345 parList+=onePar ;
346 snprintf(onePar,buffersize,"fOutputAODClassName =%s Output AOD class name \n",fOutputAODClassName.Data()) ;
347 parList+=onePar ;
348 }
349 snprintf(onePar,buffersize,"fAODObjArrayName =%s Reference arrays in AOD name \n",fAODObjArrayName.Data()) ;
350 parList+=onePar ;
351 snprintf(onePar,buffersize,"fAddToHistogramsName =%s String added to beginning of histograms name \n",fAddToHistogramsName.Data()) ;
352 parList+=onePar ;
353
354 return parList;
355
356}
357
358//_____________________________________________________________________
359TClonesArray * AliAnaCaloTrackCorrBaseClass::GetCreateOutputAODBranch()
360{
361 //Create AOD branch filled in the analysis
362
363 printf("Create AOD branch of %s objects and with name < %s >\n",
364 fOutputAODClassName.Data(),fOutputAODName.Data()) ;
365
366 TClonesArray * aodBranch = new TClonesArray(fOutputAODClassName, 0);
367 aodBranch->SetName(fOutputAODName);
368 return aodBranch ;
369
370}
371
372//________________________________________________________
373Int_t AliAnaCaloTrackCorrBaseClass::GetEventNumber() const
374{
375 //Get current event number
376
377 return fReader->GetEventNumber() ;
378
379}
380
381
382//__________________________________________________________
383AliStack * AliAnaCaloTrackCorrBaseClass::GetMCStack() const
384{
385 //Get stack pointer from reader
386
387 return fReader->GetStack();
388
389}
390//____________________________________________________________
391AliHeader * AliAnaCaloTrackCorrBaseClass::GetMCHeader() const
392{
393 //Get header pointer from reader
394
395 return fReader->GetHeader();
396
397}
398
399//____________________________________________________________________________
400AliGenEventHeader * AliAnaCaloTrackCorrBaseClass::GetMCGenEventHeader() const
401{
402 //Get GenEventHeader pointer from reader
403
404 return fReader->GetGenEventHeader();
405
406}
407
11045377 408
255de269 409//_________________________________________________________________
410Int_t AliAnaCaloTrackCorrBaseClass::GetTrackMultiplicityBin() const
411{
412 // Track multiplicity bins
413
414 //curCentrBin = (GetTrackMultiplicity()-1)/5;
415 //if(curCentrBin > GetNCentrBin()-1) curCentrBin=GetNCentrBin()-1;
416 Int_t trackMult = GetReader()->GetTrackMultiplicity();
417
418 for(Int_t ibin = 0; ibin < GetNTrackMultBin()-1; ibin++)
419 {
420 if(trackMult >= fTrackMultBins[ibin] && trackMult < fTrackMultBins[ibin+1]) return ibin;
421 }
422
423 printf("AliAnaCaloTrackCorrBaseClass::GetTrackMultiplicityBin() - Bin not found for track multiplicity %d\n",trackMult);
424
425 return -1;
426}
427
8a2dbbff 428//________________________________________________________________
429Int_t AliAnaCaloTrackCorrBaseClass::GetEventCentralityBin() const
11045377 430{
431 // Define the centrality bin for mixing
432 // In pp collisions analysis hardcoded track multiplicities
433
434 Int_t curCentrBin = 0;
435
436 if(fUseTrackMultBins) // pp collisions
255de269 437 {
438 return GetTrackMultiplicityBin();
11045377 439 }
440 else // Set centrality based on centrality task, PbPb collisions
441 {
442 Float_t minCent = GetReader()->GetCentralityBin(0);
443 Float_t maxCent = GetReader()->GetCentralityBin(1);
444
445 if((minCent< 0 && maxCent< 0) || minCent>=maxCent)
446 {
6f8cd38f 447 curCentrBin = GetEventCentrality() * GetNCentrBin() / GetReader()->GetCentralityOpt();
448 if(curCentrBin==GetNCentrBin())
449 {
450 curCentrBin = GetNCentrBin()-1;
451 printf("AliAnaCaloTrackCorrBaseClass::GetEventCentralityBin() - Centrality = %d, put it in last bin \n",GetEventCentrality());
452 }
11045377 453 }
454 else
455 {
255de269 456 curCentrBin = (Int_t)((GetEventCentrality()-minCent) * GetNCentrBin() / (maxCent-minCent));
11045377 457 if(curCentrBin==GetNCentrBin()) curCentrBin = GetNCentrBin()-1;
255de269 458 }
11045377 459
460 if(GetDebug() > 0 )
461 printf("AliAnaCaloTrackCorrBaseClass::GetEventCentralityBin() - %d, centrality %d, n bins %d, max bin from centrality %d\n",
255de269 462 curCentrBin, GetEventCentrality(), GetNCentrBin(), GetReader()->GetCentralityOpt());
463 }
11045377 464
465 return curCentrBin;
466
467}
468
8a2dbbff 469//_______________________________________________________
470Int_t AliAnaCaloTrackCorrBaseClass::GetEventRPBin() const
11045377 471{
472 //Reaction plane bin
473
474 Int_t curRPBin = 0 ;
475
476 if(GetNRPBin() > 1 && GetEventPlane())
477 {
478 Float_t epAngle = GetEventPlaneAngle();//->GetEventplane(GetEventPlaneMethod(),fReader->GetInputEvent());
479
480 if(epAngle < 0 || epAngle >TMath::Pi())
481 {
482 printf("AliAnaCaloTrackCorrBaseClass::GetEventRPBin() - Wrong event plane angle : %f \n",epAngle);
483 return -1;
484 }
485
486 curRPBin = TMath::Nint(epAngle*(GetNRPBin()-1)/TMath::Pi());
487 if(curRPBin >= GetNRPBin()) printf("RP Bin %d out of range %d\n",curRPBin,GetNRPBin());
488
489 if(GetDebug() > 0 )
490 printf("AliAnaCaloTrackCorrBaseClass::GetEventRPBin() - %d, bin float %f, angle %f, n bins %d\n",
491 curRPBin,epAngle*(GetNRPBin()-1)/TMath::Pi(),epAngle,GetNRPBin());
492 }
493
494 return curRPBin ;
495
496}
497
8a2dbbff 498//_______________________________________________________
499Int_t AliAnaCaloTrackCorrBaseClass::GetEventVzBin() const
11045377 500{
501 // Return Vz bin, divide vertex in GetNZvertBin() bins,
502 // depending on the vertex cut
503
504 Double_t v[3] = {0,0,0}; //vertex
505 GetReader()->GetVertex(v);
506
507 Int_t curZvertBin = (Int_t)(0.5*GetNZvertBin()*(v[2]+GetZvertexCut())/GetZvertexCut());
508
509 if(GetDebug() > 0 )
510 printf("AliAnaCaloTrackCorrBaseClass::GetEventVzBin() - %d, vz %2.2f, n bins %d \n",
511 curZvertBin, v[2], GetNZvertBin());
512
513 return curZvertBin;
514}
515
8a2dbbff 516//________________________________________________________________________________________
517Int_t AliAnaCaloTrackCorrBaseClass::GetEventMixBin(Int_t iCen, Int_t iVz, Int_t iRP) const
11045377 518{
519 // Event mixing bin, combination of vz, centrality and reaction plane bins
520
521 if(iCen<0 || iVz < 0 || iRP < 0)
522 return -1;
523 else
524 return iCen*GetNZvertBin()*GetNRPBin()+iVz*GetNRPBin()+iRP;
525}
526
8a2dbbff 527//________________________________________________________
528Int_t AliAnaCaloTrackCorrBaseClass::GetEventMixBin() const
11045377 529{
530 // Event mixing bin, combination of vz, centrality and reaction plane bins
531
532 //Get vertex z bin
533 Int_t iVz = GetEventVzBin();
534
535 // centrality (PbPb) or tracks multiplicity (pp) bin
536 Int_t iCen = GetEventCentralityBin();
537
538 // reaction plane bin (PbPb)
539 Int_t iRP = GetEventRPBin();
540
541 Int_t eventBin = GetEventMixBin(iCen, iVz, iRP);
542
543 if(GetDebug() > 0)
544 printf("AliAnaCaloTrackCorrBaseClass::GetEventMixBin() - Bins : cent %d, vz %d, RP %d, event %d/%d\n",
545 iCen,iVz, iRP, eventBin, GetNZvertBin()*GetNRPBin()*GetNCentrBin());
546
547 return eventBin;
548
549}
550
f15155ed 551//_________________________________________________
552void AliAnaCaloTrackCorrBaseClass::InitParameters()
553{
554 //Initialize the parameters of the analysis.
555 fDataMC = kFALSE;
556 fDebug = -1;
557 fCheckCaloPID = kTRUE ;
558 fCheckFidCut = kFALSE ;
aebb2aa4 559 fCheckRealCaloAcc = kFALSE ;
f15155ed 560 fRecalculateCaloPID = kFALSE ;
aebb2aa4 561 fMinPt = 0.2 ; //Min pt in particle analysis
f15155ed 562 fMaxPt = 300. ; //Max pt in particle analysis
f15155ed 563 fNZvertBin = 1;
564 fNrpBin = 1;
255de269 565
566 fTrackMultBins[0] = 0; fTrackMultBins[1] = 5; fTrackMultBins[2] = 10;
567 fTrackMultBins[3] = 15; fTrackMultBins[4] = 20; fTrackMultBins[5] = 30;
568 fTrackMultBins[6] = 40; fTrackMultBins[7] = 55; fTrackMultBins[8] = 70;
569 for(Int_t ibin=9; ibin < 20; ibin++) fTrackMultBins[ibin] = 10000;
f15155ed 570
571 //fReader = new AliCaloTrackReader(); //Initialized in maker
572 //fCaloUtils = new AliCalorimeterUtils();//Initialized in maker
573
574 fNewAOD = kFALSE ;
575 fOutputAODName = "CaloTrackCorr";
576 fOutputAODClassName = "AliAODPWG4Particle";
577 fInputAODName = "CaloTrackCorr";
578 fAddToHistogramsName = "";
579 fAODObjArrayName = "Ref";
580
581}
582
583//__________________________________________________________________
584void AliAnaCaloTrackCorrBaseClass::Print(const Option_t * opt) const
585{
586 //Print some relevant parameters set for the analysis
587
588 if(! opt)
589 return;
590
aebb2aa4 591 printf("New AOD: = %d\n", fNewAOD);
592 printf("Input AOD name: = %s\n", fInputAODName.Data());
593 printf("Output AOD name: = %s\n", fOutputAODName.Data());
594 printf("Output AOD Class name: = %s\n", fOutputAODClassName.Data());
595 printf("Name of reference array : %s\n", fAODObjArrayName.Data());
f15155ed 596 printf("String added histograms name : %s\n", fAddToHistogramsName.Data());
aebb2aa4 597
598 printf("Min Photon pT = %2.2f\n", fMinPt) ;
599 printf("Max Photon pT = %3.2f\n", fMaxPt) ;
600 printf("Check PID = %d\n", fCheckCaloPID) ;
601 printf("Recalculate PID = %d\n", fRecalculateCaloPID) ;
602 printf("Check Fiducial cut = %d\n", fCheckFidCut) ;
603 printf("Check Real Calo Acc = %d\n", fCheckRealCaloAcc) ;
604 printf("Check MC labels = %d\n", fDataMC);
605 printf("Make plots? = %d\n", fMakePlots);
606 printf("Debug Level = %d\n", fDebug);
607
f15155ed 608 printf(" \n") ;
609
610}
611
612
613