ROOT logo
AliAnalysisTaskCaloTrackCorrelationM *AddTaskCaloTrackCorrM(TString data, TString calorimeter, Bool_t kPrintSettings = kFALSE)
{
  // Creates a CaloTrackCorr task, configures it and adds it to the analysis manager.
  
  // Get the pointer to the existing analysis manager via the static access method.
  //==============================================================================
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    ::Error("AddTaskCaloTrackCorr", "No analysis manager to connect to.");
    return NULL;
  }  
  Bool_t kUseKinematics = kFALSE; 
  kUseKinematics = (mgr->GetMCtruthEventHandler())?kTRUE:kFALSE;    
	
  cout<<"********* ACCESS KINE? "<<kUseKinematics<<endl;
  
  // Configure analysis
  //===========================================================================
  
  //Reader
  AliCaloTrackReader * reader = 0x0;
  if(data.Contains("AOD")) reader = new AliCaloTrackAODReader();
  else if(data=="ESD") reader = new AliCaloTrackESDReader();
  else if(data=="MC" || (kUseKinematics && data == "ESD")) reader = new AliCaloTrackMCReader();
  reader->SetDebug(-1);//10 for lots of messages
  reader->SwitchOnCTS();
  
  if(calorimeter == "EMCAL") {
    reader->SwitchOnEMCALCells();  
    reader->SwitchOnEMCAL(); 
  }
  if(calorimeter == "PHOS") { 
    reader->SwitchOnPHOSCells();  
    reader->SwitchOnPHOS();
  }
  
   reader->SwitchOnSuspiciousClustersRemoval();  //EMCAL

  // for case data="deltaAOD", no need to fill the EMCAL/PHOS cluster lists
  if(data.Contains("delta")){
    reader->SwitchOffEMCAL();
    reader->SwitchOffPHOS();
    reader->SwitchOffEMCALCells(); 
    reader->SwitchOffPHOSCells(); 
  }
	
  if(kUseKinematics){
    if(data == "ESD"){
      reader->SwitchOnStack();          
      reader->SwitchOffAODMCParticles(); 
    }
    else if(data == "AOD"){
      reader->SwitchOffStack();          
      reader->SwitchOnAODMCParticles(); 
    }
  }
  
  reader->SetZvertexCut(10.);
  
  //Min particle pT
  reader->SetEMCALPtMin(0.5); 
  reader->SetPHOSPtMin(0.5);
  reader->SetCTSPtMin(0.1);
  reader->SwitchOffWriteDeltaAOD()  ;
  if(kPrintSettings) reader->Print("");
  
  // ##### Analysis algorithm settings ####
  AliCaloPID * pid = new AliCaloPID();
  pid->SetDispersionCut(1.5);
  pid->SetTOFCut(5.e-9);
  pid->SetDebug(-1);
  if(kPrintSettings) pid->Print("");
  //Fiducial cut  
