#include <TH2F.h>
#include <TClonesArray.h>
#include <TObjString.h>
#include "AliAnaClusterPileUp.h"
#include "AliCaloTrackReader.h"
#include "AliFiducialCut.h"
#include "AliVCluster.h"
#include "AliAODEvent.h"
#include "AliESDEvent.h"
ClassImp(AliAnaClusterPileUp)
AliAnaClusterPileUp::AliAnaClusterPileUp() :
AliAnaCaloTrackCorrBaseClass(),
fNCellsCut(0),
fMomentum(),
fhTimePtNoCut(0), fhTimePtSPD(0),
fhTimeNPileUpVertSPD(0), fhTimeNPileUpVertTrack(0),
fhTimeNPileUpVertContributors(0),
fhTimePileUpMainVertexZDistance(0), fhTimePileUpMainVertexZDiamond(0),
fhClusterMultSPDPileUp(), fhClusterMultNoPileUp(),
fhEtaPhiBC0(0), fhEtaPhiBCPlus(0), fhEtaPhiBCMinus(0),
fhEtaPhiBC0PileUpSPD(0),
fhEtaPhiBCPlusPileUpSPD(0), fhEtaPhiBCMinusPileUpSPD(0),
fhPtNPileUpSPDVtx(0), fhPtNPileUpTrkVtx(0),
fhPtNPileUpSPDVtxTimeCut(0), fhPtNPileUpTrkVtxTimeCut(0),
fhPtNPileUpSPDVtxTimeCut2(0), fhPtNPileUpTrkVtxTimeCut2(0)
{
for(Int_t i = 0; i < 7; i++)
{
fhPtPileUp [i] = 0;
fhPtNeutralPileUp[i] = 0;
fhLambda0PileUp [i] = 0;
fhLambda0NeutralPileUp[i] = 0;
fhClusterEFracLongTimePileUp [i] = 0;
fhClusterCellTimePileUp [i] = 0;
fhClusterTimeDiffPileUp [i] = 0;
fhClusterTimeDiffNeutralPileUp[i] = 0;
}
for(Int_t i = 0; i < 4; i++)
{
fhClusterMultSPDPileUp[i] = 0;
fhClusterMultNoPileUp [i] = 0;
}
InitParameters();
}
TObjString * AliAnaClusterPileUp::GetAnalysisCuts()
{
TString parList ;
const Int_t buffersize = 255;
char onePar[buffersize] ;
snprintf(onePar,buffersize,"--- AliAnaClusterPileUp---:") ;
parList+=onePar ;
snprintf(onePar,buffersize,"Calorimeter: %s",GetCalorimeterString().Data()) ;
parList+=onePar ;
return new TObjString(parList) ;
}
TList * AliAnaClusterPileUp::GetCreateOutputObjects()
{
TList * outputContainer = new TList() ;
outputContainer->SetName("PhotonHistos") ;
Int_t nptbins = GetHistogramRanges()->GetHistoPtBins(); Float_t ptimecluster = GetHistogramRanges()->GetHistoPtMax(); Float_t ptmin = GetHistogramRanges()->GetHistoPtMin();
Int_t nphibins = GetHistogramRanges()->GetHistoPhiBins(); Float_t phimax = GetHistogramRanges()->GetHistoPhiMax(); Float_t phimin = GetHistogramRanges()->GetHistoPhiMin();
Int_t netabins = GetHistogramRanges()->GetHistoEtaBins(); Float_t etamax = GetHistogramRanges()->GetHistoEtaMax(); Float_t etamin = GetHistogramRanges()->GetHistoEtaMin();
Int_t ssbins = GetHistogramRanges()->GetHistoShowerShapeBins(); Float_t ssmax = GetHistogramRanges()->GetHistoShowerShapeMax(); Float_t ssmin = GetHistogramRanges()->GetHistoShowerShapeMin();
Int_t ntimebins= GetHistogramRanges()->GetHistoTimeBins(); Float_t timemax = GetHistogramRanges()->GetHistoTimeMax(); Float_t timemin = GetHistogramRanges()->GetHistoTimeMin();
fhTimePtNoCut = new TH2F ("hTimePt_NoCut","time of cluster vs pT of clusters, no event selection", nptbins,ptmin,ptimecluster, ntimebins,timemin,timemax);
fhTimePtNoCut->SetXTitle("#it{p}_{T} (GeV/#it{c})");
fhTimePtNoCut->SetYTitle("#it{time} (ns)");
outputContainer->Add(fhTimePtNoCut);
fhTimePtSPD = new TH2F ("hTimePt_SPD","time of cluster vs pT of clusters, SPD Pile-up events", nptbins,ptmin,ptimecluster, ntimebins,timemin,timemax);
fhTimePtSPD->SetXTitle("#it{p}_{T} (GeV/#it{c})");
fhTimePtSPD->SetYTitle("#it{time} (ns)");
outputContainer->Add(fhTimePtSPD);
fhTimeNPileUpVertSPD = new TH2F ("hTime_NPileUpVertSPD","time of cluster vs N pile-up SPD vertex", ntimebins,timemin,timemax,20,0,20);
fhTimeNPileUpVertSPD->SetYTitle("# vertex ");
fhTimeNPileUpVertSPD->SetXTitle("#it{time} (ns)");
outputContainer->Add(fhTimeNPileUpVertSPD);
fhTimeNPileUpVertTrack = new TH2F ("hTime_NPileUpVertTracks","time of cluster vs N pile-up Tracks vertex", ntimebins,timemin,timemax, 20,0,20 );
fhTimeNPileUpVertTrack->SetYTitle("# vertex ");
fhTimeNPileUpVertTrack->SetXTitle("#it{time} (ns)");
outputContainer->Add(fhTimeNPileUpVertTrack);
fhTimeNPileUpVertContributors = new TH2F ("hTime_NPileUpVertContributors","time of cluster vs N constributors to pile-up SPD vertex", ntimebins,timemin,timemax,50,0,50);
fhTimeNPileUpVertContributors->SetYTitle("# vertex ");
fhTimeNPileUpVertContributors->SetXTitle("#it{time} (ns)");
outputContainer->Add(fhTimeNPileUpVertContributors);
fhTimePileUpMainVertexZDistance = new TH2F ("hTime_PileUpMainVertexZDistance","time of cluster vs distance in Z pile-up SPD vertex - main SPD vertex",ntimebins,timemin,timemax,100,0,50);
fhTimePileUpMainVertexZDistance->SetYTitle("distance Z (cm) ");
fhTimePileUpMainVertexZDistance->SetXTitle("#it{time} (ns)");
outputContainer->Add(fhTimePileUpMainVertexZDistance);
fhTimePileUpMainVertexZDiamond = new TH2F ("hTime_PileUpMainVertexZDiamond","time of cluster vs distance in Z pile-up SPD vertex - z diamond",ntimebins,timemin,timemax,100,0,50);
fhTimePileUpMainVertexZDiamond->SetYTitle("diamond distance Z (cm) ");
fhTimePileUpMainVertexZDiamond->SetXTitle("#it{time} (ns)");
outputContainer->Add(fhTimePileUpMainVertexZDiamond);
fhEtaPhiBC0 = new TH2F ("hEtaPhiBC0","eta-phi for clusters tof corresponding to BC=0",netabins,etamin,etamax, nphibins,phimin,phimax);
fhEtaPhiBC0->SetXTitle("#eta ");
fhEtaPhiBC0->SetYTitle("#phi (rad)");
outputContainer->Add(fhEtaPhiBC0);
fhEtaPhiBCPlus = new TH2F ("hEtaPhiBCPlus","eta-phi for clusters tof corresponding to BC>0",netabins,etamin,etamax, nphibins,phimin,phimax);
fhEtaPhiBCPlus->SetXTitle("#eta ");
fhEtaPhiBCPlus->SetYTitle("#phi (rad)");
outputContainer->Add(fhEtaPhiBCPlus);
fhEtaPhiBCMinus = new TH2F ("hEtaPhiBCMinus","eta-phi for clusters tof corresponding to BC<0",netabins,etamin,etamax, nphibins,phimin,phimax);
fhEtaPhiBCMinus->SetXTitle("#eta ");
fhEtaPhiBCMinus->SetYTitle("#phi (rad)");
outputContainer->Add(fhEtaPhiBCMinus);
fhEtaPhiBC0PileUpSPD = new TH2F ("hEtaPhiBC0PileUpSPD","eta-phi for clusters tof corresponding to BC=0, SPD pile-up",netabins,etamin,etamax, nphibins,phimin,phimax);
fhEtaPhiBC0PileUpSPD->SetXTitle("#eta ");
fhEtaPhiBC0PileUpSPD->SetYTitle("#phi (rad)");
outputContainer->Add(fhEtaPhiBC0PileUpSPD);
fhEtaPhiBCPlusPileUpSPD = new TH2F ("hEtaPhiBCPlusPileUpSPD","eta-phi for clusters tof corresponding to BC>0, SPD pile-up",netabins,etamin,etamax, nphibins,phimin,phimax);
fhEtaPhiBCPlusPileUpSPD->SetXTitle("#eta ");
fhEtaPhiBCPlusPileUpSPD->SetYTitle("#phi (rad)");
outputContainer->Add(fhEtaPhiBCPlusPileUpSPD);
fhEtaPhiBCMinusPileUpSPD = new TH2F ("hEtaPhiBCMinusPileUpSPD","eta-phi for clusters tof corresponding to BC<0, SPD pile-up",netabins,etamin,etamax, nphibins,phimin,phimax);
fhEtaPhiBCMinusPileUpSPD->SetXTitle("#eta ");
fhEtaPhiBCMinusPileUpSPD->SetYTitle("#phi (rad)");
outputContainer->Add(fhEtaPhiBCMinusPileUpSPD);
TString title[] = {"no |t diff| cut","|t diff|<20 ns","|t diff|>20 ns","|t diff|>40 ns"};
TString name [] = {"TDiffNoCut","TDiffSmaller20ns","TDiffLarger20ns","TDiffLarger40ns"};
for(Int_t i = 0; i < 4; i++)
{
fhClusterMultSPDPileUp[i] = new TH2F(Form("fhClusterMultSPDPileUp_%s", name[i].Data()),
Form("Number of clusters per pile up event with #it{E} > 0.5 and %s respect cluster max vs cluster max E ",title[i].Data()),
nptbins,ptmin,ptimecluster,100,0,100);
fhClusterMultSPDPileUp[i]->SetYTitle("n clusters ");
fhClusterMultSPDPileUp[i]->SetXTitle("#it{E}_{cluster max} (GeV)");
outputContainer->Add(fhClusterMultSPDPileUp[i]) ;
fhClusterMultNoPileUp[i] = new TH2F(Form("fhClusterMultNoPileUp_%s", name[i].Data()),
Form("Number of clusters per non pile up event with #it{E} > 0.5 and %s respect cluster max vs cluster max E ",title[i].Data()),
nptbins,ptmin,ptimecluster,100,0,100);
fhClusterMultNoPileUp[i]->SetYTitle("n clusters ");
fhClusterMultNoPileUp[i]->SetXTitle("#it{E}_{cluster max} (GeV)");
outputContainer->Add(fhClusterMultNoPileUp[i]) ;
}
fhPtNPileUpSPDVtx = new TH2F ("hPt_NPileUpVertSPD","pT of cluster vs N pile-up SPD vertex",
nptbins,ptmin,ptimecluster,20,0,20);
fhPtNPileUpSPDVtx->SetYTitle("# vertex ");
fhPtNPileUpSPDVtx->SetXTitle("#it{p}_{T} (GeV/#it{c})");
outputContainer->Add(fhPtNPileUpSPDVtx);
fhPtNPileUpTrkVtx = new TH2F ("hPt_NPileUpVertTracks","pT of cluster vs N pile-up Tracks vertex",
nptbins,ptmin,ptimecluster, 20,0,20 );
fhPtNPileUpTrkVtx->SetYTitle("# vertex ");
fhPtNPileUpTrkVtx->SetXTitle("#it{p}_{T} (GeV/#it{c})");
outputContainer->Add(fhPtNPileUpTrkVtx);
fhPtNPileUpSPDVtxTimeCut = new TH2F ("hPt_NPileUpVertSPD_TimeCut","pT of cluster vs N pile-up SPD vertex, |tof| < 25 ns",
nptbins,ptmin,ptimecluster,20,0,20);
fhPtNPileUpSPDVtxTimeCut->SetYTitle("# vertex ");
fhPtNPileUpSPDVtxTimeCut->SetXTitle("#it{p}_{T} (GeV/#it{c})");
outputContainer->Add(fhPtNPileUpSPDVtxTimeCut);
fhPtNPileUpTrkVtxTimeCut = new TH2F ("hPt_NPileUpVertTracks_TimeCut","pT of cluster vs N pile-up Tracks vertex, |tof| < 25 ns",
nptbins,ptmin,ptimecluster, 20,0,20 );
fhPtNPileUpTrkVtxTimeCut->SetYTitle("# vertex ");
fhPtNPileUpTrkVtxTimeCut->SetXTitle("#it{p}_{T} (GeV/#it{c})");
outputContainer->Add(fhPtNPileUpTrkVtxTimeCut);
fhPtNPileUpSPDVtxTimeCut2 = new TH2F ("hPt_NPileUpVertSPD_TimeCut2","pT of cluster vs N pile-up SPD vertex, -25 < tof < 75 ns",
nptbins,ptmin,ptimecluster,20,0,20);
fhPtNPileUpSPDVtxTimeCut2->SetYTitle("# vertex ");
fhPtNPileUpSPDVtxTimeCut2->SetXTitle("#it{p}_{T} (GeV/#it{c})");
outputContainer->Add(fhPtNPileUpSPDVtxTimeCut2);
fhPtNPileUpTrkVtxTimeCut2 = new TH2F ("hPt_NPileUpVertTracks_TimeCut2","pT of cluster vs N pile-up Tracks vertex, -25 < tof < 75 ns",
nptbins,ptmin,ptimecluster, 20,0,20 );
fhPtNPileUpTrkVtxTimeCut2->SetYTitle("# vertex ");
fhPtNPileUpTrkVtxTimeCut2->SetXTitle("#it{p}_{T} (GeV/#it{c})");
outputContainer->Add(fhPtNPileUpTrkVtxTimeCut2);
TString pileUpName[] = {"SPD",kEMCAL,"SPDOrEMCAL","SPDAndEMCAL","SPDAndNotEMCAL","EMCALAndNotSPD","NotSPDAndNotEMCAL"} ;
for(Int_t i = 0 ; i < 7 ; i++)
{
fhPtPileUp[i] = new TH1F(Form("hPtPileUp%s",pileUpName[i].Data()),
Form("Cluster #it{p}_{T} distribution, %s Pile-Up event",pileUpName[i].Data()), nptbins,ptmin,ptimecluster);
fhPtPileUp[i]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
outputContainer->Add(fhPtPileUp[i]);
fhPtNeutralPileUp[i] = new TH1F(Form("hPtNeutralPileUp%s",pileUpName[i].Data()),
Form("Neutral clusters #it{p}_{T} distribution, %s Pile-Up event",pileUpName[i].Data()), nptbins,ptmin,ptimecluster);
fhPtNeutralPileUp[i]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
outputContainer->Add(fhPtNeutralPileUp[i]);
fhClusterEFracLongTimePileUp[i] = new TH2F(Form("hClusterEFracLongTimePileUp%s",pileUpName[i].Data()),
Form("Cluster E vs fraction of cluster energy from large T cells, %s Pile-Up event",pileUpName[i].Data()),
nptbins,ptmin,ptimecluster,200,0,1);
fhClusterEFracLongTimePileUp[i]->SetXTitle("#it{E} (GeV)");
fhClusterEFracLongTimePileUp[i]->SetYTitle("E(large time) / E");
outputContainer->Add(fhClusterEFracLongTimePileUp[i]);
fhClusterCellTimePileUp[i] = new TH2F(Form("hClusterCellTimePileUp%s",pileUpName[i].Data()),
Form("Cluster E vs cell time in cluster, %s Pile-Up event",pileUpName[i].Data()),
nptbins,ptmin,ptimecluster,ntimebins,timemin,timemax);
fhClusterCellTimePileUp[i]->SetXTitle("#it{E} (GeV)");
fhClusterCellTimePileUp[i]->SetYTitle("t_{cell} (ns)");
outputContainer->Add(fhClusterCellTimePileUp[i]);
fhClusterTimeDiffPileUp[i] = new TH2F(Form("hClusterTimeDiffPileUp%s",pileUpName[i].Data()),
Form("Cluster E vs t_{max}-t_{cell} in cluster, %s Pile-Up event",pileUpName[i].Data()),
nptbins,ptmin,ptimecluster,400,-200,200);
fhClusterTimeDiffPileUp[i]->SetXTitle("#it{E} (GeV)");
fhClusterTimeDiffPileUp[i]->SetYTitle("t_{max}-t_{cell} (ns)");
outputContainer->Add(fhClusterTimeDiffPileUp[i]);
fhClusterTimeDiffNeutralPileUp[i] = new TH2F(Form("hClusterTimeDiffNeutralPileUp%s",pileUpName[i].Data()),
Form("Neutral clusters E vs t_{max}-t_{cell} in cluster, %s Pile-Up event",pileUpName[i].Data()),
nptbins,ptmin,ptimecluster,400,-200,200);
fhClusterTimeDiffNeutralPileUp[i]->SetXTitle("#it{E} (GeV)");
fhClusterTimeDiffNeutralPileUp[i]->SetYTitle("t_{max}-t_{cell} (ns)");
outputContainer->Add(fhClusterTimeDiffNeutralPileUp[i]);
fhLambda0PileUp[i] = new TH2F(Form("hLambda0PileUp%s",pileUpName[i].Data()),
Form("Cluster E vs #lambda^{2}_{0} in cluster, %s Pile-Up event",pileUpName[i].Data()),
nptbins,ptmin,ptimecluster,ssbins,ssmin,ssmax);
fhLambda0PileUp[i]->SetXTitle("#it{E} (GeV)");
fhLambda0PileUp[i]->SetYTitle("#lambda^{2}_{0}");
outputContainer->Add(fhLambda0PileUp[i]);
fhLambda0NeutralPileUp[i] = new TH2F(Form("hLambda0NeutralPileUp%s",pileUpName[i].Data()),
Form("Neutral clusters E vs #lambda^{2}_{0}in cluster, %s Pile-Up event",pileUpName[i].Data()), nptbins,ptmin,ptimecluster,ssbins,ssmin,ssmax);
fhLambda0NeutralPileUp[i]->SetXTitle("#it{E} (GeV)");
fhLambda0NeutralPileUp[i]->SetYTitle("#lambda^{2}_{0}");
outputContainer->Add(fhLambda0NeutralPileUp[i]);
}
return outputContainer ;
}
void AliAnaClusterPileUp::Init()
{
if(GetCalorimeter() == kPHOS && !GetReader()->IsPHOSSwitchedOn())
AliFatal("You want to use PHOS in analysis but it is not read!! \n!!Check the configuration file!!");
if(GetCalorimeter() == kEMCAL && !GetReader()->IsEMCALSwitchedOn())
AliFatal("You want to use EMCAL in analysis but it is not read!! \n!!Check the configuration file!!");
if(GetReader()->GetDataType() == AliCaloTrackReader::kMC)
AliFatal("You want to use MC data in analysis but this is not possible in pile-up!!");
}
void AliAnaClusterPileUp::InitParameters()
{
AddToHistogramsName("AnaClusterPileUp_");
fNCellsCut = 2;
}
void AliAnaClusterPileUp::MakeAnalysisFillHistograms()
{
TObjArray * pl = 0x0;
AliVCaloCells* cells = 0;
if (GetCalorimeter() == kPHOS )
{
pl = GetPHOSClusters();
cells = GetPHOSCells();
}
else if (GetCalorimeter() == kEMCAL)
{
pl = GetEMCALClusters();
cells = GetEMCALCells();
}
if(!pl)
{
AliInfo(Form("TObjArray with %s clusters is NULL!",GetCalorimeterString().Data()));
return;
}
AliVEvent * event = GetReader()->GetInputEvent();
AliESDEvent* esdEv = dynamic_cast<AliESDEvent*> (event);
AliAODEvent* aodEv = dynamic_cast<AliAODEvent*> (event);
Int_t nVtxSPD = -1;
Int_t nVtxTrk = -1;
if (esdEv)
{
nVtxSPD = esdEv->GetNumberOfPileupVerticesSPD();
nVtxTrk = esdEv->GetNumberOfPileupVerticesTracks();
}
else if (aodEv)
{
nVtxSPD = aodEv->GetNumberOfPileupVerticesSPD();
nVtxTrk = aodEv->GetNumberOfPileupVerticesTracks();
}
Int_t nCaloClusters = pl->GetEntriesFast();
AliDebug(1,Form("Input %s cluster entries %d", GetCalorimeterString().Data(), nCaloClusters));
Int_t idMax = 0;
Float_t ptMax = 0;
Float_t tMax = 0;
for(Int_t icalo = 0; icalo < nCaloClusters; icalo++)
{
AliVCluster * calo = (AliVCluster*) (pl->At(icalo));
if(!calo) continue;
calo->GetMomentum(fMomentum,GetVertex(0)) ;
Float_t ecluster = fMomentum.E();
Float_t ptcluster = fMomentum.Pt();
Float_t l0cluster = calo->GetM02();
Float_t etacluster = fMomentum.Eta();
Float_t phicluster = fMomentum.Phi();
if(phicluster < 0) phicluster+=TMath::TwoPi();
Float_t tofcluster = calo->GetTOF()*1.e9;
Bool_t matched = IsTrackMatched(calo,GetReader()->GetInputEvent());
if(ecluster < GetMinEnergy() || ecluster > GetMaxEnergy() ) continue ;
if(calo->GetNCells() <= fNCellsCut && GetReader()->GetDataType() != AliCaloTrackReader::kMC) continue;
if(IsFiducialCutOn())
{
Bool_t in = GetFiducialCut()->IsInFiducialCut(fMomentum.Eta(),fMomentum.Phi(),GetCalorimeter()) ;
if(! in ) continue;
}
if(ptcluster > ptMax && tofcluster < 30)
{
ptMax = ptcluster;
tMax = tofcluster;
idMax = icalo;
}
fhTimePtNoCut->Fill(ptcluster,tofcluster);
if(GetReader()->IsPileUpFromSPD()) fhTimePtSPD->Fill(ptcluster,tofcluster);
fhPtNPileUpSPDVtx->Fill(ptcluster,nVtxSPD);
fhPtNPileUpTrkVtx->Fill(ptcluster,nVtxTrk);
if(TMath::Abs(tofcluster) < 30)
{
fhPtNPileUpSPDVtxTimeCut->Fill(ptcluster,nVtxSPD);
fhPtNPileUpTrkVtxTimeCut->Fill(ptcluster,nVtxTrk);
}
if(tofcluster < 75 && tofcluster > -30)
{
fhPtNPileUpSPDVtxTimeCut2->Fill(ptcluster,nVtxSPD);
fhPtNPileUpTrkVtxTimeCut2->Fill(ptcluster,nVtxTrk);
}
if(ecluster > 8)
{
fhTimeNPileUpVertSPD ->Fill(tofcluster,nVtxSPD);
fhTimeNPileUpVertTrack->Fill(tofcluster,nVtxTrk);
Int_t ncont = -1;
Float_t z1 = -1, z2 = -1;
Float_t diamZ = -1;
for(Int_t iVert=0; iVert<nVtxSPD;iVert++)
{
if (esdEv)
{
const AliESDVertex* pv=esdEv->GetPileupVertexSPD(iVert);
ncont=pv->GetNContributors();
z1 = esdEv->GetPrimaryVertexSPD()->GetZ();
z2 = pv->GetZ();
diamZ = esdEv->GetDiamondZ();
}
else if (aodEv)
{
AliAODVertex *pv=aodEv->GetVertex(iVert);
if(pv->GetType()!=AliAODVertex::kPileupSPD) continue;
ncont=pv->GetNContributors();
z1=aodEv->GetPrimaryVertexSPD()->GetZ();
z2=pv->GetZ();
diamZ = aodEv->GetDiamondZ();
}
Double_t distZ = TMath::Abs(z2-z1);
diamZ = TMath::Abs(z2-diamZ);
fhTimeNPileUpVertContributors ->Fill(tofcluster,ncont);
fhTimePileUpMainVertexZDistance->Fill(tofcluster,distZ);
fhTimePileUpMainVertexZDiamond ->Fill(tofcluster,diamZ);
}
}
if (tofcluster > 28)
{
fhEtaPhiBCPlus ->Fill(etacluster,phicluster);
if(GetReader()->IsPileUpFromSPD()) fhEtaPhiBCPlusPileUpSPD ->Fill(etacluster,phicluster);
continue;
}
else if (tofcluster <-28)
{
fhEtaPhiBCMinus->Fill(etacluster,phicluster);
if(GetReader()->IsPileUpFromSPD()) fhEtaPhiBCMinusPileUpSPD->Fill(etacluster,phicluster);
continue ;
}
fhEtaPhiBC0->Fill(etacluster,phicluster); if(GetReader()->IsPileUpFromSPD()) fhEtaPhiBC0PileUpSPD ->Fill(etacluster,phicluster);
if(GetReader()->IsPileUpFromSPD()) {fhPtPileUp[0]->Fill(ptcluster); fhLambda0PileUp[0]->Fill(ptcluster,l0cluster); }
if(GetReader()->IsPileUpFromEMCal()) {fhPtPileUp[1]->Fill(ptcluster); fhLambda0PileUp[1]->Fill(ptcluster,l0cluster); }
if(GetReader()->IsPileUpFromSPDOrEMCal()) {fhPtPileUp[2]->Fill(ptcluster); fhLambda0PileUp[2]->Fill(ptcluster,l0cluster); }
if(GetReader()->IsPileUpFromSPDAndEMCal()) {fhPtPileUp[3]->Fill(ptcluster); fhLambda0PileUp[3]->Fill(ptcluster,l0cluster); }
if(GetReader()->IsPileUpFromSPDAndNotEMCal()) {fhPtPileUp[4]->Fill(ptcluster); fhLambda0PileUp[4]->Fill(ptcluster,l0cluster); }
if(GetReader()->IsPileUpFromEMCalAndNotSPD()) {fhPtPileUp[5]->Fill(ptcluster); fhLambda0PileUp[5]->Fill(ptcluster,l0cluster); }
if(GetReader()->IsPileUpFromNotSPDAndNotEMCal()) {fhPtPileUp[6]->Fill(ptcluster); fhLambda0PileUp[6]->Fill(ptcluster,l0cluster); }
if(!matched)
{
if(GetReader()->IsPileUpFromSPD()) {fhPtNeutralPileUp[0]->Fill(ptcluster); fhLambda0NeutralPileUp[0]->Fill(ptcluster,l0cluster); }
if(GetReader()->IsPileUpFromEMCal()) {fhPtNeutralPileUp[1]->Fill(ptcluster); fhLambda0NeutralPileUp[1]->Fill(ptcluster,l0cluster); }
if(GetReader()->IsPileUpFromSPDOrEMCal()) {fhPtNeutralPileUp[2]->Fill(ptcluster); fhLambda0NeutralPileUp[2]->Fill(ptcluster,l0cluster); }
if(GetReader()->IsPileUpFromSPDAndEMCal()) {fhPtNeutralPileUp[3]->Fill(ptcluster); fhLambda0NeutralPileUp[3]->Fill(ptcluster,l0cluster); }
if(GetReader()->IsPileUpFromSPDAndNotEMCal()) {fhPtNeutralPileUp[4]->Fill(ptcluster); fhLambda0NeutralPileUp[4]->Fill(ptcluster,l0cluster); }
if(GetReader()->IsPileUpFromEMCalAndNotSPD()) {fhPtNeutralPileUp[5]->Fill(ptcluster); fhLambda0NeutralPileUp[5]->Fill(ptcluster,l0cluster); }
if(GetReader()->IsPileUpFromNotSPDAndNotEMCal()) {fhPtNeutralPileUp[6]->Fill(ptcluster); fhLambda0NeutralPileUp[6]->Fill(ptcluster,l0cluster); }
}
Float_t maxCellFraction = 0.;
Int_t absIdMax = GetCaloUtils()->GetMaxEnergyCell(cells, calo,maxCellFraction);
Float_t clusterLongTimePt = 0;
Float_t clusterOKTimePt = 0;
if(cells->GetCellAmplitude(absIdMax) < 0.1) continue ;
for (Int_t ipos = 0; ipos < calo->GetNCells(); ipos++)
{
Int_t absId = calo->GetCellsAbsId()[ipos];
if( absId == absIdMax ) continue ;
Double_t time = cells->GetCellTime(absId);
Float_t amp = cells->GetCellAmplitude(absId);
Int_t bc = GetReader()->GetInputEvent()->GetBunchCrossNumber();
GetCaloUtils()->GetEMCALRecoUtils()->AcceptCalibrateCell(absId,bc,amp,time,cells);
time*=1e9;
Float_t diff = (tofcluster-time);
if(GetReader()->IsInTimeWindow(time,amp)) clusterOKTimePt += amp;
else clusterLongTimePt += amp;
if( cells->GetCellAmplitude(absIdMax) < 0.1 ) continue ;
if(GetReader()->IsPileUpFromSPD())
{
fhClusterCellTimePileUp[0]->Fill(ptcluster, time);
fhClusterTimeDiffPileUp[0]->Fill(ptcluster, diff);
if(!matched) fhClusterTimeDiffNeutralPileUp[0]->Fill(ptcluster, diff);
}
if(GetReader()->IsPileUpFromEMCal())
{
fhClusterCellTimePileUp[1]->Fill(ptcluster, time);
fhClusterTimeDiffPileUp[1]->Fill(ptcluster, diff);
if(!matched) fhClusterTimeDiffNeutralPileUp[1]->Fill(ptcluster, diff);
}
if(GetReader()->IsPileUpFromSPDOrEMCal())
{
fhClusterCellTimePileUp[2]->Fill(ptcluster, time);
fhClusterTimeDiffPileUp[2]->Fill(ptcluster, diff);
if(!matched) fhClusterTimeDiffNeutralPileUp[2]->Fill(ptcluster, diff);
}
if(GetReader()->IsPileUpFromSPDAndEMCal())
{
fhClusterCellTimePileUp[3]->Fill(ptcluster, time);
fhClusterTimeDiffPileUp[3]->Fill(ptcluster, diff);
if(!matched) fhClusterTimeDiffNeutralPileUp[3]->Fill(ptcluster, diff);
}
if(GetReader()->IsPileUpFromSPDAndNotEMCal())
{
fhClusterCellTimePileUp[4]->Fill(ptcluster, time);
fhClusterTimeDiffPileUp[4]->Fill(ptcluster, diff);
if(!matched) fhClusterTimeDiffNeutralPileUp[4]->Fill(ptcluster, diff);
}
if(GetReader()->IsPileUpFromEMCalAndNotSPD())
{
fhClusterCellTimePileUp[5]->Fill(ptcluster, time);
fhClusterTimeDiffPileUp[5]->Fill(ptcluster, diff);
if(!matched) fhClusterTimeDiffNeutralPileUp[5]->Fill(ptcluster, diff);
}
if(GetReader()->IsPileUpFromNotSPDAndNotEMCal())
{
fhClusterCellTimePileUp[6]->Fill(ptcluster, time);
fhClusterTimeDiffPileUp[6]->Fill(ptcluster, diff);
if(!matched) fhClusterTimeDiffNeutralPileUp[6]->Fill(ptcluster, diff);
}
}
Float_t frac = 0;
if(clusterLongTimePt+clusterOKTimePt > 0.001)
frac = clusterLongTimePt/(clusterLongTimePt+clusterOKTimePt);
if(GetReader()->IsPileUpFromSPD()) fhClusterEFracLongTimePileUp[0]->Fill(ptcluster,frac);
if(GetReader()->IsPileUpFromEMCal()) fhClusterEFracLongTimePileUp[1]->Fill(ptcluster,frac);
if(GetReader()->IsPileUpFromSPDOrEMCal()) fhClusterEFracLongTimePileUp[2]->Fill(ptcluster,frac);
if(GetReader()->IsPileUpFromSPDAndEMCal()) fhClusterEFracLongTimePileUp[3]->Fill(ptcluster,frac);
if(GetReader()->IsPileUpFromSPDAndNotEMCal()) fhClusterEFracLongTimePileUp[4]->Fill(ptcluster,frac);
if(GetReader()->IsPileUpFromEMCalAndNotSPD()) fhClusterEFracLongTimePileUp[5]->Fill(ptcluster,frac);
if(GetReader()->IsPileUpFromNotSPDAndNotEMCal()) fhClusterEFracLongTimePileUp[6]->Fill(ptcluster,frac);
}
Int_t n20 = 0;
Int_t n40 = 0;
Int_t n = 0;
Int_t nOK = 0;
for(Int_t icalo = 0; icalo < nCaloClusters; icalo++)
{
AliVCluster * calo = (AliVCluster*) (pl->At(icalo));
if(!calo || calo->E() < 0.3 || icalo == idMax) continue;
Float_t tdiff = TMath::Abs(tMax-calo->GetTOF()*1e9);
n++;
if(tdiff < 25) nOK++;
else
{
n20++;
if(tdiff > 40 ) n40++;
}
}
if(GetReader()->IsPileUpFromSPD())
{
fhClusterMultSPDPileUp[0]->Fill(ptMax,n );
fhClusterMultSPDPileUp[1]->Fill(ptMax,nOK);
fhClusterMultSPDPileUp[2]->Fill(ptMax,n20);
fhClusterMultSPDPileUp[3]->Fill(ptMax,n40);
}
else
{
fhClusterMultNoPileUp[0]->Fill(ptMax,n );
fhClusterMultNoPileUp[1]->Fill(ptMax,nOK);
fhClusterMultNoPileUp[2]->Fill(ptMax,n20);
fhClusterMultNoPileUp[3]->Fill(ptMax,n40);
}
AliDebug(1,"End fill histograms");
}
void AliAnaClusterPileUp::Print(const Option_t * opt) const
{
if(! opt)
return;
printf("**** Print %s %s ****\n", GetName(), GetTitle() ) ;
AliAnaCaloTrackCorrBaseClass::Print(" ");
printf("Calorimeter = %s\n", GetCalorimeterString().Data()) ;
printf(" \n") ;
}
AliAnaClusterPileUp.cxx:1 AliAnaClusterPileUp.cxx:2 AliAnaClusterPileUp.cxx:3 AliAnaClusterPileUp.cxx:4 AliAnaClusterPileUp.cxx:5 AliAnaClusterPileUp.cxx:6 AliAnaClusterPileUp.cxx:7 AliAnaClusterPileUp.cxx:8 AliAnaClusterPileUp.cxx:9 AliAnaClusterPileUp.cxx:10 AliAnaClusterPileUp.cxx:11 AliAnaClusterPileUp.cxx:12 AliAnaClusterPileUp.cxx:13 AliAnaClusterPileUp.cxx:14 AliAnaClusterPileUp.cxx:15 AliAnaClusterPileUp.cxx:16 AliAnaClusterPileUp.cxx:17 AliAnaClusterPileUp.cxx:18 AliAnaClusterPileUp.cxx:19 AliAnaClusterPileUp.cxx:20 AliAnaClusterPileUp.cxx:21 AliAnaClusterPileUp.cxx:22 AliAnaClusterPileUp.cxx:23 AliAnaClusterPileUp.cxx:24 AliAnaClusterPileUp.cxx:25 AliAnaClusterPileUp.cxx:26 AliAnaClusterPileUp.cxx:27 AliAnaClusterPileUp.cxx:28 AliAnaClusterPileUp.cxx:29 AliAnaClusterPileUp.cxx:30 AliAnaClusterPileUp.cxx:31 AliAnaClusterPileUp.cxx:32 AliAnaClusterPileUp.cxx:33 AliAnaClusterPileUp.cxx:34 AliAnaClusterPileUp.cxx:35 AliAnaClusterPileUp.cxx:36 AliAnaClusterPileUp.cxx:37 AliAnaClusterPileUp.cxx:38 AliAnaClusterPileUp.cxx:39 AliAnaClusterPileUp.cxx:40 AliAnaClusterPileUp.cxx:41 AliAnaClusterPileUp.cxx:42 AliAnaClusterPileUp.cxx:43 AliAnaClusterPileUp.cxx:44 AliAnaClusterPileUp.cxx:45 AliAnaClusterPileUp.cxx:46 AliAnaClusterPileUp.cxx:47 AliAnaClusterPileUp.cxx:48 AliAnaClusterPileUp.cxx:49 AliAnaClusterPileUp.cxx:50 AliAnaClusterPileUp.cxx:51 AliAnaClusterPileUp.cxx:52 AliAnaClusterPileUp.cxx:53 AliAnaClusterPileUp.cxx:54 AliAnaClusterPileUp.cxx:55 AliAnaClusterPileUp.cxx:56 AliAnaClusterPileUp.cxx:57 AliAnaClusterPileUp.cxx:58 AliAnaClusterPileUp.cxx:59 AliAnaClusterPileUp.cxx:60 AliAnaClusterPileUp.cxx:61 AliAnaClusterPileUp.cxx:62 AliAnaClusterPileUp.cxx:63 AliAnaClusterPileUp.cxx:64 AliAnaClusterPileUp.cxx:65 AliAnaClusterPileUp.cxx:66 AliAnaClusterPileUp.cxx:67 AliAnaClusterPileUp.cxx:68 AliAnaClusterPileUp.cxx:69 AliAnaClusterPileUp.cxx:70 AliAnaClusterPileUp.cxx:71 AliAnaClusterPileUp.cxx:72 AliAnaClusterPileUp.cxx:73 AliAnaClusterPileUp.cxx:74 AliAnaClusterPileUp.cxx:75 AliAnaClusterPileUp.cxx:76 AliAnaClusterPileUp.cxx:77 AliAnaClusterPileUp.cxx:78 AliAnaClusterPileUp.cxx:79 AliAnaClusterPileUp.cxx:80 AliAnaClusterPileUp.cxx:81 AliAnaClusterPileUp.cxx:82 AliAnaClusterPileUp.cxx:83 AliAnaClusterPileUp.cxx:84 AliAnaClusterPileUp.cxx:85 AliAnaClusterPileUp.cxx:86 AliAnaClusterPileUp.cxx:87 AliAnaClusterPileUp.cxx:88 AliAnaClusterPileUp.cxx:89 AliAnaClusterPileUp.cxx:90 AliAnaClusterPileUp.cxx:91 AliAnaClusterPileUp.cxx:92 AliAnaClusterPileUp.cxx:93 AliAnaClusterPileUp.cxx:94 AliAnaClusterPileUp.cxx:95 AliAnaClusterPileUp.cxx:96 AliAnaClusterPileUp.cxx:97 AliAnaClusterPileUp.cxx:98 AliAnaClusterPileUp.cxx:99 AliAnaClusterPileUp.cxx:100 AliAnaClusterPileUp.cxx:101 AliAnaClusterPileUp.cxx:102 AliAnaClusterPileUp.cxx:103 AliAnaClusterPileUp.cxx:104 AliAnaClusterPileUp.cxx:105 AliAnaClusterPileUp.cxx:106 AliAnaClusterPileUp.cxx:107 AliAnaClusterPileUp.cxx:108 AliAnaClusterPileUp.cxx:109 AliAnaClusterPileUp.cxx:110 AliAnaClusterPileUp.cxx:111 AliAnaClusterPileUp.cxx:112 AliAnaClusterPileUp.cxx:113 AliAnaClusterPileUp.cxx:114 AliAnaClusterPileUp.cxx:115 AliAnaClusterPileUp.cxx:116 AliAnaClusterPileUp.cxx:117 AliAnaClusterPileUp.cxx:118 AliAnaClusterPileUp.cxx:119 AliAnaClusterPileUp.cxx:120 AliAnaClusterPileUp.cxx:121 AliAnaClusterPileUp.cxx:122 AliAnaClusterPileUp.cxx:123 AliAnaClusterPileUp.cxx:124 AliAnaClusterPileUp.cxx:125 AliAnaClusterPileUp.cxx:126 AliAnaClusterPileUp.cxx:127 AliAnaClusterPileUp.cxx:128 AliAnaClusterPileUp.cxx:129 AliAnaClusterPileUp.cxx:130 AliAnaClusterPileUp.cxx:131 AliAnaClusterPileUp.cxx:132 AliAnaClusterPileUp.cxx:133 AliAnaClusterPileUp.cxx:134 AliAnaClusterPileUp.cxx:135 AliAnaClusterPileUp.cxx:136 AliAnaClusterPileUp.cxx:137 AliAnaClusterPileUp.cxx:138 AliAnaClusterPileUp.cxx:139 AliAnaClusterPileUp.cxx:140 AliAnaClusterPileUp.cxx:141 AliAnaClusterPileUp.cxx:142 AliAnaClusterPileUp.cxx:143 AliAnaClusterPileUp.cxx:144 AliAnaClusterPileUp.cxx:145 AliAnaClusterPileUp.cxx:146 AliAnaClusterPileUp.cxx:147 AliAnaClusterPileUp.cxx:148 AliAnaClusterPileUp.cxx:149 AliAnaClusterPileUp.cxx:150 AliAnaClusterPileUp.cxx:151 AliAnaClusterPileUp.cxx:152 AliAnaClusterPileUp.cxx:153 AliAnaClusterPileUp.cxx:154 AliAnaClusterPileUp.cxx:155 AliAnaClusterPileUp.cxx:156 AliAnaClusterPileUp.cxx:157 AliAnaClusterPileUp.cxx:158 AliAnaClusterPileUp.cxx:159 AliAnaClusterPileUp.cxx:160 AliAnaClusterPileUp.cxx:161 AliAnaClusterPileUp.cxx:162 AliAnaClusterPileUp.cxx:163 AliAnaClusterPileUp.cxx:164 AliAnaClusterPileUp.cxx:165 AliAnaClusterPileUp.cxx:166 AliAnaClusterPileUp.cxx:167 AliAnaClusterPileUp.cxx:168 AliAnaClusterPileUp.cxx:169 AliAnaClusterPileUp.cxx:170 AliAnaClusterPileUp.cxx:171 AliAnaClusterPileUp.cxx:172 AliAnaClusterPileUp.cxx:173 AliAnaClusterPileUp.cxx:174 AliAnaClusterPileUp.cxx:175 AliAnaClusterPileUp.cxx:176 AliAnaClusterPileUp.cxx:177 AliAnaClusterPileUp.cxx:178 AliAnaClusterPileUp.cxx:179 AliAnaClusterPileUp.cxx:180 AliAnaClusterPileUp.cxx:181 AliAnaClusterPileUp.cxx:182 AliAnaClusterPileUp.cxx:183 AliAnaClusterPileUp.cxx:184 AliAnaClusterPileUp.cxx:185 AliAnaClusterPileUp.cxx:186 AliAnaClusterPileUp.cxx:187 AliAnaClusterPileUp.cxx:188 AliAnaClusterPileUp.cxx:189 AliAnaClusterPileUp.cxx:190 AliAnaClusterPileUp.cxx:191 AliAnaClusterPileUp.cxx:192 AliAnaClusterPileUp.cxx:193 AliAnaClusterPileUp.cxx:194 AliAnaClusterPileUp.cxx:195 AliAnaClusterPileUp.cxx:196 AliAnaClusterPileUp.cxx:197 AliAnaClusterPileUp.cxx:198 AliAnaClusterPileUp.cxx:199 AliAnaClusterPileUp.cxx:200 AliAnaClusterPileUp.cxx:201 AliAnaClusterPileUp.cxx:202 AliAnaClusterPileUp.cxx:203 AliAnaClusterPileUp.cxx:204 AliAnaClusterPileUp.cxx:205 AliAnaClusterPileUp.cxx:206 AliAnaClusterPileUp.cxx:207 AliAnaClusterPileUp.cxx:208 AliAnaClusterPileUp.cxx:209 AliAnaClusterPileUp.cxx:210 AliAnaClusterPileUp.cxx:211 AliAnaClusterPileUp.cxx:212 AliAnaClusterPileUp.cxx:213 AliAnaClusterPileUp.cxx:214 AliAnaClusterPileUp.cxx:215 AliAnaClusterPileUp.cxx:216 AliAnaClusterPileUp.cxx:217 AliAnaClusterPileUp.cxx:218 AliAnaClusterPileUp.cxx:219 AliAnaClusterPileUp.cxx:220 AliAnaClusterPileUp.cxx:221 AliAnaClusterPileUp.cxx:222 AliAnaClusterPileUp.cxx:223 AliAnaClusterPileUp.cxx:224 AliAnaClusterPileUp.cxx:225 AliAnaClusterPileUp.cxx:226 AliAnaClusterPileUp.cxx:227 AliAnaClusterPileUp.cxx:228 AliAnaClusterPileUp.cxx:229 AliAnaClusterPileUp.cxx:230 AliAnaClusterPileUp.cxx:231 AliAnaClusterPileUp.cxx:232 AliAnaClusterPileUp.cxx:233 AliAnaClusterPileUp.cxx:234 AliAnaClusterPileUp.cxx:235 AliAnaClusterPileUp.cxx:236 AliAnaClusterPileUp.cxx:237 AliAnaClusterPileUp.cxx:238 AliAnaClusterPileUp.cxx:239 AliAnaClusterPileUp.cxx:240 AliAnaClusterPileUp.cxx:241 AliAnaClusterPileUp.cxx:242 AliAnaClusterPileUp.cxx:243 AliAnaClusterPileUp.cxx:244 AliAnaClusterPileUp.cxx:245 AliAnaClusterPileUp.cxx:246 AliAnaClusterPileUp.cxx:247 AliAnaClusterPileUp.cxx:248 AliAnaClusterPileUp.cxx:249 AliAnaClusterPileUp.cxx:250 AliAnaClusterPileUp.cxx:251 AliAnaClusterPileUp.cxx:252 AliAnaClusterPileUp.cxx:253 AliAnaClusterPileUp.cxx:254 AliAnaClusterPileUp.cxx:255 AliAnaClusterPileUp.cxx:256 AliAnaClusterPileUp.cxx:257 AliAnaClusterPileUp.cxx:258 AliAnaClusterPileUp.cxx:259 AliAnaClusterPileUp.cxx:260 AliAnaClusterPileUp.cxx:261 AliAnaClusterPileUp.cxx:262 AliAnaClusterPileUp.cxx:263 AliAnaClusterPileUp.cxx:264 AliAnaClusterPileUp.cxx:265 AliAnaClusterPileUp.cxx:266 AliAnaClusterPileUp.cxx:267 AliAnaClusterPileUp.cxx:268 AliAnaClusterPileUp.cxx:269 AliAnaClusterPileUp.cxx:270 AliAnaClusterPileUp.cxx:271 AliAnaClusterPileUp.cxx:272 AliAnaClusterPileUp.cxx:273 AliAnaClusterPileUp.cxx:274 AliAnaClusterPileUp.cxx:275 AliAnaClusterPileUp.cxx:276 AliAnaClusterPileUp.cxx:277 AliAnaClusterPileUp.cxx:278 AliAnaClusterPileUp.cxx:279 AliAnaClusterPileUp.cxx:280 AliAnaClusterPileUp.cxx:281 AliAnaClusterPileUp.cxx:282 AliAnaClusterPileUp.cxx:283 AliAnaClusterPileUp.cxx:284 AliAnaClusterPileUp.cxx:285 AliAnaClusterPileUp.cxx:286 AliAnaClusterPileUp.cxx:287 AliAnaClusterPileUp.cxx:288 AliAnaClusterPileUp.cxx:289 AliAnaClusterPileUp.cxx:290 AliAnaClusterPileUp.cxx:291 AliAnaClusterPileUp.cxx:292 AliAnaClusterPileUp.cxx:293 AliAnaClusterPileUp.cxx:294 AliAnaClusterPileUp.cxx:295 AliAnaClusterPileUp.cxx:296 AliAnaClusterPileUp.cxx:297 AliAnaClusterPileUp.cxx:298 AliAnaClusterPileUp.cxx:299 AliAnaClusterPileUp.cxx:300 AliAnaClusterPileUp.cxx:301 AliAnaClusterPileUp.cxx:302 AliAnaClusterPileUp.cxx:303 AliAnaClusterPileUp.cxx:304 AliAnaClusterPileUp.cxx:305 AliAnaClusterPileUp.cxx:306 AliAnaClusterPileUp.cxx:307 AliAnaClusterPileUp.cxx:308 AliAnaClusterPileUp.cxx:309 AliAnaClusterPileUp.cxx:310 AliAnaClusterPileUp.cxx:311 AliAnaClusterPileUp.cxx:312 AliAnaClusterPileUp.cxx:313 AliAnaClusterPileUp.cxx:314 AliAnaClusterPileUp.cxx:315 AliAnaClusterPileUp.cxx:316 AliAnaClusterPileUp.cxx:317 AliAnaClusterPileUp.cxx:318 AliAnaClusterPileUp.cxx:319 AliAnaClusterPileUp.cxx:320 AliAnaClusterPileUp.cxx:321 AliAnaClusterPileUp.cxx:322 AliAnaClusterPileUp.cxx:323 AliAnaClusterPileUp.cxx:324 AliAnaClusterPileUp.cxx:325 AliAnaClusterPileUp.cxx:326 AliAnaClusterPileUp.cxx:327 AliAnaClusterPileUp.cxx:328 AliAnaClusterPileUp.cxx:329 AliAnaClusterPileUp.cxx:330 AliAnaClusterPileUp.cxx:331 AliAnaClusterPileUp.cxx:332 AliAnaClusterPileUp.cxx:333 AliAnaClusterPileUp.cxx:334 AliAnaClusterPileUp.cxx:335 AliAnaClusterPileUp.cxx:336 AliAnaClusterPileUp.cxx:337 AliAnaClusterPileUp.cxx:338 AliAnaClusterPileUp.cxx:339 AliAnaClusterPileUp.cxx:340 AliAnaClusterPileUp.cxx:341 AliAnaClusterPileUp.cxx:342 AliAnaClusterPileUp.cxx:343 AliAnaClusterPileUp.cxx:344 AliAnaClusterPileUp.cxx:345 AliAnaClusterPileUp.cxx:346 AliAnaClusterPileUp.cxx:347 AliAnaClusterPileUp.cxx:348 AliAnaClusterPileUp.cxx:349 AliAnaClusterPileUp.cxx:350 AliAnaClusterPileUp.cxx:351 AliAnaClusterPileUp.cxx:352 AliAnaClusterPileUp.cxx:353 AliAnaClusterPileUp.cxx:354 AliAnaClusterPileUp.cxx:355 AliAnaClusterPileUp.cxx:356 AliAnaClusterPileUp.cxx:357 AliAnaClusterPileUp.cxx:358 AliAnaClusterPileUp.cxx:359 AliAnaClusterPileUp.cxx:360 AliAnaClusterPileUp.cxx:361 AliAnaClusterPileUp.cxx:362 AliAnaClusterPileUp.cxx:363 AliAnaClusterPileUp.cxx:364 AliAnaClusterPileUp.cxx:365 AliAnaClusterPileUp.cxx:366 AliAnaClusterPileUp.cxx:367 AliAnaClusterPileUp.cxx:368 AliAnaClusterPileUp.cxx:369 AliAnaClusterPileUp.cxx:370 AliAnaClusterPileUp.cxx:371 AliAnaClusterPileUp.cxx:372 AliAnaClusterPileUp.cxx:373 AliAnaClusterPileUp.cxx:374 AliAnaClusterPileUp.cxx:375 AliAnaClusterPileUp.cxx:376 AliAnaClusterPileUp.cxx:377 AliAnaClusterPileUp.cxx:378 AliAnaClusterPileUp.cxx:379 AliAnaClusterPileUp.cxx:380 AliAnaClusterPileUp.cxx:381 AliAnaClusterPileUp.cxx:382 AliAnaClusterPileUp.cxx:383 AliAnaClusterPileUp.cxx:384 AliAnaClusterPileUp.cxx:385 AliAnaClusterPileUp.cxx:386 AliAnaClusterPileUp.cxx:387 AliAnaClusterPileUp.cxx:388 AliAnaClusterPileUp.cxx:389 AliAnaClusterPileUp.cxx:390 AliAnaClusterPileUp.cxx:391 AliAnaClusterPileUp.cxx:392 AliAnaClusterPileUp.cxx:393 AliAnaClusterPileUp.cxx:394 AliAnaClusterPileUp.cxx:395 AliAnaClusterPileUp.cxx:396 AliAnaClusterPileUp.cxx:397 AliAnaClusterPileUp.cxx:398 AliAnaClusterPileUp.cxx:399 AliAnaClusterPileUp.cxx:400 AliAnaClusterPileUp.cxx:401 AliAnaClusterPileUp.cxx:402 AliAnaClusterPileUp.cxx:403 AliAnaClusterPileUp.cxx:404 AliAnaClusterPileUp.cxx:405 AliAnaClusterPileUp.cxx:406 AliAnaClusterPileUp.cxx:407 AliAnaClusterPileUp.cxx:408 AliAnaClusterPileUp.cxx:409 AliAnaClusterPileUp.cxx:410 AliAnaClusterPileUp.cxx:411 AliAnaClusterPileUp.cxx:412 AliAnaClusterPileUp.cxx:413 AliAnaClusterPileUp.cxx:414 AliAnaClusterPileUp.cxx:415 AliAnaClusterPileUp.cxx:416 AliAnaClusterPileUp.cxx:417 AliAnaClusterPileUp.cxx:418 AliAnaClusterPileUp.cxx:419 AliAnaClusterPileUp.cxx:420 AliAnaClusterPileUp.cxx:421 AliAnaClusterPileUp.cxx:422 AliAnaClusterPileUp.cxx:423 AliAnaClusterPileUp.cxx:424 AliAnaClusterPileUp.cxx:425 AliAnaClusterPileUp.cxx:426 AliAnaClusterPileUp.cxx:427 AliAnaClusterPileUp.cxx:428 AliAnaClusterPileUp.cxx:429 AliAnaClusterPileUp.cxx:430 AliAnaClusterPileUp.cxx:431 AliAnaClusterPileUp.cxx:432 AliAnaClusterPileUp.cxx:433 AliAnaClusterPileUp.cxx:434 AliAnaClusterPileUp.cxx:435 AliAnaClusterPileUp.cxx:436 AliAnaClusterPileUp.cxx:437 AliAnaClusterPileUp.cxx:438 AliAnaClusterPileUp.cxx:439 AliAnaClusterPileUp.cxx:440 AliAnaClusterPileUp.cxx:441 AliAnaClusterPileUp.cxx:442 AliAnaClusterPileUp.cxx:443 AliAnaClusterPileUp.cxx:444 AliAnaClusterPileUp.cxx:445 AliAnaClusterPileUp.cxx:446 AliAnaClusterPileUp.cxx:447 AliAnaClusterPileUp.cxx:448 AliAnaClusterPileUp.cxx:449 AliAnaClusterPileUp.cxx:450 AliAnaClusterPileUp.cxx:451 AliAnaClusterPileUp.cxx:452 AliAnaClusterPileUp.cxx:453 AliAnaClusterPileUp.cxx:454 AliAnaClusterPileUp.cxx:455 AliAnaClusterPileUp.cxx:456 AliAnaClusterPileUp.cxx:457 AliAnaClusterPileUp.cxx:458 AliAnaClusterPileUp.cxx:459 AliAnaClusterPileUp.cxx:460 AliAnaClusterPileUp.cxx:461 AliAnaClusterPileUp.cxx:462 AliAnaClusterPileUp.cxx:463 AliAnaClusterPileUp.cxx:464 AliAnaClusterPileUp.cxx:465 AliAnaClusterPileUp.cxx:466 AliAnaClusterPileUp.cxx:467 AliAnaClusterPileUp.cxx:468 AliAnaClusterPileUp.cxx:469 AliAnaClusterPileUp.cxx:470 AliAnaClusterPileUp.cxx:471 AliAnaClusterPileUp.cxx:472 AliAnaClusterPileUp.cxx:473 AliAnaClusterPileUp.cxx:474 AliAnaClusterPileUp.cxx:475 AliAnaClusterPileUp.cxx:476 AliAnaClusterPileUp.cxx:477 AliAnaClusterPileUp.cxx:478 AliAnaClusterPileUp.cxx:479 AliAnaClusterPileUp.cxx:480 AliAnaClusterPileUp.cxx:481 AliAnaClusterPileUp.cxx:482 AliAnaClusterPileUp.cxx:483 AliAnaClusterPileUp.cxx:484 AliAnaClusterPileUp.cxx:485 AliAnaClusterPileUp.cxx:486 AliAnaClusterPileUp.cxx:487 AliAnaClusterPileUp.cxx:488 AliAnaClusterPileUp.cxx:489 AliAnaClusterPileUp.cxx:490 AliAnaClusterPileUp.cxx:491 AliAnaClusterPileUp.cxx:492 AliAnaClusterPileUp.cxx:493 AliAnaClusterPileUp.cxx:494 AliAnaClusterPileUp.cxx:495 AliAnaClusterPileUp.cxx:496 AliAnaClusterPileUp.cxx:497 AliAnaClusterPileUp.cxx:498 AliAnaClusterPileUp.cxx:499 AliAnaClusterPileUp.cxx:500 AliAnaClusterPileUp.cxx:501 AliAnaClusterPileUp.cxx:502 AliAnaClusterPileUp.cxx:503 AliAnaClusterPileUp.cxx:504 AliAnaClusterPileUp.cxx:505 AliAnaClusterPileUp.cxx:506 AliAnaClusterPileUp.cxx:507 AliAnaClusterPileUp.cxx:508 AliAnaClusterPileUp.cxx:509 AliAnaClusterPileUp.cxx:510 AliAnaClusterPileUp.cxx:511 AliAnaClusterPileUp.cxx:512 AliAnaClusterPileUp.cxx:513 AliAnaClusterPileUp.cxx:514 AliAnaClusterPileUp.cxx:515 AliAnaClusterPileUp.cxx:516 AliAnaClusterPileUp.cxx:517 AliAnaClusterPileUp.cxx:518 AliAnaClusterPileUp.cxx:519 AliAnaClusterPileUp.cxx:520 AliAnaClusterPileUp.cxx:521 AliAnaClusterPileUp.cxx:522 AliAnaClusterPileUp.cxx:523 AliAnaClusterPileUp.cxx:524 AliAnaClusterPileUp.cxx:525 AliAnaClusterPileUp.cxx:526 AliAnaClusterPileUp.cxx:527 AliAnaClusterPileUp.cxx:528 AliAnaClusterPileUp.cxx:529 AliAnaClusterPileUp.cxx:530 AliAnaClusterPileUp.cxx:531 AliAnaClusterPileUp.cxx:532 AliAnaClusterPileUp.cxx:533 AliAnaClusterPileUp.cxx:534 AliAnaClusterPileUp.cxx:535 AliAnaClusterPileUp.cxx:536 AliAnaClusterPileUp.cxx:537 AliAnaClusterPileUp.cxx:538 AliAnaClusterPileUp.cxx:539 AliAnaClusterPileUp.cxx:540 AliAnaClusterPileUp.cxx:541 AliAnaClusterPileUp.cxx:542 AliAnaClusterPileUp.cxx:543 AliAnaClusterPileUp.cxx:544 AliAnaClusterPileUp.cxx:545 AliAnaClusterPileUp.cxx:546 AliAnaClusterPileUp.cxx:547 AliAnaClusterPileUp.cxx:548 AliAnaClusterPileUp.cxx:549 AliAnaClusterPileUp.cxx:550 AliAnaClusterPileUp.cxx:551 AliAnaClusterPileUp.cxx:552 AliAnaClusterPileUp.cxx:553 AliAnaClusterPileUp.cxx:554 AliAnaClusterPileUp.cxx:555 AliAnaClusterPileUp.cxx:556 AliAnaClusterPileUp.cxx:557 AliAnaClusterPileUp.cxx:558 AliAnaClusterPileUp.cxx:559 AliAnaClusterPileUp.cxx:560 AliAnaClusterPileUp.cxx:561 AliAnaClusterPileUp.cxx:562 AliAnaClusterPileUp.cxx:563 AliAnaClusterPileUp.cxx:564 AliAnaClusterPileUp.cxx:565 AliAnaClusterPileUp.cxx:566 AliAnaClusterPileUp.cxx:567 AliAnaClusterPileUp.cxx:568 AliAnaClusterPileUp.cxx:569 AliAnaClusterPileUp.cxx:570 AliAnaClusterPileUp.cxx:571 AliAnaClusterPileUp.cxx:572 AliAnaClusterPileUp.cxx:573 AliAnaClusterPileUp.cxx:574 AliAnaClusterPileUp.cxx:575 AliAnaClusterPileUp.cxx:576 AliAnaClusterPileUp.cxx:577 AliAnaClusterPileUp.cxx:578 AliAnaClusterPileUp.cxx:579 AliAnaClusterPileUp.cxx:580 AliAnaClusterPileUp.cxx:581 AliAnaClusterPileUp.cxx:582 AliAnaClusterPileUp.cxx:583 AliAnaClusterPileUp.cxx:584 AliAnaClusterPileUp.cxx:585 AliAnaClusterPileUp.cxx:586 AliAnaClusterPileUp.cxx:587 AliAnaClusterPileUp.cxx:588 AliAnaClusterPileUp.cxx:589 AliAnaClusterPileUp.cxx:590 AliAnaClusterPileUp.cxx:591 AliAnaClusterPileUp.cxx:592 AliAnaClusterPileUp.cxx:593 AliAnaClusterPileUp.cxx:594 AliAnaClusterPileUp.cxx:595 AliAnaClusterPileUp.cxx:596 AliAnaClusterPileUp.cxx:597 AliAnaClusterPileUp.cxx:598 AliAnaClusterPileUp.cxx:599 AliAnaClusterPileUp.cxx:600 AliAnaClusterPileUp.cxx:601 AliAnaClusterPileUp.cxx:602 AliAnaClusterPileUp.cxx:603 AliAnaClusterPileUp.cxx:604 AliAnaClusterPileUp.cxx:605 AliAnaClusterPileUp.cxx:606 AliAnaClusterPileUp.cxx:607 AliAnaClusterPileUp.cxx:608 AliAnaClusterPileUp.cxx:609 AliAnaClusterPileUp.cxx:610 AliAnaClusterPileUp.cxx:611 AliAnaClusterPileUp.cxx:612 AliAnaClusterPileUp.cxx:613 AliAnaClusterPileUp.cxx:614 AliAnaClusterPileUp.cxx:615 AliAnaClusterPileUp.cxx:616 AliAnaClusterPileUp.cxx:617 AliAnaClusterPileUp.cxx:618 AliAnaClusterPileUp.cxx:619 AliAnaClusterPileUp.cxx:620 AliAnaClusterPileUp.cxx:621 AliAnaClusterPileUp.cxx:622 AliAnaClusterPileUp.cxx:623 AliAnaClusterPileUp.cxx:624 AliAnaClusterPileUp.cxx:625 AliAnaClusterPileUp.cxx:626 AliAnaClusterPileUp.cxx:627 AliAnaClusterPileUp.cxx:628 AliAnaClusterPileUp.cxx:629 AliAnaClusterPileUp.cxx:630 AliAnaClusterPileUp.cxx:631 AliAnaClusterPileUp.cxx:632 AliAnaClusterPileUp.cxx:633 AliAnaClusterPileUp.cxx:634 AliAnaClusterPileUp.cxx:635 AliAnaClusterPileUp.cxx:636 AliAnaClusterPileUp.cxx:637 AliAnaClusterPileUp.cxx:638 AliAnaClusterPileUp.cxx:639 AliAnaClusterPileUp.cxx:640 AliAnaClusterPileUp.cxx:641 AliAnaClusterPileUp.cxx:642 AliAnaClusterPileUp.cxx:643 AliAnaClusterPileUp.cxx:644 AliAnaClusterPileUp.cxx:645 AliAnaClusterPileUp.cxx:646 AliAnaClusterPileUp.cxx:647 AliAnaClusterPileUp.cxx:648 AliAnaClusterPileUp.cxx:649 AliAnaClusterPileUp.cxx:650 AliAnaClusterPileUp.cxx:651 AliAnaClusterPileUp.cxx:652 AliAnaClusterPileUp.cxx:653 AliAnaClusterPileUp.cxx:654 AliAnaClusterPileUp.cxx:655 AliAnaClusterPileUp.cxx:656 AliAnaClusterPileUp.cxx:657 AliAnaClusterPileUp.cxx:658 AliAnaClusterPileUp.cxx:659 AliAnaClusterPileUp.cxx:660 AliAnaClusterPileUp.cxx:661 AliAnaClusterPileUp.cxx:662 AliAnaClusterPileUp.cxx:663 AliAnaClusterPileUp.cxx:664 AliAnaClusterPileUp.cxx:665 AliAnaClusterPileUp.cxx:666 AliAnaClusterPileUp.cxx:667 AliAnaClusterPileUp.cxx:668 AliAnaClusterPileUp.cxx:669 AliAnaClusterPileUp.cxx:670 AliAnaClusterPileUp.cxx:671 AliAnaClusterPileUp.cxx:672 AliAnaClusterPileUp.cxx:673 AliAnaClusterPileUp.cxx:674 AliAnaClusterPileUp.cxx:675 AliAnaClusterPileUp.cxx:676 AliAnaClusterPileUp.cxx:677 AliAnaClusterPileUp.cxx:678 AliAnaClusterPileUp.cxx:679 AliAnaClusterPileUp.cxx:680 AliAnaClusterPileUp.cxx:681 AliAnaClusterPileUp.cxx:682 AliAnaClusterPileUp.cxx:683 AliAnaClusterPileUp.cxx:684 AliAnaClusterPileUp.cxx:685 AliAnaClusterPileUp.cxx:686 AliAnaClusterPileUp.cxx:687 AliAnaClusterPileUp.cxx:688