ROOT logo
//====================================================================
#include "AliBasedNdetaTask.h"
#include <TMath.h>
#include <TH2D.h>
#include <TH1D.h>
#include <THStack.h>
#include <TList.h>
#include <AliAnalysisManager.h>
#include <AliAODEvent.h>
#include <AliAODHandler.h>
#include <AliAODInputHandler.h>
#include "AliForwardUtil.h"
#include "AliAODForwardMult.h"
#include <TFile.h>
#include <TStyle.h>
#include <TROOT.h>

//____________________________________________________________________
AliBasedNdetaTask::AliBasedNdetaTask()
  : AliBaseAODTask(), 
    fCorrEmpty(true), 
    fUseROOTProj(false),
    fTriggerEff(1),
    fTriggerEff0(1),
    fListOfCentralities(0),
    fNormalizationScheme(kFull), 
    fFinalMCCorrFile(""),
    fSatelliteVertices(0),
    fEmpiricalCorrection(0),
    fMeanVsC(0),
    fCentMethod("default"),
    fPileupMask(0),
    fAnaUtil(),
    fCheckSPDOutlier(false)
{
  // 
  // Constructor
  // 
  DGUARD(fDebug,3,"Default CTOR of AliBasedNdetaTask");
}

//____________________________________________________________________
AliBasedNdetaTask::AliBasedNdetaTask(const char* name)
  : AliBaseAODTask(Form("%sdNdeta", name),"AliBasedNdetaTask"), 
    fCorrEmpty(true), 
    fUseROOTProj(false),
    fTriggerEff(1),
    fTriggerEff0(1),
    fListOfCentralities(0),
    fNormalizationScheme(kFull), 
    fFinalMCCorrFile(""),
    fSatelliteVertices(0),
    fEmpiricalCorrection(0),
    fMeanVsC(0),	
    fCentMethod("default"),
    fPileupMask(0),
    fAnaUtil(),
    fCheckSPDOutlier(false)
{
  // 
  // Constructor
  // 
  DGUARD(fDebug, 3,"Named CTOR of AliBasedNdetaTask: %s", name);

  fTriggerMask        = AliAODForwardMult::kInel;
  fMinIpZ             = -10;
  fMaxIpZ             = +10;
  fListOfCentralities = new TObjArray(1);
  
  // Set the normalisation scheme 
  SetNormalizationScheme(kFull);
}


//____________________________________________________________________
AliBasedNdetaTask::~AliBasedNdetaTask()
{
  // 
  // Destructor
  // 
  DGUARD(fDebug,3,"Destruction of AliBasedNdetaTask");
}

//________________________________________________________________________
void 
AliBasedNdetaTask::SetDebugLevel(Int_t lvl)
{
  AliAnalysisTaskSE::SetDebugLevel(lvl);
  for (Int_t i = 0; i < fListOfCentralities->GetEntries(); i++) { 
    CentralityBin* bin = 
      static_cast<CentralityBin*>(fListOfCentralities->At(i));
    bin->SetDebugLevel(lvl);
  }
}

//________________________________________________________________________
void 
AliBasedNdetaTask::AddCentralityBin(UShort_t at, Short_t low, Short_t high)
{
  // 
  // Add a centrality bin 
  // 
  // Parameters:
  //    low  Low cut
  //    high High cut
  //
  DGUARD(fDebug,3,"Add a centrality bin [%d,%d] @ %d", low, high, at);
  CentralityBin* bin = MakeCentralityBin(GetName(), low, high);
  if (!bin) { 
    Error("AddCentralityBin", 
	  "Failed to create centrality bin for %s [%d,%d] @ %d", 
	  GetName(), low, high, at);
    return;
  }
  bin->SetSatelliteVertices(fSatelliteVertices);
  bin->SetDebugLevel(fDebug);
  fListOfCentralities->AddAtAndExpand(bin, at);
}

//________________________________________________________________________
AliBasedNdetaTask::CentralityBin*
AliBasedNdetaTask::MakeCentralityBin(const char* name, 
				     Short_t low, Short_t high) const
{
  // 
  // Make a centrality bin 
  // 
  // Parameters:
  //    name  Name used for histograms
  //    low   Low cut in percent
  //    high  High cut in percent
  // 
  // Return:
  //    A newly created centrality bin 
  //
  DGUARD(fDebug,3,"Make a centrality bin %s [%d,%d]", name, low, high);
  return new CentralityBin(name, low, high);
}

#define TESTAPPEND(SCHEME,BIT,STRING) \
  do { if (!(SCHEME & BIT)) break;					\
    if (!s.IsNull()) s.Append(","); s.Append(STRING); } while(false) 
  
//________________________________________________________________________
const Char_t*
AliBasedNdetaTask::NormalizationSchemeString(UShort_t scheme)
{
  // Create a string from normalization scheme bits 
  static TString s;
  s = "";

  if (scheme == kNone) 
    return s.Data();
  if (scheme == kFull) { 
    s = "FULL";
    return s.Data();
  }
  TESTAPPEND(scheme, kEventLevel, 	 "EVENT");
  TESTAPPEND(scheme, kBackground, 	 "BACKGROUND");
  TESTAPPEND(scheme, kTriggerEfficiency, "TRIGGER");
  TESTAPPEND(scheme, kZeroBin, 		 "ZEROBIN");

  return s.Data();
}
//________________________________________________________________________
UShort_t
AliBasedNdetaTask::ParseNormalizationScheme(const char* what)
{
  UShort_t    scheme = 0;
  TString     twhat(what);
  twhat.ToUpper();
  TObjString* opt;
  TObjArray* token = twhat.Tokenize(" ,|");
  TIter       next(token);
  while ((opt = static_cast<TObjString*>(next()))) { 
    TString s(opt->GetString());
    if      (s.IsNull()) continue;
    Bool_t add = true;
    switch (s[0]) { 
    case '-': add = false; // Fall through 
    case '+': s.Remove(0,1);  // Remove character 
    }
    UShort_t bit = 0;
    if (s.EqualTo("SHAPE")) { 
      AliWarningGeneral("AliBasedNdetaTask",
			Form("SHAPE correction no longer supported (%s)",
			     what));
      continue;
    }
    if      (s.CompareTo("EVENT")     == 0) bit = kEventLevel;
    else if (s.CompareTo("BACKGROUND")== 0) bit = kBackground;
    else if (s.CompareTo("TRIGGER")   == 0) bit = kTriggerEfficiency;
    else if (s.CompareTo("FULL")      == 0) bit = kFull;
    else if (s.CompareTo("NONE")      == 0) bit = kNone;
    else if (s.CompareTo("ZEROBIN")   == 0) bit = kZeroBin;
    else 
      ::Warning("SetNormalizationScheme", "Unknown option %s", s.Data());
    if (add) scheme |= bit;
    else     scheme ^= bit;
  }
  delete token;
  return scheme;
}  
//________________________________________________________________________
void 
AliBasedNdetaTask::SetNormalizationScheme(const char* what)
{
  // 
  // Set normalisation scheme 
  // 
  DGUARD(fDebug,3,"Set the normalization scheme: %s", what);
  SetNormalizationScheme(ParseNormalizationScheme(what));
}
//________________________________________________________________________
void 
AliBasedNdetaTask::SetNormalizationScheme(UShort_t scheme) 
{
  DGUARD(fDebug,3,"Set the normalization scheme: 0x%x", scheme);
  fNormalizationScheme = scheme; 
}
//____________________________________________________________________
Bool_t
AliBasedNdetaTask::SetCentralityMethod(const TString& method)
{
  Int_t id = GetCentMethodID(method);
  if (id < -1) {
    AliErrorF("Unknown centrality estimator: %s", method.Data());
    return false;
  }
  if (id < 0) { 
    // Do not use any estimator 
    AliInfoF("No centrality estimator: \"%s\"", method.Data());
    return false;
  }

  TString meth = GetCentMethod(id);
  if (fName.Contains("Forward", TString::kIgnoreCase) && meth.Contains("FMD")) 
    AliWarningF("Centrality estimator %s used by %s - beware of auto-corr",
		meth.Data(), fName.Data());  
  else if (fName.Contains("Central", TString::kIgnoreCase) && 
	   (meth.Contains("CL0") || meth.Contains("TKL")))
    AliWarningF("Centrality estimator %s used by %s - beware of auto-corr",
		meth.Data(), fName.Data());

  fCentMethod = meth;
  AliInfoF("Centrality estimator set to %s", fCentMethod.Data());
  return true;
}

//________________________________________________________________________
Int_t
AliBasedNdetaTask::GetCentMethodID(const TString& meth)
{
  Int_t ret = -2;
  TString m(meth);
  m.ToUpper();
  if (m.EqualTo("NONE") || m.EqualTo("NO") || m.EqualTo("FALSE")) ret = -1;
  else if (m.IsNull())               ret = kCentDefault;
  else if (m.BeginsWith("DEFAULT"))  ret = kCentDefault;
  else if (m.BeginsWith("ZEMVSZDC")) ret = kCentZEMvsZDC; 
  else if (m.BeginsWith("TKLVSV0M")) ret = kCentTklvsV0M; 
  else if (m.BeginsWith("V0MVSFMD")) ret = kCentV0MvsFMD; 
  else if (m.BeginsWith("NPA"))      ret = kCentNPA;
  else if (m.BeginsWith("ZPC"))      ret = kCentZPC;
  else if (m.BeginsWith("ZPA"))      ret = kCentZPA;
  else if (m.BeginsWith("ZNC"))      ret = kCentZNC;
  else if (m.BeginsWith("ZNA"))      ret = kCentZNA;
  else if (m.BeginsWith("CND"))      ret = kCentCND;
  else if (m.BeginsWith("CL1"))      ret = kCentCL1;
  else if (m.BeginsWith("CL0"))      ret = kCentCL0;
  else if (m.BeginsWith("TKL"))      ret = kCentTkl;
  else if (m.BeginsWith("TRK"))      ret = kCentTrk;
  else if (m.BeginsWith("FMD"))      ret = kCentFMD;
  else if (m.BeginsWith("V0C"))      ret = kCentV0C;
  else if (m.BeginsWith("V0A123"))   ret = kCentV0A123;
  else if (m.BeginsWith("V0A"))      ret = kCentV0A;
  else if (m.BeginsWith("V0M"))      ret = kCentV0M;
  if (m.Contains("TRUE"))            ret |= kCentTrue;
  if (m.Contains("EG"))              ret |= kCentEq;
  
  return ret;
}
//________________________________________________________________________
const char*
AliBasedNdetaTask::GetCentMethod(UShort_t id)
{
  static TString ret("");
  UShort_t base = (id & 0xFF);
  switch (base) {
  case kCentNone:       ret = "none";           break;
  case kCentDefault:    ret = "";               break;
  case kCentV0M:	ret = "V0M";		break;
  case kCentV0A:	ret = "V0A";		break;
  case kCentV0A123:	ret = "V0A123";		break;
  case kCentV0C:	ret = "V0C";		break;
  case kCentFMD:	ret = "FMD";		break;
  case kCentTrk:	ret = "TRK";		break;
  case kCentTkl:	ret = "TKL";		break;
  case kCentCL0:	ret = "CL0";		break;
  case kCentCL1:	ret = "CL1";		break;
  case kCentCND:	ret = "CND";		break;
  case kCentZNA:	ret = "ZNA";		break;
  case kCentZNC:	ret = "ZNC";		break;
  case kCentZPA:	ret = "ZPA";		break;
  case kCentZPC:	ret = "ZPC";		break;
  case kCentNPA:	ret = "NPA";		break;
  case kCentV0MvsFMD:	ret = "V0MvsFMD";	break;
  case kCentTklvsV0M:	ret = "TKLvsV0M";	break;
  case kCentZEMvsZDC:	ret = "ZEMvsZDC";	break;
  default:              ret = "";               break;
  }
  Bool_t tru = id & kCentTrue;
  Bool_t eq  = id & kCentEq;
  if (eq) { 
    if (!tru) ret.Append("eq");
    else      ret.Append("Eq");
  }
  if (tru)    ret.Append("true");
  
  return ret.Data();
}


//________________________________________________________________________
void 
AliBasedNdetaTask::InitializeCentBins()
{
  if (fListOfCentralities->GetEntries() > 0) return;

  // Automatically add 'all' centrality bin if nothing has been defined. 
  AddCentralityBin(0, 0, 0);
  if (HasCentrality()) { 
    const TArrayD* bins = fCentAxis.GetXbins();
    Int_t          nbin = fCentAxis.GetNbins(); 
    for (Int_t i = 0; i < nbin; i++) 
      AddCentralityBin(i+1,  Short_t((*bins)[i]), Short_t((*bins)[i+1]));
  }
}

//________________________________________________________________________
Bool_t
AliBasedNdetaTask::Book()
{
  // 
  // Create output objects.  
  //
  // This is called once per slave process 
  //
  DGUARD(fDebug,1,"Create user ouput object");

  fSums->Add(AliForwardUtil::MakeParameter("empirical", 
					   fEmpiricalCorrection != 0));
  fSums->Add(AliForwardUtil::MakeParameter("scheme", fNormalizationScheme));
  fSums->Add(AliForwardUtil::MakeParameter("centEstimator", 
					   GetCentMethodID(fCentMethod)));
  fSums->Add(AliForwardUtil::MakeParameter("spdOutlier", fCheckSPDOutlier));
  // fSums->Add(new TNamed("centEstimator", fCentMethod.Data()));

  // Make our centrality bins 
  InitializeCentBins();

  // Loop over centrality bins 
  TIter next(fListOfCentralities);
  CentralityBin* bin = 0;
  while ((bin = static_cast<CentralityBin*>(next()))) 
    bin->CreateOutputObjects(fSums, fTriggerMask);
  
  fMeanVsC=new TH2D("meanAbsSignalVsCentr",
		    "Mean absolute signal versus centrality",
		    400, 0, 20, 100, 0, 100);
  fSums->Add(fMeanVsC);

  return true;
}

//____________________________________________________________________
Bool_t
AliBasedNdetaTask::CheckEvent(const AliAODForwardMult& fwd) 
{
  AliBaseAODTask::CheckEvent(fwd);
  // Check full AOD mask 
  if (fPileupMask & kPileupFull && 
      fwd.IsTriggerBits(AliAODForwardMult::kPileUp)) 
    return false;

  // Check for SPD pile-up 
  if (fPileupMask & kPileupSPD  && 
      fwd.IsTriggerBits(AliAODForwardMult::kPileupSPD)) 
    return false;

  // Check for track pile-up 
  if (fPileupMask & kPileupTrk  && 
      fwd.IsTriggerBits(AliAODForwardMult::kPileupTrack)) 
    return false;

  // Check for out of bunc pile-up 
  if (fPileupMask & kPileupBC   && 
      fwd.IsTriggerBits(AliAODForwardMult::kPileupBC)) 
    return false;

  // Check for SPD outlier (N_cluster > 65 + 4 * N_tracklet)
  if (fCheckSPDOutlier && fwd.IsTriggerBits(AliAODForwardMult::kSPDOutlier))
    return false;
  
  // Here, we always return true, as the centrality bins will do 
  // their own checks on the events - this is needed for event 
  // normalization etc. 
  return true;
}

//____________________________________________________________________
Bool_t
AliBasedNdetaTask::Event(AliAODEvent& aod) 
{
  // 
  // Process a single event 
  // 
  // Parameters:
  //    option Not used
  //
  // Main loop
  DGUARD(fDebug,1,"Analyse the AOD event");
  if (fPileupMask & kPileupUtil && fAnaUtil.IsPileUpEvent(&aod)) return false;

  AliAODForwardMult* forward = GetForward(aod);
  if (!forward) return false;
  
  // Fill centrality histogram 
    
  Double_t vtx    = forward->GetIpZ();
  TH2D*    data   = GetHistogram(aod, false);
  TH2D*    dataMC = GetHistogram(aod, true);
  if (!data) return false;

  CheckEventData(vtx, data, dataMC);
  
  if (!ApplyEmpiricalCorrection(forward,data))
    return false;


  Bool_t isZero = ((fNormalizationScheme & kZeroBin) &&
		   !forward->IsTriggerBits(AliAODForwardMult::kNClusterGt0));
  Bool_t taken       = false;
  Bool_t checkPileup = fPileupMask == kPileupNormal;
  // Loop over centrality bins 
  CentralityBin* allBin = 
    static_cast<CentralityBin*>(fListOfCentralities->At(0));
  if (allBin->ProcessEvent(forward, fTriggerMask, isZero, fMinIpZ, fMaxIpZ, 
			   data, dataMC, checkPileup)) taken = true;
  
  // Find this centrality bin 
  if (HasCentrality()) {
    Double_t       cent    = forward->GetCentrality();
    if (!fCentMethod.IsNull()) { 
      AliAODHeader* hdr = dynamic_cast<AliAODHeader*>(aod.GetHeader());
      if(!hdr) AliFatal("Not a standard AOD");
      if (hdr) { 
	AliCentrality* cP = hdr->GetCentralityP();
	if (cP) { 
	  cent = cP->GetCentralityPercentile(fCentMethod);
	}
      }
    }
    Int_t          icent   = fCentAxis.FindBin(cent);
    CentralityBin* thisBin = 0;
    if (icent >= 1 && icent <= fCentAxis.GetNbins()) 
      thisBin = static_cast<CentralityBin*>(fListOfCentralities->At(icent));
    if (thisBin)
      if (thisBin->ProcessEvent(forward, fTriggerMask, isZero, fMinIpZ, 
				fMaxIpZ, data, dataMC, checkPileup)) 
	taken = true;
  }
  
  return taken;
}

//________________________________________________________________________
void AliBasedNdetaTask::CheckEventData(Double_t,
				       TH2*,
				       TH2*) 
{
}

//________________________________________________________________________
void 
AliBasedNdetaTask::SetHistogramAttributes(TH1D* h, Int_t colour, Int_t marker,
					  const char* title, const char* ytitle)
{
  // 
  // Set histogram graphical options, etc. 
  // 
  // Parameters:
  //    h       Histogram to modify
  //    colour  Marker color 
  //    marker  Marker style
  //    title   Title of histogram
  //    ytitle  Title on y-axis. 
  //
  h->SetTitle(title);
  h->SetMarkerColor(colour);
  h->SetMarkerStyle(marker);
  h->SetMarkerSize(marker == 29 || marker == 30 ? 1.2 : 1);
  h->SetFillStyle(0);
  TString ytit;
  if (ytitle && ytitle[0] != '\0') ytit = ytitle;
  ytit = "#frac{1}{#it{N}}#frac{d#it{N}_{ch}}{d#it{#eta}}";
  h->SetYTitle(ytit);
  h->GetXaxis()->SetTitleFont(132);
  h->GetXaxis()->SetLabelFont(132);
  h->GetXaxis()->SetNdivisions(10);
  h->GetYaxis()->SetTitleFont(132);
  h->GetYaxis()->SetLabelFont(132);
  h->GetYaxis()->SetNdivisions(10);
  h->GetYaxis()->SetDecimals();
  h->SetStats(0);
}

//________________________________________________________________________
void
AliBasedNdetaTask::ScaleToCoverage(TH2D* copy, const TH1D* norm) 
{
  // Normalize to the acceptance -
  // dndeta->Divide(accNorm);
  for (Int_t i = 1; i <= copy->GetNbinsX(); i++) { 
    Double_t a = norm->GetBinContent(i);
    for (Int_t j = 1; j <= copy->GetNbinsY(); j++) { 
      if (a <= 0) { 
	copy->SetBinContent(i,j,0);
	copy->SetBinError(i,j,0);
	continue;
      }
      Double_t c = copy->GetBinContent(i, j);
      Double_t e = copy->GetBinError(i, j);
      copy->SetBinContent(i, j, c / a);
      copy->SetBinError(i, j, e / a);
    }
  }
}
//________________________________________________________________________
void
AliBasedNdetaTask::ScaleToCoverage(TH1D* copy, const TH1D* norm) 
{
  // Normalize to the acceptance -
  // dndeta->Divide(accNorm);
  for (Int_t i = 1; i <= copy->GetNbinsX(); i++) { 
    Double_t a = norm->GetBinContent(i);
    if (a <= 0) { 
      copy->SetBinContent(i,0);
      copy->SetBinError(i,0);
      continue;
    }
    Double_t c = copy->GetBinContent(i);
    Double_t e = copy->GetBinError(i);
    copy->SetBinContent(i, c / a);
    copy->SetBinError(i, e / a);
  }
}

