ROOT logo
// 
// Calculate the corrections in the central regions
// 
// Inputs: 
//   - AliESDEvent 
//
// Outputs: 
//   - AliAODCentralMult 
// 
// Histograms 
//   
// Corrections used 
// 
#include "AliCentralMCCorrectionsTask.h"
#include "AliCentralCorrectionManager.h"
#include "AliTriggerAnalysis.h"
#include "AliPhysicsSelection.h"
#include "AliLog.h"
#include "AliHeader.h"
#include "AliGenEventHeader.h"
#include "AliESDEvent.h"
#include "AliAODHandler.h"
#include "AliMultiplicity.h"
#include "AliInputEventHandler.h"
#include "AliStack.h"
#include "AliMCEvent.h"
#include "AliAODForwardMult.h"
#include "AliCentralCorrSecondaryMap.h"
#include "AliCentralCorrAcceptance.h"
#include "AliForwardUtil.h"
#include "AliMultiplicity.h"
#include <TH1.h>
#include <TH2D.h>
#include <TDirectory.h>
#include <TList.h>
#include <TROOT.h>
#include <iostream>

//====================================================================
AliCentralMCCorrectionsTask::AliCentralMCCorrectionsTask()
  : AliBaseMCCorrectionsTask(),
    fTrackDensity(),
    fSecCorr(0), 
    fAccCorr(0),
    fNPhiBins(20),
    fEffectiveCorr(true),
    fEtaCut(1.9),
    fCorrCut(0.6)
{
  // 
  // Constructor 
  // 
  // Parameters:
  //    name Name of task 
  //
  DGUARD(fDebug, 3,"Default CTOR of AliCentralMCCorrectionsTask");
}

//____________________________________________________________________
AliCentralMCCorrectionsTask::AliCentralMCCorrectionsTask(const char* name)
  : AliBaseMCCorrectionsTask(name, &(AliCentralCorrectionManager::Instance())),
    fTrackDensity("trackDensity"),
    fSecCorr(0), 
    fAccCorr(0),
    fNPhiBins(20),
    fEffectiveCorr(true),
    fEtaCut(1.9),
    fCorrCut(0.6)
{
  // 
  // Constructor 
  // 
  // Parameters:
  //    name Name of task 
  //
  DGUARD(fDebug, 3,"Named CTOR of AliCentralMCCorrectionsTask: %s",name);
}

//____________________________________________________________________
AliBaseMCCorrectionsTask::VtxBin*
AliCentralMCCorrectionsTask::CreateVtxBin(Double_t low, Double_t high)
{
  return new AliCentralMCCorrectionsTask::VtxBin(low,high,fEtaAxis,fNPhiBins);
}

//____________________________________________________________________
Bool_t
AliCentralMCCorrectionsTask::ProcessESD(const AliESDEvent& esd, 
					const AliMCEvent& mc, 
					AliBaseMCCorrectionsTask::VtxBin& bin,
					Double_t          vz)
{
  AliCentralMCCorrectionsTask::VtxBin& vb = 
    static_cast<AliCentralMCCorrectionsTask::VtxBin&>(bin);

  // Now process our input data and store in own ESD object 
  fTrackDensity.Calculate(mc, vz, *vb.fHits, bin.fPrimary);
  
  // Get the ESD object
  const AliMultiplicity* spdmult = esd.GetMultiplicity();
 
  // Count number of tracklets per bin 
  for(Int_t j = 0; j< spdmult->GetNumberOfTracklets();j++) 
    vb.fClusters->Fill(spdmult->GetEta(j),spdmult->GetPhi(j));
  //...and then the unused clusters in layer 1 
  for(Int_t j = 0; j< spdmult->GetNumberOfSingleClusters();j++) {
    Double_t eta = -TMath::Log(TMath::Tan(spdmult->GetThetaSingle(j)/2.));
    vb.fClusters->Fill(eta, spdmult->GetPhiSingle(j));
  }
  
  // Count events  
  bin.fCounts->Fill(0.5);
  
  return true;
}
//____________________________________________________________________
void
AliCentralMCCorrectionsTask::CreateCorrections(TList* results)
{
  fSecCorr = new AliCentralCorrSecondaryMap;
  fSecCorr->SetVertexAxis(fVtxAxis);

  fAccCorr = new AliCentralCorrAcceptance;
  fAccCorr->SetVertexAxis(fVtxAxis);

  results->Add(fSecCorr);
  results->Add(fAccCorr);
}

