ROOT logo
//====================================================================
// 
// Base class for classes that calculate the multiplicity in the
// forward regions event-by-event
// 
// Inputs: 
//   - AliESDEvent 
//
// Outputs: 
//   - AliAODForwardMult 
// 
// Histograms 
//   
// Corrections used 
#include "AliForwardMultiplicityBase.h"
#include "AliForwardCorrectionManager.h"
#include "AliForwardUtil.h"
#include "AliFMDCorrELossFit.h"
#include "AliLog.h"
#include "AliAODHandler.h"
#include "AliInputEventHandler.h"
#include "AliAnalysisManager.h"
#include "AliFMDEventInspector.h"
#include "AliFMDESDFixer.h"
#include "AliFMDSharingFilter.h"
#include "AliFMDDensityCalculator.h"
#include "AliFMDCorrector.h"
#include "AliFMDHistCollector.h"
#include "AliFMDEventPlaneFinder.h"
#include "AliESDEvent.h"
#include <TROOT.h>
#include <TSystem.h>
#include <TAxis.h>
#include <TProfile.h>
#include <THStack.h>
#include <iostream>
#include <iomanip>
#define AOD_SLOT 3
#ifdef POST_AOD
# define DEFINE(N) DefineOutput(N,AliAODForwardMult::Class())
# define POST(N)   PostData(N,fAODFMD)
#else
# define DEFINE(N) do { } while(false)
# define POST(N)   do { } while(false)
#endif

//====================================================================
AliForwardMultiplicityBase::AliForwardMultiplicityBase(const char* name) 
  : AliBaseESDTask(name, "AliForwardMultiplicityBase", 
		   &(AliForwardCorrectionManager::Instance())),
    fEnableLowFlux(false), 
    fStorePerRing(false),
    fHData(0),
    fHistos(),
    fAODFMD(false),
    fAODEP(false),
    fRingSums(),
    fDoTiming(false),
  fHTiming(0),
  fHStatus(0),
    fAddMask(AliAODForwardMult::kInel)
{
  DGUARD(fDebug, 3,"Named CTOR of AliForwardMultiplicityBase %s",name);

  DEFINE(AOD_SLOT);
}


//____________________________________________________________________
void
AliForwardMultiplicityBase::SetDebug(Int_t dbg)
{
  // 
  // Set debug level 
  // 
  // Parameters:
  //    dbg debug level
  //
  AliBaseESDTask::       SetDebug(dbg);
  GetSharingFilter()	.SetDebug(dbg);
  GetDensityCalculator().SetDebug(dbg);
  GetCorrections()	.SetDebug(dbg);
  GetHistCollector()	.SetDebug(dbg);
  GetEventPlaneFinder()	.SetDebug(dbg);
}

//____________________________________________________________________
Bool_t
AliForwardMultiplicityBase::Book()
{
  // 
  // Create output objects 
  // 
  //
  DGUARD(fDebug,1,"Create user ouput");
  UInt_t what = AliForwardCorrectionManager::kAll;
  if (!fEnableLowFlux)
    what ^= AliForwardCorrectionManager::kDoubleHit;
  if (!GetESDFixer().IsUseNoiseCorrection()) 
    what ^= AliForwardCorrectionManager::kNoiseGain;
  if (!GetCorrections().IsUseVertexBias())
    what ^= AliForwardCorrectionManager::kVertexBias;
  if (!GetCorrections().IsUseAcceptance())
    what ^= AliForwardCorrectionManager::kAcceptance;
  if (!GetCorrections().IsUseMergingEfficiency())
    what ^= AliForwardCorrectionManager::kMergingEfficiency;
  fNeededCorrections = what;

  GetESDFixer()         .CreateOutputObjects(fList);
  GetSharingFilter()	.CreateOutputObjects(fList);
  GetDensityCalculator().CreateOutputObjects(fList);
  GetCorrections()	.CreateOutputObjects(fList);
  GetHistCollector()	.CreateOutputObjects(fList);
  GetEventPlaneFinder()	.CreateOutputObjects(fList);

  TAxis tmp(1, 0, 1);
  fHistos.Init(tmp);

  if (fDebug > 1) fDoTiming = true;
  if (fDoTiming) { 
    fHTiming = new TProfile("timing", "Timing of task", 
			    kTimingTotal, 0.5, kTimingTotal+.5);
    fHTiming->SetDirectory(0);
    fHTiming->SetFillColor(kRed+1);
    fHTiming->SetFillStyle(3001);
    fHTiming->SetMarkerStyle(20);
    fHTiming->SetMarkerColor(kBlack);
    fHTiming->SetLineColor(kBlack);
    fHTiming->SetXTitle("Part");
    fHTiming->SetYTitle("#LTt_{part}#GT [CPU]");
    fHTiming->SetStats(0);
    TAxis* xaxis = fHTiming->GetXaxis();
    xaxis->SetBinLabel(kTimingEventInspector,	
		       GetEventInspector()   .GetName());
    xaxis->SetBinLabel(kTimingSharingFilter,	
		       GetSharingFilter()    .GetName());
    xaxis->SetBinLabel(kTimingDensityCalculator,	
		       GetDensityCalculator().GetName());
    xaxis->SetBinLabel(kTimingCorrections,	
		       GetCorrections()      .GetName());
    xaxis->SetBinLabel(kTimingHistCollector,	
		       GetHistCollector()    .GetName());
    xaxis->SetBinLabel(kTimingEventPlaneFinder,	
		       GetEventPlaneFinder() .GetName());
    xaxis->SetBinLabel(kTimingTotal, "Total");
    fList->Add(fHTiming);
  }
  fHStatus = new TH1I("status", "Status of task",15, .5, 15.5);
  fHStatus->SetDirectory(0);
  fHStatus->SetFillColor(kCyan+2);
  fHStatus->SetFillStyle(3001);
  fHStatus->SetLineColor(kBlack);
  fHStatus->SetMarkerStyle(20);
  fHStatus->SetMarkerColor(kBlack);
  fHStatus->SetYTitle("Events");
  TAxis* a = fHStatus->GetXaxis();
  a->SetBinLabel(1,"No event");
  a->SetBinLabel(2,"No triggers");
  a->SetBinLabel(3,"No SPD (not used)");
  a->SetBinLabel(4,"No FMD");
  a->SetBinLabel(5,"No Vertex");
  a->SetBinLabel(6,"Pile-up");
  a->SetBinLabel(7,"IP_{z} out of range");
  a->SetBinLabel(8,"Merger failed");
  a->SetBinLabel(9,"N_{ch} estimator failed");
  a->SetBinLabel(10,"#Phi_{R} estimator failed");
  a->SetBinLabel(11,"Too many outliers");
  a->SetBinLabel(12,"Corrector failed");
  a->SetBinLabel(13,"Histogram collector failed");
  a->SetBinLabel(14,"Not added");
  a->SetBinLabel(15,"All through");
  fList->Add(fHStatus);

  POST(AOD_SLOT);
  return true;
}
//____________________________________________________________________
void
AliForwardMultiplicityBase::CreateBranches(AliAODHandler* ah)
{
  TObject* obj   = &fAODFMD; ah->AddBranch("AliAODForwardMult", &obj);
  TObject* epobj = &fAODEP;  ah->AddBranch("AliAODForwardEP", &epobj);

  if (!fStorePerRing) return;
  
  AliWarning("Per-ring histograms in AOD\n"
	     "*********************************************************\n"
	     "* For each event 5 additional 2D histogram are stored   *\n"
	     "* in separate branches of the AODs.  This will increase *\n"
	     "* the size of the AODs - proceed with caution           *\n"
	     "*********************************************************");
  TObject* hists[] = { fHistos.fFMD1i, 
		       fHistos.fFMD2i, fHistos.fFMD2o, 
		       fHistos.fFMD3i, fHistos.fFMD3o };
  for (Int_t i = 0; i < 5; i++) { 
    ah->AddBranch("TH2D", &(hists[i]));
  }
}

