ROOT logo
// 
// Calculate the multiplicity in the forward regions event-by-event 
// 
// Inputs: 
//   - AliESDEvent 
//   - Kinematics
//   - Track references
//
// Outputs: 
//   - AliAODForwardMult 
// 
// Histograms 
//   
// Corrections used 
// 
#include "AliForwardMCMultiplicityTask.h"
#include "AliTriggerAnalysis.h"
#include "AliPhysicsSelection.h"
#include "AliLog.h"
#include "AliESDEvent.h"
#include "AliAODHandler.h"
#include "AliMultiplicity.h"
#include "AliInputEventHandler.h"
#include "AliForwardCorrectionManager.h"
#include "AliAnalysisManager.h"
#include <TH1.h>
#include <TDirectory.h>
#include <TTree.h>
#include <TROOT.h>
#define MCAOD_SLOT 4
#define PRIMARY_SLOT 5
#ifdef POST_AOD
# define DEFINE(N,C) DefineOutput(N,C)
# define POST(N,O)   PostData(N,O)
#else
# define DEFINE(N,C) do { } while(false)
# define POST(N,O)   do { } while(false)
#endif
#ifndef ENABLE_TIMING
# define MAKE_SW(NAME) do {} while(false)
# define START_SW(NAME) do {} while(false)
# define FILL_SW(NAME,WHICH) do {} while(false)
#else
# define MAKE_SW(NAME) TStopwatch NAME
# define START_SW(NAME) if (fDoTiming) NAME.Start(true)
# define FILL_SW(NAME,WHICH)				\
  if (fDoTiming) fHTiming->Fill(WHICH,NAME.CpuTime())
#endif

//====================================================================
AliForwardMCMultiplicityTask::AliForwardMCMultiplicityTask()
  : AliForwardMultiplicityBase(),
    fESDFMD(),
    fMCESDFMD(),
    fMCHistos(),
    fMCAODFMD(),
    fMCRingSums(),
    fPrimary(0),
    fEventInspector(),
    fESDFixer(),
    fSharingFilter(),
    fDensityCalculator(),
    fCorrections(),
    fHistCollector(),
    fEventPlaneFinder()
{
  // 
  // Constructor
  //
}

//____________________________________________________________________
AliForwardMCMultiplicityTask::AliForwardMCMultiplicityTask(const char* name)
  : AliForwardMultiplicityBase(name), 
    fESDFMD(),
    fMCESDFMD(),
    fMCHistos(),
    fMCAODFMD(kTRUE),
    fMCRingSums(),
    fPrimary(0),
    fEventInspector("event"),
    fESDFixer("esdFizer"),
    fSharingFilter("sharing"), 
    fDensityCalculator("density"),
    fCorrections("corrections"),
    fHistCollector("collector"),
    fEventPlaneFinder("eventplane")
{
  // 
  // Constructor 
  // 
  // Parameters:
  //    name Name of task 
  //
  fPrimary = new TH2D("primary", "MC Primaries", 1,0,1,20,0,TMath::TwoPi());
  fPrimary->SetXTitle("#eta");
  fPrimary->SetYTitle("#varphi [radians]");
  fPrimary->SetZTitle("d^{2}N_{ch}/d#etad#phi");
  fPrimary->Sumw2();
  fPrimary->SetStats(0);
  fPrimary->SetDirectory(0);
  DEFINE(MCAOD_SLOT,AliAODForwardMult::Class());
  DEFINE(PRIM_SLOT, TH2D::Class());
}

//____________________________________________________________________
void
AliForwardMCMultiplicityTask::SetOnlyPrimary(Bool_t use)
{
  fSharingFilter.GetTrackDensity().SetUseOnlyPrimary(use);
  fCorrections.SetSecondaryForMC(!use);
}

//____________________________________________________________________
void
AliForwardMCMultiplicityTask::CreateBranches(AliAODHandler* ah)
{
  // 
  // Create output objects 
  // 
  //
  AliForwardMultiplicityBase::CreateBranches(ah);

  TObject* mcobj = &fMCAODFMD;
  ah->AddBranch("AliAODForwardMult", &mcobj);    
  ah->AddBranch("TH2D", &fPrimary);
}

//____________________________________________________________________
Bool_t
AliForwardMCMultiplicityTask::Book()
{
  // We do this to explicitly disable the noise corrector for MC
  GetESDFixer().SetRecoNoiseFactor(5);

  Bool_t ret = AliForwardMultiplicityBase::Book();
  POST(MCAOD_SLOT, &fMCAODFMD);
  POST(PRIM_SLOT,  fPrimary);
  return ret;
}