//____________________________________________________________________
Bool_t 
AliCentralMCCorrectionsTask::FinalizeVtxBin(AliBaseMCCorrectionsTask::VtxBin* 
					    bin,  UShort_t iVz) 
{
  
  AliCentralMCCorrectionsTask::VtxBin* vb = 
    static_cast<AliCentralMCCorrectionsTask::VtxBin*>(bin);
  vb->Terminate(fList, fResults, iVz, fEffectiveCorr, 
		fEtaCut, fCorrCut, fSecCorr,fAccCorr);
  return true;
}
					    

//____________________________________________________________________
void
AliCentralMCCorrectionsTask::Print(Option_t* option) const
{
  AliBaseMCCorrectionsTask::Print(option);
  std::cout << "  # of phi bins:    " << fNPhiBins << "\n"
	    << "  Effective corr.:  " << fEffectiveCorr << "\n"
	    << "  Eta cut-off:      " << fEtaCut << "\n"
	    << "  Acceptance cut:   " << fCorrCut 
	    << std::endl;
  gROOT->IncreaseDirLevel();
  fTrackDensity.Print(option);
  gROOT->DecreaseDirLevel();
}

//====================================================================
AliCentralMCCorrectionsTask::VtxBin::VtxBin()
  : AliBaseMCCorrectionsTask::VtxBin(),
    fHits(0), 
    fClusters(0)
{
}
//____________________________________________________________________
AliCentralMCCorrectionsTask::VtxBin::VtxBin(Double_t     low, 
					    Double_t     high, 
					    const TAxis& axis,
					    UShort_t     nPhi)
  : AliBaseMCCorrectionsTask::VtxBin(low, high, axis, nPhi),
    fHits(0), 
    fClusters(0)
{
  fHits = static_cast<TH2D*>(fPrimary->Clone("hits"));
  fHits->SetTitle("Hits");
  fHits->SetDirectory(0);

  fClusters = static_cast<TH2D*>(fPrimary->Clone("clusters"));
  fClusters->SetTitle("Clusters");
  fClusters->SetDirectory(0);
}


