ROOT logo
void runProtonsCorrectionAnalysis(const char* analysisType  = "Hybrid",
				  const char* pidMode = "Ratio",
				  Bool_t fIsOn_AliProtonAbsorptionCorrection=kTRUE, 
				  Bool_t fIsOn_AliProtonFeedDownAnalysis=kFALSE,
				  Bool_t fIsOn_AliProtonSpectraCorrection=kFALSE) 
{
  //Macro to run the proton feed-down analysis tested for local, proof & GRID.
  //Local: Takes four arguments, the analysis mode, the type of the ESD 
  //       analysis, the PID mode and the path where the tag and ESD or 
  //       AOD files reside.
  //Interactive: Takes four arguments, the analysis mode, the type of the ESD 
  //             analysis, the PID mode and the name of the collection of tag 
  //             files.
  //Batch: Takes four arguments, the analysis mode, the type of the ESD 
  //       analysis, the PID mode and the name of the collection file with 
  //       the event list for each file.
  //Proof: Takes five arguments, the analysis level, the analysis mode in 
  //       case of ESD, the PID mode, the number of events and the dataset 
  //       name and .  
  //Analysis mode can be: "MC", "ESD", "AOD"
  //ESD analysis type can be one of the three: "TPC", "Hybrid", "Global"
  //PID mode can be one of the four: "Bayesian" (standard Bayesian approach) 
  //   "Ratio" (ratio of measured over expected/theoretical dE/dx a la STAR) 
  //   "Sigma1" (N-sigma area around the fitted dE/dx vs P band)
  //   "Sigma2" (same as previous but taking into account the No of TPC points)
  TStopwatch timer;
  timer.Start();
  
  //runLocal("ESD",analysisType,pidMode,"/home/pchrist/ALICE/Baryons/Analysis/Protons/Local/data",fIsOn_AliProtonAbsorptionCorrection,fIsOn_AliProtonFeedDownAnalysis, fIsOn_AliProtonSpectraCorrection);
  //runInteractive("ESD",analysisType,pidMode,"/home/marek/Analysis/global_xml/tagtest81627.xml",fIsOn_AliProtonAbsorptionCorrection,fIsOn_AliProtonFeedDownAnalysis, fIsOn_AliProtonSpectraCorrection);
  //runBatch("ESD",analysisType,pidMode,"wn.xml",fIsOn_AliProtonAbsorptionCorrection,fIsOn_AliProtonFeedDownAnalysis, fIsOn_AliProtonSpectraCorrection);  
  runProof("ESD",analysisType,pidMode,500000,"/COMMON/COMMON/LHC10a8_run104867_8#esdTree",fIsOn_AliProtonAbsorptionCorrection,fIsOn_AliProtonFeedDownAnalysis, fIsOn_AliProtonSpectraCorrection);
  
  timer.Stop();
  timer.Print();
}

//_________________________________________________//
void runLocal(const char* mode = "ESD",
	      const char* analysisType = 0x0,
	      const char* pidMode = 0x0, 
	      const char* path = 0x0,
	      Bool_t fIsOn_AliProtonAbsorptionCorrection=kTRUE, 
	      Bool_t fIsOn_AliProtonFeedDownAnalysis=kTRUE,
	      Bool_t fIsOn_AliProtonSpectraCorrection=kTRUE) {
  TString smode = mode;
  TString outputFilename = "ProtonCorrection."; outputFilename += mode;
  if(analysisType) {
    outputFilename += "."; outputFilename += analysisType;
  }
  outputFilename += ".root";

  //____________________________________________________//
  //_____________Setting up the par files_______________//
  //____________________________________________________//
  setupPar("STEERBase");
  gSystem->Load("libSTEERBase.so");
  setupPar("ESD");
  gSystem->Load("libVMC.so");
  gSystem->Load("libESD.so");
  setupPar("AOD");
  gSystem->Load("libAOD.so");
  setupPar("ANALYSIS");
  gSystem->Load("libANALYSIS.so");
  setupPar("ANALYSISalice");
  gSystem->Load("libANALYSISalice.so");
  setupPar("CORRFW");
  gSystem->Load("libCORRFW.so");
  setupPar("PWG2spectra");
  gSystem->Load("libPWG2spectra.so");
  //____________________________________________________//  
  
  //____________________________________________//
  AliTagAnalysis *tagAnalysis = new AliTagAnalysis("ESD"); 
  tagAnalysis->ChainLocalTags(path);
  
  AliRunTagCuts *runCuts = new AliRunTagCuts();
  AliLHCTagCuts *lhcCuts = new AliLHCTagCuts();
  AliDetectorTagCuts *detCuts = new AliDetectorTagCuts();
  AliEventTagCuts *evCuts = new AliEventTagCuts();
  
  TChain* chain = 0x0;
  chain = tagAnalysis->QueryTags(runCuts,lhcCuts,detCuts,evCuts);
  //chain->SetBranchStatus("*Calo*",0);
  
  //____________________________________________//
  // Make the analysis manager
  AliAnalysisManager *mgr = new AliAnalysisManager("protonAnalysisManagerProtonCorrection");
  AliVEventHandler* esdH = new AliESDInputHandler;
  mgr->SetInputEventHandler(esdH);
  AliMCEventHandler *mc = new AliMCEventHandler();
  mgr->SetMCtruthEventHandler(mc);
  
  //____________________________________________//
  /*AliProtonCorrectionAnalysisTask *taskProtons = new AliProtonCorrectionAnalysisTask("TaskProtonsProtonCorrection");
    
  if(fIsOn_AliProtonAbsorptionCorrection||fIsOn_AliProtonFeedDownAnalysis||fIsOn_AliProtonSpectraCorrection)
  {
  gROOT->LoadMacro("$ALICE_ROOT/PWG2/SPECTRA/macros/configProtonAnalysisBaseObject.C"); 
  AliProtonAnalysisBase *baseAnalysis = GetProtonAnalysisBaseObject(mode,analysisType,pidMode);
  taskProtons->SetBaseAnalysis(baseAnalysis);
  }	
  else
  return;
  if(fIsOn_AliProtonAbsorptionCorrection)
  {
  AliProtonAbsorptionCorrection * absorptioncorrection=new AliProtonAbsorptionCorrection();
  taskProtons->SetAnalysisObjectAbsorptionCorrection(absorptioncorrection);
  }
  if(fIsOn_AliProtonFeedDownAnalysis)
  {
  gROOT->LoadMacro("$ALICE_ROOT/PWG2/SPECTRA/macros/configProtonFeedDownAnalysis.C");
  AliProtonFeedDownAnalysis *analysisFeedDown = GetProtonFeedDownAnalysisObject();
  taskProtons->SetAnalysisObjectFeedDown(analysisFeedDown);
  }	
  if(fIsOn_AliProtonSpectraCorrection)
  {
  AliProtonSpectraCorrection* spectracorrection=new AliProtonSpectraCorrection();
  taskProtons->SetAnalysisObjectSpectraCorrection(spectracorrection);
  }*/
  gROOT->LoadMacro("$ALICE_ROOT/PWG2/SPECTRA/macros/configProtonCorrectionAnalysisTask.C"); 
  AliProtonCorrectionAnalysisTask* taskProtons=GetAliProtonCorrectionAnalysisTask(mode,analysisType,pidMode ,fIsOn_AliProtonAbsorptionCorrection, fIsOn_AliProtonFeedDownAnalysis, fIsOn_AliProtonSpectraCorrection); 
  mgr->AddTask(taskProtons);
  
  // Create containers for input/output
  AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList",TList::Class(),AliAnalysisManager::kOutputContainer,outputFilename.Data());
  
  //____________________________________________//
  mgr->ConnectInput(taskProtons,0,cinput1);
  mgr->ConnectOutput(taskProtons,0,coutput1);
  if (!mgr->InitAnalysis()) 
    return;
  mgr->PrintStatus();
  mgr->StartAnalysis("local",chain);
}

