ROOT logo

AliAnalysisTaskCaloTrackCorrelation *AddTaskPi0IMGammaCorrQA(const TString  calorimeter   = "EMCAL",
                                                             const Bool_t   simulation    = kFALSE,
                                                             const TString  collision     = "pp",
                                                             const TString  suffix        = "default",
                                                             const Bool_t   qaan          = kFALSE,
                                                             const Bool_t   hadronan      = kFALSE,
                                                             const Int_t    minCen        = -1,
                                                             const Int_t    maxCen        = -1,
                                                             const Int_t    debugLevel    = -1
                                                          )
{
  // Creates a CaloTrackCorr task, configures it and adds it to the analysis manager.
  
  
  if(simulation && !suffix.Contains("default"))
  {
    printf("AddTaskPi0IMGammaCorrQA - CAREFUL : Triggered events not checked in simulation!! \n");
    return 0x0;
  }

  // Get the pointer to the existing analysis manager via the static access method.
  
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) 
  {
    ::Error("AddTaskPi0IMGammaCorrQA", "No analysis manager to connect to.");
    return NULL;
  }  
  
  // Check the analysis type using the event handlers connected to the analysis manager.
  
  if (!mgr->GetInputEventHandler()) 
  {
    ::Error("AddTaskPi0IMGammaCorrQA", "This task requires an input event handler");
    return NULL;
  }
  
  // Make sure the B field is enabled for track selection, some cuts need it
  ((AliInputEventHandler*)mgr->GetInputEventHandler())->SetNeedField(kTRUE);
  
  TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
  
  // Name for containers
  
  TString containerName = Form("%s_%s",calorimeter.Data(), suffix.Data());
  
  if(collision!="pp" && maxCen>=0) containerName+=Form("Cen%d_%d",minCen,maxCen);
    
  printf("AddTaskPi0IMGammaCorrQA - Container NAME: %s \n",containerName.Data());
  
  // #### Configure analysis ####
    
  AliAnaCaloTrackCorrMaker * maker = new AliAnaCaloTrackCorrMaker();

  // General frame setting and configuration
  maker->SetReader   ( ConfigureReader   (inputDataType,collision,minCen,maxCen,simulation,debugLevel) );
  maker->SetCaloUtils( ConfigureCaloUtils(calorimeter,simulation,debugLevel) );
  
  // Analysis tasks setting and configuration
  Int_t n = 0;//Analysis number, order is important
  
  // Photon analysis
  maker->AddAnalysis(ConfigurePhotonAnalysis(calorimeter,collision,containerName,simulation     ,debugLevel), n++); // Photon cluster selection
  maker->AddAnalysis(ConfigurePi0Analysis   (calorimeter,collision,containerName,simulation,qaan,debugLevel) ,n++); // Previous photon invariant mass

  if(hadronan)
  {
    maker->GetReader()->SwitchOnCTS();
    maker->AddAnalysis(ConfigureChargedAnalysis(collision,containerName,simulation,debugLevel), n++); // charged tracks plots
    maker->AddAnalysis(ConfigureHadronCorrelationAnalysis("Photon",calorimeter,collision,containerName,simulation,debugLevel), n++); // Gamma hadron correlation
  }
  
  if(qaan) maker->AddAnalysis(ConfigureQAAnalysis(calorimeter,collision,simulation,debugLevel),n++);
  
  maker->SetAnaDebug(debugLevel)  ;
  maker->SwitchOnHistogramsMaker()  ;
  maker->SwitchOnAODsMaker() ;
  maker->SwitchOffDataControlHistograms();
  if(suffix.Contains("EMC"))
    maker->SwitchOnDataControlHistograms();

  if(debugLevel > 0) maker->Print("");
  
  // Create task
  
  TString taskName =Form("Pi0IM_GammaTrackCorr_%s",containerName.Data());
  
  AliAnalysisTaskCaloTrackCorrelation * task = new AliAnalysisTaskCaloTrackCorrelation (taskName);
  task->SetConfigFileName(""); //Don't configure the analysis via configuration file.
  task->SetDebugLevel(debugLevel);
  //task->SetBranches("ESD:AliESDRun.,AliESDHeader");
  //task->SetBranches("AOD:header,tracks,vertices,emcalCells,caloClusters");
  task->SetAnalysisMaker(maker);
  mgr->AddTask(task);
  
  //Create containers
  
  TString outputfile = AliAnalysisManager::GetCommonFileName();
  
  AliAnalysisDataContainer *cout_pc   = mgr->CreateContainer(taskName, TList::Class(),
                                                             AliAnalysisManager::kOutputContainer, 
                                                             Form("%s:%s",outputfile.Data(),taskName.Data()));
	
  AliAnalysisDataContainer *cout_cuts = mgr->CreateContainer(Form("Param_%s",taskName.Data()), TList::Class(),
                                                             AliAnalysisManager::kParamContainer, 
                                                             Form("%s_Parameters.root",taskName.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());
  mgr->ConnectOutput (task, 1, cout_pc);
  mgr->ConnectOutput (task, 2, cout_cuts);
  
  return task;
}

//___________________________________________________________________________
AliCaloTrackReader * ConfigureReader(TString inputDataType, TString collision,
                                     Int_t   minCen,        Int_t maxCen,
                                     Bool_t  simulation,    Int_t debugLevel)
{
  
  AliCaloTrackReader * reader = 0;
  if     (inputDataType=="AOD")
    reader = new AliCaloTrackAODReader();
  else if(inputDataType=="ESD")
    reader = new AliCaloTrackESDReader();
  else 
    printf("AliCaloTrackReader::ConfigureReader() - Data combination not known input Data=%s\n",
           inputDataType.Data());
  
  reader->SetDebug(debugLevel);//10 for lots of messages

  // MC settings
  if(simulation)
  {
    if(inputDataType == "ESD")
    {
      reader->SwitchOnStack();
      reader->SwitchOffAODMCParticles();
    }
    else if(inputDataType == "AOD")
    {
      reader->SwitchOffStack();
      reader->SwitchOnAODMCParticles();
    }
  }
  
  //------------------------
  // Detector input filling
  //------------------------
  
  //Min cluster/track E
  reader->SetEMCALEMin(0.3); 
  reader->SetEMCALEMax(1000); 
  reader->SetPHOSEMin(0.3);
  reader->SetPHOSEMax(1000);
  reader->SetCTSPtMin(0.2);
  reader->SetCTSPtMax(1000);

  // Time cut off
  reader->SwitchOffUseTrackTimeCut();
  reader->SwitchOffUseParametrizedTimeCut();
  reader->SwitchOffUseEMCALTimeCut() ;
  reader->SetEMCALTimeCut(-1e10,1e10); // Open time cut
  reader->SetTrackTimeCut(-1e10,1e10);

  reader->SwitchOnFiducialCut();
  
  // Tracks
  reader->SwitchOffCTS();
  reader->SwitchOffRejectNoTrackEvents();
  reader->SwitchOffRecalculateVertexBC();
  reader->SwitchOffVertexBCEventSelection();
  reader->SwitchOffUseTrackDCACut();
  //reader->SetTrackDCACut(0,0.0105);
  //reader->SetTrackDCACut(1,0.035);
  //reader->SetTrackDCACut(2,1.1);
  
  if(inputDataType=="ESD")
  {
    gROOT->LoadMacro("$ALICE_ROOT/PWGJE/macros/CreateTrackCutsPWGJE.C");
//    if(year > 2010)
//    {
      //Hybrids 2011
      AliESDtrackCuts * esdTrackCuts  = CreateTrackCutsPWGJE(10001008);
      reader->SetTrackCuts(esdTrackCuts);
      AliESDtrackCuts * esdTrackCuts2 = CreateTrackCutsPWGJE(10011008);
      reader->SetTrackComplementaryCuts(esdTrackCuts2);
//    }
//    else
//    {
//      //Hybrids 2010
//      AliESDtrackCuts * esdTrackCuts  = CreateTrackCutsPWGJE(10001006);
//      reader->SetTrackCuts(esdTrackCuts);
//      AliESDtrackCuts * esdTrackCuts2 = CreateTrackCutsPWGJE(10041006);
//      reader->SetTrackComplementaryCuts(esdTrackCuts2);
//    }
  }
  else if(inputDataType=="AOD")
  {
    reader->SwitchOnAODHybridTrackSelection(); // Check that the AODs have Hybrids!!!!
    reader->SetTrackStatus(AliVTrack::kITSrefit);    
  }
  
  // Calorimeter
  
  reader->SetEMCALClusterListName("");
  reader->SwitchOffClusterRecalculation();
  
  reader->SwitchOnEMCALCells();
  reader->SwitchOnEMCAL();

  reader->SwitchOnPHOSCells();
  reader->SwitchOnPHOS();
  
  //-----------------
  // Event selection
  //-----------------
  
  reader->SwitchOnEventTriggerAtSE();
  
  reader->SetZvertexCut(10.);
  reader->SwitchOnPrimaryVertexSelection(); // and besides primary vertex
  reader->SwitchOffPileUpEventRejection();  // remove pileup
  reader->SwitchOffV0ANDSelection() ;       // and besides v0 AND
  
  if(collision=="PbPb")
  {
    reader->SetCentralityBin(minCen,maxCen); // Accept all events, if not select range
    reader->SetCentralityOpt(100);  // 10 (c= 0-10, 10-20 ...), 20  (c= 0-5, 5-10 ...) or 100 (c= 1, 2, 3 ..)
  }
  
  if(debugLevel > 0) reader->Print("");
  
  return reader;
  
}