//  AliFiducialCut * fidCut1stYear = new AliFiducialCut();
//  fidCut1stYear->DoCTSFiducialCut(kTRUE) ;
//  fidCut1stYear->SetSimpleCTSFiducialCut(0.8,0.,360.);
//  fidCut1stYear->DoEMCALFiducialCut(kTRUE) ;
//  fidCut1stYear->DoPHOSFiducialCut(kTRUE) ;
//  fidCut1stYear->SetSimpleEMCALFiducialCut(0.7,80.,120.);
//  fidCut1stYear->SetSimplePHOSFiducialCut(0.12,260.,300.);
  // -------------------------------------------------
  // --- Isolation Cut ---
  // -------------------------------------------------
  AliIsolationCut * ic = new AliIsolationCut();
  ic->SetConeSize(0.4);
  //ic->SetPtThreshold(0.7);
  ic->SetPtFraction(0.1);
  ic->SetPtThreshold(0.7) ;
  ic->SetSumPtThreshold(1.0) ;
  //choose different method for IC:
  //kPtThresIC, kSumPtIC, kPtFracIC, kSumPtFracIC
  //  ic->SetICMethod(AliIsolationCut::kPtThresIC);
  ic->SetICMethod(AliIsolationCut::kSumPtFracIC);
  //particle in cone: kNeutralAndCharged=0, kOnlyNeutral=1, kOnlyCharged=2
  ic->SetParticleTypeInCone(AliIsolationCut::kOnlyCharged);
  if(kPrintSettings) ic->Print("");
  
  //analysis with calorimeter triggers  
  if(calorimeter=="PHOS" || calorimeter=="EMCAL") {  
    AliCalorimeterUtils * cu = new AliCalorimeterUtils();
    cu->SwitchOnBadChannelsRemoval();
    
    cu->SetNumberOfCellsFromEMCALBorder(1) ; //nEMCAL);
    cu->SetNumberOfCellsFromPHOSBorder(2) ; //nPHOS);
     
    // -----------------------------------
    // --- Photon and Pi0  Analysis ---
    // -----------------------------------
    
    AliAnaPhoton *anaphoton = new AliAnaPhoton();
    anaphoton->SetDebug(-1); //10 for lots of messages
    anaphoton->SetMinPt(1.0);
    anaphoton->SetCaloPID(pid);
    anaphoton->SetCalorimeter(calorimeter);
    if(kUseKinematics) anaphoton->SwitchOnDataMC() ;//Access MC stack and fill more histograms
    else  anaphoton->SwitchOffDataMC() ;
    anaphoton->SwitchOffCaloPID();
    anaphoton->SwitchOffCaloPIDRecalculation(); //recommended for EMCAL
    anaphoton->SwitchOnFiducialCut();
    AliFiducialCut * fidCut1stYear = anaphoton->GetFiducialCut();
    fidCut1stYear->DoEMCALFiducialCut(kTRUE) ;
    fidCut1stYear->DoPHOSFiducialCut(kTRUE) ;
    fidCut1stYear->SetSimpleEMCALFiducialCut(0.7,80.,120.);
    fidCut1stYear->SetSimplePHOSFiducialCut(0.12,260.,320.);
    anaphoton->SwitchOnTrackMatchRejection();
    //settings for different multiplicity analysis
    anaphoton->SwitchOffEventSelection() ;
    anaphoton->SetMultiplicity(80, 120);
    
    if(calorimeter == "EMCAL"){
      anaphoton->SetNCellCut(1);
      anaphoton->SetMinPt(0.3); 
      //if(!kUseKinematics) anaphoton->SetTimeCut(525, 725);
      anaphoton->SetMinDistanceToBadChannel(1, 2, 3);
    }
    else{
      anaphoton->SetMinPt(0.3);       
      anaphoton->SetMinDistanceToBadChannel(2, 4, 5);
      anaphoton->SetNCellCut(2);
    }
    if(!data.Contains("delta")) {
      anaphoton->SetOutputAODName(Form("Triggers%s",calorimeter.Data()));
      anaphoton->SetOutputAODClassName("AliAODPWG4ParticleCorrelation");
    }
    else anaphoton->SetOutputAODName(Form("Triggers%s",calorimeter.Data()));
    anaphoton->AddToHistogramsName("AnaPhoton_");
    //Set Histograms bins and ranges
    anaphoton->GetHistogramRanges()->SetHistoPtRangeAndNBins(0, 50, 100) ;
    //      ana->GetHistogramRanges()->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;
    //      ana->GetHistogramRanges()->SetHistoEtaRangeAndNBins(-0.7, 0.7, 100) ;
    
    if(kPrintSettings) anaphoton->Print("");
    AliAnaPi0 *anapi0 = new AliAnaPi0();
    anapi0->SetDebug(-1);//10 for lots of messages
    anapi0->SetInputAODName(Form("Triggers%s",calorimeter.Data()));
    anapi0->AddToHistogramsName("AnaPi0_");
    anapi0->SetCaloPID(pid);
    anapi0->SetCalorimeter(calorimeter);
    anapi0->SwitchOnFiducialCut();
    AliFiducialCut * fidCut1stYear = anapi0->GetFiducialCut();
    fidCut1stYear->DoEMCALFiducialCut(kTRUE) ;
    fidCut1stYear->DoPHOSFiducialCut(kTRUE) ;
    fidCut1stYear->SetSimpleEMCALFiducialCut(0.7,80.,120.);
    fidCut1stYear->SetSimplePHOSFiducialCut(0.12,260.,320.);
    anapi0->SetNPID(1); 
    //settings for different multiplicity analysis
    anapi0->SwitchOnEventSelection() ;
    anapi0->SetNCentrBin(1);
    anapi0->SetMultiplicity(80, 120);
    anapi0->SetMultiBin(1);  
    anapi0->SwitchOffDataMC() ;//Access MC stack and fill more histograms
 
    anapi0->GetHistogramRanges()->SetHistoPtRangeAndNBins(0, 50, 100) ;
    //anapi0->GetHistogramRanges()->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;
    //anapi0->GetHistogramRanges()->SetHistoEtaRangeAndNBins(-0.8, 0.8, 200) ;
    anapi0->GetHistogramRanges()->SetHistoMassRangeAndNBins(0., 1.0, 100) ;
    anapi0->GetHistogramRanges()->SetHistoAsymmetryRangeAndNBins(0., 1. , 10) ;
    if(kPrintSettings) anapi0->Print("");
    
    // -------------------------------------------------
    // --- Pi0 EbE Analysis ---
    // -------------------------------------------------
    
    AliNeutralMesonSelection *nms = new AliNeutralMesonSelection();
    nms->SetInvMassCutRange(0.05, 0.16)     ;
    nms->SwitchOffAngleSelection() ;
    nms->KeepNeutralMesonSelectionHistos(kTRUE);
    //Set Histrograms bins and ranges
    nms->SetHistoERangeAndNBins(0, 50, 100) ;
    nms->SetHistoPtRangeAndNBins(0, 50, 100) ;
    //      nms->GetHistogramRanges()->SetHistoAngleRangeAndNBins(0, 0.3, 100) ;
    //      nsm->GetHistogramRanges()->SetHistoIMRangeAndNBins(0, 0.4, 100) ;  
    
    AliAnaPi0EbE *anapi0ebe = new AliAnaPi0EbE();
    anapi0ebe->SetDebug(-1);//10 for lots of messages
    anapi0ebe->SetAnalysisType(AliAnaPi0EbE::kIMCalo);
    anapi0ebe->SetMinPt(0.5);
    anapi0ebe->SetCalorimeter(calorimeter);
    anapi0ebe->SetInputAODName(Form("Triggers%s",calorimeter.Data()));
    if(!data.Contains("delta")) {
      anapi0ebe->SetOutputAODName(Form("Pi0s%s",calorimeter.Data()));
      anapi0ebe->SetOutputAODClassName("AliAODPWG4ParticleCorrelation");
    }
    else  anapi0ebe->SetOutputAODName(Form("Pi0s%s",calorimeter.Data()));
    
    if(kUseKinematics) anapi0ebe->SwitchOnDataMC() ;//Access MC stack and fill more histograms
    else  anapi0ebe->SwitchOffDataMC() ;	
    anapi0ebe->SwitchOffEventSelection() ;
    anapi0ebe->SetMultiplicity(80, 120);
    anapi0ebe->SetMultiBin(1);  
    anapi0ebe->SetNeutralMesonSelection(nms);
    //Set Histrograms bins and ranges
    anapi0ebe->GetHistogramRanges()->SetHistoPtRangeAndNBins(0, 50, 100) ;
    //      anapi0->GetHistogramRanges()->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;
    //      anapi0->GetHistogramRanges()->SetHistoEtaRangeAndNBins(-0.7, 0.7, 100) ;
    if(kPrintSettings) anapi0ebe->Print("");
    
    // ### Pi0 Correlation with hadrons, not isolated
    AliAnaParticleHadronCorrelation *anacorrhadronpi0 = new AliAnaParticleHadronCorrelation();
    anacorrhadronpi0->SetInputAODName(Form("Pi0s%s",calorimeter.Data()));
    anacorrhadronpi0->AddToHistogramsName("AnaHadronCorrPi0_");
    anacorrhadronpi0->SetDebug(-1);
    anacorrhadronpi0->SwitchOffCaloPID();
    anacorrhadronpi0->SwitchOnFiducialCut();
    AliFiducialCut * fidCut1stYear = anacorrhadronpi0->GetFiducialCut();
    fidCut1stYear->DoEMCALFiducialCut(kTRUE) ;
    fidCut1stYear->DoPHOSFiducialCut(kTRUE) ;
    fidCut1stYear->SetSimpleEMCALFiducialCut(0.7,80.,120.);
    fidCut1stYear->SetSimplePHOSFiducialCut(0.12,260.,320.);
    fidCut1stYear->DoCTSFiducialCut(kTRUE) ;
    fidCut1stYear->SetSimpleCTSFiducialCut(0.8,0.,360.);    
    anacorrhadronpi0->SwitchOnDecayCorr();
    anacorrhadronpi0->SetPtCutRange(0.5,50);
    anacorrhadronpi0->SetDeltaPhiCutRange(1.5,4.5);
    anacorrhadronpi0->SelectIsolated(kFALSE); // do correlation with non isolated pi0
    anacorrhadronpi0->SetMultiplicity(80, 100);
    anacorrhadronpi0->SetMultiBin(1);
    anacorrhadronpi0->SwitchOffNeutralCorr();
    anacorrhadronpi0->SwitchOffEventSelection();
    anacorrhadronpi0->SwitchOnSeveralUECalculation();
    anacorrhadronpi0->SetUeDeltaPhiCutRange(TMath::Pi()/3, 2*TMath::Pi()/3);
    if(kUseKinematics) anacorrhadronpi0->SwitchOnDataMC() ;//Access MC stack and fill more histograms
    else  anacorrhadronpi0->SwitchOffDataMC() ;
    //if(calorimeter=="PHOS"){
    //	//Correlate with particles in EMCAL
    //	anacorrhadronpi0->SwitchOnCaloPID();
    //	anacorrhadronpi0->SwitchOnCaloPIDRecalculation(); //recommended for EMCAL
    //}
    //Set Histograms bins and ranges
    anacorrhadronpi0->GetHistogramRanges()->SetHistoPtRangeAndNBins(0, 50, 100) ;
    //      ana->GetHistogramRanges()->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;
    //      ana->GetHistogramRanges()->SetHistoEtaRangeAndNBins(-0.7, 0.7, 100) ;
    if(kPrintSettings) anacorrhadronpi0->Print("");
    
    AliAnaParticleIsolation *anaisolpi0 = new AliAnaParticleIsolation();
    anaisolpi0->SetDebug(-1);
    anaisolpi0->SetMinPt(2.);
    anaisolpi0->SetInputAODName(Form("Pi0s%s",calorimeter.Data()));
    anaisolpi0->AddToHistogramsName("AnaIsolPi0_");
    anaisolpi0->SetCalorimeter(calorimeter);
    if(kUseKinematics) anaisolpi0->SwitchOnDataMC() ;//Access MC stack and fill more histograms
    else  anaisolpi0->SwitchOffDataMC() ;
    //Select clusters with no pair, if both clusters with pi0 mass
    anaisolpi0->SwitchOffInvariantMass();
    //anaisol->SetNeutralMesonSelection(nms);
    //Do isolation cut
    anaisolpi0->SetIsolationCut(ic);	
    //Do or not do isolation with previously produced AODs.
    //No effect if use of SwitchOnSeveralIsolation()
    anaisolpi0->SwitchOffReIsolation();
    //Multiple IC
    anaisolpi0->SwitchOffSeveralIsolation() ;
    //Set Histograms bins and ranges
    anaisolpi0->GetHistogramRanges()->SetHistoPtRangeAndNBins(0, 50, 100) ;
    //      ana->GetHistogramRanges()->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;
    //      ana->GetHistogramRanges()->SetHistoEtaRangeAndNBins(-0.7, 0.7, 100) ;
    if(kPrintSettings) anaisol->Print("");
    
    // ### Pi0 Correlation with hadrons, isolated
    AliAnaParticleHadronCorrelation *anacorrhadronisopi0 = new AliAnaParticleHadronCorrelation();
    anacorrhadronisopi0->SetInputAODName(Form("Pi0s%s",calorimeter.Data()));
    anacorrhadronisopi0->AddToHistogramsName("AnaHadronCorrIsoPi0_");
    anacorrhadronisopi0->SetDebug(-1);
    anacorrhadronisopi0->SwitchOffCaloPID();
    anacorrhadronisopi0->SwitchOnFiducialCut();
    AliFiducialCut * fidCut1stYear = anacorrhadronisopi0->GetFiducialCut();
    fidCut1stYear->DoEMCALFiducialCut(kTRUE) ;
    fidCut1stYear->DoPHOSFiducialCut(kTRUE) ;
    fidCut1stYear->SetSimpleEMCALFiducialCut(0.7,80.,120.);
    fidCut1stYear->SetSimplePHOSFiducialCut(0.12,260.,320.);
    fidCut1stYear->DoCTSFiducialCut(kTRUE) ;
    fidCut1stYear->SetSimpleCTSFiducialCut(0.8,0.,360.);    
    anacorrhadronisopi0->SwitchOnDecayCorr();
    anacorrhadronisopi0->SetPtCutRange(0.5,50);
    anacorrhadronisopi0->SetDeltaPhiCutRange(1.5,4.5);
    anacorrhadronisopi0->SelectIsolated(kTRUE); // do correlation with isolated pi0
    anacorrhadronisopi0->SetMultiplicity(80, 100);
    anacorrhadronisopi0->SetMultiBin(1);
    anacorrhadronisopi0->SwitchOffNeutralCorr();
    anacorrhadronisopi0->SwitchOffEventSelection();  
    anacorrhadronisopi0->SwitchOnSeveralUECalculation();
    anacorrhadronisopi0->SetUeDeltaPhiCutRange(TMath::Pi()/3, 2*TMath::Pi()/3);
    if(kUseKinematics) anacorrhadronisopi0->SwitchOnDataMC() ;//Access MC stack and fill more histograms
    else  anacorrhadronisopi0->SwitchOffDataMC() ;
    //if(calorimeter=="PHOS"){
    //	//Correlate with particles in EMCAL
    //	anacorrhadronpi0->SwitchOnCaloPID();
    //	anacorrhadronpi0->SwitchOnCaloPIDRecalculation(); //recommended for EMCAL
    //}
    //Set Histograms bins and ranges
    anacorrhadronisopi0->GetHistogramRanges()->SetHistoPtRangeAndNBins(0, 50, 100) ;
    //      ana->GetHistogramRanges()->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;
    //      ana->GetHistogramRanges()->SetHistoEtaRangeAndNBins(-0.7, 0.7, 100) ;
    if(kPrintSettings) anacorrhadronisopi0->Print("");
    
  } //analysis in calorimeter
  else {
    //---charge particle trigger---------------------
    //------------------------------------------------
    
    AliAnaChargedParticles *anacharge = new AliAnaChargedParticles();
    anacharge->SetDebug(-1); //10 for lots of messages
    anacharge->SetMinPt(1.0);
    // anacharge->SetCaloPID(pid);
    if(kUseKinematics) anacharge->SwitchOnDataMC() ;//Access MC stack and fill more histograms
    else  anacharge->SwitchOffDataMC() ;
    anacharge->SwitchOffCaloPID();
    anacharge->SwitchOffCaloPIDRecalculation(); //recommended for EMCAL
    anacharge->SwitchOnFiducialCut();
    AliFiducialCut * fidCut1stYear = anacharge->GetFiducialCut();
    fidCut1stYear->DoCTSFiducialCut(kTRUE) ;
    fidCut1stYear->SetSimpleCTSFiducialCut(0.8,0.,360.);       
    if(!data.Contains("delta")) {
      anacharge->SetOutputAODName(Form("Triggers%s",calorimeter.Data()));
      anacharge->SetOutputAODClassName("AliAODPWG4ParticleCorrelation");
    }
    else anacharge->SetOutputAODName(Form("Triggers%s",calorimeter.Data()));
    anacharge->AddToHistogramsName("AnaCharge_");
    //Set Histograms bins and ranges
    anacharge->GetHistogramRanges()->SetHistoPtRangeAndNBins(0, 50, 100) ;
    //      ana->GetHistogramRanges()->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;
    //      ana->GetHistogramRanges()->SetHistoEtaRangeAndNBins(-0.7, 0.7, 100) ;
    
    if(kPrintSettings) anacharge->Print("");    
  }
  
  // -------------------------------------------------
  // ---  Correlation Analysis with non-isolated triggers ---
  // -------------------------------------------------
  // ### Correlation with hadrons
  AliAnaParticleHadronCorrelation *anacorrhadron = new AliAnaParticleHadronCorrelation();
  anacorrhadron->SetInputAODName(Form("Triggers%s",calorimeter.Data()));
  anacorrhadron->AddToHistogramsName("AnaHadronCorrTrig_");
  anacorrhadron->SetDebug(-1);
  anacorrhadron->SwitchOnCaloPID();
  anacorrhadron->SwitchOnFiducialCut();
  AliFiducialCut * fidCut1stYear = anacorrhadron->GetFiducialCut();
  fidCut1stYear->DoEMCALFiducialCut(kTRUE) ;
  fidCut1stYear->DoPHOSFiducialCut(kTRUE) ;
  fidCut1stYear->SetSimpleEMCALFiducialCut(0.7,80.,120.);
  fidCut1stYear->SetSimplePHOSFiducialCut(0.12,260.,320.);
  fidCut1stYear->DoCTSFiducialCut(kTRUE) ;
  fidCut1stYear->SetSimpleCTSFiducialCut(0.8,0.,360.);    
  anacorrhadron->SetPtCutRange(0.5,50);
  anacorrhadron->SetDeltaPhiCutRange(1.5,4.5);
  anacorrhadron->SetMultiplicity(80, 120);
  anacorrhadron->SetMultiBin(1);
  anacorrhadron->SwitchOffNeutralCorr();
  anacorrhadron->SwitchOffEventSelection();
  anacorrhadron->SwitchOnSeveralUECalculation();
  anacorrhadron->SetUeDeltaPhiCutRange(TMath::Pi()/3, 2*TMath::Pi()/3);
  anacorrhadron->SelectIsolated(kFALSE); // do correlation with isolated photons
  if(kUseKinematics) anacorrhadron->SwitchOnDataMC() ;//Access MC stack and fill more histograms
  else  anacorrhadron->SwitchOffDataMC() ;
  //if(calorimeter=="PHOS"){
  //Correlate with particles in EMCAL
  //anacorrhadron->SwitchOnCaloPID();
  //anacorrhadron->SwitchOnCaloPIDRecalculation(); //recommended for EMCAL
  //}
  //Set Histograms bins and ranges
  anacorrhadron->GetHistogramRanges()->SetHistoPtRangeAndNBins(0, 50, 100) ;
  //      ana->GetHistogramRanges()->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;
  //      ana->GetHistogramRanges()->SetHistoEtaRangeAndNBins(-0.7, 0.7, 100) ;
  if(kPrintSettings) anacorrhadron->Print("");
  
  
  
  // ### Isolation analysis ###	
  AliAnaParticleIsolation *anaisol = new AliAnaParticleIsolation();
  anaisol->SetDebug(-1);
  anaisol->SetMinPt(2.0);
  anaisol->SetInputAODName(Form("Triggers%s",calorimeter.Data()));
  anaisol->AddToHistogramsName("AnaIsolTrig_");
  anaisol->SetCalorimeter(calorimeter);
  if(kUseKinematics) anaisol->SwitchOnDataMC() ;//Access MC stack and fill more histograms
  else  anaisol->SwitchOffDataMC() ;
  //Select clusters with no pair, if both clusters with pi0 mass
  anaisol->SwitchOffInvariantMass();
  //anaisol->SetNeutralMesonSelection(nms);
  //Do isolation cut
  anaisol->SetIsolationCut(ic);	
  //Do or not do isolation with previously produced AODs.
  //No effect if use of SwitchOnSeveralIsolation()
  anaisol->SwitchOffReIsolation();
  //Multiple IC
  anaisol->SwitchOffSeveralIsolation() ;
  //Set Histograms bins and ranges
  anaisol->GetHistogramRanges()->SetHistoPtRangeAndNBins(0, 50, 100) ;
  //      ana->GetHistogramRanges()->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;
  //      ana->GetHistogramRanges()->SetHistoEtaRangeAndNBins(-0.7, 0.7, 100) ;
  
  if(kPrintSettings) anaisol->Print("");
  
  // -------------------------------------------------
  // ---  Correlation Analysis with isolated triggers ---
  // -------------------------------------------------
  // ### Correlation with hadrons
  AliAnaParticleHadronCorrelation *anacorrisohadron = new AliAnaParticleHadronCorrelation();
  anacorrisohadron->SetInputAODName(Form("Triggers%s",calorimeter.Data()));
  anacorrisohadron->AddToHistogramsName("AnaHadronCorrIsoTrig_");
  anacorrisohadron->SetDebug(-1);
  anacorrisohadron->SwitchOffCaloPID();
  anacorrisohadron->SwitchOnFiducialCut();
  AliFiducialCut * fidCut1stYear = anacorrisohadron->GetFiducialCut();
  fidCut1stYear->DoEMCALFiducialCut(kTRUE) ;
  fidCut1stYear->DoPHOSFiducialCut(kTRUE) ;
  fidCut1stYear->SetSimpleEMCALFiducialCut(0.7,80.,120.);
  fidCut1stYear->SetSimplePHOSFiducialCut(0.12,260.,320.);
  fidCut1stYear->DoCTSFiducialCut(kTRUE) ;
  fidCut1stYear->SetSimpleCTSFiducialCut(0.8,0.,360.);    
  anacorrisohadron->SetPtCutRange(0.5,50);
  anacorrisohadron->SetDeltaPhiCutRange(1.5,4.5);
  anacorrisohadron->SetMultiplicity(80, 100);
  anacorrisohadron->SetMultiBin(1);
  anacorrisohadron->SwitchOffNeutralCorr();
  anacorrisohadron->SwitchOffEventSelection();
  anacorrisohadron->SwitchOnSeveralUECalculation();
  anacorrisohadron->SetUeDeltaPhiCutRange(TMath::Pi()/3, 2*TMath::Pi()/3);
  anacorrisohadron->SelectIsolated(kTRUE); // do correlation with isolated photons
  if(kUseKinematics) anacorrisohadron->SwitchOnDataMC() ;//Access MC stack and fill more histograms
  else  anacorrisohadron->SwitchOffDataMC() ;
  //if(calorimeter=="PHOS"){
  //Correlate with particles in EMCAL
  //anacorrhadron->SwitchOnCaloPID();
  //anacorrhadron->SwitchOnCaloPIDRecalculation(); //recommended for EMCAL
  //}
  //Set Histograms bins and ranges
  anacorrisohadron->GetHistogramRanges()->SetHistoPtRangeAndNBins(0, 50, 100) ;
  //      ana->GetHistogramRanges()->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 100) ;
  //      ana->GetHistogramRanges()->SetHistoEtaRangeAndNBins(-0.7, 0.7, 100) ;
  if(kPrintSettings) anacorrisohadron->Print("");
  
  // #### Configure Maker ####
  AliAnaCaloTrackCorrMaker * maker = new AliAnaCaloTrackCorrMaker();
  maker->SetReader(reader);//pointer to reader
  Int_t n = 0;//Analysis number, order is important
  // Particle selection analysis
  if(calorimeter=="PHOS" || calorimeter=="EMCAL") {   
    maker->SetCaloUtils(cu);  //pointer to calorimeter utils
    maker->AddAnalysis(anaphoton,n++);
    maker->AddAnalysis(anapi0,n++);
    maker->AddAnalysis(anapi0ebe,n++);
    maker->AddAnalysis(anacorrhadronpi0,n++);
    maker->AddAnalysis(anaisolpi0,n++);
    maker->AddAnalysis(anacorrhadronisopi0,n++);
  }
   if(calorimeter=="CTS") 
     maker->AddAnalysis(anacharge,n++);
  // Correlation analysis
  maker->AddAnalysis(anacorrhadron,n++);
  // Isolation analysis
  maker->AddAnalysis(anaisol,n++);
  // Correlation analysis with isolated triggers
  maker->AddAnalysis(anacorrisohadron,n);
  maker->SetAnaDebug(-1)  ;
  maker->SwitchOnHistogramsMaker()  ;
  if(data.Contains("delta")) maker->SwitchOffAODsMaker()  ;
  else                       maker->SwitchOnAODsMaker()  ;
	
  if(kPrintSettings) maker->Print("");
  
  printf("======================== \n");
  printf(" End Configuration of CaloTrackCorr analysis with detector %s \n",calorimeter.Data());
  printf("======================== \n");
  
  // Create task
  //===========================================================================
 // AliAnalysisTaskCaloTrackCorrelationM * task = new AliAnalysisTaskCaloTrackCorrelationM(Form("CaloTrackCorr%s",calorimeter.Data()));
  AliAnalysisTaskCaloTrackCorrelationM * task = new AliAnalysisTaskCaloTrackCorrelationM("CaloTrackCorr");
  task->SetConfigFileName(""); //Don't configure the analysis via configuration file.
  //task->SetDebugLevel(-1);
  task->SetAnalysisMaker(maker);
  //if(!kSimulation)task->SelectCollisionCandidates(); //AliPhysicsSelection has to be attached before.
  mgr->AddTask(task);
  