//_________________________________________________//
void runInteractive(const char* mode = "ESD",
		    const char* analysisType = 0x0,
		    const char* pidMode = 0x0,
		    const char* collectionName = "tag.xml",
		    Bool_t fIsOn_AliProtonAbsorptionCorrection=kTRUE, 
		    Bool_t fIsOn_AliProtonFeedDownAnalysis=kTRUE,
		    Bool_t fIsOn_AliProtonSpectraCorrection=kTRUE) {
  gSystem->Load("libProofPlayer.so");
  
  TString smode = mode;
  TString outputFilename = "ProtonCorrection."; outputFilename += mode;
  if(analysisType) {
    outputFilename += "."; outputFilename += analysisType;
  }
  outputFilename += ".root";
  
  printf("*** Connect to AliEn ***\n");
  TGrid::Connect("alien://");
  
  //____________________________________________________//
  //_____________Setting up the par files_______________//
  //____________________________________________________//
  setupPar("STEERBase");
  gSystem->Load("libSTEERBase.so");
  setupPar("ESD");
  gSystem->Load("libVMC.so");
  gSystem->Load("libESD.so");
  setupPar("AOD");
  gSystem->Load("libAOD.so");
  setupPar("ANALYSIS");
  gSystem->Load("libANALYSIS.so");
  setupPar("ANALYSISalice");
  gSystem->Load("libANALYSISalice.so");
  setupPar("CORRFW");
  gSystem->Load("libCORRFW.so");
  setupPar("PWG2spectra");
  gSystem->Load("libPWG2spectra.so");
  //____________________________________________________//  
  
  //____________________________________________//
  AliTagAnalysis *tagAnalysis = new AliTagAnalysis("ESD");
  
  AliRunTagCuts *runCuts = new AliRunTagCuts();
  AliLHCTagCuts *lhcCuts = new AliLHCTagCuts();
  AliDetectorTagCuts *detCuts = new AliDetectorTagCuts();
  AliEventTagCuts *evCuts = new AliEventTagCuts();
  
  //grid tags
  TAlienCollection* coll = TAlienCollection::Open(collectionName);
  TGridResult* TagResult = coll->GetGridResult("",0,0);
  tagAnalysis->ChainGridTags(TagResult);
  TChain* chain = 0x0;
  chain = tagAnalysis->QueryTags(runCuts,lhcCuts,detCuts,evCuts);
  //chain->SetBranchStatus("*Calo*",0);
  
  //____________________________________________//
  // Make the analysis manager
  AliAnalysisManager *mgr = new AliAnalysisManager("protonAnalysisManagerProtonCorrection");
  AliVEventHandler* esdH = new AliESDInputHandler;
  mgr->SetInputEventHandler(esdH);
  AliMCEventHandler *mc = new AliMCEventHandler();
  mgr->SetMCtruthEventHandler(mc);
  
  //____________________________________________//
  /*AliProtonCorrectionAnalysisTask *taskProtons = new AliProtonCorrectionAnalysisTask("TaskProtonsProtonCorrection");
    if(fIsOn_AliProtonAbsorptionCorrection||fIsOn_AliProtonFeedDownAnalysis||fIsOn_AliProtonSpectraCorrection)
    {
    gROOT->LoadMacro("$ALICE_ROOT/PWG2/SPECTRA/macros/configProtonAnalysisBaseObject.C"); 
    AliProtonAnalysisBase *baseAnalysis = GetProtonAnalysisBaseObject(mode,analysisType,pidMode);
    taskProtons->SetBaseAnalysis(baseAnalysis);
    }	
    else
    return;
    if(fIsOn_AliProtonAbsorptionCorrection)
    {
    AliProtonAbsorptionCorrection* absorptioncorrection=new AliProtonAbsorptionCorrection();
    taskProtons->SetAnalysisObjectAbsorptionCorrection(absorptioncorrection);
    }
    if(fIsOn_AliProtonFeedDownAnalysis)
    {
    gROOT->LoadMacro("$ALICE_ROOT/PWG2/SPECTRA/macros/configProtonFeedDownAnalysis.C");
    AliProtonFeedDownAnalysis* analysisFeedDown = GetProtonFeedDownAnalysisObject();
    taskProtons->SetAnalysisObjectFeedDown(analysisFeedDown);
    }	
    if(fIsOn_AliProtonSpectraCorrection)
    {
    AliProtonSpectraCorrection* spectracorrection=new AliProtonSpectraCorrection();
    taskProtons->SetAnalysisObjectSpectraCorrection(spectracorrection);
    }*/
  gROOT->LoadMacro("$ALICE_ROOT/PWG2/SPECTRA/macros/configProtonCorrectionAnalysisTask.C"); 
  AliProtonCorrectionAnalysisTask* taskProtons=GetAliProtonCorrectionAnalysisTask(mode,analysisType,pidMode ,fIsOn_AliProtonAbsorptionCorrection, fIsOn_AliProtonFeedDownAnalysis, fIsOn_AliProtonSpectraCorrection); 
  mgr->AddTask(taskProtons);
  
  // Create containers for input/output
  AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList",TList::Class(),AliAnalysisManager::kOutputContainer,outputFilename.Data());
  
  //____________________________________________//
  mgr->ConnectInput(taskProtons,0,cinput1);
  mgr->ConnectOutput(taskProtons,0,coutput1);
  if (!mgr->InitAnalysis()) 
    return;
  mgr->PrintStatus();
  mgr->StartAnalysis("local",chain);
}