//________________________________________________________________________
TH1D*
AliBasedNdetaTask::ProjectX(const TH2D* h, 
			    const char* name,
			    Int_t firstbin, 
			    Int_t lastbin, 
			    bool  useRoot,
			    bool  corr,
			    bool  error)
{
  // 
  // Project onto the X axis 
  // 
  // Parameters:
  //    h         2D histogram 
  //    name      New name 
  //    firstbin  First bin to use 
  //    lastbin   Last bin to use
  //    error     Whether to calculate errors
  // 
  // Return:
  //    Newly created histogram or null
  //
  if (!h) return 0;
  if (useRoot) 
    return h->ProjectionX(name, firstbin, lastbin, (error ? "e" : ""));
  
  const TAxis* xaxis = h->GetXaxis();
  const TAxis* yaxis = h->GetYaxis();
  TH1D*  ret   = new TH1D(name, h->GetTitle(), xaxis->GetNbins(), 
			  xaxis->GetXmin(), xaxis->GetXmax());
  static_cast<const TAttLine*>(h)->Copy(*ret);
  static_cast<const TAttFill*>(h)->Copy(*ret);
  static_cast<const TAttMarker*>(h)->Copy(*ret);
  ret->GetXaxis()->ImportAttributes(xaxis);

  Int_t first = firstbin; 
  Int_t last  = lastbin;
  if      (first < 0)                    first = 1;
  else if (first >= yaxis->GetNbins()+2) first = yaxis->GetNbins()+1;
  if      (last  < 0)                    last  = yaxis->GetNbins();
  else if (last  >= yaxis->GetNbins()+2) last  = yaxis->GetNbins()+1;
  if (last-first < 0) { 
    AliWarningGeneral("AliBasedNdetaTask", 
		      Form("Nothing to project [%d,%d]", first, last));
    return 0;
    
  }

  // Loop over X bins 
  //DMSG(fDebug,3,"Projecting bins [%d,%d] of %s", first, last, h->GetName()));
  Int_t ybins = (last-first+1);
  for (Int_t xbin = 0; xbin <= xaxis->GetNbins()+1; xbin++) { 
    Double_t content = 0;
    Double_t error2  = 0;
    Int_t    nbins   = 0;
    
    
    for (Int_t ybin = first; ybin <= last; ybin++) { 
      Double_t c1 = h->GetBinContent(h->GetBin(xbin, ybin));
      Double_t e1 = h->GetBinError(h->GetBin(xbin, ybin));

      // Ignore empty bins 
      if (c1 < 1e-12) continue;
      if (e1 < 1e-12) {
	if (error) continue; 
	e1 = 1;
      }

      content    += c1;
      error2     += e1*e1;
      nbins++;
    } // for (ybin)
    if(content > 0 && nbins > 0) {
      Double_t factor = (corr ? Double_t(ybins) / nbins : 1);
#if 0
      AliWarningGeneral(ret->GetName(), 
			Form("factor @ %d is %d/%d -> %f", 
			     xbin, ybins, nbins, factor));
#endif
      if (error) { 
	// Calculate weighted average
	ret->SetBinContent(xbin, content * factor);
	ret->SetBinError(xbin, factor * TMath::Sqrt(error2));
      }
      else 
	ret->SetBinContent(xbin, factor * content);
    }
  } // for (xbin)
  
  return ret;
}
 
//________________________________________________________________________
Bool_t 
AliBasedNdetaTask::Finalize() 
{
  // 
  // Called at end of event processing.. 
  //
  // This is called once in the master 
  // 
  // Parameters:
  //    option Not used 
  //
  // Draw result to screen, or perform fitting, normalizations Called
  // once at the end of the query
  DGUARD(fDebug,1,"Process final merged results");

  UShort_t sNN;
  UShort_t sys; 
  ULong_t  trig;
  UShort_t scheme;
  // Int_t    centID;
  AliForwardUtil::GetParameter(fSums->FindObject("sNN"), sNN);
  AliForwardUtil::GetParameter(fSums->FindObject("sys"), sys);
  AliForwardUtil::GetParameter(fSums->FindObject("trigger"), trig);
  AliForwardUtil::GetParameter(fSums->FindObject("scheme"), scheme);
  //AliForwardUtil::GetParameter(fSums->FindObject("centEstimator"), centID);

  TH1*   cH = static_cast<TH1*>(fSums->FindObject("centAxis"));
  Info("", "centAxis: %p (%s)", cH, (cH ? cH->ClassName() : "null"));
  // TAxis* cA = static_cast<TAxis*>(fSums->FindObject("centAxis"));
  TAxis*  cA = (cH ? cH->GetXaxis() : 0);
  if (cA) cA->Copy(fCentAxis);
  fCentAxis.SetName("centAxis");
  fCentAxis.SetTitle("Centrality [%]");
  
  // (Re)Create our centrality bins 
  InitializeCentBins();

  // Print before we loop
  Print();

  // Loop over centrality bins 
  TIter next(fListOfCentralities);
  CentralityBin* bin = 0;
  gStyle->SetPalette(1);
  THStack* dndetaStack        = new THStack("dndeta", "dN/d#eta");
  THStack* dndetaMCStack      = new THStack("dndetaMC", "dN_{ch}/d#eta");
  
  TList* mclist = 0;
  TList* truthlist = 0;
  
  if (fFinalMCCorrFile.Contains(".root")) {
    TFile* ftest = TFile::Open(fFinalMCCorrFile.Data());
    if(ftest) {
      mclist    = dynamic_cast<TList*>(ftest->Get(Form("%sResults",GetName())));
      truthlist = dynamic_cast<TList*>(ftest->Get("MCTruthResults"));
    }
    else 
      AliWarning("MC analysis file invalid - no final MC correction possible");
  }
  Int_t style = GetMarker();
  Int_t color = GetColor();
  
  DMSG(fDebug,3,"Marker style=%d, color=%d", style, color);
  while ((bin = static_cast<CentralityBin*>(next()))) {
    bin->End(fSums, fResults, fNormalizationScheme, fTriggerEff, fTriggerEff0, 
	     fUseROOTProj, fCorrEmpty, fTriggerMask, 
	     style, color, mclist, truthlist);
    if (HasCentrality() && bin->IsAllBin()) 
      // If we have centrality bins, do not add the min-bias
      // distribution to the output stack.
      continue;
    TH1* dndeta      =               bin->GetResult("");
    TH1* dndetaMC    =               bin->GetResult("MC", false);
    DMSG(fDebug,2,"Results: bare=%p mcbare=%p", dndeta, dndetaMC);
    if (dndeta)      dndetaStack->Add(dndeta);
    if (dndetaMC)    dndetaMCStack->Add(dndetaMC);
  }
  // Output the stack
  fResults->Add(dndetaStack);

  // If available, output track-ref stack
  if (!dndetaMCStack->GetHists() || 
      dndetaMCStack->GetHists()->GetEntries() <= 0) {
    // AliWarning("No MC histograms found");
    delete dndetaMCStack;
    dndetaMCStack = 0;
  }
  if (dndetaMCStack) fResults->Add(dndetaMCStack);

  // Output collision energy string 
  if (sNN > 0) {
    TNamed* sNNObj = new TNamed("sNN", 
				AliForwardUtil::CenterOfMassEnergyString(sNN));
    sNNObj->SetUniqueID(sNN);
    fResults->Add(sNNObj); // fSNNString->Clone());
  }

  // Output collision system string 
  if (sys > 0) { 
    TNamed* sysObj = new TNamed("sys", 
				AliForwardUtil::CollisionSystemString(sys));
    sysObj->SetUniqueID(sys);
    fResults->Add(sysObj); // fSysString->Clone());
  }

  // Output centrality axis 
  fResults->Add(&fCentAxis);
  fResults->Add(new TNamed("centEstimator", fCentMethod.Data()));

  // Output trigger string 
  if (trig) { 
    TNamed* maskObj = new TNamed("trigger",
				 AliAODForwardMult::GetTriggerString(trig));
    maskObj->SetUniqueID(trig);
    fResults->Add(maskObj); // fTriggerString->Clone());
  }
  
  // Normalization string 
  if (scheme > 0) {
    TNamed* schemeObj = new TNamed("scheme",
				   NormalizationSchemeString(scheme));
    schemeObj->SetUniqueID(scheme);
    fResults->Add(schemeObj); // fSchemeString->Clone());
  }

  // Output vertex axis 
  TAxis* vtxAxis = new TAxis(1,fMinIpZ,fMaxIpZ);
  vtxAxis->SetName("vtxAxis");
  vtxAxis->SetTitle(Form("v_{z}#in[%+5.1f,%+5.1f]cm", fMinIpZ,fMaxIpZ));
  fResults->Add(vtxAxis);

  // Output trigger efficiency 
  fResults->Add(AliForwardUtil::MakeParameter("triggerEff", fTriggerEff));
  fResults->Add(AliForwardUtil::MakeParameter("triggerEff0", fTriggerEff0));

  TNamed* options = new TNamed("options","");
  TString str;
  str.Append(Form("Empty bins %scorrected for, ", fCorrEmpty ? "" : "not "));
  str.Append(Form("TH2::ProjectionX %sused", fUseROOTProj ? "" : "not "));
  options->SetTitle(str);
  fResults->Add(options);

  return true;
}

