ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

//_____________________________________________________________________________
// Steering class for particle (gamma, hadron) identification and correlation
// analysis. It is called by the task class AliAnalysisTaskCaloTrackCorrelation
// and it connects the input (ESD/AOD/MonteCarlo) got with AliCaloTrackReader
// (produces TClonesArrays of AODs (TParticles in MC case if requested)), with
// the analysis classes that derive from AliAnaCaloTrackCorrBaseClass
//
// -- Author: Gustavo Conesa (INFN-LNF, LPSC-Grenoble)

#include <cstdlib>

// --- ROOT system ---
#include <TClonesArray.h>
#include <TList.h>
#include <TH1F.h>
//#include <TObjectTable.h>
#include <TGeoGlobalMagField.h>

//---- AliRoot system ----
#include "AliAnalysisManager.h"
#include "AliInputEventHandler.h"
#include "AliESDEvent.h"
#include "AliAODEvent.h"
#include "AliAnaCaloTrackCorrBaseClass.h"
#include "AliAnaCaloTrackCorrMaker.h"
#include "AliLog.h"

ClassImp(AliAnaCaloTrackCorrMaker)


//__________________________________________________
AliAnaCaloTrackCorrMaker::AliAnaCaloTrackCorrMaker() :
TObject(),
fReader(0),                   fCaloUtils(0),
fOutputContainer(new TList ), fAnalysisContainer(new TList ),
fMakeHisto(kFALSE),           fMakeAOD(kFALSE),
fAnaDebug(0),                 fCuts(new TList),
fScaleFactor(-1),
fFillDataControlHisto(kTRUE),
// Control histograms
fhNEventsIn(0),               fhNEvents(0),
fhNExoticEvents(0),           fhNEventsNoTriggerFound(0),
fhNPileUpEvents(0),           fhNPileUpEventsTriggerBC0(0),
fhXVertex(0),                 fhYVertex(0),                       fhZVertex(0),
fhXVertexExotic(0),           fhYVertexExotic(0),                 fhZVertexExotic(0),
fhPileUpClusterMult(0),       fhPileUpClusterMultAndSPDPileUp(0),
fhTrackMult(0),
fhCentrality(0),              fhEventPlaneAngle(0),
fhNMergedFiles(0),            fhScaleFactor(0),
fhEMCalBCEvent(0),            fhEMCalBCEventCut(0),
fhTrackBCEvent(0),            fhTrackBCEventCut(0),
fhPrimaryVertexBC(0),         fhTimeStampFraction(0),
fhNPileUpVertSPD(0),          fhNPileUpVertTracks(0),

fhClusterTriggerBC(0),                  fhClusterTriggerBCExotic(0),
fhClusterTriggerBCBadCell(0),           fhClusterTriggerBCBadCellExotic(0),
fhClusterTriggerBCBadCluster(0),        fhClusterTriggerBCBadClusterExotic(0),
fhClusterTriggerBCUnMatch(0),           fhClusterTriggerBCExoticUnMatch(0),
fhClusterTriggerBCBadCellUnMatch(0),    fhClusterTriggerBCBadCellExoticUnMatch(0),
fhClusterTriggerBCBadClusterUnMatch(0), fhClusterTriggerBCBadClusterExoticUnMatch(0),
fhClusterTriggerBCEventBC(0),           fhClusterTriggerBCEventBCUnMatch(0),
fhClusterTriggerBCExoticEventBC(0),     fhClusterTriggerBCExoticEventBCUnMatch(0)
{
  //Default Ctor
  AliDebug(1,"*** Analysis Maker Constructor ***");
  
  for(Int_t i = 0; i < 3; i++)
  {
    fhClusterTriggerBCUnMatchReMatch      [0] = 0;
    fhClusterTriggerBCExoticUnMatchReMatch[0] = 0;
  }
  
  //Initialize parameters, pointers and histograms
  InitParameters();
}

//________________________________________________________________________________________
AliAnaCaloTrackCorrMaker::AliAnaCaloTrackCorrMaker(const AliAnaCaloTrackCorrMaker & maker) :
TObject(),
fReader(),   //(new AliCaloTrackReader(*maker.fReader)),
fCaloUtils(),//(new AliCalorimeterUtils(*maker.fCaloUtils)),
fOutputContainer(new TList()), fAnalysisContainer(new TList()),
fMakeHisto(maker.fMakeHisto),  fMakeAOD(maker.fMakeAOD),
fAnaDebug(maker.fAnaDebug),    fCuts(new TList()),
fScaleFactor(maker.fScaleFactor),
fFillDataControlHisto(maker.fFillDataControlHisto),
fhNEventsIn(maker.fhNEventsIn),
fhNEvents(maker.fhNEvents),
fhNExoticEvents(maker.fhNExoticEvents),
fhNEventsNoTriggerFound(maker.fhNEventsNoTriggerFound),
fhNPileUpEvents(maker.fhNPileUpEvents),
fhNPileUpEventsTriggerBC0(maker.fhNPileUpEventsTriggerBC0),
fhXVertex(maker.fhXVertex),
fhYVertex(maker.fhYVertex),
fhZVertex(maker.fhZVertex),
fhXVertexExotic(maker.fhXVertexExotic),
fhYVertexExotic(maker.fhYVertexExotic),
fhZVertexExotic(maker.fhZVertexExotic),
fhPileUpClusterMult(maker.fhPileUpClusterMult),
fhPileUpClusterMultAndSPDPileUp(maker.fhPileUpClusterMultAndSPDPileUp),
fhTrackMult(maker.fhTrackMult),
fhCentrality(maker.fhCentrality),
fhEventPlaneAngle(maker.fhEventPlaneAngle),
fhNMergedFiles(maker.fhNMergedFiles),
fhScaleFactor(maker.fhScaleFactor),
fhEMCalBCEvent(maker.fhEMCalBCEvent),
fhEMCalBCEventCut(maker.fhEMCalBCEventCut),
fhTrackBCEvent(maker.fhTrackBCEvent),
fhTrackBCEventCut(maker.fhTrackBCEventCut),
fhPrimaryVertexBC(maker.fhPrimaryVertexBC),
fhTimeStampFraction(maker.fhTimeStampFraction),
fhNPileUpVertSPD(maker.fhNPileUpVertSPD),
fhNPileUpVertTracks(maker.fhNPileUpVertTracks),
fhClusterTriggerBC(maker.fhClusterTriggerBC),
fhClusterTriggerBCExotic(maker.fhClusterTriggerBCExotic),
fhClusterTriggerBCBadCell(maker.fhClusterTriggerBCBadCell),
fhClusterTriggerBCBadCellExotic(maker.fhClusterTriggerBCBadCellExotic),
fhClusterTriggerBCBadCluster(maker.fhClusterTriggerBCBadCluster),
fhClusterTriggerBCBadClusterExotic(maker.fhClusterTriggerBCBadClusterExotic),
fhClusterTriggerBCUnMatch(maker.fhClusterTriggerBCUnMatch),
fhClusterTriggerBCExoticUnMatch(maker.fhClusterTriggerBCExoticUnMatch),
fhClusterTriggerBCBadCellUnMatch(maker.fhClusterTriggerBCBadCellUnMatch),
fhClusterTriggerBCBadCellExoticUnMatch(maker.fhClusterTriggerBCBadCellExoticUnMatch),
fhClusterTriggerBCBadClusterUnMatch(maker.fhClusterTriggerBCBadClusterUnMatch),
fhClusterTriggerBCBadClusterExoticUnMatch(maker.fhClusterTriggerBCBadClusterExoticUnMatch),
fhClusterTriggerBCEventBC(maker.fhClusterTriggerBCEventBC),
fhClusterTriggerBCEventBCUnMatch(maker.fhClusterTriggerBCEventBCUnMatch),
fhClusterTriggerBCExoticEventBC(maker.fhClusterTriggerBCExoticEventBC),
fhClusterTriggerBCExoticEventBCUnMatch(maker.fhClusterTriggerBCExoticEventBCUnMatch)

{
  for(Int_t i = 0; i < 3; i++)
  {
    fhClusterTriggerBCUnMatchReMatch      [i] = maker.fhClusterTriggerBCUnMatchReMatch      [i];
    fhClusterTriggerBCExoticUnMatchReMatch[i] = maker.fhClusterTriggerBCExoticUnMatchReMatch[i];
  }
  // cpy ctor
}

//___________________________________________________
AliAnaCaloTrackCorrMaker::~AliAnaCaloTrackCorrMaker()
{
  // Remove all owned pointers.
  
  //  Do not delete it here, already done somewhere else, need to understand where.
  //  if (fOutputContainer) {
  //    fOutputContainer->Clear();
  //    delete fOutputContainer ;
  //  }
  
  if (fAnalysisContainer)
  {
    fAnalysisContainer->Delete();
    delete fAnalysisContainer ;
  }
  
  if (fReader)    delete fReader ;
  if (fCaloUtils) delete fCaloUtils ;
  
  if(fCuts)
  {
	  fCuts->Delete();
	  delete fCuts;
  }
	
}

//__________________________________________________________________
void    AliAnaCaloTrackCorrMaker::AddAnalysis(TObject* ana, Int_t n)
{
  // Add analysis depending on AliAnaCaloTrackCorrBaseClass to list
  
  if ( fAnalysisContainer)
  {
    fAnalysisContainer->AddAt(ana,n);
  }
  else
  {
    AliFatal("AnalysisContainer not initialized");
  }
}

//_________________________________________________________
TList * AliAnaCaloTrackCorrMaker::FillAndGetAODBranchList()
{
	
  // Get any new output AOD branches from analysis and put them in a list
  // The list is filled in the maker, and new branch passed to the analysis frame
  // AliAnalysisTaskCaloTrackCorrelation
  
  TList *aodBranchList = fReader->GetAODBranchList() ;
  
  for(Int_t iana = 0; iana <  fAnalysisContainer->GetEntries(); iana++)
  {
    AliAnaCaloTrackCorrBaseClass * ana =  ((AliAnaCaloTrackCorrBaseClass *) fAnalysisContainer->At(iana)) ;
    if(ana->NewOutputAOD()) aodBranchList->Add(ana->GetCreateOutputAODBranch());
  }
  
  return aodBranchList ;
  
}

//____________________________________________________
void AliAnaCaloTrackCorrMaker::FillControlHistograms()
{
  // Event control histograms
  
  AliVEvent* event =  fReader->GetInputEvent();
  AliESDEvent* esdevent = dynamic_cast<AliESDEvent*> (event);
  AliAODEvent* aodevent = dynamic_cast<AliAODEvent*> (event);
  
  fhNEvents        ->Fill(0); // Number of events analyzed
  
  Double_t v[3];
  event->GetPrimaryVertex()->GetXYZ(v) ;
  fhXVertex->Fill(v[0]);
  fhYVertex->Fill(v[1]);
  fhZVertex->Fill(v[2]);
  
  fhTrackMult         ->Fill(fReader->GetTrackMultiplicity());
  fhCentrality        ->Fill(fReader->GetEventCentrality  ());
  fhEventPlaneAngle   ->Fill(fReader->GetEventPlaneAngle  ());
  
  if(fFillDataControlHisto)
  {
    if( fReader->IsPileUpFromSPD())
      fhNPileUpEvents->Fill(0.5);
    //if( event->IsPileupFromSPDInMultBins())
    //  fhNPileUpEvents->Fill(1.5);
    if( fReader->IsPileUpFromEMCal())
      fhNPileUpEvents->Fill(2.5);
    if( fReader->IsPileUpFromSPDOrEMCal() )
      fhNPileUpEvents->Fill(3.5);
    if( fReader->IsPileUpFromSPDAndEMCal() )
      fhNPileUpEvents->Fill(4.5);
    if( fReader->IsPileUpFromSPDAndNotEMCal() )
      fhNPileUpEvents->Fill(5.5);
    if( fReader->IsPileUpFromEMCalAndNotSPD() )
      fhNPileUpEvents->Fill(6.5);
    if( fReader->IsPileUpFromNotSPDAndNotEMCal() )
      fhNPileUpEvents->Fill(7.5);
    
    Int_t triggerBC = fReader->GetTriggerClusterBC() ;
    if( triggerBC == 0            &&
       !fReader->IsExoticEvent()  &&
       !fReader->IsBadCellTriggerEvent())
    {
      if( fReader->IsPileUpFromSPD())
        fhNPileUpEventsTriggerBC0->Fill(0.5);
      //if( event->IsPileupFromSPDInMultBins())
      //  fhNPileUpEventsTriggerBC0->Fill(1.5);
      if( fReader->IsPileUpFromEMCal())
        fhNPileUpEventsTriggerBC0->Fill(2.5);
      if( fReader->IsPileUpFromSPDOrEMCal() )
        fhNPileUpEventsTriggerBC0->Fill(3.5);
      if( fReader->IsPileUpFromSPDAndEMCal() )
        fhNPileUpEventsTriggerBC0->Fill(4.5);
      if( fReader->IsPileUpFromSPDAndNotEMCal() )
        fhNPileUpEventsTriggerBC0->Fill(5.5);
      if( fReader->IsPileUpFromEMCalAndNotSPD() )
        fhNPileUpEventsTriggerBC0->Fill(6.5);
      if( fReader->IsPileUpFromNotSPDAndNotEMCal() )
        fhNPileUpEventsTriggerBC0->Fill(7.5);
    }
    
    if(fReader->IsPileUpFromSPD())
      fhPileUpClusterMultAndSPDPileUp ->Fill(fReader->GetNPileUpClusters());
    
    fhPileUpClusterMult ->Fill(fReader->GetNPileUpClusters  ());
    
    for(Int_t i = 0; i < 19; i++)
    {
      if(fReader->IsAccessToTrackTimeOn())
      {
        if(fReader->GetTrackEventBC(i))   fhTrackBCEvent   ->Fill(i);
        if(fReader->GetTrackEventBCcut(i))fhTrackBCEventCut->Fill(i);
      }
      if(fReader->GetEMCalEventBC(i))   fhEMCalBCEvent   ->Fill(i);
      if(fReader->GetEMCalEventBCcut(i))fhEMCalBCEventCut->Fill(i);
    }
    
    Int_t bc = fReader->GetVertexBC();
    if(bc!=AliVTrack::kTOFBCNA) fhPrimaryVertexBC->Fill(bc);
    
    // N pile up vertices
    Int_t nVerticesSPD    = -1;
    Int_t nVerticesTracks = -1;
    
    if      (esdevent)
    {
      nVerticesSPD    = esdevent->GetNumberOfPileupVerticesSPD();
      nVerticesTracks = esdevent->GetNumberOfPileupVerticesTracks();
      
    }//ESD
    else if (aodevent)
    {
      nVerticesSPD    = aodevent->GetNumberOfPileupVerticesSPD();
      nVerticesTracks = aodevent->GetNumberOfPileupVerticesTracks();
    }//AOD
    
    fhNPileUpVertSPD   ->Fill(nVerticesSPD);
    fhNPileUpVertTracks->Fill(nVerticesTracks);
    
    // Time stamp
    if(fReader->IsSelectEventTimeStampOn() && esdevent)
    {
      Int_t timeStamp = esdevent->GetTimeStamp();
      Float_t timeStampFrac = 1.*(timeStamp-fReader->GetRunTimeStampMin()) /
      (fReader->GetRunTimeStampMax()-fReader->GetRunTimeStampMin());
      
      //printf("stamp %d, min %d, max %d, frac %f\n", timeStamp, fReader->GetRunTimeStampMin(), fReader->GetRunTimeStampMax(), timeStampFrac);
      
      fhTimeStampFraction->Fill(timeStampFrac);
    }
  }
}