//____________________________________________________________________
TList*
AliCentralMCCorrectionsTask::VtxBin::CreateOutputObjects(TList* l)
{
  TList* d = AliBaseMCCorrectionsTask::VtxBin::CreateOutputObjects(l);

  d->Add(fHits);
  d->Add(fClusters);

  return d;
}
//____________________________________________________________________
void
AliCentralMCCorrectionsTask::VtxBin::Terminate(const TList* input, 
					       TList* output, 
					       UShort_t iVz, 
					       Bool_t effectiveCorr,
					       Double_t etaCut,
					       Double_t accCut,
					       AliCentralCorrSecondaryMap* map,
					       AliCentralCorrAcceptance* acorr)
{
  TList* out = new TList;
  out->SetName(GetName());
  out->SetOwner();
  output->Add(out);

  TList* l = static_cast<TList*>(input->FindObject(GetName()));
  if (!l) { 
    AliError(Form("List %s not found in %s", GetName(), input->GetName()));
    return;
  }

  // Get the sums 
  TH2D*   hits  = static_cast<TH2D*>(l->FindObject("hits"));
  TH2D*   clus  = static_cast<TH2D*>(l->FindObject("clusters"));
  TH2D*   prim  = static_cast<TH2D*>(l->FindObject("primary"));
  if (!hits || !prim) {
    AliError(Form("Missing histograms: %p, %p", hits, prim));
    return;
  }

  // Clone cluster and hit map
  TH2D* secMapEff = static_cast<TH2D*>(clus->Clone("secMapEff"));
  TH2D* secMapHit = static_cast<TH2D*>(hits->Clone("secMapHit"));
  secMapEff->SetTitle("2^{nd} map from clusters");
  secMapEff->SetDirectory(0);
  secMapHit->SetTitle("2^{nd} map from MC hits");
  secMapHit->SetDirectory(0);

  // Divide cluster and hit map with number of primaries 
  secMapEff->Divide(prim);
  secMapHit->Divide(prim);

  // Create acceptance histograms 
  TH1D* accEff = new TH1D("accEff",
			  "Acceptance correction for SPD (from 2^{nd} map)" ,
			  fPrimary->GetXaxis()->GetNbins(), 
			  fPrimary->GetXaxis()->GetXmin(), 
			  fPrimary->GetXaxis()->GetXmax());
  TH1D* accHit = static_cast<TH1D*>(accEff->Clone("accHit"));
  accHit->SetTitle("Acceptance correction for SPD (from clusters)");

  // Diagnostics histogra, 
  TH2*  dia    = static_cast<TH2D*>(clus->Clone("diagnostics"));
  dia->SetTitle("Scaled cluster density");

  // Total number of channels along phi and # of eta bins
  Int_t nTotal = secMapHit->GetNbinsY();
  Int_t nEta   = secMapHit->GetNbinsX();

  for(Int_t xx = 1; xx <= nEta; xx++) {
    Double_t eta = secMapHit->GetXaxis()->GetBinCenter(xx);
    Bool_t   ins = TMath::Abs(eta) <= etaCut;
    Double_t mm  = 0;
    if (ins) {
      // Find the maximum cluster signal in this phi range 
      for (Int_t yy = 1; yy <= nTotal; yy++) { 
	Double_t c = clus->GetBinContent(xx,yy);
	mm         = TMath::Max(mm, c);
      }
    }
    // Count number of phi bins with enough clusters or high enough
    // correction.
    Int_t nOKEff    = 0;
    Int_t nOKHit    = 0;
    for(Int_t yy = 1; yy <=nTotal; yy++) {
      if (!ins) { // Not inside Eta cut
	secMapEff->SetBinContent(xx,yy,0.); 
	secMapEff->SetBinError(xx,yy,0.); 
	secMapHit->SetBinContent(xx,yy,0.); 
	secMapHit->SetBinError(xx,yy,0.); 
	dia->SetBinContent(xx,yy,0);
	continue;
      }

      // Check if the background correction is large enough, or zero map
      if(secMapEff->GetBinContent(xx,yy) > 0.9) {
	// acc->Fill(h->GetXaxis()->GetBinCenter(xx));
	nOKEff++;
      }
      else {
	secMapEff->SetBinContent(xx,yy,0.); 
	secMapEff->SetBinError(xx,yy,0.); 
      }

      // Check if the number of cluster is large enough, or zero map
      Double_t c = clus->GetBinContent(xx,yy);
      Double_t s = (mm < 1e-6) ? 0 : c / mm;
      dia->SetBinContent(xx,yy,s);
      if (s >= accCut) {
	nOKHit++;
      }
      else {
	secMapHit->SetBinContent(xx,yy,0);
	secMapHit->SetBinError(xx,yy,0);
      }
    }

    // Calculate acceptance as ratio of bins with enough clusters and
    // total number of phi bins.
    Double_t accXX = float(nOKHit) / nTotal;
    if (accXX < 0.2) accXX = 0;
    accHit->SetBinContent(xx, accXX);

    // Calculate acceptance as ratio of bins with large enough
    // correction and total number of phi bins.
    accXX = float(nOKEff) / nTotal;
    if (accXX < 0.2) accXX = 0;
    accEff->SetBinContent(xx, accXX);
  }

  TH2D* secMap    = (effectiveCorr ? secMapEff : secMapHit);
  TH2D* secMapAlt = (effectiveCorr ? secMapHit : secMapEff);
  TH1D* acc       = (effectiveCorr ? accEff    : accHit);
  TH1D* accAlt    = (effectiveCorr ? accHit    : accEff);
  out->Add(secMap->Clone("secMap"));
  out->Add(secMapAlt->Clone());
  out->Add(acc->Clone("acc"));
  out->Add(accAlt->Clone());
  out->Add(dia->Clone());

  map->SetCorrection(iVz, secMap);
  acorr->SetCorrection(iVz, acc);
}