//_________________________________________________//
void runBatch(const char* mode = "ESD",
	      const char* analysisType = 0x0,
	      const char* pidMode = 0x0,
	      const char *collectionfile = "wn.xml",
	      Bool_t fIsOn_AliProtonAbsorptionCorrection=kTRUE, 
	      Bool_t fIsOn_AliProtonFeedDownAnalysis=kTRUE,
	      Bool_t fIsOn_AliProtonSpectraCorrection=kTRUE) {
  TString smode = mode;
  TString outputFilename = "ProtonCorrection."; outputFilename += mode;
  if(analysisType) {
    outputFilename += "."; outputFilename += analysisType;
  }
  outputFilename += ".root";
  
  printf("*** Connect to AliEn ***\n");
  TGrid::Connect("alien://");
  gSystem->Load("libProofPlayer.so");
  
  //____________________________________________________//
  //_____________Setting up the par files_______________//
  //____________________________________________________//
  gSystem->Load("libSTEERBase.so");
  gSystem->Load("libESD.so");
  gSystem->Load("libAOD.so");
  gSystem->Load("libANALYSIS") ;
  gSystem->Load("libANALYSISalice") ;
  gSystem->Load("libCORRFW.so") ;
  
  //setupPar("PWG2spectra");
  gSystem->Load("libPWG2spectra.so");
  //____________________________________________________//  
  
  //____________________________________________//
  AliTagAnalysis *tagAnalysis = new AliTagAnalysis("ESD");
  TChain *chain = 0x0;
  chain = tagAnalysis->GetChainFromCollection(collectionfile,"esdTree");
  
  //____________________________________________//
  // Make the analysis manager
  AliAnalysisManager *mgr = new AliAnalysisManager("protonAnalysisManagerProtonCorrection");
  AliVEventHandler* esdH = new AliESDInputHandler;
  mgr->SetInputEventHandler(esdH);
  AliMCEventHandler *mc = new AliMCEventHandler();
  mgr->SetMCtruthEventHandler(mc);
  
  //____________________________________________//
  /*AliProtonCorrectionAnalysisTask *taskProtons = new AliProtonCorrectionAnalysisTask("TaskProtonsProtonCorrection");
    if(fIsOn_AliProtonAbsorptionCorrection||fIsOn_AliProtonFeedDownAnalysis||fIsOn_AliProtonSpectraCorrection)
    {
    gROOT->LoadMacro("$ALICE_ROOT/PWG2/SPECTRA/macros/configProtonAnalysisBaseObject.C"); 
    AliProtonAnalysisBase *baseAnalysis = GetProtonAnalysisBaseObject(mode,analysisType ,pidMode);
    taskProtons->SetBaseAnalysis(baseAnalysis);
    }	
    else
    return;
    if(fIsOn_AliProtonAbsorptionCorrection)
    {
    AliProtonAbsorptionCorrection * absorptioncorrection=new AliProtonAbsorptionCorrection();
    taskProtons->SetAnalysisObjectAbsorptionCorrection(absorptioncorrection);
    }
    if(fIsOn_AliProtonFeedDownAnalysis)
    {
    gROOT->LoadMacro("$ALICE_ROOT/PWG2/SPECTRA/macros/configProtonFeedDownAnalysis.C");
    AliProtonFeedDownAnalysis *analysisFeedDown = GetProtonFeedDownAnalysisObject();
    taskProtons->SetAnalysisObjectFeedDown(analysisFeedDown);
    }	
    if(fIsOn_AliProtonSpectraCorrection)
    {
    AliProtonSpectraCorrection* spectracorrection=new AliProtonSpectraCorrection();
    taskProtons->SetAnalysisObjectSpectraCorrection(spectracorrection);
    }*/
  gROOT->LoadMacro("$ALICE_ROOT/PWG2/SPECTRA/macros/configProtonCorrectionAnalysisTask.C"); 
  AliProtonCorrectionAnalysisTask* taskProtons=GetAliProtonCorrectionAnalysisTask(mode,analysisType,pidMode ,fIsOn_AliProtonAbsorptionCorrection, fIsOn_AliProtonFeedDownAnalysis, fIsOn_AliProtonSpectraCorrection); 
  mgr->AddTask(taskProtons);
  
  // Create containers for input/output
  AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList",TList::Class(),AliAnalysisManager::kOutputContainer,outputFilename.Data());

  //____________________________________________//
  mgr->ConnectInput(taskProtons,0,cinput);
  mgr->ConnectOutput(taskProtons,0,coutput1);
  if (!mgr->InitAnalysis()) 
    return;
  mgr->PrintStatus();
  mgr->StartAnalysis("local",chain);
}

