ROOT logo
void runProtonAnalysis(Bool_t kAnalyzeMC = kTRUE,
		       const char* esdAnalysisType = "Hybrid",
		       const char* pidMode = "Ratio",
		       Bool_t kUseOnlineTrigger = kTRUE,
		       Bool_t kUseOfflineTrigger = kTRUE,
		       Bool_t kRunQA = kFALSE) {
  //Macro to run the proton analysis tested for local, proof & GRID.
  //Local: Takes six arguments, the analysis mode, a boolean to define the ESD
  //       analysis of MC data, the type of the ESD analysis, the PID mode, 
  //       the run number for the offline trigger in case of real data 
  //       analysis and the path where the tag and ESD or AOD files reside.
  //Interactive: Takes six arguments, the analysis mode, a boolean to define 
  //             the ESD analysis of MC data, the type of the ESD analysis, 
  //             the PID mode, the run number for the offline trigger in case 
  //             of real data analysis and the name of the collection of tag 
  //             files.
  //Batch: Takes six arguments, the analysis mode, a boolean to define 
  //       the ESD analysis of MC data, the type of the ESD analysis, 
  //       the PID mode, the run number for the offline trigger in case 
  //       of real data analysis and the name of the collection file with 
  //       the event list for each file.
  //Proof: Takes eight arguments, the analysis mode, a boolean to define 
  //       the ESD analysis of MC data, the type of the ESD analysis, 
  //       the PID mode, the run number for the offline trigger in case 
  //       of real data analysis, the number of events to be analyzed, 
  //       the event number from where we start the analysis and the dataset 
  //========================================================================
  //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) 
  //   "Sigma" (N-sigma area around the fitted dE/dx vs P band)
  TStopwatch timer;
  timer.Start();
  
  /*runLocal("ESD", 
    kAnalyzeMC,
    esdAnalysisType,
    pidMode, kUseOnlineTrigger,kUseOfflineTrigger,    
    kRunQA,
    "/home/pchrist/ALICE/Baryons/Data/104070");*/
  //runInteractive("ESD", kAnalyzeMC, esdAnalysisType, pidMode, kUseOnlineTrigger, kUseOfflineTrigger, kRunQA, "tag.xml");
  //runBatch("ESD", kAnalyzeMC, esdAnalysisType, pidMode, kUseOnlineTrigger, kUseOfflineTrigger, kRunQA, "wn.xml");  
  runProof("ESD", kAnalyzeMC, esdAnalysisType, pidMode, kUseOnlineTrigger, 
	   kUseOfflineTrigger, kRunQA,
	   500000,0,"/COMMON/COMMON/LHC10a8_run104867_8#esdTree");

  timer.Stop();
  timer.Print();
}

//_________________________________________________//
void runLocal(const char* mode = "ESD",
	      Bool_t kAnalyzeMC = kTRUE,
	      const char* analysisType = 0x0,
	      const char* pidMode = 0x0,
	      Bool_t kUseOnlineTrigger = kTRUE,
	      Bool_t kUseOfflineTrigger = kTRUE,
	      Bool_t kRunQA = kFALSE,
	      const char* path = "/home/pchrist/ALICE/Alien/Tutorial/November2007/Tags") {
  TString smode = mode;
  TString cutFilename = "ListOfCuts."; cutFilename += mode;
  TString outputFilename = "Protons."; outputFilename += mode;
  if(analysisType) {
    cutFilename += "."; cutFilename += analysisType;
    outputFilename += "."; outputFilename += analysisType;
  }
  if(pidMode) {
    cutFilename += "."; cutFilename += pidMode;
    outputFilename += "."; outputFilename += pidMode;
  }
 cutFilename += ".root";
 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);

  //____________________________________________//
  gROOT->LoadMacro("configProtonAnalysis.C");
  AliProtonAnalysis *analysis = GetProtonAnalysisObject(mode,kAnalyzeMC,
							analysisType,
							pidMode,
							kUseOnlineTrigger,
							kUseOfflineTrigger,
							kRunQA);
  //____________________________________________//
  // Make the analysis manager
  AliAnalysisManager *mgr = new AliAnalysisManager("protonAnalysisManager");
  AliVEventHandler* esdH = new AliESDInputHandler;
  mgr->SetInputEventHandler(esdH);  
  if(smode == "MC") {
    AliMCEventHandler *mc = new AliMCEventHandler();
    mgr->SetMCtruthEventHandler(mc);
  }
  
  //____________________________________________//
  //Create the proton task
  AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons");
  taskProtons->SetAnalysisObject(analysis);
  mgr->AddTask(taskProtons);

  // Create containers for input/output
  AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList",
                                                            TList::Class(),
							    AliAnalysisManager::kOutputContainer,
                                                            outputFilename.Data());
  AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("outputQAList",
                                                            TList::Class(),
							    AliAnalysisManager::kOutputContainer,
                                                            outputFilename.Data());
  /*AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("cutCanvas",
                                                            TCanvas::Class(),
							    AliAnalysisManager::kOutputContainer,
                                                            outputFilename.Data());*/

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