//____________________________________________________________________
Bool_t
AliForwardMultiplicityBase::PreData(const TAxis& vertex, const TAxis& eta)
{
  // 
  // Initialise the sub objects and stuff.  Called on first event 
  // 
  //
  DGUARD(fDebug,1,"Initialize sub-algorithms");

  // Force this here so we select the proper quality 
  AliForwardCorrectionManager& fcm = AliForwardCorrectionManager::Instance();

  UInt_t what = fNeededCorrections;
  // Check that we have the energy loss fits, needed by 
  //   AliFMDSharingFilter 
  //   AliFMDDensityCalculator 
  if (what & AliForwardCorrectionManager::kELossFits && !fcm.GetELossFit()) 
    AliFatal(Form("No energy loss fits"));
  
  // Check that we have the double hit correction - (optionally) used by 
  //  AliFMDDensityCalculator 
  if (what & AliForwardCorrectionManager::kDoubleHit && !fcm.GetDoubleHit()) 
    AliFatal("No double hit corrections"); 

  // Check that we have the secondary maps, needed by 
  //   AliFMDCorrector 
  //   AliFMDHistCollector
  if (what & AliForwardCorrectionManager::kSecondaryMap && 
      !fcm.GetSecondaryMap()) 
    AliFatal("No secondary corrections");

  // Check that we have the vertex bias correction, needed by 
  //   AliFMDCorrector 
  if (what & AliForwardCorrectionManager::kVertexBias && !fcm.GetVertexBias())
    AliFatal("No event vertex bias corrections");

  // Check that we have the merging efficiencies, optionally used by 
  //   AliFMDCorrector 
  if (what & AliForwardCorrectionManager::kMergingEfficiency && 
      !fcm.GetMergingEfficiency()) 
    AliFatal("No merging efficiencies");

  // Check that we have the acceptance correction, needed by 
  //   AliFMDCorrector 
  if (what & AliForwardCorrectionManager::kAcceptance && !fcm.GetAcceptance())
    AliFatal("No acceptance corrections");

  // const AliFMDCorrELossFit* fits = fcm.GetELossFit();
  // fits->CacheBins(GetDensityCalculator().GetMinQuality());

  InitMembers(eta,vertex);
  
  GetDensityCalculator().SetupForData(eta);
  GetSharingFilter()	.SetupForData(eta);
  GetCorrections()	.SetupForData(eta);
  GetHistCollector()	.SetupForData(vertex,eta);

  GetEventPlaneFinder() .SetRunNumber(GetEventInspector().GetRunNumber());
  GetEventPlaneFinder()	.SetupForData(eta);
  
  fAODFMD.SetBit(AliAODForwardMult::kSecondary, 
		 GetCorrections().IsUseSecondaryMap());
  fAODFMD.SetBit(AliAODForwardMult::kVertexBias, 
		 GetCorrections().IsUseVertexBias());
  fAODFMD.SetBit(AliAODForwardMult::kAcceptance, 
		 GetCorrections().IsUseAcceptance());
  fAODFMD.SetBit(AliAODForwardMult::kMergingEfficiency, 
		 GetCorrections().IsUseMergingEfficiency());
  fAODFMD.SetBit(AliAODForwardMult::kSum, 
		 GetHistCollector().GetMergeMethod() == 
		 AliFMDHistCollector::kSum);
  return true;
}

//____________________________________________________________________
void
AliForwardMultiplicityBase::InitMembers(const TAxis& eta, const TAxis& /*pv*/)
{
  fHistos.ReInit(eta);
  fAODFMD.Init(eta);
  fAODEP.Init(eta);
  fRingSums.Init(eta);

  fHData = static_cast<TH2D*>(fAODFMD.GetHistogram().Clone("d2Ndetadphi"));
  fHData->SetStats(0);
  fHData->SetDirectory(0);
  fList->Add(fHData);

  TList* rings = new TList;
  rings->SetName("ringSums");
  rings->SetOwner();
  fList->Add(rings);

  rings->Add(fRingSums.Get(1, 'I'));
  rings->Add(fRingSums.Get(2, 'I'));
  rings->Add(fRingSums.Get(2, 'O'));
  rings->Add(fRingSums.Get(3, 'I'));
  rings->Add(fRingSums.Get(3, 'O'));
  fRingSums.Get(1, 'I')->SetMarkerColor(AliForwardUtil::RingColor(1, 'I'));
  fRingSums.Get(2, 'I')->SetMarkerColor(AliForwardUtil::RingColor(2, 'I'));
  fRingSums.Get(2, 'O')->SetMarkerColor(AliForwardUtil::RingColor(2, 'O'));
  fRingSums.Get(3, 'I')->SetMarkerColor(AliForwardUtil::RingColor(3, 'I'));
  fRingSums.Get(3, 'O')->SetMarkerColor(AliForwardUtil::RingColor(3, 'O'));
}
//____________________________________________________________________
Bool_t
AliForwardMultiplicityBase::PostEvent()
{
  POST(AOD_SLOT);
  return true;
}
//____________________________________________________________________
Bool_t
AliForwardMultiplicityBase::Finalize()
{
  // 
  // End of job
  // 
  // Parameters:
  //    option Not used 
  //
  DGUARD(fDebug,1,"Processing the merged results");

  TList* list   = fList;
  TList* output = fResults;
  Double_t nTr = 0, nTrVtx = 0, nAcc = 0;
  MakeSimpledNdeta(list, output, nTr, nTrVtx, nAcc);
  AliInfoF("\n"
	   "\t# events w/trigger:                 %f\n"
	   "\t# events w/trigger+vertex:          %f\n"
	   "\t# events accepted by cuts:          %f", 
	   nTr, nTrVtx, nAcc);

  EstimatedNdeta(list, output);

  GetSharingFilter()	.Terminate(list,output,Int_t(nTr));
  GetDensityCalculator().Terminate(list,output,Int_t(nTrVtx));
  GetCorrections()	.Terminate(list,output,Int_t(nTrVtx));

  TProfile* timing  = static_cast<TProfile*>(list->FindObject("timing"));
  Int_t     nTiming = (timing ? timing->GetBinContent(timing->GetNbinsX()) : 0);
  if (timing && nTiming > 0) { 
    TProfile* p = static_cast<TProfile*>(timing->Clone());
    p->SetDirectory(0);
    p->Scale(100. / nTiming);
    p->SetYTitle("#LTt_{part}#GT/#LTt_{total}#GT [%]");
    p->SetTitle("Relative timing of task");
    output->Add(p);
  }
  return true;
}