//_________________________________________________//
void runProof(const char* mode = "ESD",
	      const char* analysisType = 0x0,
	      const char* pidMode = 0x0,
	      Int_t stats = 0, 
	      const char* dataset = 0x0,
	      Bool_t fIsOn_AliProtonAbsorptionCorrection=kTRUE, 
	      Bool_t fIsOn_AliProtonFeedDownAnalysis=kTRUE,
	      Bool_t fIsOn_AliProtonSpectraCorrection=kTRUE) {  
  TString smode = mode;
  TString outputFilename = "ProtonCorrection."; outputFilename += mode;
  if(analysisType) {
    outputFilename += "."; outputFilename += analysisType;
  }
  outputFilename += ".root";
  
  printf("****** Connect to PROOF *******\n");
  gEnv->SetValue("XSec.GSI.DelegProxy","2");
  TProof::Open("alicecaf.cern.ch"); 
  //gProof->SetParallel();
  
  // Enable the Analysis Package
  gProof->UploadPackage("STEERBase.par");
  gProof->EnablePackage("STEERBase");
  gProof->UploadPackage("ESD.par");
  gProof->EnablePackage("ESD");
  gProof->UploadPackage("AOD.par");
  gProof->EnablePackage("AOD");
  gProof->UploadPackage("ANALYSIS.par");
  gProof->EnablePackage("ANALYSIS");
  gProof->UploadPackage("ANALYSISalice.par");
  gProof->EnablePackage("ANALYSISalice");
  gProof->UploadPackage("CORRFW.par");
  gProof->EnablePackage("CORRFW");
  gProof->UploadPackage("PWG2spectra.par");
  gProof->EnablePackage("PWG2spectra");
  //____________________________________________//
  
  //____________________________________________//
  // Make the analysis manager
  AliAnalysisManager *mgr = new AliAnalysisManager("protonAnalysisManagerProtonCorrection");
  AliVEventHandler* esdH = new AliESDInputHandler;
  mgr->SetInputEventHandler(esdH);
  AliMCEventHandler *mc = new AliMCEventHandler();
  mgr->SetMCtruthEventHandler(mc);
  //____________________________________________//
  //Create the proton task
  /*AliProtonCorrectionAnalysisTask *taskProtons = new AliProtonCorrectionAnalysisTask("TaskProtonsProtonCorrection");
    if(fIsOn_AliProtonAbsorptionCorrection||fIsOn_AliProtonFeedDownAnalysis||fIsOn_AliProtonSpectraCorrection)
    {
    gROOT->LoadMacro("$ALICE_ROOT/PWG2/SPECTRA/macros/configProtonAnalysisBaseObject.C"); 
    AliProtonAnalysisBase *baseAnalysis = GetProtonAnalysisBaseObject(mode,analysisType ,pidMode);
    taskProtons->SetBaseAnalysis(baseAnalysis);
    }	
    else
    return
    if(fIsOn_AliProtonAbsorptionCorrection)
    {
    AliProtonAbsorptionCorrection * absorptioncorrection=new AliProtonAbsorptionCorrection();
    taskProtons->SetAnalysisObjectAbsorptionCorrection(absorptioncorrection);
    }
    if(fIsOn_AliProtonFeedDownAnalysis)
    {
    gROOT->LoadMacro("$ALICE_ROOT/PWG2/SPECTRA/macros/configProtonFeedDownAnalysis.C");
    AliProtonFeedDownAnalysis *analysisFeedDown = GetProtonFeedDownAnalysisObject();
    taskProtons->SetAnalysisObjectFeedDown(analysisFeedDown);
    }	
    if(fIsOn_AliProtonSpectraCorrection)
    {
    AliProtonSpectraCorrection* spectracorrection=new AliProtonSpectraCorrection();
    taskProtons->SetAnalysisObjectSpectraCorrection(spectracorrection);
    }*/
  gROOT->LoadMacro("$ALICE_ROOT/PWG2/SPECTRA/macros/configProtonCorrectionAnalysisTask.C"); 
  AliProtonCorrectionAnalysisTask* taskProtons=GetAliProtonCorrectionAnalysisTask(mode,analysisType,pidMode ,fIsOn_AliProtonAbsorptionCorrection, fIsOn_AliProtonFeedDownAnalysis, fIsOn_AliProtonSpectraCorrection); 
  mgr->AddTask(taskProtons);
  
  // Create containers for input/output
  AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList",TList::Class(),AliAnalysisManager::kOutputContainer,outputFilename.Data());
  
  //____________________________________________//
  mgr->ConnectInput(taskProtons,0,cinput1);
  mgr->ConnectOutput(taskProtons,0,coutput1);
  if (!mgr->InitAnalysis()) return;
  mgr->PrintStatus();
  
  if(dataset)
    mgr->StartAnalysis("proof",dataset,stats);
  else {
    // You should get this macro and the txt file from:
    // http://aliceinfo.cern.ch/Offline/Analysis/CAF/
    gROOT->LoadMacro("CreateESDChain.C");
    TChain* chain = 0x0;
    chain = CreateESDChain("ESD82XX_30K.txt",stats);
    chain->SetBranchStatus("*Calo*",0);
    
    mgr->StartAnalysis("proof",chain);
  }
}