//_________________________________________________//
void runInteractive(const char* mode = "ESD",
		    Bool_t kAnalyzeMC = kTRUE,
		    const char* analysisType = 0x0,
		    const char* pidMode = 0x0,
		    Bool_t kUseOnlineTrigger = kTRUE,
		    Bool_t kUseOfflineTrigger = kTRUE,
		    Bool_t kRunQA = kFALSE,
		    const char* collectionName = "tag.xml") {
  gSystem->Load("libProofPlayer.so");
  
  TString smode = mode;
  TString cutFilename = "ListOfCuts."; cutFilename += mode;
  TString outputFilename = "Protons."; outputFilename += mode;
  if(analysisType) {
    cutFilename += "."; cutFilename += analysisType;
    outputFilename += "."; outputFilename += analysisType;
  }
  if(pidMode) {
    cutFilename += "."; cutFilename += pidMode;
    outputFilename += "."; outputFilename += pidMode;
  }
  cutFilename += ".root";
  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);
  
  //____________________________________________//
  gROOT->LoadMacro("configProtonAnalysis.C");
  AliProtonAnalysis *analysis = GetProtonAnalysisObject(mode,kAnalyzeMC,
							analysisType,
							pidMode,
							kUseOnlineTrigger,
							kUseOfflineTrigger,
							kRunQA);
  //runNumberForOfflineTtrigger);
  //____________________________________________//
  // Make the analysis manager
  AliAnalysisManager *mgr = new AliAnalysisManager("protonAnalysisManager");
  AliVEventHandler* esdH = new AliESDInputHandler;
  mgr->SetInputEventHandler(esdH);  
  if(smode == "MC") {
    AliMCEventHandler *mc = new AliMCEventHandler();
    mgr->SetMCtruthEventHandler(mc);
  }

  //____________________________________________//
  //Create the proton task
  AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons");
  taskProtons->SetAnalysisObject(analysis);
  mgr->AddTask(taskProtons);

  // Create containers for input/output
  AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList",
                                                            TList::Class(),
							    AliAnalysisManager::kOutputContainer,
                                                            outputFilename.Data());
  AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("outputQAList",
                                                            TList::Class(),
							    AliAnalysisManager::kOutputContainer,
                                                            outputFilename.Data());
  /*AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("cutCanvas",
                                                            TCanvas::Class(),
							    AliAnalysisManager::kOutputContainer,
                                                            outputFilename.Data());*/

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

//_________________________________________________//
void runBatch(const char* mode = "ESD",
	      Bool_t kAnalyzeMC = kTRUE,
	      const char* analysisType = 0x0,
	      const char* pidMode = 0x0,
	      Bool_t kUseOnlineTrigger = kTRUE,
	      Bool_t kUseOfflineTrigger = kTRUE,
	      Bool_t kRunQA = kFALSE,
	      const char *collectionfile = "wn.xml") {
  TString smode = mode;
  TString cutFilename = "ListOfCuts."; cutFilename += mode;
  TString outputFilename = "Protons."; outputFilename += mode;
  if(analysisType) {
    cutFilename += "."; cutFilename += analysisType;
    outputFilename += "."; outputFilename += analysisType;
  }
  if(pidMode) {
    cutFilename += "."; cutFilename += pidMode;
    outputFilename += "."; outputFilename += pidMode;
  }
  cutFilename += ".root";
  outputFilename += ".root";

  printf("*** Connect to AliEn ***\n");
  TGrid::Connect("alien://");
  gSystem->Load("libProofPlayer.so");

  //____________________________________________________//
  //_____________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");
  //____________________________________________________//  

  //____________________________________________//
  //Usage of event tags
  AliTagAnalysis *tagAnalysis = new AliTagAnalysis();
  TChain *chain = 0x0;
  chain = tagAnalysis->GetChainFromCollection(collectionfile,"esdTree");
  chain->SetBranchStatus("*Calo*",0);

  //____________________________________________//
  gROOT->LoadMacro("configProtonAnalysis.C");
  AliProtonAnalysis *analysis = GetProtonAnalysisObject(mode,kAnalyzeMC,
							analysisType,
							pidMode,
							kUseOnlineTrigger,
							kUseOfflineTrigger,
							kRunQA);
  //runNumberForOfflineTtrigger);
  //____________________________________________//
  // Make the analysis manager
  AliAnalysisManager *mgr = new AliAnalysisManager("protonAnalysisManager");
  AliVEventHandler* esdH = new AliESDInputHandler;
  mgr->SetInputEventHandler(esdH);  
  if(smode == "MC") {
    AliMCEventHandler *mc = new AliMCEventHandler();
    mgr->SetMCtruthEventHandler(mc);
  }
  
  //____________________________________________//
  //Create the proton task
  AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons");
  taskProtons->SetAnalysisObject(analysis);
  mgr->AddTask(taskProtons);

  // Create containers for input/output
  AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList",
                                                            TList::Class(),
							    AliAnalysisManager::kOutputContainer,
                                                            outputFilename.Data());
  AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("outputQAList",
                                                            TList::Class(),
							    AliAnalysisManager::kOutputContainer,
                                                            outputFilename.Data());
  /*AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("cutCanvas",
                                                            TCanvas::Class(),
							    AliAnalysisManager::kOutputContainer,
                                                            outputFilename.Data());*/
  
  //____________________________________________//
  mgr->ConnectInput(taskProtons,0,cinput1);
  mgr->ConnectOutput(taskProtons,0,coutput1);
  mgr->ConnectOutput(taskProtons,1,coutput2);
  //mgr->ConnectOutput(taskProtons,2,coutput3);
  if (!mgr->InitAnalysis()) return;
  mgr->PrintStatus();
  mgr->StartAnalysis("grid",chain);
}