//_______________________________________________________________________________________________
AliCalorimeterUtils* ConfigureCaloUtils(TString calorimeter, Bool_t simulation, Int_t debugLevel)
{
  
  AliCalorimeterUtils *cu = new AliCalorimeterUtils;
  cu->SetDebug(debugLevel);
  
  // Remove clusters close to borders, at least max energy cell is 1 cell away 
  cu->SetNumberOfCellsFromEMCALBorder(1);
  cu->SetNumberOfCellsFromPHOSBorder(2);
  
  // Search of local maxima in cluster
  cu->SetLocalMaximaCutE(0.1);
  cu->SetLocalMaximaCutEDiff(0.03);

  cu->SwitchOffClusterPlot();
  cu->SwitchOffRecalculateClusterTrackMatching();
  
  cu->SwitchOnBadChannelsRemoval() ;
  
  //EMCAL settings

  if(!simulation)
    cu->SwitchOnLoadOwnEMCALGeometryMatrices();
  
  AliEMCALRecoUtils * recou = cu->GetEMCALRecoUtils();
  cu->SwitchOffRecalibration(); // Check the reader if it is taken into account during filtering
  cu->SwitchOffRunDepCorrection();

  gROOT->LoadMacro("$ALICE_ROOT/PWGGA/EMCALTasks/macros/ConfigureEMCALRecoUtils.C");
  ConfigureEMCALRecoUtils(recou,
                          simulation,
                          kTRUE,//kExotic,
                          kTRUE,//kNonLinearity,
                          kFALSE,//kCalibE,
                          kTRUE,//kBadMap,
                          kFALSE);//kCalibT
  recou->SetExoticCellDiffTimeCut(50.);

  cu->SwitchOnCorrectClusterLinearity();

  if(calorimeter=="PHOS")
    cu->SetNumberOfSuperModulesUsed(3);
  else
    cu->SetNumberOfSuperModulesUsed(10);
  
  // PHOS 
  cu->SwitchOffLoadOwnPHOSGeometryMatrices();
    
  if(debugLevel > 0) cu->Print("");
  
  return cu;
  
}

//_______________________________________________________________________________
AliAnaPhoton* ConfigurePhotonAnalysis(TString calorimeter, TString collision,
                                      TString containerName,
                                      Bool_t simulation, Int_t debugLevel)
{
  
  AliAnaPhoton *ana = new AliAnaPhoton();
  ana->SetDebug(debugLevel); //10 for lots of messages
  
  // cluster selection cuts
  
  ana->SwitchOffFiducialCut();

  ana->SetCalorimeter(calorimeter);
  
  if(calorimeter == "PHOS")
  {
    ana->SetNCellCut(2);// At least 3 cells
    ana->SetMinPt(0.3);
    ana->SetMinDistanceToBadChannel(2, 4, 5);
    ana->SetTimeCut(-1e10,1e10); // open cut
  }
  else 
  {//EMCAL
    ana->SetNCellCut(1);// At least 2 cells
    ana->SetMinEnergy(0.3); // avoid mip peak at E = 260 MeV
    ana->SetMaxEnergy(1000); 
    ana->SetTimeCut(-1e10,1e10); // open cut, usual time window of [425-825] ns if time recalibration is off 
    // restrict to less than 100 ns when time calibration is on 
    ana->SetMinDistanceToBadChannel(2, 4, 6); 
    // Not useful if M02 cut is already strong
    ana->SetNLMCut(1, 2) ;
  }
  
  ana->SwitchOnTrackMatchRejection() ;
  ana->SwitchOffTMHistoFill() ;

  
  //PID cuts (shower shape)
  ana->SwitchOnCaloPID(); // do PID selection, unless specified in GetCaloPID, selection not based on bayesian
  AliCaloPID* caloPID = ana->GetCaloPID();
  //Not used in bayesian
  
  //EMCAL
  caloPID->SetEMCALLambda0CutMax(0.4); // Rather open
  caloPID->SetEMCALLambda0CutMin(0.10);
  
  caloPID->SetEMCALDEtaCut(0.025);
  caloPID->SetEMCALDPhiCut(0.030);
    
  //PHOS
  caloPID->SetPHOSDispersionCut(2.5);
  caloPID->SetPHOSRCut(2.);
  
  ana->SwitchOnFillShowerShapeHistograms();  // Filled before photon shower shape selection
  //if(!simulation)ana->SwitchOnFillPileUpHistograms();

  // Input / output delta AOD settings
  ana->SetOutputAODName(Form("Photon%s",containerName.Data()));
  ana->SetOutputAODClassName("AliAODPWG4ParticleCorrelation");
  ana->SetInputAODName (Form("Photon%s",containerName.Data()));

  //Set Histograms name tag, bins and ranges
  
  ana->AddToHistogramsName("AnaPhoton_");
  SetHistoRangeAndNBins(ana->GetHistogramRanges(),calorimeter,collision); // see method below
  
  // Number of particle type MC histograms
  ana->FillNOriginHistograms(7);
  ana->FillNPrimaryHistograms(4);
  
  if(simulation) ana->SwitchOnDataMC();
  
  if(debugLevel > 0 ) ana->Print("");
  
  return ana;
  
}

//_________________________________________________________________________
AliAnaPi0* ConfigurePi0Analysis(TString calorimeter, TString collision,
                                TString containerName, Bool_t simulation,
                                Bool_t qaan, Int_t debugLevel)
{
  
  AliAnaPi0 *ana = new AliAnaPi0();
  
  ana->SetDebug(debugLevel);//10 for lots of messages
  
  // Input delta AOD settings
  ana->SetInputAODName(Form("Photon%s",containerName.Data()));
  
  // Calorimeter settings
  ana->SetCalorimeter(calorimeter);
  
  //settings for pp collision mixing
  ana->SwitchOnOwnMix(); //Off when mixing done with general mixing frame
  
  // Cuts 
  if(calorimeter=="EMCAL") ana->SetPairTimeCut(70);
  
  if     (collision == "pp"  )
  {
    ana->SetNCentrBin(1);
    ana->SetNZvertBin(10);
    ana->SetNRPBin(1);
    ana->SetNMaxEvMix(100);    
  }
  else if(collision =="PbPb")
  {
    ana->SetNCentrBin(10);
    ana->SetNZvertBin(10);
    ana->SetNRPBin(4);
    ana->SetNMaxEvMix(10);
  }
  else if(collision =="pPb")
  {
    ana->SetNCentrBin(1);
    ana->SetNZvertBin(10);
    ana->SetNRPBin(4);
    ana->SetNMaxEvMix(100);
  }

  ana->SwitchOffMultipleCutAnalysis();
  ana->SwitchOnSMCombinations();
  ana->SwitchOffFillAngleHisto();
  ana->SwitchOffFillOriginHisto();

  ana->SetNPIDBits(1);
  
  //Set Histograms name tag, bins and ranges
  
  ana->AddToHistogramsName("AnaPi0_");
  SetHistoRangeAndNBins(ana->GetHistogramRanges(),calorimeter,collision); // see method below

  if(simulation) ana->SwitchOnDataMC();

  if(debugLevel > 0) ana->Print("");
  
  return ana;
  
}