//___________________________________________________________
void AliAnaCaloTrackCorrMaker::FillTriggerControlHistograms()
{
  if(!fFillDataControlHisto) return;
  
  Int_t  triggerBC   = fReader->GetTriggerClusterBC() ;
  Bool_t exotic      = fReader->IsExoticEvent();
  Bool_t badCluster  = fReader->IsBadCellTriggerEvent();
  Bool_t badCell     = fReader->IsBadMaxCellTriggerEvent();
  Bool_t triggerMatch= fReader->IsTriggerMatched();
  Bool_t triggerBCOK = kTRUE;
  Int_t  triggerId   = fReader->GetTriggerClusterId() ;
  
  Bool_t reMatchOpenTime = fReader->IsTriggerMatchedOpenCuts(0);
  Bool_t reMatchNeigbour = fReader->IsTriggerMatchedOpenCuts(1);
  Bool_t reMatchBoth     = fReader->IsTriggerMatchedOpenCuts(2);
  
  if(triggerId < 0)
  {
    //printf("Trigger id %d\n",triggerId);
    if(triggerId == -2) fhNEventsNoTriggerFound->Fill(0);
    triggerBCOK = kFALSE;
  }
  
  if(exotic)
  {
    fhNExoticEvents->Fill(0) ;
    Double_t v[3];
    fReader->GetInputEvent()->GetPrimaryVertex()->GetXYZ(v) ;
    fhXVertexExotic->Fill(v[0]);
    fhYVertexExotic->Fill(v[1]);
    fhZVertexExotic->Fill(v[2]);
  }
  //if(fReader->IsExoticEvent()) printf("Maker: EXOTIC Cluster trigger\n");
  
  if(!triggerBCOK) return;
  
  Int_t eventBC = fReader->GetInputEvent()->GetBunchCrossNumber();
  if(eventBC%4 < 0 || eventBC%4 > 3 )
    AliWarning(Form("STRANGE: Trigger BC %d - Event BC %d, modulo4 %d",triggerBC,eventBC,eventBC%4));
  
  if(triggerMatch)
  {
    if     (!exotic     && !badCluster) fhClusterTriggerBC->Fill(triggerBC);
    else if( exotic     &&  badCluster)
    {
      fhClusterTriggerBCBadClusterExotic->Fill(triggerBC);
      if(badCell) fhClusterTriggerBCBadCellExotic->Fill(triggerBC);
    }
    else if( exotic     && !badCluster) fhClusterTriggerBCExotic->Fill(triggerBC);
    else if( badCluster && !exotic    )
    {
      fhClusterTriggerBCBadCluster ->Fill(triggerBC);
      if(badCell) fhClusterTriggerBCBadCell->Fill(triggerBC);
    }
    
    if(!exotic) fhClusterTriggerBCEventBC      ->Fill(triggerBC,eventBC%4);
    else        fhClusterTriggerBCExoticEventBC->Fill(triggerBC,eventBC%4);
  }
  else
  {
    if     (!exotic     && !badCluster)
    {
      fhClusterTriggerBCUnMatch->Fill(triggerBC);
      if(reMatchOpenTime) fhClusterTriggerBCUnMatchReMatch[0]->Fill(triggerBC);
      if(reMatchNeigbour) fhClusterTriggerBCUnMatchReMatch[1]->Fill(triggerBC);
      if(reMatchBoth)     fhClusterTriggerBCUnMatchReMatch[2]->Fill(triggerBC);
    }
    else if( exotic     &&  badCluster)
    {
      fhClusterTriggerBCBadClusterExoticUnMatch->Fill(triggerBC);
      if(badCell)   fhClusterTriggerBCBadCellExoticUnMatch   ->Fill(triggerBC);
    }
    else if( exotic     && !badCluster)
    {
      fhClusterTriggerBCExoticUnMatch->Fill(triggerBC);
      if(reMatchOpenTime) fhClusterTriggerBCExoticUnMatchReMatch[0]->Fill(triggerBC);
      if(reMatchNeigbour) fhClusterTriggerBCExoticUnMatchReMatch[1]->Fill(triggerBC);
      if(reMatchBoth)     fhClusterTriggerBCExoticUnMatchReMatch[2]->Fill(triggerBC);
    }
    else if( badCluster && !exotic )
    {
      fhClusterTriggerBCBadClusterUnMatch->Fill(triggerBC);
      if(badCell)fhClusterTriggerBCBadCellUnMatch->Fill(triggerBC);
    }
    
    if(!exotic) fhClusterTriggerBCEventBCUnMatch      ->Fill(triggerBC,eventBC%4);
    else        fhClusterTriggerBCExoticEventBCUnMatch->Fill(triggerBC,eventBC%4);
  }
  
}


//_______________________________________________________
TList * AliAnaCaloTrackCorrMaker::GetListOfAnalysisCuts()
{
  
  // Get the list of the cuts used for the analysis
  // The list is filled in the maker, called by the task in LocalInit() and posted there
  
  for(Int_t iana = 0; iana <  fAnalysisContainer->GetEntries(); iana++)
  {
    AliAnaCaloTrackCorrBaseClass * ana =  ((AliAnaCaloTrackCorrBaseClass *) fAnalysisContainer->At(iana)) ;
    TObjString * objstring = ana->GetAnalysisCuts();
    
    if(objstring)fCuts->Add(objstring);
  }
  
  return fCuts ;
  
}