//____________________________________________________________________
void
AliForwardMultiplicityBase::EstimatedNdeta(const TList* input, 
					   TList*       output) const
{
  MakeRingdNdeta(input, "ringSums", output, "ringResults");
}

//____________________________________________________________________
Bool_t
AliForwardMultiplicityBase::MakeSimpledNdeta(const TList* input, 
					     TList*       output,
					     Double_t&    nTr, 
					     Double_t&    nTrVtx, 
					     Double_t&    nAcc)
{
  // Get our histograms from the container 
  TH1I* hEventsTr    = 0;
  TH1I* hEventsTrVtx = 0;
  TH1I* hEventsAcc   = 0;
  TH1I* hTriggers    = 0;
  TH1*  hStatus      = dynamic_cast<TH1*>(input->FindObject("status"));
  if (!GetEventInspector().FetchHistograms(input, 
					   hEventsTr, 
					   hEventsTrVtx, 
					   hEventsAcc,
					   hTriggers)) { 
    AliError(Form("Didn't get histograms from event selector "
		  "(hEventsTr=%p,hEventsTrVtx=%p,hEventsAcc=%p,hTriggers=%p)", 
		  hEventsTr, hEventsTrVtx, hEventsAcc, hTriggers));
    input->ls();
    return false;
  }
  nTr              = hEventsTr->Integral();
  nTrVtx           = hEventsTrVtx->Integral();
  nAcc             = hEventsAcc->Integral();
  Double_t vtxEff  = nTrVtx / nTr;
  Double_t vtxEff2 = 0;
  if (hStatus) {
    Double_t nTrg    = hStatus->Integral(3,15);
    Double_t nTrgVtx = hStatus->Integral(6,15);
    vtxEff2          = (nTrg > 0 ? nTrgVtx / nTrg : 0);
  }
    
  TH2D*   hData   = static_cast<TH2D*>(input->FindObject("d2Ndetadphi"));
  if (!hData) { 
    AliError(Form("Couldn't get our summed histogram from output "
		  "list %s (d2Ndetadphi=%p)", input->GetName(), hData));
    input->ls();
    return false;
  }

  Int_t nY      = hData->GetNbinsY();
  TH1D* dNdeta  = hData->ProjectionX("dNdeta",  1,     nY, "e");
  TH1D* dNdeta_ = hData->ProjectionX("dNdeta_", 1,     nY, "e");
  TH1D* norm    = hData->ProjectionX("norm",    0,     0,  "");
  TH1D* phi     = hData->ProjectionX("phi",     nY+1,  nY+1,  "");
  dNdeta->SetTitle("dN_{ch}/d#eta in the forward regions");
  dNdeta->SetYTitle("#frac{1}{N}#frac{dN_{ch}}{d#eta}");
  dNdeta->SetMarkerColor(kRed+1);
  dNdeta->SetMarkerStyle(20);
  dNdeta->SetDirectory(0);

  dNdeta_->SetTitle("dN_{ch}/d#eta in the forward regions");
  dNdeta_->SetYTitle("#frac{1}{N}#frac{dN_{ch}}{d#eta}");
  dNdeta_->SetMarkerColor(kMagenta+1);
  dNdeta_->SetMarkerStyle(21);
  dNdeta_->SetDirectory(0);

  norm->SetTitle("Normalization to  #eta coverage");
  norm->SetYTitle("#eta coverage");
  norm->SetLineColor(kBlue+1);
  norm->SetMarkerColor(kBlue+1);
  norm->SetMarkerStyle(21);
  norm->SetFillColor(kBlue+1);
  norm->SetFillStyle(3005);
  norm->SetDirectory(0);

  phi->SetTitle("Normalization to  #phi acceptance");
  phi->SetYTitle("#phi acceptance");
  phi->SetLineColor(kGreen+1);
  phi->SetMarkerColor(kGreen+1);
  phi->SetMarkerStyle(20);
  phi->SetFillColor(kGreen+1);
  phi->SetFillStyle(3004);
  // phi->Scale(1. / nAcc);
  phi->SetDirectory(0);

  // dNdeta->Divide(norm);
  dNdeta->Divide(phi);
  dNdeta->SetStats(0);
  dNdeta->Scale(vtxEff,	"width");

  dNdeta_->Divide(norm);
  dNdeta_->SetStats(0);
  dNdeta_->Scale(vtxEff, "width");

  AliInfoF("All\n"
	   "\tNormalization eta:  %d\n"
	   "\tNormalization phi:  %d\n"
	   "\tVertex efficiency:  %f (%f)",
	   Int_t(norm->GetMaximum()), Int_t(phi->GetMaximum()), 
	   vtxEff, vtxEff2);
  output->Add(dNdeta);
  output->Add(dNdeta_);
  output->Add(norm);
  output->Add(phi);

  return true;
}

					     
//____________________________________________________________________
void
AliForwardMultiplicityBase::MakeRingdNdeta(const TList* input, 
					   const char*  inName,
					   TList*       output,
					   const char*  outName,
					   Int_t        style) const
{
  // Make dN/deta for each ring found in the input list.  
  // 
  // A stack of all the dN/deta is also made for easy drawing. 
  // 
  // Note, that the distributions are normalised to the number of
  // observed events only - they should be corrected for 
  DGUARD(fDebug,3,"Make first-shot ring dN/deta");

  if (!input) return;
  TList* list = static_cast<TList*>(input->FindObject(inName));
  if (!list) { 
    AliWarning(Form("No list %s found in %s", inName, input->GetName()));
    return;
  }
  
  TList* out = new TList;
  out->SetName(outName);
  out->SetOwner();
  output->Add(out);

  THStack*     dndetaRings = new THStack("all", "dN/d#eta per ring");
  const char*  names[]     = { "FMD1I", "FMD2I", "FMD2O", "FMD3I", "FMD3O", 0 };
  const char** ptr         = names;
  
  while (*ptr) { 
    TList* thisList = new TList;
    thisList->SetOwner();
    thisList->SetName(*ptr);
    out->Add(thisList);

    TH2D* h = static_cast<TH2D*>(list->FindObject(Form("%s_cache", *ptr)));
    if (!h) { 
      AliWarning(Form("Didn't find %s_cache in %s", *ptr, list->GetName()));
      ptr++;
      continue;
    }
    TH2D* sumPhi = static_cast<TH2D*>(h->Clone("sum_phi"));
    sumPhi->SetDirectory(0);
    thisList->Add(sumPhi);

    TH2D* sumEta = static_cast<TH2D*>(h->Clone("sum_eta"));
    sumEta->SetDirectory(0);
    thisList->Add(sumEta);
    
    Int_t nY   = sumEta->GetNbinsY();
    TH1D* etaCov =static_cast<TH1D*>(h->ProjectionX("etaCov", 0,    0,    ""));
    TH1D* phiAcc =static_cast<TH1D*>(h->ProjectionX("phiAcc", nY+1, nY+1, ""));

    etaCov->SetTitle("Normalization to #eta coverage");
    etaCov->SetYTitle("#eta coverage");
    etaCov->SetMarkerColor(kBlue+1);
    etaCov->SetFillColor(kBlue+1);
    etaCov->SetFillStyle(3005);
    etaCov->SetDirectory(0);
    
    phiAcc->SetTitle("Normalization to #phi acceptance");
    phiAcc->SetYTitle("#phi acceptance");
    phiAcc->SetMarkerColor(kGreen+1);
    phiAcc->SetFillColor(kGreen+1);
    phiAcc->SetFillStyle(3004);
    // phiAcc->Scale(1. / nAcc);
    phiAcc->SetDirectory(0);

    // Double_t s = (etaCov->GetMaximum() > 0 ? 1. / etaCov->GetMaximum() : 1);
    for (Int_t i = 1; i <= sumEta->GetNbinsX(); i++) { 
      for (Int_t j = 1; j <= nY; j++) { 
	Double_t c = sumEta->GetBinContent(i, j);
	Double_t e = sumEta->GetBinError(i, j);
	Double_t a = etaCov->GetBinContent(i);
	Double_t p = phiAcc->GetBinContent(i);
	// Double_t t = p; // * a
	sumEta->SetBinContent(i, j, a <= 0 ? 0 : c / a);
	sumEta->SetBinError(  i, j, a <= 0 ? 0 : e / a);
	sumPhi->SetBinContent(i, j, p <= 0 ? 0 : c / p);
	sumPhi->SetBinError(  i, j, p <= 0 ? 0 : e / p);
      }
    }
    // etaCov->Scale(s);
    // phiAcc->Scale(s);

    TH1D* resPhi  =static_cast<TH1D*>(sumPhi->ProjectionX("dndeta_phi",
							  1,nY,"e"));
    resPhi->SetMarkerStyle(style);
    resPhi->SetDirectory(0);
    resPhi->Scale(1, "width");

    TH1D* resEta  =static_cast<TH1D*>(sumEta->ProjectionX("dndeta_eta",
							  1,nY,"e"));
    resEta->SetMarkerStyle(style);
    resEta->SetDirectory(0);
    resEta->Scale(1, "width");

    thisList->Add(resEta);
    thisList->Add(etaCov);
    thisList->Add(resPhi);
    thisList->Add(phiAcc);
    dndetaRings->Add(resPhi);

    AliInfoF("%s\n"
	     "\tNormalization eta:  %d\n"
	     "\tNormalization phi:  %d\n",
	     *ptr, 
	     Int_t(etaCov->GetMaximum()), Int_t(phiAcc->GetMaximum()));

    ptr++;
  }
  out->Add(dndetaRings);
}
#define PFB(N,FLAG)				\
  do {									\
    AliForwardUtil::PrintName(N);					\
    std::cout << std::boolalpha << (FLAG) << std::noboolalpha << std::endl; \
  } while(false)