//_________________________________________________//
void runProof(const char* mode = "ESD",
	      Bool_t kAnalyzeMC = kTRUE,
	      const char* analysisType = 0x0,
	      const char* pidMode = 0x0,
	      Bool_t kUseOnlineTrigger = kTRUE,
	      Bool_t kUseOfflineTrigger = kTRUE,
	      Bool_t kRunQA = kFALSE,
	      Int_t stats = 0, Int_t startingPoint = 0,
	      const char* dataset = 0x0) {  
  TString smode = mode;
  TString cutFilename = "ListOfCuts."; cutFilename += mode;
  TString outputFilename = "Protons."; outputFilename += mode;
  if(analysisType) {
    cutFilename += "."; cutFilename += analysisType;
    outputFilename += "."; outputFilename += analysisType;
  }
  if(pidMode) {
    cutFilename += "."; cutFilename += pidMode;
    outputFilename += "."; outputFilename += pidMode;
  }
  cutFilename += ".root";
  outputFilename += ".root";

  gEnv->SetValue("XSec.GSI.DelegProxy","2");
  printf("****** Connect to PROOF *******\n");
  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");
  
  //____________________________________________//
  gROOT->LoadMacro("configProtonAnalysis.C");
  AliProtonAnalysis *analysis = GetProtonAnalysisObject(mode,kAnalyzeMC,
							analysisType,
							pidMode,
							kUseOnlineTrigger,
							kUseOfflineTrigger,
							kRunQA);
  //____________________________________________//

  //____________________________________________//
  // Make the analysis manager
  AliAnalysisManager *mgr = new AliAnalysisManager("protonAnalysisManager");
  AliVEventHandler* esdH = new AliESDInputHandler;
  mgr->SetInputEventHandler(esdH);
  if(smode == "MC") {
    AliMCEventHandler *mc = new AliMCEventHandler();
    mgr->SetMCtruthEventHandler(mc);
  }
  //____________________________________________//
  //Create the proton task
  AliAnalysisTaskProtons *taskProtons = new AliAnalysisTaskProtons("TaskProtons");
  taskProtons->SetAnalysisObject(analysis);
  mgr->AddTask(taskProtons);

  // Create containers for input/output
  AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList",
                                                            TList::Class(),
							    AliAnalysisManager::kOutputContainer,
                                                            outputFilename.Data());
  AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("outputQAList",
                                                            TList::Class(),
							    AliAnalysisManager::kOutputContainer,
                                                            outputFilename.Data());
  /*AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("cutCanvas",
                                                            TCanvas::Class(),
							    AliAnalysisManager::kOutputContainer,
                                                            outputFilename.Data());*/

  //____________________________________________//
  mgr->ConnectInput(taskProtons,0,cinput1);
  mgr->ConnectOutput(taskProtons,0,coutput1);
  mgr->ConnectOutput(taskProtons,1,coutput2);
  //mgr->ConnectOutput(taskProtons,3,coutput3);
  if (!mgr->InitAnalysis()) return;
  mgr->PrintStatus();

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