//___________________________________________________
TList *AliAnaCaloTrackCorrMaker::GetOutputContainer()
{
  // Fill the output list of histograms during the CreateOutputObjects stage.
  
  //Initialize calorimeters  geometry pointers
  //GetCaloUtils()->InitPHOSGeometry();
  //GetCaloUtils()->InitEMCALGeometry();
  
  //General event histograms

  fhNEventsIn      = new TH1F("hNEventsIn",   "Number of input events"     , 1 , 0 , 1  ) ;
  fhNEventsIn->SetYTitle("# events");
  fOutputContainer->Add(fhNEventsIn);
  
  fhNEvents      = new TH1F("hNEvents",   "Number of analyzed events"     , 1 , 0 , 1  ) ;
  fhNEvents->SetYTitle("# events");
  fOutputContainer->Add(fhNEvents);
  
  fhXVertex      = new TH1F("hXVertex", " X vertex distribution"   , 200 , -4 , 4  ) ;
  fhXVertex->SetXTitle("v_{x} (cm)");
  fOutputContainer->Add(fhXVertex);
  
  fhYVertex      = new TH1F("hYVertex", " Y vertex distribution"   , 200 , -4 , 4  ) ;
  fhYVertex->SetXTitle("v_{y} (cm)");
  fOutputContainer->Add(fhYVertex);
  
  fhZVertex      = new TH1F("hZVertex", " Z vertex distribution"   , 200 , -50 , 50  ) ;
  fhZVertex->SetXTitle("v_{z} (cm)");
  fOutputContainer->Add(fhZVertex);

  fhCentrality   = new TH1F("hCentrality","Number of events in centrality bin",100,0.,100) ;
  fhCentrality->SetXTitle("Centrality bin");
  fOutputContainer->Add(fhCentrality) ;
  
  fhEventPlaneAngle=new TH1F("hEventPlaneAngle","Number of events in event plane",100,0.,TMath::Pi()) ;
  fhEventPlaneAngle->SetXTitle("EP angle (rad)");
  fOutputContainer->Add(fhEventPlaneAngle) ;

  fhTrackMult    = new TH1F("hTrackMult", "Number of tracks per events"   , 2000 , 0 , 2000  ) ;
  fhTrackMult->SetXTitle("# tracks");
  fOutputContainer->Add(fhTrackMult);

  if(fFillDataControlHisto)
  {
    fhNExoticEvents      = new TH1F("hNExoticEvents",   "Number of analyzed events triggered by exotic cluster"     , 1 , 0 , 1  ) ;
    fhNExoticEvents->SetYTitle("# exotic events");
    fOutputContainer->Add(fhNExoticEvents);
    
    fhNEventsNoTriggerFound      = new TH1F("hNEventsNoTriggerFound",   "Number of analyzed events triggered but no trigger found"     , 1 , 0 , 1  ) ;
    fhNEventsNoTriggerFound->SetYTitle("# exotic events");
    fOutputContainer->Add(fhNEventsNoTriggerFound);
    
    
    Int_t   nbin   = 11;
    Float_t minbin =-5.5;
    Float_t maxbin = 5.5;
    Int_t  labelshift = 6;
    
    fhClusterTriggerBCEventBC      = new TH2F("hClusterTriggerBCEventBC", "Found trigger BC and  Event BC",
                                              nbin , minbin ,maxbin,4,0, 4) ;
    fhClusterTriggerBCEventBC->SetXTitle("cluster trigger BC");
    for(Int_t i = 0; i < 4; i++)
      fhClusterTriggerBCEventBC->GetYaxis()->SetBinLabel(i+1 ,Form("BC/4=%d",i));
    fhClusterTriggerBCEventBC->SetXTitle("cluster trigger BC");
    for(Int_t i = 1; i < 12; i++)
      fhClusterTriggerBCEventBC->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-labelshift));
    fhClusterTriggerBCEventBC->SetYTitle("Event BC%4");
    fOutputContainer->Add(fhClusterTriggerBCEventBC);
    
    fhClusterTriggerBCExoticEventBC      = new TH2F("hClusterTriggerBCExoticEventBC", "Found exotic trigger BC and  Event BC",
                                                    nbin , minbin ,maxbin,4,1, 4) ;
    for(Int_t i = 0; i < 4; i++)
      fhClusterTriggerBCExoticEventBC->GetYaxis()->SetBinLabel(i+1 ,Form("BC/4=%d",i));
    fhClusterTriggerBCExoticEventBC->SetXTitle("cluster trigger BC");
    for(Int_t i = 1; i < 12; i++)
      fhClusterTriggerBCExoticEventBC->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-labelshift));
    fhClusterTriggerBCExoticEventBC->SetYTitle("Event BC%4");
    fOutputContainer->Add(fhClusterTriggerBCExoticEventBC);
    
    fhClusterTriggerBCEventBCUnMatch      = new TH2F("hClusterTriggerBCEventBCUnMatch", "Found unmatched trigger BC and  Event BC",
                                                     nbin , minbin ,maxbin,4,1, 4) ;
    for(Int_t i = 0; i < 4; i++)
      fhClusterTriggerBCEventBCUnMatch->GetYaxis()->SetBinLabel(i+1 ,Form("BC/4=%d",i));
    fhClusterTriggerBCEventBCUnMatch->SetXTitle("cluster trigger BC");
    for(Int_t i = 1; i < 12; i++)
      fhClusterTriggerBCEventBCUnMatch->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-labelshift));
    fhClusterTriggerBCEventBCUnMatch->SetYTitle("Event BC%4");
    fOutputContainer->Add(fhClusterTriggerBCEventBCUnMatch);
    
    fhClusterTriggerBCExoticEventBCUnMatch      = new TH2F("hClusterTriggerExoticBCEventBCUnMatch", "Found unmatched trigger BC and  Event BC",
                                                           nbin , minbin ,maxbin,4,1, 4) ;
    for(Int_t i = 0; i < 4; i++)
      fhClusterTriggerBCExoticEventBCUnMatch->GetYaxis()->SetBinLabel(i+1 ,Form("BC/4=%d",i));
    fhClusterTriggerBCExoticEventBCUnMatch->SetXTitle("cluster trigger BC");
    for(Int_t i = 1; i < 12; i++)
      fhClusterTriggerBCExoticEventBCUnMatch->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-labelshift));
    fhClusterTriggerBCExoticEventBCUnMatch->SetYTitle("Event BC%4");
    fOutputContainer->Add(fhClusterTriggerBCExoticEventBCUnMatch);
    
    fhClusterTriggerBC              = new TH1F("hClusterTriggerBC",
                                               "Number of analyzed events triggered by a cluster in a given BC",
                                               nbin , minbin ,maxbin) ;
    fhClusterTriggerBC->SetYTitle("# events");
    for(Int_t i = 1; i < 12; i++)
      fhClusterTriggerBC->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-labelshift));
    fOutputContainer->Add(fhClusterTriggerBC);
    
    fhClusterTriggerBCExotic        = new TH1F("hClusterTriggerBCExotic",
                                               "Number of analyzed events triggered by a exotic cluster in a given BC",
                                               nbin , minbin ,maxbin) ;
    fhClusterTriggerBCExotic->SetYTitle("# events");
    for(Int_t i = 1; i < 12; i++)
      fhClusterTriggerBCExotic->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-labelshift));
    fOutputContainer->Add(fhClusterTriggerBCExotic);
    
    
    fhClusterTriggerBCBadCell         = new TH1F("hClusterTriggerBCBadCell",
                                                 "Number of analyzed events triggered by a bad cell in a given BC",
                                                 nbin , minbin ,maxbin) ;
    
    fhClusterTriggerBCBadCell->SetYTitle("# events");
    for(Int_t i = 1; i < 12; i++)
      fhClusterTriggerBCBadCell->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-labelshift));
    fOutputContainer->Add(fhClusterTriggerBCBadCell);
    
    fhClusterTriggerBCBadCellExotic    = new TH1F("hClusterTriggerBCBadCellExotic",
                                                  "Number of analyzed events triggered by a bad cell & exotic cluster in a given BC",
                                                  nbin , minbin ,maxbin) ;
    fhClusterTriggerBCBadCellExotic->SetYTitle("# events");
    for(Int_t i = 1; i < 12; i++)
      fhClusterTriggerBCBadCellExotic->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-labelshift));
    fOutputContainer->Add(fhClusterTriggerBCBadCellExotic);
    
    fhClusterTriggerBCBadCluster           = new TH1F("hClusterTriggerBCBadCluster",
                                                      "Number of analyzed events triggered by a bad cluster in a given BC",
                                                      nbin , minbin ,maxbin) ;
    
    fhClusterTriggerBCBadCluster->SetYTitle("# events");
    for(Int_t i = 1; i < 12; i++)
      fhClusterTriggerBCBadCluster->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-labelshift));
    fOutputContainer->Add(fhClusterTriggerBCBadCluster);
    
    
    fhClusterTriggerBCBadClusterExotic    = new TH1F("hClusterTriggerBCBadClusterExotic",
                                                     "Number of analyzed events triggered by a bad cluster & exotic cluster in a given BC",
                                                     nbin , minbin ,maxbin) ;
    
    fhClusterTriggerBCBadClusterExotic->SetYTitle("# events");
    for(Int_t i = 1; i < 12; i++)
      fhClusterTriggerBCBadClusterExotic->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-labelshift));
    fOutputContainer->Add(fhClusterTriggerBCBadClusterExotic);
    
    fhClusterTriggerBCUnMatch       = new TH1F("hClusterTriggerBCUnMatch",
                                               "Number of analyzed events triggered by a cluster (no trigger patch match) in a given BC",
                                               nbin , minbin ,maxbin) ;
    fhClusterTriggerBCUnMatch->SetYTitle("# events");
    for(Int_t i = 1; i < 12; i++)
      fhClusterTriggerBCUnMatch->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-labelshift));
    fOutputContainer->Add(fhClusterTriggerBCUnMatch);
    
    fhClusterTriggerBCExoticUnMatch = new TH1F("hClusterTriggerBCExoticUnMatch",
                                               "Number of analyzed events triggered by a exotic cluster (no trigger patch match) in a given BC",
                                               nbin , minbin ,maxbin) ;
    fhClusterTriggerBCExoticUnMatch->SetYTitle("# events");
    for(Int_t i = 1; i < 12; i++)
      fhClusterTriggerBCExoticUnMatch->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-labelshift));
    fOutputContainer->Add(fhClusterTriggerBCExoticUnMatch);
    
    
    fhClusterTriggerBCBadCellUnMatch    = new TH1F("hClusterTriggerBCBadCellUnMatch",
                                                   "Number of analyzed events triggered by a bad cluster  (no trigger patch match) in a given BC",
                                                   nbin , minbin ,maxbin) ;
    fhClusterTriggerBCBadCellUnMatch->SetYTitle("# events");
    for(Int_t i = 1; i < 12; i++)
      fhClusterTriggerBCBadCellUnMatch->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-labelshift));
    fOutputContainer->Add(fhClusterTriggerBCBadCellUnMatch);
    
    
    fhClusterTriggerBCBadCellExoticUnMatch = new TH1F("hClusterTriggerBCBadCellExoticUnMatch",
                                                      "Number of analyzed events triggered by a bad&exotic cluster  (no trigger patch match) in a given BC",
                                                      nbin , minbin ,maxbin) ;
    fhClusterTriggerBCBadCellExoticUnMatch->SetYTitle("# events");
    for(Int_t i = 1; i < 12; i++)
      fhClusterTriggerBCBadCellExoticUnMatch->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-labelshift));
    fOutputContainer->Add(fhClusterTriggerBCBadCellExoticUnMatch);
    
    
    fhClusterTriggerBCBadClusterUnMatch    = new TH1F("hClusterTriggerBCBadClusterUnMatch",
                                                      "Number of analyzed events triggered by a bad cluster  (no trigger patch match) in a given BC",
                                                      nbin , minbin ,maxbin) ;
    fhClusterTriggerBCBadClusterUnMatch->SetYTitle("# events");
    for(Int_t i = 1; i < 12; i++)
      fhClusterTriggerBCBadClusterUnMatch->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-labelshift));
    fOutputContainer->Add(fhClusterTriggerBCBadClusterUnMatch);
    
    
    fhClusterTriggerBCBadClusterExoticUnMatch = new TH1F("hClusterTriggerBCBadClusterExoticUnMatch",
                                                         "Number of analyzed events triggered by a bad&exotic cluster  (no trigger patch match) in a given BC",
                                                         nbin , minbin ,maxbin) ;
    fhClusterTriggerBCBadClusterExoticUnMatch->SetYTitle("# events");
    for(Int_t i = 1; i < 12; i++)
      fhClusterTriggerBCBadClusterExoticUnMatch->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-labelshift));
    fOutputContainer->Add(fhClusterTriggerBCBadClusterExoticUnMatch);
    
    TString rematch[] = {"OpenTime","CheckNeighbours","Both"};
    for(Int_t j = 0; j < 3; j++)
    {
      fhClusterTriggerBCUnMatchReMatch[j]       = new TH1F(Form("hClusterTriggerBCUnMatch_ReMatch_%s",rematch[j].Data()),
                                                           Form("Number of analyzed events triggered by a cluster (no trigger patch match) in a given BC, re-match %s",rematch[j].Data()),
                                                           nbin , minbin ,maxbin) ;
      fhClusterTriggerBCUnMatchReMatch[j]->SetYTitle("# events");
      for(Int_t i = 1; i < 12; i++)
        fhClusterTriggerBCUnMatchReMatch[j]->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-labelshift));
      fOutputContainer->Add(fhClusterTriggerBCUnMatchReMatch[j]);
      
      fhClusterTriggerBCExoticUnMatchReMatch[j] = new TH1F(Form("hClusterTriggerBCExoticUnMatch_ReMatch_%s",rematch[j].Data()),
                                                           Form("Number of analyzed events triggered by a exotic cluster (no trigger patch match) in a given BC, re-match %s",rematch[j].Data()),
                                                           nbin , minbin ,maxbin) ;
      fhClusterTriggerBCExoticUnMatchReMatch[j]->SetYTitle("# events");
      for(Int_t i = 1; i < 12; i++)
        fhClusterTriggerBCExoticUnMatchReMatch[j]->GetXaxis()->SetBinLabel(i ,Form("BC%d",i-labelshift));
      fOutputContainer->Add(fhClusterTriggerBCExoticUnMatchReMatch[j]);
    }
    
    fhNPileUpEvents      = new TH1F("hNPileUpEvents",   "Number of events considered as pile-up", 8 , 0 , 8 ) ;
    fhNPileUpEvents->SetYTitle("# events");
    fhNPileUpEvents->GetXaxis()->SetBinLabel(1 ,"SPD");
    fhNPileUpEvents->GetXaxis()->SetBinLabel(2 ,"Multi SPD");
    fhNPileUpEvents->GetXaxis()->SetBinLabel(3 ,"EMCal");
    fhNPileUpEvents->GetXaxis()->SetBinLabel(4 ,"EMCal || SPD");
    fhNPileUpEvents->GetXaxis()->SetBinLabel(5 ,"EMCal && SPD");
    fhNPileUpEvents->GetXaxis()->SetBinLabel(6 ,"!EMCal && SPD");
    fhNPileUpEvents->GetXaxis()->SetBinLabel(7 ,"EMCal && !SPD");
    fhNPileUpEvents->GetXaxis()->SetBinLabel(8 ,"!EMCal && !SPD");
    fOutputContainer->Add(fhNPileUpEvents);
    
    fhNPileUpEventsTriggerBC0      = new TH1F("hNPileUpEventsTriggerBC0","Number of events considered as pile-up, trigger cluster in BC=0", 8 , 0 , 8 ) ;
    fhNPileUpEventsTriggerBC0->SetYTitle("# events");
    fhNPileUpEventsTriggerBC0->GetXaxis()->SetBinLabel(1 ,"SPD");
    fhNPileUpEventsTriggerBC0->GetXaxis()->SetBinLabel(2 ,"Multi SPD");
    fhNPileUpEventsTriggerBC0->GetXaxis()->SetBinLabel(3 ,"EMCal");
    fhNPileUpEventsTriggerBC0->GetXaxis()->SetBinLabel(4 ,"EMCal || SPD");
    fhNPileUpEventsTriggerBC0->GetXaxis()->SetBinLabel(5 ,"EMCal && SPD");
    fhNPileUpEventsTriggerBC0->GetXaxis()->SetBinLabel(6 ,"!EMCal && SPD");
    fhNPileUpEventsTriggerBC0->GetXaxis()->SetBinLabel(7 ,"EMCal && !SPD");
    fhNPileUpEventsTriggerBC0->GetXaxis()->SetBinLabel(8 ,"!EMCal && !SPD");
    fOutputContainer->Add(fhNPileUpEventsTriggerBC0);
    
    if(fReader->IsAccessToTrackTimeOn())
    {
      fhTrackBCEvent      = new TH1F("hTrackBCEvent",   "Number of events with at least 1 track in a bunch crossing ", 19 , 0 , 19 ) ;
      fhTrackBCEvent->SetYTitle("# events");
      fhTrackBCEvent->SetXTitle("Bunch crossing");
      for(Int_t i = 1; i < 20; i++)
        fhTrackBCEvent->GetXaxis()->SetBinLabel(i ,Form("%d",i-10));
      fOutputContainer->Add(fhTrackBCEvent);
      
      fhTrackBCEventCut      = new TH1F("hTrackBCEventCut",   "Number of events with at least 1 track in a bunch crossing ", 19 , 0 , 19 ) ;
      fhTrackBCEventCut->SetYTitle("# events");
      fhTrackBCEventCut->SetXTitle("Bunch crossing");
      for(Int_t i = 1; i < 20; i++)
        fhTrackBCEventCut->GetXaxis()->SetBinLabel(i ,Form("%d",i-10));
      fOutputContainer->Add(fhTrackBCEventCut);
    }
    
    fhPrimaryVertexBC      = new TH1F("hPrimaryVertexBC", "Number of primary vertex per bunch crossing ", 41 , -20 , 20  ) ;
    fhPrimaryVertexBC->SetYTitle("# events");
    fhPrimaryVertexBC->SetXTitle("Bunch crossing");
    fOutputContainer->Add(fhPrimaryVertexBC);
    
    fhEMCalBCEvent      = new TH1F("hEMCalBCEvent",   "Number of events with at least 1 cluster in a bunch crossing ", 19 , 0 , 19 ) ;
    fhEMCalBCEvent->SetYTitle("# events");
    fhEMCalBCEvent->SetXTitle("Bunch crossing");
    for(Int_t i = 1; i < 20; i++)
      fhEMCalBCEvent->GetXaxis()->SetBinLabel(i ,Form("%d",i-10));
    fOutputContainer->Add(fhEMCalBCEvent);
    
    fhEMCalBCEventCut      = new TH1F("hEMCalBCEventCut",   "Number of events with at least 1 cluster in a bunch crossing", 19 , 0 , 19 ) ;
    fhEMCalBCEventCut->SetYTitle("# events");
    fhEMCalBCEventCut->SetXTitle("Bunch crossing");
    for(Int_t i = 1; i < 20; i++)
      fhEMCalBCEventCut->GetXaxis()->SetBinLabel(i ,Form("%d",i-10));
    fOutputContainer->Add(fhEMCalBCEventCut);
    
    fhXVertexExotic      = new TH1F("hXVertexExotic", " X vertex distribution in exotic events"   , 200 , -4 , 4  ) ;
    fhXVertexExotic->SetXTitle("v_{x} (cm)");
    fOutputContainer->Add(fhXVertexExotic);
    
    fhYVertexExotic      = new TH1F("hYVertexExotic", " Y vertex distribution in exotic events"   , 200 , -4 , 4  ) ;
    fhYVertexExotic->SetXTitle("v_{y} (cm)");
    fOutputContainer->Add(fhYVertexExotic);
    
    fhZVertexExotic      = new TH1F("hZVertexExotic", " Z vertex distribution in exotic events"   , 200 , -50 , 50  ) ;
    fhZVertexExotic->SetXTitle("v_{z} (cm)");
    fOutputContainer->Add(fhZVertexExotic);
    
    fhPileUpClusterMult    = new TH1F("hPileUpClusterMult", "Number of clusters per event with large time (|t| > 20 ns)" , 100 , 0 , 100  ) ;
    fhPileUpClusterMult->SetXTitle("# clusters");
    fOutputContainer->Add(fhPileUpClusterMult);
    
    fhPileUpClusterMultAndSPDPileUp = new TH1F("hPileUpClusterMultAndSPDPileUp", "Number of clusters per event with large time (|t| > 20 ns, events tagged as pile-up by SPD)" , 100 , 0 , 100 ) ;
    fhPileUpClusterMultAndSPDPileUp->SetXTitle("# clusters");
    fOutputContainer->Add(fhPileUpClusterMultAndSPDPileUp);
    
    fhNPileUpVertSPD  = new TH1F ("hNPileUpVertSPD","N pile-up SPD vertex", 50,0,50);
    fhNPileUpVertSPD->SetYTitle("# vertex ");
    fOutputContainer->Add(fhNPileUpVertSPD);
    
    fhNPileUpVertTracks  = new TH1F ("hNPileUpVertTracks","N pile-up Tracks vertex", 50,0,50);
    fhNPileUpVertTracks->SetYTitle("# vertex ");
    fOutputContainer->Add(fhNPileUpVertTracks);
    
    if(fReader->IsSelectEventTimeStampOn())
    {
      fhTimeStampFraction = new TH1F("hTimeStampFraction","Fraction of events within a given time stamp range",150, -1, 2) ;
      fhTimeStampFraction->SetXTitle("fraction");
      fOutputContainer->Add(fhTimeStampFraction) ;
    }
  }
  
  if(fScaleFactor > 0)
  {
    fhNMergedFiles = new TH1F("hNMergedFiles",   "Number of merged output files"     , 1 , 0 , 1  ) ;
    fhNMergedFiles->SetYTitle("# files");
    fhNMergedFiles->Fill(1); // Fill here with one entry, while merging it will count the rest
    fOutputContainer->Add(fhNMergedFiles);
    
    fhScaleFactor = new TH1F("hScaleFactor",   "Number of merged output files"     , 1 , 0 , 1  ) ;
    fhScaleFactor->SetYTitle("scale factor");
    fhScaleFactor->SetBinContent(1,fScaleFactor); // Fill here
    fOutputContainer->Add(fhScaleFactor);
  }
  
  if(!fAnalysisContainer || fAnalysisContainer->GetEntries()==0)
  {
    AliWarning("Analysis job list not initialized!!!");
    return fOutputContainer;
  }
  
  const Int_t buffersize = 255;
  char newname[buffersize];
  for(Int_t iana = 0; iana <  fAnalysisContainer->GetEntries(); iana++)
  {
    
    AliAnaCaloTrackCorrBaseClass * ana =  ((AliAnaCaloTrackCorrBaseClass *) fAnalysisContainer->At(iana)) ;
    
    if(fMakeHisto) // Analysis with histograms as output on
    {
      
      //Fill container with appropriate histograms
      TList * templist =  ana ->GetCreateOutputObjects();
      templist->SetOwner(kFALSE); //Owner is fOutputContainer.
      
      for(Int_t i = 0; i < templist->GetEntries(); i++)
      {
        
        //Add only  to the histogram name the name of the task
        if(   strcmp((templist->At(i))->ClassName(),"TObjString")   )
        {
          snprintf(newname,buffersize, "%s%s", (ana->GetAddedHistogramsStringToName()).Data(), (templist->At(i))->GetName());
          //printf("name %s, new name %s\n",(templist->At(i))->GetName(),newname);
          ((TH1*) templist->At(i))->SetName(newname);
        }
        
        //Add histogram to general container
        fOutputContainer->Add(templist->At(i)) ;
        
      }
      
      delete templist;
      
    }// Analysis with histograms as output on
    
  }//Loop on analysis defined
  
  return fOutputContainer;
  
}