//____________________________________________________________________
void
AliForwardMCMultiplicityTask::InitMembers(const TAxis& eta, const TAxis& vertex)
{
  // 
  // Initialise the sub objects and stuff.  Called on first event 
  // 
  //
  AliForwardMultiplicityBase::InitMembers(eta, vertex);

  fMCHistos.Init(eta);
  fMCAODFMD.Init(eta);
  fMCRingSums.Init(eta);

  AliForwardUtil::Histos::RebinEta(fPrimary, eta);
  DMSG(fDebug,0,"Primary histogram rebinned to %d,%f,%f eta axis %d,%f,%f", 
       fPrimary->GetXaxis()->GetNbins(), 
       fPrimary->GetXaxis()->GetXmin(),
       fPrimary->GetXaxis()->GetXmax(),
       eta.GetNbins(), 
       eta.GetXmin(),
       eta.GetXmax());


  TList* mcRings = new TList;
  mcRings->SetName("mcRingSums");
  mcRings->SetOwner();
  fList->Add(mcRings);

  mcRings->Add(fMCRingSums.Get(1, 'I'));
  mcRings->Add(fMCRingSums.Get(2, 'I'));
  mcRings->Add(fMCRingSums.Get(2, 'O'));
  mcRings->Add(fMCRingSums.Get(3, 'I'));
  mcRings->Add(fMCRingSums.Get(3, 'O'));
  fMCRingSums.Get(1, 'I')->SetMarkerColor(AliForwardUtil::RingColor(1, 'I'));
  fMCRingSums.Get(2, 'I')->SetMarkerColor(AliForwardUtil::RingColor(2, 'I'));
  fMCRingSums.Get(2, 'O')->SetMarkerColor(AliForwardUtil::RingColor(2, 'O'));
  fMCRingSums.Get(3, 'I')->SetMarkerColor(AliForwardUtil::RingColor(3, 'I'));
  fMCRingSums.Get(3, 'O')->SetMarkerColor(AliForwardUtil::RingColor(3, 'O'));
}