//
// EOF
//
 AliCentralMCCorrectionsTask.cxx:1
 AliCentralMCCorrectionsTask.cxx:2
 AliCentralMCCorrectionsTask.cxx:3
 AliCentralMCCorrectionsTask.cxx:4
 AliCentralMCCorrectionsTask.cxx:5
 AliCentralMCCorrectionsTask.cxx:6
 AliCentralMCCorrectionsTask.cxx:7
 AliCentralMCCorrectionsTask.cxx:8
 AliCentralMCCorrectionsTask.cxx:9
 AliCentralMCCorrectionsTask.cxx:10
 AliCentralMCCorrectionsTask.cxx:11
 AliCentralMCCorrectionsTask.cxx:12
 AliCentralMCCorrectionsTask.cxx:13
 AliCentralMCCorrectionsTask.cxx:14
 AliCentralMCCorrectionsTask.cxx:15
 AliCentralMCCorrectionsTask.cxx:16
 AliCentralMCCorrectionsTask.cxx:17
 AliCentralMCCorrectionsTask.cxx:18
 AliCentralMCCorrectionsTask.cxx:19
 AliCentralMCCorrectionsTask.cxx:20
 AliCentralMCCorrectionsTask.cxx:21
 AliCentralMCCorrectionsTask.cxx:22
 AliCentralMCCorrectionsTask.cxx:23
 AliCentralMCCorrectionsTask.cxx:24
 AliCentralMCCorrectionsTask.cxx:25
 AliCentralMCCorrectionsTask.cxx:26
 AliCentralMCCorrectionsTask.cxx:27
 AliCentralMCCorrectionsTask.cxx:28
 AliCentralMCCorrectionsTask.cxx:29
 AliCentralMCCorrectionsTask.cxx:30
 AliCentralMCCorrectionsTask.cxx:31
 AliCentralMCCorrectionsTask.cxx:32
 AliCentralMCCorrectionsTask.cxx:33
 AliCentralMCCorrectionsTask.cxx:34
 AliCentralMCCorrectionsTask.cxx:35
 AliCentralMCCorrectionsTask.cxx:36
 AliCentralMCCorrectionsTask.cxx:37
 AliCentralMCCorrectionsTask.cxx:38
 AliCentralMCCorrectionsTask.cxx:39
 AliCentralMCCorrectionsTask.cxx:40
 AliCentralMCCorrectionsTask.cxx:41
 AliCentralMCCorrectionsTask.cxx:42
 AliCentralMCCorrectionsTask.cxx:43
 AliCentralMCCorrectionsTask.cxx:44
 AliCentralMCCorrectionsTask.cxx:45
 AliCentralMCCorrectionsTask.cxx:46
 AliCentralMCCorrectionsTask.cxx:47
 AliCentralMCCorrectionsTask.cxx:48
 AliCentralMCCorrectionsTask.cxx:49
 AliCentralMCCorrectionsTask.cxx:50
 AliCentralMCCorrectionsTask.cxx:51
 AliCentralMCCorrectionsTask.cxx:52
 AliCentralMCCorrectionsTask.cxx:53
 AliCentralMCCorrectionsTask.cxx:54
 AliCentralMCCorrectionsTask.cxx:55
 AliCentralMCCorrectionsTask.cxx:56
 AliCentralMCCorrectionsTask.cxx:57
 AliCentralMCCorrectionsTask.cxx:58
 AliCentralMCCorrectionsTask.cxx:59
 AliCentralMCCorrectionsTask.cxx:60
 AliCentralMCCorrectionsTask.cxx:61
 AliCentralMCCorrectionsTask.cxx:62
 AliCentralMCCorrectionsTask.cxx:63
 AliCentralMCCorrectionsTask.cxx:64
 AliCentralMCCorrectionsTask.cxx:65
 AliCentralMCCorrectionsTask.cxx:66
 AliCentralMCCorrectionsTask.cxx:67
 AliCentralMCCorrectionsTask.cxx:68
 AliCentralMCCorrectionsTask.cxx:69
 AliCentralMCCorrectionsTask.cxx:70
 AliCentralMCCorrectionsTask.cxx:71
 AliCentralMCCorrectionsTask.cxx:72
 AliCentralMCCorrectionsTask.cxx:73
 AliCentralMCCorrectionsTask.cxx:74
 AliCentralMCCorrectionsTask.cxx:75
 AliCentralMCCorrectionsTask.cxx:76
 AliCentralMCCorrectionsTask.cxx:77
 AliCentralMCCorrectionsTask.cxx:78
 AliCentralMCCorrectionsTask.cxx:79
 AliCentralMCCorrectionsTask.cxx:80
 AliCentralMCCorrectionsTask.cxx:81
 AliCentralMCCorrectionsTask.cxx:82
 AliCentralMCCorrectionsTask.cxx:83
 AliCentralMCCorrectionsTask.cxx:84
 AliCentralMCCorrectionsTask.cxx:85
 AliCentralMCCorrectionsTask.cxx:86
 AliCentralMCCorrectionsTask.cxx:87
 AliCentralMCCorrectionsTask.cxx:88
 AliCentralMCCorrectionsTask.cxx:89
 AliCentralMCCorrectionsTask.cxx:90
 AliCentralMCCorrectionsTask.cxx:91
 AliCentralMCCorrectionsTask.cxx:92
 AliCentralMCCorrectionsTask.cxx:93
 AliCentralMCCorrectionsTask.cxx:94
 AliCentralMCCorrectionsTask.cxx:95
 AliCentralMCCorrectionsTask.cxx:96
 AliCentralMCCorrectionsTask.cxx:97
 AliCentralMCCorrectionsTask.cxx:98
 AliCentralMCCorrectionsTask.cxx:99
 AliCentralMCCorrectionsTask.cxx:100
 AliCentralMCCorrectionsTask.cxx:101
 AliCentralMCCorrectionsTask.cxx:102
 AliCentralMCCorrectionsTask.cxx:103
 AliCentralMCCorrectionsTask.cxx:104
 AliCentralMCCorrectionsTask.cxx:105
 AliCentralMCCorrectionsTask.cxx:106
 AliCentralMCCorrectionsTask.cxx:107
 AliCentralMCCorrectionsTask.cxx:108
 AliCentralMCCorrectionsTask.cxx:109
 AliCentralMCCorrectionsTask.cxx:110
 AliCentralMCCorrectionsTask.cxx:111
 AliCentralMCCorrectionsTask.cxx:112
 AliCentralMCCorrectionsTask.cxx:113
 AliCentralMCCorrectionsTask.cxx:114
 AliCentralMCCorrectionsTask.cxx:115
 AliCentralMCCorrectionsTask.cxx:116
 AliCentralMCCorrectionsTask.cxx:117
 AliCentralMCCorrectionsTask.cxx:118
 AliCentralMCCorrectionsTask.cxx:119
 AliCentralMCCorrectionsTask.cxx:120
 AliCentralMCCorrectionsTask.cxx:121
 AliCentralMCCorrectionsTask.cxx:122
 AliCentralMCCorrectionsTask.cxx:123
 AliCentralMCCorrectionsTask.cxx:124
 AliCentralMCCorrectionsTask.cxx:125
 AliCentralMCCorrectionsTask.cxx:126
 AliCentralMCCorrectionsTask.cxx:127
 AliCentralMCCorrectionsTask.cxx:128
 AliCentralMCCorrectionsTask.cxx:129
 AliCentralMCCorrectionsTask.cxx:130
 AliCentralMCCorrectionsTask.cxx:131
 AliCentralMCCorrectionsTask.cxx:132
 AliCentralMCCorrectionsTask.cxx:133
 AliCentralMCCorrectionsTask.cxx:134
 AliCentralMCCorrectionsTask.cxx:135
 AliCentralMCCorrectionsTask.cxx:136
 AliCentralMCCorrectionsTask.cxx:137
 AliCentralMCCorrectionsTask.cxx:138
 AliCentralMCCorrectionsTask.cxx:139
 AliCentralMCCorrectionsTask.cxx:140
 AliCentralMCCorrectionsTask.cxx:141
 AliCentralMCCorrectionsTask.cxx:142
 AliCentralMCCorrectionsTask.cxx:143
 AliCentralMCCorrectionsTask.cxx:144
 AliCentralMCCorrectionsTask.cxx:145
 AliCentralMCCorrectionsTask.cxx:146
 AliCentralMCCorrectionsTask.cxx:147
 AliCentralMCCorrectionsTask.cxx:148
 AliCentralMCCorrectionsTask.cxx:149
 AliCentralMCCorrectionsTask.cxx:150
 AliCentralMCCorrectionsTask.cxx:151
 AliCentralMCCorrectionsTask.cxx:152
 AliCentralMCCorrectionsTask.cxx:153
 AliCentralMCCorrectionsTask.cxx:154
 AliCentralMCCorrectionsTask.cxx:155
 AliCentralMCCorrectionsTask.cxx:156
 AliCentralMCCorrectionsTask.cxx:157
 AliCentralMCCorrectionsTask.cxx:158
 AliCentralMCCorrectionsTask.cxx:159
 AliCentralMCCorrectionsTask.cxx:160
 AliCentralMCCorrectionsTask.cxx:161
 AliCentralMCCorrectionsTask.cxx:162
 AliCentralMCCorrectionsTask.cxx:163
 AliCentralMCCorrectionsTask.cxx:164
 AliCentralMCCorrectionsTask.cxx:165
 AliCentralMCCorrectionsTask.cxx:166
 AliCentralMCCorrectionsTask.cxx:167
 AliCentralMCCorrectionsTask.cxx:168
 AliCentralMCCorrectionsTask.cxx:169
 AliCentralMCCorrectionsTask.cxx:170
 AliCentralMCCorrectionsTask.cxx:171
 AliCentralMCCorrectionsTask.cxx:172
 AliCentralMCCorrectionsTask.cxx:173
 AliCentralMCCorrectionsTask.cxx:174
 AliCentralMCCorrectionsTask.cxx:175
 AliCentralMCCorrectionsTask.cxx:176
 AliCentralMCCorrectionsTask.cxx:177
 AliCentralMCCorrectionsTask.cxx:178
 AliCentralMCCorrectionsTask.cxx:179
 AliCentralMCCorrectionsTask.cxx:180
 AliCentralMCCorrectionsTask.cxx:181
 AliCentralMCCorrectionsTask.cxx:182
 AliCentralMCCorrectionsTask.cxx:183
 AliCentralMCCorrectionsTask.cxx:184
 AliCentralMCCorrectionsTask.cxx:185
 AliCentralMCCorrectionsTask.cxx:186
 AliCentralMCCorrectionsTask.cxx:187
 AliCentralMCCorrectionsTask.cxx:188
 AliCentralMCCorrectionsTask.cxx:189
 AliCentralMCCorrectionsTask.cxx:190
 AliCentralMCCorrectionsTask.cxx:191
 AliCentralMCCorrectionsTask.cxx:192
 AliCentralMCCorrectionsTask.cxx:193
 AliCentralMCCorrectionsTask.cxx:194
 AliCentralMCCorrectionsTask.cxx:195
 AliCentralMCCorrectionsTask.cxx:196
 AliCentralMCCorrectionsTask.cxx:197
 AliCentralMCCorrectionsTask.cxx:198
 AliCentralMCCorrectionsTask.cxx:199
 AliCentralMCCorrectionsTask.cxx:200
 AliCentralMCCorrectionsTask.cxx:201
 AliCentralMCCorrectionsTask.cxx:202
 AliCentralMCCorrectionsTask.cxx:203
 AliCentralMCCorrectionsTask.cxx:204
 AliCentralMCCorrectionsTask.cxx:205
 AliCentralMCCorrectionsTask.cxx:206
 AliCentralMCCorrectionsTask.cxx:207
 AliCentralMCCorrectionsTask.cxx:208
 AliCentralMCCorrectionsTask.cxx:209
 AliCentralMCCorrectionsTask.cxx:210
 AliCentralMCCorrectionsTask.cxx:211
 AliCentralMCCorrectionsTask.cxx:212
 AliCentralMCCorrectionsTask.cxx:213
 AliCentralMCCorrectionsTask.cxx:214
 AliCentralMCCorrectionsTask.cxx:215
 AliCentralMCCorrectionsTask.cxx:216
 AliCentralMCCorrectionsTask.cxx:217
 AliCentralMCCorrectionsTask.cxx:218
 AliCentralMCCorrectionsTask.cxx:219
 AliCentralMCCorrectionsTask.cxx:220
 AliCentralMCCorrectionsTask.cxx:221
 AliCentralMCCorrectionsTask.cxx:222
 AliCentralMCCorrectionsTask.cxx:223
 AliCentralMCCorrectionsTask.cxx:224
 AliCentralMCCorrectionsTask.cxx:225
 AliCentralMCCorrectionsTask.cxx:226
 AliCentralMCCorrectionsTask.cxx:227
 AliCentralMCCorrectionsTask.cxx:228
 AliCentralMCCorrectionsTask.cxx:229
 AliCentralMCCorrectionsTask.cxx:230
 AliCentralMCCorrectionsTask.cxx:231
 AliCentralMCCorrectionsTask.cxx:232
 AliCentralMCCorrectionsTask.cxx:233
 AliCentralMCCorrectionsTask.cxx:234
 AliCentralMCCorrectionsTask.cxx:235
 AliCentralMCCorrectionsTask.cxx:236
 AliCentralMCCorrectionsTask.cxx:237
 AliCentralMCCorrectionsTask.cxx:238
 AliCentralMCCorrectionsTask.cxx:239
 AliCentralMCCorrectionsTask.cxx:240
 AliCentralMCCorrectionsTask.cxx:241
 AliCentralMCCorrectionsTask.cxx:242
 AliCentralMCCorrectionsTask.cxx:243
 AliCentralMCCorrectionsTask.cxx:244
 AliCentralMCCorrectionsTask.cxx:245
 AliCentralMCCorrectionsTask.cxx:246
 AliCentralMCCorrectionsTask.cxx:247
 AliCentralMCCorrectionsTask.cxx:248
 AliCentralMCCorrectionsTask.cxx:249
 AliCentralMCCorrectionsTask.cxx:250
 AliCentralMCCorrectionsTask.cxx:251
 AliCentralMCCorrectionsTask.cxx:252
 AliCentralMCCorrectionsTask.cxx:253
 AliCentralMCCorrectionsTask.cxx:254
 AliCentralMCCorrectionsTask.cxx:255
 AliCentralMCCorrectionsTask.cxx:256
 AliCentralMCCorrectionsTask.cxx:257
 AliCentralMCCorrectionsTask.cxx:258
 AliCentralMCCorrectionsTask.cxx:259
 AliCentralMCCorrectionsTask.cxx:260
 AliCentralMCCorrectionsTask.cxx:261
 AliCentralMCCorrectionsTask.cxx:262
 AliCentralMCCorrectionsTask.cxx:263
 AliCentralMCCorrectionsTask.cxx:264
 AliCentralMCCorrectionsTask.cxx:265
 AliCentralMCCorrectionsTask.cxx:266
 AliCentralMCCorrectionsTask.cxx:267
 AliCentralMCCorrectionsTask.cxx:268
 AliCentralMCCorrectionsTask.cxx:269
 AliCentralMCCorrectionsTask.cxx:270
 AliCentralMCCorrectionsTask.cxx:271
 AliCentralMCCorrectionsTask.cxx:272
 AliCentralMCCorrectionsTask.cxx:273
 AliCentralMCCorrectionsTask.cxx:274
 AliCentralMCCorrectionsTask.cxx:275
 AliCentralMCCorrectionsTask.cxx:276
 AliCentralMCCorrectionsTask.cxx:277
 AliCentralMCCorrectionsTask.cxx:278
 AliCentralMCCorrectionsTask.cxx:279
 AliCentralMCCorrectionsTask.cxx:280
 AliCentralMCCorrectionsTask.cxx:281
 AliCentralMCCorrectionsTask.cxx:282
 AliCentralMCCorrectionsTask.cxx:283
 AliCentralMCCorrectionsTask.cxx:284
 AliCentralMCCorrectionsTask.cxx:285
 AliCentralMCCorrectionsTask.cxx:286
 AliCentralMCCorrectionsTask.cxx:287
 AliCentralMCCorrectionsTask.cxx:288
 AliCentralMCCorrectionsTask.cxx:289
 AliCentralMCCorrectionsTask.cxx:290
 AliCentralMCCorrectionsTask.cxx:291
 AliCentralMCCorrectionsTask.cxx:292
 AliCentralMCCorrectionsTask.cxx:293
 AliCentralMCCorrectionsTask.cxx:294
 AliCentralMCCorrectionsTask.cxx:295
 AliCentralMCCorrectionsTask.cxx:296
 AliCentralMCCorrectionsTask.cxx:297
 AliCentralMCCorrectionsTask.cxx:298
 AliCentralMCCorrectionsTask.cxx:299
 AliCentralMCCorrectionsTask.cxx:300
 AliCentralMCCorrectionsTask.cxx:301
 AliCentralMCCorrectionsTask.cxx:302
 AliCentralMCCorrectionsTask.cxx:303
 AliCentralMCCorrectionsTask.cxx:304
 AliCentralMCCorrectionsTask.cxx:305
 AliCentralMCCorrectionsTask.cxx:306
 AliCentralMCCorrectionsTask.cxx:307
 AliCentralMCCorrectionsTask.cxx:308
 AliCentralMCCorrectionsTask.cxx:309
 AliCentralMCCorrectionsTask.cxx:310
 AliCentralMCCorrectionsTask.cxx:311
 AliCentralMCCorrectionsTask.cxx:312
 AliCentralMCCorrectionsTask.cxx:313
 AliCentralMCCorrectionsTask.cxx:314
 AliCentralMCCorrectionsTask.cxx:315
 AliCentralMCCorrectionsTask.cxx:316
 AliCentralMCCorrectionsTask.cxx:317
 AliCentralMCCorrectionsTask.cxx:318
 AliCentralMCCorrectionsTask.cxx:319
 AliCentralMCCorrectionsTask.cxx:320
 AliCentralMCCorrectionsTask.cxx:321
 AliCentralMCCorrectionsTask.cxx:322
 AliCentralMCCorrectionsTask.cxx:323
 AliCentralMCCorrectionsTask.cxx:324
 AliCentralMCCorrectionsTask.cxx:325
 AliCentralMCCorrectionsTask.cxx:326
 AliCentralMCCorrectionsTask.cxx:327
 AliCentralMCCorrectionsTask.cxx:328
 AliCentralMCCorrectionsTask.cxx:329
 AliCentralMCCorrectionsTask.cxx:330
 AliCentralMCCorrectionsTask.cxx:331
 AliCentralMCCorrectionsTask.cxx:332
 AliCentralMCCorrectionsTask.cxx:333