17 #include <TClonesArray.h>
29 #include "AliVCaloCells.h"
30 #include "AliAODEvent.h"
31 #include "AliAODHandler.h"
32 #include "AliAODPWG4Particle.h"
44 fDataMC(0), fDebug(0),
45 fCalorimeter(-1), fCalorimeterString(
""),
46 fCheckFidCut(0), fCheckRealCaloAcc(0),
47 fCheckCaloPID(0), fRecalculateCaloPID(0),
49 fPairTimeCut(200), fTRDSMCovered(-1),
50 fNZvertBin(0), fNrpBin(0),
51 fNCentrBin(0), fNmaxMixEv(0),
52 fDoOwnMix(0), fUseTrackMultBins(0),
53 fFillPileUpHistograms(0), fFillHighMultHistograms(0),
55 fInputAODBranch(0x0), fInputAODName(
""),
56 fOutputAODBranch(0x0), fNewAOD(kFALSE),
57 fOutputAODName(
""), fOutputAODClassName(
""),
58 fAODObjArrayName(
""), fAddToHistogramsName(
""),
59 fCaloPID(0x0), fCaloUtils(0x0),
60 fFidCut(0x0), fHisto(0x0),
61 fIC(0x0), fMCUtils(0x0),
62 fNMS(0x0), fReader(0x0)
91 AliFatal(
"No AOD branch available!!!\n");
99 new((*fOutputAODBranch)[i]) AliAODPWG4Particle(pc);
101 else if(strcmp(
fOutputAODBranch->GetClass()->GetName(),
"AliAODPWG4ParticleCorrelation")==0)
103 new((*fOutputAODBranch)[i]) AliAODPWG4ParticleCorrelation(pc);
107 AliFatal(Form(
"Cannot add an object of type < %s >, to the AOD TClonesArray \n",
fOutputAODBranch->GetClass()->GetName()));
127 else if(trackLabel >= 0 )
148 AliDebug(3,Form(
"AliAnaCaloTrackCorrBaseClass::ConnectInputOutputAODBranches() - Connect Input with name: <%s>; Connect output with name <%s>\n",
fInputAODName.Data(),
fOutputAODName.Data()));
151 AliAODHandler* aodHandler = 0x0;
153 if((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler()) outAOD = kTRUE;
154 if(outAOD) aodHandler = (AliAODHandler*) ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
155 else aodHandler = (AliAODHandler*) ((AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler());
162 else if (aodHandler->GetExtensions())
164 AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject(
GetReader()->GetDeltaAODFileName());
224 if ( !clusters )
return 0x0;
226 for(iclus = first; iclus < clusters->GetEntriesFast(); iclus++)
228 AliVCluster *cluster=
dynamic_cast<AliVCluster*
> (clusters->At(iclus));
231 if ( cluster->GetID() == clId )
246 AliDebug(3,Form(
"AliAnaCaloTrackCorrBaseClass::GetAODBranch() - Get Input Branch with name: <%s>; \n",aodName.Data()));
249 AliAODHandler* aodHandler = 0x0;
251 if((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler()) outAOD = kTRUE;
252 if(outAOD) aodHandler = (AliAODHandler*) ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
253 else aodHandler = (AliAODHandler*) ((AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler());
259 else if (aodHandler->GetExtensions())
261 AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject(
GetReader()->GetDeltaAODFileName());
264 TClonesArray * aodbranch = (TClonesArray*) aodEvent->FindListObject(aodName);
265 if(aodbranch)
return aodbranch;
329 const Int_t buffersize = 255;
330 char onePar[buffersize] ;
331 snprintf(onePar,buffersize,
"--- AliAnaCaloTrackCorrBaseClass ---\n") ;
333 snprintf(onePar,buffersize,
"Minimal P_t: %2.2f ; Max\n",
fMinPt) ;
335 snprintf(onePar,buffersize,
"Minimal P_t: %2.2f ; Max\n",
fMaxPt) ;
337 snprintf(onePar,buffersize,
"|t_{1}-t_{2}| < %2.2f ; Max\n",
fPairTimeCut) ;
339 snprintf(onePar,buffersize,
"fDataMC =%d (Check MC information, on/off) \n",
fDataMC) ;
341 snprintf(onePar,buffersize,
"fCheckFidCut=%d (Check Fiducial cut selection on/off) \n",
fCheckFidCut) ;
343 snprintf(onePar,buffersize,
"fCheckRealCaloAcc=%d (Check Real Calo Acceptance on/off) \n",
fCheckRealCaloAcc) ;
345 snprintf(onePar,buffersize,
"fCheckCaloPID =%d (Use Bayesian PID in calorimetes, on/off) \n",
fCheckCaloPID) ;
347 snprintf(onePar,buffersize,
"fRecalculateCaloPID =%d (Calculate PID from shower/tof/tracking parameters, on/off) \n",
fRecalculateCaloPID) ;
349 snprintf(onePar,buffersize,
"fInputAODName =%s Input AOD name \n",
fInputAODName.Data()) ;
353 snprintf(onePar,buffersize,
"fOutputAODName =%s Output AOD name \n",
fOutputAODName.Data()) ;
355 snprintf(onePar,buffersize,
"fOutputAODClassName =%s Output AOD class name \n",
fOutputAODClassName.Data()) ;
358 snprintf(onePar,buffersize,
"fAODObjArrayName =%s Reference arrays in AOD name \n",
fAODObjArrayName.Data()) ;
360 snprintf(onePar,buffersize,
"fAddToHistogramsName =%s String added to beginning of histograms name \n",
fAddToHistogramsName.Data()) ;
371 AliInfo(Form(
"Create AOD branch of %s objects and with name < %s >\n",
430 AliWarning(Form(
"Bin not found for track multiplicity %d",trackMult));
442 Int_t curCentrBin = 0;
453 if((minCent< 0 && maxCent< 0) || minCent>=maxCent)
468 AliDebug(1,Form(
"Current CentrBin %d, centrality %d, n bins %d, max bin from centrality %d",
486 if(epAngle < 0 || epAngle >TMath::Pi())
488 AliWarning(Form(
"Wrong event plane angle : %f \n",epAngle));
492 curRPBin = TMath::Nint(epAngle*(
GetNRPBin()-1)/TMath::Pi());
495 AliDebug(1,Form(
"Current RP bin %d, bin float %f, angle %f, n bins %d",
513 AliDebug(1,Form(
"AliAnaCaloTrackCorrBaseClass::GetEventVzBin() - %d, vz %2.2f, n bins %d",
524 if(iCen<0 || iVz < 0 || iRP < 0)
546 AliDebug(1,Form(
"Bins : cent %d, vz %d, RP %d, event %d/%d",
559 (AliAnalysisManager::GetAnalysisManager())->AddClassDebug(this->ClassName(),
fDebug);
616 printf(
"New AOD: = %d\n",
fNewAOD);
623 printf(
"Min Photon pT = %2.2f\n",
fMinPt) ;
624 printf(
"Max Photon pT = %3.2f\n",
fMaxPt) ;
629 printf(
"Check MC labels = %d\n",
fDataMC);
631 printf(
"Debug Level = %d\n",
fDebug);
648 else AliFatal(Form(
"Detector < %s > not known!", calo.Data()));
664 else AliFatal(Form(
"Detector < %d > not known!", calo));
AliFiducialCut * fFidCut
Acceptance cuts detector dependent.
TString fOutputAODName
Name of output AOD branch.
virtual AliHeader * GetMCHeader() const
virtual ~AliAnaCaloTrackCorrBaseClass()
Destructor.
virtual TObjArray * GetCTSTracks() const
virtual void InitParameters()
Initialize the parameters of the analysis.
virtual AliHeader * GetHeader() const
Int_t fTrackMultBins[20]
Multiplicity bins limits. Number of bins set with SetNTrackMult() that calls SetNCentrBin().
Bool_t fCheckFidCut
Do analysis for clusters in defined region.
virtual AliStack * GetMCStack() const
virtual void GetVertex(Double_t vertex[3]) const
virtual TObjArray * GetEMCALClusters() const
Bool_t WriteDeltaAODToFile() const
virtual AliVEvent * GetInputEvent() const
virtual void SetCalorimeter(TString &calo)
Set the calorimeter for the analysis. A string.
virtual Int_t GetNTrackMultBin() const
Number of bins in centrality.
virtual AliIsolationCut * GetIsolationCut()
virtual Float_t GetZvertexCut() const
Maximal number of events for mixin.
virtual Double_t GetEventPlaneAngle() const
Bool_t fRecalculateCaloPID
Recalculate PID or use PID weights in calorimeters.
Float_t fPairTimeCut
Maximum difference between time of cluster pairs (ns).
AliHistogramRanges * fHisto
Histogram ranges container.
virtual AliNeutralMesonSelection * GetNeutralMesonSelection()
virtual AliGenEventHeader * GetGenEventHeader() const
virtual AliGenEventHeader * GetMCGenEventHeader() const
TString fInputAODName
Name of input AOD branch.
virtual Int_t GetEventCentrality() const
virtual Int_t GetEventVzBin() const
virtual void GetVertex(Double_t v[3]) const
AliCaloTrackReader * fReader
Access to ESD/AOD/MC data and other utilities.
TString fCalorimeterString
Calorimeter selection.
virtual Float_t GetCentralityBin(Int_t i) const
virtual Int_t GetEventNumber() const
Base class for CaloTrackCorr analysis algorithms.
virtual TString GetBaseParametersList()
virtual TList * GetAODBranchList() const
virtual Int_t GetEventCentralityBin() const
virtual Int_t GetEventRPBin() const
TClonesArray * fInputAODBranch
! Selected input particles branch.
Float_t fMinPt
Maximum pt of (trigger) particles in the analysis.
Bool_t fUseTrackMultBins
Use track multiplicity and not centrality bins in mixing.
virtual TClonesArray * GetAODBranch(const TString &aodBranchName) const
Recover ouput and input AOD pointers for each event in AliCaloTrackMaker.
virtual Int_t GetCentralityOpt() const
virtual AliAODEvent * GetOutputEvent() const
AliIsolationCut * fIC
Isolation cut utils.
Float_t fMaxPt
Minimum pt of (trigger) particles in the analysis.
AliAnaCaloTrackCorrBaseClass()
virtual AliEventplane * GetEventPlane() const
Bool_t fCheckRealCaloAcc
When analysis of MC particle kinematics, check their hit in Calorimeter in Real Geometry or use AliFi...
TString fOutputAODClassName
Type of aod objects to be stored in the TClonesArray (AliAODPWG4Particle, AliAODPWG4ParticleCorrelati...
virtual Int_t GetNCentrBin() const
Number of bins in reaction plain.
virtual TObjArray * GetPHOSClusters() const
virtual TObjArray * GetPHOSClusters() const
TObject * FindObject(int bin, const char *nameH, const TList *lst, Bool_t normPerEvent=kTRUE)
virtual TClonesArray * GetAODCaloClusters() const
virtual void AddAODParticle(AliAODPWG4Particle part)
virtual AliStack * GetStack() const
Bool_t fNewAOD
Flag, new aod branch added to the analysis or not.
Bool_t fMakePlots
Print plots.
AliMCAnalysisUtils * fMCUtils
MonteCarlo Analysis utils.
ClassImp(AliAnalysisTaskCRC) AliAnalysisTaskCRC
virtual Int_t GetNRPBin() const
Number of bins in vertex.
virtual TClonesArray * GetCreateOutputAODBranch()
Create AOD branch filled in the analysis.
virtual AliMCAnalysisUtils * GetMCAnalysisUtils()
AliCaloPID * fCaloPID
PID calculation utils.
virtual Int_t GetEventNumber() const
virtual Int_t GetTrackMultiplicityBin() const
Cut on vertex position.
Int_t fNrpBin
Number of bins in event container for reaction plain.
AliNeutralMesonSelection * fNMS
Neutral Meson Selection utities.
virtual void Print(const Option_t *) const
Print some relevant parameters set for the analysis.
Bool_t fDataMC
Flag to access MC data when using ESD or AOD.
TClonesArray * fOutputAODBranch
! Selected output particles branch.
virtual TClonesArray * GetAODTracks() const
virtual AliVCluster * FindCluster(TObjArray *clusters, Int_t clId, Int_t &iclus, Int_t first=0)
virtual AliCaloTrackReader * GetReader() const
Int_t fNZvertBin
Number of bins in event container for vertex position.
virtual Int_t GetEventMixBin() const
Bool_t fCheckCaloPID
Do analysis for calorimeters.
Int_t fCalorimeter
Calorimeter selection.
TString fAddToHistogramsName
Add this string to histograms name.
Int_t GetTrackMultiplicity() const
virtual TObjArray * GetEMCALClusters() const
DCal, not used so far, just in case.
virtual Int_t CheckMixedEventVertex(Int_t caloLabel, Int_t trackLabel)
virtual Int_t GetNZvertBin() const
TString fAODObjArrayName
Name of ref array kept in a TList in AliAODParticleCorrelation with clusters or track. references.
virtual void ConnectInputOutputAODBranches()
virtual AliMixedEvent * GetMixedEvent() const
virtual TObjArray * GetCTSTracks() const