#define PF(N,V,...)					\
  AliForwardUtil::PrintField(N,V, ## __VA_ARGS__)
#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 
AliBasedNdetaTask::Print(Option_t* option) const
{
  // 
  // Print information 
  // 
  AliBaseAODTask::Print(option);
  TString schemeString(NormalizationSchemeString(fNormalizationScheme));

  gROOT->IncreaseDirLevel();
  PFB("Use TH2::ProjectionX",    fUseROOTProj);
  PFB("Correct for empty",       fCorrEmpty);
  PFV("Normalization scheme",	 schemeString );
  PFV("Trigger efficiency",	 fTriggerEff);
  PFV("Bin-0 Trigger efficiency", fTriggerEff0);
  PFV("Centrality estimator",    (fCentMethod.IsNull() ? 
				  "-default-" : fCentMethod.Data()));
  PF("Pile-up mask", "0x%x",     fPileupMask);
  PFB("Check SPD outlier",       fCheckSPDOutlier);
  gROOT->DecreaseDirLevel();  
}

//__________________________________________________________________
Int_t
AliBasedNdetaTask::GetMarkerStyle(UShort_t bits)
{
  Int_t  base   = bits & (0xFE);
  Bool_t hollow = bits & kHollow;
  switch (base) { 
  case kCircle:       return (hollow ? 24 : 20);
  case kSquare:       return (hollow ? 25 : 21);
  case kUpTriangle:   return (hollow ? 26 : 22);
  case kDownTriangle: return (hollow ? 32 : 23);
  case kDiamond:      return (hollow ? 27 : 33); 
  case kCross:        return (hollow ? 28 : 34); 
  case kStar:         return (hollow ? 30 : 29); 
  }
  return 1;
}
//__________________________________________________________________
UShort_t
AliBasedNdetaTask::GetMarkerBits(Int_t style) 
{ 
  UShort_t bits = 0;
  switch (style) { 
  case 24: case 25: case 26: case 27: case 28: case 30: case 32: 
    bits |= kHollow; break;
  }
  switch (style) { 
  case 20: case 24: bits |= kCircle;       break;
  case 21: case 25: bits |= kSquare;       break;
  case 22: case 26: bits |= kUpTriangle;   break;
  case 23: case 32: bits |= kDownTriangle; break;
  case 27: case 33: bits |= kDiamond;      break;
  case 28: case 34: bits |= kCross;        break;
  case 29: case 30: bits |= kStar;         break;
  }
  return bits;
}
//__________________________________________________________________
Int_t
AliBasedNdetaTask::FlipHollowStyle(Int_t style) 
{
  UShort_t bits = GetMarkerBits(style);
  Int_t    ret  = GetMarkerStyle(bits ^ kHollow);
  return ret;
}

//====================================================================
void
AliBasedNdetaTask::Sum::Init(TList* list, const TH2D* data, Int_t col)
{
  DGUARD(fDebug,1,"Initializing sums with %s", data->GetName());
  TString n(GetHistName(0));
  TString n0(GetHistName(1));
  const char* postfix = GetTitle();

  fSum = static_cast<TH2D*>(data->Clone(n));
  if (postfix) fSum->SetTitle(Form("%s (%s)", data->GetTitle(), postfix));
  fSum->SetDirectory(0);
  fSum->SetMarkerColor(col);
  fSum->SetMarkerStyle(GetMarkerStyle(kCircle|kSolid));
  fSum->Reset();
  list->Add(fSum);

  fSum0 = static_cast<TH2D*>(data->Clone(n0));
  if (postfix) 
    fSum0->SetTitle(Form("%s 0-bin (%s)", data->GetTitle(), postfix));
  else   
    fSum0->SetTitle(Form("%s 0-bin", data->GetTitle()));
  fSum0->SetDirectory(0);
  fSum0->SetMarkerColor(col);
  fSum0->SetMarkerStyle(GetMarkerStyle(kCross|kHollow));
  fSum0->Reset();
  list->Add(fSum0);

  fEvents = new TH1I(GetHistName(2), "Event types", 2, -.5, 1.5);
  fEvents->SetDirectory(0);
  fEvents->GetXaxis()->SetBinLabel(1, "Non-zero");
  fEvents->GetXaxis()->SetBinLabel(2, "Zero");
  list->Add(fEvents);
}

//____________________________________________________________________
TString
AliBasedNdetaTask::Sum::GetHistName(const char* /*name*/, 
				    Int_t what, const char* post)
{
  TString n;
  switch (what) { 
  case 0: n = "sum"; break;
  case 1: n = "sum0"; break;
  case 2: n = "events"; break;
  }
  if (post && post[0] != '\0')  n.Append(post);
  return n;
}

//____________________________________________________________________
TString
AliBasedNdetaTask::Sum::GetHistName(Int_t what) const
{
  return GetHistName(GetName(), what, GetTitle());
}

//____________________________________________________________________
void
AliBasedNdetaTask::Sum::Add(const TH2D* data, Bool_t isZero)
{
  DGUARD(fDebug,2,"Adding %s to sums", data->GetName());
  if (isZero) fSum0->Add(data);
  else        fSum->Add(data);
  fEvents->Fill(isZero ? 1 : 0);
}

//____________________________________________________________________
TH2D*
AliBasedNdetaTask::Sum::CalcSum(TList*       output, 
				Double_t&    ntotal,
				Double_t     epsilon0, 
				Double_t     epsilon,
				Int_t        marker,
				Bool_t       rootProj, 
				Bool_t       corrEmpty) const
{
  DGUARD(fDebug,2,"Calculating final summed histogram %s", fSum->GetName());

  // The return value `ret' is not scaled in anyway
  TH2D* ret      = static_cast<TH2D*>(fSum->Clone(fSum->GetName()));
  ret->SetDirectory(0);
  Int_t n        = Int_t(fEvents->GetBinContent(1));
  Int_t n0       = Int_t(fEvents->GetBinContent(2));
  ntotal         = n;
  if (n0 > 0) { 
    ret->Reset();
    DMSG(fDebug,1, 
	 "Adding histograms %s(%d) and %s(%d) w/weights %f and %f resp.",
	 fSum0->GetName(), n, fSum->GetName(), n0, 1./epsilon,1./epsilon0);
    ret->Add(fSum0, fSum, 1. / epsilon0, 1. / epsilon); 
    ntotal = n / epsilon + n0 / epsilon0;
  }

  TList* out = new TList;
  out->SetOwner();
  const char* postfix = GetTitle();
  if (!postfix) postfix = "";
  out->SetName(Form("partial%s", postfix));
  output->Add(out);

  // Now make copies, normalize them, and store in output list 
  // Note, these are the only ones normalized here
  // These are mainly for diagnostics 
  TH2D* sumCopy  = static_cast<TH2D*>(fSum->Clone("sum"));
  TH2D* sum0Copy = static_cast<TH2D*>(fSum0->Clone("sum0"));
  TH2D* retCopy  = static_cast<TH2D*>(ret->Clone("sumAll"));
  sumCopy->SetMarkerStyle(FlipHollowStyle(marker));
  sumCopy->SetDirectory(0);
  sum0Copy->SetMarkerStyle(GetMarkerStyle(GetMarkerBits(marker)+4));
  sum0Copy->SetDirectory(0);
  retCopy->SetMarkerStyle(marker);
  retCopy->SetDirectory(0);

  Int_t nY      = fSum->GetNbinsY();
  Int_t o       = 0; // nY+1;
  TH1D* norm    = ProjectX(fSum,  "norm",    o, o, rootProj, corrEmpty, false);
  TH1D* norm0   = ProjectX(fSum0, "norm0",   o, o, rootProj, corrEmpty, false);
  TH1D* normAll = ProjectX(ret,   "normAll", o, o, rootProj, corrEmpty, false);
  norm->SetTitle("#eta coverage - >0-bin");
  norm0->SetTitle("#eta coverage - 0-bin");
  normAll->SetTitle("#eta coverage");
  norm->SetDirectory(0);
  norm0->SetDirectory(0);
  normAll->SetDirectory(0);
  
  TH1D* sumCopyPx  = ProjectX(sumCopy,  "average",    1,nY,rootProj,corrEmpty);
  TH1D* sum0CopyPx = ProjectX(sum0Copy, "average0",   1,nY,rootProj,corrEmpty);
  TH1D* retCopyPx  = ProjectX(retCopy,  "averageAll", 1,nY,rootProj,corrEmpty);
  sumCopyPx-> SetTitle(Form("#sum_{i}^{N_{#phi}}%s", sumCopy->GetTitle()));
  sum0CopyPx->SetTitle(Form("#sum_{i}^{N_{#phi}}%s", sum0Copy->GetTitle()));
  retCopyPx-> SetTitle(Form("#sum_{i}^{N_{#phi}}%s", retCopy->GetTitle()));
  sumCopyPx-> SetDirectory(0);
  sum0CopyPx->SetDirectory(0);
  retCopyPx-> SetDirectory(0);

  TH1D* phi    = ProjectX(fSum,  "phi",    nY+1,nY+1,rootProj,corrEmpty,false);
  TH1D* phi0   = ProjectX(fSum0, "phi0",   nY+1,nY+1,rootProj,corrEmpty,false);
  TH1D* phiAll = ProjectX(ret,   "phiAll", nY+1,nY+1,rootProj,corrEmpty,false);
  phi   ->SetTitle("#phi acceptance from dead strips - >0-bin");
  phi0  ->SetTitle("#phi acceptance from dead strips - 0-bin");
  phiAll->SetTitle("#phi acceptance from dead strips");
  phi   ->SetDirectory(0);
  phi0  ->SetDirectory(0);
  phiAll->SetDirectory(0);

  const TH1D* cov    = (corrEmpty ? norm    : phi);
  const TH1D* cov0   = (corrEmpty ? norm0   : phi0);
  const TH1D* covAll = (corrEmpty ? normAll : phiAll);

  // Here, we scale to the coverage (or phi acceptance)
  ScaleToCoverage(sumCopy,  cov);
  ScaleToCoverage(sum0Copy, cov0);
  ScaleToCoverage(retCopy,  covAll);

  // Scale our 1D histograms
  sumCopyPx ->Scale(1., "width");
  sum0CopyPx->Scale(1., "width");  
  retCopyPx ->Scale(1., "width");  

  DMSG(fDebug,2,"Maximum %f,%f changed to %f", sumCopyPx->GetMaximum(), 
       sum0CopyPx->GetMaximum(), retCopyPx->GetMaximum());

  // Scale the normalization - they should be 1 at the maximum
  norm   ->Scale(n > 0   ? 1. / n  : 1);
  norm0  ->Scale(n0 > 0 ? 1. / n0 : 1);
  normAll->Scale(ntotal > 0 ? 1. / ntotal : 1);

  // Scale the normalization - they should be 1 at the maximum
  phi   ->Scale(n > 0   ? 1. / n  : 1);
  phi0  ->Scale(n0 > 0 ? 1. / n0 : 1);
  phiAll->Scale(ntotal > 0 ? 1. / ntotal : 1);

  out->Add(sumCopy);
  out->Add(sum0Copy);
  out->Add(retCopy);
  out->Add(sumCopyPx);
  out->Add(sum0CopyPx);
  out->Add(retCopyPx);
  out->Add(norm);
  out->Add(norm0);
  out->Add(normAll);
  out->Add(phi);
  out->Add(phi0);
  out->Add(phiAll);

  if (fDebug >= 1) {
    if (n0 > 0) 
      DMSG(fDebug,1,"Returning  (1/%f * %s + 1/%f * %s), "
	   "1/%f * %d + 1/%f * %d = %d", 
	   epsilon0, fSum0->GetName(), epsilon, fSum->GetName(), 
	   epsilon0, n0, epsilon, n, int(ntotal));
    else 
      DMSG(fDebug,1, "Returning %s, %d", fSum->GetName(), int(ntotal));
  }

#if 0
  for (Int_t i = 1; i <= ret->GetNbinsX(); i++) { 
    Double_t nc  = sum->GetBinContent(i, 0);
    Double_t nc0 = sum0->GetBinContent(i, 0);
    ret->SetBinContent(i, 0, nc + nc0); // Just count events 
  }
#endif
 
  return ret;
}

//====================================================================
AliBasedNdetaTask::CentralityBin::CentralityBin()
  : TNamed("", ""), 
    fSums(0), 
    fOutput(0),
    fSum(0), 
    fSumMC(0), 
    fTriggers(0), 
    fStatus(0),
    fLow(0), 
    fHigh(0),
    fDoFinalMCCorrection(false),
    fSatelliteVertices(false),
    fDebug(0)
{
  // 
  // Constructor 
  //
  DGUARD(fDebug,3,"Default CTOR of AliBasedNdeta::CentralityBin");
}
//____________________________________________________________________
AliBasedNdetaTask::CentralityBin::CentralityBin(const char* name, 
						Short_t low, Short_t high)
  : TNamed(name, ""), 
    fSums(0), 
    fOutput(0),
    fSum(0), 
    fSumMC(0), 
    fTriggers(0),
    fStatus(0),
    fLow(low), 
    fHigh(high),
    fDoFinalMCCorrection(false), 
    fSatelliteVertices(false),
    fDebug(0)
{
  // 
  // Constructor 
  // 
  // Parameters:
  //    name Name used for histograms (e.g., Forward)
  //    low  Lower centrality cut in percent 
  //    high Upper centrality cut in percent 
  //
  DGUARD(fDebug,3,"Named CTOR of AliBasedNdeta::CentralityBin: %s [%3d,%3d]",
	 name,low,high);
  if (low <= 0 && high <= 0) { 
    fLow  = 0; 
    fHigh = 0;
    SetTitle("All centralities");
  }
  else {
    fLow  = low;
    fHigh = high;
    SetTitle(Form("Centrality bin from %3d%% to %3d%%", low, high));
  }
}
//____________________________________________________________________
AliBasedNdetaTask::CentralityBin::CentralityBin(const CentralityBin& o)
  : TNamed(o), 
    fSums(o.fSums), 
    fOutput(o.fOutput),
    fSum(o.fSum), 
    fSumMC(o.fSumMC), 
    fTriggers(o.fTriggers), 
    fStatus(o.fStatus),
    fLow(o.fLow), 
    fHigh(o.fHigh),
    fDoFinalMCCorrection(o.fDoFinalMCCorrection),
    fSatelliteVertices(o.fSatelliteVertices),
    fDebug(o.fDebug)
{
  // 
  // Copy constructor 
  // 
  // Parameters:
  //    other Object to copy from 
  //
  DGUARD(fDebug,3,"Copy CTOR of AliBasedNdeta::CentralityBin");
}
//____________________________________________________________________
AliBasedNdetaTask::CentralityBin::~CentralityBin()
{
  // 
  // Destructor 
  //
  DGUARD(fDebug,3,"DTOR of AliBasedNdeta::CentralityBin");

  // if (fSums) fSums->Delete();
  // if (fOutput) fOutput->Delete();
}

//____________________________________________________________________
AliBasedNdetaTask::CentralityBin&
AliBasedNdetaTask::CentralityBin::operator=(const CentralityBin& o)
{
  // 
  // Assignment operator 
  // 
  // Parameters:
  //    other Object to assign from 
  // 
  // Return:
  //    Reference to this 
  //
  DGUARD(fDebug,3,"Centrality bin assignment");
  if (&o == this) return *this; 
  SetName(o.GetName());
  SetTitle(o.GetTitle());
  fSums      = o.fSums;
  fOutput    = o.fOutput;
  fSum       = o.fSum;
  fSumMC     = o.fSumMC;
  fTriggers  = o.fTriggers;
  fStatus    = o.fStatus;
  fLow       = o.fLow;
  fHigh      = o.fHigh;
  fDoFinalMCCorrection = o.fDoFinalMCCorrection;
  fSatelliteVertices = o.fSatelliteVertices;

  return *this;
}
//____________________________________________________________________
Int_t
AliBasedNdetaTask::CentralityBin::GetColor(Int_t fallback) const 
{
  if (IsAllBin()) return fallback;
  Float_t  fc       = (fLow+double(fHigh-fLow)/2) / 100;
  Int_t    nCol     = gStyle->GetNumberOfColors();
  Int_t    icol     = TMath::Min(nCol-1,int(fc * nCol + .5));
  Int_t    col      = gStyle->GetColorPalette(icol);
  return col;
}
//____________________________________________________________________
const char* 
AliBasedNdetaTask::CentralityBin::GetListName() const
{
  // 
  // Get the list name 
  // 
  // Return:
  //    List Name 
  //
  if (IsAllBin()) return "all"; 
  return Form("cent%03d_%03d", fLow, fHigh);
}
//____________________________________________________________________
void
AliBasedNdetaTask::CentralityBin::CreateOutputObjects(TList* dir, Int_t mask)
{
  // 
  // Create output objects 
  // 
  // Parameters:
  //    dir   Parent list
  //
  DGUARD(fDebug,1,"Create centrality bin output objects");
  fSums = new TList;
  fSums->SetName(GetListName());
  fSums->SetOwner();
  dir->Add(fSums);

  fTriggers = AliAODForwardMult::MakeTriggerHistogram("triggers", mask);
  fTriggers->SetDirectory(0);

  fStatus = AliAODForwardMult::MakeStatusHistogram("status");
  fStatus->SetDirectory(0);

  fSums->Add(fTriggers);
  fSums->Add(fStatus);
}
//____________________________________________________________________
void
AliBasedNdetaTask::CentralityBin::SetDebugLevel(Int_t lvl)
{
  fDebug = lvl;
  if (fSum) fSum->fDebug = lvl;
  if (fSumMC) fSumMC->fDebug = lvl;
}

//____________________________________________________________________
Bool_t
AliBasedNdetaTask::CentralityBin::ReadSum(TList* list, bool mc)
{
  const char* post = (mc ? "MC" : "");
  TString     sn   = Sum::GetHistName(GetName(),0,post);
  TString     sn0  = Sum::GetHistName(GetName(),1,post);
  TString     ev   = Sum::GetHistName(GetName(),2,post);
  TH2D* sum        = static_cast<TH2D*>(list->FindObject(sn));
  TH2D* sum0       = static_cast<TH2D*>(list->FindObject(sn0));
  TH1I* events     = static_cast<TH1I*>(list->FindObject(ev));
  if (!sum || !sum0 || !events) {
    if (!mc)
      AliWarningF("Failed to find one or more histograms: "
		  "%s (%p) %s (%p) %s (%p)", 
		  sn.Data(), sum, 
		  sn0.Data(), sum0, 
		  ev.Data(), events); 
    return false;
  }
  Sum* ret     = new Sum(GetName(), post);
  ret->fSum    = sum;
  ret->fSum0   = sum0;
  ret->fEvents = events;
  ret->fDebug  = fDebug;
  if (mc) fSumMC = ret;
  else    fSum   = ret;

  return true;
}

//____________________________________________________________________
void
AliBasedNdetaTask::CentralityBin::CreateSums(const TH2D* data, const TH2D* mc)
{
  // 
  // Create sum histogram 
  // 
  // Parameters:
  //    data  Data histogram to clone 
  //    mc    (optional) MC histogram to clone 
  //
  DGUARD(fDebug,1,"Create centrality bin sums from %s", 
	 data ? data->GetName() : "(null)");
  if (data) {
    fSum = new Sum(GetName(),"");
    fSum->Init(fSums, data, GetColor());
    fSum->fDebug = fDebug;
  }

  // If no MC data is given, then do not create MC sum histogram 
  if (!mc) return;

  fSumMC = new Sum(GetName(), "MC");
  fSumMC->Init(fSums, mc, GetColor());
  fSumMC->fDebug = fDebug;
}

//____________________________________________________________________
Bool_t
AliBasedNdetaTask::CentralityBin::CheckEvent(const AliAODForwardMult* forward,
					     Int_t triggerMask,
					     Double_t vzMin, 
					     Double_t vzMax,
					     Bool_t   checkPileup)
{
  // 
  // Check the trigger, vertex, and centrality
  // 
  // Parameters:
  //    aod Event input 
  // 
  // Return:
  //    true if the event is to be used 
  //
  if (!forward) return false;

  DGUARD(fDebug,2,"Check the event");
  // We do not check for centrality here - it's already done 
  return forward->CheckEvent(triggerMask, vzMin, vzMax, 0, 0, 
			     fTriggers, fStatus, checkPileup);
}
  
  
//____________________________________________________________________
Bool_t
AliBasedNdetaTask::CentralityBin::ProcessEvent(const AliAODForwardMult* forward,
					       Int_t triggerMask, Bool_t isZero,
					       Double_t vzMin, Double_t vzMax,
					       const TH2D* data, const TH2D* mc,
					       Bool_t checkPileup)
{
  // 
  // Process an event
  // 
  // Parameters:
  //    forward     Forward data (for trigger, vertex, & centrality)
  //    triggerMask Trigger mask 
  //    vzMin       Minimum IP z coordinate
  //    vzMax       Maximum IP z coordinate
  //    data        Data histogram 
  //    mc          MC histogram
  //
  DGUARD(fDebug,1,"Process one event for %s a given centrality bin", 
	 data ? data->GetName() : "(null)");
  if (!CheckEvent(forward, triggerMask, vzMin, vzMax, checkPileup)) 
    return false;
  if (!data) return false;
  if (!fSum) CreateSums(data, mc);

  fSum->Add(data, isZero);
  if (mc) fSumMC->Add(mc, isZero);

  return true;
}

//________________________________________________________________________
Double_t 
AliBasedNdetaTask::CentralityBin::Normalization(const TH1I& t,
						UShort_t    scheme,
						Double_t    trigEff,
						Double_t&   ntotal,
						TString*    text) const
{
  // 
  // Calculate normalization 
  // 
  // Parameters: 
  //    t       Trigger histogram
  //    scheme  Normaliztion scheme 
  //    trigEff From MC
  //    ntotal  On return, contains the number of events. 
  //
  DGUARD(fDebug,1,"Normalize centrality bin %s [%3d-%3d%%] with %s", 
	 GetName(), fLow, fHigh, t.GetName());
  Double_t nAll        = t.GetBinContent(AliAODForwardMult::kBinAll);
  Double_t nB          = t.GetBinContent(AliAODForwardMult::kBinB);
  Double_t nA          = t.GetBinContent(AliAODForwardMult::kBinA);
  Double_t nC          = t.GetBinContent(AliAODForwardMult::kBinC);
  Double_t nE          = t.GetBinContent(AliAODForwardMult::kBinE);
  Double_t nOffline    = t.GetBinContent(AliAODForwardMult::kBinOffline);
  Double_t nTriggered  = t.GetBinContent(AliAODForwardMult::kWithTrigger);
  Double_t nWithVertex = t.GetBinContent(AliAODForwardMult::kWithVertex);
  Double_t nAccepted   = ntotal; 
  ntotal               = 0;
  
  if (nTriggered <= 0.1) { 
    AliError("Number of triggered events <= 0");
    return -1;
  }
  if (nWithVertex <= 0.1) { 
    AliError("Number of events with vertex <= 0");
    return -1;
  }
  ntotal          = nAccepted;
  Double_t vtxEff = nWithVertex / nTriggered;
  Double_t scaler = 1;
  Double_t beta   = nA + nC - 2*nE;


  TString rhs("N = N_acc");
  if (!(scheme & kZeroBin)) {
    if (scheme & kEventLevel) {
      ntotal = nAccepted / vtxEff;
      scaler = vtxEff;
      DMSG(fDebug,0,"Calculating event normalisation as\n"
	   " N = N_A * N_T / N_V = %d * %d / %d = %f (%f)",
	   Int_t(nAccepted), Int_t(nTriggered), Int_t(nWithVertex), 
	   ntotal, scaler);    
      if (scheme & kBackground) {
	//          1            E_V             E_V
	//   s = --------- = ------------- = ------------ 
	//        1 - beta   1 - beta E_V    1 - beta N_V 
	//       ---  ----       --------        ---- ---
	//       E_V  N_V          N_V           N_V  N_T 
	// 
	//          E_V
	//     = ------------
	//        1 - beta 
	//            ----
	//             N_T 
	// 
	ntotal -= nAccepted * beta / nWithVertex;
	// This one is direct and correct. 
	// scaler = 1. / (1. / vtxEff - beta / nWithVertex);
	// A simpler expresion
	scaler /= (1 - beta / nTriggered); // 0.831631 -> 0.780689
	DMSG(fDebug,0,"Calculating event normalisation as\n"
	     " beta = N_a + N_c + 2 N_e = %d + %d - 2 * %d = %d\n"
	     " N = N - N_A * beta / N_V = %f - %d * %d / %d = %f (%f)",
	     Int_t(nA), Int_t(nC), Int_t(nE), Int_t(beta),
	     nAccepted / vtxEff, Int_t(nAccepted), Int_t(beta), 
	     Int_t(nWithVertex), ntotal, scaler);
	rhs.Append("(1/eps_V - beta/N_vtx)");
      } // Background 
      else 
	rhs.Append("/eps_V");
    } // Event-level
    if (scheme & kTriggerEfficiency) {
      Int_t old =  Int_t(ntotal);
      ntotal    /= trigEff;
      scaler    *= trigEff;
      DMSG(fDebug,0,"Correcting for trigger efficiency:\n"
	   " N = 1 / E_X * N = 1 / %f * %d = %f (%f)", 
	   trigEff, old, ntotal, scaler);
      rhs.Append("/eps_T");
    } // Trigger efficiency
  } 
  else  {
    // Calculate as 
    // 
    //  N = N_A + 1/E_X * N_A / N_V (N_T - N_V - beta)
    //    = N_A (1 + 1/E_X (N_T/N_V - 1 - beta / N_V))
    //    = N_A (1 + 1/E_X (1/E_V - 1 - beta / N_V))
    // 
    //  s = N_A/N = 1 / (1 + 1/E_X (N_T/N_V - 1 - beta / N_V))
    //    = N_V / (N_V + 1/E_X (N_T - N_V - beta)) 
    // 
    if (!(scheme & kBackground)) beta = 0;
    ntotal = nAccepted * (1 + 1/trigEff * (nTriggered / nWithVertex - 1 
					 - beta / nWithVertex));
    scaler = nWithVertex / (nWithVertex + 
			    1/trigEff * (nTriggered-nWithVertex-beta));
    DMSG(fDebug,0,"Calculating event normalisation as\n"
	 "  beta = N_a + N_c + 2 N_e = %d + %d - 2 * %d = %d\n"
	 "  N = N_A (1 + 1/E_X (N_T/N_V - 1 - beta / N_V)) = "
	 "%d (1 + 1 / %f (%d / %d - 1 - %d / %d)) = %f (%f)",
	 Int_t(nA), Int_t(nC), Int_t(nE), Int_t(beta),
	 Int_t(nAccepted), trigEff, Int_t(nTriggered), 
	 Int_t(nWithVertex), Int_t(beta), Int_t(nWithVertex), 
	 ntotal, scaler);
    rhs.Append("(1+1/eps_T(1/eps_V-1-beta/N_vtx))");
  }

  if (text) {
    text->Append(Form("%-40s = %d\n", "N_all",	      UInt_t(nAll)));
    text->Append(Form("%-40s = %d\n", "N_acc",	      UInt_t(nAccepted)));
    text->Append(Form("%-40s = %d\n", "N_trg",        UInt_t(nTriggered)));
    text->Append(Form("%-40s = %d\n", "N_vtx",	      UInt_t(nWithVertex)));
    text->Append(Form("%-40s = %d\n", "N_B",	      UInt_t(nB)));
    text->Append(Form("%-40s = %d\n", "N_A",	      UInt_t(nA)));
    text->Append(Form("%-40s = %d\n", "N_C",  	      UInt_t(nC)));
    text->Append(Form("%-40s = %d\n", "N_E",	      UInt_t(nE)));
    text->Append(Form("%-40s = %d\n", "beta = N_A + N_C - 2N_E",UInt_t(beta)));
    text->Append(Form("%-40s = %f\n", "eps_V = N_vtx/N_trg",vtxEff));
    text->Append(Form("%-40s = %f\n", "eps_T",	      trigEff));
    text->Append(Form("%-40s = %f\n", rhs.Data(),     ntotal));
  }
  TString tN = t.GetXaxis()->GetBinLabel(AliAODForwardMult::kWithTrigger);
  tN.ReplaceAll("w/Selected trigger (","");
  tN.ReplaceAll(")", "");
  DMSG(fDebug,0,"\n"
       " Total of        %9d events for %s\n"
       "  of these       %9d have an offline trigger\n"
       "  of these N_T = %9d has the selected trigger (%s)\n" 
       "  of these N_V = %9d has a vertex\n" 
       "  of these N_A = %9d were in the selected range\n"
       "  Triggers by hardware type:\n"
       "    N_b   =  %9d\n"
       "    N_ac  =  %9d (%d+%d)\n"
	       "    N_e   =  %9d\n"
       "  Vertex efficiency:          %f\n"
       "  Trigger efficiency:         %f\n"
       "  Total number of events: N = %f\n"
       "  Scaler (N_A/N):             %f\n"
       "  %25s = %f",
       Int_t(nAll), GetTitle(), Int_t(nOffline), 
       Int_t(nTriggered), tN.Data(), 
       Int_t(nWithVertex), Int_t(nAccepted),
       Int_t(nB), Int_t(nA+nC), Int_t(nA), Int_t(nC), Int_t(nE), 
       vtxEff, trigEff, ntotal, scaler, rhs.Data(), ntotal);
  return scaler;
}

//________________________________________________________________________
const char* 
AliBasedNdetaTask::CentralityBin::GetResultName(const char* postfix) const
{
  static TString n;
  n = GetName();
  n.ReplaceAll("dNdeta", "");
  n.Prepend("dndeta");
  n.Append(postfix);
  return n.Data();
}
//________________________________________________________________________
TH1* 
AliBasedNdetaTask::CentralityBin::GetResult(const char* postfix,
					    Bool_t      verbose) const
{
  if (!fOutput) { 
    AliWarningF("No output list defined in %s [%3d,%3d]", GetName(), 
		fLow, fHigh);
    return 0;
  }
  TString  n = GetResultName(postfix);
  TObject* o = fOutput->FindObject(n.Data());
  if (!o) { 
    if (verbose)
      AliWarningF("Object %s not found in output list of %s", 
		  n.Data(), GetName());
    return 0;
  }
  return static_cast<TH1*>(o);
}

//________________________________________________________________________
void 
AliBasedNdetaTask::CentralityBin::MakeResult(const TH2D* sum,  
					     const char* postfix, 
					     bool        rootProj, 
					     bool        corrEmpty,
					     Double_t    scaler,
					     Int_t       marker,
					     Int_t       color,
					     TList*      mclist, 
					     TList*      truthlist)
{
  // 
  // Generate the dN/deta result from input 
  // 
  // Parameters: 
  //     sum        Sum of 2D hists 
  //     postfix    Post fix on names
  //     rootProj   Whether to use ROOT TH2::ProjectionX
  //     corrEmpty  Correct for empty bins 
  //     scaler     Event-level normalization scaler  
  //
  DGUARD(fDebug,1,"Make centrality bin result from %s", sum->GetName());
  TString base(GetName());
  base.ReplaceAll("dNdeta", "");
  base.Append(postfix);
  TH2D* copy    = static_cast<TH2D*>(sum->Clone(Form("d2Ndetadphi%s",
						     base.Data())));
  
  TH1D* accNorm = 0;
  Int_t nY      = sum->GetNbinsY();
  // Hack HHD Hans test code to manually remove FMD2 dead channel (but
  // it is on outer?)
  // 
  // cholm comment: The original hack has been moved to
  // AliForwarddNdetaTask::CheckEventData - this simplifies things a
  // great deal, and we could in principle use the new phi acceptance.
  // 
  // However, since we may have filtered out the dead sectors in the
  // AOD production already, we can't be sure we can recalculate the
  // phi acceptance correctly, so for now, we rely on fCorrEmpty being set. 
  Int_t o       = (corrEmpty ? 0 : nY+1);
  accNorm = ProjectX(sum, Form("norm%s",base.Data()), o, o, 
		     rootProj, corrEmpty, false);
  accNorm->SetDirectory(0);

  // --- Normalize to the coverage -----------------------------------
  if (corrEmpty) {
    ScaleToCoverage(copy, accNorm);
    // --- Event-level normalization ---------------------------------
    copy->Scale(scaler);
  }

  // --- Project on X axis -------------------------------------------
  TH1D* dndeta = ProjectX(copy, Form("dndeta%s",base.Data()),
			  1, nY, rootProj, corrEmpty);
  dndeta->SetDirectory(0);
  // Event-level normalization 
  if (!corrEmpty) {
    ScaleToCoverage(dndeta, accNorm);
    dndeta->Scale(scaler);
  }
  dndeta->Scale(1., "width");
  copy->Scale(1., "width");
  
  TH1D*  dndetaMCCorrection = 0;
  TH1D*  dndetaMCtruth      = 0;
  TList* centlist           = 0;
  TList* truthcentlist      = 0;
  
  // --- Possible final correction to <MC analysis> / <MC truth> -----
  // we get the rebinned distribution for satellite to make the correction
  TString rebinSuf(fSatelliteVertices ? "_rebin05" : "");
  if(mclist) {
    centlist = static_cast<TList*> (mclist->FindObject(GetListName()));
    if(centlist)
      dndetaMCCorrection = 
	static_cast<TH1D*>(centlist->FindObject(Form("dndeta%s%s",
						     base.Data(),
						     rebinSuf.Data())));
  }
  if (truthlist) {
    truthcentlist = static_cast<TList*>(truthlist->FindObject(GetListName()));
    if (truthcentlist)
      // TODO here new is "dndetaTruth"
      dndetaMCtruth = 
	static_cast<TH1D*>(truthcentlist->FindObject(Form("dndetaMCTruth%s",
							  rebinSuf.Data())));
  }
  
  if (dndetaMCCorrection && dndetaMCtruth) {
    AliInfo("Correcting with final MC correction");
    TString testString(dndetaMCCorrection->GetName());

    // We take the measured MC dN/deta and divide with truth 
    dndetaMCCorrection->Divide(dndetaMCtruth);
    dndetaMCCorrection->SetTitle("Final MC correction");
    dndetaMCCorrection->SetName("finalMCCorr");
    for(Int_t m = 1; m <= dndetaMCCorrection->GetNbinsX(); m++) {
      if(dndetaMCCorrection->GetBinContent(m) < 0.5 || 
	 dndetaMCCorrection->GetBinContent(m) > 1.75) {
	dndetaMCCorrection->SetBinContent(m,1.);
	dndetaMCCorrection->SetBinError(m,0.1);
      }
    }
    // Applying the correction
    if (!fSatelliteVertices)
      // For non-satellites we took the same binning, so we do a straight 
      // division 
      dndeta->Divide(dndetaMCCorrection);
    else {
      // For satelitte events, we took coarser binned histograms, so 
      // we need to do a bit more 
      for(Int_t m = 1; m <= dndeta->GetNbinsX(); m++) {
	if(dndeta->GetBinContent(m) <= 0.01 ) continue;
	
	Double_t eta     = dndeta->GetXaxis()->GetBinCenter(m);
	Int_t    bin     = dndetaMCCorrection->GetXaxis()->FindBin(eta);
	Double_t mccorr  = dndetaMCCorrection->GetBinContent(bin);
	Double_t mcerror = dndetaMCCorrection->GetBinError(bin);
	if (mccorr < 1e-6) {
	  dndeta->SetBinContent(m, 0);
	  dndeta->SetBinError(m, 0);
	}
	Double_t value   = dndeta->GetBinContent(m);
	Double_t error   = dndeta->GetBinError(m);
	Double_t sumw2   = (error   * error   * mccorr * mccorr +
			    mcerror * mcerror * value  * value);
	dndeta->SetBinContent(m,value/mccorr) ;
	dndeta->SetBinError(m,TMath::Sqrt(sumw2)/mccorr/mccorr);
      }
    }
  }
  else 
    DMSG(fDebug,1,"No final MC correction applied");
  
  // --- Set some histogram attributes -------------------------------
  TString post;
  Int_t rColor = GetColor(color);
  if (postfix && postfix[0] != '\0') post = Form(" (%s)", postfix);
  SetHistogramAttributes(dndeta,  rColor, marker, 
			 Form("ALICE %s%s", GetName(), post.Data()));
  SetHistogramAttributes(accNorm, rColor, marker, 
			 Form("ALICE %s normalisation%s", 
			      GetName(), post.Data())); 

  // --- Add the histograms to output list ---------------------------
  fOutput->Add(dndeta);
  fOutput->Add(accNorm);
  fOutput->Add(copy);
  if (dndetaMCCorrection) fOutput->Add(dndetaMCCorrection);
  
  // HHD Test of dN/deta in phi bins add flag later?
  // 
  // cholm comment: We disable this for now 
#if 0
  for (Int_t nn=1; nn <= sum->GetNbinsY(); nn++) {
    TH1D* dndeta_phi = ProjectX(copy, Form("dndeta%s_phibin%d",
					   base.Data(), nn), 
				nn, nn, rootProj, corrEmpty);
    dndeta_phi->SetDirectory(0);
    // Event-level normalization 
    dndeta_phi->Scale(TMath::Pi()/10., "width");
     
    if(centlist)
      dndetaMCCorrection = 
	static_cast<TH1D*>(centlist->FindObject(Form("dndeta%s_phibin%d",
						     base.Data(),nn)));
    if(truthcentlist)
      dndetaMCtruth 
	= static_cast<TH1D*>(truthcentlist->FindObject("dndetaMCTruth"));

    if (dndetaMCCorrection && dndetaMCtruth) {
      AliInfo("Correcting with final MC correction");
      TString testString(dndetaMCCorrection->GetName());
      dndetaMCCorrection->Divide(dndetaMCtruth);
      dndetaMCCorrection->SetTitle(Form("Final_MC_correction_phibin%d",nn));
      dndetaMCCorrection->SetName(Form("Final_MC_correction_phibin%d",nn));
      for(Int_t m = 1; m <= dndetaMCCorrection->GetNbinsX(); m++) {
	if(dndetaMCCorrection->GetBinContent(m) < 0.25 || 
	   dndetaMCCorrection->GetBinContent(m) > 1.75) {
	  dndetaMCCorrection->SetBinContent(m,1.);
	  dndetaMCCorrection->SetBinError(m,0.1);
	}
      }
      //Applying the correction
      dndeta_phi->Divide(dndetaMCCorrection);
    }
    fOutput->Add(dndeta_phi);
    if(dndetaMCCorrection) fOutput->Add(dndetaMCCorrection);
  } // End of phi
#endif
}  

//________________________________________________________________________
void 
AliBasedNdetaTask::CentralityBin::End(TList*      sums, 
				      TList*      results,
				      UShort_t    scheme,
				      Double_t    trigEff,
				      Double_t    trigEff0,
				      Bool_t      rootProj,
				      Bool_t      corrEmpty, 
				      Int_t       triggerMask,
				      Int_t       marker,
				      Int_t       color, 
				      TList*      mclist,
				      TList*      truthlist) 
{
  // 
  // End of processing 
  // 
  // Parameters:
  //    sums        List of sums
  //    results     Output list of results
  //    trigEff     Trigger efficiency 
  //    corrEmpty   Whether to correct for empty bins
  //    triggerMask Trigger mask 
  //
  DGUARD(fDebug,1,"End centrality bin procesing");

  fSums = dynamic_cast<TList*>(sums->FindObject(GetListName()));
  if(!fSums) {
    AliError("Could not retrieve TList fSums"); 
    return; 
  }
  
  fOutput = new TList;
  fOutput->SetName(GetListName());
  fOutput->SetOwner();
  results->Add(fOutput);

  if (!fSum) { 
    if (!ReadSum(fSums, false)) {
      AliInfo("This task did not produce any output");
      return;
    }
  }
  if (!fSumMC) ReadSum(fSums, true);

  fTriggers = static_cast<TH1I*>(fSums->FindObject("triggers"));

  if (!fTriggers) { 
    AliError("Couldn't find histogram 'triggers' in list");
    return;
  }

  // --- Get normalization scaler ------------------------------------
  Double_t epsilonT  = trigEff;
  Double_t epsilonT0 = trigEff0;
  DMSG(fDebug,2,"Using epsilonT=%f, epsilonT0=%f for 0x%x", 
       epsilonT, epsilonT0, triggerMask);

  // Get our histograms 
  Double_t nSum   = 0;
  TH2D*    sum    = fSum->CalcSum(fOutput, nSum, epsilonT0, epsilonT, 
				  marker, rootProj, corrEmpty);
  Double_t nSumMC = 0;
  TH2D*    sumMC  = 0;
  if (fSumMC) sumMC = fSumMC->CalcSum(fOutput, nSumMC, 
				      epsilonT0, epsilonT, marker,
				      rootProj, corrEmpty);
  if (!sum) { 
    AliError("Failed to get sum from summer - bailing out");
    return;
  }
    
  TString  text;
  Double_t ntotal = nSum;
  Double_t scaler = Normalization(*fTriggers, scheme, epsilonT, ntotal, &text);
  if (scaler < 0) { 
    AliError("Failed to calculate normalization - bailing out");
    return;
  }
  fOutput->Add(fTriggers->Clone());
  fOutput->Add(new TNamed("normCalc", text.Data()));

  // --- Make result and store ---------------------------------------
  MakeResult(sum, "", rootProj, corrEmpty, scaler, marker, color, 
	     mclist, truthlist);

  // --- Process result from TrackRefs -------------------------------
  if (sumMC) 
    MakeResult(sumMC, "MC", rootProj, corrEmpty, scaler,
	       GetMarkerStyle(GetMarkerBits(marker)+4), color, 
	       mclist, truthlist);
  
  // Temporary stuff 
  // if (!IsAllBin()) return;

}
//____________________________________________________________________
Bool_t 
AliBasedNdetaTask::ApplyEmpiricalCorrection(const AliAODForwardMult* aod,
					    TH2D* data)
{
  if (!fEmpiricalCorrection || !data)
    return true;
  Float_t zvertex=aod->GetIpZ();
  Int_t binzvertex=fEmpiricalCorrection->GetXaxis()->FindBin(zvertex);
  if(binzvertex<1||binzvertex>fEmpiricalCorrection->GetNbinsX())
    return false;
  for (int i=1;i<=data->GetNbinsX();i++) {
    Int_t bincorrection=fEmpiricalCorrection->GetYaxis()
      ->FindBin(data->GetXaxis()->GetBinCenter(i));
    if(bincorrection<1||bincorrection>fEmpiricalCorrection->GetNbinsY())
      return false;
    Float_t correction=fEmpiricalCorrection
      ->GetBinContent(binzvertex,bincorrection);
    if(correction<0.001) {
      data->SetBinContent(i,0,0);
      data->SetBinContent(i,data->GetNbinsY()+1,0);
    }	
    for(int j=1;j<=data->GetNbinsY();j++) {
      if (data->GetBinContent(i,j)>0.0) {
	data->SetBinContent(i,j,data->GetBinContent(i,j)*correction);
	data->SetBinError(i,j,data->GetBinError(i,j)*correction);
      }	
    }
  }
  return true;
}

//
// EOF
//
 AliBasedNdetaTask.cxx:1
 AliBasedNdetaTask.cxx:2
 AliBasedNdetaTask.cxx:3
 AliBasedNdetaTask.cxx:4
 AliBasedNdetaTask.cxx:5
 AliBasedNdetaTask.cxx:6
 AliBasedNdetaTask.cxx:7
 AliBasedNdetaTask.cxx:8
 AliBasedNdetaTask.cxx:9
 AliBasedNdetaTask.cxx:10
 AliBasedNdetaTask.cxx:11
 AliBasedNdetaTask.cxx:12
 AliBasedNdetaTask.cxx:13
 AliBasedNdetaTask.cxx:14
 AliBasedNdetaTask.cxx:15
 AliBasedNdetaTask.cxx:16
 AliBasedNdetaTask.cxx:17
 AliBasedNdetaTask.cxx:18
 AliBasedNdetaTask.cxx:19
 AliBasedNdetaTask.cxx:20
 AliBasedNdetaTask.cxx:21
 AliBasedNdetaTask.cxx:22
 AliBasedNdetaTask.cxx:23
 AliBasedNdetaTask.cxx:24
 AliBasedNdetaTask.cxx:25
 AliBasedNdetaTask.cxx:26
 AliBasedNdetaTask.cxx:27
 AliBasedNdetaTask.cxx:28
 AliBasedNdetaTask.cxx:29
 AliBasedNdetaTask.cxx:30
 AliBasedNdetaTask.cxx:31
 AliBasedNdetaTask.cxx:32
 AliBasedNdetaTask.cxx:33
 AliBasedNdetaTask.cxx:34
 AliBasedNdetaTask.cxx:35
 AliBasedNdetaTask.cxx:36
 AliBasedNdetaTask.cxx:37
 AliBasedNdetaTask.cxx:38
 AliBasedNdetaTask.cxx:39
 AliBasedNdetaTask.cxx:40
 AliBasedNdetaTask.cxx:41
 AliBasedNdetaTask.cxx:42
 AliBasedNdetaTask.cxx:43
 AliBasedNdetaTask.cxx:44
 AliBasedNdetaTask.cxx:45
 AliBasedNdetaTask.cxx:46
 AliBasedNdetaTask.cxx:47
 AliBasedNdetaTask.cxx:48
 AliBasedNdetaTask.cxx:49
 AliBasedNdetaTask.cxx:50
 AliBasedNdetaTask.cxx:51
 AliBasedNdetaTask.cxx:52
 AliBasedNdetaTask.cxx:53
 AliBasedNdetaTask.cxx:54
 AliBasedNdetaTask.cxx:55
 AliBasedNdetaTask.cxx:56
 AliBasedNdetaTask.cxx:57
 AliBasedNdetaTask.cxx:58
 AliBasedNdetaTask.cxx:59
 AliBasedNdetaTask.cxx:60
 AliBasedNdetaTask.cxx:61
 AliBasedNdetaTask.cxx:62
 AliBasedNdetaTask.cxx:63
 AliBasedNdetaTask.cxx:64
 AliBasedNdetaTask.cxx:65
 AliBasedNdetaTask.cxx:66
 AliBasedNdetaTask.cxx:67
 AliBasedNdetaTask.cxx:68
 AliBasedNdetaTask.cxx:69
 AliBasedNdetaTask.cxx:70
 AliBasedNdetaTask.cxx:71
 AliBasedNdetaTask.cxx:72
 AliBasedNdetaTask.cxx:73
 AliBasedNdetaTask.cxx:74
 AliBasedNdetaTask.cxx:75
 AliBasedNdetaTask.cxx:76
 AliBasedNdetaTask.cxx:77
 AliBasedNdetaTask.cxx:78
 AliBasedNdetaTask.cxx:79
 AliBasedNdetaTask.cxx:80
 AliBasedNdetaTask.cxx:81
 AliBasedNdetaTask.cxx:82
 AliBasedNdetaTask.cxx:83
 AliBasedNdetaTask.cxx:84
 AliBasedNdetaTask.cxx:85
 AliBasedNdetaTask.cxx:86
 AliBasedNdetaTask.cxx:87
 AliBasedNdetaTask.cxx:88
 AliBasedNdetaTask.cxx:89
 AliBasedNdetaTask.cxx:90
 AliBasedNdetaTask.cxx:91
 AliBasedNdetaTask.cxx:92
 AliBasedNdetaTask.cxx:93
 AliBasedNdetaTask.cxx:94
 AliBasedNdetaTask.cxx:95
 AliBasedNdetaTask.cxx:96
 AliBasedNdetaTask.cxx:97
 AliBasedNdetaTask.cxx:98
 AliBasedNdetaTask.cxx:99
 AliBasedNdetaTask.cxx:100
 AliBasedNdetaTask.cxx:101
 AliBasedNdetaTask.cxx:102
 AliBasedNdetaTask.cxx:103
 AliBasedNdetaTask.cxx:104
 AliBasedNdetaTask.cxx:105
 AliBasedNdetaTask.cxx:106
 AliBasedNdetaTask.cxx:107
 AliBasedNdetaTask.cxx:108
 AliBasedNdetaTask.cxx:109
 AliBasedNdetaTask.cxx:110
 AliBasedNdetaTask.cxx:111
 AliBasedNdetaTask.cxx:112
 AliBasedNdetaTask.cxx:113
 AliBasedNdetaTask.cxx:114
 AliBasedNdetaTask.cxx:115
 AliBasedNdetaTask.cxx:116
 AliBasedNdetaTask.cxx:117
 AliBasedNdetaTask.cxx:118
 AliBasedNdetaTask.cxx:119
 AliBasedNdetaTask.cxx:120
 AliBasedNdetaTask.cxx:121
 AliBasedNdetaTask.cxx:122
 AliBasedNdetaTask.cxx:123
 AliBasedNdetaTask.cxx:124
 AliBasedNdetaTask.cxx:125
 AliBasedNdetaTask.cxx:126
 AliBasedNdetaTask.cxx:127
 AliBasedNdetaTask.cxx:128
 AliBasedNdetaTask.cxx:129
 AliBasedNdetaTask.cxx:130
 AliBasedNdetaTask.cxx:131
 AliBasedNdetaTask.cxx:132
 AliBasedNdetaTask.cxx:133
 AliBasedNdetaTask.cxx:134
 AliBasedNdetaTask.cxx:135
 AliBasedNdetaTask.cxx:136
 AliBasedNdetaTask.cxx:137
 AliBasedNdetaTask.cxx:138
 AliBasedNdetaTask.cxx:139
 AliBasedNdetaTask.cxx:140
 AliBasedNdetaTask.cxx:141
 AliBasedNdetaTask.cxx:142
 AliBasedNdetaTask.cxx:143
 AliBasedNdetaTask.cxx:144
 AliBasedNdetaTask.cxx:145
 AliBasedNdetaTask.cxx:146
 AliBasedNdetaTask.cxx:147
 AliBasedNdetaTask.cxx:148
 AliBasedNdetaTask.cxx:149
 AliBasedNdetaTask.cxx:150
 AliBasedNdetaTask.cxx:151
 AliBasedNdetaTask.cxx:152
 AliBasedNdetaTask.cxx:153
 AliBasedNdetaTask.cxx:154
 AliBasedNdetaTask.cxx:155
 AliBasedNdetaTask.cxx:156
 AliBasedNdetaTask.cxx:157
 AliBasedNdetaTask.cxx:158
 AliBasedNdetaTask.cxx:159
 AliBasedNdetaTask.cxx:160
 AliBasedNdetaTask.cxx:161
 AliBasedNdetaTask.cxx:162
 AliBasedNdetaTask.cxx:163
 AliBasedNdetaTask.cxx:164
 AliBasedNdetaTask.cxx:165
 AliBasedNdetaTask.cxx:166
 AliBasedNdetaTask.cxx:167
 AliBasedNdetaTask.cxx:168
 AliBasedNdetaTask.cxx:169
 AliBasedNdetaTask.cxx:170
 AliBasedNdetaTask.cxx:171
 AliBasedNdetaTask.cxx:172
 AliBasedNdetaTask.cxx:173
 AliBasedNdetaTask.cxx:174
 AliBasedNdetaTask.cxx:175
 AliBasedNdetaTask.cxx:176
 AliBasedNdetaTask.cxx:177
 AliBasedNdetaTask.cxx:178
 AliBasedNdetaTask.cxx:179
 AliBasedNdetaTask.cxx:180
 AliBasedNdetaTask.cxx:181
 AliBasedNdetaTask.cxx:182
 AliBasedNdetaTask.cxx:183
 AliBasedNdetaTask.cxx:184
 AliBasedNdetaTask.cxx:185
 AliBasedNdetaTask.cxx:186
 AliBasedNdetaTask.cxx:187
 AliBasedNdetaTask.cxx:188
 AliBasedNdetaTask.cxx:189
 AliBasedNdetaTask.cxx:190
 AliBasedNdetaTask.cxx:191
 AliBasedNdetaTask.cxx:192
 AliBasedNdetaTask.cxx:193
 AliBasedNdetaTask.cxx:194
 AliBasedNdetaTask.cxx:195
 AliBasedNdetaTask.cxx:196
 AliBasedNdetaTask.cxx:197
 AliBasedNdetaTask.cxx:198
 AliBasedNdetaTask.cxx:199
 AliBasedNdetaTask.cxx:200
 AliBasedNdetaTask.cxx:201
 AliBasedNdetaTask.cxx:202
 AliBasedNdetaTask.cxx:203
 AliBasedNdetaTask.cxx:204
 AliBasedNdetaTask.cxx:205
 AliBasedNdetaTask.cxx:206
 AliBasedNdetaTask.cxx:207
 AliBasedNdetaTask.cxx:208
 AliBasedNdetaTask.cxx:209
 AliBasedNdetaTask.cxx:210
 AliBasedNdetaTask.cxx:211
 AliBasedNdetaTask.cxx:212
 AliBasedNdetaTask.cxx:213
 AliBasedNdetaTask.cxx:214
 AliBasedNdetaTask.cxx:215
 AliBasedNdetaTask.cxx:216
 AliBasedNdetaTask.cxx:217
 AliBasedNdetaTask.cxx:218
 AliBasedNdetaTask.cxx:219
 AliBasedNdetaTask.cxx:220
 AliBasedNdetaTask.cxx:221
 AliBasedNdetaTask.cxx:222
 AliBasedNdetaTask.cxx:223
 AliBasedNdetaTask.cxx:224
 AliBasedNdetaTask.cxx:225
 AliBasedNdetaTask.cxx:226
 AliBasedNdetaTask.cxx:227
 AliBasedNdetaTask.cxx:228
 AliBasedNdetaTask.cxx:229
 AliBasedNdetaTask.cxx:230
 AliBasedNdetaTask.cxx:231
 AliBasedNdetaTask.cxx:232
 AliBasedNdetaTask.cxx:233
 AliBasedNdetaTask.cxx:234
 AliBasedNdetaTask.cxx:235
 AliBasedNdetaTask.cxx:236
 AliBasedNdetaTask.cxx:237
 AliBasedNdetaTask.cxx:238
 AliBasedNdetaTask.cxx:239
 AliBasedNdetaTask.cxx:240
 AliBasedNdetaTask.cxx:241
 AliBasedNdetaTask.cxx:242
 AliBasedNdetaTask.cxx:243
 AliBasedNdetaTask.cxx:244
 AliBasedNdetaTask.cxx:245
 AliBasedNdetaTask.cxx:246
 AliBasedNdetaTask.cxx:247
 AliBasedNdetaTask.cxx:248
 AliBasedNdetaTask.cxx:249
 AliBasedNdetaTask.cxx:250
 AliBasedNdetaTask.cxx:251
 AliBasedNdetaTask.cxx:252
 AliBasedNdetaTask.cxx:253
 AliBasedNdetaTask.cxx:254
 AliBasedNdetaTask.cxx:255
 AliBasedNdetaTask.cxx:256
 AliBasedNdetaTask.cxx:257
 AliBasedNdetaTask.cxx:258
 AliBasedNdetaTask.cxx:259
 AliBasedNdetaTask.cxx:260
 AliBasedNdetaTask.cxx:261
 AliBasedNdetaTask.cxx:262
 AliBasedNdetaTask.cxx:263
 AliBasedNdetaTask.cxx:264
 AliBasedNdetaTask.cxx:265
 AliBasedNdetaTask.cxx:266
 AliBasedNdetaTask.cxx:267
 AliBasedNdetaTask.cxx:268
 AliBasedNdetaTask.cxx:269
 AliBasedNdetaTask.cxx:270
 AliBasedNdetaTask.cxx:271
 AliBasedNdetaTask.cxx:272
 AliBasedNdetaTask.cxx:273
 AliBasedNdetaTask.cxx:274
 AliBasedNdetaTask.cxx:275
 AliBasedNdetaTask.cxx:276
 AliBasedNdetaTask.cxx:277
 AliBasedNdetaTask.cxx:278
 AliBasedNdetaTask.cxx:279
 AliBasedNdetaTask.cxx:280
 AliBasedNdetaTask.cxx:281
 AliBasedNdetaTask.cxx:282
 AliBasedNdetaTask.cxx:283
 AliBasedNdetaTask.cxx:284
 AliBasedNdetaTask.cxx:285
 AliBasedNdetaTask.cxx:286
 AliBasedNdetaTask.cxx:287
 AliBasedNdetaTask.cxx:288
 AliBasedNdetaTask.cxx:289
 AliBasedNdetaTask.cxx:290
 AliBasedNdetaTask.cxx:291
 AliBasedNdetaTask.cxx:292
 AliBasedNdetaTask.cxx:293
 AliBasedNdetaTask.cxx:294
 AliBasedNdetaTask.cxx:295
 AliBasedNdetaTask.cxx:296
 AliBasedNdetaTask.cxx:297
 AliBasedNdetaTask.cxx:298
 AliBasedNdetaTask.cxx:299
 AliBasedNdetaTask.cxx:300
 AliBasedNdetaTask.cxx:301
 AliBasedNdetaTask.cxx:302
 AliBasedNdetaTask.cxx:303
 AliBasedNdetaTask.cxx:304
 AliBasedNdetaTask.cxx:305
 AliBasedNdetaTask.cxx:306
 AliBasedNdetaTask.cxx:307
 AliBasedNdetaTask.cxx:308
 AliBasedNdetaTask.cxx:309
 AliBasedNdetaTask.cxx:310
 AliBasedNdetaTask.cxx:311
 AliBasedNdetaTask.cxx:312
 AliBasedNdetaTask.cxx:313
 AliBasedNdetaTask.cxx:314
 AliBasedNdetaTask.cxx:315
 AliBasedNdetaTask.cxx:316
 AliBasedNdetaTask.cxx:317
 AliBasedNdetaTask.cxx:318
 AliBasedNdetaTask.cxx:319
 AliBasedNdetaTask.cxx:320
 AliBasedNdetaTask.cxx:321
 AliBasedNdetaTask.cxx:322
 AliBasedNdetaTask.cxx:323
 AliBasedNdetaTask.cxx:324
 AliBasedNdetaTask.cxx:325
 AliBasedNdetaTask.cxx:326
 AliBasedNdetaTask.cxx:327
 AliBasedNdetaTask.cxx:328
 AliBasedNdetaTask.cxx:329
 AliBasedNdetaTask.cxx:330
 AliBasedNdetaTask.cxx:331
 AliBasedNdetaTask.cxx:332
 AliBasedNdetaTask.cxx:333
 AliBasedNdetaTask.cxx:334
 AliBasedNdetaTask.cxx:335
 AliBasedNdetaTask.cxx:336
 AliBasedNdetaTask.cxx:337
 AliBasedNdetaTask.cxx:338
 AliBasedNdetaTask.cxx:339
 AliBasedNdetaTask.cxx:340
 AliBasedNdetaTask.cxx:341
 AliBasedNdetaTask.cxx:342
 AliBasedNdetaTask.cxx:343
 AliBasedNdetaTask.cxx:344
 AliBasedNdetaTask.cxx:345
 AliBasedNdetaTask.cxx:346
 AliBasedNdetaTask.cxx:347
 AliBasedNdetaTask.cxx:348
 AliBasedNdetaTask.cxx:349
 AliBasedNdetaTask.cxx:350
 AliBasedNdetaTask.cxx:351
 AliBasedNdetaTask.cxx:352
 AliBasedNdetaTask.cxx:353
 AliBasedNdetaTask.cxx:354
 AliBasedNdetaTask.cxx:355
 AliBasedNdetaTask.cxx:356
 AliBasedNdetaTask.cxx:357
 AliBasedNdetaTask.cxx:358
 AliBasedNdetaTask.cxx:359
 AliBasedNdetaTask.cxx:360
 AliBasedNdetaTask.cxx:361
 AliBasedNdetaTask.cxx:362
 AliBasedNdetaTask.cxx:363
 AliBasedNdetaTask.cxx:364
 AliBasedNdetaTask.cxx:365
 AliBasedNdetaTask.cxx:366
 AliBasedNdetaTask.cxx:367
 AliBasedNdetaTask.cxx:368
 AliBasedNdetaTask.cxx:369
 AliBasedNdetaTask.cxx:370
 AliBasedNdetaTask.cxx:371
 AliBasedNdetaTask.cxx:372
 AliBasedNdetaTask.cxx:373
 AliBasedNdetaTask.cxx:374
 AliBasedNdetaTask.cxx:375
 AliBasedNdetaTask.cxx:376
 AliBasedNdetaTask.cxx:377
 AliBasedNdetaTask.cxx:378
 AliBasedNdetaTask.cxx:379
 AliBasedNdetaTask.cxx:380
 AliBasedNdetaTask.cxx:381
 AliBasedNdetaTask.cxx:382
 AliBasedNdetaTask.cxx:383
 AliBasedNdetaTask.cxx:384
 AliBasedNdetaTask.cxx:385
 AliBasedNdetaTask.cxx:386
 AliBasedNdetaTask.cxx:387
 AliBasedNdetaTask.cxx:388
 AliBasedNdetaTask.cxx:389
 AliBasedNdetaTask.cxx:390
 AliBasedNdetaTask.cxx:391
 AliBasedNdetaTask.cxx:392
 AliBasedNdetaTask.cxx:393
 AliBasedNdetaTask.cxx:394
 AliBasedNdetaTask.cxx:395
 AliBasedNdetaTask.cxx:396
 AliBasedNdetaTask.cxx:397
 AliBasedNdetaTask.cxx:398
 AliBasedNdetaTask.cxx:399
 AliBasedNdetaTask.cxx:400
 AliBasedNdetaTask.cxx:401
 AliBasedNdetaTask.cxx:402
 AliBasedNdetaTask.cxx:403
 AliBasedNdetaTask.cxx:404
 AliBasedNdetaTask.cxx:405
 AliBasedNdetaTask.cxx:406
 AliBasedNdetaTask.cxx:407
 AliBasedNdetaTask.cxx:408
 AliBasedNdetaTask.cxx:409
 AliBasedNdetaTask.cxx:410
 AliBasedNdetaTask.cxx:411
 AliBasedNdetaTask.cxx:412
 AliBasedNdetaTask.cxx:413
 AliBasedNdetaTask.cxx:414
 AliBasedNdetaTask.cxx:415
 AliBasedNdetaTask.cxx:416
 AliBasedNdetaTask.cxx:417
 AliBasedNdetaTask.cxx:418
 AliBasedNdetaTask.cxx:419
 AliBasedNdetaTask.cxx:420
 AliBasedNdetaTask.cxx:421
 AliBasedNdetaTask.cxx:422
 AliBasedNdetaTask.cxx:423
 AliBasedNdetaTask.cxx:424
 AliBasedNdetaTask.cxx:425
 AliBasedNdetaTask.cxx:426
 AliBasedNdetaTask.cxx:427
 AliBasedNdetaTask.cxx:428
 AliBasedNdetaTask.cxx:429
 AliBasedNdetaTask.cxx:430
 AliBasedNdetaTask.cxx:431
 AliBasedNdetaTask.cxx:432
 AliBasedNdetaTask.cxx:433
 AliBasedNdetaTask.cxx:434
 AliBasedNdetaTask.cxx:435
 AliBasedNdetaTask.cxx:436
 AliBasedNdetaTask.cxx:437
 AliBasedNdetaTask.cxx:438
 AliBasedNdetaTask.cxx:439
 AliBasedNdetaTask.cxx:440
 AliBasedNdetaTask.cxx:441
 AliBasedNdetaTask.cxx:442
 AliBasedNdetaTask.cxx:443
 AliBasedNdetaTask.cxx:444
 AliBasedNdetaTask.cxx:445
 AliBasedNdetaTask.cxx:446
 AliBasedNdetaTask.cxx:447
 AliBasedNdetaTask.cxx:448
 AliBasedNdetaTask.cxx:449
 AliBasedNdetaTask.cxx:450
 AliBasedNdetaTask.cxx:451
 AliBasedNdetaTask.cxx:452
 AliBasedNdetaTask.cxx:453
 AliBasedNdetaTask.cxx:454
 AliBasedNdetaTask.cxx:455
 AliBasedNdetaTask.cxx:456
 AliBasedNdetaTask.cxx:457
 AliBasedNdetaTask.cxx:458
 AliBasedNdetaTask.cxx:459
 AliBasedNdetaTask.cxx:460
 AliBasedNdetaTask.cxx:461
 AliBasedNdetaTask.cxx:462
 AliBasedNdetaTask.cxx:463
 AliBasedNdetaTask.cxx:464
 AliBasedNdetaTask.cxx:465
 AliBasedNdetaTask.cxx:466
 AliBasedNdetaTask.cxx:467
 AliBasedNdetaTask.cxx:468
 AliBasedNdetaTask.cxx:469
 AliBasedNdetaTask.cxx:470
 AliBasedNdetaTask.cxx:471
 AliBasedNdetaTask.cxx:472
 AliBasedNdetaTask.cxx:473
 AliBasedNdetaTask.cxx:474
 AliBasedNdetaTask.cxx:475
 AliBasedNdetaTask.cxx:476
 AliBasedNdetaTask.cxx:477
 AliBasedNdetaTask.cxx:478
 AliBasedNdetaTask.cxx:479
 AliBasedNdetaTask.cxx:480
 AliBasedNdetaTask.cxx:481
 AliBasedNdetaTask.cxx:482
 AliBasedNdetaTask.cxx:483
 AliBasedNdetaTask.cxx:484
 AliBasedNdetaTask.cxx:485
 AliBasedNdetaTask.cxx:486
 AliBasedNdetaTask.cxx:487
 AliBasedNdetaTask.cxx:488
 AliBasedNdetaTask.cxx:489
 AliBasedNdetaTask.cxx:490
 AliBasedNdetaTask.cxx:491
 AliBasedNdetaTask.cxx:492
 AliBasedNdetaTask.cxx:493
 AliBasedNdetaTask.cxx:494
 AliBasedNdetaTask.cxx:495
 AliBasedNdetaTask.cxx:496
 AliBasedNdetaTask.cxx:497
 AliBasedNdetaTask.cxx:498
 AliBasedNdetaTask.cxx:499
 AliBasedNdetaTask.cxx:500
 AliBasedNdetaTask.cxx:501
 AliBasedNdetaTask.cxx:502
 AliBasedNdetaTask.cxx:503
 AliBasedNdetaTask.cxx:504
 AliBasedNdetaTask.cxx:505
 AliBasedNdetaTask.cxx:506
 AliBasedNdetaTask.cxx:507
 AliBasedNdetaTask.cxx:508
 AliBasedNdetaTask.cxx:509
 AliBasedNdetaTask.cxx:510
 AliBasedNdetaTask.cxx:511
 AliBasedNdetaTask.cxx:512
 AliBasedNdetaTask.cxx:513
 AliBasedNdetaTask.cxx:514
 AliBasedNdetaTask.cxx:515
 AliBasedNdetaTask.cxx:516
 AliBasedNdetaTask.cxx:517
 AliBasedNdetaTask.cxx:518
 AliBasedNdetaTask.cxx:519
 AliBasedNdetaTask.cxx:520
 AliBasedNdetaTask.cxx:521
 AliBasedNdetaTask.cxx:522
 AliBasedNdetaTask.cxx:523
 AliBasedNdetaTask.cxx:524
 AliBasedNdetaTask.cxx:525
 AliBasedNdetaTask.cxx:526
 AliBasedNdetaTask.cxx:527
 AliBasedNdetaTask.cxx:528
 AliBasedNdetaTask.cxx:529
 AliBasedNdetaTask.cxx:530
 AliBasedNdetaTask.cxx:531
 AliBasedNdetaTask.cxx:532
 AliBasedNdetaTask.cxx:533
 AliBasedNdetaTask.cxx:534
 AliBasedNdetaTask.cxx:535
 AliBasedNdetaTask.cxx:536
 AliBasedNdetaTask.cxx:537
 AliBasedNdetaTask.cxx:538
 AliBasedNdetaTask.cxx:539
 AliBasedNdetaTask.cxx:540
 AliBasedNdetaTask.cxx:541
 AliBasedNdetaTask.cxx:542
 AliBasedNdetaTask.cxx:543
 AliBasedNdetaTask.cxx:544
 AliBasedNdetaTask.cxx:545
 AliBasedNdetaTask.cxx:546
 AliBasedNdetaTask.cxx:547
 AliBasedNdetaTask.cxx:548
 AliBasedNdetaTask.cxx:549
 AliBasedNdetaTask.cxx:550
 AliBasedNdetaTask.cxx:551
 AliBasedNdetaTask.cxx:552
 AliBasedNdetaTask.cxx:553
 AliBasedNdetaTask.cxx:554
 AliBasedNdetaTask.cxx:555
 AliBasedNdetaTask.cxx:556
 AliBasedNdetaTask.cxx:557
 AliBasedNdetaTask.cxx:558
 AliBasedNdetaTask.cxx:559
 AliBasedNdetaTask.cxx:560
 AliBasedNdetaTask.cxx:561
 AliBasedNdetaTask.cxx:562
 AliBasedNdetaTask.cxx:563
 AliBasedNdetaTask.cxx:564
 AliBasedNdetaTask.cxx:565
 AliBasedNdetaTask.cxx:566
 AliBasedNdetaTask.cxx:567
 AliBasedNdetaTask.cxx:568
 AliBasedNdetaTask.cxx:569
 AliBasedNdetaTask.cxx:570
 AliBasedNdetaTask.cxx:571
 AliBasedNdetaTask.cxx:572
 AliBasedNdetaTask.cxx:573
 AliBasedNdetaTask.cxx:574
 AliBasedNdetaTask.cxx:575
 AliBasedNdetaTask.cxx:576
 AliBasedNdetaTask.cxx:577
 AliBasedNdetaTask.cxx:578
 AliBasedNdetaTask.cxx:579
 AliBasedNdetaTask.cxx:580
 AliBasedNdetaTask.cxx:581
 AliBasedNdetaTask.cxx:582
 AliBasedNdetaTask.cxx:583
 AliBasedNdetaTask.cxx:584
 AliBasedNdetaTask.cxx:585
 AliBasedNdetaTask.cxx:586
 AliBasedNdetaTask.cxx:587
 AliBasedNdetaTask.cxx:588
 AliBasedNdetaTask.cxx:589
 AliBasedNdetaTask.cxx:590
 AliBasedNdetaTask.cxx:591
 AliBasedNdetaTask.cxx:592
 AliBasedNdetaTask.cxx:593
 AliBasedNdetaTask.cxx:594
 AliBasedNdetaTask.cxx:595
 AliBasedNdetaTask.cxx:596
 AliBasedNdetaTask.cxx:597
 AliBasedNdetaTask.cxx:598
 AliBasedNdetaTask.cxx:599
 AliBasedNdetaTask.cxx:600
 AliBasedNdetaTask.cxx:601
 AliBasedNdetaTask.cxx:602
 AliBasedNdetaTask.cxx:603
 AliBasedNdetaTask.cxx:604
 AliBasedNdetaTask.cxx:605
 AliBasedNdetaTask.cxx:606
 AliBasedNdetaTask.cxx:607
 AliBasedNdetaTask.cxx:608
 AliBasedNdetaTask.cxx:609
 AliBasedNdetaTask.cxx:610
 AliBasedNdetaTask.cxx:611
 AliBasedNdetaTask.cxx:612
 AliBasedNdetaTask.cxx:613
 AliBasedNdetaTask.cxx:614
 AliBasedNdetaTask.cxx:615
 AliBasedNdetaTask.cxx:616
 AliBasedNdetaTask.cxx:617
 AliBasedNdetaTask.cxx:618
 AliBasedNdetaTask.cxx:619
 AliBasedNdetaTask.cxx:620
 AliBasedNdetaTask.cxx:621
 AliBasedNdetaTask.cxx:622
 AliBasedNdetaTask.cxx:623
 AliBasedNdetaTask.cxx:624
 AliBasedNdetaTask.cxx:625
 AliBasedNdetaTask.cxx:626
 AliBasedNdetaTask.cxx:627
 AliBasedNdetaTask.cxx:628
 AliBasedNdetaTask.cxx:629
 AliBasedNdetaTask.cxx:630
 AliBasedNdetaTask.cxx:631
 AliBasedNdetaTask.cxx:632
 AliBasedNdetaTask.cxx:633
 AliBasedNdetaTask.cxx:634
 AliBasedNdetaTask.cxx:635
 AliBasedNdetaTask.cxx:636
 AliBasedNdetaTask.cxx:637
 AliBasedNdetaTask.cxx:638
 AliBasedNdetaTask.cxx:639
 AliBasedNdetaTask.cxx:640
 AliBasedNdetaTask.cxx:641
 AliBasedNdetaTask.cxx:642
 AliBasedNdetaTask.cxx:643
 AliBasedNdetaTask.cxx:644
 AliBasedNdetaTask.cxx:645
 AliBasedNdetaTask.cxx:646
 AliBasedNdetaTask.cxx:647
 AliBasedNdetaTask.cxx:648
 AliBasedNdetaTask.cxx:649
 AliBasedNdetaTask.cxx:650
 AliBasedNdetaTask.cxx:651
 AliBasedNdetaTask.cxx:652
 AliBasedNdetaTask.cxx:653
 AliBasedNdetaTask.cxx:654
 AliBasedNdetaTask.cxx:655
 AliBasedNdetaTask.cxx:656
 AliBasedNdetaTask.cxx:657
 AliBasedNdetaTask.cxx:658
 AliBasedNdetaTask.cxx:659
 AliBasedNdetaTask.cxx:660
 AliBasedNdetaTask.cxx:661
 AliBasedNdetaTask.cxx:662
 AliBasedNdetaTask.cxx:663
 AliBasedNdetaTask.cxx:664
 AliBasedNdetaTask.cxx:665
 AliBasedNdetaTask.cxx:666
 AliBasedNdetaTask.cxx:667
 AliBasedNdetaTask.cxx:668
 AliBasedNdetaTask.cxx:669
 AliBasedNdetaTask.cxx:670
 AliBasedNdetaTask.cxx:671
 AliBasedNdetaTask.cxx:672
 AliBasedNdetaTask.cxx:673
 AliBasedNdetaTask.cxx:674
 AliBasedNdetaTask.cxx:675
 AliBasedNdetaTask.cxx:676
 AliBasedNdetaTask.cxx:677
 AliBasedNdetaTask.cxx:678
 AliBasedNdetaTask.cxx:679
 AliBasedNdetaTask.cxx:680
 AliBasedNdetaTask.cxx:681
 AliBasedNdetaTask.cxx:682
 AliBasedNdetaTask.cxx:683
 AliBasedNdetaTask.cxx:684
 AliBasedNdetaTask.cxx:685
 AliBasedNdetaTask.cxx:686
 AliBasedNdetaTask.cxx:687
 AliBasedNdetaTask.cxx:688
 AliBasedNdetaTask.cxx:689
 AliBasedNdetaTask.cxx:690
 AliBasedNdetaTask.cxx:691
 AliBasedNdetaTask.cxx:692
 AliBasedNdetaTask.cxx:693
 AliBasedNdetaTask.cxx:694
 AliBasedNdetaTask.cxx:695
 AliBasedNdetaTask.cxx:696
 AliBasedNdetaTask.cxx:697
 AliBasedNdetaTask.cxx:698
 AliBasedNdetaTask.cxx:699
 AliBasedNdetaTask.cxx:700
 AliBasedNdetaTask.cxx:701
 AliBasedNdetaTask.cxx:702
 AliBasedNdetaTask.cxx:703
 AliBasedNdetaTask.cxx:704
 AliBasedNdetaTask.cxx:705
 AliBasedNdetaTask.cxx:706
 AliBasedNdetaTask.cxx:707
 AliBasedNdetaTask.cxx:708
 AliBasedNdetaTask.cxx:709
 AliBasedNdetaTask.cxx:710
 AliBasedNdetaTask.cxx:711
 AliBasedNdetaTask.cxx:712
 AliBasedNdetaTask.cxx:713
 AliBasedNdetaTask.cxx:714
 AliBasedNdetaTask.cxx:715
 AliBasedNdetaTask.cxx:716
 AliBasedNdetaTask.cxx:717
 AliBasedNdetaTask.cxx:718
 AliBasedNdetaTask.cxx:719
 AliBasedNdetaTask.cxx:720
 AliBasedNdetaTask.cxx:721
 AliBasedNdetaTask.cxx:722
 AliBasedNdetaTask.cxx:723
 AliBasedNdetaTask.cxx:724
 AliBasedNdetaTask.cxx:725
 AliBasedNdetaTask.cxx:726
 AliBasedNdetaTask.cxx:727
 AliBasedNdetaTask.cxx:728
 AliBasedNdetaTask.cxx:729
 AliBasedNdetaTask.cxx:730
 AliBasedNdetaTask.cxx:731
 AliBasedNdetaTask.cxx:732
 AliBasedNdetaTask.cxx:733
 AliBasedNdetaTask.cxx:734
 AliBasedNdetaTask.cxx:735
 AliBasedNdetaTask.cxx:736
 AliBasedNdetaTask.cxx:737
 AliBasedNdetaTask.cxx:738
 AliBasedNdetaTask.cxx:739
 AliBasedNdetaTask.cxx:740
 AliBasedNdetaTask.cxx:741
 AliBasedNdetaTask.cxx:742
 AliBasedNdetaTask.cxx:743
 AliBasedNdetaTask.cxx:744
 AliBasedNdetaTask.cxx:745
 AliBasedNdetaTask.cxx:746
 AliBasedNdetaTask.cxx:747
 AliBasedNdetaTask.cxx:748
 AliBasedNdetaTask.cxx:749
 AliBasedNdetaTask.cxx:750
 AliBasedNdetaTask.cxx:751
 AliBasedNdetaTask.cxx:752
 AliBasedNdetaTask.cxx:753
 AliBasedNdetaTask.cxx:754
 AliBasedNdetaTask.cxx:755
 AliBasedNdetaTask.cxx:756
 AliBasedNdetaTask.cxx:757
 AliBasedNdetaTask.cxx:758
 AliBasedNdetaTask.cxx:759
 AliBasedNdetaTask.cxx:760
 AliBasedNdetaTask.cxx:761
 AliBasedNdetaTask.cxx:762
 AliBasedNdetaTask.cxx:763
 AliBasedNdetaTask.cxx:764
 AliBasedNdetaTask.cxx:765
 AliBasedNdetaTask.cxx:766
 AliBasedNdetaTask.cxx:767
 AliBasedNdetaTask.cxx:768
 AliBasedNdetaTask.cxx:769
 AliBasedNdetaTask.cxx:770
 AliBasedNdetaTask.cxx:771
 AliBasedNdetaTask.cxx:772
 AliBasedNdetaTask.cxx:773
 AliBasedNdetaTask.cxx:774
 AliBasedNdetaTask.cxx:775
 AliBasedNdetaTask.cxx:776
 AliBasedNdetaTask.cxx:777
 AliBasedNdetaTask.cxx:778
 AliBasedNdetaTask.cxx:779
 AliBasedNdetaTask.cxx:780
 AliBasedNdetaTask.cxx:781
 AliBasedNdetaTask.cxx:782
 AliBasedNdetaTask.cxx:783
 AliBasedNdetaTask.cxx:784
 AliBasedNdetaTask.cxx:785
 AliBasedNdetaTask.cxx:786
 AliBasedNdetaTask.cxx:787
 AliBasedNdetaTask.cxx:788
 AliBasedNdetaTask.cxx:789
 AliBasedNdetaTask.cxx:790
 AliBasedNdetaTask.cxx:791
 AliBasedNdetaTask.cxx:792
 AliBasedNdetaTask.cxx:793
 AliBasedNdetaTask.cxx:794
 AliBasedNdetaTask.cxx:795
 AliBasedNdetaTask.cxx:796
 AliBasedNdetaTask.cxx:797
 AliBasedNdetaTask.cxx:798
 AliBasedNdetaTask.cxx:799
 AliBasedNdetaTask.cxx:800
 AliBasedNdetaTask.cxx:801
 AliBasedNdetaTask.cxx:802
 AliBasedNdetaTask.cxx:803
 AliBasedNdetaTask.cxx:804
 AliBasedNdetaTask.cxx:805
 AliBasedNdetaTask.cxx:806
 AliBasedNdetaTask.cxx:807
 AliBasedNdetaTask.cxx:808
 AliBasedNdetaTask.cxx:809
 AliBasedNdetaTask.cxx:810
 AliBasedNdetaTask.cxx:811
 AliBasedNdetaTask.cxx:812
 AliBasedNdetaTask.cxx:813
 AliBasedNdetaTask.cxx:814
 AliBasedNdetaTask.cxx:815
 AliBasedNdetaTask.cxx:816
 AliBasedNdetaTask.cxx:817
 AliBasedNdetaTask.cxx:818
 AliBasedNdetaTask.cxx:819
 AliBasedNdetaTask.cxx:820
 AliBasedNdetaTask.cxx:821
 AliBasedNdetaTask.cxx:822
 AliBasedNdetaTask.cxx:823
 AliBasedNdetaTask.cxx:824
 AliBasedNdetaTask.cxx:825
 AliBasedNdetaTask.cxx:826
 AliBasedNdetaTask.cxx:827
 AliBasedNdetaTask.cxx:828
 AliBasedNdetaTask.cxx:829
 AliBasedNdetaTask.cxx:830
 AliBasedNdetaTask.cxx:831
 AliBasedNdetaTask.cxx:832
 AliBasedNdetaTask.cxx:833
 AliBasedNdetaTask.cxx:834
 AliBasedNdetaTask.cxx:835
 AliBasedNdetaTask.cxx:836
 AliBasedNdetaTask.cxx:837
 AliBasedNdetaTask.cxx:838
 AliBasedNdetaTask.cxx:839
 AliBasedNdetaTask.cxx:840
 AliBasedNdetaTask.cxx:841
 AliBasedNdetaTask.cxx:842
 AliBasedNdetaTask.cxx:843
 AliBasedNdetaTask.cxx:844
 AliBasedNdetaTask.cxx:845
 AliBasedNdetaTask.cxx:846
 AliBasedNdetaTask.cxx:847
 AliBasedNdetaTask.cxx:848
 AliBasedNdetaTask.cxx:849
 AliBasedNdetaTask.cxx:850
 AliBasedNdetaTask.cxx:851
 AliBasedNdetaTask.cxx:852
 AliBasedNdetaTask.cxx:853
 AliBasedNdetaTask.cxx:854
 AliBasedNdetaTask.cxx:855
 AliBasedNdetaTask.cxx:856
 AliBasedNdetaTask.cxx:857
 AliBasedNdetaTask.cxx:858
 AliBasedNdetaTask.cxx:859
 AliBasedNdetaTask.cxx:860
 AliBasedNdetaTask.cxx:861
 AliBasedNdetaTask.cxx:862
 AliBasedNdetaTask.cxx:863
 AliBasedNdetaTask.cxx:864
 AliBasedNdetaTask.cxx:865
 AliBasedNdetaTask.cxx:866
 AliBasedNdetaTask.cxx:867
 AliBasedNdetaTask.cxx:868
 AliBasedNdetaTask.cxx:869
 AliBasedNdetaTask.cxx:870
 AliBasedNdetaTask.cxx:871
 AliBasedNdetaTask.cxx:872
 AliBasedNdetaTask.cxx:873
 AliBasedNdetaTask.cxx:874
 AliBasedNdetaTask.cxx:875
 AliBasedNdetaTask.cxx:876
 AliBasedNdetaTask.cxx:877
 AliBasedNdetaTask.cxx:878
 AliBasedNdetaTask.cxx:879
 AliBasedNdetaTask.cxx:880
 AliBasedNdetaTask.cxx:881
 AliBasedNdetaTask.cxx:882
 AliBasedNdetaTask.cxx:883
 AliBasedNdetaTask.cxx:884
 AliBasedNdetaTask.cxx:885
 AliBasedNdetaTask.cxx:886
 AliBasedNdetaTask.cxx:887
 AliBasedNdetaTask.cxx:888
 AliBasedNdetaTask.cxx:889
 AliBasedNdetaTask.cxx:890
 AliBasedNdetaTask.cxx:891
 AliBasedNdetaTask.cxx:892
 AliBasedNdetaTask.cxx:893
 AliBasedNdetaTask.cxx:894
 AliBasedNdetaTask.cxx:895
 AliBasedNdetaTask.cxx:896
 AliBasedNdetaTask.cxx:897
 AliBasedNdetaTask.cxx:898
 AliBasedNdetaTask.cxx:899
 AliBasedNdetaTask.cxx:900
 AliBasedNdetaTask.cxx:901
 AliBasedNdetaTask.cxx:902
 AliBasedNdetaTask.cxx:903
 AliBasedNdetaTask.cxx:904
 AliBasedNdetaTask.cxx:905
 AliBasedNdetaTask.cxx:906
 AliBasedNdetaTask.cxx:907
 AliBasedNdetaTask.cxx:908
 AliBasedNdetaTask.cxx:909
 AliBasedNdetaTask.cxx:910
 AliBasedNdetaTask.cxx:911
 AliBasedNdetaTask.cxx:912
 AliBasedNdetaTask.cxx:913
 AliBasedNdetaTask.cxx:914
 AliBasedNdetaTask.cxx:915
 AliBasedNdetaTask.cxx:916
 AliBasedNdetaTask.cxx:917
 AliBasedNdetaTask.cxx:918
 AliBasedNdetaTask.cxx:919
 AliBasedNdetaTask.cxx:920
 AliBasedNdetaTask.cxx:921
 AliBasedNdetaTask.cxx:922
 AliBasedNdetaTask.cxx:923
 AliBasedNdetaTask.cxx:924
 AliBasedNdetaTask.cxx:925
 AliBasedNdetaTask.cxx:926
 AliBasedNdetaTask.cxx:927
 AliBasedNdetaTask.cxx:928
 AliBasedNdetaTask.cxx:929
 AliBasedNdetaTask.cxx:930
 AliBasedNdetaTask.cxx:931
 AliBasedNdetaTask.cxx:932
 AliBasedNdetaTask.cxx:933
 AliBasedNdetaTask.cxx:934
 AliBasedNdetaTask.cxx:935
 AliBasedNdetaTask.cxx:936
 AliBasedNdetaTask.cxx:937
 AliBasedNdetaTask.cxx:938
 AliBasedNdetaTask.cxx:939
 AliBasedNdetaTask.cxx:940
 AliBasedNdetaTask.cxx:941
 AliBasedNdetaTask.cxx:942
 AliBasedNdetaTask.cxx:943
 AliBasedNdetaTask.cxx:944
 AliBasedNdetaTask.cxx:945
 AliBasedNdetaTask.cxx:946
 AliBasedNdetaTask.cxx:947
 AliBasedNdetaTask.cxx:948
 AliBasedNdetaTask.cxx:949
 AliBasedNdetaTask.cxx:950
 AliBasedNdetaTask.cxx:951
 AliBasedNdetaTask.cxx:952
 AliBasedNdetaTask.cxx:953
 AliBasedNdetaTask.cxx:954
 AliBasedNdetaTask.cxx:955
 AliBasedNdetaTask.cxx:956
 AliBasedNdetaTask.cxx:957
 AliBasedNdetaTask.cxx:958
 AliBasedNdetaTask.cxx:959
 AliBasedNdetaTask.cxx:960
 AliBasedNdetaTask.cxx:961
 AliBasedNdetaTask.cxx:962
 AliBasedNdetaTask.cxx:963
 AliBasedNdetaTask.cxx:964
 AliBasedNdetaTask.cxx:965
 AliBasedNdetaTask.cxx:966
 AliBasedNdetaTask.cxx:967
 AliBasedNdetaTask.cxx:968
 AliBasedNdetaTask.cxx:969
 AliBasedNdetaTask.cxx:970
 AliBasedNdetaTask.cxx:971
 AliBasedNdetaTask.cxx:972
 AliBasedNdetaTask.cxx:973
 AliBasedNdetaTask.cxx:974
 AliBasedNdetaTask.cxx:975
 AliBasedNdetaTask.cxx:976
 AliBasedNdetaTask.cxx:977
 AliBasedNdetaTask.cxx:978
 AliBasedNdetaTask.cxx:979
 AliBasedNdetaTask.cxx:980
 AliBasedNdetaTask.cxx:981
 AliBasedNdetaTask.cxx:982
 AliBasedNdetaTask.cxx:983
 AliBasedNdetaTask.cxx:984
 AliBasedNdetaTask.cxx:985
 AliBasedNdetaTask.cxx:986
 AliBasedNdetaTask.cxx:987
 AliBasedNdetaTask.cxx:988
 AliBasedNdetaTask.cxx:989
 AliBasedNdetaTask.cxx:990
 AliBasedNdetaTask.cxx:991
 AliBasedNdetaTask.cxx:992
 AliBasedNdetaTask.cxx:993
 AliBasedNdetaTask.cxx:994
 AliBasedNdetaTask.cxx:995
 AliBasedNdetaTask.cxx:996
 AliBasedNdetaTask.cxx:997
 AliBasedNdetaTask.cxx:998
 AliBasedNdetaTask.cxx:999
 AliBasedNdetaTask.cxx:1000
 AliBasedNdetaTask.cxx:1001
 AliBasedNdetaTask.cxx:1002
 AliBasedNdetaTask.cxx:1003
 AliBasedNdetaTask.cxx:1004
 AliBasedNdetaTask.cxx:1005
 AliBasedNdetaTask.cxx:1006
 AliBasedNdetaTask.cxx:1007
 AliBasedNdetaTask.cxx:1008
 AliBasedNdetaTask.cxx:1009
 AliBasedNdetaTask.cxx:1010
 AliBasedNdetaTask.cxx:1011
 AliBasedNdetaTask.cxx:1012
 AliBasedNdetaTask.cxx:1013
 AliBasedNdetaTask.cxx:1014
 AliBasedNdetaTask.cxx:1015
 AliBasedNdetaTask.cxx:1016
 AliBasedNdetaTask.cxx:1017
 AliBasedNdetaTask.cxx:1018
 AliBasedNdetaTask.cxx:1019
 AliBasedNdetaTask.cxx:1020
 AliBasedNdetaTask.cxx:1021
 AliBasedNdetaTask.cxx:1022
 AliBasedNdetaTask.cxx:1023
 AliBasedNdetaTask.cxx:1024
 AliBasedNdetaTask.cxx:1025
 AliBasedNdetaTask.cxx:1026
 AliBasedNdetaTask.cxx:1027
 AliBasedNdetaTask.cxx:1028
 AliBasedNdetaTask.cxx:1029
 AliBasedNdetaTask.cxx:1030
 AliBasedNdetaTask.cxx:1031
 AliBasedNdetaTask.cxx:1032
 AliBasedNdetaTask.cxx:1033
 AliBasedNdetaTask.cxx:1034
 AliBasedNdetaTask.cxx:1035
 AliBasedNdetaTask.cxx:1036
 AliBasedNdetaTask.cxx:1037
 AliBasedNdetaTask.cxx:1038
 AliBasedNdetaTask.cxx:1039
 AliBasedNdetaTask.cxx:1040
 AliBasedNdetaTask.cxx:1041
 AliBasedNdetaTask.cxx:1042
 AliBasedNdetaTask.cxx:1043
 AliBasedNdetaTask.cxx:1044
 AliBasedNdetaTask.cxx:1045
 AliBasedNdetaTask.cxx:1046
 AliBasedNdetaTask.cxx:1047
 AliBasedNdetaTask.cxx:1048
 AliBasedNdetaTask.cxx:1049
 AliBasedNdetaTask.cxx:1050
 AliBasedNdetaTask.cxx:1051
 AliBasedNdetaTask.cxx:1052
 AliBasedNdetaTask.cxx:1053
 AliBasedNdetaTask.cxx:1054
 AliBasedNdetaTask.cxx:1055
 AliBasedNdetaTask.cxx:1056
 AliBasedNdetaTask.cxx:1057
 AliBasedNdetaTask.cxx:1058
 AliBasedNdetaTask.cxx:1059
 AliBasedNdetaTask.cxx:1060
 AliBasedNdetaTask.cxx:1061
 AliBasedNdetaTask.cxx:1062
 AliBasedNdetaTask.cxx:1063
 AliBasedNdetaTask.cxx:1064
 AliBasedNdetaTask.cxx:1065
 AliBasedNdetaTask.cxx:1066
 AliBasedNdetaTask.cxx:1067
 AliBasedNdetaTask.cxx:1068
 AliBasedNdetaTask.cxx:1069
 AliBasedNdetaTask.cxx:1070
 AliBasedNdetaTask.cxx:1071
 AliBasedNdetaTask.cxx:1072
 AliBasedNdetaTask.cxx:1073
 AliBasedNdetaTask.cxx:1074
 AliBasedNdetaTask.cxx:1075
 AliBasedNdetaTask.cxx:1076
 AliBasedNdetaTask.cxx:1077
 AliBasedNdetaTask.cxx:1078
 AliBasedNdetaTask.cxx:1079
 AliBasedNdetaTask.cxx:1080
 AliBasedNdetaTask.cxx:1081
 AliBasedNdetaTask.cxx:1082
 AliBasedNdetaTask.cxx:1083
 AliBasedNdetaTask.cxx:1084
 AliBasedNdetaTask.cxx:1085
 AliBasedNdetaTask.cxx:1086
 AliBasedNdetaTask.cxx:1087
 AliBasedNdetaTask.cxx:1088
 AliBasedNdetaTask.cxx:1089
 AliBasedNdetaTask.cxx:1090
 AliBasedNdetaTask.cxx:1091
 AliBasedNdetaTask.cxx:1092
 AliBasedNdetaTask.cxx:1093
 AliBasedNdetaTask.cxx:1094
 AliBasedNdetaTask.cxx:1095
 AliBasedNdetaTask.cxx:1096
 AliBasedNdetaTask.cxx:1097
 AliBasedNdetaTask.cxx:1098
 AliBasedNdetaTask.cxx:1099
 AliBasedNdetaTask.cxx:1100
 AliBasedNdetaTask.cxx:1101
 AliBasedNdetaTask.cxx:1102
 AliBasedNdetaTask.cxx:1103
 AliBasedNdetaTask.cxx:1104
 AliBasedNdetaTask.cxx:1105
 AliBasedNdetaTask.cxx:1106
 AliBasedNdetaTask.cxx:1107
 AliBasedNdetaTask.cxx:1108
 AliBasedNdetaTask.cxx:1109
 AliBasedNdetaTask.cxx:1110
 AliBasedNdetaTask.cxx:1111
 AliBasedNdetaTask.cxx:1112
 AliBasedNdetaTask.cxx:1113
 AliBasedNdetaTask.cxx:1114
 AliBasedNdetaTask.cxx:1115
 AliBasedNdetaTask.cxx:1116
 AliBasedNdetaTask.cxx:1117
 AliBasedNdetaTask.cxx:1118
 AliBasedNdetaTask.cxx:1119
 AliBasedNdetaTask.cxx:1120
 AliBasedNdetaTask.cxx:1121
 AliBasedNdetaTask.cxx:1122
 AliBasedNdetaTask.cxx:1123
 AliBasedNdetaTask.cxx:1124
 AliBasedNdetaTask.cxx:1125
 AliBasedNdetaTask.cxx:1126
 AliBasedNdetaTask.cxx:1127
 AliBasedNdetaTask.cxx:1128
 AliBasedNdetaTask.cxx:1129
 AliBasedNdetaTask.cxx:1130
 AliBasedNdetaTask.cxx:1131
 AliBasedNdetaTask.cxx:1132
 AliBasedNdetaTask.cxx:1133
 AliBasedNdetaTask.cxx:1134
 AliBasedNdetaTask.cxx:1135
 AliBasedNdetaTask.cxx:1136
 AliBasedNdetaTask.cxx:1137
 AliBasedNdetaTask.cxx:1138
 AliBasedNdetaTask.cxx:1139
 AliBasedNdetaTask.cxx:1140
 AliBasedNdetaTask.cxx:1141
 AliBasedNdetaTask.cxx:1142
 AliBasedNdetaTask.cxx:1143
 AliBasedNdetaTask.cxx:1144
 AliBasedNdetaTask.cxx:1145
 AliBasedNdetaTask.cxx:1146
 AliBasedNdetaTask.cxx:1147
 AliBasedNdetaTask.cxx:1148
 AliBasedNdetaTask.cxx:1149
 AliBasedNdetaTask.cxx:1150
 AliBasedNdetaTask.cxx:1151
 AliBasedNdetaTask.cxx:1152
 AliBasedNdetaTask.cxx:1153
 AliBasedNdetaTask.cxx:1154
 AliBasedNdetaTask.cxx:1155
 AliBasedNdetaTask.cxx:1156
 AliBasedNdetaTask.cxx:1157
 AliBasedNdetaTask.cxx:1158
 AliBasedNdetaTask.cxx:1159
 AliBasedNdetaTask.cxx:1160
 AliBasedNdetaTask.cxx:1161
 AliBasedNdetaTask.cxx:1162
 AliBasedNdetaTask.cxx:1163
 AliBasedNdetaTask.cxx:1164
 AliBasedNdetaTask.cxx:1165
 AliBasedNdetaTask.cxx:1166
 AliBasedNdetaTask.cxx:1167
 AliBasedNdetaTask.cxx:1168
 AliBasedNdetaTask.cxx:1169
 AliBasedNdetaTask.cxx:1170
 AliBasedNdetaTask.cxx:1171
 AliBasedNdetaTask.cxx:1172
 AliBasedNdetaTask.cxx:1173
 AliBasedNdetaTask.cxx:1174
 AliBasedNdetaTask.cxx:1175
 AliBasedNdetaTask.cxx:1176
 AliBasedNdetaTask.cxx:1177
 AliBasedNdetaTask.cxx:1178
 AliBasedNdetaTask.cxx:1179
 AliBasedNdetaTask.cxx:1180
 AliBasedNdetaTask.cxx:1181
 AliBasedNdetaTask.cxx:1182
 AliBasedNdetaTask.cxx:1183
 AliBasedNdetaTask.cxx:1184
 AliBasedNdetaTask.cxx:1185
 AliBasedNdetaTask.cxx:1186
 AliBasedNdetaTask.cxx:1187
 AliBasedNdetaTask.cxx:1188
 AliBasedNdetaTask.cxx:1189
 AliBasedNdetaTask.cxx:1190
 AliBasedNdetaTask.cxx:1191
 AliBasedNdetaTask.cxx:1192
 AliBasedNdetaTask.cxx:1193
 AliBasedNdetaTask.cxx:1194
 AliBasedNdetaTask.cxx:1195
 AliBasedNdetaTask.cxx:1196
 AliBasedNdetaTask.cxx:1197
 AliBasedNdetaTask.cxx:1198
 AliBasedNdetaTask.cxx:1199
 AliBasedNdetaTask.cxx:1200
 AliBasedNdetaTask.cxx:1201
 AliBasedNdetaTask.cxx:1202
 AliBasedNdetaTask.cxx:1203
 AliBasedNdetaTask.cxx:1204
 AliBasedNdetaTask.cxx:1205
 AliBasedNdetaTask.cxx:1206
 AliBasedNdetaTask.cxx:1207
 AliBasedNdetaTask.cxx:1208
 AliBasedNdetaTask.cxx:1209
 AliBasedNdetaTask.cxx:1210
 AliBasedNdetaTask.cxx:1211
 AliBasedNdetaTask.cxx:1212
 AliBasedNdetaTask.cxx:1213
 AliBasedNdetaTask.cxx:1214
 AliBasedNdetaTask.cxx:1215
 AliBasedNdetaTask.cxx:1216
 AliBasedNdetaTask.cxx:1217
 AliBasedNdetaTask.cxx:1218
 AliBasedNdetaTask.cxx:1219
 AliBasedNdetaTask.cxx:1220
 AliBasedNdetaTask.cxx:1221
 AliBasedNdetaTask.cxx:1222
 AliBasedNdetaTask.cxx:1223
 AliBasedNdetaTask.cxx:1224
 AliBasedNdetaTask.cxx:1225
 AliBasedNdetaTask.cxx:1226
 AliBasedNdetaTask.cxx:1227
 AliBasedNdetaTask.cxx:1228
 AliBasedNdetaTask.cxx:1229
 AliBasedNdetaTask.cxx:1230
 AliBasedNdetaTask.cxx:1231
 AliBasedNdetaTask.cxx:1232
 AliBasedNdetaTask.cxx:1233
 AliBasedNdetaTask.cxx:1234
 AliBasedNdetaTask.cxx:1235
 AliBasedNdetaTask.cxx:1236
 AliBasedNdetaTask.cxx:1237
 AliBasedNdetaTask.cxx:1238
 AliBasedNdetaTask.cxx:1239
 AliBasedNdetaTask.cxx:1240
 AliBasedNdetaTask.cxx:1241
 AliBasedNdetaTask.cxx:1242
 AliBasedNdetaTask.cxx:1243
 AliBasedNdetaTask.cxx:1244
 AliBasedNdetaTask.cxx:1245
 AliBasedNdetaTask.cxx:1246
 AliBasedNdetaTask.cxx:1247
 AliBasedNdetaTask.cxx:1248
 AliBasedNdetaTask.cxx:1249
 AliBasedNdetaTask.cxx:1250
 AliBasedNdetaTask.cxx:1251
 AliBasedNdetaTask.cxx:1252
 AliBasedNdetaTask.cxx:1253
 AliBasedNdetaTask.cxx:1254
 AliBasedNdetaTask.cxx:1255
 AliBasedNdetaTask.cxx:1256
 AliBasedNdetaTask.cxx:1257
 AliBasedNdetaTask.cxx:1258
 AliBasedNdetaTask.cxx:1259
 AliBasedNdetaTask.cxx:1260
 AliBasedNdetaTask.cxx:1261
 AliBasedNdetaTask.cxx:1262
 AliBasedNdetaTask.cxx:1263
 AliBasedNdetaTask.cxx:1264
 AliBasedNdetaTask.cxx:1265
 AliBasedNdetaTask.cxx:1266
 AliBasedNdetaTask.cxx:1267
 AliBasedNdetaTask.cxx:1268
 AliBasedNdetaTask.cxx:1269
 AliBasedNdetaTask.cxx:1270
 AliBasedNdetaTask.cxx:1271
 AliBasedNdetaTask.cxx:1272
 AliBasedNdetaTask.cxx:1273
 AliBasedNdetaTask.cxx:1274
 AliBasedNdetaTask.cxx:1275
 AliBasedNdetaTask.cxx:1276
 AliBasedNdetaTask.cxx:1277
 AliBasedNdetaTask.cxx:1278
 AliBasedNdetaTask.cxx:1279
 AliBasedNdetaTask.cxx:1280
 AliBasedNdetaTask.cxx:1281
 AliBasedNdetaTask.cxx:1282
 AliBasedNdetaTask.cxx:1283
 AliBasedNdetaTask.cxx:1284
 AliBasedNdetaTask.cxx:1285
 AliBasedNdetaTask.cxx:1286
 AliBasedNdetaTask.cxx:1287
 AliBasedNdetaTask.cxx:1288
 AliBasedNdetaTask.cxx:1289
 AliBasedNdetaTask.cxx:1290
 AliBasedNdetaTask.cxx:1291
 AliBasedNdetaTask.cxx:1292
 AliBasedNdetaTask.cxx:1293
 AliBasedNdetaTask.cxx:1294
 AliBasedNdetaTask.cxx:1295
 AliBasedNdetaTask.cxx:1296
 AliBasedNdetaTask.cxx:1297
 AliBasedNdetaTask.cxx:1298
 AliBasedNdetaTask.cxx:1299
 AliBasedNdetaTask.cxx:1300
 AliBasedNdetaTask.cxx:1301
 AliBasedNdetaTask.cxx:1302
 AliBasedNdetaTask.cxx:1303
 AliBasedNdetaTask.cxx:1304
 AliBasedNdetaTask.cxx:1305
 AliBasedNdetaTask.cxx:1306
 AliBasedNdetaTask.cxx:1307
 AliBasedNdetaTask.cxx:1308
 AliBasedNdetaTask.cxx:1309
 AliBasedNdetaTask.cxx:1310
 AliBasedNdetaTask.cxx:1311
 AliBasedNdetaTask.cxx:1312
 AliBasedNdetaTask.cxx:1313
 AliBasedNdetaTask.cxx:1314
 AliBasedNdetaTask.cxx:1315
 AliBasedNdetaTask.cxx:1316
 AliBasedNdetaTask.cxx:1317
 AliBasedNdetaTask.cxx:1318
 AliBasedNdetaTask.cxx:1319
 AliBasedNdetaTask.cxx:1320
 AliBasedNdetaTask.cxx:1321
 AliBasedNdetaTask.cxx:1322
 AliBasedNdetaTask.cxx:1323
 AliBasedNdetaTask.cxx:1324
 AliBasedNdetaTask.cxx:1325
 AliBasedNdetaTask.cxx:1326
 AliBasedNdetaTask.cxx:1327
 AliBasedNdetaTask.cxx:1328
 AliBasedNdetaTask.cxx:1329
 AliBasedNdetaTask.cxx:1330
 AliBasedNdetaTask.cxx:1331
 AliBasedNdetaTask.cxx:1332
 AliBasedNdetaTask.cxx:1333
 AliBasedNdetaTask.cxx:1334
 AliBasedNdetaTask.cxx:1335
 AliBasedNdetaTask.cxx:1336
 AliBasedNdetaTask.cxx:1337
 AliBasedNdetaTask.cxx:1338
 AliBasedNdetaTask.cxx:1339
 AliBasedNdetaTask.cxx:1340
 AliBasedNdetaTask.cxx:1341
 AliBasedNdetaTask.cxx:1342
 AliBasedNdetaTask.cxx:1343
 AliBasedNdetaTask.cxx:1344
 AliBasedNdetaTask.cxx:1345
 AliBasedNdetaTask.cxx:1346
 AliBasedNdetaTask.cxx:1347
 AliBasedNdetaTask.cxx:1348
 AliBasedNdetaTask.cxx:1349
 AliBasedNdetaTask.cxx:1350
 AliBasedNdetaTask.cxx:1351
 AliBasedNdetaTask.cxx:1352
 AliBasedNdetaTask.cxx:1353
 AliBasedNdetaTask.cxx:1354
 AliBasedNdetaTask.cxx:1355
 AliBasedNdetaTask.cxx:1356
 AliBasedNdetaTask.cxx:1357
 AliBasedNdetaTask.cxx:1358
 AliBasedNdetaTask.cxx:1359
 AliBasedNdetaTask.cxx:1360
 AliBasedNdetaTask.cxx:1361
 AliBasedNdetaTask.cxx:1362
 AliBasedNdetaTask.cxx:1363
 AliBasedNdetaTask.cxx:1364
 AliBasedNdetaTask.cxx:1365
 AliBasedNdetaTask.cxx:1366
 AliBasedNdetaTask.cxx:1367
 AliBasedNdetaTask.cxx:1368
 AliBasedNdetaTask.cxx:1369
 AliBasedNdetaTask.cxx:1370
 AliBasedNdetaTask.cxx:1371
 AliBasedNdetaTask.cxx:1372
 AliBasedNdetaTask.cxx:1373
 AliBasedNdetaTask.cxx:1374
 AliBasedNdetaTask.cxx:1375
 AliBasedNdetaTask.cxx:1376
 AliBasedNdetaTask.cxx:1377
 AliBasedNdetaTask.cxx:1378
 AliBasedNdetaTask.cxx:1379
 AliBasedNdetaTask.cxx:1380
 AliBasedNdetaTask.cxx:1381
 AliBasedNdetaTask.cxx:1382
 AliBasedNdetaTask.cxx:1383
 AliBasedNdetaTask.cxx:1384
 AliBasedNdetaTask.cxx:1385
 AliBasedNdetaTask.cxx:1386
 AliBasedNdetaTask.cxx:1387
 AliBasedNdetaTask.cxx:1388
 AliBasedNdetaTask.cxx:1389
 AliBasedNdetaTask.cxx:1390
 AliBasedNdetaTask.cxx:1391
 AliBasedNdetaTask.cxx:1392
 AliBasedNdetaTask.cxx:1393
 AliBasedNdetaTask.cxx:1394
 AliBasedNdetaTask.cxx:1395
 AliBasedNdetaTask.cxx:1396
 AliBasedNdetaTask.cxx:1397
 AliBasedNdetaTask.cxx:1398
 AliBasedNdetaTask.cxx:1399
 AliBasedNdetaTask.cxx:1400
 AliBasedNdetaTask.cxx:1401
 AliBasedNdetaTask.cxx:1402
 AliBasedNdetaTask.cxx:1403
 AliBasedNdetaTask.cxx:1404
 AliBasedNdetaTask.cxx:1405
 AliBasedNdetaTask.cxx:1406
 AliBasedNdetaTask.cxx:1407
 AliBasedNdetaTask.cxx:1408
 AliBasedNdetaTask.cxx:1409
 AliBasedNdetaTask.cxx:1410
 AliBasedNdetaTask.cxx:1411
 AliBasedNdetaTask.cxx:1412
 AliBasedNdetaTask.cxx:1413
 AliBasedNdetaTask.cxx:1414
 AliBasedNdetaTask.cxx:1415
 AliBasedNdetaTask.cxx:1416
 AliBasedNdetaTask.cxx:1417
 AliBasedNdetaTask.cxx:1418
 AliBasedNdetaTask.cxx:1419
 AliBasedNdetaTask.cxx:1420
 AliBasedNdetaTask.cxx:1421
 AliBasedNdetaTask.cxx:1422
 AliBasedNdetaTask.cxx:1423
 AliBasedNdetaTask.cxx:1424
 AliBasedNdetaTask.cxx:1425
 AliBasedNdetaTask.cxx:1426
 AliBasedNdetaTask.cxx:1427
 AliBasedNdetaTask.cxx:1428
 AliBasedNdetaTask.cxx:1429
 AliBasedNdetaTask.cxx:1430
 AliBasedNdetaTask.cxx:1431
 AliBasedNdetaTask.cxx:1432
 AliBasedNdetaTask.cxx:1433
 AliBasedNdetaTask.cxx:1434
 AliBasedNdetaTask.cxx:1435
 AliBasedNdetaTask.cxx:1436
 AliBasedNdetaTask.cxx:1437
 AliBasedNdetaTask.cxx:1438
 AliBasedNdetaTask.cxx:1439
 AliBasedNdetaTask.cxx:1440
 AliBasedNdetaTask.cxx:1441
 AliBasedNdetaTask.cxx:1442
 AliBasedNdetaTask.cxx:1443
 AliBasedNdetaTask.cxx:1444
 AliBasedNdetaTask.cxx:1445
 AliBasedNdetaTask.cxx:1446
 AliBasedNdetaTask.cxx:1447
 AliBasedNdetaTask.cxx:1448
 AliBasedNdetaTask.cxx:1449
 AliBasedNdetaTask.cxx:1450
 AliBasedNdetaTask.cxx:1451
 AliBasedNdetaTask.cxx:1452
 AliBasedNdetaTask.cxx:1453
 AliBasedNdetaTask.cxx:1454
 AliBasedNdetaTask.cxx:1455
 AliBasedNdetaTask.cxx:1456
 AliBasedNdetaTask.cxx:1457
 AliBasedNdetaTask.cxx:1458
 AliBasedNdetaTask.cxx:1459
 AliBasedNdetaTask.cxx:1460
 AliBasedNdetaTask.cxx:1461
 AliBasedNdetaTask.cxx:1462
 AliBasedNdetaTask.cxx:1463
 AliBasedNdetaTask.cxx:1464
 AliBasedNdetaTask.cxx:1465
 AliBasedNdetaTask.cxx:1466
 AliBasedNdetaTask.cxx:1467
 AliBasedNdetaTask.cxx:1468
 AliBasedNdetaTask.cxx:1469
 AliBasedNdetaTask.cxx:1470
 AliBasedNdetaTask.cxx:1471
 AliBasedNdetaTask.cxx:1472
 AliBasedNdetaTask.cxx:1473
 AliBasedNdetaTask.cxx:1474
 AliBasedNdetaTask.cxx:1475
 AliBasedNdetaTask.cxx:1476
 AliBasedNdetaTask.cxx:1477
 AliBasedNdetaTask.cxx:1478
 AliBasedNdetaTask.cxx:1479
 AliBasedNdetaTask.cxx:1480
 AliBasedNdetaTask.cxx:1481
 AliBasedNdetaTask.cxx:1482
 AliBasedNdetaTask.cxx:1483
 AliBasedNdetaTask.cxx:1484
 AliBasedNdetaTask.cxx:1485
 AliBasedNdetaTask.cxx:1486
 AliBasedNdetaTask.cxx:1487
 AliBasedNdetaTask.cxx:1488
 AliBasedNdetaTask.cxx:1489
 AliBasedNdetaTask.cxx:1490
 AliBasedNdetaTask.cxx:1491
 AliBasedNdetaTask.cxx:1492
 AliBasedNdetaTask.cxx:1493
 AliBasedNdetaTask.cxx:1494
 AliBasedNdetaTask.cxx:1495
 AliBasedNdetaTask.cxx:1496
 AliBasedNdetaTask.cxx:1497
 AliBasedNdetaTask.cxx:1498
 AliBasedNdetaTask.cxx:1499
 AliBasedNdetaTask.cxx:1500
 AliBasedNdetaTask.cxx:1501
 AliBasedNdetaTask.cxx:1502
 AliBasedNdetaTask.cxx:1503
 AliBasedNdetaTask.cxx:1504
 AliBasedNdetaTask.cxx:1505
 AliBasedNdetaTask.cxx:1506
 AliBasedNdetaTask.cxx:1507
 AliBasedNdetaTask.cxx:1508
 AliBasedNdetaTask.cxx:1509
 AliBasedNdetaTask.cxx:1510
 AliBasedNdetaTask.cxx:1511
 AliBasedNdetaTask.cxx:1512
 AliBasedNdetaTask.cxx:1513
 AliBasedNdetaTask.cxx:1514
 AliBasedNdetaTask.cxx:1515
 AliBasedNdetaTask.cxx:1516
 AliBasedNdetaTask.cxx:1517
 AliBasedNdetaTask.cxx:1518
 AliBasedNdetaTask.cxx:1519
 AliBasedNdetaTask.cxx:1520
 AliBasedNdetaTask.cxx:1521
 AliBasedNdetaTask.cxx:1522
 AliBasedNdetaTask.cxx:1523
 AliBasedNdetaTask.cxx:1524
 AliBasedNdetaTask.cxx:1525
 AliBasedNdetaTask.cxx:1526
 AliBasedNdetaTask.cxx:1527
 AliBasedNdetaTask.cxx:1528
 AliBasedNdetaTask.cxx:1529
 AliBasedNdetaTask.cxx:1530
 AliBasedNdetaTask.cxx:1531
 AliBasedNdetaTask.cxx:1532
 AliBasedNdetaTask.cxx:1533
 AliBasedNdetaTask.cxx:1534
 AliBasedNdetaTask.cxx:1535
 AliBasedNdetaTask.cxx:1536
 AliBasedNdetaTask.cxx:1537
 AliBasedNdetaTask.cxx:1538
 AliBasedNdetaTask.cxx:1539
 AliBasedNdetaTask.cxx:1540
 AliBasedNdetaTask.cxx:1541
 AliBasedNdetaTask.cxx:1542
 AliBasedNdetaTask.cxx:1543
 AliBasedNdetaTask.cxx:1544
 AliBasedNdetaTask.cxx:1545
 AliBasedNdetaTask.cxx:1546
 AliBasedNdetaTask.cxx:1547
 AliBasedNdetaTask.cxx:1548
 AliBasedNdetaTask.cxx:1549
 AliBasedNdetaTask.cxx:1550
 AliBasedNdetaTask.cxx:1551
 AliBasedNdetaTask.cxx:1552
 AliBasedNdetaTask.cxx:1553
 AliBasedNdetaTask.cxx:1554
 AliBasedNdetaTask.cxx:1555
 AliBasedNdetaTask.cxx:1556
 AliBasedNdetaTask.cxx:1557
 AliBasedNdetaTask.cxx:1558
 AliBasedNdetaTask.cxx:1559
 AliBasedNdetaTask.cxx:1560
 AliBasedNdetaTask.cxx:1561
 AliBasedNdetaTask.cxx:1562
 AliBasedNdetaTask.cxx:1563
 AliBasedNdetaTask.cxx:1564
 AliBasedNdetaTask.cxx:1565
 AliBasedNdetaTask.cxx:1566
 AliBasedNdetaTask.cxx:1567
 AliBasedNdetaTask.cxx:1568
 AliBasedNdetaTask.cxx:1569
 AliBasedNdetaTask.cxx:1570
 AliBasedNdetaTask.cxx:1571
 AliBasedNdetaTask.cxx:1572
 AliBasedNdetaTask.cxx:1573
 AliBasedNdetaTask.cxx:1574
 AliBasedNdetaTask.cxx:1575
 AliBasedNdetaTask.cxx:1576
 AliBasedNdetaTask.cxx:1577
 AliBasedNdetaTask.cxx:1578
 AliBasedNdetaTask.cxx:1579
 AliBasedNdetaTask.cxx:1580
 AliBasedNdetaTask.cxx:1581
 AliBasedNdetaTask.cxx:1582
 AliBasedNdetaTask.cxx:1583
 AliBasedNdetaTask.cxx:1584
 AliBasedNdetaTask.cxx:1585
 AliBasedNdetaTask.cxx:1586
 AliBasedNdetaTask.cxx:1587
 AliBasedNdetaTask.cxx:1588
 AliBasedNdetaTask.cxx:1589
 AliBasedNdetaTask.cxx:1590
 AliBasedNdetaTask.cxx:1591
 AliBasedNdetaTask.cxx:1592
 AliBasedNdetaTask.cxx:1593
 AliBasedNdetaTask.cxx:1594
 AliBasedNdetaTask.cxx:1595
 AliBasedNdetaTask.cxx:1596
 AliBasedNdetaTask.cxx:1597
 AliBasedNdetaTask.cxx:1598
 AliBasedNdetaTask.cxx:1599
 AliBasedNdetaTask.cxx:1600
 AliBasedNdetaTask.cxx:1601
 AliBasedNdetaTask.cxx:1602
 AliBasedNdetaTask.cxx:1603
 AliBasedNdetaTask.cxx:1604
 AliBasedNdetaTask.cxx:1605
 AliBasedNdetaTask.cxx:1606
 AliBasedNdetaTask.cxx:1607
 AliBasedNdetaTask.cxx:1608
 AliBasedNdetaTask.cxx:1609
 AliBasedNdetaTask.cxx:1610
 AliBasedNdetaTask.cxx:1611
 AliBasedNdetaTask.cxx:1612
 AliBasedNdetaTask.cxx:1613
 AliBasedNdetaTask.cxx:1614
 AliBasedNdetaTask.cxx:1615
 AliBasedNdetaTask.cxx:1616
 AliBasedNdetaTask.cxx:1617
 AliBasedNdetaTask.cxx:1618
 AliBasedNdetaTask.cxx:1619
 AliBasedNdetaTask.cxx:1620
 AliBasedNdetaTask.cxx:1621
 AliBasedNdetaTask.cxx:1622
 AliBasedNdetaTask.cxx:1623
 AliBasedNdetaTask.cxx:1624
 AliBasedNdetaTask.cxx:1625
 AliBasedNdetaTask.cxx:1626
 AliBasedNdetaTask.cxx:1627
 AliBasedNdetaTask.cxx:1628
 AliBasedNdetaTask.cxx:1629
 AliBasedNdetaTask.cxx:1630
 AliBasedNdetaTask.cxx:1631
 AliBasedNdetaTask.cxx:1632
 AliBasedNdetaTask.cxx:1633
 AliBasedNdetaTask.cxx:1634
 AliBasedNdetaTask.cxx:1635
 AliBasedNdetaTask.cxx:1636
 AliBasedNdetaTask.cxx:1637
 AliBasedNdetaTask.cxx:1638
 AliBasedNdetaTask.cxx:1639
 AliBasedNdetaTask.cxx:1640
 AliBasedNdetaTask.cxx:1641
 AliBasedNdetaTask.cxx:1642
 AliBasedNdetaTask.cxx:1643
 AliBasedNdetaTask.cxx:1644
 AliBasedNdetaTask.cxx:1645
 AliBasedNdetaTask.cxx:1646
 AliBasedNdetaTask.cxx:1647
 AliBasedNdetaTask.cxx:1648
 AliBasedNdetaTask.cxx:1649
 AliBasedNdetaTask.cxx:1650
 AliBasedNdetaTask.cxx:1651
 AliBasedNdetaTask.cxx:1652
 AliBasedNdetaTask.cxx:1653
 AliBasedNdetaTask.cxx:1654
 AliBasedNdetaTask.cxx:1655
 AliBasedNdetaTask.cxx:1656
 AliBasedNdetaTask.cxx:1657
 AliBasedNdetaTask.cxx:1658
 AliBasedNdetaTask.cxx:1659
 AliBasedNdetaTask.cxx:1660
 AliBasedNdetaTask.cxx:1661
 AliBasedNdetaTask.cxx:1662
 AliBasedNdetaTask.cxx:1663
 AliBasedNdetaTask.cxx:1664
 AliBasedNdetaTask.cxx:1665
 AliBasedNdetaTask.cxx:1666
 AliBasedNdetaTask.cxx:1667
 AliBasedNdetaTask.cxx:1668
 AliBasedNdetaTask.cxx:1669
 AliBasedNdetaTask.cxx:1670
 AliBasedNdetaTask.cxx:1671
 AliBasedNdetaTask.cxx:1672
 AliBasedNdetaTask.cxx:1673
 AliBasedNdetaTask.cxx:1674
 AliBasedNdetaTask.cxx:1675
 AliBasedNdetaTask.cxx:1676
 AliBasedNdetaTask.cxx:1677
 AliBasedNdetaTask.cxx:1678
 AliBasedNdetaTask.cxx:1679
 AliBasedNdetaTask.cxx:1680
 AliBasedNdetaTask.cxx:1681
 AliBasedNdetaTask.cxx:1682
 AliBasedNdetaTask.cxx:1683
 AliBasedNdetaTask.cxx:1684
 AliBasedNdetaTask.cxx:1685
 AliBasedNdetaTask.cxx:1686
 AliBasedNdetaTask.cxx:1687
 AliBasedNdetaTask.cxx:1688
 AliBasedNdetaTask.cxx:1689
 AliBasedNdetaTask.cxx:1690
 AliBasedNdetaTask.cxx:1691
 AliBasedNdetaTask.cxx:1692
 AliBasedNdetaTask.cxx:1693
 AliBasedNdetaTask.cxx:1694
 AliBasedNdetaTask.cxx:1695
 AliBasedNdetaTask.cxx:1696
 AliBasedNdetaTask.cxx:1697
 AliBasedNdetaTask.cxx:1698
 AliBasedNdetaTask.cxx:1699
 AliBasedNdetaTask.cxx:1700
 AliBasedNdetaTask.cxx:1701
 AliBasedNdetaTask.cxx:1702
 AliBasedNdetaTask.cxx:1703
 AliBasedNdetaTask.cxx:1704
 AliBasedNdetaTask.cxx:1705
 AliBasedNdetaTask.cxx:1706
 AliBasedNdetaTask.cxx:1707
 AliBasedNdetaTask.cxx:1708
 AliBasedNdetaTask.cxx:1709
 AliBasedNdetaTask.cxx:1710
 AliBasedNdetaTask.cxx:1711
 AliBasedNdetaTask.cxx:1712
 AliBasedNdetaTask.cxx:1713
 AliBasedNdetaTask.cxx:1714
 AliBasedNdetaTask.cxx:1715
 AliBasedNdetaTask.cxx:1716
 AliBasedNdetaTask.cxx:1717
 AliBasedNdetaTask.cxx:1718
 AliBasedNdetaTask.cxx:1719
 AliBasedNdetaTask.cxx:1720
 AliBasedNdetaTask.cxx:1721
 AliBasedNdetaTask.cxx:1722
 AliBasedNdetaTask.cxx:1723
 AliBasedNdetaTask.cxx:1724
 AliBasedNdetaTask.cxx:1725
 AliBasedNdetaTask.cxx:1726
 AliBasedNdetaTask.cxx:1727
 AliBasedNdetaTask.cxx:1728
 AliBasedNdetaTask.cxx:1729
 AliBasedNdetaTask.cxx:1730
 AliBasedNdetaTask.cxx:1731
 AliBasedNdetaTask.cxx:1732
 AliBasedNdetaTask.cxx:1733
 AliBasedNdetaTask.cxx:1734
 AliBasedNdetaTask.cxx:1735
 AliBasedNdetaTask.cxx:1736
 AliBasedNdetaTask.cxx:1737
 AliBasedNdetaTask.cxx:1738
 AliBasedNdetaTask.cxx:1739
 AliBasedNdetaTask.cxx:1740
 AliBasedNdetaTask.cxx:1741
 AliBasedNdetaTask.cxx:1742
 AliBasedNdetaTask.cxx:1743
 AliBasedNdetaTask.cxx:1744
 AliBasedNdetaTask.cxx:1745
 AliBasedNdetaTask.cxx:1746
 AliBasedNdetaTask.cxx:1747
 AliBasedNdetaTask.cxx:1748
 AliBasedNdetaTask.cxx:1749
 AliBasedNdetaTask.cxx:1750
 AliBasedNdetaTask.cxx:1751
 AliBasedNdetaTask.cxx:1752
 AliBasedNdetaTask.cxx:1753
 AliBasedNdetaTask.cxx:1754
 AliBasedNdetaTask.cxx:1755
 AliBasedNdetaTask.cxx:1756
 AliBasedNdetaTask.cxx:1757
 AliBasedNdetaTask.cxx:1758
 AliBasedNdetaTask.cxx:1759
 AliBasedNdetaTask.cxx:1760
 AliBasedNdetaTask.cxx:1761
 AliBasedNdetaTask.cxx:1762
 AliBasedNdetaTask.cxx:1763
 AliBasedNdetaTask.cxx:1764
 AliBasedNdetaTask.cxx:1765
 AliBasedNdetaTask.cxx:1766
 AliBasedNdetaTask.cxx:1767
 AliBasedNdetaTask.cxx:1768
 AliBasedNdetaTask.cxx:1769
 AliBasedNdetaTask.cxx:1770
 AliBasedNdetaTask.cxx:1771
 AliBasedNdetaTask.cxx:1772
 AliBasedNdetaTask.cxx:1773
 AliBasedNdetaTask.cxx:1774
 AliBasedNdetaTask.cxx:1775
 AliBasedNdetaTask.cxx:1776
 AliBasedNdetaTask.cxx:1777
 AliBasedNdetaTask.cxx:1778
 AliBasedNdetaTask.cxx:1779
 AliBasedNdetaTask.cxx:1780
 AliBasedNdetaTask.cxx:1781
 AliBasedNdetaTask.cxx:1782
 AliBasedNdetaTask.cxx:1783
 AliBasedNdetaTask.cxx:1784
 AliBasedNdetaTask.cxx:1785
 AliBasedNdetaTask.cxx:1786
 AliBasedNdetaTask.cxx:1787
 AliBasedNdetaTask.cxx:1788
 AliBasedNdetaTask.cxx:1789
 AliBasedNdetaTask.cxx:1790
 AliBasedNdetaTask.cxx:1791
 AliBasedNdetaTask.cxx:1792
 AliBasedNdetaTask.cxx:1793
 AliBasedNdetaTask.cxx:1794
 AliBasedNdetaTask.cxx:1795
 AliBasedNdetaTask.cxx:1796
 AliBasedNdetaTask.cxx:1797
 AliBasedNdetaTask.cxx:1798
 AliBasedNdetaTask.cxx:1799
 AliBasedNdetaTask.cxx:1800
 AliBasedNdetaTask.cxx:1801
 AliBasedNdetaTask.cxx:1802
 AliBasedNdetaTask.cxx:1803
 AliBasedNdetaTask.cxx:1804
 AliBasedNdetaTask.cxx:1805
 AliBasedNdetaTask.cxx:1806
 AliBasedNdetaTask.cxx:1807
 AliBasedNdetaTask.cxx:1808
 AliBasedNdetaTask.cxx:1809
 AliBasedNdetaTask.cxx:1810
 AliBasedNdetaTask.cxx:1811
 AliBasedNdetaTask.cxx:1812
 AliBasedNdetaTask.cxx:1813
 AliBasedNdetaTask.cxx:1814
 AliBasedNdetaTask.cxx:1815
 AliBasedNdetaTask.cxx:1816
 AliBasedNdetaTask.cxx:1817
 AliBasedNdetaTask.cxx:1818
 AliBasedNdetaTask.cxx:1819
 AliBasedNdetaTask.cxx:1820
 AliBasedNdetaTask.cxx:1821
 AliBasedNdetaTask.cxx:1822
 AliBasedNdetaTask.cxx:1823
 AliBasedNdetaTask.cxx:1824
 AliBasedNdetaTask.cxx:1825
 AliBasedNdetaTask.cxx:1826
 AliBasedNdetaTask.cxx:1827
 AliBasedNdetaTask.cxx:1828
 AliBasedNdetaTask.cxx:1829
 AliBasedNdetaTask.cxx:1830
 AliBasedNdetaTask.cxx:1831
 AliBasedNdetaTask.cxx:1832
 AliBasedNdetaTask.cxx:1833
 AliBasedNdetaTask.cxx:1834
 AliBasedNdetaTask.cxx:1835
 AliBasedNdetaTask.cxx:1836
 AliBasedNdetaTask.cxx:1837
 AliBasedNdetaTask.cxx:1838
 AliBasedNdetaTask.cxx:1839
 AliBasedNdetaTask.cxx:1840
 AliBasedNdetaTask.cxx:1841
 AliBasedNdetaTask.cxx:1842
 AliBasedNdetaTask.cxx:1843
 AliBasedNdetaTask.cxx:1844
 AliBasedNdetaTask.cxx:1845
 AliBasedNdetaTask.cxx:1846
 AliBasedNdetaTask.cxx:1847
 AliBasedNdetaTask.cxx:1848
 AliBasedNdetaTask.cxx:1849
 AliBasedNdetaTask.cxx:1850
 AliBasedNdetaTask.cxx:1851
 AliBasedNdetaTask.cxx:1852
 AliBasedNdetaTask.cxx:1853
 AliBasedNdetaTask.cxx:1854
 AliBasedNdetaTask.cxx:1855
 AliBasedNdetaTask.cxx:1856
 AliBasedNdetaTask.cxx:1857
 AliBasedNdetaTask.cxx:1858
 AliBasedNdetaTask.cxx:1859
 AliBasedNdetaTask.cxx:1860
 AliBasedNdetaTask.cxx:1861
 AliBasedNdetaTask.cxx:1862
 AliBasedNdetaTask.cxx:1863
 AliBasedNdetaTask.cxx:1864
 AliBasedNdetaTask.cxx:1865
 AliBasedNdetaTask.cxx:1866
 AliBasedNdetaTask.cxx:1867
 AliBasedNdetaTask.cxx:1868
 AliBasedNdetaTask.cxx:1869
 AliBasedNdetaTask.cxx:1870
 AliBasedNdetaTask.cxx:1871
 AliBasedNdetaTask.cxx:1872
 AliBasedNdetaTask.cxx:1873
 AliBasedNdetaTask.cxx:1874
 AliBasedNdetaTask.cxx:1875
 AliBasedNdetaTask.cxx:1876
 AliBasedNdetaTask.cxx:1877
 AliBasedNdetaTask.cxx:1878
 AliBasedNdetaTask.cxx:1879
 AliBasedNdetaTask.cxx:1880
 AliBasedNdetaTask.cxx:1881
 AliBasedNdetaTask.cxx:1882
 AliBasedNdetaTask.cxx:1883
 AliBasedNdetaTask.cxx:1884
 AliBasedNdetaTask.cxx:1885
 AliBasedNdetaTask.cxx:1886
 AliBasedNdetaTask.cxx:1887
 AliBasedNdetaTask.cxx:1888
 AliBasedNdetaTask.cxx:1889
 AliBasedNdetaTask.cxx:1890
 AliBasedNdetaTask.cxx:1891
 AliBasedNdetaTask.cxx:1892
 AliBasedNdetaTask.cxx:1893
 AliBasedNdetaTask.cxx:1894
 AliBasedNdetaTask.cxx:1895
 AliBasedNdetaTask.cxx:1896
 AliBasedNdetaTask.cxx:1897