ROOT logo
void runProtonsFeedDownAnalysis(const char* esdAnalysisType = "Hybrid",
				const char* pidMode = "Bayesian") {
  //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","TPC","Bayesian","/home/mbroz/FeedDownAnalysis/");
  //runInteractive("ESD","TPC","Bayesian","pp0901.xml");
  runBatch("ESD","TPC","Bayesian","wn.xml");  
  // runProof("ESD","TPC","Bayesian",200000,"/COMMON/COMMON/LHC09a4_run8101X");
  
  timer.Stop();
  timer.Print();
}

//_________________________________________________//
void runLocal(const char* mode = "ESD",
	      const char* analysisType = 0x0,
	      const char* pidMode = 0x0,
	      const char* path = 0x0) {
  TString smode = mode;
  TString outputFilename = "Protons.FeedDown."; 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);

  //____________________________________________//
  gROOT->LoadMacro("configProtonFeedDownAnalysis.C");
  AliProtonFeedDownAnalysis *analysis = GetProtonFeedDownAnalysisObject(mode,
									analysisType,
									pidMode);
  //____________________________________________//
  // Make the analysis manager
  AliAnalysisManager *mgr = new AliAnalysisManager("protonAnalysisManagerFD");
  AliVEventHandler* esdH = new AliESDInputHandler;
  mgr->SetInputEventHandler(esdH);
  AliMCEventHandler *mc = new AliMCEventHandler();
  mgr->SetMCtruthEventHandler(mc);

  //____________________________________________//
  AliProtonFeedDownAnalysisTask *taskProtons = new AliProtonFeedDownAnalysisTask("TaskProtonsFD");
  taskProtons->SetAnalysisObject(analysis);
  mgr->AddTask(taskProtons);

  // Create containers for input/output
  AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
							   TChain::Class(),
							   AliAnalysisManager::kInputContainer);
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList",
                                                            TList::Class(),
							    AliAnalysisManager::kOutputContainer,
                                                            outputFilename.Data());

  //____________________________________________//
  mgr->ConnectInput(taskProtons,0,mgr->GetCommonInputContainer());
  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") {
  gSystem->Load("libProofPlayer.so");

  TString smode = mode;
  TString outputFilename = "Protons.FeedDown."; 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);
  
  //____________________________________________//
  gROOT->LoadMacro("configProtonFeedDownAnalysis.C");
  AliProtonFeedDownAnalysis *analysis = GetProtonFeedDownAnalysisObject(mode,
									analysisType,
									pidMode);
  //____________________________________________//
  // Make the analysis manager
  // Make the analysis manager
  AliAnalysisManager *mgr = new AliAnalysisManager("protonAnalysisManagerFD");
  AliVEventHandler* esdH = new AliESDInputHandler;
  mgr->SetInputEventHandler(esdH);
  AliMCEventHandler *mc = new AliMCEventHandler();
  mgr->SetMCtruthEventHandler(mc);

  //____________________________________________//
  AliProtonFeedDownAnalysisTask *taskProtons = new AliProtonFeedDownAnalysisTask("TaskProtonsFD");
  taskProtons->SetAnalysisObject(analysis);
  mgr->AddTask(taskProtons);

  // Create containers for input/output
  AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
							   TChain::Class(),
							   AliAnalysisManager::kInputContainer);
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList",
                                                            TList::Class(),
							    AliAnalysisManager::kOutputContainer,
                                                            outputFilename.Data());
  
  //____________________________________________//
  mgr->ConnectInput(taskProtons,0,mgr->GetCommonInputContainer());
  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") {
  TString smode = mode;
  TString outputFilename = "Protons.FeedDown."; 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");

  //____________________________________________//
  gROOT->LoadMacro("configProtonFeedDownAnalysis.C");
  AliProtonFeedDownAnalysis *analysis = GetProtonFeedDownAnalysisObject(mode,
									analysisType,
									pidMode);
  //____________________________________________//
  // Make the analysis manager
  AliAnalysisManager *mgr = new AliAnalysisManager("protonAnalysisManagerFD");
  AliVEventHandler* esdH = new AliESDInputHandler;
  mgr->SetInputEventHandler(esdH);
  AliMCEventHandler *mc = new AliMCEventHandler();
  mgr->SetMCtruthEventHandler(mc);

  //____________________________________________//
  AliProtonFeedDownAnalysisTask *taskProtons = new AliProtonFeedDownAnalysisTask("TaskProtonsFD");
  taskProtons->SetAnalysisObject(analysis);
  mgr->AddTask(taskProtons);

  // Create containers for input/output
  AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
							   TChain::Class(),
							   AliAnalysisManager::kInputContainer);
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList",
                                                            TList::Class(),
							    AliAnalysisManager::kOutputContainer,
                                                            outputFilename.Data());

  //____________________________________________//
  mgr->ConnectInput(taskProtons,0,mgr->GetCommonInputContainer());
  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) {  
  TString smode = mode;
  TString outputFilename = "Protons.FeedDown."; outputFilename += mode;
  if(analysisType) {
    outputFilename += "."; outputFilename += analysisType;
  }
  outputFilename += ".root";

  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("configProtonFeedDownAnalysis.C");
  AliProtonFeedDownAnalysis *analysis = GetProtonFeedDownAnalysisObject(mode,
									analysisType,
									pidMode);
  //____________________________________________//

  //____________________________________________//
  // Make the analysis manager
  AliAnalysisManager *mgr = new AliAnalysisManager("protonAnalysisManagerFD");
  AliVEventHandler* esdH = new AliESDInputHandler;
  mgr->SetInputEventHandler(esdH);
  AliMCEventHandler *mc = new AliMCEventHandler();
  mgr->SetMCtruthEventHandler(mc);
  //____________________________________________//
  //Create the proton task
  AliProtonFeedDownAnalysisTask *taskProtons = new AliProtonFeedDownAnalysisTask("TaskProtonsFD");
  taskProtons->SetAnalysisObject(analysis);
  mgr->AddTask(taskProtons);

  // Create containers for input/output
  AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
							   TChain::Class(),
							   AliAnalysisManager::kInputContainer);
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList",
                                                            TList::Class(),
							    AliAnalysisManager::kOutputContainer,
                                                            outputFilename.Data());

  //____________________________________________//
  mgr->ConnectInput(taskProtons,0,mgr->GetCommonInputContainer());
  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;
}
 runProtonsFeedDownAnalysis.C:1
 runProtonsFeedDownAnalysis.C:2
 runProtonsFeedDownAnalysis.C:3
 runProtonsFeedDownAnalysis.C:4
 runProtonsFeedDownAnalysis.C:5
 runProtonsFeedDownAnalysis.C:6
 runProtonsFeedDownAnalysis.C:7
 runProtonsFeedDownAnalysis.C:8
 runProtonsFeedDownAnalysis.C:9
 runProtonsFeedDownAnalysis.C:10
 runProtonsFeedDownAnalysis.C:11
 runProtonsFeedDownAnalysis.C:12
 runProtonsFeedDownAnalysis.C:13
 runProtonsFeedDownAnalysis.C:14
 runProtonsFeedDownAnalysis.C:15
 runProtonsFeedDownAnalysis.C:16
 runProtonsFeedDownAnalysis.C:17
 runProtonsFeedDownAnalysis.C:18
 runProtonsFeedDownAnalysis.C:19
 runProtonsFeedDownAnalysis.C:20
 runProtonsFeedDownAnalysis.C:21
 runProtonsFeedDownAnalysis.C:22
 runProtonsFeedDownAnalysis.C:23
 runProtonsFeedDownAnalysis.C:24
 runProtonsFeedDownAnalysis.C:25
 runProtonsFeedDownAnalysis.C:26
 runProtonsFeedDownAnalysis.C:27
 runProtonsFeedDownAnalysis.C:28
 runProtonsFeedDownAnalysis.C:29
 runProtonsFeedDownAnalysis.C:30
 runProtonsFeedDownAnalysis.C:31
 runProtonsFeedDownAnalysis.C:32
 runProtonsFeedDownAnalysis.C:33
 runProtonsFeedDownAnalysis.C:34
 runProtonsFeedDownAnalysis.C:35
 runProtonsFeedDownAnalysis.C:36
 runProtonsFeedDownAnalysis.C:37
 runProtonsFeedDownAnalysis.C:38
 runProtonsFeedDownAnalysis.C:39
 runProtonsFeedDownAnalysis.C:40
 runProtonsFeedDownAnalysis.C:41
 runProtonsFeedDownAnalysis.C:42
 runProtonsFeedDownAnalysis.C:43
 runProtonsFeedDownAnalysis.C:44
 runProtonsFeedDownAnalysis.C:45
 runProtonsFeedDownAnalysis.C:46
 runProtonsFeedDownAnalysis.C:47
 runProtonsFeedDownAnalysis.C:48
 runProtonsFeedDownAnalysis.C:49
 runProtonsFeedDownAnalysis.C:50
 runProtonsFeedDownAnalysis.C:51
 runProtonsFeedDownAnalysis.C:52
 runProtonsFeedDownAnalysis.C:53
 runProtonsFeedDownAnalysis.C:54
 runProtonsFeedDownAnalysis.C:55
 runProtonsFeedDownAnalysis.C:56
 runProtonsFeedDownAnalysis.C:57
 runProtonsFeedDownAnalysis.C:58
 runProtonsFeedDownAnalysis.C:59
 runProtonsFeedDownAnalysis.C:60
 runProtonsFeedDownAnalysis.C:61
 runProtonsFeedDownAnalysis.C:62
 runProtonsFeedDownAnalysis.C:63
 runProtonsFeedDownAnalysis.C:64
 runProtonsFeedDownAnalysis.C:65
 runProtonsFeedDownAnalysis.C:66
 runProtonsFeedDownAnalysis.C:67
 runProtonsFeedDownAnalysis.C:68
 runProtonsFeedDownAnalysis.C:69
 runProtonsFeedDownAnalysis.C:70
 runProtonsFeedDownAnalysis.C:71
 runProtonsFeedDownAnalysis.C:72
 runProtonsFeedDownAnalysis.C:73
 runProtonsFeedDownAnalysis.C:74
 runProtonsFeedDownAnalysis.C:75
 runProtonsFeedDownAnalysis.C:76
 runProtonsFeedDownAnalysis.C:77
 runProtonsFeedDownAnalysis.C:78
 runProtonsFeedDownAnalysis.C:79
 runProtonsFeedDownAnalysis.C:80
 runProtonsFeedDownAnalysis.C:81
 runProtonsFeedDownAnalysis.C:82
 runProtonsFeedDownAnalysis.C:83
 runProtonsFeedDownAnalysis.C:84
 runProtonsFeedDownAnalysis.C:85
 runProtonsFeedDownAnalysis.C:86
 runProtonsFeedDownAnalysis.C:87
 runProtonsFeedDownAnalysis.C:88
 runProtonsFeedDownAnalysis.C:89
 runProtonsFeedDownAnalysis.C:90
 runProtonsFeedDownAnalysis.C:91
 runProtonsFeedDownAnalysis.C:92
 runProtonsFeedDownAnalysis.C:93
 runProtonsFeedDownAnalysis.C:94
 runProtonsFeedDownAnalysis.C:95
 runProtonsFeedDownAnalysis.C:96
 runProtonsFeedDownAnalysis.C:97
 runProtonsFeedDownAnalysis.C:98
 runProtonsFeedDownAnalysis.C:99
 runProtonsFeedDownAnalysis.C:100
 runProtonsFeedDownAnalysis.C:101
 runProtonsFeedDownAnalysis.C:102
 runProtonsFeedDownAnalysis.C:103
 runProtonsFeedDownAnalysis.C:104
 runProtonsFeedDownAnalysis.C:105
 runProtonsFeedDownAnalysis.C:106
 runProtonsFeedDownAnalysis.C:107
 runProtonsFeedDownAnalysis.C:108
 runProtonsFeedDownAnalysis.C:109
 runProtonsFeedDownAnalysis.C:110
 runProtonsFeedDownAnalysis.C:111
 runProtonsFeedDownAnalysis.C:112
 runProtonsFeedDownAnalysis.C:113
 runProtonsFeedDownAnalysis.C:114
 runProtonsFeedDownAnalysis.C:115
 runProtonsFeedDownAnalysis.C:116
 runProtonsFeedDownAnalysis.C:117
 runProtonsFeedDownAnalysis.C:118
 runProtonsFeedDownAnalysis.C:119
 runProtonsFeedDownAnalysis.C:120
 runProtonsFeedDownAnalysis.C:121
 runProtonsFeedDownAnalysis.C:122
 runProtonsFeedDownAnalysis.C:123
 runProtonsFeedDownAnalysis.C:124
 runProtonsFeedDownAnalysis.C:125
 runProtonsFeedDownAnalysis.C:126
 runProtonsFeedDownAnalysis.C:127
 runProtonsFeedDownAnalysis.C:128
 runProtonsFeedDownAnalysis.C:129
 runProtonsFeedDownAnalysis.C:130
 runProtonsFeedDownAnalysis.C:131
 runProtonsFeedDownAnalysis.C:132
 runProtonsFeedDownAnalysis.C:133
 runProtonsFeedDownAnalysis.C:134
 runProtonsFeedDownAnalysis.C:135
 runProtonsFeedDownAnalysis.C:136
 runProtonsFeedDownAnalysis.C:137
 runProtonsFeedDownAnalysis.C:138
 runProtonsFeedDownAnalysis.C:139
 runProtonsFeedDownAnalysis.C:140
 runProtonsFeedDownAnalysis.C:141
 runProtonsFeedDownAnalysis.C:142
 runProtonsFeedDownAnalysis.C:143
 runProtonsFeedDownAnalysis.C:144
 runProtonsFeedDownAnalysis.C:145
 runProtonsFeedDownAnalysis.C:146
 runProtonsFeedDownAnalysis.C:147
 runProtonsFeedDownAnalysis.C:148
 runProtonsFeedDownAnalysis.C:149
 runProtonsFeedDownAnalysis.C:150
 runProtonsFeedDownAnalysis.C:151
 runProtonsFeedDownAnalysis.C:152
 runProtonsFeedDownAnalysis.C:153
 runProtonsFeedDownAnalysis.C:154
 runProtonsFeedDownAnalysis.C:155
 runProtonsFeedDownAnalysis.C:156
 runProtonsFeedDownAnalysis.C:157
 runProtonsFeedDownAnalysis.C:158
 runProtonsFeedDownAnalysis.C:159
 runProtonsFeedDownAnalysis.C:160
 runProtonsFeedDownAnalysis.C:161
 runProtonsFeedDownAnalysis.C:162
 runProtonsFeedDownAnalysis.C:163
 runProtonsFeedDownAnalysis.C:164
 runProtonsFeedDownAnalysis.C:165
 runProtonsFeedDownAnalysis.C:166
 runProtonsFeedDownAnalysis.C:167
 runProtonsFeedDownAnalysis.C:168
 runProtonsFeedDownAnalysis.C:169
 runProtonsFeedDownAnalysis.C:170
 runProtonsFeedDownAnalysis.C:171
 runProtonsFeedDownAnalysis.C:172
 runProtonsFeedDownAnalysis.C:173
 runProtonsFeedDownAnalysis.C:174
 runProtonsFeedDownAnalysis.C:175
 runProtonsFeedDownAnalysis.C:176
 runProtonsFeedDownAnalysis.C:177
 runProtonsFeedDownAnalysis.C:178
 runProtonsFeedDownAnalysis.C:179
 runProtonsFeedDownAnalysis.C:180
 runProtonsFeedDownAnalysis.C:181
 runProtonsFeedDownAnalysis.C:182
 runProtonsFeedDownAnalysis.C:183
 runProtonsFeedDownAnalysis.C:184
 runProtonsFeedDownAnalysis.C:185
 runProtonsFeedDownAnalysis.C:186
 runProtonsFeedDownAnalysis.C:187
 runProtonsFeedDownAnalysis.C:188
 runProtonsFeedDownAnalysis.C:189
 runProtonsFeedDownAnalysis.C:190
 runProtonsFeedDownAnalysis.C:191
 runProtonsFeedDownAnalysis.C:192
 runProtonsFeedDownAnalysis.C:193
 runProtonsFeedDownAnalysis.C:194
 runProtonsFeedDownAnalysis.C:195
 runProtonsFeedDownAnalysis.C:196
 runProtonsFeedDownAnalysis.C:197
 runProtonsFeedDownAnalysis.C:198
 runProtonsFeedDownAnalysis.C:199
 runProtonsFeedDownAnalysis.C:200
 runProtonsFeedDownAnalysis.C:201
 runProtonsFeedDownAnalysis.C:202
 runProtonsFeedDownAnalysis.C:203
 runProtonsFeedDownAnalysis.C:204
 runProtonsFeedDownAnalysis.C:205
 runProtonsFeedDownAnalysis.C:206
 runProtonsFeedDownAnalysis.C:207
 runProtonsFeedDownAnalysis.C:208
 runProtonsFeedDownAnalysis.C:209
 runProtonsFeedDownAnalysis.C:210
 runProtonsFeedDownAnalysis.C:211
 runProtonsFeedDownAnalysis.C:212
 runProtonsFeedDownAnalysis.C:213
 runProtonsFeedDownAnalysis.C:214
 runProtonsFeedDownAnalysis.C:215
 runProtonsFeedDownAnalysis.C:216
 runProtonsFeedDownAnalysis.C:217
 runProtonsFeedDownAnalysis.C:218
 runProtonsFeedDownAnalysis.C:219
 runProtonsFeedDownAnalysis.C:220
 runProtonsFeedDownAnalysis.C:221
 runProtonsFeedDownAnalysis.C:222
 runProtonsFeedDownAnalysis.C:223
 runProtonsFeedDownAnalysis.C:224
 runProtonsFeedDownAnalysis.C:225
 runProtonsFeedDownAnalysis.C:226
 runProtonsFeedDownAnalysis.C:227
 runProtonsFeedDownAnalysis.C:228
 runProtonsFeedDownAnalysis.C:229
 runProtonsFeedDownAnalysis.C:230
 runProtonsFeedDownAnalysis.C:231
 runProtonsFeedDownAnalysis.C:232
 runProtonsFeedDownAnalysis.C:233
 runProtonsFeedDownAnalysis.C:234
 runProtonsFeedDownAnalysis.C:235
 runProtonsFeedDownAnalysis.C:236
 runProtonsFeedDownAnalysis.C:237
 runProtonsFeedDownAnalysis.C:238
 runProtonsFeedDownAnalysis.C:239
 runProtonsFeedDownAnalysis.C:240
 runProtonsFeedDownAnalysis.C:241
 runProtonsFeedDownAnalysis.C:242
 runProtonsFeedDownAnalysis.C:243
 runProtonsFeedDownAnalysis.C:244
 runProtonsFeedDownAnalysis.C:245
 runProtonsFeedDownAnalysis.C:246
 runProtonsFeedDownAnalysis.C:247
 runProtonsFeedDownAnalysis.C:248
 runProtonsFeedDownAnalysis.C:249
 runProtonsFeedDownAnalysis.C:250
 runProtonsFeedDownAnalysis.C:251
 runProtonsFeedDownAnalysis.C:252
 runProtonsFeedDownAnalysis.C:253
 runProtonsFeedDownAnalysis.C:254
 runProtonsFeedDownAnalysis.C:255
 runProtonsFeedDownAnalysis.C:256
 runProtonsFeedDownAnalysis.C:257
 runProtonsFeedDownAnalysis.C:258
 runProtonsFeedDownAnalysis.C:259
 runProtonsFeedDownAnalysis.C:260
 runProtonsFeedDownAnalysis.C:261
 runProtonsFeedDownAnalysis.C:262
 runProtonsFeedDownAnalysis.C:263
 runProtonsFeedDownAnalysis.C:264
 runProtonsFeedDownAnalysis.C:265
 runProtonsFeedDownAnalysis.C:266
 runProtonsFeedDownAnalysis.C:267
 runProtonsFeedDownAnalysis.C:268
 runProtonsFeedDownAnalysis.C:269
 runProtonsFeedDownAnalysis.C:270
 runProtonsFeedDownAnalysis.C:271
 runProtonsFeedDownAnalysis.C:272
 runProtonsFeedDownAnalysis.C:273
 runProtonsFeedDownAnalysis.C:274
 runProtonsFeedDownAnalysis.C:275
 runProtonsFeedDownAnalysis.C:276
 runProtonsFeedDownAnalysis.C:277
 runProtonsFeedDownAnalysis.C:278
 runProtonsFeedDownAnalysis.C:279
 runProtonsFeedDownAnalysis.C:280
 runProtonsFeedDownAnalysis.C:281
 runProtonsFeedDownAnalysis.C:282
 runProtonsFeedDownAnalysis.C:283
 runProtonsFeedDownAnalysis.C:284
 runProtonsFeedDownAnalysis.C:285
 runProtonsFeedDownAnalysis.C:286
 runProtonsFeedDownAnalysis.C:287
 runProtonsFeedDownAnalysis.C:288
 runProtonsFeedDownAnalysis.C:289
 runProtonsFeedDownAnalysis.C:290
 runProtonsFeedDownAnalysis.C:291
 runProtonsFeedDownAnalysis.C:292
 runProtonsFeedDownAnalysis.C:293
 runProtonsFeedDownAnalysis.C:294
 runProtonsFeedDownAnalysis.C:295
 runProtonsFeedDownAnalysis.C:296
 runProtonsFeedDownAnalysis.C:297
 runProtonsFeedDownAnalysis.C:298
 runProtonsFeedDownAnalysis.C:299
 runProtonsFeedDownAnalysis.C:300
 runProtonsFeedDownAnalysis.C:301
 runProtonsFeedDownAnalysis.C:302
 runProtonsFeedDownAnalysis.C:303
 runProtonsFeedDownAnalysis.C:304
 runProtonsFeedDownAnalysis.C:305
 runProtonsFeedDownAnalysis.C:306
 runProtonsFeedDownAnalysis.C:307
 runProtonsFeedDownAnalysis.C:308
 runProtonsFeedDownAnalysis.C:309
 runProtonsFeedDownAnalysis.C:310
 runProtonsFeedDownAnalysis.C:311
 runProtonsFeedDownAnalysis.C:312
 runProtonsFeedDownAnalysis.C:313
 runProtonsFeedDownAnalysis.C:314
 runProtonsFeedDownAnalysis.C:315
 runProtonsFeedDownAnalysis.C:316
 runProtonsFeedDownAnalysis.C:317
 runProtonsFeedDownAnalysis.C:318
 runProtonsFeedDownAnalysis.C:319
 runProtonsFeedDownAnalysis.C:320
 runProtonsFeedDownAnalysis.C:321
 runProtonsFeedDownAnalysis.C:322
 runProtonsFeedDownAnalysis.C:323
 runProtonsFeedDownAnalysis.C:324
 runProtonsFeedDownAnalysis.C:325
 runProtonsFeedDownAnalysis.C:326
 runProtonsFeedDownAnalysis.C:327
 runProtonsFeedDownAnalysis.C:328
 runProtonsFeedDownAnalysis.C:329
 runProtonsFeedDownAnalysis.C:330
 runProtonsFeedDownAnalysis.C:331
 runProtonsFeedDownAnalysis.C:332
 runProtonsFeedDownAnalysis.C:333
 runProtonsFeedDownAnalysis.C:334
 runProtonsFeedDownAnalysis.C:335
 runProtonsFeedDownAnalysis.C:336
 runProtonsFeedDownAnalysis.C:337
 runProtonsFeedDownAnalysis.C:338
 runProtonsFeedDownAnalysis.C:339
 runProtonsFeedDownAnalysis.C:340
 runProtonsFeedDownAnalysis.C:341
 runProtonsFeedDownAnalysis.C:342
 runProtonsFeedDownAnalysis.C:343
 runProtonsFeedDownAnalysis.C:344
 runProtonsFeedDownAnalysis.C:345
 runProtonsFeedDownAnalysis.C:346
 runProtonsFeedDownAnalysis.C:347
 runProtonsFeedDownAnalysis.C:348
 runProtonsFeedDownAnalysis.C:349
 runProtonsFeedDownAnalysis.C:350
 runProtonsFeedDownAnalysis.C:351
 runProtonsFeedDownAnalysis.C:352
 runProtonsFeedDownAnalysis.C:353
 runProtonsFeedDownAnalysis.C:354
 runProtonsFeedDownAnalysis.C:355
 runProtonsFeedDownAnalysis.C:356
 runProtonsFeedDownAnalysis.C:357
 runProtonsFeedDownAnalysis.C:358
 runProtonsFeedDownAnalysis.C:359
 runProtonsFeedDownAnalysis.C:360
 runProtonsFeedDownAnalysis.C:361
 runProtonsFeedDownAnalysis.C:362
 runProtonsFeedDownAnalysis.C:363
 runProtonsFeedDownAnalysis.C:364
 runProtonsFeedDownAnalysis.C:365
 runProtonsFeedDownAnalysis.C:366
 runProtonsFeedDownAnalysis.C:367
 runProtonsFeedDownAnalysis.C:368
 runProtonsFeedDownAnalysis.C:369
 runProtonsFeedDownAnalysis.C:370
 runProtonsFeedDownAnalysis.C:371
 runProtonsFeedDownAnalysis.C:372
 runProtonsFeedDownAnalysis.C:373
 runProtonsFeedDownAnalysis.C:374
 runProtonsFeedDownAnalysis.C:375
 runProtonsFeedDownAnalysis.C:376
 runProtonsFeedDownAnalysis.C:377
 runProtonsFeedDownAnalysis.C:378
 runProtonsFeedDownAnalysis.C:379
 runProtonsFeedDownAnalysis.C:380
 runProtonsFeedDownAnalysis.C:381
 runProtonsFeedDownAnalysis.C:382
 runProtonsFeedDownAnalysis.C:383
 runProtonsFeedDownAnalysis.C:384
 runProtonsFeedDownAnalysis.C:385
 runProtonsFeedDownAnalysis.C:386
 runProtonsFeedDownAnalysis.C:387
 runProtonsFeedDownAnalysis.C:388
 runProtonsFeedDownAnalysis.C:389
 runProtonsFeedDownAnalysis.C:390