#include "AliMultiplicityTask.h"
#include <TStyle.h>
#include <TSystem.h>
#include <TCanvas.h>
#include <TVector3.h>
#include <TChain.h>
#include <TFile.h>
#include <TH1D.h>
#include <TH2F.h>
#include <TH3F.h>
#include <TParticle.h>
#include <TRandom.h>
#include <TNtuple.h>
#include <TObjString.h>
#include <TF1.h>
#include <AliLog.h>
#include <AliESDVertex.h>
#include <AliESDEvent.h>
#include <AliStack.h>
#include <AliHeader.h>
#include <AliGenEventHeader.h>
#include <AliMultiplicity.h>
#include <AliAnalysisManager.h>
#include <AliMCEventHandler.h>
#include <AliMCEvent.h>
#include <AliESDInputHandler.h>
#include "AliESDtrackCuts.h"
#include "AliPWG0Helper.h"
#include "AliMultiplicityCorrection.h"
#include "AliCorrection.h"
#include "AliCorrectionMatrix3D.h"
#include "AliPhysicsSelection.h"
#include "AliTriggerAnalysis.h"
#include "AliVEvent.h"
ClassImp(AliMultiplicityTask)
AliMultiplicityTask::AliMultiplicityTask(const char* opt) :
AliAnalysisTask("AliMultiplicityTask", ""),
fESD(0),
fOption(opt),
fAnalysisMode((AliPWG0Helper::AnalysisMode) (AliPWG0Helper::kSPD | AliPWG0Helper::kFieldOn)),
fTrigger(AliTriggerAnalysis::kMB1),
fDeltaPhiCut(-1),
fDiffTreatment(AliPWG0Helper::kMCFlags),
fReadMC(kFALSE),
fUseMCVertex(kFALSE),
fMultiplicity(0),
fEsdTrackCuts(0),
fSystSkipParticles(kFALSE),
fSelectProcessType(0),
fParticleSpecies(0),
fdNdpT(0),
fPtSpectrum(0),
fTemp1(0),
fTemp2(0),
fVertex(0),
fEtaPhi(0),
fOutput(0)
{
for (Int_t i = 0; i<8; i++)
fParticleCorrection[i] = 0;
for (Int_t i=0; i<3; i++)
fEta[i] = 0;
DefineInput(0, TChain::Class());
DefineOutput(0, TList::Class());
if (fOption.Contains("only-process-type-nd"))
fSelectProcessType = 1;
if (fOption.Contains("only-process-type-sd"))
fSelectProcessType = 2;
if (fOption.Contains("only-process-type-dd"))
fSelectProcessType = 3;
if (fSelectProcessType != 0)
AliInfo(Form("WARNING: Systematic study enabled. Only considering process type %d", fSelectProcessType));
}
AliMultiplicityTask::~AliMultiplicityTask()
{
if (fOutput&& !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) {
delete fOutput;
fOutput = 0;
}
}
void AliMultiplicityTask::ConnectInputData(Option_t *)
{
Printf("AliMultiplicityTask::ConnectInputData called");
TTree* tree = dynamic_cast<TTree*> (GetInputData(0));
if (!tree) {
Printf("ERROR: Could not read tree from input slot 0");
} else {
AliESDInputHandler *esdH = dynamic_cast<AliESDInputHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
if (!esdH) {
Printf("ERROR: Could not get ESDInputHandler");
} else
fESD = esdH->GetEvent();
}
AliLog::SetClassDebugLevel("AliMCEvent", AliLog::kWarning - AliLog::kDebug + 1);
}
void AliMultiplicityTask::CreateOutputObjects()
{
fOutput = new TList;
fOutput->SetOwner();
fMultiplicity = new AliMultiplicityCorrection("Multiplicity", "Multiplicity");
fOutput->Add(fMultiplicity);
fdNdpT = new TH1F("fdNdpT", "fdNdpT", 1000, 0, 10);
fdNdpT->Sumw2();
fOutput->Add(fdNdpT);
if (fOption.Contains("particle-efficiency"))
for (Int_t i = 0; i<8; i++)
{
fParticleCorrection[i] = new AliCorrection(Form("correction_%d", i), Form("correction_%d", i));
fOutput->Add(fParticleCorrection[i]);
}
if (fOption.Contains("pt-spectrum-hist"))
{
TFile* file = TFile::Open("ptspectrum_fit.root");
if (file)
{
TString subStr(fOption(fOption.Index("pt-spectrum")+17, 3));
TString histName(Form("ptspectrum_%s", subStr.Data()));
AliInfo(Form("Pt-Spectrum modification. Using %s.", histName.Data()));
fPtSpectrum = (TH1D*) file->Get(histName);
if (!fPtSpectrum)
AliError("Histogram not found");
}
else
AliError("Could not open ptspectrum_fit.root. Pt Spectrum study could not be enabled.");
}
if (fOption.Contains("pt-spectrum-func"))
{
if (fPtSpectrum)
{
Printf("Using function for systematic p_t study");
}
else
{
Printf("ERROR: Could not find function for systematic p_t study");
fPtSpectrum = new TH1D("fPtSpectrum", "fPtSpectrum", 1, 0, 100);
fPtSpectrum->SetBinContent(1, 1);
}
}
if (fPtSpectrum)
Printf("WARNING: Systematic study enabled. Pt spectrum will be modified");
if (fOption.Contains("particle-species")) {
fParticleSpecies = new TNtuple("fParticleSpecies", "fParticleSpecies", "vtx:Pi_True:K_True:p_True:o_True:Pi_Rec:K_Rec:p_Rec:o_Rec:nolabel:doublePrim:doubleCount");
fOutput->Add(fParticleSpecies);
}
fTemp1 = new TH2F("fTemp1", "fTemp1", 100, -0.5, 99.5, 100, -0.5, 99.5);
fOutput->Add(fTemp1);
for (Int_t i=0; i<3; i++)
{
fEta[i] = new TH1F(Form("fEta_%d", i), ";#eta", 100, -2, 2);
fOutput->Add(fEta[i]);
}
fVertex = new TH3F("vertex_check", "vertex_check;x;y;z", 100, -1, 1, 100, -1, 1, 100, -30, 30);
fOutput->Add(fVertex);
fEtaPhi = new TH2F("fEtaPhi", "fEtaPhi;#eta;#phi in rad.;count", 80, -4, 4, 18*20, 0, 2 * TMath::Pi());
fOutput->Add(fEtaPhi);
}
void AliMultiplicityTask::Exec(Option_t*)
{
if (!fESD)
{
AliDebug(AliLog::kError, "ESD not available");
return;
}
AliInputEventHandler* inputHandler = (AliInputEventHandler*) AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler();
if (!inputHandler)
{
Printf("ERROR: Could not receive input handler");
return;
}
Bool_t eventTriggered = inputHandler->IsEventSelected() & AliVEvent::kMB;
static AliTriggerAnalysis* triggerAnalysis = 0;
if (!triggerAnalysis)
{
AliPhysicsSelection* physicsSelection = static_cast<AliPhysicsSelection*> (inputHandler->GetEventSelection());
triggerAnalysis = physicsSelection->GetTriggerAnalysis();
}
if (eventTriggered)
eventTriggered = triggerAnalysis->IsTriggerFired(fESD, fTrigger);
const AliESDVertex* vtxESD = AliPWG0Helper::GetVertex(fESD, fAnalysisMode);
if (vtxESD && !AliPWG0Helper::TestVertex(vtxESD, fAnalysisMode))
vtxESD = 0;
if (vtxESD && TMath::Abs(vtxESD->GetZ()) > 15)
vtxESD = 0;
Bool_t eventVertex = (vtxESD != 0);
Double_t vtx[3];
if (vtxESD)
{
vtxESD->GetXYZ(vtx);
fVertex->Fill(vtxESD->GetX(), vtxESD->GetY(), vtxESD->GetZ());
}
PostData(0, fOutput);
Int_t inputCount = 0;
Int_t* labelArr = 0;
Float_t* etaArr = 0;
Int_t nGoodTracks = 0;
Int_t nESDTracks = 0;
const int kRejBit = BIT(15);
if (fAnalysisMode & AliPWG0Helper::kTPC || fAnalysisMode & AliPWG0Helper::kTPCITS || fAnalysisMode & AliPWG0Helper::kTPCSPD)
{
if (!fEsdTrackCuts)
{
AliDebug(AliLog::kError, "fESDTrackCuts not available");
return;
}
if (vtxESD)
{
TObjArray* list = fEsdTrackCuts->GetAcceptedTracks(fESD, (fAnalysisMode & AliPWG0Helper::kTPC));
nGoodTracks = list->GetEntries();
Int_t arraySize = nGoodTracks;
if (fAnalysisMode & AliPWG0Helper::kTPCSPD) {
Printf( "Processing tracks");
const AliMultiplicity* mult = fESD->GetMultiplicity();
if (!mult)
{
AliDebug(AliLog::kError, "AliMultiplicity not available");
return;
}
arraySize += mult->GetNumberOfTracklets();
nESDTracks = fESD->GetNumberOfTracks();
for(Int_t itracks = 0; itracks < nESDTracks; itracks++){
AliESDtrack* track = fESD->GetTrack(itracks);
if( itracks!=track->GetID() ){
AliFatal("Track ID not matching track index!");
}
if (!fEsdTrackCuts->AcceptTrack(track)) {
track->SetBit(kRejBit);
}
}
}
labelArr = new Int_t[arraySize];
etaArr = new Float_t[arraySize];
for (Int_t i=0; i<nGoodTracks; i++)
{
AliESDtrack* esdTrack = dynamic_cast<AliESDtrack*> (list->At(i));
if (!esdTrack)
{
AliDebug(AliLog::kError, Form("ERROR: Could not retrieve track %d.", i));
continue;
}
if (esdTrack->Pt() < 0.15){
esdTrack->SetBit(kRejBit);
continue;
}
if (fAnalysisMode & AliPWG0Helper::kTPCSPD) {
if (esdTrack->IsOn(AliESDtrack::kMultSec) ) continue;
if (esdTrack->IsOn(AliESDtrack::kMultInV0)) continue;
}
Float_t d0z0[2],covd0z0[3];
esdTrack->GetImpactParameters(d0z0,covd0z0);
Float_t sigma= 0.0050+0.0060/TMath::Power(esdTrack->Pt(),0.9);
Float_t d0max = 7.*sigma;
if (TMath::Abs(d0z0[0]) > d0max) {
continue;
}
if (vtxESD && TMath::Abs(vtx[2]) < 10)
fEtaPhi->Fill(esdTrack->Eta(), esdTrack->Phi());
etaArr[inputCount] = esdTrack->Eta();
labelArr[inputCount] = TMath::Abs(esdTrack->GetLabel());
++inputCount;
}
delete list;
}
}
if (fAnalysisMode & AliPWG0Helper::kSPD || fAnalysisMode & AliPWG0Helper::kTPCSPD)
{
if (vtxESD)
{
AliDebug(AliLog::kInfo, "Processing tracklets");
const AliMultiplicity* mult = fESD->GetMultiplicity();
if (!mult)
{
AliDebug(AliLog::kError, "AliMultiplicity not available");
if (labelArr) delete[] labelArr;
if (etaArr) delete[] etaArr;
return;
}
Bool_t foundInEta10 = kFALSE;
if ((fAnalysisMode & AliPWG0Helper::kSPD) && !(fAnalysisMode & AliPWG0Helper::kTPC || fAnalysisMode & AliPWG0Helper::kTPCITS || fAnalysisMode & AliPWG0Helper::kTPCSPD)) {
AliDebug(AliLog::kInfo, "Booking arrays");
if (!labelArr) labelArr = new Int_t[mult->GetNumberOfTracklets()];
if (!etaArr) etaArr = new Float_t[mult->GetNumberOfTracklets()];
}
if (inputCount) foundInEta10 = kTRUE;
for (Int_t i=0; i<mult->GetNumberOfTracklets(); ++i)
{
Float_t deltaPhi = mult->GetDeltaPhi(i);
if (fDeltaPhiCut > 0 && TMath::Abs(deltaPhi) > fDeltaPhiCut)
continue;
if (fSystSkipParticles && gRandom->Uniform() < (0.0153))
{
Printf("Skipped tracklet!");
continue;
}
if (fAnalysisMode & AliPWG0Helper::kTPCSPD) {
Int_t id1,id2;
mult->GetTrackletTrackIDs(i,0,id1,id2);
if ( (id1>=0&& !fESD->GetTrack(id1)->TestBit(kRejBit) ) ||
(id2>=0&& !fESD->GetTrack(id2)->TestBit(kRejBit) )
) {
printf ("Skipping tracklet: already used in track");
continue;
}
}
etaArr[inputCount] = mult->GetEta(i);
if (mult->GetLabel(i, 0) == mult->GetLabel(i, 1))
{
labelArr[inputCount] = mult->GetLabel(i, 0);
}
else
labelArr[inputCount] = -1;
for (Int_t j=0; j<3; j++)
{
if (vtx[2] > fMultiplicity->GetVertexBegin(j) && vtx[2] < fMultiplicity->GetVertexEnd(j))
fEta[j]->Fill(etaArr[inputCount]);
}
if (vtxESD && TMath::Abs(vtx[2]) < 10)
fEtaPhi->Fill(etaArr[inputCount], mult->GetPhi(i));
if (TMath::Abs(etaArr[inputCount]) < 1)
foundInEta10 = kTRUE;
++inputCount;
}
if (fSystSkipParticles && (fTrigger & AliTriggerAnalysis::kOneParticle) && !foundInEta10)
eventTriggered = kFALSE;
}
}
Float_t etaRange = 1.0;
if (!fReadMC)
{
Int_t nESDTracks05 = 0;
Int_t nESDTracks10 = 0;
Int_t nESDTracks14 = 0;
for (Int_t i=0; i<inputCount; ++i)
{
Float_t eta = etaArr[i];
if (TMath::Abs(eta) < 0.5)
nESDTracks05++;
if (TMath::Abs(eta) < 1.0)
nESDTracks10++;
if (TMath::Abs(eta) < 1.3)
nESDTracks14++;
}
if (eventTriggered)
fMultiplicity->FillTriggeredEvent(nESDTracks05, nESDTracks10, nESDTracks14);
if (eventTriggered && eventVertex)
fMultiplicity->FillMeasured(vtx[2], nESDTracks05, nESDTracks10, nESDTracks14);
}
else if (fReadMC)
{
AliMCEventHandler* eventHandler = dynamic_cast<AliMCEventHandler*> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
if (!eventHandler) {
Printf("ERROR: Could not retrieve MC event handler");
if (labelArr) delete[] labelArr;
if (etaArr) delete[] etaArr;
return;
}
AliMCEvent* mcEvent = eventHandler->MCEvent();
if (!mcEvent) {
Printf("ERROR: Could not retrieve MC event");
if (labelArr) delete[] labelArr;
if (etaArr) delete[] etaArr;
return;
}
AliStack* stack = mcEvent->Stack();
if (!stack)
{
AliDebug(AliLog::kError, "Stack not available");
if (labelArr) delete[] labelArr;
if (etaArr) delete[] etaArr;
return;
}
AliHeader* header = mcEvent->Header();
if (!header)
{
AliDebug(AliLog::kError, "Header not available");
if (labelArr) delete[] labelArr;
if (etaArr) delete[] etaArr;
return;
}
if (fUseMCVertex)
{
Printf("WARNING: Replacing vertex by MC vertex. This is for systematical checks only.");
AliGenEventHeader* genHeader = header->GenEventHeader();
TArrayF vtxMC(3);
genHeader->PrimaryVertex(vtxMC);
vtx[2] = vtxMC[2];
}
AliPWG0Helper::MCProcessType processType = AliPWG0Helper::GetEventProcessType(fESD, header, stack, fDiffTreatment);
Bool_t processEvent = kTRUE;
if (fSelectProcessType > 0)
{
processEvent = kFALSE;
if (fSelectProcessType == 1 && processType == AliPWG0Helper::kND)
processEvent = kTRUE;
if (fSelectProcessType == 2 && processType == AliPWG0Helper::kSD)
processEvent = kTRUE;
if (fSelectProcessType == 3 && processType == AliPWG0Helper::kDD)
processEvent = kTRUE;
if (!processEvent)
Printf("Skipping this event, because it is not of the requested process type (%d)", (Int_t) processType);
}
if (processEvent)
{
AliGenEventHeader* genHeader = header->GenEventHeader();
TArrayF vtxMC(3);
genHeader->PrimaryVertex(vtxMC);
Int_t nPrim = stack->GetNprimary();
Int_t nMCPart = stack->GetNtrack();
Int_t nMCTracks05 = 0;
Int_t nMCTracks10 = 0;
Int_t nMCTracks14 = 0;
Int_t nMCTracksAll = 0;
Int_t nMCTracksSpecies[4];
for (Int_t i = 0; i<4; ++i)
nMCTracksSpecies[i] = 0;
for (Int_t iMc = 0; iMc < nPrim; ++iMc)
{
AliDebug(AliLog::kDebug+1, Form("MC Loop: Processing particle %d.", iMc));
TParticle* particle = stack->Particle(iMc);
if (!particle)
{
AliDebug(AliLog::kError, Form("UNEXPECTED: particle with label %d not found in stack (mc loop).", iMc));
continue;
}
Bool_t debug = kFALSE;
if (AliPWG0Helper::IsPrimaryCharged(particle, nPrim, debug) == kFALSE)
{
continue;
}
Int_t particleWeight = 1;
Float_t pt = particle->Pt();
if (fPtSpectrum)
{
Int_t bin = fPtSpectrum->FindBin(pt);
if (bin > 0 && bin <= fPtSpectrum->GetNbinsX())
{
Float_t factor = fPtSpectrum->GetBinContent(bin);
if (factor > 0)
{
Float_t random = gRandom->Uniform();
if (factor > 1 && random < factor - 1)
{
particleWeight = 2;
}
else if (factor < 1 && random < 1 - factor)
particleWeight = 0;
}
}
}
if (TMath::Abs(particle->Eta()) < 0.5)
nMCTracks05 += particleWeight;
if (TMath::Abs(particle->Eta()) < 1.0)
nMCTracks10 += particleWeight;
if (TMath::Abs(particle->Eta()) < 1.3)
nMCTracks14 += particleWeight;
nMCTracksAll += particleWeight;
if (particle->Pt() > 0 && TMath::Abs(particle->Eta()) < 1.0)
fdNdpT->Fill(particle->Pt(), 1.0 / particle->Pt());
if (fParticleCorrection[0] || fParticleSpecies)
{
Int_t id = -1;
switch (TMath::Abs(particle->GetPdgCode()))
{
case 211: id = 0; break;
case 321: id = 1; break;
case 2212: id = 2; break;
default: id = 3; break;
}
if (TMath::Abs(particle->Eta()) < etaRange)
nMCTracksSpecies[id]++;
if (fParticleCorrection[id])
fParticleCorrection[id]->GetTrackCorrection()->FillGene(vtxMC[2], particle->Eta(), particle->Pt());
}
}
fMultiplicity->FillGenerated(vtxMC[2], eventTriggered, eventVertex, processType, (Int_t) nMCTracks05, (Int_t) nMCTracks10, (Int_t) nMCTracks14, (Int_t) nMCTracksAll);
Int_t nESDTracks05 = 0;
Int_t nESDTracks10 = 0;
Int_t nESDTracks14 = 0;
Int_t nESDTracksSpecies[7];
for (Int_t i = 0; i<7; ++i)
nESDTracksSpecies[i] = 0;
Bool_t* foundPrimaries = new Bool_t[nMCPart];
for (Int_t i=0; i<nPrim; i++)
foundPrimaries[i] = kFALSE;
Bool_t* foundPrimaries2 = new Bool_t[nMCPart];
for (Int_t i=0; i<nPrim; i++)
foundPrimaries2[i] = kFALSE;
Bool_t* foundTracks = new Bool_t[nMCPart];
for (Int_t i=0; i<nMCPart; i++)
foundTracks[i] = kFALSE;
for (Int_t i=0; i<inputCount; ++i)
{
Float_t eta = etaArr[i];
Int_t label = labelArr[i];
Int_t particleWeight = 1;
if (fPtSpectrum)
{
TParticle* mother = 0;
Int_t labelCopy = label;
if (labelCopy >= 0)
labelCopy = AliPWG0Helper::FindPrimaryMotherLabel(stack, labelCopy);
if (labelCopy >= 0)
mother = stack->Particle(labelCopy);
if (!mother)
continue;
Int_t bin = fPtSpectrum->FindBin(mother->Pt());
if (bin > 0 && bin <= fPtSpectrum->GetNbinsX())
{
Float_t factor = fPtSpectrum->GetBinContent(bin);
if (factor > 0)
{
Float_t random = gRandom->Uniform();
if (factor > 1 && random < factor - 1)
{
particleWeight = 2;
}
else if (factor < 1 && random < 1 - factor)
particleWeight = 0;
}
}
}
if (TMath::Abs(eta) < 0.5)
nESDTracks05 += particleWeight;
if (TMath::Abs(eta) < 1.0)
nESDTracks10 += particleWeight;
if (TMath::Abs(eta) < 1.3)
nESDTracks14 += particleWeight;
if (fParticleSpecies)
{
Int_t motherLabel = -1;
TParticle* mother = 0;
if (label >= 0)
motherLabel = AliPWG0Helper::FindPrimaryMotherLabel(stack, label);
if (motherLabel >= 0)
mother = stack->Particle(motherLabel);
if (!mother)
{
if (TMath::Abs(eta) < etaRange)
nESDTracksSpecies[4]++;
}
else
{
Int_t idMother = -1;
switch (TMath::Abs(mother->GetPdgCode()))
{
case 211: idMother = 0; break;
case 321: idMother = 1; break;
case 2212: idMother = 2; break;
default: idMother = 3; break;
}
if (TMath::Abs(eta) < etaRange)
nESDTracksSpecies[idMother]++;
if (foundTracks[label])
{
if (TMath::Abs(eta) < etaRange)
nESDTracksSpecies[6]++;
}
else
{
foundTracks[label] = kTRUE;
if (foundPrimaries[motherLabel])
{
if (TMath::Abs(eta) < etaRange)
nESDTracksSpecies[5]++;
}
else
foundPrimaries[motherLabel] = kTRUE;
}
}
}
if (fParticleCorrection[0])
{
if (label >= 0 && stack->IsPhysicalPrimary(label))
{
TParticle* particle = stack->Particle(label);
Int_t id = -1;
switch (TMath::Abs(particle->GetPdgCode()))
{
case 211: id = 0; break;
case 321: id = 1; break;
case 2212: id = 2; break;
default: id = 3; break;
}
if (!foundPrimaries2[label])
{
foundPrimaries2[label] = kTRUE;
fParticleCorrection[id]->GetTrackCorrection()->FillMeas(vtxMC[2], particle->Eta(), particle->Pt());
}
}
}
}
if (fParticleCorrection[0])
{
const Float_t endRadius = (fAnalysisMode & AliPWG0Helper::kSPD) ? 8. : 123;
for (Int_t i=0; i<nPrim; i++)
{
if (foundPrimaries2[i])
continue;
TParticle* particle = 0;
TClonesArray* trackrefs = 0;
mcEvent->GetParticleAndTR(i, particle, trackrefs);
if (!AliPWG0Helper::IsPrimaryCharged(particle, nPrim))
continue;
if (TMath::Abs(particle->Eta()) > 3)
continue;
Int_t id = -1;
switch (TMath::Abs(particle->GetPdgCode()))
{
case 211: id = 4; break;
case 321: id = 5; break;
case 2212: id = 6; break;
default: id = 7; break;
}
if (!fParticleCorrection[id])
continue;
AliTrackReference* trackref = dynamic_cast<AliTrackReference*> (trackrefs->Last());
if (!trackref)
{
Printf("ERROR: Could not get trackref of %d (count %d)", i, trackrefs->GetEntries());
particle->Print();
continue;
}
if (trackref->R() > endRadius)
continue;
if (particle->GetLastDaughter() >= 0)
{
Int_t uID = stack->Particle(particle->GetLastDaughter())->GetUniqueID();
if (uID == kPDecay)
{
Printf("Particle %d (%s) decayed at %f, daugher uniqueID: %d:", i, particle->GetName(), trackref->R(), uID);
particle->Print();
Printf("Daugthers:");
for (Int_t d = particle->GetFirstDaughter(); d <= particle->GetLastDaughter(); d++)
stack->Particle(d)->Print();
Printf(" ");
fParticleCorrection[id]->GetTrackCorrection()->FillGene(vtxMC[2], particle->Eta(), particle->Pt());
continue;
}
}
if (trackref->DetectorId() == -1)
{
Printf("Particle %d stopped at %f:", i, trackref->R());
particle->Print();
Printf(" ");
fParticleCorrection[id]->GetTrackCorrection()->FillMeas(vtxMC[2], particle->Eta(), particle->Pt());
continue;
}
Printf("Particle %d simply not tracked", i);
particle->Print();
Printf(" ");
}
}
delete[] foundTracks;
delete[] foundPrimaries;
delete[] foundPrimaries2;
if (eventTriggered)
{
fMultiplicity->FillTriggeredEvent(nESDTracks05, nESDTracks10, nESDTracks14);
fMultiplicity->FillNoVertexEvent(vtxMC[2], eventVertex, nMCTracks05, nMCTracks10, nMCTracks14, nESDTracks05, nESDTracks10, nESDTracks14);
}
if (eventTriggered && eventVertex)
{
fMultiplicity->FillCorrection(vtxMC[2], nMCTracks05, nMCTracks10, nMCTracks14, nMCTracksAll, nESDTracks05, nESDTracks10, nESDTracks14);
fMultiplicity->FillMeasured(vtx[2], nESDTracks05, nESDTracks10, nESDTracks14);
if (fParticleSpecies)
fParticleSpecies->Fill(vtxMC[2], nMCTracksSpecies[0], nMCTracksSpecies[1], nMCTracksSpecies[2], nMCTracksSpecies[3], nESDTracksSpecies[0], nESDTracksSpecies[1], nESDTracksSpecies[2], nESDTracksSpecies[3], nESDTracksSpecies[4], nESDTracksSpecies[5], nESDTracksSpecies[6]);
}
}
}
if (etaArr)
delete[] etaArr;
if (labelArr)
delete[] labelArr;
}
void AliMultiplicityTask::Terminate(Option_t *)
{
fOutput = dynamic_cast<TList*> (GetOutputData(0));
if (!fOutput) {
Printf("ERROR: fOutput not available");
return;
}
fMultiplicity = dynamic_cast<AliMultiplicityCorrection*> (fOutput->FindObject("Multiplicity"));
for (Int_t i = 0; i < 8; ++i)
fParticleCorrection[i] = dynamic_cast<AliCorrection*> (fOutput->FindObject(Form("correction_%d", i)));
fParticleSpecies = dynamic_cast<TNtuple*> (fOutput->FindObject("fParticleSpecies"));
fdNdpT = dynamic_cast<TH1*> (fOutput->FindObject("fdNdpT"));
if (!fMultiplicity)
{
AliDebug(AliLog::kError, Form("ERROR: Histograms not available %p", (void*) fMultiplicity));
return;
}
TString fileName("multiplicity");
if (fSelectProcessType == 1)
fileName += "ND";
if (fSelectProcessType == 2)
fileName += "SD";
if (fSelectProcessType == 3)
fileName += "DD";
fileName += ".root";
TFile* file = TFile::Open(fileName, "RECREATE");
fMultiplicity->SaveHistograms();
for (Int_t i = 0; i < 8; ++i)
if (fParticleCorrection[i])
fParticleCorrection[i]->SaveHistograms();
if (fParticleSpecies)
fParticleSpecies->Write();
if (fdNdpT)
fdNdpT->Write();
fTemp1 = dynamic_cast<TH1*> (fOutput->FindObject("fTemp1"));
if (fTemp1)
fTemp1->Write();
fEtaPhi = dynamic_cast<TH2F*> (fOutput->FindObject("fEtaPhi"));
if (fEtaPhi)
fEtaPhi->Write();
fVertex = dynamic_cast<TH3F*> (fOutput->FindObject("vertex_check"));
if (fVertex)
fVertex->Write();
for (Int_t i=0; i<3; i++)
{
fEta[i] = dynamic_cast<TH1*> (fOutput->FindObject(Form("fEta_%d", i)));
if (fEta[i])
{
fEta[i]->Sumw2();
Float_t events = fMultiplicity->GetMultiplicityESD(i)->Integral(1, fMultiplicity->GetMultiplicityESD(i)->GetNbinsX());
if (events > 0)
fEta[i]->Scale(1.0 / events);
fEta[i]->Scale(1.0 / fEta[i]->GetXaxis()->GetBinWidth(1));
fEta[i]->Write();
}
}
TObjString option(fOption);
option.Write();
file->Close();
Printf("Written result to %s", fileName.Data());
}
AliMultiplicityTask.cxx:1 AliMultiplicityTask.cxx:2 AliMultiplicityTask.cxx:3 AliMultiplicityTask.cxx:4 AliMultiplicityTask.cxx:5 AliMultiplicityTask.cxx:6 AliMultiplicityTask.cxx:7 AliMultiplicityTask.cxx:8 AliMultiplicityTask.cxx:9 AliMultiplicityTask.cxx:10 AliMultiplicityTask.cxx:11 AliMultiplicityTask.cxx:12 AliMultiplicityTask.cxx:13 AliMultiplicityTask.cxx:14 AliMultiplicityTask.cxx:15 AliMultiplicityTask.cxx:16 AliMultiplicityTask.cxx:17 AliMultiplicityTask.cxx:18 AliMultiplicityTask.cxx:19 AliMultiplicityTask.cxx:20 AliMultiplicityTask.cxx:21 AliMultiplicityTask.cxx:22 AliMultiplicityTask.cxx:23 AliMultiplicityTask.cxx:24 AliMultiplicityTask.cxx:25 AliMultiplicityTask.cxx:26 AliMultiplicityTask.cxx:27 AliMultiplicityTask.cxx:28 AliMultiplicityTask.cxx:29 AliMultiplicityTask.cxx:30 AliMultiplicityTask.cxx:31 AliMultiplicityTask.cxx:32 AliMultiplicityTask.cxx:33 AliMultiplicityTask.cxx:34 AliMultiplicityTask.cxx:35 AliMultiplicityTask.cxx:36 AliMultiplicityTask.cxx:37 AliMultiplicityTask.cxx:38 AliMultiplicityTask.cxx:39 AliMultiplicityTask.cxx:40 AliMultiplicityTask.cxx:41 AliMultiplicityTask.cxx:42 AliMultiplicityTask.cxx:43 AliMultiplicityTask.cxx:44 AliMultiplicityTask.cxx:45 AliMultiplicityTask.cxx:46 AliMultiplicityTask.cxx:47 AliMultiplicityTask.cxx:48 AliMultiplicityTask.cxx:49 AliMultiplicityTask.cxx:50 AliMultiplicityTask.cxx:51 AliMultiplicityTask.cxx:52 AliMultiplicityTask.cxx:53 AliMultiplicityTask.cxx:54 AliMultiplicityTask.cxx:55 AliMultiplicityTask.cxx:56 AliMultiplicityTask.cxx:57 AliMultiplicityTask.cxx:58 AliMultiplicityTask.cxx:59 AliMultiplicityTask.cxx:60 AliMultiplicityTask.cxx:61 AliMultiplicityTask.cxx:62 AliMultiplicityTask.cxx:63 AliMultiplicityTask.cxx:64 AliMultiplicityTask.cxx:65 AliMultiplicityTask.cxx:66 AliMultiplicityTask.cxx:67 AliMultiplicityTask.cxx:68 AliMultiplicityTask.cxx:69 AliMultiplicityTask.cxx:70 AliMultiplicityTask.cxx:71 AliMultiplicityTask.cxx:72 AliMultiplicityTask.cxx:73 AliMultiplicityTask.cxx:74 AliMultiplicityTask.cxx:75 AliMultiplicityTask.cxx:76 AliMultiplicityTask.cxx:77 AliMultiplicityTask.cxx:78 AliMultiplicityTask.cxx:79 AliMultiplicityTask.cxx:80 AliMultiplicityTask.cxx:81 AliMultiplicityTask.cxx:82 AliMultiplicityTask.cxx:83 AliMultiplicityTask.cxx:84 AliMultiplicityTask.cxx:85 AliMultiplicityTask.cxx:86 AliMultiplicityTask.cxx:87 AliMultiplicityTask.cxx:88 AliMultiplicityTask.cxx:89 AliMultiplicityTask.cxx:90 AliMultiplicityTask.cxx:91 AliMultiplicityTask.cxx:92 AliMultiplicityTask.cxx:93 AliMultiplicityTask.cxx:94 AliMultiplicityTask.cxx:95 AliMultiplicityTask.cxx:96 AliMultiplicityTask.cxx:97 AliMultiplicityTask.cxx:98 AliMultiplicityTask.cxx:99 AliMultiplicityTask.cxx:100 AliMultiplicityTask.cxx:101 AliMultiplicityTask.cxx:102 AliMultiplicityTask.cxx:103 AliMultiplicityTask.cxx:104 AliMultiplicityTask.cxx:105 AliMultiplicityTask.cxx:106 AliMultiplicityTask.cxx:107 AliMultiplicityTask.cxx:108 AliMultiplicityTask.cxx:109 AliMultiplicityTask.cxx:110 AliMultiplicityTask.cxx:111 AliMultiplicityTask.cxx:112 AliMultiplicityTask.cxx:113 AliMultiplicityTask.cxx:114 AliMultiplicityTask.cxx:115 AliMultiplicityTask.cxx:116 AliMultiplicityTask.cxx:117 AliMultiplicityTask.cxx:118 AliMultiplicityTask.cxx:119 AliMultiplicityTask.cxx:120 AliMultiplicityTask.cxx:121 AliMultiplicityTask.cxx:122 AliMultiplicityTask.cxx:123 AliMultiplicityTask.cxx:124 AliMultiplicityTask.cxx:125 AliMultiplicityTask.cxx:126 AliMultiplicityTask.cxx:127 AliMultiplicityTask.cxx:128 AliMultiplicityTask.cxx:129 AliMultiplicityTask.cxx:130 AliMultiplicityTask.cxx:131 AliMultiplicityTask.cxx:132 AliMultiplicityTask.cxx:133 AliMultiplicityTask.cxx:134 AliMultiplicityTask.cxx:135 AliMultiplicityTask.cxx:136 AliMultiplicityTask.cxx:137 AliMultiplicityTask.cxx:138 AliMultiplicityTask.cxx:139 AliMultiplicityTask.cxx:140 AliMultiplicityTask.cxx:141 AliMultiplicityTask.cxx:142 AliMultiplicityTask.cxx:143 AliMultiplicityTask.cxx:144 AliMultiplicityTask.cxx:145 AliMultiplicityTask.cxx:146 AliMultiplicityTask.cxx:147 AliMultiplicityTask.cxx:148 AliMultiplicityTask.cxx:149 AliMultiplicityTask.cxx:150 AliMultiplicityTask.cxx:151 AliMultiplicityTask.cxx:152 AliMultiplicityTask.cxx:153 AliMultiplicityTask.cxx:154 AliMultiplicityTask.cxx:155 AliMultiplicityTask.cxx:156 AliMultiplicityTask.cxx:157 AliMultiplicityTask.cxx:158 AliMultiplicityTask.cxx:159 AliMultiplicityTask.cxx:160 AliMultiplicityTask.cxx:161 AliMultiplicityTask.cxx:162 AliMultiplicityTask.cxx:163 AliMultiplicityTask.cxx:164 AliMultiplicityTask.cxx:165 AliMultiplicityTask.cxx:166 AliMultiplicityTask.cxx:167 AliMultiplicityTask.cxx:168 AliMultiplicityTask.cxx:169 AliMultiplicityTask.cxx:170 AliMultiplicityTask.cxx:171 AliMultiplicityTask.cxx:172 AliMultiplicityTask.cxx:173 AliMultiplicityTask.cxx:174 AliMultiplicityTask.cxx:175 AliMultiplicityTask.cxx:176 AliMultiplicityTask.cxx:177 AliMultiplicityTask.cxx:178 AliMultiplicityTask.cxx:179 AliMultiplicityTask.cxx:180 AliMultiplicityTask.cxx:181 AliMultiplicityTask.cxx:182 AliMultiplicityTask.cxx:183 AliMultiplicityTask.cxx:184 AliMultiplicityTask.cxx:185 AliMultiplicityTask.cxx:186 AliMultiplicityTask.cxx:187 AliMultiplicityTask.cxx:188 AliMultiplicityTask.cxx:189 AliMultiplicityTask.cxx:190 AliMultiplicityTask.cxx:191 AliMultiplicityTask.cxx:192 AliMultiplicityTask.cxx:193 AliMultiplicityTask.cxx:194 AliMultiplicityTask.cxx:195 AliMultiplicityTask.cxx:196 AliMultiplicityTask.cxx:197 AliMultiplicityTask.cxx:198 AliMultiplicityTask.cxx:199 AliMultiplicityTask.cxx:200 AliMultiplicityTask.cxx:201 AliMultiplicityTask.cxx:202 AliMultiplicityTask.cxx:203 AliMultiplicityTask.cxx:204 AliMultiplicityTask.cxx:205 AliMultiplicityTask.cxx:206 AliMultiplicityTask.cxx:207 AliMultiplicityTask.cxx:208 AliMultiplicityTask.cxx:209 AliMultiplicityTask.cxx:210 AliMultiplicityTask.cxx:211 AliMultiplicityTask.cxx:212 AliMultiplicityTask.cxx:213 AliMultiplicityTask.cxx:214 AliMultiplicityTask.cxx:215 AliMultiplicityTask.cxx:216 AliMultiplicityTask.cxx:217 AliMultiplicityTask.cxx:218 AliMultiplicityTask.cxx:219 AliMultiplicityTask.cxx:220 AliMultiplicityTask.cxx:221 AliMultiplicityTask.cxx:222 AliMultiplicityTask.cxx:223 AliMultiplicityTask.cxx:224 AliMultiplicityTask.cxx:225 AliMultiplicityTask.cxx:226 AliMultiplicityTask.cxx:227 AliMultiplicityTask.cxx:228 AliMultiplicityTask.cxx:229 AliMultiplicityTask.cxx:230 AliMultiplicityTask.cxx:231 AliMultiplicityTask.cxx:232 AliMultiplicityTask.cxx:233 AliMultiplicityTask.cxx:234 AliMultiplicityTask.cxx:235 AliMultiplicityTask.cxx:236 AliMultiplicityTask.cxx:237 AliMultiplicityTask.cxx:238 AliMultiplicityTask.cxx:239 AliMultiplicityTask.cxx:240 AliMultiplicityTask.cxx:241 AliMultiplicityTask.cxx:242 AliMultiplicityTask.cxx:243 AliMultiplicityTask.cxx:244 AliMultiplicityTask.cxx:245 AliMultiplicityTask.cxx:246 AliMultiplicityTask.cxx:247 AliMultiplicityTask.cxx:248 AliMultiplicityTask.cxx:249 AliMultiplicityTask.cxx:250 AliMultiplicityTask.cxx:251 AliMultiplicityTask.cxx:252 AliMultiplicityTask.cxx:253 AliMultiplicityTask.cxx:254 AliMultiplicityTask.cxx:255 AliMultiplicityTask.cxx:256 AliMultiplicityTask.cxx:257 AliMultiplicityTask.cxx:258 AliMultiplicityTask.cxx:259 AliMultiplicityTask.cxx:260 AliMultiplicityTask.cxx:261 AliMultiplicityTask.cxx:262 AliMultiplicityTask.cxx:263 AliMultiplicityTask.cxx:264 AliMultiplicityTask.cxx:265 AliMultiplicityTask.cxx:266 AliMultiplicityTask.cxx:267 AliMultiplicityTask.cxx:268 AliMultiplicityTask.cxx:269 AliMultiplicityTask.cxx:270 AliMultiplicityTask.cxx:271 AliMultiplicityTask.cxx:272 AliMultiplicityTask.cxx:273 AliMultiplicityTask.cxx:274 AliMultiplicityTask.cxx:275 AliMultiplicityTask.cxx:276 AliMultiplicityTask.cxx:277 AliMultiplicityTask.cxx:278 AliMultiplicityTask.cxx:279 AliMultiplicityTask.cxx:280 AliMultiplicityTask.cxx:281 AliMultiplicityTask.cxx:282 AliMultiplicityTask.cxx:283 AliMultiplicityTask.cxx:284 AliMultiplicityTask.cxx:285 AliMultiplicityTask.cxx:286 AliMultiplicityTask.cxx:287 AliMultiplicityTask.cxx:288 AliMultiplicityTask.cxx:289 AliMultiplicityTask.cxx:290 AliMultiplicityTask.cxx:291 AliMultiplicityTask.cxx:292 AliMultiplicityTask.cxx:293 AliMultiplicityTask.cxx:294 AliMultiplicityTask.cxx:295 AliMultiplicityTask.cxx:296 AliMultiplicityTask.cxx:297 AliMultiplicityTask.cxx:298 AliMultiplicityTask.cxx:299 AliMultiplicityTask.cxx:300 AliMultiplicityTask.cxx:301 AliMultiplicityTask.cxx:302 AliMultiplicityTask.cxx:303 AliMultiplicityTask.cxx:304 AliMultiplicityTask.cxx:305 AliMultiplicityTask.cxx:306 AliMultiplicityTask.cxx:307 AliMultiplicityTask.cxx:308 AliMultiplicityTask.cxx:309 AliMultiplicityTask.cxx:310 AliMultiplicityTask.cxx:311 AliMultiplicityTask.cxx:312 AliMultiplicityTask.cxx:313 AliMultiplicityTask.cxx:314 AliMultiplicityTask.cxx:315 AliMultiplicityTask.cxx:316 AliMultiplicityTask.cxx:317 AliMultiplicityTask.cxx:318 AliMultiplicityTask.cxx:319 AliMultiplicityTask.cxx:320 AliMultiplicityTask.cxx:321 AliMultiplicityTask.cxx:322 AliMultiplicityTask.cxx:323 AliMultiplicityTask.cxx:324 AliMultiplicityTask.cxx:325 AliMultiplicityTask.cxx:326 AliMultiplicityTask.cxx:327 AliMultiplicityTask.cxx:328 AliMultiplicityTask.cxx:329 AliMultiplicityTask.cxx:330 AliMultiplicityTask.cxx:331 AliMultiplicityTask.cxx:332 AliMultiplicityTask.cxx:333 AliMultiplicityTask.cxx:334 AliMultiplicityTask.cxx:335 AliMultiplicityTask.cxx:336 AliMultiplicityTask.cxx:337 AliMultiplicityTask.cxx:338 AliMultiplicityTask.cxx:339 AliMultiplicityTask.cxx:340 AliMultiplicityTask.cxx:341 AliMultiplicityTask.cxx:342 AliMultiplicityTask.cxx:343 AliMultiplicityTask.cxx:344 AliMultiplicityTask.cxx:345 AliMultiplicityTask.cxx:346 AliMultiplicityTask.cxx:347 AliMultiplicityTask.cxx:348 AliMultiplicityTask.cxx:349 AliMultiplicityTask.cxx:350 AliMultiplicityTask.cxx:351 AliMultiplicityTask.cxx:352 AliMultiplicityTask.cxx:353 AliMultiplicityTask.cxx:354 AliMultiplicityTask.cxx:355 AliMultiplicityTask.cxx:356 AliMultiplicityTask.cxx:357 AliMultiplicityTask.cxx:358 AliMultiplicityTask.cxx:359 AliMultiplicityTask.cxx:360 AliMultiplicityTask.cxx:361 AliMultiplicityTask.cxx:362 AliMultiplicityTask.cxx:363 AliMultiplicityTask.cxx:364 AliMultiplicityTask.cxx:365 AliMultiplicityTask.cxx:366 AliMultiplicityTask.cxx:367 AliMultiplicityTask.cxx:368 AliMultiplicityTask.cxx:369 AliMultiplicityTask.cxx:370 AliMultiplicityTask.cxx:371 AliMultiplicityTask.cxx:372 AliMultiplicityTask.cxx:373 AliMultiplicityTask.cxx:374 AliMultiplicityTask.cxx:375 AliMultiplicityTask.cxx:376 AliMultiplicityTask.cxx:377 AliMultiplicityTask.cxx:378 AliMultiplicityTask.cxx:379 AliMultiplicityTask.cxx:380 AliMultiplicityTask.cxx:381 AliMultiplicityTask.cxx:382 AliMultiplicityTask.cxx:383 AliMultiplicityTask.cxx:384 AliMultiplicityTask.cxx:385 AliMultiplicityTask.cxx:386 AliMultiplicityTask.cxx:387 AliMultiplicityTask.cxx:388 AliMultiplicityTask.cxx:389 AliMultiplicityTask.cxx:390 AliMultiplicityTask.cxx:391 AliMultiplicityTask.cxx:392 AliMultiplicityTask.cxx:393 AliMultiplicityTask.cxx:394 AliMultiplicityTask.cxx:395 AliMultiplicityTask.cxx:396 AliMultiplicityTask.cxx:397 AliMultiplicityTask.cxx:398 AliMultiplicityTask.cxx:399 AliMultiplicityTask.cxx:400 AliMultiplicityTask.cxx:401 AliMultiplicityTask.cxx:402 AliMultiplicityTask.cxx:403 AliMultiplicityTask.cxx:404 AliMultiplicityTask.cxx:405 AliMultiplicityTask.cxx:406 AliMultiplicityTask.cxx:407 AliMultiplicityTask.cxx:408 AliMultiplicityTask.cxx:409 AliMultiplicityTask.cxx:410 AliMultiplicityTask.cxx:411 AliMultiplicityTask.cxx:412 AliMultiplicityTask.cxx:413 AliMultiplicityTask.cxx:414 AliMultiplicityTask.cxx:415 AliMultiplicityTask.cxx:416 AliMultiplicityTask.cxx:417 AliMultiplicityTask.cxx:418 AliMultiplicityTask.cxx:419 AliMultiplicityTask.cxx:420 AliMultiplicityTask.cxx:421 AliMultiplicityTask.cxx:422 AliMultiplicityTask.cxx:423 AliMultiplicityTask.cxx:424 AliMultiplicityTask.cxx:425 AliMultiplicityTask.cxx:426 AliMultiplicityTask.cxx:427 AliMultiplicityTask.cxx:428 AliMultiplicityTask.cxx:429 AliMultiplicityTask.cxx:430 AliMultiplicityTask.cxx:431 AliMultiplicityTask.cxx:432 AliMultiplicityTask.cxx:433 AliMultiplicityTask.cxx:434 AliMultiplicityTask.cxx:435 AliMultiplicityTask.cxx:436 AliMultiplicityTask.cxx:437 AliMultiplicityTask.cxx:438 AliMultiplicityTask.cxx:439 AliMultiplicityTask.cxx:440 AliMultiplicityTask.cxx:441 AliMultiplicityTask.cxx:442 AliMultiplicityTask.cxx:443 AliMultiplicityTask.cxx:444 AliMultiplicityTask.cxx:445 AliMultiplicityTask.cxx:446 AliMultiplicityTask.cxx:447 AliMultiplicityTask.cxx:448 AliMultiplicityTask.cxx:449 AliMultiplicityTask.cxx:450 AliMultiplicityTask.cxx:451 AliMultiplicityTask.cxx:452 AliMultiplicityTask.cxx:453 AliMultiplicityTask.cxx:454 AliMultiplicityTask.cxx:455 AliMultiplicityTask.cxx:456 AliMultiplicityTask.cxx:457 AliMultiplicityTask.cxx:458 AliMultiplicityTask.cxx:459 AliMultiplicityTask.cxx:460 AliMultiplicityTask.cxx:461 AliMultiplicityTask.cxx:462 AliMultiplicityTask.cxx:463 AliMultiplicityTask.cxx:464 AliMultiplicityTask.cxx:465 AliMultiplicityTask.cxx:466 AliMultiplicityTask.cxx:467 AliMultiplicityTask.cxx:468 AliMultiplicityTask.cxx:469 AliMultiplicityTask.cxx:470 AliMultiplicityTask.cxx:471 AliMultiplicityTask.cxx:472 AliMultiplicityTask.cxx:473 AliMultiplicityTask.cxx:474 AliMultiplicityTask.cxx:475 AliMultiplicityTask.cxx:476 AliMultiplicityTask.cxx:477 AliMultiplicityTask.cxx:478 AliMultiplicityTask.cxx:479 AliMultiplicityTask.cxx:480 AliMultiplicityTask.cxx:481 AliMultiplicityTask.cxx:482 AliMultiplicityTask.cxx:483 AliMultiplicityTask.cxx:484 AliMultiplicityTask.cxx:485 AliMultiplicityTask.cxx:486 AliMultiplicityTask.cxx:487 AliMultiplicityTask.cxx:488 AliMultiplicityTask.cxx:489 AliMultiplicityTask.cxx:490 AliMultiplicityTask.cxx:491 AliMultiplicityTask.cxx:492 AliMultiplicityTask.cxx:493 AliMultiplicityTask.cxx:494 AliMultiplicityTask.cxx:495 AliMultiplicityTask.cxx:496 AliMultiplicityTask.cxx:497 AliMultiplicityTask.cxx:498 AliMultiplicityTask.cxx:499 AliMultiplicityTask.cxx:500 AliMultiplicityTask.cxx:501 AliMultiplicityTask.cxx:502 AliMultiplicityTask.cxx:503 AliMultiplicityTask.cxx:504 AliMultiplicityTask.cxx:505 AliMultiplicityTask.cxx:506 AliMultiplicityTask.cxx:507 AliMultiplicityTask.cxx:508 AliMultiplicityTask.cxx:509 AliMultiplicityTask.cxx:510 AliMultiplicityTask.cxx:511 AliMultiplicityTask.cxx:512 AliMultiplicityTask.cxx:513 AliMultiplicityTask.cxx:514 AliMultiplicityTask.cxx:515 AliMultiplicityTask.cxx:516 AliMultiplicityTask.cxx:517 AliMultiplicityTask.cxx:518 AliMultiplicityTask.cxx:519 AliMultiplicityTask.cxx:520 AliMultiplicityTask.cxx:521 AliMultiplicityTask.cxx:522 AliMultiplicityTask.cxx:523 AliMultiplicityTask.cxx:524 AliMultiplicityTask.cxx:525 AliMultiplicityTask.cxx:526 AliMultiplicityTask.cxx:527 AliMultiplicityTask.cxx:528 AliMultiplicityTask.cxx:529 AliMultiplicityTask.cxx:530 AliMultiplicityTask.cxx:531 AliMultiplicityTask.cxx:532 AliMultiplicityTask.cxx:533 AliMultiplicityTask.cxx:534 AliMultiplicityTask.cxx:535 AliMultiplicityTask.cxx:536 AliMultiplicityTask.cxx:537 AliMultiplicityTask.cxx:538 AliMultiplicityTask.cxx:539 AliMultiplicityTask.cxx:540 AliMultiplicityTask.cxx:541 AliMultiplicityTask.cxx:542 AliMultiplicityTask.cxx:543 AliMultiplicityTask.cxx:544 AliMultiplicityTask.cxx:545 AliMultiplicityTask.cxx:546 AliMultiplicityTask.cxx:547 AliMultiplicityTask.cxx:548 AliMultiplicityTask.cxx:549 AliMultiplicityTask.cxx:550 AliMultiplicityTask.cxx:551 AliMultiplicityTask.cxx:552 AliMultiplicityTask.cxx:553 AliMultiplicityTask.cxx:554 AliMultiplicityTask.cxx:555 AliMultiplicityTask.cxx:556 AliMultiplicityTask.cxx:557 AliMultiplicityTask.cxx:558 AliMultiplicityTask.cxx:559 AliMultiplicityTask.cxx:560 AliMultiplicityTask.cxx:561 AliMultiplicityTask.cxx:562 AliMultiplicityTask.cxx:563 AliMultiplicityTask.cxx:564 AliMultiplicityTask.cxx:565 AliMultiplicityTask.cxx:566 AliMultiplicityTask.cxx:567 AliMultiplicityTask.cxx:568 AliMultiplicityTask.cxx:569 AliMultiplicityTask.cxx:570 AliMultiplicityTask.cxx:571 AliMultiplicityTask.cxx:572 AliMultiplicityTask.cxx:573 AliMultiplicityTask.cxx:574 AliMultiplicityTask.cxx:575 AliMultiplicityTask.cxx:576 AliMultiplicityTask.cxx:577 AliMultiplicityTask.cxx:578 AliMultiplicityTask.cxx:579 AliMultiplicityTask.cxx:580 AliMultiplicityTask.cxx:581 AliMultiplicityTask.cxx:582 AliMultiplicityTask.cxx:583 AliMultiplicityTask.cxx:584 AliMultiplicityTask.cxx:585 AliMultiplicityTask.cxx:586 AliMultiplicityTask.cxx:587 AliMultiplicityTask.cxx:588 AliMultiplicityTask.cxx:589 AliMultiplicityTask.cxx:590 AliMultiplicityTask.cxx:591 AliMultiplicityTask.cxx:592 AliMultiplicityTask.cxx:593 AliMultiplicityTask.cxx:594 AliMultiplicityTask.cxx:595 AliMultiplicityTask.cxx:596 AliMultiplicityTask.cxx:597 AliMultiplicityTask.cxx:598 AliMultiplicityTask.cxx:599 AliMultiplicityTask.cxx:600 AliMultiplicityTask.cxx:601 AliMultiplicityTask.cxx:602 AliMultiplicityTask.cxx:603 AliMultiplicityTask.cxx:604 AliMultiplicityTask.cxx:605 AliMultiplicityTask.cxx:606 AliMultiplicityTask.cxx:607 AliMultiplicityTask.cxx:608 AliMultiplicityTask.cxx:609 AliMultiplicityTask.cxx:610 AliMultiplicityTask.cxx:611 AliMultiplicityTask.cxx:612 AliMultiplicityTask.cxx:613 AliMultiplicityTask.cxx:614 AliMultiplicityTask.cxx:615 AliMultiplicityTask.cxx:616 AliMultiplicityTask.cxx:617 AliMultiplicityTask.cxx:618 AliMultiplicityTask.cxx:619 AliMultiplicityTask.cxx:620 AliMultiplicityTask.cxx:621 AliMultiplicityTask.cxx:622 AliMultiplicityTask.cxx:623 AliMultiplicityTask.cxx:624 AliMultiplicityTask.cxx:625 AliMultiplicityTask.cxx:626 AliMultiplicityTask.cxx:627 AliMultiplicityTask.cxx:628 AliMultiplicityTask.cxx:629 AliMultiplicityTask.cxx:630 AliMultiplicityTask.cxx:631 AliMultiplicityTask.cxx:632 AliMultiplicityTask.cxx:633 AliMultiplicityTask.cxx:634 AliMultiplicityTask.cxx:635 AliMultiplicityTask.cxx:636 AliMultiplicityTask.cxx:637 AliMultiplicityTask.cxx:638 AliMultiplicityTask.cxx:639 AliMultiplicityTask.cxx:640 AliMultiplicityTask.cxx:641 AliMultiplicityTask.cxx:642 AliMultiplicityTask.cxx:643 AliMultiplicityTask.cxx:644 AliMultiplicityTask.cxx:645 AliMultiplicityTask.cxx:646 AliMultiplicityTask.cxx:647 AliMultiplicityTask.cxx:648 AliMultiplicityTask.cxx:649 AliMultiplicityTask.cxx:650 AliMultiplicityTask.cxx:651 AliMultiplicityTask.cxx:652 AliMultiplicityTask.cxx:653 AliMultiplicityTask.cxx:654 AliMultiplicityTask.cxx:655 AliMultiplicityTask.cxx:656 AliMultiplicityTask.cxx:657 AliMultiplicityTask.cxx:658 AliMultiplicityTask.cxx:659 AliMultiplicityTask.cxx:660 AliMultiplicityTask.cxx:661 AliMultiplicityTask.cxx:662 AliMultiplicityTask.cxx:663 AliMultiplicityTask.cxx:664 AliMultiplicityTask.cxx:665 AliMultiplicityTask.cxx:666 AliMultiplicityTask.cxx:667 AliMultiplicityTask.cxx:668 AliMultiplicityTask.cxx:669 AliMultiplicityTask.cxx:670 AliMultiplicityTask.cxx:671 AliMultiplicityTask.cxx:672 AliMultiplicityTask.cxx:673 AliMultiplicityTask.cxx:674 AliMultiplicityTask.cxx:675 AliMultiplicityTask.cxx:676 AliMultiplicityTask.cxx:677 AliMultiplicityTask.cxx:678 AliMultiplicityTask.cxx:679 AliMultiplicityTask.cxx:680 AliMultiplicityTask.cxx:681 AliMultiplicityTask.cxx:682 AliMultiplicityTask.cxx:683 AliMultiplicityTask.cxx:684 AliMultiplicityTask.cxx:685 AliMultiplicityTask.cxx:686 AliMultiplicityTask.cxx:687 AliMultiplicityTask.cxx:688 AliMultiplicityTask.cxx:689 AliMultiplicityTask.cxx:690 AliMultiplicityTask.cxx:691 AliMultiplicityTask.cxx:692 AliMultiplicityTask.cxx:693 AliMultiplicityTask.cxx:694 AliMultiplicityTask.cxx:695 AliMultiplicityTask.cxx:696 AliMultiplicityTask.cxx:697 AliMultiplicityTask.cxx:698 AliMultiplicityTask.cxx:699 AliMultiplicityTask.cxx:700 AliMultiplicityTask.cxx:701 AliMultiplicityTask.cxx:702 AliMultiplicityTask.cxx:703 AliMultiplicityTask.cxx:704 AliMultiplicityTask.cxx:705 AliMultiplicityTask.cxx:706 AliMultiplicityTask.cxx:707 AliMultiplicityTask.cxx:708 AliMultiplicityTask.cxx:709 AliMultiplicityTask.cxx:710 AliMultiplicityTask.cxx:711 AliMultiplicityTask.cxx:712 AliMultiplicityTask.cxx:713 AliMultiplicityTask.cxx:714 AliMultiplicityTask.cxx:715 AliMultiplicityTask.cxx:716 AliMultiplicityTask.cxx:717 AliMultiplicityTask.cxx:718 AliMultiplicityTask.cxx:719 AliMultiplicityTask.cxx:720 AliMultiplicityTask.cxx:721 AliMultiplicityTask.cxx:722 AliMultiplicityTask.cxx:723 AliMultiplicityTask.cxx:724 AliMultiplicityTask.cxx:725 AliMultiplicityTask.cxx:726 AliMultiplicityTask.cxx:727 AliMultiplicityTask.cxx:728 AliMultiplicityTask.cxx:729 AliMultiplicityTask.cxx:730 AliMultiplicityTask.cxx:731 AliMultiplicityTask.cxx:732 AliMultiplicityTask.cxx:733 AliMultiplicityTask.cxx:734 AliMultiplicityTask.cxx:735 AliMultiplicityTask.cxx:736 AliMultiplicityTask.cxx:737 AliMultiplicityTask.cxx:738 AliMultiplicityTask.cxx:739 AliMultiplicityTask.cxx:740 AliMultiplicityTask.cxx:741 AliMultiplicityTask.cxx:742 AliMultiplicityTask.cxx:743 AliMultiplicityTask.cxx:744 AliMultiplicityTask.cxx:745 AliMultiplicityTask.cxx:746 AliMultiplicityTask.cxx:747 AliMultiplicityTask.cxx:748 AliMultiplicityTask.cxx:749 AliMultiplicityTask.cxx:750 AliMultiplicityTask.cxx:751 AliMultiplicityTask.cxx:752 AliMultiplicityTask.cxx:753 AliMultiplicityTask.cxx:754 AliMultiplicityTask.cxx:755 AliMultiplicityTask.cxx:756 AliMultiplicityTask.cxx:757 AliMultiplicityTask.cxx:758 AliMultiplicityTask.cxx:759 AliMultiplicityTask.cxx:760 AliMultiplicityTask.cxx:761 AliMultiplicityTask.cxx:762 AliMultiplicityTask.cxx:763 AliMultiplicityTask.cxx:764 AliMultiplicityTask.cxx:765 AliMultiplicityTask.cxx:766 AliMultiplicityTask.cxx:767 AliMultiplicityTask.cxx:768 AliMultiplicityTask.cxx:769 AliMultiplicityTask.cxx:770 AliMultiplicityTask.cxx:771 AliMultiplicityTask.cxx:772 AliMultiplicityTask.cxx:773 AliMultiplicityTask.cxx:774 AliMultiplicityTask.cxx:775 AliMultiplicityTask.cxx:776 AliMultiplicityTask.cxx:777 AliMultiplicityTask.cxx:778 AliMultiplicityTask.cxx:779 AliMultiplicityTask.cxx:780 AliMultiplicityTask.cxx:781 AliMultiplicityTask.cxx:782 AliMultiplicityTask.cxx:783 AliMultiplicityTask.cxx:784 AliMultiplicityTask.cxx:785 AliMultiplicityTask.cxx:786 AliMultiplicityTask.cxx:787 AliMultiplicityTask.cxx:788 AliMultiplicityTask.cxx:789 AliMultiplicityTask.cxx:790 AliMultiplicityTask.cxx:791 AliMultiplicityTask.cxx:792 AliMultiplicityTask.cxx:793 AliMultiplicityTask.cxx:794 AliMultiplicityTask.cxx:795 AliMultiplicityTask.cxx:796 AliMultiplicityTask.cxx:797 AliMultiplicityTask.cxx:798 AliMultiplicityTask.cxx:799 AliMultiplicityTask.cxx:800 AliMultiplicityTask.cxx:801 AliMultiplicityTask.cxx:802 AliMultiplicityTask.cxx:803 AliMultiplicityTask.cxx:804 AliMultiplicityTask.cxx:805 AliMultiplicityTask.cxx:806 AliMultiplicityTask.cxx:807 AliMultiplicityTask.cxx:808 AliMultiplicityTask.cxx:809 AliMultiplicityTask.cxx:810 AliMultiplicityTask.cxx:811 AliMultiplicityTask.cxx:812 AliMultiplicityTask.cxx:813 AliMultiplicityTask.cxx:814 AliMultiplicityTask.cxx:815 AliMultiplicityTask.cxx:816 AliMultiplicityTask.cxx:817 AliMultiplicityTask.cxx:818 AliMultiplicityTask.cxx:819 AliMultiplicityTask.cxx:820 AliMultiplicityTask.cxx:821 AliMultiplicityTask.cxx:822 AliMultiplicityTask.cxx:823 AliMultiplicityTask.cxx:824 AliMultiplicityTask.cxx:825 AliMultiplicityTask.cxx:826 AliMultiplicityTask.cxx:827 AliMultiplicityTask.cxx:828 AliMultiplicityTask.cxx:829 AliMultiplicityTask.cxx:830 AliMultiplicityTask.cxx:831 AliMultiplicityTask.cxx:832 AliMultiplicityTask.cxx:833 AliMultiplicityTask.cxx:834 AliMultiplicityTask.cxx:835 AliMultiplicityTask.cxx:836 AliMultiplicityTask.cxx:837 AliMultiplicityTask.cxx:838 AliMultiplicityTask.cxx:839 AliMultiplicityTask.cxx:840 AliMultiplicityTask.cxx:841 AliMultiplicityTask.cxx:842 AliMultiplicityTask.cxx:843 AliMultiplicityTask.cxx:844 AliMultiplicityTask.cxx:845 AliMultiplicityTask.cxx:846 AliMultiplicityTask.cxx:847 AliMultiplicityTask.cxx:848 AliMultiplicityTask.cxx:849 AliMultiplicityTask.cxx:850 AliMultiplicityTask.cxx:851 AliMultiplicityTask.cxx:852 AliMultiplicityTask.cxx:853 AliMultiplicityTask.cxx:854 AliMultiplicityTask.cxx:855 AliMultiplicityTask.cxx:856 AliMultiplicityTask.cxx:857 AliMultiplicityTask.cxx:858 AliMultiplicityTask.cxx:859 AliMultiplicityTask.cxx:860 AliMultiplicityTask.cxx:861 AliMultiplicityTask.cxx:862 AliMultiplicityTask.cxx:863 AliMultiplicityTask.cxx:864 AliMultiplicityTask.cxx:865 AliMultiplicityTask.cxx:866 AliMultiplicityTask.cxx:867 AliMultiplicityTask.cxx:868 AliMultiplicityTask.cxx:869 AliMultiplicityTask.cxx:870 AliMultiplicityTask.cxx:871 AliMultiplicityTask.cxx:872 AliMultiplicityTask.cxx:873 AliMultiplicityTask.cxx:874 AliMultiplicityTask.cxx:875 AliMultiplicityTask.cxx:876 AliMultiplicityTask.cxx:877 AliMultiplicityTask.cxx:878 AliMultiplicityTask.cxx:879 AliMultiplicityTask.cxx:880 AliMultiplicityTask.cxx:881 AliMultiplicityTask.cxx:882 AliMultiplicityTask.cxx:883 AliMultiplicityTask.cxx:884 AliMultiplicityTask.cxx:885 AliMultiplicityTask.cxx:886 AliMultiplicityTask.cxx:887 AliMultiplicityTask.cxx:888 AliMultiplicityTask.cxx:889 AliMultiplicityTask.cxx:890 AliMultiplicityTask.cxx:891 AliMultiplicityTask.cxx:892 AliMultiplicityTask.cxx:893 AliMultiplicityTask.cxx:894 AliMultiplicityTask.cxx:895 AliMultiplicityTask.cxx:896 AliMultiplicityTask.cxx:897 AliMultiplicityTask.cxx:898 AliMultiplicityTask.cxx:899 AliMultiplicityTask.cxx:900 AliMultiplicityTask.cxx:901 AliMultiplicityTask.cxx:902 AliMultiplicityTask.cxx:903 AliMultiplicityTask.cxx:904 AliMultiplicityTask.cxx:905 AliMultiplicityTask.cxx:906 AliMultiplicityTask.cxx:907 AliMultiplicityTask.cxx:908 AliMultiplicityTask.cxx:909 AliMultiplicityTask.cxx:910 AliMultiplicityTask.cxx:911 AliMultiplicityTask.cxx:912 AliMultiplicityTask.cxx:913 AliMultiplicityTask.cxx:914 AliMultiplicityTask.cxx:915 AliMultiplicityTask.cxx:916 AliMultiplicityTask.cxx:917 AliMultiplicityTask.cxx:918 AliMultiplicityTask.cxx:919 AliMultiplicityTask.cxx:920 AliMultiplicityTask.cxx:921 AliMultiplicityTask.cxx:922 AliMultiplicityTask.cxx:923 AliMultiplicityTask.cxx:924 AliMultiplicityTask.cxx:925 AliMultiplicityTask.cxx:926 AliMultiplicityTask.cxx:927 AliMultiplicityTask.cxx:928 AliMultiplicityTask.cxx:929 AliMultiplicityTask.cxx:930 AliMultiplicityTask.cxx:931 AliMultiplicityTask.cxx:932 AliMultiplicityTask.cxx:933 AliMultiplicityTask.cxx:934 AliMultiplicityTask.cxx:935 AliMultiplicityTask.cxx:936 AliMultiplicityTask.cxx:937 AliMultiplicityTask.cxx:938 AliMultiplicityTask.cxx:939 AliMultiplicityTask.cxx:940 AliMultiplicityTask.cxx:941 AliMultiplicityTask.cxx:942 AliMultiplicityTask.cxx:943 AliMultiplicityTask.cxx:944 AliMultiplicityTask.cxx:945 AliMultiplicityTask.cxx:946 AliMultiplicityTask.cxx:947 AliMultiplicityTask.cxx:948 AliMultiplicityTask.cxx:949 AliMultiplicityTask.cxx:950 AliMultiplicityTask.cxx:951 AliMultiplicityTask.cxx:952 AliMultiplicityTask.cxx:953 AliMultiplicityTask.cxx:954 AliMultiplicityTask.cxx:955 AliMultiplicityTask.cxx:956 AliMultiplicityTask.cxx:957 AliMultiplicityTask.cxx:958 AliMultiplicityTask.cxx:959 AliMultiplicityTask.cxx:960 AliMultiplicityTask.cxx:961 AliMultiplicityTask.cxx:962 AliMultiplicityTask.cxx:963 AliMultiplicityTask.cxx:964 AliMultiplicityTask.cxx:965 AliMultiplicityTask.cxx:966 AliMultiplicityTask.cxx:967 AliMultiplicityTask.cxx:968 AliMultiplicityTask.cxx:969 AliMultiplicityTask.cxx:970 AliMultiplicityTask.cxx:971 AliMultiplicityTask.cxx:972 AliMultiplicityTask.cxx:973 AliMultiplicityTask.cxx:974 AliMultiplicityTask.cxx:975 AliMultiplicityTask.cxx:976 AliMultiplicityTask.cxx:977 AliMultiplicityTask.cxx:978 AliMultiplicityTask.cxx:979 AliMultiplicityTask.cxx:980 AliMultiplicityTask.cxx:981 AliMultiplicityTask.cxx:982 AliMultiplicityTask.cxx:983 AliMultiplicityTask.cxx:984 AliMultiplicityTask.cxx:985 AliMultiplicityTask.cxx:986 AliMultiplicityTask.cxx:987 AliMultiplicityTask.cxx:988 AliMultiplicityTask.cxx:989 AliMultiplicityTask.cxx:990 AliMultiplicityTask.cxx:991 AliMultiplicityTask.cxx:992 AliMultiplicityTask.cxx:993 AliMultiplicityTask.cxx:994 AliMultiplicityTask.cxx:995 AliMultiplicityTask.cxx:996 AliMultiplicityTask.cxx:997 AliMultiplicityTask.cxx:998 AliMultiplicityTask.cxx:999 AliMultiplicityTask.cxx:1000 AliMultiplicityTask.cxx:1001 AliMultiplicityTask.cxx:1002 AliMultiplicityTask.cxx:1003 AliMultiplicityTask.cxx:1004 AliMultiplicityTask.cxx:1005 AliMultiplicityTask.cxx:1006 AliMultiplicityTask.cxx:1007 AliMultiplicityTask.cxx:1008 AliMultiplicityTask.cxx:1009 AliMultiplicityTask.cxx:1010 AliMultiplicityTask.cxx:1011 AliMultiplicityTask.cxx:1012 AliMultiplicityTask.cxx:1013 AliMultiplicityTask.cxx:1014 AliMultiplicityTask.cxx:1015 AliMultiplicityTask.cxx:1016 AliMultiplicityTask.cxx:1017 AliMultiplicityTask.cxx:1018 AliMultiplicityTask.cxx:1019 AliMultiplicityTask.cxx:1020 AliMultiplicityTask.cxx:1021 AliMultiplicityTask.cxx:1022 AliMultiplicityTask.cxx:1023 AliMultiplicityTask.cxx:1024 AliMultiplicityTask.cxx:1025 AliMultiplicityTask.cxx:1026 AliMultiplicityTask.cxx:1027 AliMultiplicityTask.cxx:1028 AliMultiplicityTask.cxx:1029 AliMultiplicityTask.cxx:1030 AliMultiplicityTask.cxx:1031 AliMultiplicityTask.cxx:1032 AliMultiplicityTask.cxx:1033 AliMultiplicityTask.cxx:1034 AliMultiplicityTask.cxx:1035 AliMultiplicityTask.cxx:1036 AliMultiplicityTask.cxx:1037 AliMultiplicityTask.cxx:1038 AliMultiplicityTask.cxx:1039 AliMultiplicityTask.cxx:1040 AliMultiplicityTask.cxx:1041 AliMultiplicityTask.cxx:1042 AliMultiplicityTask.cxx:1043 AliMultiplicityTask.cxx:1044 AliMultiplicityTask.cxx:1045 AliMultiplicityTask.cxx:1046 AliMultiplicityTask.cxx:1047 AliMultiplicityTask.cxx:1048 AliMultiplicityTask.cxx:1049 AliMultiplicityTask.cxx:1050