//___________________________________________________________________________________
AliAnaChargedParticles* ConfigureChargedAnalysis(TString collision,TString containerName,
                                                 Bool_t simulation, Int_t debugLevel)
{
  
  AliAnaChargedParticles *ana = new AliAnaChargedParticles();
  ana->SetDebug(debugLevel); //10 for lots of messages
  
  // selection cuts
  
  ana->SetMinPt(0.5);
  ana->SwitchOnFiducialCut();
  ana->GetFiducialCut()->SetSimpleCTSFiducialCut(0.8, 0, 360) ; //more restrictive cut in reader and after in isolation
  
  ana->SwitchOffFillVertexBC0Histograms() ;
  //if(!simulation) ana->SwitchOnFillPileUpHistograms();
  
  // Input / output delta AOD settings
  
  ana->SetOutputAODName(Form("Hadron%s",containerName.Data()));
  ana->SetOutputAODClassName("AliAODPWG4ParticleCorrelation");
  ana->SetInputAODName(Form("Hadron%s",containerName.Data()));

  //Set Histograms name tag, bins and ranges
  
  ana->AddToHistogramsName("AnaHadrons_");
  SetHistoRangeAndNBins(ana->GetHistogramRanges(),"",collision); // see method below
  
  ana->GetHistogramRanges()->SetHistoPhiRangeAndNBins(0, TMath::TwoPi(), 200) ;
  ana->GetHistogramRanges()->SetHistoEtaRangeAndNBins(-1.5, 1.5, 300) ;
  
  if(debugLevel > 0) ana->Print("");
  
  return ana;
  
}

//__________________________________________________________________________________________________________
AliAnaParticleHadronCorrelation* ConfigureHadronCorrelationAnalysis(TString particle,  TString calorimeter,
                                                                    TString collision, TString containerName,
                                                                    Bool_t simulation, Int_t debugLevel)
{
  
  AliAnaParticleHadronCorrelation *ana = new AliAnaParticleHadronCorrelation();
  ana->SetDebug(debugLevel);
  
  ana->SetTriggerPtRange(5,100);
  ana->SetAssociatedPtRange(0.2,100);
  //ana->SetDeltaPhiCutRange( TMath::Pi()/2,3*TMath::Pi()/2 ); //[90 deg, 270 deg]
  ana->SetDeltaPhiCutRange  (TMath::DegToRad()*120.,TMath::DegToRad()*240.);
  ana->SetUeDeltaPhiCutRange(TMath::DegToRad()*60. ,TMath::DegToRad()*120.);
  ana->SwitchOffFillEtaGapHistograms();

  ana->SetNAssocPtBins(4);
  ana->SetAssocPtBinLimit(0, 0.5) ;
  ana->SetAssocPtBinLimit(1, 2) ;
  ana->SetAssocPtBinLimit(2, 5) ;
  ana->SetAssocPtBinLimit(3, 10) ;
  ana->SetAssocPtBinLimit(4, 20) ;

  ana->SelectIsolated(kFALSE); // do correlation with isolated photons

  //if(!simulation) ana->SwitchOnFillPileUpHistograms();
  
  ana->SwitchOnAbsoluteLeading();  // Select trigger leading particle of all the selected tracks
  ana->SwitchOffNearSideLeading(); // Select trigger leading particle of all the particles at +-90 degrees, default
  
  //ana->SwitchOnLeadHadronSelection();
  //ana->SetLeadHadronPhiCut(TMath::DegToRad()*100., TMath::DegToRad()*260.);
  //ana->SetLeadHadronPtCut(0.5, 100);

  
  // Mixing with own pool
  ana->SwitchOffOwnMix();
  
  ana->SetNZvertBin(20);
  ana->SwitchOffCorrelationVzBin() ;
  ana->SwitchOffFillHighMultiplicityHistograms();
  
  if(collision=="pp")
  {
    ana->SetNMaxEvMix(100);    
    ana->SwitchOnTrackMultBins();
    ana->SetNTrackMultBin(10); // same as SetNCentrBin(10);
    ana->SetNRPBin(1);
  }
  else 
  {
    ana->SetNMaxEvMix(10);    
    ana->SwitchOffTrackMultBins(); // centrality bins
    ana->SetNCentrBin(10); 
    ana->SetNRPBin(3);
  }
  
  // Input / output delta AOD settings
  
  ana->SetInputAODName(Form("%s%s",particle.Data(),containerName.Data()));
  ana->SetAODObjArrayName(Form("%sHadronCorr_%s",particle.Data(),containerName.Data()));
  
  ana->SwitchOffPi0TriggerDecayCorr();
  ana->SwitchOffDecayTriggerDecayCorr();
  ana->SwitchOffNeutralCorr(); // Do only correlation with TPC
  ana->SwitchOffHMPIDCorrelation();
  ana->SwitchOffFillBradHistograms();
  
  // Underlying event
  ana->SwitchOffSeveralUECalculation();
  ana->SetUeDeltaPhiCutRange(TMath::Pi()/3, 2*TMath::Pi()/3);
  
  //Set Histograms name tag, bins and ranges
  
  ana->AddToHistogramsName(Form("Ana%sHadronCorr_",particle.Data()));
  SetHistoRangeAndNBins(ana->GetHistogramRanges(),calorimeter, collision); // see method below
  
  if(simulation) ana->SwitchOnDataMC();
  
  if(debugLevel > 0) ana->Print("");
 
  return ana;
  
}

//________________________________________________________________________________
AliAnaCalorimeterQA* ConfigureQAAnalysis(TString calorimeter,  TString collision,
                                         Bool_t simulation,    Int_t debugLevel)
{
  
  AliAnaCalorimeterQA *ana = new AliAnaCalorimeterQA();
  ana->SetDebug(debugLevel); //10 for lots of messages
  ana->SetCalorimeter(calorimeter);
  
  ana->SetTimeCut(-1e10,1e10); // Open time cut
  ana->SwitchOnCorrelation();
  ana->SwitchOffStudyBadClusters() ;
  ana->SwitchOffFiducialCut();
  ana->SwitchOffFillAllTH3Histogram();
  ana->SwitchOffFillAllPositionHistogram();
  ana->SwitchOffFillAllPositionHistogram2();
  ana->SwitchOffStudyBadClusters();
  ana->SwitchOffStudyClustersAsymmetry();
  ana->SwitchOffStudyWeight();
  ana->SwitchOnFillAllTrackMatchingHistogram();
  ana->SwitchOnFillAllCellTimeHisto() ;
  
  ana->AddToHistogramsName("QA_"); //Begining of histograms name
  SetHistoRangeAndNBins(ana->GetHistogramRanges(),calorimeter, collision); // see method below
  
  if(simulation) ana->SwitchOnDataMC();
  
  if(debugLevel > 0) ana->Print("");
  
  return ana;
  
}