//___________________________________
void AliAnaCaloTrackCorrMaker::Init()
{
  //Init container histograms and other common variables
  // Fill the output list of histograms during the CreateOutputObjects stage.
  
  // Activate debug level in maker
  if( fAnaDebug >= 0 )
    (AliAnalysisManager::GetAnalysisManager())->AddClassDebug(this->ClassName(),fAnaDebug);
  
  //Initialize reader
  GetReader()->Init();
  GetReader()->SetCaloUtils(GetCaloUtils()); // pass the calo utils pointer to the reader

  // Activate debug level in reader
  if( fReader->GetDebug() >= 0 )
    (AliAnalysisManager::GetAnalysisManager())->AddClassDebug(fReader->ClassName(), fReader->GetDebug());
  
  // Activate debug level in calo utils
  if( fCaloUtils->GetDebug() >= 0 )
    (AliAnalysisManager::GetAnalysisManager())->AddClassDebug(fCaloUtils->ClassName(), fCaloUtils->GetDebug());
  
  if(!fAnalysisContainer || fAnalysisContainer->GetEntries()==0)
  {
    AliWarning("Analysis job list not initialized");
    return;
  }
  
  for(Int_t iana = 0; iana <  fAnalysisContainer->GetEntries(); iana++)
  {
    AliAnaCaloTrackCorrBaseClass * ana =  ((AliAnaCaloTrackCorrBaseClass *) fAnalysisContainer->At(iana)) ;
    
    ana->SetReader(fReader);       // Set Reader for each analysis
    ana->SetCaloUtils(fCaloUtils); // Set CaloUtils for each analysis
    
    ana->Init();
    ana->InitDebug();
    
//    // Activate debug level in analysis
//    if( ana->GetDebug() >= 0 )
//      (AliAnalysisManager::GetAnalysisManager())->AddClassDebug(ana->ClassName(),ana->GetDebug());

  }//Loop on analysis defined
  
}

//_____________________________________________
void AliAnaCaloTrackCorrMaker::InitParameters()
{
  //Init data members
  
  fMakeHisto  = kTRUE;
  fMakeAOD    = kTRUE;
  fAnaDebug   = 0; // No debugging info displayed by default
	
}

//______________________________________________________________
void AliAnaCaloTrackCorrMaker::Print(const Option_t * opt) const
{
  //Print some relevant parameters set for the analysis
	
  if(! opt)
    return;
  
  printf("***** Print: %s %s ******\n", GetName(), GetTitle() ) ;
  printf("Debug level                =     %d\n", fAnaDebug   ) ;
  printf("Produce Histo              =     %d\n", fMakeHisto  ) ;
  printf("Produce AOD                =     %d\n", fMakeAOD    ) ;
  printf("Number of analysis tasks   =     %d\n", fAnalysisContainer->GetEntries()) ;
  
  if(!strcmp("all",opt))
  {
    printf("Print analysis Tasks settings :\n") ;
    for(Int_t iana = 0; iana<fAnalysisContainer->GetEntries(); iana++)
    {
      ((AliAnaCaloTrackCorrBaseClass *) fAnalysisContainer->At(iana))->Print("");
    }
    
    printf("Print analysis Reader settings :\n") ;
    fReader->Print("");
    printf("Print analysis Calorimeter Utils settings :\n") ;
    fCaloUtils->Print("");
    
  }
  
}

//_____________________________________________________________________________________
void AliAnaCaloTrackCorrMaker::ProcessEvent(Int_t iEntry, const char * currentFileName)
{
  //Process analysis for this event
  
  if(fMakeHisto && !fOutputContainer)
    AliFatal("Histograms not initialized");
  
  AliDebug(1,Form("***  AliAnaCaloTrackCorrMaker::ProcessEvent() Event %d   ***",iEntry));
  AliDebug(2,Form("Current File Name : %s", currentFileName));
  //printf("fAODBranchList %p, entries %d\n",fAODBranchList,fAODBranchList->GetEntries());
  
  //Each event needs an empty branch
  TList * aodList = fReader->GetAODBranchList();
  Int_t nAODBranches = aodList->GetEntries();
  for(Int_t iaod = 0; iaod < nAODBranches; iaod++)
  {
	  TClonesArray *tca = dynamic_cast<TClonesArray*> (aodList->At(iaod));
	  if(tca) tca->Clear("C");
  }
  
  //Set geometry matrices before filling arrays, in case recalibration/position calculation etc is needed
  fCaloUtils->AccessGeometry(fReader->GetInputEvent());
  
  //Set the AODB calibration, bad channels etc. parameters at least once
  fCaloUtils->AccessOADB(fReader->GetInputEvent());
  
  //Tell the reader to fill the data in the 3 detector lists
  Bool_t ok = fReader->FillInputEvent(iEntry, currentFileName);
  
  //Access pointers, and trigger mask check needed in mixing case
  AliAnalysisManager   *manager      = AliAnalysisManager::GetAnalysisManager();
  AliInputEventHandler *inputHandler = dynamic_cast<AliInputEventHandler*>(manager->GetInputEventHandler());
  
  UInt_t isMBTrigger = kFALSE;
  UInt_t isTrigger   = kFALSE;
  if(inputHandler)
  {
    isMBTrigger = inputHandler->IsEventSelected() & fReader->GetMixEventTriggerMask();
    isTrigger   = inputHandler->IsEventSelected() & fReader->GetEventTriggerMask();
  }
  
  //Fill trigger control histograms, make sure it is only for triggered events and
  // not the MB events used for mixing
  if(fReader->IsEventTriggerAtSEOn() || isTrigger)
  {
    fhNEventsIn->Fill(0);
    FillTriggerControlHistograms();
  }
  
  if(!ok)
  {
    AliDebug(1,Form("*** Skip event *** %d",iEntry));
    fReader->ResetLists();
    return ;
  }
  
  //Magic line to write events to file
  if(fReader->WriteDeltaAODToFile())AliAnalysisManager::GetAnalysisManager()->GetOutputEventHandler()->SetFillAOD(kTRUE);
  
  //printf(">>>>>>>>>> BEFORE >>>>>>>>>>>\n");
  //gObjectTable->Print();
  
  // Init mag field for tracks in case of ESDs, not really necessary
  if ( !TGeoGlobalMagField::Instance()->GetField() && fReader->GetInputEvent() )
      (fReader->GetInputEvent())->InitMagneticField();
  
  //Loop on analysis algorithms
  
  AliDebug(1,"*** Begin analysis ***");
  
  Int_t nana = fAnalysisContainer->GetEntries() ;
  for(Int_t iana = 0; iana <  nana; iana++)
  {
    AliAnaCaloTrackCorrBaseClass * ana = ((AliAnaCaloTrackCorrBaseClass *) fAnalysisContainer->At(iana)) ;
    
    ana->ConnectInputOutputAODBranches(); // Sets branches for each analysis
    
    //Fill pool for mixed event for the analysis that need it
    if(!fReader->IsEventTriggerAtSEOn() && isMBTrigger)
    {
      ana->FillEventMixPool();
      if(!isTrigger) continue; // pool filled do not try to fill AODs or histograms if trigger is not MB
    }
    
    //Make analysis, create aods in aod branch and in some cases fill histograms
    if(fMakeAOD  )  ana->MakeAnalysisFillAOD()  ;
    
    //Make further analysis with aod branch and fill histograms
    if(fMakeHisto)  ana->MakeAnalysisFillHistograms()  ;
    
  }
	
  fReader->ResetLists();
  
  // In case of mixing analysis, non triggered events are used,
  // do not fill control histograms for a non requested triggered event
  if(!fReader->IsEventTriggerAtSEOn() && !isTrigger)
  {
    AliDebug(1,"*** End analysis, MB for mixing ***");
    return;
  }
  
  FillControlHistograms();
  
  //printf(">>>>>>>>>> AFTER >>>>>>>>>>>\n");
  //gObjectTable->Print();
	
  AliDebug(1,"*** End analysis ***");
  
}