//____________________________________________________________________
Bool_t
AliForwardMCMultiplicityTask::PreEvent()
{
 if (fFirstEvent) 
    fEventInspector.ReadProductionDetails(MCEvent());
  // Clear stuff 
  fHistos.Clear();
  fESDFMD.Clear();
  fAODFMD.Clear();
  fAODEP.Clear();
  fMCHistos.Clear();
  fMCESDFMD.Clear();
  fMCAODFMD.Clear();
  fPrimary->Reset();
  return true;
}
//____________________________________________________________________
Bool_t
AliForwardMCMultiplicityTask::Event(AliESDEvent& esd)
{
  // 
  // Process each event 
  // 
  // Parameters:
  //    option Not used
  //  
  MAKE_SW(total);
  MAKE_SW(individual);
  START_SW(total);
  START_SW(individual);

  // Read production details 
    
  // Get the input data 
  AliMCEvent*  mcEvent = MCEvent();
  if (!mcEvent) return false;

  Bool_t   lowFlux   = kFALSE;
  UInt_t   triggers  = 0;
  UShort_t ivz       = 0;
  TVector3 ip(1024, 1024, 0);
  Double_t cent      = -1;
  UShort_t nClusters = 0;
  UInt_t   found     = fEventInspector.Process(&esd, triggers, lowFlux, 
					       ivz, ip, cent, nClusters);
  UShort_t ivzMC    = 0;
  Double_t vzMC     = 0;
  Double_t phiR     = 0;
  Double_t b        = 0;
  Double_t cMC      = 0;
  Int_t    npart    = 0;
  Int_t    nbin     = 0;
  // UInt_t   foundMC  = 
  fEventInspector.ProcessMC(mcEvent, triggers, ivzMC, vzMC, b, cMC,
			    npart, nbin, phiR);
  fEventInspector.CompareResults(ip.Z(), vzMC, cent, cMC, b, npart, nbin);
  FILL_SW(individual,kTimingEventInspector);
  
  //Store all events
  MarkEventForStore();
  
  Bool_t isAccepted = true;
  if (found & AliFMDEventInspector::kNoEvent)    {
    fHStatus->Fill(1);
    isAccepted = false;
    // return;
  }
  if (found & AliFMDEventInspector::kNoTriggers) {
    fHStatus->Fill(2);
    isAccepted = false; 
    // return;
  }
  //MarkEventForStore();
  // Always set the B trigger - each MC event _is_ a collision 
  triggers |= AliAODForwardMult::kB;
  // Set trigger bits, and mark this event for storage 
  fAODFMD.SetTriggerBits(triggers);
  fAODFMD.SetSNN(fEventInspector.GetEnergy());
  fAODFMD.SetSystem(fEventInspector.GetCollisionSystem());
  fAODFMD.SetCentrality(cent);
  fAODFMD.SetNClusters(nClusters);

  fMCAODFMD.SetTriggerBits(triggers);
  fMCAODFMD.SetSNN(fEventInspector.GetEnergy());
  fMCAODFMD.SetSystem(fEventInspector.GetCollisionSystem());
  fMCAODFMD.SetCentrality(cent);
  fMCAODFMD.SetNClusters(nClusters);
  
  // Disable this check on SPD - will bias data 
  // if (found & AliFMDEventInspector::kNoSPD)  isAccepted = false; // return;
  if (found & AliFMDEventInspector::kNoFMD)     {
    fHStatus->Fill(4);
    isAccepted = false; 
    // return;
  }
  if (found & AliFMDEventInspector::kNoVertex)  {
    fHStatus->Fill(5);
    isAccepted = false; 
    // return;
  }

  if (isAccepted) {
    fAODFMD.SetIpZ(ip.Z());
    fMCAODFMD.SetIpZ(ip.Z());
  }
  if (found & AliFMDEventInspector::kBadVertex) isAccepted = false; // return;

  // We we do not want to use low flux specific code, we disable it here. 
  if (!fEnableLowFlux) lowFlux = false;
  
  

  // Get FMD data 
  AliESDFMD*  esdFMD  = esd.GetFMDData();
  
  // Fix up the the ESD 
  GetESDFixer().Fix(*esdFMD, ip.Z());

  // Apply the sharing filter (or hit merging or clustering if you like)
  START_SW(individual);
  if (isAccepted && !fSharingFilter.Filter(*esdFMD, lowFlux, fESDFMD,ip.Z())){
    AliWarning("Sharing filter failed!");
    fHStatus->Fill(8);
    return false;
  }
  if (!fSharingFilter.FilterMC(*esdFMD, *mcEvent, ip.Z(),fMCESDFMD,fPrimary)){
    AliWarning("MC Sharing filter failed!");
    fHStatus->Fill(8);
    return false;
  }

  // Store some MC parameters in corners of histogram :-)
  fPrimary->SetBinContent(0,                      0,                    vzMC);
  fPrimary->SetBinContent(fPrimary->GetNbinsX()+1,0,                    phiR);
  fPrimary->SetBinContent(fPrimary->GetNbinsX()+1,fPrimary->GetNbinsY(),cMC);
  

  if (!isAccepted) {
    // Exit on MC event w/o trigger, vertex, data - since there's no more 
    // to be done for MC 
    FILL_SW(individual,kTimingSharingFilter);
    return false; 
  }
  
  //MarkEventForStore();
  fSharingFilter.CompareResults(fESDFMD, fMCESDFMD);
  FILL_SW(individual,kTimingSharingFilter);


  // Calculate the inclusive charged particle density 
  START_SW(individual);
  if (!fDensityCalculator.Calculate(fESDFMD, fHistos, lowFlux, cent, ip)) { 
    AliWarning("Density calculator failed!");
    fHStatus->Fill(9);
    return false;
  }
  if (!fDensityCalculator.CalculateMC(fMCESDFMD, fMCHistos)) { 
    AliWarning("MC Density calculator failed!");
    fHStatus->Fill(9);
    return false;
  }
  fDensityCalculator.CompareResults(fHistos, fMCHistos);
  FILL_SW(individual,kTimingDensityCalculator);
  
  if (fEventInspector.GetCollisionSystem() == AliFMDEventInspector::kPbPb) {
    START_SW(individual);
    if (!fEventPlaneFinder.FindEventplane(&esd, fAODEP, 
					  &(fAODFMD.GetHistogram()), &fHistos)){
      AliWarning("Eventplane finder failed!");
      fHStatus->Fill(10);
    } 
    FILL_SW(individual,kTimingEventPlaneFinder);   
  }

  // Do the secondary and other corrections. 
  START_SW(individual);
  if (!fCorrections.Correct(fHistos, ivz)) { 
    AliWarning("Corrections failed");
    fHStatus->Fill(12);
    return false;
  }
  if (!fCorrections.CorrectMC(fMCHistos, ivz)) { 
    AliWarning("MC Corrections failed");
    fHStatus->Fill(12);
    return false;
  }
  fCorrections.CompareResults(fHistos, fMCHistos);
  FILL_SW(individual,kTimingCorrections);

  // Collect our 'super' histogram
  Bool_t add = fAODFMD.IsTriggerBits(AliAODForwardMult::kInel);
  START_SW(individual);
  if (!fHistCollector.Collect(fHistos, 
			      fRingSums, 
			      ivz, 
			      fAODFMD.GetHistogram(),
			      fAODFMD.GetCentrality(),
			      false,
			      add)) {
    AliWarning("Histogram collector failed");
    fHStatus->Fill(13);
    return false;
  }
  if (!fHistCollector.Collect(fMCHistos, 
			      fMCRingSums, 
			      ivz, 
			      fMCAODFMD.GetHistogram(), 
			      -1, 
			      true,
			      add)) {
    AliWarning("MC Histogram collector failed");
    fHStatus->Fill(13);
    return false;
  }
  FILL_SW(individual,kTimingHistCollector);
#if 0
  // Copy underflow bins to overflow bins - always full phi coverage 
  TH2&  hMC  = fMCAODFMD.GetHistogram();
  Int_t nEta = hMC.GetNbinsX();
  Int_t nY   = hMC.GetNbinsY();
  for (Int_t iEta = 1; iEta <= nEta; iEta++) {
    hMC.SetBinContent(iEta, nY+1, hMC.GetBinContent(iEta, 0));
  }
#endif

  if (add) {
    fHData->Add(&(fAODFMD.GetHistogram()));
    fHStatus->Fill(15);
  }
  else {
    fHStatus->Fill(14);
  }
  FILL_SW(total,kTimingTotal);

  return true;
}

//____________________________________________________________________
Bool_t
AliForwardMCMultiplicityTask::PostEvent()
{
  Bool_t ret = AliForwardMultiplicityBase::PostEvent();
  POST(MCAOD_SLOT, &fMCAODFMD);
  POST(PRIMARY_SLOT, fPrimary);
  return ret;
}