//  char name[128];
//  sprintf(name,"CaloTrackCorr_%s",calorimeter.Data());
//  cout<<"Name of task "<<name<<endl;
  //AliAnalysisDataContainer *cout_pc = mgr->CreateContainer(Form(name),TList::Class(),
  //					   AliAnalysisManager::kOutputContainer, Form("CaloTrackCorr_%s.root",calorimeter.Data()));
  
  TString outputfile = AliAnalysisManager::GetCommonFileName(); 
  outputfile.ReplaceAll(".root","") ;
  outputfile.Append("M.root") ;  
  //  AliAnalysisDataContainer *cout_pc = mgr->CreateContainer(Form("CaloTrackCorr_%s",calorimeter.Data()),  TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:CaloTrackCorr_%s",outputfile.Data(),calorimeter.Data()));
  AliAnalysisDataContainer *cout_pc   = mgr->CreateContainer(calorimeter.Data(), TList::Class(),
                                                             AliAnalysisManager::kOutputContainer,
                                                             Form("%s:CaloTrackCorr",outputfile.Data()));
  
  AliAnalysisDataContainer *cout_cuts = mgr->CreateContainer(Form("%sCuts",calorimeter.Data()), TList::Class(),
                                                             AliAnalysisManager::kParamContainer,
                                                             Form("%s:CaloTrackCorrCuts",outputfile.Data()));
  // Create ONLY the output containers for the data produced by the task.
  // Get and connect other common input/output containers via the manager as below
  //==============================================================================
  mgr->ConnectInput  (task, 0, mgr->GetCommonInputContainer());
  // AOD output slot will be used in a different way in future
 //if(!data.Contains("delta")) mgr->ConnectOutput (task, 0, mgr->GetCommonOutputContainer());
 // mgr->ConnectOutput (task, 0, mgr->GetCommonOutputContainer());
  mgr->ConnectOutput (task, 1, cout_pc);
  mgr->ConnectOutput (task, 2, cout_cuts);  
  
  return task;
}


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