#define PFV(N,VALUE)					\
  do {							\
    AliForwardUtil::PrintName(N);			\
    std::cout << (VALUE) << std::endl; } while(false)
//____________________________________________________________________
void
AliForwardMultiplicityBase::Print(Option_t* option) const
{
  // 
  // Print information 
  // 
  // Parameters:
  //    option Not used
  //
  AliBaseESDTask::Print(option);
  gROOT->IncreaseDirLevel();
  PFB("Enable low flux code", fEnableLowFlux);
  PFB("Store per-ring hists", fStorePerRing);
  PFB("Make timing histogram", fDoTiming);
  PFV("Trigger mask for adding", AliAODForwardMult::GetTriggerString(fAddMask));
  // gROOT->IncreaseDirLevel();
  GetESDFixer()         .Print(option);        
  GetSharingFilter()    .Print(option);
  GetDensityCalculator().Print(option);
  GetCorrections()      .Print(option);
  GetHistCollector()    .Print(option);
  GetEventPlaneFinder() .Print(option);
  // gROOT->DecreaseDirLevel();
  gROOT->DecreaseDirLevel();
}


//
// EOF
//
 AliForwardMultiplicityBase.cxx:1
 AliForwardMultiplicityBase.cxx:2
 AliForwardMultiplicityBase.cxx:3
 AliForwardMultiplicityBase.cxx:4
 AliForwardMultiplicityBase.cxx:5
 AliForwardMultiplicityBase.cxx:6
 AliForwardMultiplicityBase.cxx:7
 AliForwardMultiplicityBase.cxx:8
 AliForwardMultiplicityBase.cxx:9
 AliForwardMultiplicityBase.cxx:10
 AliForwardMultiplicityBase.cxx:11
 AliForwardMultiplicityBase.cxx:12
 AliForwardMultiplicityBase.cxx:13
 AliForwardMultiplicityBase.cxx:14
 AliForwardMultiplicityBase.cxx:15
 AliForwardMultiplicityBase.cxx:16
 AliForwardMultiplicityBase.cxx:17
 AliForwardMultiplicityBase.cxx:18
 AliForwardMultiplicityBase.cxx:19
 AliForwardMultiplicityBase.cxx:20
 AliForwardMultiplicityBase.cxx:21
 AliForwardMultiplicityBase.cxx:22
 AliForwardMultiplicityBase.cxx:23
 AliForwardMultiplicityBase.cxx:24
 AliForwardMultiplicityBase.cxx:25
 AliForwardMultiplicityBase.cxx:26
 AliForwardMultiplicityBase.cxx:27
 AliForwardMultiplicityBase.cxx:28
 AliForwardMultiplicityBase.cxx:29
 AliForwardMultiplicityBase.cxx:30
 AliForwardMultiplicityBase.cxx:31
 AliForwardMultiplicityBase.cxx:32
 AliForwardMultiplicityBase.cxx:33
 AliForwardMultiplicityBase.cxx:34
 AliForwardMultiplicityBase.cxx:35
 AliForwardMultiplicityBase.cxx:36
 AliForwardMultiplicityBase.cxx:37
 AliForwardMultiplicityBase.cxx:38
 AliForwardMultiplicityBase.cxx:39
 AliForwardMultiplicityBase.cxx:40
 AliForwardMultiplicityBase.cxx:41
 AliForwardMultiplicityBase.cxx:42
 AliForwardMultiplicityBase.cxx:43
 AliForwardMultiplicityBase.cxx:44
 AliForwardMultiplicityBase.cxx:45
 AliForwardMultiplicityBase.cxx:46
 AliForwardMultiplicityBase.cxx:47
 AliForwardMultiplicityBase.cxx:48
 AliForwardMultiplicityBase.cxx:49
 AliForwardMultiplicityBase.cxx:50
 AliForwardMultiplicityBase.cxx:51
 AliForwardMultiplicityBase.cxx:52
 AliForwardMultiplicityBase.cxx:53
 AliForwardMultiplicityBase.cxx:54
 AliForwardMultiplicityBase.cxx:55
 AliForwardMultiplicityBase.cxx:56
 AliForwardMultiplicityBase.cxx:57
 AliForwardMultiplicityBase.cxx:58
 AliForwardMultiplicityBase.cxx:59
 AliForwardMultiplicityBase.cxx:60
 AliForwardMultiplicityBase.cxx:61
 AliForwardMultiplicityBase.cxx:62
 AliForwardMultiplicityBase.cxx:63
 AliForwardMultiplicityBase.cxx:64
 AliForwardMultiplicityBase.cxx:65
 AliForwardMultiplicityBase.cxx:66
 AliForwardMultiplicityBase.cxx:67
 AliForwardMultiplicityBase.cxx:68
 AliForwardMultiplicityBase.cxx:69
 AliForwardMultiplicityBase.cxx:70
 AliForwardMultiplicityBase.cxx:71
 AliForwardMultiplicityBase.cxx:72
 AliForwardMultiplicityBase.cxx:73
 AliForwardMultiplicityBase.cxx:74
 AliForwardMultiplicityBase.cxx:75
 AliForwardMultiplicityBase.cxx:76
 AliForwardMultiplicityBase.cxx:77
 AliForwardMultiplicityBase.cxx:78
 AliForwardMultiplicityBase.cxx:79
 AliForwardMultiplicityBase.cxx:80
 AliForwardMultiplicityBase.cxx:81
 AliForwardMultiplicityBase.cxx:82
 AliForwardMultiplicityBase.cxx:83
 AliForwardMultiplicityBase.cxx:84
 AliForwardMultiplicityBase.cxx:85
 AliForwardMultiplicityBase.cxx:86
 AliForwardMultiplicityBase.cxx:87
 AliForwardMultiplicityBase.cxx:88
 AliForwardMultiplicityBase.cxx:89
 AliForwardMultiplicityBase.cxx:90
 AliForwardMultiplicityBase.cxx:91
 AliForwardMultiplicityBase.cxx:92
 AliForwardMultiplicityBase.cxx:93
 AliForwardMultiplicityBase.cxx:94
 AliForwardMultiplicityBase.cxx:95
 AliForwardMultiplicityBase.cxx:96
 AliForwardMultiplicityBase.cxx:97
 AliForwardMultiplicityBase.cxx:98
 AliForwardMultiplicityBase.cxx:99
 AliForwardMultiplicityBase.cxx:100
 AliForwardMultiplicityBase.cxx:101
 AliForwardMultiplicityBase.cxx:102
 AliForwardMultiplicityBase.cxx:103
 AliForwardMultiplicityBase.cxx:104
 AliForwardMultiplicityBase.cxx:105
 AliForwardMultiplicityBase.cxx:106
 AliForwardMultiplicityBase.cxx:107
 AliForwardMultiplicityBase.cxx:108
 AliForwardMultiplicityBase.cxx:109
 AliForwardMultiplicityBase.cxx:110
 AliForwardMultiplicityBase.cxx:111
 AliForwardMultiplicityBase.cxx:112
 AliForwardMultiplicityBase.cxx:113
 AliForwardMultiplicityBase.cxx:114
 AliForwardMultiplicityBase.cxx:115
 AliForwardMultiplicityBase.cxx:116
 AliForwardMultiplicityBase.cxx:117
 AliForwardMultiplicityBase.cxx:118
 AliForwardMultiplicityBase.cxx:119
 AliForwardMultiplicityBase.cxx:120
 AliForwardMultiplicityBase.cxx:121
 AliForwardMultiplicityBase.cxx:122
 AliForwardMultiplicityBase.cxx:123
 AliForwardMultiplicityBase.cxx:124
 AliForwardMultiplicityBase.cxx:125
 AliForwardMultiplicityBase.cxx:126
 AliForwardMultiplicityBase.cxx:127
 AliForwardMultiplicityBase.cxx:128
 AliForwardMultiplicityBase.cxx:129
 AliForwardMultiplicityBase.cxx:130
 AliForwardMultiplicityBase.cxx:131
 AliForwardMultiplicityBase.cxx:132
 AliForwardMultiplicityBase.cxx:133
 AliForwardMultiplicityBase.cxx:134
 AliForwardMultiplicityBase.cxx:135
 AliForwardMultiplicityBase.cxx:136
 AliForwardMultiplicityBase.cxx:137
 AliForwardMultiplicityBase.cxx:138
 AliForwardMultiplicityBase.cxx:139
 AliForwardMultiplicityBase.cxx:140
 AliForwardMultiplicityBase.cxx:141
 AliForwardMultiplicityBase.cxx:142
 AliForwardMultiplicityBase.cxx:143
 AliForwardMultiplicityBase.cxx:144
 AliForwardMultiplicityBase.cxx:145
 AliForwardMultiplicityBase.cxx:146
 AliForwardMultiplicityBase.cxx:147
 AliForwardMultiplicityBase.cxx:148
 AliForwardMultiplicityBase.cxx:149
 AliForwardMultiplicityBase.cxx:150
 AliForwardMultiplicityBase.cxx:151
 AliForwardMultiplicityBase.cxx:152
 AliForwardMultiplicityBase.cxx:153
 AliForwardMultiplicityBase.cxx:154
 AliForwardMultiplicityBase.cxx:155
 AliForwardMultiplicityBase.cxx:156
 AliForwardMultiplicityBase.cxx:157
 AliForwardMultiplicityBase.cxx:158
 AliForwardMultiplicityBase.cxx:159
 AliForwardMultiplicityBase.cxx:160
 AliForwardMultiplicityBase.cxx:161
 AliForwardMultiplicityBase.cxx:162
 AliForwardMultiplicityBase.cxx:163
 AliForwardMultiplicityBase.cxx:164
 AliForwardMultiplicityBase.cxx:165
 AliForwardMultiplicityBase.cxx:166
 AliForwardMultiplicityBase.cxx:167
 AliForwardMultiplicityBase.cxx:168
 AliForwardMultiplicityBase.cxx:169
 AliForwardMultiplicityBase.cxx:170
 AliForwardMultiplicityBase.cxx:171
 AliForwardMultiplicityBase.cxx:172
 AliForwardMultiplicityBase.cxx:173
 AliForwardMultiplicityBase.cxx:174
 AliForwardMultiplicityBase.cxx:175
 AliForwardMultiplicityBase.cxx:176
 AliForwardMultiplicityBase.cxx:177
 AliForwardMultiplicityBase.cxx:178
 AliForwardMultiplicityBase.cxx:179
 AliForwardMultiplicityBase.cxx:180
 AliForwardMultiplicityBase.cxx:181
 AliForwardMultiplicityBase.cxx:182
 AliForwardMultiplicityBase.cxx:183
 AliForwardMultiplicityBase.cxx:184
 AliForwardMultiplicityBase.cxx:185
 AliForwardMultiplicityBase.cxx:186
 AliForwardMultiplicityBase.cxx:187
 AliForwardMultiplicityBase.cxx:188
 AliForwardMultiplicityBase.cxx:189
 AliForwardMultiplicityBase.cxx:190
 AliForwardMultiplicityBase.cxx:191
 AliForwardMultiplicityBase.cxx:192
 AliForwardMultiplicityBase.cxx:193
 AliForwardMultiplicityBase.cxx:194
 AliForwardMultiplicityBase.cxx:195
 AliForwardMultiplicityBase.cxx:196
 AliForwardMultiplicityBase.cxx:197
 AliForwardMultiplicityBase.cxx:198
 AliForwardMultiplicityBase.cxx:199
 AliForwardMultiplicityBase.cxx:200
 AliForwardMultiplicityBase.cxx:201
 AliForwardMultiplicityBase.cxx:202
 AliForwardMultiplicityBase.cxx:203
 AliForwardMultiplicityBase.cxx:204
 AliForwardMultiplicityBase.cxx:205
 AliForwardMultiplicityBase.cxx:206
 AliForwardMultiplicityBase.cxx:207
 AliForwardMultiplicityBase.cxx:208
 AliForwardMultiplicityBase.cxx:209
 AliForwardMultiplicityBase.cxx:210
 AliForwardMultiplicityBase.cxx:211
 AliForwardMultiplicityBase.cxx:212
 AliForwardMultiplicityBase.cxx:213
 AliForwardMultiplicityBase.cxx:214
 AliForwardMultiplicityBase.cxx:215
 AliForwardMultiplicityBase.cxx:216
 AliForwardMultiplicityBase.cxx:217
 AliForwardMultiplicityBase.cxx:218
 AliForwardMultiplicityBase.cxx:219
 AliForwardMultiplicityBase.cxx:220
 AliForwardMultiplicityBase.cxx:221
 AliForwardMultiplicityBase.cxx:222
 AliForwardMultiplicityBase.cxx:223
 AliForwardMultiplicityBase.cxx:224
 AliForwardMultiplicityBase.cxx:225
 AliForwardMultiplicityBase.cxx:226
 AliForwardMultiplicityBase.cxx:227
 AliForwardMultiplicityBase.cxx:228
 AliForwardMultiplicityBase.cxx:229
 AliForwardMultiplicityBase.cxx:230
 AliForwardMultiplicityBase.cxx:231
 AliForwardMultiplicityBase.cxx:232
 AliForwardMultiplicityBase.cxx:233
 AliForwardMultiplicityBase.cxx:234
 AliForwardMultiplicityBase.cxx:235
 AliForwardMultiplicityBase.cxx:236
 AliForwardMultiplicityBase.cxx:237
 AliForwardMultiplicityBase.cxx:238
 AliForwardMultiplicityBase.cxx:239
 AliForwardMultiplicityBase.cxx:240
 AliForwardMultiplicityBase.cxx:241
 AliForwardMultiplicityBase.cxx:242
 AliForwardMultiplicityBase.cxx:243
 AliForwardMultiplicityBase.cxx:244
 AliForwardMultiplicityBase.cxx:245
 AliForwardMultiplicityBase.cxx:246
 AliForwardMultiplicityBase.cxx:247
 AliForwardMultiplicityBase.cxx:248
 AliForwardMultiplicityBase.cxx:249
 AliForwardMultiplicityBase.cxx:250
 AliForwardMultiplicityBase.cxx:251
 AliForwardMultiplicityBase.cxx:252
 AliForwardMultiplicityBase.cxx:253
 AliForwardMultiplicityBase.cxx:254
 AliForwardMultiplicityBase.cxx:255
 AliForwardMultiplicityBase.cxx:256
 AliForwardMultiplicityBase.cxx:257
 AliForwardMultiplicityBase.cxx:258
 AliForwardMultiplicityBase.cxx:259
 AliForwardMultiplicityBase.cxx:260
 AliForwardMultiplicityBase.cxx:261
 AliForwardMultiplicityBase.cxx:262
 AliForwardMultiplicityBase.cxx:263
 AliForwardMultiplicityBase.cxx:264
 AliForwardMultiplicityBase.cxx:265
 AliForwardMultiplicityBase.cxx:266
 AliForwardMultiplicityBase.cxx:267
 AliForwardMultiplicityBase.cxx:268
 AliForwardMultiplicityBase.cxx:269
 AliForwardMultiplicityBase.cxx:270
 AliForwardMultiplicityBase.cxx:271
 AliForwardMultiplicityBase.cxx:272
 AliForwardMultiplicityBase.cxx:273
 AliForwardMultiplicityBase.cxx:274
 AliForwardMultiplicityBase.cxx:275
 AliForwardMultiplicityBase.cxx:276
 AliForwardMultiplicityBase.cxx:277
 AliForwardMultiplicityBase.cxx:278
 AliForwardMultiplicityBase.cxx:279
 AliForwardMultiplicityBase.cxx:280
 AliForwardMultiplicityBase.cxx:281
 AliForwardMultiplicityBase.cxx:282
 AliForwardMultiplicityBase.cxx:283
 AliForwardMultiplicityBase.cxx:284
 AliForwardMultiplicityBase.cxx:285
 AliForwardMultiplicityBase.cxx:286
 AliForwardMultiplicityBase.cxx:287
 AliForwardMultiplicityBase.cxx:288
 AliForwardMultiplicityBase.cxx:289
 AliForwardMultiplicityBase.cxx:290
 AliForwardMultiplicityBase.cxx:291
 AliForwardMultiplicityBase.cxx:292
 AliForwardMultiplicityBase.cxx:293
 AliForwardMultiplicityBase.cxx:294
 AliForwardMultiplicityBase.cxx:295
 AliForwardMultiplicityBase.cxx:296
 AliForwardMultiplicityBase.cxx:297
 AliForwardMultiplicityBase.cxx:298
 AliForwardMultiplicityBase.cxx:299
 AliForwardMultiplicityBase.cxx:300
 AliForwardMultiplicityBase.cxx:301
 AliForwardMultiplicityBase.cxx:302
 AliForwardMultiplicityBase.cxx:303
 AliForwardMultiplicityBase.cxx:304
 AliForwardMultiplicityBase.cxx:305
 AliForwardMultiplicityBase.cxx:306
 AliForwardMultiplicityBase.cxx:307
 AliForwardMultiplicityBase.cxx:308
 AliForwardMultiplicityBase.cxx:309
 AliForwardMultiplicityBase.cxx:310
 AliForwardMultiplicityBase.cxx:311
 AliForwardMultiplicityBase.cxx:312
 AliForwardMultiplicityBase.cxx:313
 AliForwardMultiplicityBase.cxx:314
 AliForwardMultiplicityBase.cxx:315
 AliForwardMultiplicityBase.cxx:316
 AliForwardMultiplicityBase.cxx:317
 AliForwardMultiplicityBase.cxx:318
 AliForwardMultiplicityBase.cxx:319
 AliForwardMultiplicityBase.cxx:320
 AliForwardMultiplicityBase.cxx:321
 AliForwardMultiplicityBase.cxx:322
 AliForwardMultiplicityBase.cxx:323
 AliForwardMultiplicityBase.cxx:324
 AliForwardMultiplicityBase.cxx:325
 AliForwardMultiplicityBase.cxx:326
 AliForwardMultiplicityBase.cxx:327
 AliForwardMultiplicityBase.cxx:328
 AliForwardMultiplicityBase.cxx:329
 AliForwardMultiplicityBase.cxx:330
 AliForwardMultiplicityBase.cxx:331
 AliForwardMultiplicityBase.cxx:332
 AliForwardMultiplicityBase.cxx:333
 AliForwardMultiplicityBase.cxx:334
 AliForwardMultiplicityBase.cxx:335
 AliForwardMultiplicityBase.cxx:336
 AliForwardMultiplicityBase.cxx:337
 AliForwardMultiplicityBase.cxx:338
 AliForwardMultiplicityBase.cxx:339
 AliForwardMultiplicityBase.cxx:340
 AliForwardMultiplicityBase.cxx:341
 AliForwardMultiplicityBase.cxx:342
 AliForwardMultiplicityBase.cxx:343
 AliForwardMultiplicityBase.cxx:344
 AliForwardMultiplicityBase.cxx:345
 AliForwardMultiplicityBase.cxx:346
 AliForwardMultiplicityBase.cxx:347
 AliForwardMultiplicityBase.cxx:348
 AliForwardMultiplicityBase.cxx:349
 AliForwardMultiplicityBase.cxx:350
 AliForwardMultiplicityBase.cxx:351
 AliForwardMultiplicityBase.cxx:352
 AliForwardMultiplicityBase.cxx:353
 AliForwardMultiplicityBase.cxx:354
 AliForwardMultiplicityBase.cxx:355
 AliForwardMultiplicityBase.cxx:356
 AliForwardMultiplicityBase.cxx:357
 AliForwardMultiplicityBase.cxx:358
 AliForwardMultiplicityBase.cxx:359
 AliForwardMultiplicityBase.cxx:360
 AliForwardMultiplicityBase.cxx:361
 AliForwardMultiplicityBase.cxx:362
 AliForwardMultiplicityBase.cxx:363
 AliForwardMultiplicityBase.cxx:364
 AliForwardMultiplicityBase.cxx:365
 AliForwardMultiplicityBase.cxx:366
 AliForwardMultiplicityBase.cxx:367
 AliForwardMultiplicityBase.cxx:368
 AliForwardMultiplicityBase.cxx:369
 AliForwardMultiplicityBase.cxx:370
 AliForwardMultiplicityBase.cxx:371
 AliForwardMultiplicityBase.cxx:372
 AliForwardMultiplicityBase.cxx:373
 AliForwardMultiplicityBase.cxx:374
 AliForwardMultiplicityBase.cxx:375
 AliForwardMultiplicityBase.cxx:376
 AliForwardMultiplicityBase.cxx:377
 AliForwardMultiplicityBase.cxx:378
 AliForwardMultiplicityBase.cxx:379
 AliForwardMultiplicityBase.cxx:380
 AliForwardMultiplicityBase.cxx:381
 AliForwardMultiplicityBase.cxx:382
 AliForwardMultiplicityBase.cxx:383
 AliForwardMultiplicityBase.cxx:384
 AliForwardMultiplicityBase.cxx:385
 AliForwardMultiplicityBase.cxx:386
 AliForwardMultiplicityBase.cxx:387
 AliForwardMultiplicityBase.cxx:388
 AliForwardMultiplicityBase.cxx:389
 AliForwardMultiplicityBase.cxx:390
 AliForwardMultiplicityBase.cxx:391
 AliForwardMultiplicityBase.cxx:392
 AliForwardMultiplicityBase.cxx:393
 AliForwardMultiplicityBase.cxx:394
 AliForwardMultiplicityBase.cxx:395
 AliForwardMultiplicityBase.cxx:396
 AliForwardMultiplicityBase.cxx:397
 AliForwardMultiplicityBase.cxx:398
 AliForwardMultiplicityBase.cxx:399
 AliForwardMultiplicityBase.cxx:400
 AliForwardMultiplicityBase.cxx:401
 AliForwardMultiplicityBase.cxx:402
 AliForwardMultiplicityBase.cxx:403
 AliForwardMultiplicityBase.cxx:404
 AliForwardMultiplicityBase.cxx:405
 AliForwardMultiplicityBase.cxx:406
 AliForwardMultiplicityBase.cxx:407
 AliForwardMultiplicityBase.cxx:408
 AliForwardMultiplicityBase.cxx:409
 AliForwardMultiplicityBase.cxx:410
 AliForwardMultiplicityBase.cxx:411
 AliForwardMultiplicityBase.cxx:412
 AliForwardMultiplicityBase.cxx:413
 AliForwardMultiplicityBase.cxx:414
 AliForwardMultiplicityBase.cxx:415
 AliForwardMultiplicityBase.cxx:416
 AliForwardMultiplicityBase.cxx:417
 AliForwardMultiplicityBase.cxx:418
 AliForwardMultiplicityBase.cxx:419
 AliForwardMultiplicityBase.cxx:420
 AliForwardMultiplicityBase.cxx:421
 AliForwardMultiplicityBase.cxx:422
 AliForwardMultiplicityBase.cxx:423
 AliForwardMultiplicityBase.cxx:424
 AliForwardMultiplicityBase.cxx:425
 AliForwardMultiplicityBase.cxx:426
 AliForwardMultiplicityBase.cxx:427
 AliForwardMultiplicityBase.cxx:428
 AliForwardMultiplicityBase.cxx:429
 AliForwardMultiplicityBase.cxx:430
 AliForwardMultiplicityBase.cxx:431
 AliForwardMultiplicityBase.cxx:432
 AliForwardMultiplicityBase.cxx:433
 AliForwardMultiplicityBase.cxx:434
 AliForwardMultiplicityBase.cxx:435
 AliForwardMultiplicityBase.cxx:436
 AliForwardMultiplicityBase.cxx:437
 AliForwardMultiplicityBase.cxx:438
 AliForwardMultiplicityBase.cxx:439
 AliForwardMultiplicityBase.cxx:440
 AliForwardMultiplicityBase.cxx:441
 AliForwardMultiplicityBase.cxx:442
 AliForwardMultiplicityBase.cxx:443
 AliForwardMultiplicityBase.cxx:444
 AliForwardMultiplicityBase.cxx:445
 AliForwardMultiplicityBase.cxx:446
 AliForwardMultiplicityBase.cxx:447
 AliForwardMultiplicityBase.cxx:448
 AliForwardMultiplicityBase.cxx:449
 AliForwardMultiplicityBase.cxx:450
 AliForwardMultiplicityBase.cxx:451
 AliForwardMultiplicityBase.cxx:452
 AliForwardMultiplicityBase.cxx:453
 AliForwardMultiplicityBase.cxx:454
 AliForwardMultiplicityBase.cxx:455
 AliForwardMultiplicityBase.cxx:456
 AliForwardMultiplicityBase.cxx:457
 AliForwardMultiplicityBase.cxx:458
 AliForwardMultiplicityBase.cxx:459
 AliForwardMultiplicityBase.cxx:460
 AliForwardMultiplicityBase.cxx:461
 AliForwardMultiplicityBase.cxx:462
 AliForwardMultiplicityBase.cxx:463
 AliForwardMultiplicityBase.cxx:464
 AliForwardMultiplicityBase.cxx:465
 AliForwardMultiplicityBase.cxx:466
 AliForwardMultiplicityBase.cxx:467
 AliForwardMultiplicityBase.cxx:468
 AliForwardMultiplicityBase.cxx:469
 AliForwardMultiplicityBase.cxx:470
 AliForwardMultiplicityBase.cxx:471
 AliForwardMultiplicityBase.cxx:472
 AliForwardMultiplicityBase.cxx:473
 AliForwardMultiplicityBase.cxx:474
 AliForwardMultiplicityBase.cxx:475
 AliForwardMultiplicityBase.cxx:476
 AliForwardMultiplicityBase.cxx:477
 AliForwardMultiplicityBase.cxx:478
 AliForwardMultiplicityBase.cxx:479
 AliForwardMultiplicityBase.cxx:480
 AliForwardMultiplicityBase.cxx:481
 AliForwardMultiplicityBase.cxx:482
 AliForwardMultiplicityBase.cxx:483
 AliForwardMultiplicityBase.cxx:484
 AliForwardMultiplicityBase.cxx:485
 AliForwardMultiplicityBase.cxx:486
 AliForwardMultiplicityBase.cxx:487
 AliForwardMultiplicityBase.cxx:488
 AliForwardMultiplicityBase.cxx:489
 AliForwardMultiplicityBase.cxx:490
 AliForwardMultiplicityBase.cxx:491
 AliForwardMultiplicityBase.cxx:492
 AliForwardMultiplicityBase.cxx:493
 AliForwardMultiplicityBase.cxx:494
 AliForwardMultiplicityBase.cxx:495
 AliForwardMultiplicityBase.cxx:496
 AliForwardMultiplicityBase.cxx:497
 AliForwardMultiplicityBase.cxx:498
 AliForwardMultiplicityBase.cxx:499
 AliForwardMultiplicityBase.cxx:500
 AliForwardMultiplicityBase.cxx:501
 AliForwardMultiplicityBase.cxx:502
 AliForwardMultiplicityBase.cxx:503
 AliForwardMultiplicityBase.cxx:504
 AliForwardMultiplicityBase.cxx:505
 AliForwardMultiplicityBase.cxx:506
 AliForwardMultiplicityBase.cxx:507
 AliForwardMultiplicityBase.cxx:508
 AliForwardMultiplicityBase.cxx:509
 AliForwardMultiplicityBase.cxx:510
 AliForwardMultiplicityBase.cxx:511
 AliForwardMultiplicityBase.cxx:512
 AliForwardMultiplicityBase.cxx:513
 AliForwardMultiplicityBase.cxx:514
 AliForwardMultiplicityBase.cxx:515
 AliForwardMultiplicityBase.cxx:516
 AliForwardMultiplicityBase.cxx:517
 AliForwardMultiplicityBase.cxx:518
 AliForwardMultiplicityBase.cxx:519
 AliForwardMultiplicityBase.cxx:520
 AliForwardMultiplicityBase.cxx:521
 AliForwardMultiplicityBase.cxx:522
 AliForwardMultiplicityBase.cxx:523
 AliForwardMultiplicityBase.cxx:524
 AliForwardMultiplicityBase.cxx:525
 AliForwardMultiplicityBase.cxx:526
 AliForwardMultiplicityBase.cxx:527
 AliForwardMultiplicityBase.cxx:528
 AliForwardMultiplicityBase.cxx:529
 AliForwardMultiplicityBase.cxx:530
 AliForwardMultiplicityBase.cxx:531
 AliForwardMultiplicityBase.cxx:532
 AliForwardMultiplicityBase.cxx:533
 AliForwardMultiplicityBase.cxx:534
 AliForwardMultiplicityBase.cxx:535
 AliForwardMultiplicityBase.cxx:536
 AliForwardMultiplicityBase.cxx:537
 AliForwardMultiplicityBase.cxx:538
 AliForwardMultiplicityBase.cxx:539
 AliForwardMultiplicityBase.cxx:540
 AliForwardMultiplicityBase.cxx:541
 AliForwardMultiplicityBase.cxx:542
 AliForwardMultiplicityBase.cxx:543
 AliForwardMultiplicityBase.cxx:544
 AliForwardMultiplicityBase.cxx:545
 AliForwardMultiplicityBase.cxx:546
 AliForwardMultiplicityBase.cxx:547
 AliForwardMultiplicityBase.cxx:548
 AliForwardMultiplicityBase.cxx:549
 AliForwardMultiplicityBase.cxx:550
 AliForwardMultiplicityBase.cxx:551
 AliForwardMultiplicityBase.cxx:552
 AliForwardMultiplicityBase.cxx:553
 AliForwardMultiplicityBase.cxx:554
 AliForwardMultiplicityBase.cxx:555
 AliForwardMultiplicityBase.cxx:556
 AliForwardMultiplicityBase.cxx:557
 AliForwardMultiplicityBase.cxx:558
 AliForwardMultiplicityBase.cxx:559
 AliForwardMultiplicityBase.cxx:560
 AliForwardMultiplicityBase.cxx:561
 AliForwardMultiplicityBase.cxx:562
 AliForwardMultiplicityBase.cxx:563
 AliForwardMultiplicityBase.cxx:564
 AliForwardMultiplicityBase.cxx:565
 AliForwardMultiplicityBase.cxx:566
 AliForwardMultiplicityBase.cxx:567
 AliForwardMultiplicityBase.cxx:568
 AliForwardMultiplicityBase.cxx:569
 AliForwardMultiplicityBase.cxx:570
 AliForwardMultiplicityBase.cxx:571
 AliForwardMultiplicityBase.cxx:572
 AliForwardMultiplicityBase.cxx:573
 AliForwardMultiplicityBase.cxx:574
 AliForwardMultiplicityBase.cxx:575
 AliForwardMultiplicityBase.cxx:576
 AliForwardMultiplicityBase.cxx:577
 AliForwardMultiplicityBase.cxx:578
 AliForwardMultiplicityBase.cxx:579
 AliForwardMultiplicityBase.cxx:580
 AliForwardMultiplicityBase.cxx:581
 AliForwardMultiplicityBase.cxx:582
 AliForwardMultiplicityBase.cxx:583
 AliForwardMultiplicityBase.cxx:584
 AliForwardMultiplicityBase.cxx:585
 AliForwardMultiplicityBase.cxx:586
 AliForwardMultiplicityBase.cxx:587
 AliForwardMultiplicityBase.cxx:588
 AliForwardMultiplicityBase.cxx:589
 AliForwardMultiplicityBase.cxx:590
 AliForwardMultiplicityBase.cxx:591
 AliForwardMultiplicityBase.cxx:592
 AliForwardMultiplicityBase.cxx:593
 AliForwardMultiplicityBase.cxx:594
 AliForwardMultiplicityBase.cxx:595
 AliForwardMultiplicityBase.cxx:596
 AliForwardMultiplicityBase.cxx:597
 AliForwardMultiplicityBase.cxx:598
 AliForwardMultiplicityBase.cxx:599
 AliForwardMultiplicityBase.cxx:600
 AliForwardMultiplicityBase.cxx:601
 AliForwardMultiplicityBase.cxx:602
 AliForwardMultiplicityBase.cxx:603
 AliForwardMultiplicityBase.cxx:604
 AliForwardMultiplicityBase.cxx:605
 AliForwardMultiplicityBase.cxx:606
 AliForwardMultiplicityBase.cxx:607
 AliForwardMultiplicityBase.cxx:608
 AliForwardMultiplicityBase.cxx:609
 AliForwardMultiplicityBase.cxx:610
 AliForwardMultiplicityBase.cxx:611
 AliForwardMultiplicityBase.cxx:612
 AliForwardMultiplicityBase.cxx:613
 AliForwardMultiplicityBase.cxx:614
 AliForwardMultiplicityBase.cxx:615
 AliForwardMultiplicityBase.cxx:616
 AliForwardMultiplicityBase.cxx:617
 AliForwardMultiplicityBase.cxx:618
 AliForwardMultiplicityBase.cxx:619
 AliForwardMultiplicityBase.cxx:620