//__________________________________________________________
void AliAnaCaloTrackCorrMaker::Terminate(TList * outputList)
{
  //Execute Terminate of analysis
  //Do some final plots.
  
  if (!outputList)
  {
    AliError("No output list");
    return;
  }
  
  for(Int_t iana = 0; iana <  fAnalysisContainer->GetEntries(); iana++)
  {
    
    AliAnaCaloTrackCorrBaseClass * ana =  ((AliAnaCaloTrackCorrBaseClass *) fAnalysisContainer->At(iana)) ;
    if(ana->MakePlotsOn())ana->Terminate(outputList);
    
  }//Loop on analysis defined
  
}

 AliAnaCaloTrackCorrMaker.cxx:1
 AliAnaCaloTrackCorrMaker.cxx:2
 AliAnaCaloTrackCorrMaker.cxx:3
 AliAnaCaloTrackCorrMaker.cxx:4
 AliAnaCaloTrackCorrMaker.cxx:5
 AliAnaCaloTrackCorrMaker.cxx:6
 AliAnaCaloTrackCorrMaker.cxx:7
 AliAnaCaloTrackCorrMaker.cxx:8
 AliAnaCaloTrackCorrMaker.cxx:9
 AliAnaCaloTrackCorrMaker.cxx:10
 AliAnaCaloTrackCorrMaker.cxx:11
 AliAnaCaloTrackCorrMaker.cxx:12
 AliAnaCaloTrackCorrMaker.cxx:13
 AliAnaCaloTrackCorrMaker.cxx:14
 AliAnaCaloTrackCorrMaker.cxx:15
 AliAnaCaloTrackCorrMaker.cxx:16
 AliAnaCaloTrackCorrMaker.cxx:17
 AliAnaCaloTrackCorrMaker.cxx:18
 AliAnaCaloTrackCorrMaker.cxx:19
 AliAnaCaloTrackCorrMaker.cxx:20
 AliAnaCaloTrackCorrMaker.cxx:21
 AliAnaCaloTrackCorrMaker.cxx:22
 AliAnaCaloTrackCorrMaker.cxx:23
 AliAnaCaloTrackCorrMaker.cxx:24
 AliAnaCaloTrackCorrMaker.cxx:25
 AliAnaCaloTrackCorrMaker.cxx:26
 AliAnaCaloTrackCorrMaker.cxx:27
 AliAnaCaloTrackCorrMaker.cxx:28
 AliAnaCaloTrackCorrMaker.cxx:29
 AliAnaCaloTrackCorrMaker.cxx:30
 AliAnaCaloTrackCorrMaker.cxx:31
 AliAnaCaloTrackCorrMaker.cxx:32
 AliAnaCaloTrackCorrMaker.cxx:33
 AliAnaCaloTrackCorrMaker.cxx:34
 AliAnaCaloTrackCorrMaker.cxx:35
 AliAnaCaloTrackCorrMaker.cxx:36
 AliAnaCaloTrackCorrMaker.cxx:37
 AliAnaCaloTrackCorrMaker.cxx:38
 AliAnaCaloTrackCorrMaker.cxx:39
 AliAnaCaloTrackCorrMaker.cxx:40
 AliAnaCaloTrackCorrMaker.cxx:41
 AliAnaCaloTrackCorrMaker.cxx:42
 AliAnaCaloTrackCorrMaker.cxx:43
 AliAnaCaloTrackCorrMaker.cxx:44
 AliAnaCaloTrackCorrMaker.cxx:45
 AliAnaCaloTrackCorrMaker.cxx:46
 AliAnaCaloTrackCorrMaker.cxx:47
 AliAnaCaloTrackCorrMaker.cxx:48
 AliAnaCaloTrackCorrMaker.cxx:49
 AliAnaCaloTrackCorrMaker.cxx:50
 AliAnaCaloTrackCorrMaker.cxx:51
 AliAnaCaloTrackCorrMaker.cxx:52
 AliAnaCaloTrackCorrMaker.cxx:53
 AliAnaCaloTrackCorrMaker.cxx:54
 AliAnaCaloTrackCorrMaker.cxx:55
 AliAnaCaloTrackCorrMaker.cxx:56
 AliAnaCaloTrackCorrMaker.cxx:57
 AliAnaCaloTrackCorrMaker.cxx:58
 AliAnaCaloTrackCorrMaker.cxx:59
 AliAnaCaloTrackCorrMaker.cxx:60
 AliAnaCaloTrackCorrMaker.cxx:61
 AliAnaCaloTrackCorrMaker.cxx:62
 AliAnaCaloTrackCorrMaker.cxx:63
 AliAnaCaloTrackCorrMaker.cxx:64
 AliAnaCaloTrackCorrMaker.cxx:65
 AliAnaCaloTrackCorrMaker.cxx:66
 AliAnaCaloTrackCorrMaker.cxx:67
 AliAnaCaloTrackCorrMaker.cxx:68
 AliAnaCaloTrackCorrMaker.cxx:69
 AliAnaCaloTrackCorrMaker.cxx:70
 AliAnaCaloTrackCorrMaker.cxx:71
 AliAnaCaloTrackCorrMaker.cxx:72
 AliAnaCaloTrackCorrMaker.cxx:73
 AliAnaCaloTrackCorrMaker.cxx:74
 AliAnaCaloTrackCorrMaker.cxx:75
 AliAnaCaloTrackCorrMaker.cxx:76
 AliAnaCaloTrackCorrMaker.cxx:77
 AliAnaCaloTrackCorrMaker.cxx:78
 AliAnaCaloTrackCorrMaker.cxx:79
 AliAnaCaloTrackCorrMaker.cxx:80
 AliAnaCaloTrackCorrMaker.cxx:81
 AliAnaCaloTrackCorrMaker.cxx:82
 AliAnaCaloTrackCorrMaker.cxx:83
 AliAnaCaloTrackCorrMaker.cxx:84
 AliAnaCaloTrackCorrMaker.cxx:85
 AliAnaCaloTrackCorrMaker.cxx:86
 AliAnaCaloTrackCorrMaker.cxx:87
 AliAnaCaloTrackCorrMaker.cxx:88
 AliAnaCaloTrackCorrMaker.cxx:89
 AliAnaCaloTrackCorrMaker.cxx:90
 AliAnaCaloTrackCorrMaker.cxx:91
 AliAnaCaloTrackCorrMaker.cxx:92
 AliAnaCaloTrackCorrMaker.cxx:93
 AliAnaCaloTrackCorrMaker.cxx:94
 AliAnaCaloTrackCorrMaker.cxx:95
 AliAnaCaloTrackCorrMaker.cxx:96
 AliAnaCaloTrackCorrMaker.cxx:97
 AliAnaCaloTrackCorrMaker.cxx:98
 AliAnaCaloTrackCorrMaker.cxx:99
 AliAnaCaloTrackCorrMaker.cxx:100
 AliAnaCaloTrackCorrMaker.cxx:101
 AliAnaCaloTrackCorrMaker.cxx:102
 AliAnaCaloTrackCorrMaker.cxx:103
 AliAnaCaloTrackCorrMaker.cxx:104
 AliAnaCaloTrackCorrMaker.cxx:105
 AliAnaCaloTrackCorrMaker.cxx:106
 AliAnaCaloTrackCorrMaker.cxx:107
 AliAnaCaloTrackCorrMaker.cxx:108
 AliAnaCaloTrackCorrMaker.cxx:109
 AliAnaCaloTrackCorrMaker.cxx:110
 AliAnaCaloTrackCorrMaker.cxx:111
 AliAnaCaloTrackCorrMaker.cxx:112
 AliAnaCaloTrackCorrMaker.cxx:113
 AliAnaCaloTrackCorrMaker.cxx:114
 AliAnaCaloTrackCorrMaker.cxx:115
 AliAnaCaloTrackCorrMaker.cxx:116
 AliAnaCaloTrackCorrMaker.cxx:117
 AliAnaCaloTrackCorrMaker.cxx:118
 AliAnaCaloTrackCorrMaker.cxx:119
 AliAnaCaloTrackCorrMaker.cxx:120
 AliAnaCaloTrackCorrMaker.cxx:121
 AliAnaCaloTrackCorrMaker.cxx:122
 AliAnaCaloTrackCorrMaker.cxx:123
 AliAnaCaloTrackCorrMaker.cxx:124
 AliAnaCaloTrackCorrMaker.cxx:125
 AliAnaCaloTrackCorrMaker.cxx:126
 AliAnaCaloTrackCorrMaker.cxx:127
 AliAnaCaloTrackCorrMaker.cxx:128
 AliAnaCaloTrackCorrMaker.cxx:129
 AliAnaCaloTrackCorrMaker.cxx:130
 AliAnaCaloTrackCorrMaker.cxx:131
 AliAnaCaloTrackCorrMaker.cxx:132
 AliAnaCaloTrackCorrMaker.cxx:133
 AliAnaCaloTrackCorrMaker.cxx:134
 AliAnaCaloTrackCorrMaker.cxx:135
 AliAnaCaloTrackCorrMaker.cxx:136
 AliAnaCaloTrackCorrMaker.cxx:137
 AliAnaCaloTrackCorrMaker.cxx:138
 AliAnaCaloTrackCorrMaker.cxx:139
 AliAnaCaloTrackCorrMaker.cxx:140
 AliAnaCaloTrackCorrMaker.cxx:141
 AliAnaCaloTrackCorrMaker.cxx:142
 AliAnaCaloTrackCorrMaker.cxx:143
 AliAnaCaloTrackCorrMaker.cxx:144
 AliAnaCaloTrackCorrMaker.cxx:145
 AliAnaCaloTrackCorrMaker.cxx:146
 AliAnaCaloTrackCorrMaker.cxx:147
 AliAnaCaloTrackCorrMaker.cxx:148
 AliAnaCaloTrackCorrMaker.cxx:149
 AliAnaCaloTrackCorrMaker.cxx:150
 AliAnaCaloTrackCorrMaker.cxx:151
 AliAnaCaloTrackCorrMaker.cxx:152
 AliAnaCaloTrackCorrMaker.cxx:153
 AliAnaCaloTrackCorrMaker.cxx:154
 AliAnaCaloTrackCorrMaker.cxx:155
 AliAnaCaloTrackCorrMaker.cxx:156
 AliAnaCaloTrackCorrMaker.cxx:157
 AliAnaCaloTrackCorrMaker.cxx:158
 AliAnaCaloTrackCorrMaker.cxx:159
 AliAnaCaloTrackCorrMaker.cxx:160
 AliAnaCaloTrackCorrMaker.cxx:161
 AliAnaCaloTrackCorrMaker.cxx:162
 AliAnaCaloTrackCorrMaker.cxx:163
 AliAnaCaloTrackCorrMaker.cxx:164
 AliAnaCaloTrackCorrMaker.cxx:165
 AliAnaCaloTrackCorrMaker.cxx:166
 AliAnaCaloTrackCorrMaker.cxx:167
 AliAnaCaloTrackCorrMaker.cxx:168
 AliAnaCaloTrackCorrMaker.cxx:169
 AliAnaCaloTrackCorrMaker.cxx:170
 AliAnaCaloTrackCorrMaker.cxx:171
 AliAnaCaloTrackCorrMaker.cxx:172
 AliAnaCaloTrackCorrMaker.cxx:173
 AliAnaCaloTrackCorrMaker.cxx:174
 AliAnaCaloTrackCorrMaker.cxx:175
 AliAnaCaloTrackCorrMaker.cxx:176
 AliAnaCaloTrackCorrMaker.cxx:177
 AliAnaCaloTrackCorrMaker.cxx:178
 AliAnaCaloTrackCorrMaker.cxx:179
 AliAnaCaloTrackCorrMaker.cxx:180
 AliAnaCaloTrackCorrMaker.cxx:181
 AliAnaCaloTrackCorrMaker.cxx:182
 AliAnaCaloTrackCorrMaker.cxx:183
 AliAnaCaloTrackCorrMaker.cxx:184
 AliAnaCaloTrackCorrMaker.cxx:185
 AliAnaCaloTrackCorrMaker.cxx:186
 AliAnaCaloTrackCorrMaker.cxx:187
 AliAnaCaloTrackCorrMaker.cxx:188
 AliAnaCaloTrackCorrMaker.cxx:189
 AliAnaCaloTrackCorrMaker.cxx:190
 AliAnaCaloTrackCorrMaker.cxx:191
 AliAnaCaloTrackCorrMaker.cxx:192
 AliAnaCaloTrackCorrMaker.cxx:193
 AliAnaCaloTrackCorrMaker.cxx:194
 AliAnaCaloTrackCorrMaker.cxx:195
 AliAnaCaloTrackCorrMaker.cxx:196
 AliAnaCaloTrackCorrMaker.cxx:197
 AliAnaCaloTrackCorrMaker.cxx:198
 AliAnaCaloTrackCorrMaker.cxx:199
 AliAnaCaloTrackCorrMaker.cxx:200
 AliAnaCaloTrackCorrMaker.cxx:201
 AliAnaCaloTrackCorrMaker.cxx:202
 AliAnaCaloTrackCorrMaker.cxx:203
 AliAnaCaloTrackCorrMaker.cxx:204
 AliAnaCaloTrackCorrMaker.cxx:205
 AliAnaCaloTrackCorrMaker.cxx:206
 AliAnaCaloTrackCorrMaker.cxx:207
 AliAnaCaloTrackCorrMaker.cxx:208
 AliAnaCaloTrackCorrMaker.cxx:209
 AliAnaCaloTrackCorrMaker.cxx:210
 AliAnaCaloTrackCorrMaker.cxx:211
 AliAnaCaloTrackCorrMaker.cxx:212
 AliAnaCaloTrackCorrMaker.cxx:213
 AliAnaCaloTrackCorrMaker.cxx:214
 AliAnaCaloTrackCorrMaker.cxx:215
 AliAnaCaloTrackCorrMaker.cxx:216
 AliAnaCaloTrackCorrMaker.cxx:217
 AliAnaCaloTrackCorrMaker.cxx:218
 AliAnaCaloTrackCorrMaker.cxx:219
 AliAnaCaloTrackCorrMaker.cxx:220
 AliAnaCaloTrackCorrMaker.cxx:221
 AliAnaCaloTrackCorrMaker.cxx:222
 AliAnaCaloTrackCorrMaker.cxx:223
 AliAnaCaloTrackCorrMaker.cxx:224
 AliAnaCaloTrackCorrMaker.cxx:225
 AliAnaCaloTrackCorrMaker.cxx:226
 AliAnaCaloTrackCorrMaker.cxx:227
 AliAnaCaloTrackCorrMaker.cxx:228
 AliAnaCaloTrackCorrMaker.cxx:229
 AliAnaCaloTrackCorrMaker.cxx:230
 AliAnaCaloTrackCorrMaker.cxx:231
 AliAnaCaloTrackCorrMaker.cxx:232
 AliAnaCaloTrackCorrMaker.cxx:233
 AliAnaCaloTrackCorrMaker.cxx:234
 AliAnaCaloTrackCorrMaker.cxx:235
 AliAnaCaloTrackCorrMaker.cxx:236
 AliAnaCaloTrackCorrMaker.cxx:237
 AliAnaCaloTrackCorrMaker.cxx:238
 AliAnaCaloTrackCorrMaker.cxx:239
 AliAnaCaloTrackCorrMaker.cxx:240
 AliAnaCaloTrackCorrMaker.cxx:241
 AliAnaCaloTrackCorrMaker.cxx:242
 AliAnaCaloTrackCorrMaker.cxx:243
 AliAnaCaloTrackCorrMaker.cxx:244
 AliAnaCaloTrackCorrMaker.cxx:245
 AliAnaCaloTrackCorrMaker.cxx:246
 AliAnaCaloTrackCorrMaker.cxx:247
 AliAnaCaloTrackCorrMaker.cxx:248
 AliAnaCaloTrackCorrMaker.cxx:249
 AliAnaCaloTrackCorrMaker.cxx:250
 AliAnaCaloTrackCorrMaker.cxx:251
 AliAnaCaloTrackCorrMaker.cxx:252
 AliAnaCaloTrackCorrMaker.cxx:253
 AliAnaCaloTrackCorrMaker.cxx:254
 AliAnaCaloTrackCorrMaker.cxx:255
 AliAnaCaloTrackCorrMaker.cxx:256
 AliAnaCaloTrackCorrMaker.cxx:257
 AliAnaCaloTrackCorrMaker.cxx:258
 AliAnaCaloTrackCorrMaker.cxx:259
 AliAnaCaloTrackCorrMaker.cxx:260
 AliAnaCaloTrackCorrMaker.cxx:261
 AliAnaCaloTrackCorrMaker.cxx:262
 AliAnaCaloTrackCorrMaker.cxx:263
 AliAnaCaloTrackCorrMaker.cxx:264
 AliAnaCaloTrackCorrMaker.cxx:265
 AliAnaCaloTrackCorrMaker.cxx:266
 AliAnaCaloTrackCorrMaker.cxx:267
 AliAnaCaloTrackCorrMaker.cxx:268
 AliAnaCaloTrackCorrMaker.cxx:269
 AliAnaCaloTrackCorrMaker.cxx:270
 AliAnaCaloTrackCorrMaker.cxx:271
 AliAnaCaloTrackCorrMaker.cxx:272
 AliAnaCaloTrackCorrMaker.cxx:273
 AliAnaCaloTrackCorrMaker.cxx:274
 AliAnaCaloTrackCorrMaker.cxx:275
 AliAnaCaloTrackCorrMaker.cxx:276
 AliAnaCaloTrackCorrMaker.cxx:277
 AliAnaCaloTrackCorrMaker.cxx:278
 AliAnaCaloTrackCorrMaker.cxx:279
 AliAnaCaloTrackCorrMaker.cxx:280
 AliAnaCaloTrackCorrMaker.cxx:281
 AliAnaCaloTrackCorrMaker.cxx:282
 AliAnaCaloTrackCorrMaker.cxx:283
 AliAnaCaloTrackCorrMaker.cxx:284
 AliAnaCaloTrackCorrMaker.cxx:285
 AliAnaCaloTrackCorrMaker.cxx:286
 AliAnaCaloTrackCorrMaker.cxx:287
 AliAnaCaloTrackCorrMaker.cxx:288
 AliAnaCaloTrackCorrMaker.cxx:289
 AliAnaCaloTrackCorrMaker.cxx:290
 AliAnaCaloTrackCorrMaker.cxx:291
 AliAnaCaloTrackCorrMaker.cxx:292
 AliAnaCaloTrackCorrMaker.cxx:293
 AliAnaCaloTrackCorrMaker.cxx:294
 AliAnaCaloTrackCorrMaker.cxx:295
 AliAnaCaloTrackCorrMaker.cxx:296
 AliAnaCaloTrackCorrMaker.cxx:297
 AliAnaCaloTrackCorrMaker.cxx:298
 AliAnaCaloTrackCorrMaker.cxx:299
 AliAnaCaloTrackCorrMaker.cxx:300
 AliAnaCaloTrackCorrMaker.cxx:301
 AliAnaCaloTrackCorrMaker.cxx:302
 AliAnaCaloTrackCorrMaker.cxx:303
 AliAnaCaloTrackCorrMaker.cxx:304
 AliAnaCaloTrackCorrMaker.cxx:305
 AliAnaCaloTrackCorrMaker.cxx:306
 AliAnaCaloTrackCorrMaker.cxx:307
 AliAnaCaloTrackCorrMaker.cxx:308
 AliAnaCaloTrackCorrMaker.cxx:309
 AliAnaCaloTrackCorrMaker.cxx:310
 AliAnaCaloTrackCorrMaker.cxx:311
 AliAnaCaloTrackCorrMaker.cxx:312
 AliAnaCaloTrackCorrMaker.cxx:313
 AliAnaCaloTrackCorrMaker.cxx:314
 AliAnaCaloTrackCorrMaker.cxx:315
 AliAnaCaloTrackCorrMaker.cxx:316
 AliAnaCaloTrackCorrMaker.cxx:317
 AliAnaCaloTrackCorrMaker.cxx:318
 AliAnaCaloTrackCorrMaker.cxx:319
 AliAnaCaloTrackCorrMaker.cxx:320
 AliAnaCaloTrackCorrMaker.cxx:321
 AliAnaCaloTrackCorrMaker.cxx:322
 AliAnaCaloTrackCorrMaker.cxx:323
 AliAnaCaloTrackCorrMaker.cxx:324
 AliAnaCaloTrackCorrMaker.cxx:325
 AliAnaCaloTrackCorrMaker.cxx:326
 AliAnaCaloTrackCorrMaker.cxx:327
 AliAnaCaloTrackCorrMaker.cxx:328
 AliAnaCaloTrackCorrMaker.cxx:329
 AliAnaCaloTrackCorrMaker.cxx:330
 AliAnaCaloTrackCorrMaker.cxx:331
 AliAnaCaloTrackCorrMaker.cxx:332
 AliAnaCaloTrackCorrMaker.cxx:333
 AliAnaCaloTrackCorrMaker.cxx:334
 AliAnaCaloTrackCorrMaker.cxx:335
 AliAnaCaloTrackCorrMaker.cxx:336
 AliAnaCaloTrackCorrMaker.cxx:337
 AliAnaCaloTrackCorrMaker.cxx:338
 AliAnaCaloTrackCorrMaker.cxx:339
 AliAnaCaloTrackCorrMaker.cxx:340
 AliAnaCaloTrackCorrMaker.cxx:341
 AliAnaCaloTrackCorrMaker.cxx:342
 AliAnaCaloTrackCorrMaker.cxx:343
 AliAnaCaloTrackCorrMaker.cxx:344
 AliAnaCaloTrackCorrMaker.cxx:345
 AliAnaCaloTrackCorrMaker.cxx:346
 AliAnaCaloTrackCorrMaker.cxx:347
 AliAnaCaloTrackCorrMaker.cxx:348
 AliAnaCaloTrackCorrMaker.cxx:349
 AliAnaCaloTrackCorrMaker.cxx:350
 AliAnaCaloTrackCorrMaker.cxx:351
 AliAnaCaloTrackCorrMaker.cxx:352
 AliAnaCaloTrackCorrMaker.cxx:353
 AliAnaCaloTrackCorrMaker.cxx:354
 AliAnaCaloTrackCorrMaker.cxx:355
 AliAnaCaloTrackCorrMaker.cxx:356
 AliAnaCaloTrackCorrMaker.cxx:357
 AliAnaCaloTrackCorrMaker.cxx:358
 AliAnaCaloTrackCorrMaker.cxx:359
 AliAnaCaloTrackCorrMaker.cxx:360
 AliAnaCaloTrackCorrMaker.cxx:361
 AliAnaCaloTrackCorrMaker.cxx:362
 AliAnaCaloTrackCorrMaker.cxx:363
 AliAnaCaloTrackCorrMaker.cxx:364
 AliAnaCaloTrackCorrMaker.cxx:365
 AliAnaCaloTrackCorrMaker.cxx:366
 AliAnaCaloTrackCorrMaker.cxx:367
 AliAnaCaloTrackCorrMaker.cxx:368
 AliAnaCaloTrackCorrMaker.cxx:369
 AliAnaCaloTrackCorrMaker.cxx:370
 AliAnaCaloTrackCorrMaker.cxx:371
 AliAnaCaloTrackCorrMaker.cxx:372
 AliAnaCaloTrackCorrMaker.cxx:373
 AliAnaCaloTrackCorrMaker.cxx:374
 AliAnaCaloTrackCorrMaker.cxx:375
 AliAnaCaloTrackCorrMaker.cxx:376
 AliAnaCaloTrackCorrMaker.cxx:377
 AliAnaCaloTrackCorrMaker.cxx:378
 AliAnaCaloTrackCorrMaker.cxx:379
 AliAnaCaloTrackCorrMaker.cxx:380
 AliAnaCaloTrackCorrMaker.cxx:381
 AliAnaCaloTrackCorrMaker.cxx:382
 AliAnaCaloTrackCorrMaker.cxx:383
 AliAnaCaloTrackCorrMaker.cxx:384
 AliAnaCaloTrackCorrMaker.cxx:385
 AliAnaCaloTrackCorrMaker.cxx:386
 AliAnaCaloTrackCorrMaker.cxx:387
 AliAnaCaloTrackCorrMaker.cxx:388
 AliAnaCaloTrackCorrMaker.cxx:389
 AliAnaCaloTrackCorrMaker.cxx:390
 AliAnaCaloTrackCorrMaker.cxx:391
 AliAnaCaloTrackCorrMaker.cxx:392
 AliAnaCaloTrackCorrMaker.cxx:393
 AliAnaCaloTrackCorrMaker.cxx:394
 AliAnaCaloTrackCorrMaker.cxx:395
 AliAnaCaloTrackCorrMaker.cxx:396
 AliAnaCaloTrackCorrMaker.cxx:397
 AliAnaCaloTrackCorrMaker.cxx:398
 AliAnaCaloTrackCorrMaker.cxx:399
 AliAnaCaloTrackCorrMaker.cxx:400
 AliAnaCaloTrackCorrMaker.cxx:401
 AliAnaCaloTrackCorrMaker.cxx:402
 AliAnaCaloTrackCorrMaker.cxx:403
 AliAnaCaloTrackCorrMaker.cxx:404
 AliAnaCaloTrackCorrMaker.cxx:405
 AliAnaCaloTrackCorrMaker.cxx:406
 AliAnaCaloTrackCorrMaker.cxx:407
 AliAnaCaloTrackCorrMaker.cxx:408
 AliAnaCaloTrackCorrMaker.cxx:409
 AliAnaCaloTrackCorrMaker.cxx:410
 AliAnaCaloTrackCorrMaker.cxx:411
 AliAnaCaloTrackCorrMaker.cxx:412
 AliAnaCaloTrackCorrMaker.cxx:413
 AliAnaCaloTrackCorrMaker.cxx:414
 AliAnaCaloTrackCorrMaker.cxx:415
 AliAnaCaloTrackCorrMaker.cxx:416
 AliAnaCaloTrackCorrMaker.cxx:417
 AliAnaCaloTrackCorrMaker.cxx:418
 AliAnaCaloTrackCorrMaker.cxx:419
 AliAnaCaloTrackCorrMaker.cxx:420
 AliAnaCaloTrackCorrMaker.cxx:421
 AliAnaCaloTrackCorrMaker.cxx:422
 AliAnaCaloTrackCorrMaker.cxx:423
 AliAnaCaloTrackCorrMaker.cxx:424
 AliAnaCaloTrackCorrMaker.cxx:425
 AliAnaCaloTrackCorrMaker.cxx:426
 AliAnaCaloTrackCorrMaker.cxx:427
 AliAnaCaloTrackCorrMaker.cxx:428
 AliAnaCaloTrackCorrMaker.cxx:429
 AliAnaCaloTrackCorrMaker.cxx:430
 AliAnaCaloTrackCorrMaker.cxx:431
 AliAnaCaloTrackCorrMaker.cxx:432
 AliAnaCaloTrackCorrMaker.cxx:433
 AliAnaCaloTrackCorrMaker.cxx:434
 AliAnaCaloTrackCorrMaker.cxx:435
 AliAnaCaloTrackCorrMaker.cxx:436
 AliAnaCaloTrackCorrMaker.cxx:437
 AliAnaCaloTrackCorrMaker.cxx:438
 AliAnaCaloTrackCorrMaker.cxx:439
 AliAnaCaloTrackCorrMaker.cxx:440
 AliAnaCaloTrackCorrMaker.cxx:441
 AliAnaCaloTrackCorrMaker.cxx:442
 AliAnaCaloTrackCorrMaker.cxx:443
 AliAnaCaloTrackCorrMaker.cxx:444
 AliAnaCaloTrackCorrMaker.cxx:445
 AliAnaCaloTrackCorrMaker.cxx:446
 AliAnaCaloTrackCorrMaker.cxx:447
 AliAnaCaloTrackCorrMaker.cxx:448
 AliAnaCaloTrackCorrMaker.cxx:449
 AliAnaCaloTrackCorrMaker.cxx:450
 AliAnaCaloTrackCorrMaker.cxx:451
 AliAnaCaloTrackCorrMaker.cxx:452
 AliAnaCaloTrackCorrMaker.cxx:453
 AliAnaCaloTrackCorrMaker.cxx:454
 AliAnaCaloTrackCorrMaker.cxx:455
 AliAnaCaloTrackCorrMaker.cxx:456
 AliAnaCaloTrackCorrMaker.cxx:457
 AliAnaCaloTrackCorrMaker.cxx:458
 AliAnaCaloTrackCorrMaker.cxx:459
 AliAnaCaloTrackCorrMaker.cxx:460
 AliAnaCaloTrackCorrMaker.cxx:461
 AliAnaCaloTrackCorrMaker.cxx:462
 AliAnaCaloTrackCorrMaker.cxx:463
 AliAnaCaloTrackCorrMaker.cxx:464
 AliAnaCaloTrackCorrMaker.cxx:465
 AliAnaCaloTrackCorrMaker.cxx:466
 AliAnaCaloTrackCorrMaker.cxx:467
 AliAnaCaloTrackCorrMaker.cxx:468
 AliAnaCaloTrackCorrMaker.cxx:469
 AliAnaCaloTrackCorrMaker.cxx:470
 AliAnaCaloTrackCorrMaker.cxx:471
 AliAnaCaloTrackCorrMaker.cxx:472
 AliAnaCaloTrackCorrMaker.cxx:473
 AliAnaCaloTrackCorrMaker.cxx:474
 AliAnaCaloTrackCorrMaker.cxx:475
 AliAnaCaloTrackCorrMaker.cxx:476
 AliAnaCaloTrackCorrMaker.cxx:477
 AliAnaCaloTrackCorrMaker.cxx:478
 AliAnaCaloTrackCorrMaker.cxx:479
 AliAnaCaloTrackCorrMaker.cxx:480
 AliAnaCaloTrackCorrMaker.cxx:481
 AliAnaCaloTrackCorrMaker.cxx:482
 AliAnaCaloTrackCorrMaker.cxx:483
 AliAnaCaloTrackCorrMaker.cxx:484
 AliAnaCaloTrackCorrMaker.cxx:485
 AliAnaCaloTrackCorrMaker.cxx:486
 AliAnaCaloTrackCorrMaker.cxx:487
 AliAnaCaloTrackCorrMaker.cxx:488
 AliAnaCaloTrackCorrMaker.cxx:489
 AliAnaCaloTrackCorrMaker.cxx:490
 AliAnaCaloTrackCorrMaker.cxx:491
 AliAnaCaloTrackCorrMaker.cxx:492
 AliAnaCaloTrackCorrMaker.cxx:493
 AliAnaCaloTrackCorrMaker.cxx:494
 AliAnaCaloTrackCorrMaker.cxx:495
 AliAnaCaloTrackCorrMaker.cxx:496
 AliAnaCaloTrackCorrMaker.cxx:497
 AliAnaCaloTrackCorrMaker.cxx:498
 AliAnaCaloTrackCorrMaker.cxx:499
 AliAnaCaloTrackCorrMaker.cxx:500
 AliAnaCaloTrackCorrMaker.cxx:501
 AliAnaCaloTrackCorrMaker.cxx:502
 AliAnaCaloTrackCorrMaker.cxx:503
 AliAnaCaloTrackCorrMaker.cxx:504
 AliAnaCaloTrackCorrMaker.cxx:505
 AliAnaCaloTrackCorrMaker.cxx:506
 AliAnaCaloTrackCorrMaker.cxx:507
 AliAnaCaloTrackCorrMaker.cxx:508
 AliAnaCaloTrackCorrMaker.cxx:509
 AliAnaCaloTrackCorrMaker.cxx:510
 AliAnaCaloTrackCorrMaker.cxx:511
 AliAnaCaloTrackCorrMaker.cxx:512
 AliAnaCaloTrackCorrMaker.cxx:513
 AliAnaCaloTrackCorrMaker.cxx:514
 AliAnaCaloTrackCorrMaker.cxx:515
 AliAnaCaloTrackCorrMaker.cxx:516
 AliAnaCaloTrackCorrMaker.cxx:517
 AliAnaCaloTrackCorrMaker.cxx:518
 AliAnaCaloTrackCorrMaker.cxx:519
 AliAnaCaloTrackCorrMaker.cxx:520
 AliAnaCaloTrackCorrMaker.cxx:521
 AliAnaCaloTrackCorrMaker.cxx:522
 AliAnaCaloTrackCorrMaker.cxx:523
 AliAnaCaloTrackCorrMaker.cxx:524
 AliAnaCaloTrackCorrMaker.cxx:525
 AliAnaCaloTrackCorrMaker.cxx:526
 AliAnaCaloTrackCorrMaker.cxx:527
 AliAnaCaloTrackCorrMaker.cxx:528
 AliAnaCaloTrackCorrMaker.cxx:529
 AliAnaCaloTrackCorrMaker.cxx:530
 AliAnaCaloTrackCorrMaker.cxx:531
 AliAnaCaloTrackCorrMaker.cxx:532
 AliAnaCaloTrackCorrMaker.cxx:533
 AliAnaCaloTrackCorrMaker.cxx:534
 AliAnaCaloTrackCorrMaker.cxx:535
 AliAnaCaloTrackCorrMaker.cxx:536
 AliAnaCaloTrackCorrMaker.cxx:537
 AliAnaCaloTrackCorrMaker.cxx:538
 AliAnaCaloTrackCorrMaker.cxx:539
 AliAnaCaloTrackCorrMaker.cxx:540
 AliAnaCaloTrackCorrMaker.cxx:541
 AliAnaCaloTrackCorrMaker.cxx:542
 AliAnaCaloTrackCorrMaker.cxx:543
 AliAnaCaloTrackCorrMaker.cxx:544
 AliAnaCaloTrackCorrMaker.cxx:545
 AliAnaCaloTrackCorrMaker.cxx:546
 AliAnaCaloTrackCorrMaker.cxx:547
 AliAnaCaloTrackCorrMaker.cxx:548
 AliAnaCaloTrackCorrMaker.cxx:549
 AliAnaCaloTrackCorrMaker.cxx:550
 AliAnaCaloTrackCorrMaker.cxx:551
 AliAnaCaloTrackCorrMaker.cxx:552
 AliAnaCaloTrackCorrMaker.cxx:553
 AliAnaCaloTrackCorrMaker.cxx:554
 AliAnaCaloTrackCorrMaker.cxx:555
 AliAnaCaloTrackCorrMaker.cxx:556
 AliAnaCaloTrackCorrMaker.cxx:557
 AliAnaCaloTrackCorrMaker.cxx:558
 AliAnaCaloTrackCorrMaker.cxx:559
 AliAnaCaloTrackCorrMaker.cxx:560
 AliAnaCaloTrackCorrMaker.cxx:561
 AliAnaCaloTrackCorrMaker.cxx:562
 AliAnaCaloTrackCorrMaker.cxx:563
 AliAnaCaloTrackCorrMaker.cxx:564
 AliAnaCaloTrackCorrMaker.cxx:565
 AliAnaCaloTrackCorrMaker.cxx:566
 AliAnaCaloTrackCorrMaker.cxx:567
 AliAnaCaloTrackCorrMaker.cxx:568
 AliAnaCaloTrackCorrMaker.cxx:569
 AliAnaCaloTrackCorrMaker.cxx:570
 AliAnaCaloTrackCorrMaker.cxx:571
 AliAnaCaloTrackCorrMaker.cxx:572
 AliAnaCaloTrackCorrMaker.cxx:573
 AliAnaCaloTrackCorrMaker.cxx:574
 AliAnaCaloTrackCorrMaker.cxx:575
 AliAnaCaloTrackCorrMaker.cxx:576
 AliAnaCaloTrackCorrMaker.cxx:577
 AliAnaCaloTrackCorrMaker.cxx:578
 AliAnaCaloTrackCorrMaker.cxx:579
 AliAnaCaloTrackCorrMaker.cxx:580
 AliAnaCaloTrackCorrMaker.cxx:581
 AliAnaCaloTrackCorrMaker.cxx:582
 AliAnaCaloTrackCorrMaker.cxx:583
 AliAnaCaloTrackCorrMaker.cxx:584
 AliAnaCaloTrackCorrMaker.cxx:585
 AliAnaCaloTrackCorrMaker.cxx:586
 AliAnaCaloTrackCorrMaker.cxx:587
 AliAnaCaloTrackCorrMaker.cxx:588
 AliAnaCaloTrackCorrMaker.cxx:589
 AliAnaCaloTrackCorrMaker.cxx:590
 AliAnaCaloTrackCorrMaker.cxx:591
 AliAnaCaloTrackCorrMaker.cxx:592
 AliAnaCaloTrackCorrMaker.cxx:593
 AliAnaCaloTrackCorrMaker.cxx:594
 AliAnaCaloTrackCorrMaker.cxx:595
 AliAnaCaloTrackCorrMaker.cxx:596
 AliAnaCaloTrackCorrMaker.cxx:597
 AliAnaCaloTrackCorrMaker.cxx:598
 AliAnaCaloTrackCorrMaker.cxx:599
 AliAnaCaloTrackCorrMaker.cxx:600
 AliAnaCaloTrackCorrMaker.cxx:601
 AliAnaCaloTrackCorrMaker.cxx:602
 AliAnaCaloTrackCorrMaker.cxx:603
 AliAnaCaloTrackCorrMaker.cxx:604
 AliAnaCaloTrackCorrMaker.cxx:605
 AliAnaCaloTrackCorrMaker.cxx:606
 AliAnaCaloTrackCorrMaker.cxx:607
 AliAnaCaloTrackCorrMaker.cxx:608
 AliAnaCaloTrackCorrMaker.cxx:609
 AliAnaCaloTrackCorrMaker.cxx:610
 AliAnaCaloTrackCorrMaker.cxx:611
 AliAnaCaloTrackCorrMaker.cxx:612
 AliAnaCaloTrackCorrMaker.cxx:613
 AliAnaCaloTrackCorrMaker.cxx:614
 AliAnaCaloTrackCorrMaker.cxx:615
 AliAnaCaloTrackCorrMaker.cxx:616
 AliAnaCaloTrackCorrMaker.cxx:617
 AliAnaCaloTrackCorrMaker.cxx:618
 AliAnaCaloTrackCorrMaker.cxx:619
 AliAnaCaloTrackCorrMaker.cxx:620
 AliAnaCaloTrackCorrMaker.cxx:621
 AliAnaCaloTrackCorrMaker.cxx:622
 AliAnaCaloTrackCorrMaker.cxx:623
 AliAnaCaloTrackCorrMaker.cxx:624
 AliAnaCaloTrackCorrMaker.cxx:625
 AliAnaCaloTrackCorrMaker.cxx:626
 AliAnaCaloTrackCorrMaker.cxx:627
 AliAnaCaloTrackCorrMaker.cxx:628
 AliAnaCaloTrackCorrMaker.cxx:629
 AliAnaCaloTrackCorrMaker.cxx:630
 AliAnaCaloTrackCorrMaker.cxx:631
 AliAnaCaloTrackCorrMaker.cxx:632
 AliAnaCaloTrackCorrMaker.cxx:633
 AliAnaCaloTrackCorrMaker.cxx:634
 AliAnaCaloTrackCorrMaker.cxx:635
 AliAnaCaloTrackCorrMaker.cxx:636
 AliAnaCaloTrackCorrMaker.cxx:637
 AliAnaCaloTrackCorrMaker.cxx:638
 AliAnaCaloTrackCorrMaker.cxx:639
 AliAnaCaloTrackCorrMaker.cxx:640
 AliAnaCaloTrackCorrMaker.cxx:641
 AliAnaCaloTrackCorrMaker.cxx:642
 AliAnaCaloTrackCorrMaker.cxx:643
 AliAnaCaloTrackCorrMaker.cxx:644
 AliAnaCaloTrackCorrMaker.cxx:645
 AliAnaCaloTrackCorrMaker.cxx:646
 AliAnaCaloTrackCorrMaker.cxx:647
 AliAnaCaloTrackCorrMaker.cxx:648
 AliAnaCaloTrackCorrMaker.cxx:649
 AliAnaCaloTrackCorrMaker.cxx:650
 AliAnaCaloTrackCorrMaker.cxx:651
 AliAnaCaloTrackCorrMaker.cxx:652
 AliAnaCaloTrackCorrMaker.cxx:653
 AliAnaCaloTrackCorrMaker.cxx:654
 AliAnaCaloTrackCorrMaker.cxx:655
 AliAnaCaloTrackCorrMaker.cxx:656
 AliAnaCaloTrackCorrMaker.cxx:657
 AliAnaCaloTrackCorrMaker.cxx:658
 AliAnaCaloTrackCorrMaker.cxx:659
 AliAnaCaloTrackCorrMaker.cxx:660
 AliAnaCaloTrackCorrMaker.cxx:661
 AliAnaCaloTrackCorrMaker.cxx:662
 AliAnaCaloTrackCorrMaker.cxx:663
 AliAnaCaloTrackCorrMaker.cxx:664
 AliAnaCaloTrackCorrMaker.cxx:665
 AliAnaCaloTrackCorrMaker.cxx:666
 AliAnaCaloTrackCorrMaker.cxx:667
 AliAnaCaloTrackCorrMaker.cxx:668
 AliAnaCaloTrackCorrMaker.cxx:669
 AliAnaCaloTrackCorrMaker.cxx:670
 AliAnaCaloTrackCorrMaker.cxx:671
 AliAnaCaloTrackCorrMaker.cxx:672
 AliAnaCaloTrackCorrMaker.cxx:673
 AliAnaCaloTrackCorrMaker.cxx:674
 AliAnaCaloTrackCorrMaker.cxx:675
 AliAnaCaloTrackCorrMaker.cxx:676
 AliAnaCaloTrackCorrMaker.cxx:677
 AliAnaCaloTrackCorrMaker.cxx:678
 AliAnaCaloTrackCorrMaker.cxx:679
 AliAnaCaloTrackCorrMaker.cxx:680
 AliAnaCaloTrackCorrMaker.cxx:681
 AliAnaCaloTrackCorrMaker.cxx:682
 AliAnaCaloTrackCorrMaker.cxx:683
 AliAnaCaloTrackCorrMaker.cxx:684
 AliAnaCaloTrackCorrMaker.cxx:685
 AliAnaCaloTrackCorrMaker.cxx:686
 AliAnaCaloTrackCorrMaker.cxx:687
 AliAnaCaloTrackCorrMaker.cxx:688
 AliAnaCaloTrackCorrMaker.cxx:689
 AliAnaCaloTrackCorrMaker.cxx:690
 AliAnaCaloTrackCorrMaker.cxx:691
 AliAnaCaloTrackCorrMaker.cxx:692
 AliAnaCaloTrackCorrMaker.cxx:693
 AliAnaCaloTrackCorrMaker.cxx:694
 AliAnaCaloTrackCorrMaker.cxx:695
 AliAnaCaloTrackCorrMaker.cxx:696
 AliAnaCaloTrackCorrMaker.cxx:697
 AliAnaCaloTrackCorrMaker.cxx:698
 AliAnaCaloTrackCorrMaker.cxx:699
 AliAnaCaloTrackCorrMaker.cxx:700
 AliAnaCaloTrackCorrMaker.cxx:701
 AliAnaCaloTrackCorrMaker.cxx:702
 AliAnaCaloTrackCorrMaker.cxx:703
 AliAnaCaloTrackCorrMaker.cxx:704
 AliAnaCaloTrackCorrMaker.cxx:705
 AliAnaCaloTrackCorrMaker.cxx:706
 AliAnaCaloTrackCorrMaker.cxx:707
 AliAnaCaloTrackCorrMaker.cxx:708
 AliAnaCaloTrackCorrMaker.cxx:709
 AliAnaCaloTrackCorrMaker.cxx:710
 AliAnaCaloTrackCorrMaker.cxx:711
 AliAnaCaloTrackCorrMaker.cxx:712
 AliAnaCaloTrackCorrMaker.cxx:713
 AliAnaCaloTrackCorrMaker.cxx:714
 AliAnaCaloTrackCorrMaker.cxx:715
 AliAnaCaloTrackCorrMaker.cxx:716
 AliAnaCaloTrackCorrMaker.cxx:717
 AliAnaCaloTrackCorrMaker.cxx:718
 AliAnaCaloTrackCorrMaker.cxx:719
 AliAnaCaloTrackCorrMaker.cxx:720
 AliAnaCaloTrackCorrMaker.cxx:721
 AliAnaCaloTrackCorrMaker.cxx:722
 AliAnaCaloTrackCorrMaker.cxx:723
 AliAnaCaloTrackCorrMaker.cxx:724
 AliAnaCaloTrackCorrMaker.cxx:725
 AliAnaCaloTrackCorrMaker.cxx:726
 AliAnaCaloTrackCorrMaker.cxx:727
 AliAnaCaloTrackCorrMaker.cxx:728
 AliAnaCaloTrackCorrMaker.cxx:729
 AliAnaCaloTrackCorrMaker.cxx:730
 AliAnaCaloTrackCorrMaker.cxx:731
 AliAnaCaloTrackCorrMaker.cxx:732
 AliAnaCaloTrackCorrMaker.cxx:733
 AliAnaCaloTrackCorrMaker.cxx:734
 AliAnaCaloTrackCorrMaker.cxx:735
 AliAnaCaloTrackCorrMaker.cxx:736
 AliAnaCaloTrackCorrMaker.cxx:737
 AliAnaCaloTrackCorrMaker.cxx:738
 AliAnaCaloTrackCorrMaker.cxx:739
 AliAnaCaloTrackCorrMaker.cxx:740
 AliAnaCaloTrackCorrMaker.cxx:741
 AliAnaCaloTrackCorrMaker.cxx:742
 AliAnaCaloTrackCorrMaker.cxx:743
 AliAnaCaloTrackCorrMaker.cxx:744
 AliAnaCaloTrackCorrMaker.cxx:745
 AliAnaCaloTrackCorrMaker.cxx:746
 AliAnaCaloTrackCorrMaker.cxx:747
 AliAnaCaloTrackCorrMaker.cxx:748
 AliAnaCaloTrackCorrMaker.cxx:749
 AliAnaCaloTrackCorrMaker.cxx:750
 AliAnaCaloTrackCorrMaker.cxx:751
 AliAnaCaloTrackCorrMaker.cxx:752
 AliAnaCaloTrackCorrMaker.cxx:753
 AliAnaCaloTrackCorrMaker.cxx:754
 AliAnaCaloTrackCorrMaker.cxx:755
 AliAnaCaloTrackCorrMaker.cxx:756
 AliAnaCaloTrackCorrMaker.cxx:757
 AliAnaCaloTrackCorrMaker.cxx:758
 AliAnaCaloTrackCorrMaker.cxx:759
 AliAnaCaloTrackCorrMaker.cxx:760
 AliAnaCaloTrackCorrMaker.cxx:761
 AliAnaCaloTrackCorrMaker.cxx:762
 AliAnaCaloTrackCorrMaker.cxx:763
 AliAnaCaloTrackCorrMaker.cxx:764
 AliAnaCaloTrackCorrMaker.cxx:765
 AliAnaCaloTrackCorrMaker.cxx:766
 AliAnaCaloTrackCorrMaker.cxx:767
 AliAnaCaloTrackCorrMaker.cxx:768
 AliAnaCaloTrackCorrMaker.cxx:769
 AliAnaCaloTrackCorrMaker.cxx:770
 AliAnaCaloTrackCorrMaker.cxx:771
 AliAnaCaloTrackCorrMaker.cxx:772
 AliAnaCaloTrackCorrMaker.cxx:773
 AliAnaCaloTrackCorrMaker.cxx:774
 AliAnaCaloTrackCorrMaker.cxx:775
 AliAnaCaloTrackCorrMaker.cxx:776
 AliAnaCaloTrackCorrMaker.cxx:777
 AliAnaCaloTrackCorrMaker.cxx:778
 AliAnaCaloTrackCorrMaker.cxx:779
 AliAnaCaloTrackCorrMaker.cxx:780
 AliAnaCaloTrackCorrMaker.cxx:781
 AliAnaCaloTrackCorrMaker.cxx:782
 AliAnaCaloTrackCorrMaker.cxx:783
 AliAnaCaloTrackCorrMaker.cxx:784
 AliAnaCaloTrackCorrMaker.cxx:785
 AliAnaCaloTrackCorrMaker.cxx:786
 AliAnaCaloTrackCorrMaker.cxx:787
 AliAnaCaloTrackCorrMaker.cxx:788
 AliAnaCaloTrackCorrMaker.cxx:789
 AliAnaCaloTrackCorrMaker.cxx:790
 AliAnaCaloTrackCorrMaker.cxx:791
 AliAnaCaloTrackCorrMaker.cxx:792
 AliAnaCaloTrackCorrMaker.cxx:793
 AliAnaCaloTrackCorrMaker.cxx:794
 AliAnaCaloTrackCorrMaker.cxx:795
 AliAnaCaloTrackCorrMaker.cxx:796
 AliAnaCaloTrackCorrMaker.cxx:797
 AliAnaCaloTrackCorrMaker.cxx:798
 AliAnaCaloTrackCorrMaker.cxx:799
 AliAnaCaloTrackCorrMaker.cxx:800
 AliAnaCaloTrackCorrMaker.cxx:801
 AliAnaCaloTrackCorrMaker.cxx:802
 AliAnaCaloTrackCorrMaker.cxx:803
 AliAnaCaloTrackCorrMaker.cxx:804
 AliAnaCaloTrackCorrMaker.cxx:805
 AliAnaCaloTrackCorrMaker.cxx:806
 AliAnaCaloTrackCorrMaker.cxx:807
 AliAnaCaloTrackCorrMaker.cxx:808
 AliAnaCaloTrackCorrMaker.cxx:809
 AliAnaCaloTrackCorrMaker.cxx:810
 AliAnaCaloTrackCorrMaker.cxx:811
 AliAnaCaloTrackCorrMaker.cxx:812
 AliAnaCaloTrackCorrMaker.cxx:813
 AliAnaCaloTrackCorrMaker.cxx:814
 AliAnaCaloTrackCorrMaker.cxx:815
 AliAnaCaloTrackCorrMaker.cxx:816
 AliAnaCaloTrackCorrMaker.cxx:817
 AliAnaCaloTrackCorrMaker.cxx:818
 AliAnaCaloTrackCorrMaker.cxx:819
 AliAnaCaloTrackCorrMaker.cxx:820
 AliAnaCaloTrackCorrMaker.cxx:821
 AliAnaCaloTrackCorrMaker.cxx:822
 AliAnaCaloTrackCorrMaker.cxx:823
 AliAnaCaloTrackCorrMaker.cxx:824
 AliAnaCaloTrackCorrMaker.cxx:825
 AliAnaCaloTrackCorrMaker.cxx:826
 AliAnaCaloTrackCorrMaker.cxx:827
 AliAnaCaloTrackCorrMaker.cxx:828
 AliAnaCaloTrackCorrMaker.cxx:829
 AliAnaCaloTrackCorrMaker.cxx:830
 AliAnaCaloTrackCorrMaker.cxx:831
 AliAnaCaloTrackCorrMaker.cxx:832
 AliAnaCaloTrackCorrMaker.cxx:833
 AliAnaCaloTrackCorrMaker.cxx:834
 AliAnaCaloTrackCorrMaker.cxx:835
 AliAnaCaloTrackCorrMaker.cxx:836
 AliAnaCaloTrackCorrMaker.cxx:837
 AliAnaCaloTrackCorrMaker.cxx:838
 AliAnaCaloTrackCorrMaker.cxx:839
 AliAnaCaloTrackCorrMaker.cxx:840
 AliAnaCaloTrackCorrMaker.cxx:841
 AliAnaCaloTrackCorrMaker.cxx:842
 AliAnaCaloTrackCorrMaker.cxx:843
 AliAnaCaloTrackCorrMaker.cxx:844
 AliAnaCaloTrackCorrMaker.cxx:845
 AliAnaCaloTrackCorrMaker.cxx:846
 AliAnaCaloTrackCorrMaker.cxx:847
 AliAnaCaloTrackCorrMaker.cxx:848
 AliAnaCaloTrackCorrMaker.cxx:849
 AliAnaCaloTrackCorrMaker.cxx:850
 AliAnaCaloTrackCorrMaker.cxx:851
 AliAnaCaloTrackCorrMaker.cxx:852
 AliAnaCaloTrackCorrMaker.cxx:853
 AliAnaCaloTrackCorrMaker.cxx:854
 AliAnaCaloTrackCorrMaker.cxx:855
 AliAnaCaloTrackCorrMaker.cxx:856
 AliAnaCaloTrackCorrMaker.cxx:857
 AliAnaCaloTrackCorrMaker.cxx:858
 AliAnaCaloTrackCorrMaker.cxx:859
 AliAnaCaloTrackCorrMaker.cxx:860
 AliAnaCaloTrackCorrMaker.cxx:861
 AliAnaCaloTrackCorrMaker.cxx:862
 AliAnaCaloTrackCorrMaker.cxx:863
 AliAnaCaloTrackCorrMaker.cxx:864
 AliAnaCaloTrackCorrMaker.cxx:865
 AliAnaCaloTrackCorrMaker.cxx:866
 AliAnaCaloTrackCorrMaker.cxx:867
 AliAnaCaloTrackCorrMaker.cxx:868
 AliAnaCaloTrackCorrMaker.cxx:869
 AliAnaCaloTrackCorrMaker.cxx:870
 AliAnaCaloTrackCorrMaker.cxx:871
 AliAnaCaloTrackCorrMaker.cxx:872
 AliAnaCaloTrackCorrMaker.cxx:873
 AliAnaCaloTrackCorrMaker.cxx:874
 AliAnaCaloTrackCorrMaker.cxx:875
 AliAnaCaloTrackCorrMaker.cxx:876
 AliAnaCaloTrackCorrMaker.cxx:877
 AliAnaCaloTrackCorrMaker.cxx:878
 AliAnaCaloTrackCorrMaker.cxx:879
 AliAnaCaloTrackCorrMaker.cxx:880
 AliAnaCaloTrackCorrMaker.cxx:881
 AliAnaCaloTrackCorrMaker.cxx:882
 AliAnaCaloTrackCorrMaker.cxx:883
 AliAnaCaloTrackCorrMaker.cxx:884
 AliAnaCaloTrackCorrMaker.cxx:885
 AliAnaCaloTrackCorrMaker.cxx:886
 AliAnaCaloTrackCorrMaker.cxx:887
 AliAnaCaloTrackCorrMaker.cxx:888
 AliAnaCaloTrackCorrMaker.cxx:889
 AliAnaCaloTrackCorrMaker.cxx:890
 AliAnaCaloTrackCorrMaker.cxx:891
 AliAnaCaloTrackCorrMaker.cxx:892
 AliAnaCaloTrackCorrMaker.cxx:893
 AliAnaCaloTrackCorrMaker.cxx:894
 AliAnaCaloTrackCorrMaker.cxx:895
 AliAnaCaloTrackCorrMaker.cxx:896
 AliAnaCaloTrackCorrMaker.cxx:897
 AliAnaCaloTrackCorrMaker.cxx:898
 AliAnaCaloTrackCorrMaker.cxx:899
 AliAnaCaloTrackCorrMaker.cxx:900
 AliAnaCaloTrackCorrMaker.cxx:901
 AliAnaCaloTrackCorrMaker.cxx:902
 AliAnaCaloTrackCorrMaker.cxx:903
 AliAnaCaloTrackCorrMaker.cxx:904
 AliAnaCaloTrackCorrMaker.cxx:905
 AliAnaCaloTrackCorrMaker.cxx:906
 AliAnaCaloTrackCorrMaker.cxx:907
 AliAnaCaloTrackCorrMaker.cxx:908
 AliAnaCaloTrackCorrMaker.cxx:909
 AliAnaCaloTrackCorrMaker.cxx:910
 AliAnaCaloTrackCorrMaker.cxx:911
 AliAnaCaloTrackCorrMaker.cxx:912
 AliAnaCaloTrackCorrMaker.cxx:913
 AliAnaCaloTrackCorrMaker.cxx:914
 AliAnaCaloTrackCorrMaker.cxx:915
 AliAnaCaloTrackCorrMaker.cxx:916
 AliAnaCaloTrackCorrMaker.cxx:917
 AliAnaCaloTrackCorrMaker.cxx:918
 AliAnaCaloTrackCorrMaker.cxx:919
 AliAnaCaloTrackCorrMaker.cxx:920
 AliAnaCaloTrackCorrMaker.cxx:921
 AliAnaCaloTrackCorrMaker.cxx:922
 AliAnaCaloTrackCorrMaker.cxx:923
 AliAnaCaloTrackCorrMaker.cxx:924
 AliAnaCaloTrackCorrMaker.cxx:925
 AliAnaCaloTrackCorrMaker.cxx:926
 AliAnaCaloTrackCorrMaker.cxx:927
 AliAnaCaloTrackCorrMaker.cxx:928
 AliAnaCaloTrackCorrMaker.cxx:929
 AliAnaCaloTrackCorrMaker.cxx:930
 AliAnaCaloTrackCorrMaker.cxx:931
 AliAnaCaloTrackCorrMaker.cxx:932
 AliAnaCaloTrackCorrMaker.cxx:933
 AliAnaCaloTrackCorrMaker.cxx:934
 AliAnaCaloTrackCorrMaker.cxx:935
 AliAnaCaloTrackCorrMaker.cxx:936
 AliAnaCaloTrackCorrMaker.cxx:937
 AliAnaCaloTrackCorrMaker.cxx:938
 AliAnaCaloTrackCorrMaker.cxx:939
 AliAnaCaloTrackCorrMaker.cxx:940
 AliAnaCaloTrackCorrMaker.cxx:941
 AliAnaCaloTrackCorrMaker.cxx:942
 AliAnaCaloTrackCorrMaker.cxx:943
 AliAnaCaloTrackCorrMaker.cxx:944
 AliAnaCaloTrackCorrMaker.cxx:945
 AliAnaCaloTrackCorrMaker.cxx:946
 AliAnaCaloTrackCorrMaker.cxx:947
 AliAnaCaloTrackCorrMaker.cxx:948
 AliAnaCaloTrackCorrMaker.cxx:949
 AliAnaCaloTrackCorrMaker.cxx:950
 AliAnaCaloTrackCorrMaker.cxx:951
 AliAnaCaloTrackCorrMaker.cxx:952
 AliAnaCaloTrackCorrMaker.cxx:953
 AliAnaCaloTrackCorrMaker.cxx:954
 AliAnaCaloTrackCorrMaker.cxx:955
 AliAnaCaloTrackCorrMaker.cxx:956
 AliAnaCaloTrackCorrMaker.cxx:957
 AliAnaCaloTrackCorrMaker.cxx:958
 AliAnaCaloTrackCorrMaker.cxx:959
 AliAnaCaloTrackCorrMaker.cxx:960
 AliAnaCaloTrackCorrMaker.cxx:961
 AliAnaCaloTrackCorrMaker.cxx:962
 AliAnaCaloTrackCorrMaker.cxx:963
 AliAnaCaloTrackCorrMaker.cxx:964
 AliAnaCaloTrackCorrMaker.cxx:965
 AliAnaCaloTrackCorrMaker.cxx:966
 AliAnaCaloTrackCorrMaker.cxx:967
 AliAnaCaloTrackCorrMaker.cxx:968
 AliAnaCaloTrackCorrMaker.cxx:969
 AliAnaCaloTrackCorrMaker.cxx:970
 AliAnaCaloTrackCorrMaker.cxx:971
 AliAnaCaloTrackCorrMaker.cxx:972
 AliAnaCaloTrackCorrMaker.cxx:973
 AliAnaCaloTrackCorrMaker.cxx:974
 AliAnaCaloTrackCorrMaker.cxx:975
 AliAnaCaloTrackCorrMaker.cxx:976
 AliAnaCaloTrackCorrMaker.cxx:977
 AliAnaCaloTrackCorrMaker.cxx:978
 AliAnaCaloTrackCorrMaker.cxx:979
 AliAnaCaloTrackCorrMaker.cxx:980
 AliAnaCaloTrackCorrMaker.cxx:981
 AliAnaCaloTrackCorrMaker.cxx:982
 AliAnaCaloTrackCorrMaker.cxx:983
 AliAnaCaloTrackCorrMaker.cxx:984
 AliAnaCaloTrackCorrMaker.cxx:985
 AliAnaCaloTrackCorrMaker.cxx:986
 AliAnaCaloTrackCorrMaker.cxx:987
 AliAnaCaloTrackCorrMaker.cxx:988
 AliAnaCaloTrackCorrMaker.cxx:989
 AliAnaCaloTrackCorrMaker.cxx:990
 AliAnaCaloTrackCorrMaker.cxx:991
 AliAnaCaloTrackCorrMaker.cxx:992
 AliAnaCaloTrackCorrMaker.cxx:993
 AliAnaCaloTrackCorrMaker.cxx:994
 AliAnaCaloTrackCorrMaker.cxx:995
 AliAnaCaloTrackCorrMaker.cxx:996
 AliAnaCaloTrackCorrMaker.cxx:997
 AliAnaCaloTrackCorrMaker.cxx:998
 AliAnaCaloTrackCorrMaker.cxx:999
 AliAnaCaloTrackCorrMaker.cxx:1000
 AliAnaCaloTrackCorrMaker.cxx:1001
 AliAnaCaloTrackCorrMaker.cxx:1002
 AliAnaCaloTrackCorrMaker.cxx:1003
 AliAnaCaloTrackCorrMaker.cxx:1004
 AliAnaCaloTrackCorrMaker.cxx:1005
 AliAnaCaloTrackCorrMaker.cxx:1006
 AliAnaCaloTrackCorrMaker.cxx:1007
 AliAnaCaloTrackCorrMaker.cxx:1008
 AliAnaCaloTrackCorrMaker.cxx:1009
 AliAnaCaloTrackCorrMaker.cxx:1010
 AliAnaCaloTrackCorrMaker.cxx:1011
 AliAnaCaloTrackCorrMaker.cxx:1012
 AliAnaCaloTrackCorrMaker.cxx:1013
 AliAnaCaloTrackCorrMaker.cxx:1014
 AliAnaCaloTrackCorrMaker.cxx:1015
 AliAnaCaloTrackCorrMaker.cxx:1016
 AliAnaCaloTrackCorrMaker.cxx:1017
 AliAnaCaloTrackCorrMaker.cxx:1018
 AliAnaCaloTrackCorrMaker.cxx:1019
 AliAnaCaloTrackCorrMaker.cxx:1020
 AliAnaCaloTrackCorrMaker.cxx:1021
 AliAnaCaloTrackCorrMaker.cxx:1022
 AliAnaCaloTrackCorrMaker.cxx:1023
 AliAnaCaloTrackCorrMaker.cxx:1024
 AliAnaCaloTrackCorrMaker.cxx:1025
 AliAnaCaloTrackCorrMaker.cxx:1026
 AliAnaCaloTrackCorrMaker.cxx:1027
 AliAnaCaloTrackCorrMaker.cxx:1028
 AliAnaCaloTrackCorrMaker.cxx:1029
 AliAnaCaloTrackCorrMaker.cxx:1030
 AliAnaCaloTrackCorrMaker.cxx:1031
 AliAnaCaloTrackCorrMaker.cxx:1032
 AliAnaCaloTrackCorrMaker.cxx:1033
 AliAnaCaloTrackCorrMaker.cxx:1034
 AliAnaCaloTrackCorrMaker.cxx:1035
 AliAnaCaloTrackCorrMaker.cxx:1036
 AliAnaCaloTrackCorrMaker.cxx:1037
 AliAnaCaloTrackCorrMaker.cxx:1038
 AliAnaCaloTrackCorrMaker.cxx:1039
 AliAnaCaloTrackCorrMaker.cxx:1040
 AliAnaCaloTrackCorrMaker.cxx:1041
 AliAnaCaloTrackCorrMaker.cxx:1042
 AliAnaCaloTrackCorrMaker.cxx:1043
 AliAnaCaloTrackCorrMaker.cxx:1044
 AliAnaCaloTrackCorrMaker.cxx:1045
 AliAnaCaloTrackCorrMaker.cxx:1046