//_________________________________________________//
Int_t setupPar(const char* pararchivename) {
  ///////////////////
  // Setup PAR File//
  ///////////////////
  if (pararchivename) {
    char processline[1024];
    sprintf(processline,".! tar xvzf %s.par",pararchivename);
    gROOT->ProcessLine(processline);
    const char* ocwd = gSystem->WorkingDirectory();
    gSystem->ChangeDirectory(pararchivename);
    
    // check for BUILD.sh and execute
    if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) {
      printf("*******************************\n");
      printf("*** Building PAR archive    ***\n");
      printf("*******************************\n");
      
      if (gSystem->Exec("PROOF-INF/BUILD.sh")) {
        Error("runAnalysis","Cannot Build the PAR Archive! - Abort!");
        return -1;
      }
    }
    // check for SETUP.C and execute
    if (!gSystem->AccessPathName("PROOF-INF/SETUP.C")) {
      printf("*******************************\n");
      printf("*** Setup PAR archive       ***\n");
      printf("*******************************\n");
      gROOT->Macro("PROOF-INF/SETUP.C");
    }
    
    gSystem->ChangeDirectory("../");
  } 
  return 1;
}
 runProtonsCorrectionAnalysis.C:1
 runProtonsCorrectionAnalysis.C:2
 runProtonsCorrectionAnalysis.C:3
 runProtonsCorrectionAnalysis.C:4
 runProtonsCorrectionAnalysis.C:5
 runProtonsCorrectionAnalysis.C:6
 runProtonsCorrectionAnalysis.C:7
 runProtonsCorrectionAnalysis.C:8
 runProtonsCorrectionAnalysis.C:9
 runProtonsCorrectionAnalysis.C:10
 runProtonsCorrectionAnalysis.C:11
 runProtonsCorrectionAnalysis.C:12
 runProtonsCorrectionAnalysis.C:13
 runProtonsCorrectionAnalysis.C:14
 runProtonsCorrectionAnalysis.C:15
 runProtonsCorrectionAnalysis.C:16
 runProtonsCorrectionAnalysis.C:17
 runProtonsCorrectionAnalysis.C:18
 runProtonsCorrectionAnalysis.C:19
 runProtonsCorrectionAnalysis.C:20
 runProtonsCorrectionAnalysis.C:21
 runProtonsCorrectionAnalysis.C:22
 runProtonsCorrectionAnalysis.C:23
 runProtonsCorrectionAnalysis.C:24
 runProtonsCorrectionAnalysis.C:25
 runProtonsCorrectionAnalysis.C:26
 runProtonsCorrectionAnalysis.C:27
 runProtonsCorrectionAnalysis.C:28
 runProtonsCorrectionAnalysis.C:29
 runProtonsCorrectionAnalysis.C:30
 runProtonsCorrectionAnalysis.C:31
 runProtonsCorrectionAnalysis.C:32
 runProtonsCorrectionAnalysis.C:33
 runProtonsCorrectionAnalysis.C:34
 runProtonsCorrectionAnalysis.C:35
 runProtonsCorrectionAnalysis.C:36
 runProtonsCorrectionAnalysis.C:37
 runProtonsCorrectionAnalysis.C:38
 runProtonsCorrectionAnalysis.C:39
 runProtonsCorrectionAnalysis.C:40
 runProtonsCorrectionAnalysis.C:41
 runProtonsCorrectionAnalysis.C:42
 runProtonsCorrectionAnalysis.C:43
 runProtonsCorrectionAnalysis.C:44
 runProtonsCorrectionAnalysis.C:45
 runProtonsCorrectionAnalysis.C:46
 runProtonsCorrectionAnalysis.C:47
 runProtonsCorrectionAnalysis.C:48
 runProtonsCorrectionAnalysis.C:49
 runProtonsCorrectionAnalysis.C:50
 runProtonsCorrectionAnalysis.C:51
 runProtonsCorrectionAnalysis.C:52
 runProtonsCorrectionAnalysis.C:53
 runProtonsCorrectionAnalysis.C:54
 runProtonsCorrectionAnalysis.C:55
 runProtonsCorrectionAnalysis.C:56
 runProtonsCorrectionAnalysis.C:57
 runProtonsCorrectionAnalysis.C:58
 runProtonsCorrectionAnalysis.C:59
 runProtonsCorrectionAnalysis.C:60
 runProtonsCorrectionAnalysis.C:61
 runProtonsCorrectionAnalysis.C:62
 runProtonsCorrectionAnalysis.C:63
 runProtonsCorrectionAnalysis.C:64
 runProtonsCorrectionAnalysis.C:65
 runProtonsCorrectionAnalysis.C:66
 runProtonsCorrectionAnalysis.C:67
 runProtonsCorrectionAnalysis.C:68
 runProtonsCorrectionAnalysis.C:69
 runProtonsCorrectionAnalysis.C:70
 runProtonsCorrectionAnalysis.C:71
 runProtonsCorrectionAnalysis.C:72
 runProtonsCorrectionAnalysis.C:73
 runProtonsCorrectionAnalysis.C:74
 runProtonsCorrectionAnalysis.C:75
 runProtonsCorrectionAnalysis.C:76
 runProtonsCorrectionAnalysis.C:77
 runProtonsCorrectionAnalysis.C:78
 runProtonsCorrectionAnalysis.C:79
 runProtonsCorrectionAnalysis.C:80
 runProtonsCorrectionAnalysis.C:81
 runProtonsCorrectionAnalysis.C:82
 runProtonsCorrectionAnalysis.C:83
 runProtonsCorrectionAnalysis.C:84
 runProtonsCorrectionAnalysis.C:85
 runProtonsCorrectionAnalysis.C:86
 runProtonsCorrectionAnalysis.C:87
 runProtonsCorrectionAnalysis.C:88
 runProtonsCorrectionAnalysis.C:89
 runProtonsCorrectionAnalysis.C:90
 runProtonsCorrectionAnalysis.C:91
 runProtonsCorrectionAnalysis.C:92
 runProtonsCorrectionAnalysis.C:93
 runProtonsCorrectionAnalysis.C:94
 runProtonsCorrectionAnalysis.C:95
 runProtonsCorrectionAnalysis.C:96
 runProtonsCorrectionAnalysis.C:97
 runProtonsCorrectionAnalysis.C:98
 runProtonsCorrectionAnalysis.C:99
 runProtonsCorrectionAnalysis.C:100
 runProtonsCorrectionAnalysis.C:101
 runProtonsCorrectionAnalysis.C:102
 runProtonsCorrectionAnalysis.C:103
 runProtonsCorrectionAnalysis.C:104
 runProtonsCorrectionAnalysis.C:105
 runProtonsCorrectionAnalysis.C:106
 runProtonsCorrectionAnalysis.C:107
 runProtonsCorrectionAnalysis.C:108
 runProtonsCorrectionAnalysis.C:109
 runProtonsCorrectionAnalysis.C:110
 runProtonsCorrectionAnalysis.C:111
 runProtonsCorrectionAnalysis.C:112
 runProtonsCorrectionAnalysis.C:113
 runProtonsCorrectionAnalysis.C:114
 runProtonsCorrectionAnalysis.C:115
 runProtonsCorrectionAnalysis.C:116
 runProtonsCorrectionAnalysis.C:117
 runProtonsCorrectionAnalysis.C:118
 runProtonsCorrectionAnalysis.C:119
 runProtonsCorrectionAnalysis.C:120
 runProtonsCorrectionAnalysis.C:121
 runProtonsCorrectionAnalysis.C:122
 runProtonsCorrectionAnalysis.C:123
 runProtonsCorrectionAnalysis.C:124
 runProtonsCorrectionAnalysis.C:125
 runProtonsCorrectionAnalysis.C:126
 runProtonsCorrectionAnalysis.C:127
 runProtonsCorrectionAnalysis.C:128
 runProtonsCorrectionAnalysis.C:129
 runProtonsCorrectionAnalysis.C:130
 runProtonsCorrectionAnalysis.C:131
 runProtonsCorrectionAnalysis.C:132
 runProtonsCorrectionAnalysis.C:133
 runProtonsCorrectionAnalysis.C:134
 runProtonsCorrectionAnalysis.C:135
 runProtonsCorrectionAnalysis.C:136
 runProtonsCorrectionAnalysis.C:137
 runProtonsCorrectionAnalysis.C:138
 runProtonsCorrectionAnalysis.C:139
 runProtonsCorrectionAnalysis.C:140
 runProtonsCorrectionAnalysis.C:141
 runProtonsCorrectionAnalysis.C:142
 runProtonsCorrectionAnalysis.C:143
 runProtonsCorrectionAnalysis.C:144
 runProtonsCorrectionAnalysis.C:145
 runProtonsCorrectionAnalysis.C:146
 runProtonsCorrectionAnalysis.C:147
 runProtonsCorrectionAnalysis.C:148
 runProtonsCorrectionAnalysis.C:149
 runProtonsCorrectionAnalysis.C:150
 runProtonsCorrectionAnalysis.C:151
 runProtonsCorrectionAnalysis.C:152
 runProtonsCorrectionAnalysis.C:153
 runProtonsCorrectionAnalysis.C:154
 runProtonsCorrectionAnalysis.C:155
 runProtonsCorrectionAnalysis.C:156
 runProtonsCorrectionAnalysis.C:157
 runProtonsCorrectionAnalysis.C:158
 runProtonsCorrectionAnalysis.C:159
 runProtonsCorrectionAnalysis.C:160
 runProtonsCorrectionAnalysis.C:161
 runProtonsCorrectionAnalysis.C:162
 runProtonsCorrectionAnalysis.C:163
 runProtonsCorrectionAnalysis.C:164
 runProtonsCorrectionAnalysis.C:165
 runProtonsCorrectionAnalysis.C:166
 runProtonsCorrectionAnalysis.C:167
 runProtonsCorrectionAnalysis.C:168
 runProtonsCorrectionAnalysis.C:169
 runProtonsCorrectionAnalysis.C:170
 runProtonsCorrectionAnalysis.C:171
 runProtonsCorrectionAnalysis.C:172
 runProtonsCorrectionAnalysis.C:173
 runProtonsCorrectionAnalysis.C:174
 runProtonsCorrectionAnalysis.C:175
 runProtonsCorrectionAnalysis.C:176
 runProtonsCorrectionAnalysis.C:177
 runProtonsCorrectionAnalysis.C:178
 runProtonsCorrectionAnalysis.C:179
 runProtonsCorrectionAnalysis.C:180
 runProtonsCorrectionAnalysis.C:181
 runProtonsCorrectionAnalysis.C:182
 runProtonsCorrectionAnalysis.C:183
 runProtonsCorrectionAnalysis.C:184
 runProtonsCorrectionAnalysis.C:185
 runProtonsCorrectionAnalysis.C:186
 runProtonsCorrectionAnalysis.C:187
 runProtonsCorrectionAnalysis.C:188
 runProtonsCorrectionAnalysis.C:189
 runProtonsCorrectionAnalysis.C:190
 runProtonsCorrectionAnalysis.C:191
 runProtonsCorrectionAnalysis.C:192
 runProtonsCorrectionAnalysis.C:193
 runProtonsCorrectionAnalysis.C:194
 runProtonsCorrectionAnalysis.C:195
 runProtonsCorrectionAnalysis.C:196
 runProtonsCorrectionAnalysis.C:197
 runProtonsCorrectionAnalysis.C:198
 runProtonsCorrectionAnalysis.C:199
 runProtonsCorrectionAnalysis.C:200
 runProtonsCorrectionAnalysis.C:201
 runProtonsCorrectionAnalysis.C:202
 runProtonsCorrectionAnalysis.C:203
 runProtonsCorrectionAnalysis.C:204
 runProtonsCorrectionAnalysis.C:205
 runProtonsCorrectionAnalysis.C:206
 runProtonsCorrectionAnalysis.C:207
 runProtonsCorrectionAnalysis.C:208
 runProtonsCorrectionAnalysis.C:209
 runProtonsCorrectionAnalysis.C:210
 runProtonsCorrectionAnalysis.C:211
 runProtonsCorrectionAnalysis.C:212
 runProtonsCorrectionAnalysis.C:213
 runProtonsCorrectionAnalysis.C:214
 runProtonsCorrectionAnalysis.C:215
 runProtonsCorrectionAnalysis.C:216
 runProtonsCorrectionAnalysis.C:217
 runProtonsCorrectionAnalysis.C:218
 runProtonsCorrectionAnalysis.C:219
 runProtonsCorrectionAnalysis.C:220
 runProtonsCorrectionAnalysis.C:221
 runProtonsCorrectionAnalysis.C:222
 runProtonsCorrectionAnalysis.C:223
 runProtonsCorrectionAnalysis.C:224
 runProtonsCorrectionAnalysis.C:225
 runProtonsCorrectionAnalysis.C:226
 runProtonsCorrectionAnalysis.C:227
 runProtonsCorrectionAnalysis.C:228
 runProtonsCorrectionAnalysis.C:229
 runProtonsCorrectionAnalysis.C:230
 runProtonsCorrectionAnalysis.C:231
 runProtonsCorrectionAnalysis.C:232
 runProtonsCorrectionAnalysis.C:233
 runProtonsCorrectionAnalysis.C:234
 runProtonsCorrectionAnalysis.C:235
 runProtonsCorrectionAnalysis.C:236
 runProtonsCorrectionAnalysis.C:237
 runProtonsCorrectionAnalysis.C:238
 runProtonsCorrectionAnalysis.C:239
 runProtonsCorrectionAnalysis.C:240
 runProtonsCorrectionAnalysis.C:241
 runProtonsCorrectionAnalysis.C:242
 runProtonsCorrectionAnalysis.C:243
 runProtonsCorrectionAnalysis.C:244
 runProtonsCorrectionAnalysis.C:245
 runProtonsCorrectionAnalysis.C:246
 runProtonsCorrectionAnalysis.C:247
 runProtonsCorrectionAnalysis.C:248
 runProtonsCorrectionAnalysis.C:249
 runProtonsCorrectionAnalysis.C:250
 runProtonsCorrectionAnalysis.C:251
 runProtonsCorrectionAnalysis.C:252
 runProtonsCorrectionAnalysis.C:253
 runProtonsCorrectionAnalysis.C:254
 runProtonsCorrectionAnalysis.C:255
 runProtonsCorrectionAnalysis.C:256
 runProtonsCorrectionAnalysis.C:257
 runProtonsCorrectionAnalysis.C:258
 runProtonsCorrectionAnalysis.C:259
 runProtonsCorrectionAnalysis.C:260
 runProtonsCorrectionAnalysis.C:261
 runProtonsCorrectionAnalysis.C:262
 runProtonsCorrectionAnalysis.C:263
 runProtonsCorrectionAnalysis.C:264
 runProtonsCorrectionAnalysis.C:265
 runProtonsCorrectionAnalysis.C:266
 runProtonsCorrectionAnalysis.C:267
 runProtonsCorrectionAnalysis.C:268
 runProtonsCorrectionAnalysis.C:269
 runProtonsCorrectionAnalysis.C:270
 runProtonsCorrectionAnalysis.C:271
 runProtonsCorrectionAnalysis.C:272
 runProtonsCorrectionAnalysis.C:273
 runProtonsCorrectionAnalysis.C:274
 runProtonsCorrectionAnalysis.C:275
 runProtonsCorrectionAnalysis.C:276
 runProtonsCorrectionAnalysis.C:277
 runProtonsCorrectionAnalysis.C:278
 runProtonsCorrectionAnalysis.C:279
 runProtonsCorrectionAnalysis.C:280
 runProtonsCorrectionAnalysis.C:281
 runProtonsCorrectionAnalysis.C:282
 runProtonsCorrectionAnalysis.C:283
 runProtonsCorrectionAnalysis.C:284
 runProtonsCorrectionAnalysis.C:285
 runProtonsCorrectionAnalysis.C:286
 runProtonsCorrectionAnalysis.C:287
 runProtonsCorrectionAnalysis.C:288
 runProtonsCorrectionAnalysis.C:289
 runProtonsCorrectionAnalysis.C:290
 runProtonsCorrectionAnalysis.C:291
 runProtonsCorrectionAnalysis.C:292
 runProtonsCorrectionAnalysis.C:293
 runProtonsCorrectionAnalysis.C:294
 runProtonsCorrectionAnalysis.C:295
 runProtonsCorrectionAnalysis.C:296
 runProtonsCorrectionAnalysis.C:297
 runProtonsCorrectionAnalysis.C:298
 runProtonsCorrectionAnalysis.C:299
 runProtonsCorrectionAnalysis.C:300
 runProtonsCorrectionAnalysis.C:301
 runProtonsCorrectionAnalysis.C:302
 runProtonsCorrectionAnalysis.C:303
 runProtonsCorrectionAnalysis.C:304
 runProtonsCorrectionAnalysis.C:305
 runProtonsCorrectionAnalysis.C:306
 runProtonsCorrectionAnalysis.C:307
 runProtonsCorrectionAnalysis.C:308
 runProtonsCorrectionAnalysis.C:309
 runProtonsCorrectionAnalysis.C:310
 runProtonsCorrectionAnalysis.C:311
 runProtonsCorrectionAnalysis.C:312
 runProtonsCorrectionAnalysis.C:313
 runProtonsCorrectionAnalysis.C:314
 runProtonsCorrectionAnalysis.C:315
 runProtonsCorrectionAnalysis.C:316
 runProtonsCorrectionAnalysis.C:317
 runProtonsCorrectionAnalysis.C:318
 runProtonsCorrectionAnalysis.C:319
 runProtonsCorrectionAnalysis.C:320
 runProtonsCorrectionAnalysis.C:321
 runProtonsCorrectionAnalysis.C:322
 runProtonsCorrectionAnalysis.C:323
 runProtonsCorrectionAnalysis.C:324
 runProtonsCorrectionAnalysis.C:325
 runProtonsCorrectionAnalysis.C:326
 runProtonsCorrectionAnalysis.C:327
 runProtonsCorrectionAnalysis.C:328
 runProtonsCorrectionAnalysis.C:329
 runProtonsCorrectionAnalysis.C:330
 runProtonsCorrectionAnalysis.C:331
 runProtonsCorrectionAnalysis.C:332
 runProtonsCorrectionAnalysis.C:333
 runProtonsCorrectionAnalysis.C:334
 runProtonsCorrectionAnalysis.C:335
 runProtonsCorrectionAnalysis.C:336
 runProtonsCorrectionAnalysis.C:337
 runProtonsCorrectionAnalysis.C:338
 runProtonsCorrectionAnalysis.C:339
 runProtonsCorrectionAnalysis.C:340
 runProtonsCorrectionAnalysis.C:341
 runProtonsCorrectionAnalysis.C:342
 runProtonsCorrectionAnalysis.C:343
 runProtonsCorrectionAnalysis.C:344
 runProtonsCorrectionAnalysis.C:345
 runProtonsCorrectionAnalysis.C:346
 runProtonsCorrectionAnalysis.C:347
 runProtonsCorrectionAnalysis.C:348
 runProtonsCorrectionAnalysis.C:349
 runProtonsCorrectionAnalysis.C:350
 runProtonsCorrectionAnalysis.C:351
 runProtonsCorrectionAnalysis.C:352
 runProtonsCorrectionAnalysis.C:353
 runProtonsCorrectionAnalysis.C:354
 runProtonsCorrectionAnalysis.C:355
 runProtonsCorrectionAnalysis.C:356
 runProtonsCorrectionAnalysis.C:357
 runProtonsCorrectionAnalysis.C:358
 runProtonsCorrectionAnalysis.C:359
 runProtonsCorrectionAnalysis.C:360
 runProtonsCorrectionAnalysis.C:361
 runProtonsCorrectionAnalysis.C:362
 runProtonsCorrectionAnalysis.C:363
 runProtonsCorrectionAnalysis.C:364
 runProtonsCorrectionAnalysis.C:365
 runProtonsCorrectionAnalysis.C:366
 runProtonsCorrectionAnalysis.C:367
 runProtonsCorrectionAnalysis.C:368
 runProtonsCorrectionAnalysis.C:369
 runProtonsCorrectionAnalysis.C:370
 runProtonsCorrectionAnalysis.C:371
 runProtonsCorrectionAnalysis.C:372
 runProtonsCorrectionAnalysis.C:373
 runProtonsCorrectionAnalysis.C:374
 runProtonsCorrectionAnalysis.C:375
 runProtonsCorrectionAnalysis.C:376
 runProtonsCorrectionAnalysis.C:377
 runProtonsCorrectionAnalysis.C:378
 runProtonsCorrectionAnalysis.C:379
 runProtonsCorrectionAnalysis.C:380
 runProtonsCorrectionAnalysis.C:381
 runProtonsCorrectionAnalysis.C:382
 runProtonsCorrectionAnalysis.C:383
 runProtonsCorrectionAnalysis.C:384
 runProtonsCorrectionAnalysis.C:385
 runProtonsCorrectionAnalysis.C:386
 runProtonsCorrectionAnalysis.C:387
 runProtonsCorrectionAnalysis.C:388
 runProtonsCorrectionAnalysis.C:389
 runProtonsCorrectionAnalysis.C:390
 runProtonsCorrectionAnalysis.C:391
 runProtonsCorrectionAnalysis.C:392
 runProtonsCorrectionAnalysis.C:393
 runProtonsCorrectionAnalysis.C:394
 runProtonsCorrectionAnalysis.C:395
 runProtonsCorrectionAnalysis.C:396
 runProtonsCorrectionAnalysis.C:397
 runProtonsCorrectionAnalysis.C:398
 runProtonsCorrectionAnalysis.C:399
 runProtonsCorrectionAnalysis.C:400
 runProtonsCorrectionAnalysis.C:401
 runProtonsCorrectionAnalysis.C:402
 runProtonsCorrectionAnalysis.C:403
 runProtonsCorrectionAnalysis.C:404
 runProtonsCorrectionAnalysis.C:405
 runProtonsCorrectionAnalysis.C:406
 runProtonsCorrectionAnalysis.C:407
 runProtonsCorrectionAnalysis.C:408
 runProtonsCorrectionAnalysis.C:409
 runProtonsCorrectionAnalysis.C:410
 runProtonsCorrectionAnalysis.C:411
 runProtonsCorrectionAnalysis.C:412
 runProtonsCorrectionAnalysis.C:413
 runProtonsCorrectionAnalysis.C:414
 runProtonsCorrectionAnalysis.C:415
 runProtonsCorrectionAnalysis.C:416
 runProtonsCorrectionAnalysis.C:417
 runProtonsCorrectionAnalysis.C:418
 runProtonsCorrectionAnalysis.C:419
 runProtonsCorrectionAnalysis.C:420
 runProtonsCorrectionAnalysis.C:421
 runProtonsCorrectionAnalysis.C:422
 runProtonsCorrectionAnalysis.C:423
 runProtonsCorrectionAnalysis.C:424
 runProtonsCorrectionAnalysis.C:425
 runProtonsCorrectionAnalysis.C:426
 runProtonsCorrectionAnalysis.C:427
 runProtonsCorrectionAnalysis.C:428
 runProtonsCorrectionAnalysis.C:429
 runProtonsCorrectionAnalysis.C:430
 runProtonsCorrectionAnalysis.C:431
 runProtonsCorrectionAnalysis.C:432
 runProtonsCorrectionAnalysis.C:433
 runProtonsCorrectionAnalysis.C:434
 runProtonsCorrectionAnalysis.C:435
 runProtonsCorrectionAnalysis.C:436
 runProtonsCorrectionAnalysis.C:437
 runProtonsCorrectionAnalysis.C:438
 runProtonsCorrectionAnalysis.C:439
 runProtonsCorrectionAnalysis.C:440
 runProtonsCorrectionAnalysis.C:441
 runProtonsCorrectionAnalysis.C:442
 runProtonsCorrectionAnalysis.C:443
 runProtonsCorrectionAnalysis.C:444
 runProtonsCorrectionAnalysis.C:445
 runProtonsCorrectionAnalysis.C:446
 runProtonsCorrectionAnalysis.C:447
 runProtonsCorrectionAnalysis.C:448
 runProtonsCorrectionAnalysis.C:449
 runProtonsCorrectionAnalysis.C:450
 runProtonsCorrectionAnalysis.C:451
 runProtonsCorrectionAnalysis.C:452
 runProtonsCorrectionAnalysis.C:453
 runProtonsCorrectionAnalysis.C:454
 runProtonsCorrectionAnalysis.C:455
 runProtonsCorrectionAnalysis.C:456
 runProtonsCorrectionAnalysis.C:457
 runProtonsCorrectionAnalysis.C:458
 runProtonsCorrectionAnalysis.C:459
 runProtonsCorrectionAnalysis.C:460
 runProtonsCorrectionAnalysis.C:461
 runProtonsCorrectionAnalysis.C:462
 runProtonsCorrectionAnalysis.C:463
 runProtonsCorrectionAnalysis.C:464
 runProtonsCorrectionAnalysis.C:465
 runProtonsCorrectionAnalysis.C:466
 runProtonsCorrectionAnalysis.C:467
 runProtonsCorrectionAnalysis.C:468
 runProtonsCorrectionAnalysis.C:469