//________________________________________________________
void SetHistoRangeAndNBins (AliHistogramRanges* histoRanges,
                            TString calorimeter, TString collision)
{
  // Set common bins for all analysis and MC histograms filling
    
  histoRanges->SetHistoPtRangeAndNBins(0, 100, 200) ; // Energy and pt histograms
  
  if(calorimeter=="EMCAL")
  {
//    if(year==2010)
//    {
//      histoRanges->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 122*TMath::DegToRad(), 78) ;
//      histoRanges->SetHistoXRangeAndNBins(-230,90,120); // QA
//      histoRanges->SetHistoYRangeAndNBins(370,450,40);  // QA
//    }
//    else if(year==2011)
//    {           
//      histoRanges->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 182*TMath::DegToRad(), 108) ;
//      histoRanges->SetHistoXRangeAndNBins(-600,90,200); // QA
//      histoRanges->SetHistoYRangeAndNBins(100,450,100); // QA
//    }
//    else
    {
      histoRanges->SetHistoPhiRangeAndNBins(78*TMath::DegToRad(), 190*TMath::DegToRad(), 122) ;
      histoRanges->SetHistoXRangeAndNBins(-100,90,200); // QA
      histoRanges->SetHistoYRangeAndNBins(50,450,100);  // QA
    }

    histoRanges->SetHistoEtaRangeAndNBins(-0.72, 0.72, 144) ;
  }
  else
  {
    histoRanges->SetHistoPhiRangeAndNBins(260*TMath::DegToRad(), 320*TMath::DegToRad(), 60) ;
    histoRanges->SetHistoEtaRangeAndNBins(-0.13, 0.13, 130) ;
  }
  
  histoRanges->SetHistoShowerShapeRangeAndNBins(-0.1, 4.9, 500);
  
  // Invariant mass histoRangeslysis
  histoRanges->SetHistoMassRangeAndNBins(0., 1., 200) ;
  histoRanges->SetHistoAsymmetryRangeAndNBins(0., 1. , 100) ;
  
  // check if time calibration is on
  histoRanges->SetHistoTimeRangeAndNBins(-1000.,1000,500);
  //histoRanges->SetHistoTimeRangeAndNBins(-400.,400,400);
  histoRanges->SetHistoDiffTimeRangeAndNBins(-200, 200, 800);
  
  // track-cluster residuals
  histoRanges->SetHistoTrackResidualEtaRangeAndNBins(-0.15,0.15,300);
  histoRanges->SetHistoTrackResidualPhiRangeAndNBins(-0.15,0.15,300);
  histoRanges->SetHistodRRangeAndNBins(0.,0.15,150);//QA

  // QA, electron, charged
  histoRanges->SetHistoPOverERangeAndNBins(0,  2. ,200);
  histoRanges->SetHistodEdxRangeAndNBins  (0.,200.0,200);
  
  // QA
  histoRanges->SetHistoFinePtRangeAndNBins(0, 10, 200) ; // bining for fhAmpId
  histoRanges->SetHistoVertexDistRangeAndNBins(0.,500.,500);
  histoRanges->SetHistoZRangeAndNBins(-400,400,200);
  histoRanges->SetHistoRRangeAndNBins(400,450,25);
  histoRanges->SetHistoV0SignalRangeAndNBins(0,5000,500);
  histoRanges->SetHistoV0MultiplicityRangeAndNBins(0,5000,500);
  
  // QA, correlation
  if(collision=="PbPb")
  {
    histoRanges->SetHistoNClusterCellRangeAndNBins(0,100,100);
    histoRanges->SetHistoNClustersRangeAndNBins(0,500,50);
    histoRanges->SetHistoTrackMultiplicityRangeAndNBins(0,2000,200);
  }
  else
  {
    histoRanges->SetHistoNClusterCellRangeAndNBins(0,50,50);
    histoRanges->SetHistoNClustersRangeAndNBins(0,50,50);
    histoRanges->SetHistoTrackMultiplicityRangeAndNBins(0,200,200);
  }

  // xE, zT
  histoRanges->SetHistoRatioRangeAndNBins(0.,2.,200);
  histoRanges->SetHistoHBPRangeAndNBins  (0.,10.,200);
  
  // Isolation
  histoRanges->SetHistoPtInConeRangeAndNBins(0, 50 , 250);
  histoRanges->SetHistoPtSumRangeAndNBins   (0, 100, 250);
  
}

 AddTaskPi0IMGammaCorrQA.C:1
 AddTaskPi0IMGammaCorrQA.C:2
 AddTaskPi0IMGammaCorrQA.C:3
 AddTaskPi0IMGammaCorrQA.C:4
 AddTaskPi0IMGammaCorrQA.C:5
 AddTaskPi0IMGammaCorrQA.C:6
 AddTaskPi0IMGammaCorrQA.C:7
 AddTaskPi0IMGammaCorrQA.C:8
 AddTaskPi0IMGammaCorrQA.C:9
 AddTaskPi0IMGammaCorrQA.C:10
 AddTaskPi0IMGammaCorrQA.C:11
 AddTaskPi0IMGammaCorrQA.C:12
 AddTaskPi0IMGammaCorrQA.C:13
 AddTaskPi0IMGammaCorrQA.C:14
 AddTaskPi0IMGammaCorrQA.C:15
 AddTaskPi0IMGammaCorrQA.C:16
 AddTaskPi0IMGammaCorrQA.C:17
 AddTaskPi0IMGammaCorrQA.C:18
 AddTaskPi0IMGammaCorrQA.C:19
 AddTaskPi0IMGammaCorrQA.C:20
 AddTaskPi0IMGammaCorrQA.C:21
 AddTaskPi0IMGammaCorrQA.C:22
 AddTaskPi0IMGammaCorrQA.C:23
 AddTaskPi0IMGammaCorrQA.C:24
 AddTaskPi0IMGammaCorrQA.C:25
 AddTaskPi0IMGammaCorrQA.C:26
 AddTaskPi0IMGammaCorrQA.C:27
 AddTaskPi0IMGammaCorrQA.C:28
 AddTaskPi0IMGammaCorrQA.C:29
 AddTaskPi0IMGammaCorrQA.C:30
 AddTaskPi0IMGammaCorrQA.C:31
 AddTaskPi0IMGammaCorrQA.C:32
 AddTaskPi0IMGammaCorrQA.C:33
 AddTaskPi0IMGammaCorrQA.C:34
 AddTaskPi0IMGammaCorrQA.C:35
 AddTaskPi0IMGammaCorrQA.C:36
 AddTaskPi0IMGammaCorrQA.C:37
 AddTaskPi0IMGammaCorrQA.C:38
 AddTaskPi0IMGammaCorrQA.C:39
 AddTaskPi0IMGammaCorrQA.C:40
 AddTaskPi0IMGammaCorrQA.C:41
 AddTaskPi0IMGammaCorrQA.C:42
 AddTaskPi0IMGammaCorrQA.C:43
 AddTaskPi0IMGammaCorrQA.C:44
 AddTaskPi0IMGammaCorrQA.C:45
 AddTaskPi0IMGammaCorrQA.C:46
 AddTaskPi0IMGammaCorrQA.C:47
 AddTaskPi0IMGammaCorrQA.C:48
 AddTaskPi0IMGammaCorrQA.C:49
 AddTaskPi0IMGammaCorrQA.C:50
 AddTaskPi0IMGammaCorrQA.C:51
 AddTaskPi0IMGammaCorrQA.C:52
 AddTaskPi0IMGammaCorrQA.C:53
 AddTaskPi0IMGammaCorrQA.C:54
 AddTaskPi0IMGammaCorrQA.C:55
 AddTaskPi0IMGammaCorrQA.C:56
 AddTaskPi0IMGammaCorrQA.C:57
 AddTaskPi0IMGammaCorrQA.C:58
 AddTaskPi0IMGammaCorrQA.C:59
 AddTaskPi0IMGammaCorrQA.C:60
 AddTaskPi0IMGammaCorrQA.C:61
 AddTaskPi0IMGammaCorrQA.C:62
 AddTaskPi0IMGammaCorrQA.C:63
 AddTaskPi0IMGammaCorrQA.C:64
 AddTaskPi0IMGammaCorrQA.C:65
 AddTaskPi0IMGammaCorrQA.C:66
 AddTaskPi0IMGammaCorrQA.C:67
 AddTaskPi0IMGammaCorrQA.C:68
 AddTaskPi0IMGammaCorrQA.C:69
 AddTaskPi0IMGammaCorrQA.C:70
 AddTaskPi0IMGammaCorrQA.C:71
 AddTaskPi0IMGammaCorrQA.C:72
 AddTaskPi0IMGammaCorrQA.C:73
 AddTaskPi0IMGammaCorrQA.C:74
 AddTaskPi0IMGammaCorrQA.C:75
 AddTaskPi0IMGammaCorrQA.C:76
 AddTaskPi0IMGammaCorrQA.C:77
 AddTaskPi0IMGammaCorrQA.C:78
 AddTaskPi0IMGammaCorrQA.C:79
 AddTaskPi0IMGammaCorrQA.C:80
 AddTaskPi0IMGammaCorrQA.C:81
 AddTaskPi0IMGammaCorrQA.C:82
 AddTaskPi0IMGammaCorrQA.C:83
 AddTaskPi0IMGammaCorrQA.C:84
 AddTaskPi0IMGammaCorrQA.C:85
 AddTaskPi0IMGammaCorrQA.C:86
 AddTaskPi0IMGammaCorrQA.C:87
 AddTaskPi0IMGammaCorrQA.C:88
 AddTaskPi0IMGammaCorrQA.C:89
 AddTaskPi0IMGammaCorrQA.C:90
 AddTaskPi0IMGammaCorrQA.C:91
 AddTaskPi0IMGammaCorrQA.C:92
 AddTaskPi0IMGammaCorrQA.C:93
 AddTaskPi0IMGammaCorrQA.C:94
 AddTaskPi0IMGammaCorrQA.C:95
 AddTaskPi0IMGammaCorrQA.C:96
 AddTaskPi0IMGammaCorrQA.C:97
 AddTaskPi0IMGammaCorrQA.C:98
 AddTaskPi0IMGammaCorrQA.C:99
 AddTaskPi0IMGammaCorrQA.C:100
 AddTaskPi0IMGammaCorrQA.C:101
 AddTaskPi0IMGammaCorrQA.C:102
 AddTaskPi0IMGammaCorrQA.C:103
 AddTaskPi0IMGammaCorrQA.C:104
 AddTaskPi0IMGammaCorrQA.C:105
 AddTaskPi0IMGammaCorrQA.C:106
 AddTaskPi0IMGammaCorrQA.C:107
 AddTaskPi0IMGammaCorrQA.C:108
 AddTaskPi0IMGammaCorrQA.C:109
 AddTaskPi0IMGammaCorrQA.C:110
 AddTaskPi0IMGammaCorrQA.C:111
 AddTaskPi0IMGammaCorrQA.C:112
 AddTaskPi0IMGammaCorrQA.C:113
 AddTaskPi0IMGammaCorrQA.C:114
 AddTaskPi0IMGammaCorrQA.C:115
 AddTaskPi0IMGammaCorrQA.C:116
 AddTaskPi0IMGammaCorrQA.C:117
 AddTaskPi0IMGammaCorrQA.C:118
 AddTaskPi0IMGammaCorrQA.C:119
 AddTaskPi0IMGammaCorrQA.C:120
 AddTaskPi0IMGammaCorrQA.C:121
 AddTaskPi0IMGammaCorrQA.C:122
 AddTaskPi0IMGammaCorrQA.C:123
 AddTaskPi0IMGammaCorrQA.C:124
 AddTaskPi0IMGammaCorrQA.C:125
 AddTaskPi0IMGammaCorrQA.C:126
 AddTaskPi0IMGammaCorrQA.C:127
 AddTaskPi0IMGammaCorrQA.C:128
 AddTaskPi0IMGammaCorrQA.C:129
 AddTaskPi0IMGammaCorrQA.C:130
 AddTaskPi0IMGammaCorrQA.C:131
 AddTaskPi0IMGammaCorrQA.C:132
 AddTaskPi0IMGammaCorrQA.C:133
 AddTaskPi0IMGammaCorrQA.C:134
 AddTaskPi0IMGammaCorrQA.C:135
 AddTaskPi0IMGammaCorrQA.C:136
 AddTaskPi0IMGammaCorrQA.C:137
 AddTaskPi0IMGammaCorrQA.C:138
 AddTaskPi0IMGammaCorrQA.C:139
 AddTaskPi0IMGammaCorrQA.C:140
 AddTaskPi0IMGammaCorrQA.C:141
 AddTaskPi0IMGammaCorrQA.C:142
 AddTaskPi0IMGammaCorrQA.C:143
 AddTaskPi0IMGammaCorrQA.C:144
 AddTaskPi0IMGammaCorrQA.C:145
 AddTaskPi0IMGammaCorrQA.C:146
 AddTaskPi0IMGammaCorrQA.C:147
 AddTaskPi0IMGammaCorrQA.C:148
 AddTaskPi0IMGammaCorrQA.C:149
 AddTaskPi0IMGammaCorrQA.C:150
 AddTaskPi0IMGammaCorrQA.C:151
 AddTaskPi0IMGammaCorrQA.C:152
 AddTaskPi0IMGammaCorrQA.C:153
 AddTaskPi0IMGammaCorrQA.C:154
 AddTaskPi0IMGammaCorrQA.C:155
 AddTaskPi0IMGammaCorrQA.C:156
 AddTaskPi0IMGammaCorrQA.C:157
 AddTaskPi0IMGammaCorrQA.C:158
 AddTaskPi0IMGammaCorrQA.C:159
 AddTaskPi0IMGammaCorrQA.C:160
 AddTaskPi0IMGammaCorrQA.C:161
 AddTaskPi0IMGammaCorrQA.C:162
 AddTaskPi0IMGammaCorrQA.C:163
 AddTaskPi0IMGammaCorrQA.C:164
 AddTaskPi0IMGammaCorrQA.C:165
 AddTaskPi0IMGammaCorrQA.C:166
 AddTaskPi0IMGammaCorrQA.C:167
 AddTaskPi0IMGammaCorrQA.C:168
 AddTaskPi0IMGammaCorrQA.C:169
 AddTaskPi0IMGammaCorrQA.C:170
 AddTaskPi0IMGammaCorrQA.C:171
 AddTaskPi0IMGammaCorrQA.C:172
 AddTaskPi0IMGammaCorrQA.C:173
 AddTaskPi0IMGammaCorrQA.C:174
 AddTaskPi0IMGammaCorrQA.C:175
 AddTaskPi0IMGammaCorrQA.C:176
 AddTaskPi0IMGammaCorrQA.C:177
 AddTaskPi0IMGammaCorrQA.C:178
 AddTaskPi0IMGammaCorrQA.C:179
 AddTaskPi0IMGammaCorrQA.C:180
 AddTaskPi0IMGammaCorrQA.C:181
 AddTaskPi0IMGammaCorrQA.C:182
 AddTaskPi0IMGammaCorrQA.C:183
 AddTaskPi0IMGammaCorrQA.C:184
 AddTaskPi0IMGammaCorrQA.C:185
 AddTaskPi0IMGammaCorrQA.C:186
 AddTaskPi0IMGammaCorrQA.C:187
 AddTaskPi0IMGammaCorrQA.C:188
 AddTaskPi0IMGammaCorrQA.C:189
 AddTaskPi0IMGammaCorrQA.C:190
 AddTaskPi0IMGammaCorrQA.C:191
 AddTaskPi0IMGammaCorrQA.C:192
 AddTaskPi0IMGammaCorrQA.C:193
 AddTaskPi0IMGammaCorrQA.C:194
 AddTaskPi0IMGammaCorrQA.C:195
 AddTaskPi0IMGammaCorrQA.C:196
 AddTaskPi0IMGammaCorrQA.C:197
 AddTaskPi0IMGammaCorrQA.C:198
 AddTaskPi0IMGammaCorrQA.C:199
 AddTaskPi0IMGammaCorrQA.C:200
 AddTaskPi0IMGammaCorrQA.C:201
 AddTaskPi0IMGammaCorrQA.C:202
 AddTaskPi0IMGammaCorrQA.C:203
 AddTaskPi0IMGammaCorrQA.C:204
 AddTaskPi0IMGammaCorrQA.C:205
 AddTaskPi0IMGammaCorrQA.C:206
 AddTaskPi0IMGammaCorrQA.C:207
 AddTaskPi0IMGammaCorrQA.C:208
 AddTaskPi0IMGammaCorrQA.C:209
 AddTaskPi0IMGammaCorrQA.C:210
 AddTaskPi0IMGammaCorrQA.C:211
 AddTaskPi0IMGammaCorrQA.C:212
 AddTaskPi0IMGammaCorrQA.C:213
 AddTaskPi0IMGammaCorrQA.C:214
 AddTaskPi0IMGammaCorrQA.C:215
 AddTaskPi0IMGammaCorrQA.C:216
 AddTaskPi0IMGammaCorrQA.C:217
 AddTaskPi0IMGammaCorrQA.C:218
 AddTaskPi0IMGammaCorrQA.C:219
 AddTaskPi0IMGammaCorrQA.C:220
 AddTaskPi0IMGammaCorrQA.C:221
 AddTaskPi0IMGammaCorrQA.C:222
 AddTaskPi0IMGammaCorrQA.C:223
 AddTaskPi0IMGammaCorrQA.C:224
 AddTaskPi0IMGammaCorrQA.C:225
 AddTaskPi0IMGammaCorrQA.C:226
 AddTaskPi0IMGammaCorrQA.C:227
 AddTaskPi0IMGammaCorrQA.C:228
 AddTaskPi0IMGammaCorrQA.C:229
 AddTaskPi0IMGammaCorrQA.C:230
 AddTaskPi0IMGammaCorrQA.C:231
 AddTaskPi0IMGammaCorrQA.C:232
 AddTaskPi0IMGammaCorrQA.C:233
 AddTaskPi0IMGammaCorrQA.C:234
 AddTaskPi0IMGammaCorrQA.C:235
 AddTaskPi0IMGammaCorrQA.C:236
 AddTaskPi0IMGammaCorrQA.C:237
 AddTaskPi0IMGammaCorrQA.C:238
 AddTaskPi0IMGammaCorrQA.C:239
 AddTaskPi0IMGammaCorrQA.C:240
 AddTaskPi0IMGammaCorrQA.C:241
 AddTaskPi0IMGammaCorrQA.C:242
 AddTaskPi0IMGammaCorrQA.C:243
 AddTaskPi0IMGammaCorrQA.C:244
 AddTaskPi0IMGammaCorrQA.C:245
 AddTaskPi0IMGammaCorrQA.C:246
 AddTaskPi0IMGammaCorrQA.C:247
 AddTaskPi0IMGammaCorrQA.C:248
 AddTaskPi0IMGammaCorrQA.C:249
 AddTaskPi0IMGammaCorrQA.C:250
 AddTaskPi0IMGammaCorrQA.C:251
 AddTaskPi0IMGammaCorrQA.C:252
 AddTaskPi0IMGammaCorrQA.C:253
 AddTaskPi0IMGammaCorrQA.C:254
 AddTaskPi0IMGammaCorrQA.C:255
 AddTaskPi0IMGammaCorrQA.C:256
 AddTaskPi0IMGammaCorrQA.C:257
 AddTaskPi0IMGammaCorrQA.C:258
 AddTaskPi0IMGammaCorrQA.C:259
 AddTaskPi0IMGammaCorrQA.C:260
 AddTaskPi0IMGammaCorrQA.C:261
 AddTaskPi0IMGammaCorrQA.C:262
 AddTaskPi0IMGammaCorrQA.C:263
 AddTaskPi0IMGammaCorrQA.C:264
 AddTaskPi0IMGammaCorrQA.C:265
 AddTaskPi0IMGammaCorrQA.C:266
 AddTaskPi0IMGammaCorrQA.C:267
 AddTaskPi0IMGammaCorrQA.C:268
 AddTaskPi0IMGammaCorrQA.C:269
 AddTaskPi0IMGammaCorrQA.C:270
 AddTaskPi0IMGammaCorrQA.C:271
 AddTaskPi0IMGammaCorrQA.C:272
 AddTaskPi0IMGammaCorrQA.C:273
 AddTaskPi0IMGammaCorrQA.C:274
 AddTaskPi0IMGammaCorrQA.C:275
 AddTaskPi0IMGammaCorrQA.C:276
 AddTaskPi0IMGammaCorrQA.C:277
 AddTaskPi0IMGammaCorrQA.C:278
 AddTaskPi0IMGammaCorrQA.C:279
 AddTaskPi0IMGammaCorrQA.C:280
 AddTaskPi0IMGammaCorrQA.C:281
 AddTaskPi0IMGammaCorrQA.C:282
 AddTaskPi0IMGammaCorrQA.C:283
 AddTaskPi0IMGammaCorrQA.C:284
 AddTaskPi0IMGammaCorrQA.C:285
 AddTaskPi0IMGammaCorrQA.C:286
 AddTaskPi0IMGammaCorrQA.C:287
 AddTaskPi0IMGammaCorrQA.C:288
 AddTaskPi0IMGammaCorrQA.C:289
 AddTaskPi0IMGammaCorrQA.C:290
 AddTaskPi0IMGammaCorrQA.C:291
 AddTaskPi0IMGammaCorrQA.C:292
 AddTaskPi0IMGammaCorrQA.C:293
 AddTaskPi0IMGammaCorrQA.C:294
 AddTaskPi0IMGammaCorrQA.C:295
 AddTaskPi0IMGammaCorrQA.C:296
 AddTaskPi0IMGammaCorrQA.C:297
 AddTaskPi0IMGammaCorrQA.C:298
 AddTaskPi0IMGammaCorrQA.C:299
 AddTaskPi0IMGammaCorrQA.C:300
 AddTaskPi0IMGammaCorrQA.C:301
 AddTaskPi0IMGammaCorrQA.C:302
 AddTaskPi0IMGammaCorrQA.C:303
 AddTaskPi0IMGammaCorrQA.C:304
 AddTaskPi0IMGammaCorrQA.C:305
 AddTaskPi0IMGammaCorrQA.C:306
 AddTaskPi0IMGammaCorrQA.C:307
 AddTaskPi0IMGammaCorrQA.C:308
 AddTaskPi0IMGammaCorrQA.C:309
 AddTaskPi0IMGammaCorrQA.C:310
 AddTaskPi0IMGammaCorrQA.C:311
 AddTaskPi0IMGammaCorrQA.C:312
 AddTaskPi0IMGammaCorrQA.C:313
 AddTaskPi0IMGammaCorrQA.C:314
 AddTaskPi0IMGammaCorrQA.C:315
 AddTaskPi0IMGammaCorrQA.C:316
 AddTaskPi0IMGammaCorrQA.C:317
 AddTaskPi0IMGammaCorrQA.C:318
 AddTaskPi0IMGammaCorrQA.C:319
 AddTaskPi0IMGammaCorrQA.C:320
 AddTaskPi0IMGammaCorrQA.C:321
 AddTaskPi0IMGammaCorrQA.C:322
 AddTaskPi0IMGammaCorrQA.C:323
 AddTaskPi0IMGammaCorrQA.C:324
 AddTaskPi0IMGammaCorrQA.C:325
 AddTaskPi0IMGammaCorrQA.C:326
 AddTaskPi0IMGammaCorrQA.C:327
 AddTaskPi0IMGammaCorrQA.C:328
 AddTaskPi0IMGammaCorrQA.C:329
 AddTaskPi0IMGammaCorrQA.C:330
 AddTaskPi0IMGammaCorrQA.C:331
 AddTaskPi0IMGammaCorrQA.C:332
 AddTaskPi0IMGammaCorrQA.C:333
 AddTaskPi0IMGammaCorrQA.C:334
 AddTaskPi0IMGammaCorrQA.C:335
 AddTaskPi0IMGammaCorrQA.C:336
 AddTaskPi0IMGammaCorrQA.C:337
 AddTaskPi0IMGammaCorrQA.C:338
 AddTaskPi0IMGammaCorrQA.C:339
 AddTaskPi0IMGammaCorrQA.C:340
 AddTaskPi0IMGammaCorrQA.C:341
 AddTaskPi0IMGammaCorrQA.C:342
 AddTaskPi0IMGammaCorrQA.C:343
 AddTaskPi0IMGammaCorrQA.C:344
 AddTaskPi0IMGammaCorrQA.C:345
 AddTaskPi0IMGammaCorrQA.C:346
 AddTaskPi0IMGammaCorrQA.C:347
 AddTaskPi0IMGammaCorrQA.C:348
 AddTaskPi0IMGammaCorrQA.C:349
 AddTaskPi0IMGammaCorrQA.C:350
 AddTaskPi0IMGammaCorrQA.C:351
 AddTaskPi0IMGammaCorrQA.C:352
 AddTaskPi0IMGammaCorrQA.C:353
 AddTaskPi0IMGammaCorrQA.C:354
 AddTaskPi0IMGammaCorrQA.C:355
 AddTaskPi0IMGammaCorrQA.C:356
 AddTaskPi0IMGammaCorrQA.C:357
 AddTaskPi0IMGammaCorrQA.C:358
 AddTaskPi0IMGammaCorrQA.C:359
 AddTaskPi0IMGammaCorrQA.C:360
 AddTaskPi0IMGammaCorrQA.C:361
 AddTaskPi0IMGammaCorrQA.C:362
 AddTaskPi0IMGammaCorrQA.C:363
 AddTaskPi0IMGammaCorrQA.C:364
 AddTaskPi0IMGammaCorrQA.C:365
 AddTaskPi0IMGammaCorrQA.C:366
 AddTaskPi0IMGammaCorrQA.C:367
 AddTaskPi0IMGammaCorrQA.C:368
 AddTaskPi0IMGammaCorrQA.C:369
 AddTaskPi0IMGammaCorrQA.C:370
 AddTaskPi0IMGammaCorrQA.C:371
 AddTaskPi0IMGammaCorrQA.C:372
 AddTaskPi0IMGammaCorrQA.C:373
 AddTaskPi0IMGammaCorrQA.C:374
 AddTaskPi0IMGammaCorrQA.C:375
 AddTaskPi0IMGammaCorrQA.C:376
 AddTaskPi0IMGammaCorrQA.C:377
 AddTaskPi0IMGammaCorrQA.C:378
 AddTaskPi0IMGammaCorrQA.C:379
 AddTaskPi0IMGammaCorrQA.C:380
 AddTaskPi0IMGammaCorrQA.C:381
 AddTaskPi0IMGammaCorrQA.C:382
 AddTaskPi0IMGammaCorrQA.C:383
 AddTaskPi0IMGammaCorrQA.C:384
 AddTaskPi0IMGammaCorrQA.C:385
 AddTaskPi0IMGammaCorrQA.C:386
 AddTaskPi0IMGammaCorrQA.C:387
 AddTaskPi0IMGammaCorrQA.C:388
 AddTaskPi0IMGammaCorrQA.C:389
 AddTaskPi0IMGammaCorrQA.C:390
 AddTaskPi0IMGammaCorrQA.C:391
 AddTaskPi0IMGammaCorrQA.C:392
 AddTaskPi0IMGammaCorrQA.C:393
 AddTaskPi0IMGammaCorrQA.C:394
 AddTaskPi0IMGammaCorrQA.C:395
 AddTaskPi0IMGammaCorrQA.C:396
 AddTaskPi0IMGammaCorrQA.C:397
 AddTaskPi0IMGammaCorrQA.C:398
 AddTaskPi0IMGammaCorrQA.C:399
 AddTaskPi0IMGammaCorrQA.C:400
 AddTaskPi0IMGammaCorrQA.C:401
 AddTaskPi0IMGammaCorrQA.C:402
 AddTaskPi0IMGammaCorrQA.C:403
 AddTaskPi0IMGammaCorrQA.C:404
 AddTaskPi0IMGammaCorrQA.C:405
 AddTaskPi0IMGammaCorrQA.C:406
 AddTaskPi0IMGammaCorrQA.C:407
 AddTaskPi0IMGammaCorrQA.C:408
 AddTaskPi0IMGammaCorrQA.C:409
 AddTaskPi0IMGammaCorrQA.C:410
 AddTaskPi0IMGammaCorrQA.C:411
 AddTaskPi0IMGammaCorrQA.C:412
 AddTaskPi0IMGammaCorrQA.C:413
 AddTaskPi0IMGammaCorrQA.C:414
 AddTaskPi0IMGammaCorrQA.C:415
 AddTaskPi0IMGammaCorrQA.C:416
 AddTaskPi0IMGammaCorrQA.C:417
 AddTaskPi0IMGammaCorrQA.C:418
 AddTaskPi0IMGammaCorrQA.C:419
 AddTaskPi0IMGammaCorrQA.C:420
 AddTaskPi0IMGammaCorrQA.C:421
 AddTaskPi0IMGammaCorrQA.C:422
 AddTaskPi0IMGammaCorrQA.C:423
 AddTaskPi0IMGammaCorrQA.C:424
 AddTaskPi0IMGammaCorrQA.C:425
 AddTaskPi0IMGammaCorrQA.C:426
 AddTaskPi0IMGammaCorrQA.C:427
 AddTaskPi0IMGammaCorrQA.C:428
 AddTaskPi0IMGammaCorrQA.C:429
 AddTaskPi0IMGammaCorrQA.C:430
 AddTaskPi0IMGammaCorrQA.C:431
 AddTaskPi0IMGammaCorrQA.C:432
 AddTaskPi0IMGammaCorrQA.C:433
 AddTaskPi0IMGammaCorrQA.C:434
 AddTaskPi0IMGammaCorrQA.C:435
 AddTaskPi0IMGammaCorrQA.C:436
 AddTaskPi0IMGammaCorrQA.C:437
 AddTaskPi0IMGammaCorrQA.C:438
 AddTaskPi0IMGammaCorrQA.C:439
 AddTaskPi0IMGammaCorrQA.C:440
 AddTaskPi0IMGammaCorrQA.C:441
 AddTaskPi0IMGammaCorrQA.C:442
 AddTaskPi0IMGammaCorrQA.C:443
 AddTaskPi0IMGammaCorrQA.C:444
 AddTaskPi0IMGammaCorrQA.C:445
 AddTaskPi0IMGammaCorrQA.C:446
 AddTaskPi0IMGammaCorrQA.C:447
 AddTaskPi0IMGammaCorrQA.C:448
 AddTaskPi0IMGammaCorrQA.C:449
 AddTaskPi0IMGammaCorrQA.C:450
 AddTaskPi0IMGammaCorrQA.C:451
 AddTaskPi0IMGammaCorrQA.C:452
 AddTaskPi0IMGammaCorrQA.C:453
 AddTaskPi0IMGammaCorrQA.C:454
 AddTaskPi0IMGammaCorrQA.C:455
 AddTaskPi0IMGammaCorrQA.C:456
 AddTaskPi0IMGammaCorrQA.C:457
 AddTaskPi0IMGammaCorrQA.C:458
 AddTaskPi0IMGammaCorrQA.C:459
 AddTaskPi0IMGammaCorrQA.C:460
 AddTaskPi0IMGammaCorrQA.C:461
 AddTaskPi0IMGammaCorrQA.C:462
 AddTaskPi0IMGammaCorrQA.C:463
 AddTaskPi0IMGammaCorrQA.C:464
 AddTaskPi0IMGammaCorrQA.C:465
 AddTaskPi0IMGammaCorrQA.C:466
 AddTaskPi0IMGammaCorrQA.C:467
 AddTaskPi0IMGammaCorrQA.C:468
 AddTaskPi0IMGammaCorrQA.C:469
 AddTaskPi0IMGammaCorrQA.C:470
 AddTaskPi0IMGammaCorrQA.C:471
 AddTaskPi0IMGammaCorrQA.C:472
 AddTaskPi0IMGammaCorrQA.C:473
 AddTaskPi0IMGammaCorrQA.C:474
 AddTaskPi0IMGammaCorrQA.C:475
 AddTaskPi0IMGammaCorrQA.C:476
 AddTaskPi0IMGammaCorrQA.C:477
 AddTaskPi0IMGammaCorrQA.C:478
 AddTaskPi0IMGammaCorrQA.C:479
 AddTaskPi0IMGammaCorrQA.C:480
 AddTaskPi0IMGammaCorrQA.C:481
 AddTaskPi0IMGammaCorrQA.C:482
 AddTaskPi0IMGammaCorrQA.C:483
 AddTaskPi0IMGammaCorrQA.C:484
 AddTaskPi0IMGammaCorrQA.C:485
 AddTaskPi0IMGammaCorrQA.C:486
 AddTaskPi0IMGammaCorrQA.C:487
 AddTaskPi0IMGammaCorrQA.C:488
 AddTaskPi0IMGammaCorrQA.C:489
 AddTaskPi0IMGammaCorrQA.C:490
 AddTaskPi0IMGammaCorrQA.C:491
 AddTaskPi0IMGammaCorrQA.C:492
 AddTaskPi0IMGammaCorrQA.C:493
 AddTaskPi0IMGammaCorrQA.C:494
 AddTaskPi0IMGammaCorrQA.C:495
 AddTaskPi0IMGammaCorrQA.C:496
 AddTaskPi0IMGammaCorrQA.C:497
 AddTaskPi0IMGammaCorrQA.C:498
 AddTaskPi0IMGammaCorrQA.C:499
 AddTaskPi0IMGammaCorrQA.C:500
 AddTaskPi0IMGammaCorrQA.C:501
 AddTaskPi0IMGammaCorrQA.C:502
 AddTaskPi0IMGammaCorrQA.C:503
 AddTaskPi0IMGammaCorrQA.C:504
 AddTaskPi0IMGammaCorrQA.C:505
 AddTaskPi0IMGammaCorrQA.C:506
 AddTaskPi0IMGammaCorrQA.C:507
 AddTaskPi0IMGammaCorrQA.C:508
 AddTaskPi0IMGammaCorrQA.C:509
 AddTaskPi0IMGammaCorrQA.C:510
 AddTaskPi0IMGammaCorrQA.C:511
 AddTaskPi0IMGammaCorrQA.C:512
 AddTaskPi0IMGammaCorrQA.C:513
 AddTaskPi0IMGammaCorrQA.C:514
 AddTaskPi0IMGammaCorrQA.C:515
 AddTaskPi0IMGammaCorrQA.C:516
 AddTaskPi0IMGammaCorrQA.C:517
 AddTaskPi0IMGammaCorrQA.C:518
 AddTaskPi0IMGammaCorrQA.C:519
 AddTaskPi0IMGammaCorrQA.C:520
 AddTaskPi0IMGammaCorrQA.C:521
 AddTaskPi0IMGammaCorrQA.C:522
 AddTaskPi0IMGammaCorrQA.C:523
 AddTaskPi0IMGammaCorrQA.C:524
 AddTaskPi0IMGammaCorrQA.C:525
 AddTaskPi0IMGammaCorrQA.C:526
 AddTaskPi0IMGammaCorrQA.C:527
 AddTaskPi0IMGammaCorrQA.C:528
 AddTaskPi0IMGammaCorrQA.C:529
 AddTaskPi0IMGammaCorrQA.C:530
 AddTaskPi0IMGammaCorrQA.C:531
 AddTaskPi0IMGammaCorrQA.C:532
 AddTaskPi0IMGammaCorrQA.C:533
 AddTaskPi0IMGammaCorrQA.C:534
 AddTaskPi0IMGammaCorrQA.C:535
 AddTaskPi0IMGammaCorrQA.C:536
 AddTaskPi0IMGammaCorrQA.C:537
 AddTaskPi0IMGammaCorrQA.C:538
 AddTaskPi0IMGammaCorrQA.C:539
 AddTaskPi0IMGammaCorrQA.C:540
 AddTaskPi0IMGammaCorrQA.C:541
 AddTaskPi0IMGammaCorrQA.C:542
 AddTaskPi0IMGammaCorrQA.C:543
 AddTaskPi0IMGammaCorrQA.C:544
 AddTaskPi0IMGammaCorrQA.C:545
 AddTaskPi0IMGammaCorrQA.C:546
 AddTaskPi0IMGammaCorrQA.C:547
 AddTaskPi0IMGammaCorrQA.C:548
 AddTaskPi0IMGammaCorrQA.C:549
 AddTaskPi0IMGammaCorrQA.C:550
 AddTaskPi0IMGammaCorrQA.C:551
 AddTaskPi0IMGammaCorrQA.C:552
 AddTaskPi0IMGammaCorrQA.C:553
 AddTaskPi0IMGammaCorrQA.C:554
 AddTaskPi0IMGammaCorrQA.C:555
 AddTaskPi0IMGammaCorrQA.C:556
 AddTaskPi0IMGammaCorrQA.C:557
 AddTaskPi0IMGammaCorrQA.C:558
 AddTaskPi0IMGammaCorrQA.C:559
 AddTaskPi0IMGammaCorrQA.C:560
 AddTaskPi0IMGammaCorrQA.C:561
 AddTaskPi0IMGammaCorrQA.C:562
 AddTaskPi0IMGammaCorrQA.C:563
 AddTaskPi0IMGammaCorrQA.C:564
 AddTaskPi0IMGammaCorrQA.C:565
 AddTaskPi0IMGammaCorrQA.C:566
 AddTaskPi0IMGammaCorrQA.C:567
 AddTaskPi0IMGammaCorrQA.C:568
 AddTaskPi0IMGammaCorrQA.C:569
 AddTaskPi0IMGammaCorrQA.C:570
 AddTaskPi0IMGammaCorrQA.C:571
 AddTaskPi0IMGammaCorrQA.C:572
 AddTaskPi0IMGammaCorrQA.C:573
 AddTaskPi0IMGammaCorrQA.C:574
 AddTaskPi0IMGammaCorrQA.C:575
 AddTaskPi0IMGammaCorrQA.C:576
 AddTaskPi0IMGammaCorrQA.C:577
 AddTaskPi0IMGammaCorrQA.C:578
 AddTaskPi0IMGammaCorrQA.C:579
 AddTaskPi0IMGammaCorrQA.C:580
 AddTaskPi0IMGammaCorrQA.C:581
 AddTaskPi0IMGammaCorrQA.C:582
 AddTaskPi0IMGammaCorrQA.C:583
 AddTaskPi0IMGammaCorrQA.C:584
 AddTaskPi0IMGammaCorrQA.C:585
 AddTaskPi0IMGammaCorrQA.C:586
 AddTaskPi0IMGammaCorrQA.C:587
 AddTaskPi0IMGammaCorrQA.C:588
 AddTaskPi0IMGammaCorrQA.C:589
 AddTaskPi0IMGammaCorrQA.C:590
 AddTaskPi0IMGammaCorrQA.C:591
 AddTaskPi0IMGammaCorrQA.C:592
 AddTaskPi0IMGammaCorrQA.C:593
 AddTaskPi0IMGammaCorrQA.C:594
 AddTaskPi0IMGammaCorrQA.C:595
 AddTaskPi0IMGammaCorrQA.C:596
 AddTaskPi0IMGammaCorrQA.C:597
 AddTaskPi0IMGammaCorrQA.C:598
 AddTaskPi0IMGammaCorrQA.C:599
 AddTaskPi0IMGammaCorrQA.C:600
 AddTaskPi0IMGammaCorrQA.C:601
 AddTaskPi0IMGammaCorrQA.C:602
 AddTaskPi0IMGammaCorrQA.C:603
 AddTaskPi0IMGammaCorrQA.C:604
 AddTaskPi0IMGammaCorrQA.C:605
 AddTaskPi0IMGammaCorrQA.C:606
 AddTaskPi0IMGammaCorrQA.C:607
 AddTaskPi0IMGammaCorrQA.C:608
 AddTaskPi0IMGammaCorrQA.C:609
 AddTaskPi0IMGammaCorrQA.C:610
 AddTaskPi0IMGammaCorrQA.C:611
 AddTaskPi0IMGammaCorrQA.C:612
 AddTaskPi0IMGammaCorrQA.C:613
 AddTaskPi0IMGammaCorrQA.C:614
 AddTaskPi0IMGammaCorrQA.C:615
 AddTaskPi0IMGammaCorrQA.C:616
 AddTaskPi0IMGammaCorrQA.C:617
 AddTaskPi0IMGammaCorrQA.C:618
 AddTaskPi0IMGammaCorrQA.C:619
 AddTaskPi0IMGammaCorrQA.C:620
 AddTaskPi0IMGammaCorrQA.C:621
 AddTaskPi0IMGammaCorrQA.C:622
 AddTaskPi0IMGammaCorrQA.C:623
 AddTaskPi0IMGammaCorrQA.C:624
 AddTaskPi0IMGammaCorrQA.C:625
 AddTaskPi0IMGammaCorrQA.C:626
 AddTaskPi0IMGammaCorrQA.C:627
 AddTaskPi0IMGammaCorrQA.C:628
 AddTaskPi0IMGammaCorrQA.C:629
 AddTaskPi0IMGammaCorrQA.C:630
 AddTaskPi0IMGammaCorrQA.C:631
 AddTaskPi0IMGammaCorrQA.C:632
 AddTaskPi0IMGammaCorrQA.C:633
 AddTaskPi0IMGammaCorrQA.C:634
 AddTaskPi0IMGammaCorrQA.C:635
 AddTaskPi0IMGammaCorrQA.C:636
 AddTaskPi0IMGammaCorrQA.C:637
 AddTaskPi0IMGammaCorrQA.C:638
 AddTaskPi0IMGammaCorrQA.C:639
 AddTaskPi0IMGammaCorrQA.C:640
 AddTaskPi0IMGammaCorrQA.C:641
 AddTaskPi0IMGammaCorrQA.C:642
 AddTaskPi0IMGammaCorrQA.C:643
 AddTaskPi0IMGammaCorrQA.C:644
 AddTaskPi0IMGammaCorrQA.C:645
 AddTaskPi0IMGammaCorrQA.C:646
 AddTaskPi0IMGammaCorrQA.C:647
 AddTaskPi0IMGammaCorrQA.C:648
 AddTaskPi0IMGammaCorrQA.C:649
 AddTaskPi0IMGammaCorrQA.C:650
 AddTaskPi0IMGammaCorrQA.C:651
 AddTaskPi0IMGammaCorrQA.C:652
 AddTaskPi0IMGammaCorrQA.C:653
 AddTaskPi0IMGammaCorrQA.C:654
 AddTaskPi0IMGammaCorrQA.C:655
 AddTaskPi0IMGammaCorrQA.C:656
 AddTaskPi0IMGammaCorrQA.C:657
 AddTaskPi0IMGammaCorrQA.C:658
 AddTaskPi0IMGammaCorrQA.C:659
 AddTaskPi0IMGammaCorrQA.C:660
 AddTaskPi0IMGammaCorrQA.C:661
 AddTaskPi0IMGammaCorrQA.C:662
 AddTaskPi0IMGammaCorrQA.C:663
 AddTaskPi0IMGammaCorrQA.C:664
 AddTaskPi0IMGammaCorrQA.C:665
 AddTaskPi0IMGammaCorrQA.C:666
 AddTaskPi0IMGammaCorrQA.C:667
 AddTaskPi0IMGammaCorrQA.C:668
 AddTaskPi0IMGammaCorrQA.C:669
 AddTaskPi0IMGammaCorrQA.C:670
 AddTaskPi0IMGammaCorrQA.C:671
 AddTaskPi0IMGammaCorrQA.C:672
 AddTaskPi0IMGammaCorrQA.C:673
 AddTaskPi0IMGammaCorrQA.C:674
 AddTaskPi0IMGammaCorrQA.C:675
 AddTaskPi0IMGammaCorrQA.C:676
 AddTaskPi0IMGammaCorrQA.C:677
 AddTaskPi0IMGammaCorrQA.C:678
 AddTaskPi0IMGammaCorrQA.C:679
 AddTaskPi0IMGammaCorrQA.C:680
 AddTaskPi0IMGammaCorrQA.C:681
 AddTaskPi0IMGammaCorrQA.C:682
 AddTaskPi0IMGammaCorrQA.C:683
 AddTaskPi0IMGammaCorrQA.C:684
 AddTaskPi0IMGammaCorrQA.C:685