//____________________________________________________________________
void
AliForwardMCMultiplicityTask::EstimatedNdeta(const TList* input, 
					     TList*       output) const
{
  AliForwardMultiplicityBase::EstimatedNdeta(input, output);
  MakeRingdNdeta(input, "mcRingSums", output, "mcRingResults", 24);
}



//
// EOF
//
 AliForwardMCMultiplicityTask.cxx:1
 AliForwardMCMultiplicityTask.cxx:2
 AliForwardMCMultiplicityTask.cxx:3
 AliForwardMCMultiplicityTask.cxx:4
 AliForwardMCMultiplicityTask.cxx:5
 AliForwardMCMultiplicityTask.cxx:6
 AliForwardMCMultiplicityTask.cxx:7
 AliForwardMCMultiplicityTask.cxx:8
 AliForwardMCMultiplicityTask.cxx:9
 AliForwardMCMultiplicityTask.cxx:10
 AliForwardMCMultiplicityTask.cxx:11
 AliForwardMCMultiplicityTask.cxx:12
 AliForwardMCMultiplicityTask.cxx:13
 AliForwardMCMultiplicityTask.cxx:14
 AliForwardMCMultiplicityTask.cxx:15
 AliForwardMCMultiplicityTask.cxx:16
 AliForwardMCMultiplicityTask.cxx:17
 AliForwardMCMultiplicityTask.cxx:18
 AliForwardMCMultiplicityTask.cxx:19
 AliForwardMCMultiplicityTask.cxx:20
 AliForwardMCMultiplicityTask.cxx:21
 AliForwardMCMultiplicityTask.cxx:22
 AliForwardMCMultiplicityTask.cxx:23
 AliForwardMCMultiplicityTask.cxx:24
 AliForwardMCMultiplicityTask.cxx:25
 AliForwardMCMultiplicityTask.cxx:26
 AliForwardMCMultiplicityTask.cxx:27
 AliForwardMCMultiplicityTask.cxx:28
 AliForwardMCMultiplicityTask.cxx:29
 AliForwardMCMultiplicityTask.cxx:30
 AliForwardMCMultiplicityTask.cxx:31
 AliForwardMCMultiplicityTask.cxx:32
 AliForwardMCMultiplicityTask.cxx:33
 AliForwardMCMultiplicityTask.cxx:34
 AliForwardMCMultiplicityTask.cxx:35
 AliForwardMCMultiplicityTask.cxx:36
 AliForwardMCMultiplicityTask.cxx:37
 AliForwardMCMultiplicityTask.cxx:38
 AliForwardMCMultiplicityTask.cxx:39
 AliForwardMCMultiplicityTask.cxx:40
 AliForwardMCMultiplicityTask.cxx:41
 AliForwardMCMultiplicityTask.cxx:42
 AliForwardMCMultiplicityTask.cxx:43
 AliForwardMCMultiplicityTask.cxx:44
 AliForwardMCMultiplicityTask.cxx:45
 AliForwardMCMultiplicityTask.cxx:46
 AliForwardMCMultiplicityTask.cxx:47
 AliForwardMCMultiplicityTask.cxx:48
 AliForwardMCMultiplicityTask.cxx:49
 AliForwardMCMultiplicityTask.cxx:50
 AliForwardMCMultiplicityTask.cxx:51
 AliForwardMCMultiplicityTask.cxx:52
 AliForwardMCMultiplicityTask.cxx:53
 AliForwardMCMultiplicityTask.cxx:54
 AliForwardMCMultiplicityTask.cxx:55
 AliForwardMCMultiplicityTask.cxx:56
 AliForwardMCMultiplicityTask.cxx:57
 AliForwardMCMultiplicityTask.cxx:58
 AliForwardMCMultiplicityTask.cxx:59
 AliForwardMCMultiplicityTask.cxx:60
 AliForwardMCMultiplicityTask.cxx:61
 AliForwardMCMultiplicityTask.cxx:62
 AliForwardMCMultiplicityTask.cxx:63
 AliForwardMCMultiplicityTask.cxx:64
 AliForwardMCMultiplicityTask.cxx:65
 AliForwardMCMultiplicityTask.cxx:66
 AliForwardMCMultiplicityTask.cxx:67
 AliForwardMCMultiplicityTask.cxx:68
 AliForwardMCMultiplicityTask.cxx:69
 AliForwardMCMultiplicityTask.cxx:70
 AliForwardMCMultiplicityTask.cxx:71
 AliForwardMCMultiplicityTask.cxx:72
 AliForwardMCMultiplicityTask.cxx:73
 AliForwardMCMultiplicityTask.cxx:74
 AliForwardMCMultiplicityTask.cxx:75
 AliForwardMCMultiplicityTask.cxx:76
 AliForwardMCMultiplicityTask.cxx:77
 AliForwardMCMultiplicityTask.cxx:78
 AliForwardMCMultiplicityTask.cxx:79
 AliForwardMCMultiplicityTask.cxx:80
 AliForwardMCMultiplicityTask.cxx:81
 AliForwardMCMultiplicityTask.cxx:82
 AliForwardMCMultiplicityTask.cxx:83
 AliForwardMCMultiplicityTask.cxx:84
 AliForwardMCMultiplicityTask.cxx:85
 AliForwardMCMultiplicityTask.cxx:86
 AliForwardMCMultiplicityTask.cxx:87
 AliForwardMCMultiplicityTask.cxx:88
 AliForwardMCMultiplicityTask.cxx:89
 AliForwardMCMultiplicityTask.cxx:90
 AliForwardMCMultiplicityTask.cxx:91
 AliForwardMCMultiplicityTask.cxx:92
 AliForwardMCMultiplicityTask.cxx:93
 AliForwardMCMultiplicityTask.cxx:94
 AliForwardMCMultiplicityTask.cxx:95
 AliForwardMCMultiplicityTask.cxx:96
 AliForwardMCMultiplicityTask.cxx:97
 AliForwardMCMultiplicityTask.cxx:98
 AliForwardMCMultiplicityTask.cxx:99
 AliForwardMCMultiplicityTask.cxx:100
 AliForwardMCMultiplicityTask.cxx:101
 AliForwardMCMultiplicityTask.cxx:102
 AliForwardMCMultiplicityTask.cxx:103
 AliForwardMCMultiplicityTask.cxx:104
 AliForwardMCMultiplicityTask.cxx:105
 AliForwardMCMultiplicityTask.cxx:106
 AliForwardMCMultiplicityTask.cxx:107
 AliForwardMCMultiplicityTask.cxx:108
 AliForwardMCMultiplicityTask.cxx:109
 AliForwardMCMultiplicityTask.cxx:110
 AliForwardMCMultiplicityTask.cxx:111
 AliForwardMCMultiplicityTask.cxx:112
 AliForwardMCMultiplicityTask.cxx:113
 AliForwardMCMultiplicityTask.cxx:114
 AliForwardMCMultiplicityTask.cxx:115
 AliForwardMCMultiplicityTask.cxx:116
 AliForwardMCMultiplicityTask.cxx:117
 AliForwardMCMultiplicityTask.cxx:118
 AliForwardMCMultiplicityTask.cxx:119
 AliForwardMCMultiplicityTask.cxx:120
 AliForwardMCMultiplicityTask.cxx:121
 AliForwardMCMultiplicityTask.cxx:122
 AliForwardMCMultiplicityTask.cxx:123
 AliForwardMCMultiplicityTask.cxx:124
 AliForwardMCMultiplicityTask.cxx:125
 AliForwardMCMultiplicityTask.cxx:126
 AliForwardMCMultiplicityTask.cxx:127
 AliForwardMCMultiplicityTask.cxx:128
 AliForwardMCMultiplicityTask.cxx:129
 AliForwardMCMultiplicityTask.cxx:130
 AliForwardMCMultiplicityTask.cxx:131
 AliForwardMCMultiplicityTask.cxx:132
 AliForwardMCMultiplicityTask.cxx:133
 AliForwardMCMultiplicityTask.cxx:134
 AliForwardMCMultiplicityTask.cxx:135
 AliForwardMCMultiplicityTask.cxx:136
 AliForwardMCMultiplicityTask.cxx:137
 AliForwardMCMultiplicityTask.cxx:138
 AliForwardMCMultiplicityTask.cxx:139
 AliForwardMCMultiplicityTask.cxx:140
 AliForwardMCMultiplicityTask.cxx:141
 AliForwardMCMultiplicityTask.cxx:142
 AliForwardMCMultiplicityTask.cxx:143
 AliForwardMCMultiplicityTask.cxx:144
 AliForwardMCMultiplicityTask.cxx:145
 AliForwardMCMultiplicityTask.cxx:146
 AliForwardMCMultiplicityTask.cxx:147
 AliForwardMCMultiplicityTask.cxx:148
 AliForwardMCMultiplicityTask.cxx:149
 AliForwardMCMultiplicityTask.cxx:150
 AliForwardMCMultiplicityTask.cxx:151
 AliForwardMCMultiplicityTask.cxx:152
 AliForwardMCMultiplicityTask.cxx:153
 AliForwardMCMultiplicityTask.cxx:154
 AliForwardMCMultiplicityTask.cxx:155
 AliForwardMCMultiplicityTask.cxx:156
 AliForwardMCMultiplicityTask.cxx:157
 AliForwardMCMultiplicityTask.cxx:158
 AliForwardMCMultiplicityTask.cxx:159
 AliForwardMCMultiplicityTask.cxx:160
 AliForwardMCMultiplicityTask.cxx:161
 AliForwardMCMultiplicityTask.cxx:162
 AliForwardMCMultiplicityTask.cxx:163
 AliForwardMCMultiplicityTask.cxx:164
 AliForwardMCMultiplicityTask.cxx:165
 AliForwardMCMultiplicityTask.cxx:166
 AliForwardMCMultiplicityTask.cxx:167
 AliForwardMCMultiplicityTask.cxx:168
 AliForwardMCMultiplicityTask.cxx:169
 AliForwardMCMultiplicityTask.cxx:170
 AliForwardMCMultiplicityTask.cxx:171
 AliForwardMCMultiplicityTask.cxx:172
 AliForwardMCMultiplicityTask.cxx:173
 AliForwardMCMultiplicityTask.cxx:174
 AliForwardMCMultiplicityTask.cxx:175
 AliForwardMCMultiplicityTask.cxx:176
 AliForwardMCMultiplicityTask.cxx:177
 AliForwardMCMultiplicityTask.cxx:178
 AliForwardMCMultiplicityTask.cxx:179
 AliForwardMCMultiplicityTask.cxx:180
 AliForwardMCMultiplicityTask.cxx:181
 AliForwardMCMultiplicityTask.cxx:182
 AliForwardMCMultiplicityTask.cxx:183
 AliForwardMCMultiplicityTask.cxx:184
 AliForwardMCMultiplicityTask.cxx:185
 AliForwardMCMultiplicityTask.cxx:186
 AliForwardMCMultiplicityTask.cxx:187
 AliForwardMCMultiplicityTask.cxx:188
 AliForwardMCMultiplicityTask.cxx:189
 AliForwardMCMultiplicityTask.cxx:190
 AliForwardMCMultiplicityTask.cxx:191
 AliForwardMCMultiplicityTask.cxx:192
 AliForwardMCMultiplicityTask.cxx:193
 AliForwardMCMultiplicityTask.cxx:194
 AliForwardMCMultiplicityTask.cxx:195
 AliForwardMCMultiplicityTask.cxx:196
 AliForwardMCMultiplicityTask.cxx:197
 AliForwardMCMultiplicityTask.cxx:198
 AliForwardMCMultiplicityTask.cxx:199
 AliForwardMCMultiplicityTask.cxx:200
 AliForwardMCMultiplicityTask.cxx:201
 AliForwardMCMultiplicityTask.cxx:202
 AliForwardMCMultiplicityTask.cxx:203
 AliForwardMCMultiplicityTask.cxx:204
 AliForwardMCMultiplicityTask.cxx:205
 AliForwardMCMultiplicityTask.cxx:206
 AliForwardMCMultiplicityTask.cxx:207
 AliForwardMCMultiplicityTask.cxx:208
 AliForwardMCMultiplicityTask.cxx:209
 AliForwardMCMultiplicityTask.cxx:210
 AliForwardMCMultiplicityTask.cxx:211
 AliForwardMCMultiplicityTask.cxx:212
 AliForwardMCMultiplicityTask.cxx:213
 AliForwardMCMultiplicityTask.cxx:214
 AliForwardMCMultiplicityTask.cxx:215
 AliForwardMCMultiplicityTask.cxx:216
 AliForwardMCMultiplicityTask.cxx:217
 AliForwardMCMultiplicityTask.cxx:218
 AliForwardMCMultiplicityTask.cxx:219
 AliForwardMCMultiplicityTask.cxx:220
 AliForwardMCMultiplicityTask.cxx:221
 AliForwardMCMultiplicityTask.cxx:222
 AliForwardMCMultiplicityTask.cxx:223
 AliForwardMCMultiplicityTask.cxx:224
 AliForwardMCMultiplicityTask.cxx:225
 AliForwardMCMultiplicityTask.cxx:226
 AliForwardMCMultiplicityTask.cxx:227
 AliForwardMCMultiplicityTask.cxx:228
 AliForwardMCMultiplicityTask.cxx:229
 AliForwardMCMultiplicityTask.cxx:230
 AliForwardMCMultiplicityTask.cxx:231
 AliForwardMCMultiplicityTask.cxx:232
 AliForwardMCMultiplicityTask.cxx:233
 AliForwardMCMultiplicityTask.cxx:234
 AliForwardMCMultiplicityTask.cxx:235
 AliForwardMCMultiplicityTask.cxx:236
 AliForwardMCMultiplicityTask.cxx:237
 AliForwardMCMultiplicityTask.cxx:238
 AliForwardMCMultiplicityTask.cxx:239
 AliForwardMCMultiplicityTask.cxx:240
 AliForwardMCMultiplicityTask.cxx:241
 AliForwardMCMultiplicityTask.cxx:242
 AliForwardMCMultiplicityTask.cxx:243
 AliForwardMCMultiplicityTask.cxx:244
 AliForwardMCMultiplicityTask.cxx:245
 AliForwardMCMultiplicityTask.cxx:246
 AliForwardMCMultiplicityTask.cxx:247
 AliForwardMCMultiplicityTask.cxx:248
 AliForwardMCMultiplicityTask.cxx:249
 AliForwardMCMultiplicityTask.cxx:250
 AliForwardMCMultiplicityTask.cxx:251
 AliForwardMCMultiplicityTask.cxx:252
 AliForwardMCMultiplicityTask.cxx:253
 AliForwardMCMultiplicityTask.cxx:254
 AliForwardMCMultiplicityTask.cxx:255
 AliForwardMCMultiplicityTask.cxx:256
 AliForwardMCMultiplicityTask.cxx:257
 AliForwardMCMultiplicityTask.cxx:258
 AliForwardMCMultiplicityTask.cxx:259
 AliForwardMCMultiplicityTask.cxx:260
 AliForwardMCMultiplicityTask.cxx:261
 AliForwardMCMultiplicityTask.cxx:262
 AliForwardMCMultiplicityTask.cxx:263
 AliForwardMCMultiplicityTask.cxx:264
 AliForwardMCMultiplicityTask.cxx:265
 AliForwardMCMultiplicityTask.cxx:266
 AliForwardMCMultiplicityTask.cxx:267
 AliForwardMCMultiplicityTask.cxx:268
 AliForwardMCMultiplicityTask.cxx:269
 AliForwardMCMultiplicityTask.cxx:270
 AliForwardMCMultiplicityTask.cxx:271
 AliForwardMCMultiplicityTask.cxx:272
 AliForwardMCMultiplicityTask.cxx:273
 AliForwardMCMultiplicityTask.cxx:274
 AliForwardMCMultiplicityTask.cxx:275
 AliForwardMCMultiplicityTask.cxx:276
 AliForwardMCMultiplicityTask.cxx:277
 AliForwardMCMultiplicityTask.cxx:278
 AliForwardMCMultiplicityTask.cxx:279
 AliForwardMCMultiplicityTask.cxx:280
 AliForwardMCMultiplicityTask.cxx:281
 AliForwardMCMultiplicityTask.cxx:282
 AliForwardMCMultiplicityTask.cxx:283
 AliForwardMCMultiplicityTask.cxx:284
 AliForwardMCMultiplicityTask.cxx:285
 AliForwardMCMultiplicityTask.cxx:286
 AliForwardMCMultiplicityTask.cxx:287
 AliForwardMCMultiplicityTask.cxx:288
 AliForwardMCMultiplicityTask.cxx:289
 AliForwardMCMultiplicityTask.cxx:290
 AliForwardMCMultiplicityTask.cxx:291
 AliForwardMCMultiplicityTask.cxx:292
 AliForwardMCMultiplicityTask.cxx:293
 AliForwardMCMultiplicityTask.cxx:294
 AliForwardMCMultiplicityTask.cxx:295
 AliForwardMCMultiplicityTask.cxx:296
 AliForwardMCMultiplicityTask.cxx:297
 AliForwardMCMultiplicityTask.cxx:298
 AliForwardMCMultiplicityTask.cxx:299
 AliForwardMCMultiplicityTask.cxx:300
 AliForwardMCMultiplicityTask.cxx:301
 AliForwardMCMultiplicityTask.cxx:302
 AliForwardMCMultiplicityTask.cxx:303
 AliForwardMCMultiplicityTask.cxx:304
 AliForwardMCMultiplicityTask.cxx:305
 AliForwardMCMultiplicityTask.cxx:306
 AliForwardMCMultiplicityTask.cxx:307
 AliForwardMCMultiplicityTask.cxx:308
 AliForwardMCMultiplicityTask.cxx:309
 AliForwardMCMultiplicityTask.cxx:310
 AliForwardMCMultiplicityTask.cxx:311
 AliForwardMCMultiplicityTask.cxx:312
 AliForwardMCMultiplicityTask.cxx:313
 AliForwardMCMultiplicityTask.cxx:314
 AliForwardMCMultiplicityTask.cxx:315
 AliForwardMCMultiplicityTask.cxx:316
 AliForwardMCMultiplicityTask.cxx:317
 AliForwardMCMultiplicityTask.cxx:318
 AliForwardMCMultiplicityTask.cxx:319
 AliForwardMCMultiplicityTask.cxx:320
 AliForwardMCMultiplicityTask.cxx:321
 AliForwardMCMultiplicityTask.cxx:322
 AliForwardMCMultiplicityTask.cxx:323
 AliForwardMCMultiplicityTask.cxx:324
 AliForwardMCMultiplicityTask.cxx:325
 AliForwardMCMultiplicityTask.cxx:326
 AliForwardMCMultiplicityTask.cxx:327
 AliForwardMCMultiplicityTask.cxx:328
 AliForwardMCMultiplicityTask.cxx:329
 AliForwardMCMultiplicityTask.cxx:330
 AliForwardMCMultiplicityTask.cxx:331
 AliForwardMCMultiplicityTask.cxx:332
 AliForwardMCMultiplicityTask.cxx:333
 AliForwardMCMultiplicityTask.cxx:334
 AliForwardMCMultiplicityTask.cxx:335
 AliForwardMCMultiplicityTask.cxx:336
 AliForwardMCMultiplicityTask.cxx:337
 AliForwardMCMultiplicityTask.cxx:338
 AliForwardMCMultiplicityTask.cxx:339
 AliForwardMCMultiplicityTask.cxx:340
 AliForwardMCMultiplicityTask.cxx:341
 AliForwardMCMultiplicityTask.cxx:342
 AliForwardMCMultiplicityTask.cxx:343
 AliForwardMCMultiplicityTask.cxx:344
 AliForwardMCMultiplicityTask.cxx:345
 AliForwardMCMultiplicityTask.cxx:346
 AliForwardMCMultiplicityTask.cxx:347
 AliForwardMCMultiplicityTask.cxx:348
 AliForwardMCMultiplicityTask.cxx:349
 AliForwardMCMultiplicityTask.cxx:350
 AliForwardMCMultiplicityTask.cxx:351
 AliForwardMCMultiplicityTask.cxx:352
 AliForwardMCMultiplicityTask.cxx:353
 AliForwardMCMultiplicityTask.cxx:354
 AliForwardMCMultiplicityTask.cxx:355
 AliForwardMCMultiplicityTask.cxx:356
 AliForwardMCMultiplicityTask.cxx:357
 AliForwardMCMultiplicityTask.cxx:358
 AliForwardMCMultiplicityTask.cxx:359
 AliForwardMCMultiplicityTask.cxx:360
 AliForwardMCMultiplicityTask.cxx:361
 AliForwardMCMultiplicityTask.cxx:362
 AliForwardMCMultiplicityTask.cxx:363
 AliForwardMCMultiplicityTask.cxx:364
 AliForwardMCMultiplicityTask.cxx:365
 AliForwardMCMultiplicityTask.cxx:366
 AliForwardMCMultiplicityTask.cxx:367
 AliForwardMCMultiplicityTask.cxx:368
 AliForwardMCMultiplicityTask.cxx:369
 AliForwardMCMultiplicityTask.cxx:370
 AliForwardMCMultiplicityTask.cxx:371
 AliForwardMCMultiplicityTask.cxx:372
 AliForwardMCMultiplicityTask.cxx:373
 AliForwardMCMultiplicityTask.cxx:374
 AliForwardMCMultiplicityTask.cxx:375
 AliForwardMCMultiplicityTask.cxx:376
 AliForwardMCMultiplicityTask.cxx:377
 AliForwardMCMultiplicityTask.cxx:378
 AliForwardMCMultiplicityTask.cxx:379
 AliForwardMCMultiplicityTask.cxx:380
 AliForwardMCMultiplicityTask.cxx:381
 AliForwardMCMultiplicityTask.cxx:382
 AliForwardMCMultiplicityTask.cxx:383
 AliForwardMCMultiplicityTask.cxx:384
 AliForwardMCMultiplicityTask.cxx:385
 AliForwardMCMultiplicityTask.cxx:386
 AliForwardMCMultiplicityTask.cxx:387
 AliForwardMCMultiplicityTask.cxx:388
 AliForwardMCMultiplicityTask.cxx:389
 AliForwardMCMultiplicityTask.cxx:390
 AliForwardMCMultiplicityTask.cxx:391
 AliForwardMCMultiplicityTask.cxx:392
 AliForwardMCMultiplicityTask.cxx:393
 AliForwardMCMultiplicityTask.cxx:394
 AliForwardMCMultiplicityTask.cxx:395
 AliForwardMCMultiplicityTask.cxx:396
 AliForwardMCMultiplicityTask.cxx:397
 AliForwardMCMultiplicityTask.cxx:398
 AliForwardMCMultiplicityTask.cxx:399
 AliForwardMCMultiplicityTask.cxx:400
 AliForwardMCMultiplicityTask.cxx:401
 AliForwardMCMultiplicityTask.cxx:402
 AliForwardMCMultiplicityTask.cxx:403
 AliForwardMCMultiplicityTask.cxx:404
 AliForwardMCMultiplicityTask.cxx:405
 AliForwardMCMultiplicityTask.cxx:406
 AliForwardMCMultiplicityTask.cxx:407
 AliForwardMCMultiplicityTask.cxx:408
 AliForwardMCMultiplicityTask.cxx:409
 AliForwardMCMultiplicityTask.cxx:410
 AliForwardMCMultiplicityTask.cxx:411
 AliForwardMCMultiplicityTask.cxx:412
 AliForwardMCMultiplicityTask.cxx:413
 AliForwardMCMultiplicityTask.cxx:414
 AliForwardMCMultiplicityTask.cxx:415
 AliForwardMCMultiplicityTask.cxx:416
 AliForwardMCMultiplicityTask.cxx:417
 AliForwardMCMultiplicityTask.cxx:418
 AliForwardMCMultiplicityTask.cxx:419
 AliForwardMCMultiplicityTask.cxx:420
 AliForwardMCMultiplicityTask.cxx:421
 AliForwardMCMultiplicityTask.cxx:422
 AliForwardMCMultiplicityTask.cxx:423
 AliForwardMCMultiplicityTask.cxx:424
 AliForwardMCMultiplicityTask.cxx:425
 AliForwardMCMultiplicityTask.cxx:426
 AliForwardMCMultiplicityTask.cxx:427
 AliForwardMCMultiplicityTask.cxx:428
 AliForwardMCMultiplicityTask.cxx:429
 AliForwardMCMultiplicityTask.cxx:430
 AliForwardMCMultiplicityTask.cxx:431
 AliForwardMCMultiplicityTask.cxx:432
 AliForwardMCMultiplicityTask.cxx:433
 AliForwardMCMultiplicityTask.cxx:434
 AliForwardMCMultiplicityTask.cxx:435
 AliForwardMCMultiplicityTask.cxx:436
 AliForwardMCMultiplicityTask.cxx:437
 AliForwardMCMultiplicityTask.cxx:438
 AliForwardMCMultiplicityTask.cxx:439
 AliForwardMCMultiplicityTask.cxx:440
 AliForwardMCMultiplicityTask.cxx:441
 AliForwardMCMultiplicityTask.cxx:442
 AliForwardMCMultiplicityTask.cxx:443
 AliForwardMCMultiplicityTask.cxx:444