ROOT logo
AliAnalysisGrid* CreateAlienHandlerCaloEtSim(TString outputDir, TString outputName, const char * pluginRunMode, int production, Bool_t isPHOS, Bool_t ispp,Bool_t isData)
{
  // Check if user has a valid token, otherwise make one. This has limitations.
  // One can always follow the standard procedure of calling alien-token-init then
  //   source /tmp/gclient_env_$UID in the current shell.
  //if (!AliAnalysisGrid::CreateToken()) return NULL;
  AliAnalysisAlien *plugin = new AliAnalysisAlien();

  // Overwrite all generated files, datasets and output results from a previous session
  plugin->SetOverwriteMode();
  // Set the run mode (can be "full", "test", "offline", "submit" or "terminate")
  // plugin->SetRunMode("full");  // VERY IMPORTANT - DECRIBED BELOW
  // plugin->SetRunMode("test");  // VERY IMPORTANT - DECRIBED BELOW
  plugin->SetRunMode(pluginRunMode);  // VERY IMPORTANT - DECRIBED BELOW
  cout<<"Running in "<<pluginRunMode<<" mode"<<endl;

  // Set versions of used packages
   plugin->SetAPIVersion("V1.1x");
   plugin->SetROOTVersion("v5-34-02-1");
   plugin->SetAliROOTVersion("v5-04-34-AN");
  // Declare input data to be processed.

  // Method 1: Create automatically XML collections using alien 'find' command.
  // Define production directory LFN
  //   plugin->SetGridDataDir("/alice/sim/LHC10a18");
  // Set data search pattern
  //   plugin->SetDataPattern("*ESDs.root");  // simulated, tags not used
  //   plugin->SetDataPattern("*ESDs/pass4/*ESDs.root"); // real data check reco pass and data base directory
  //   plugin->SetRunPrefix("000");   // real data
  //   plugin->SetDataPattern("*tag.root");  // Use ESD tags (same applies for AOD's)
  // ...then add run numbers to be considered
  //   plugin->AddRunNumber(125020);    // simulated
  //   plugin->AddRunNumber(104065);  // real data

   //plugin->SetGridDataDir("/alice/sim/LHC10d4");
   //plugin->AddRunNumber("120741");//smallest of the above
   if(ispp && production==0){
     //pp
     plugin->SetGridDataDir("/alice/sim/2012/LHC12a15e/");
     plugin->AddRunNumber(169838);
   }
   else{
    if(isData){//185 jobs
      cout<<"Running over data"<<endl;
      plugin->SetGridDataDir("/alice/data/2010/LHC10h");//PbPb data
      plugin->SetDataPattern("*ESDs/pass2/*ESDs.root");
      plugin->SetRunPrefix("000");   // real data
      plugin->AddRunNumber(139465);
      outputDir = outputDir + "LHC10hPass2";
    }
    else{
      if(production==0){
	//Standard
	if(isPHOS){
	  plugin->SetGridDataDir("/alice/sim/LHC11a10a_bis");
	}
	else{
	  outputDir = outputDir + "LHC11a4_bis";
	  plugin->SetGridDataDir("/alice/sim/LHC11a4_bis");
	  plugin->SetGridDataDir("/alice/sim/LHC11a4_bis");
	}
	plugin->AddRunNumber(139465);
	plugin->AddRunNumber(139470);
	plugin->AddRunNumber(137366);
	plugin->AddRunNumber(137161);
      }
      if(production==1){
	//if(!isPHOS){
	  outputDir = outputDir + "LHC11a10a_bis";
	  plugin->SetGridDataDir("/alice/sim/LHC11a10a_bis");
	  //}
// 	        plugin->AddRunNumber(137366);
// 	        plugin->AddRunNumber(137161);
// 	        plugin->AddRunNumber(139470);
		plugin->AddRunNumber(139465);//probably our focus now
      }
      if(production==2){
	if(!isPHOS){
	  outputDir = outputDir + "LHC11b7";
	  plugin->SetGridDataDir("/alice/sim/LHC11b7");
	}
	plugin->AddRunNumber(137549);
	plugin->AddRunNumber(138200);
      }
      if(production==3){
	if(!isPHOS){
	  outputDir = outputDir + "LHC11a10a";
	  plugin->SetGridDataDir("/alice/sim/LHC11a10a");
	}
	plugin->AddRunNumber(139470);
      }
    }
   }

   plugin->SetDataPattern("*ESDs.root");
  // Method 2: Declare existing data files (raw collections, xml collections, root file)
  // If no path mentioned data is supposed to be in the work directory (see SetGridWorkingDir())
  // XML collections added via this method can be combined with the first method if
  // the content is compatible (using or not tags)
  //plugin->AddDataFile("tag.xml");
  // plugin->AddDataFile("wn.xml"); // test
  // file generated with:  find -x tag /alice/sim/LHC10d1/117222/* AliESDs.root > tag.xml

  // Define alien work directory where all files will be copied. Relative to alien $HOME.
  plugin->SetGridWorkingDir(outputDir.Data());
  // Declare alien output directory. Relative to working directory.
  plugin->SetGridOutputDir("output"); // In this case will be $HOME/work/output
  // Declare the analysis source files names separated by blancs. To be compiled runtime IN THE SAME ORDER THEY ARE LISTED
  //plugin->SetAdditionalRootLibs("libPHOSUtils.so libEMCALUtils.so libPWG4CaloCalib.so libPWG4PartCorrBase.so libPWG4PartCorrDep.so");
  // using ACLiC on the worker nodes.
  plugin->SetAnalysisSource("AliAnalysisEtCuts.cxx AliAnalysisHadEtCorrections.cxx AliAnalysisEtCommon.cxx AliAnalysisEtSelector.cxx AliAnalysisEtSelectorPhos.cxx AliAnalysisEtSelectorEmcal.cxx AliAnalysisEtTrackMatchCorrections.cxx AliAnalysisEtRecEffCorrection.cxx AliAnalysisEt.cxx AliAnalysisEtMonteCarlo.cxx AliAnalysisEtMonteCarloPhos.cxx AliAnalysisEtMonteCarloEmcal.cxx AliAnalysisEtReconstructed.cxx AliAnalysisEtReconstructedPhos.cxx AliAnalysisEtReconstructedEmcal.cxx AliAnalysisTaskTransverseEnergy.cxx AliAnalysisEmEtMonteCarlo.cxx AliAnalysisEmEtReconstructed.cxx AliAnalysisTaskTotEt.cxx");
  //plugin->SetAnalysisSource("AliAnalysisEtCuts.cxx AliAnalysisHadEtCorrections.cxx AliAnalysisEtCommon.cxx AliAnalysisEtSelector.cxx AliAnalysisEtSelectorPhos.cxx AliAnalysisEt.cxx AliAnalysisEtMonteCarlo.cxx AliAnalysisEtMonteCarloPhos.cxx AliAnalysisEtMonteCarloEmcal.cxx AliAnalysisEtReconstructed.cxx AliAnalysisEtReconstructedPhos.cxx AliAnalysisEtReconstructedEmcal.cxx AliAnalysisTaskTransverseEnergy.cxx AliAnalysisTaskTotEt.cxx");
  // Declare all libraries (other than the default ones for the framework. These will be
  // loaded by the generated analysis macro. Add all extra files (task .cxx/.h) here.
  plugin->SetAdditionalLibs("libPHOSUtils.so libTENDER.so libTENDERSupplies.so AliAnalysisEtCuts.cxx AliAnalysisEtCuts.h AliAnalysisHadEtCorrections.cxx AliAnalysisHadEtCorrections.h AliAnalysisEtCommon.cxx AliAnalysisEtCommon.h AliAnalysisEtSelector.cxx AliAnalysisEtSelector.h AliAnalysisEtSelectorPhos.cxx AliAnalysisEtSelectorPhos.h AliAnalysisEtSelectorEmcal.cxx AliAnalysisEtSelectorEmcal.h AliAnalysisEtTrackMatchCorrections.cxx AliAnalysisEtTrackMatchCorrections.h AliAnalysisEtRecEffCorrection.cxx AliAnalysisEtRecEffCorrection.h AliAnalysisEt.cxx AliAnalysisEt.h AliAnalysisEtMonteCarlo.cxx AliAnalysisEtMonteCarlo.h AliAnalysisEtMonteCarloPhos.cxx AliAnalysisEtMonteCarloPhos.h AliAnalysisEtMonteCarloEmcal.cxx AliAnalysisEtMonteCarloEmcal.h AliAnalysisEtReconstructed.cxx AliAnalysisEtReconstructed.h AliAnalysisEtReconstructedPhos.cxx AliAnalysisEtReconstructedPhos.h AliAnalysisEtReconstructedEmcal.cxx AliAnalysisEtReconstructedEmcal.h AliAnalysisTaskTransverseEnergy.cxx AliAnalysisTaskTransverseEnergy.h AliAnalysisEmEtMonteCarlo.cxx AliAnalysisEmEtMonteCarlo.h AliAnalysisEmEtReconstructed.cxx AliAnalysisEmEtReconstructed.h AliAnalysisTaskTotEt.cxx AliAnalysisTaskTotEt.h badchannels.root corrections.root calocorrections.root ConfigEtMonteCarlo.C ConfigEtReconstructed.C");
  plugin->SetExecutableCommand("aliroot -b -q");
  // add extra include files/path
  plugin->AddIncludePath("-I. -I$ALICE_ROOT/EMCAL -I$ALICE_ROOT/ANALYSIS");

  // No need for output file names. Procedure is automatic. <-- not true
  //plugin->SetDefaultOutputs(kFALSE);
  //plugin->SetOutputFiles(outputName.Data());
  //plugin->SetOutputFiles("Et.ESD.sim.EMCAL.root event_stat.root");
  // No need define the files to be archived. Note that this is handled automatically by the plugin.
  //   plugin->SetOutputArchive("log_archive.zip:stdout,stderr");
  // Set a name for the generated analysis macro (default MyAnalysis.C) Make this unique !
  plugin->SetAnalysisMacro("DavidEtAnalysis.C");
  // Optionally set maximum number of input files/subjob (default 100, put 0 to ignore). The optimum for an analysis
  // is correlated with the run time - count few hours TTL per job, not minutes !
  plugin->SetSplitMaxInputFileNumber(100);
  // Optionally set number of failed jobs that will trigger killing waiting sub-jobs.
  plugin->SetMaxInitFailed(5);
  // Optionally resubmit threshold.
  //plugin->SetMasterResubmitThreshold(90);
  // Optionally set time to live (default 30000 sec)
  plugin->SetTTL(20000);
  // Optionally set input format (default xml-single)
  plugin->SetInputFormat("xml-single");
  // Optionally modify the name of the generated JDL (default analysis.jdl)
  plugin->SetJDLName("TaskEt.jdl");
  // Optionally modify job price (default 1)
  plugin->SetPrice(1); 
  // Optionally modify split mode (default 'se')    
  plugin->SetSplitMode("se");

  return plugin;
} 
 CreateAlienHandlerCaloEtSim.C:1
 CreateAlienHandlerCaloEtSim.C:2
 CreateAlienHandlerCaloEtSim.C:3
 CreateAlienHandlerCaloEtSim.C:4
 CreateAlienHandlerCaloEtSim.C:5
 CreateAlienHandlerCaloEtSim.C:6
 CreateAlienHandlerCaloEtSim.C:7
 CreateAlienHandlerCaloEtSim.C:8
 CreateAlienHandlerCaloEtSim.C:9
 CreateAlienHandlerCaloEtSim.C:10
 CreateAlienHandlerCaloEtSim.C:11
 CreateAlienHandlerCaloEtSim.C:12
 CreateAlienHandlerCaloEtSim.C:13
 CreateAlienHandlerCaloEtSim.C:14
 CreateAlienHandlerCaloEtSim.C:15
 CreateAlienHandlerCaloEtSim.C:16
 CreateAlienHandlerCaloEtSim.C:17
 CreateAlienHandlerCaloEtSim.C:18
 CreateAlienHandlerCaloEtSim.C:19
 CreateAlienHandlerCaloEtSim.C:20
 CreateAlienHandlerCaloEtSim.C:21
 CreateAlienHandlerCaloEtSim.C:22
 CreateAlienHandlerCaloEtSim.C:23
 CreateAlienHandlerCaloEtSim.C:24
 CreateAlienHandlerCaloEtSim.C:25
 CreateAlienHandlerCaloEtSim.C:26
 CreateAlienHandlerCaloEtSim.C:27
 CreateAlienHandlerCaloEtSim.C:28
 CreateAlienHandlerCaloEtSim.C:29
 CreateAlienHandlerCaloEtSim.C:30
 CreateAlienHandlerCaloEtSim.C:31
 CreateAlienHandlerCaloEtSim.C:32
 CreateAlienHandlerCaloEtSim.C:33
 CreateAlienHandlerCaloEtSim.C:34
 CreateAlienHandlerCaloEtSim.C:35
 CreateAlienHandlerCaloEtSim.C:36
 CreateAlienHandlerCaloEtSim.C:37
 CreateAlienHandlerCaloEtSim.C:38
 CreateAlienHandlerCaloEtSim.C:39
 CreateAlienHandlerCaloEtSim.C:40
 CreateAlienHandlerCaloEtSim.C:41
 CreateAlienHandlerCaloEtSim.C:42
 CreateAlienHandlerCaloEtSim.C:43
 CreateAlienHandlerCaloEtSim.C:44
 CreateAlienHandlerCaloEtSim.C:45
 CreateAlienHandlerCaloEtSim.C:46
 CreateAlienHandlerCaloEtSim.C:47
 CreateAlienHandlerCaloEtSim.C:48
 CreateAlienHandlerCaloEtSim.C:49
 CreateAlienHandlerCaloEtSim.C:50
 CreateAlienHandlerCaloEtSim.C:51
 CreateAlienHandlerCaloEtSim.C:52
 CreateAlienHandlerCaloEtSim.C:53
 CreateAlienHandlerCaloEtSim.C:54
 CreateAlienHandlerCaloEtSim.C:55
 CreateAlienHandlerCaloEtSim.C:56
 CreateAlienHandlerCaloEtSim.C:57
 CreateAlienHandlerCaloEtSim.C:58
 CreateAlienHandlerCaloEtSim.C:59
 CreateAlienHandlerCaloEtSim.C:60
 CreateAlienHandlerCaloEtSim.C:61
 CreateAlienHandlerCaloEtSim.C:62
 CreateAlienHandlerCaloEtSim.C:63
 CreateAlienHandlerCaloEtSim.C:64
 CreateAlienHandlerCaloEtSim.C:65
 CreateAlienHandlerCaloEtSim.C:66
 CreateAlienHandlerCaloEtSim.C:67
 CreateAlienHandlerCaloEtSim.C:68
 CreateAlienHandlerCaloEtSim.C:69
 CreateAlienHandlerCaloEtSim.C:70
 CreateAlienHandlerCaloEtSim.C:71
 CreateAlienHandlerCaloEtSim.C:72
 CreateAlienHandlerCaloEtSim.C:73
 CreateAlienHandlerCaloEtSim.C:74
 CreateAlienHandlerCaloEtSim.C:75
 CreateAlienHandlerCaloEtSim.C:76
 CreateAlienHandlerCaloEtSim.C:77
 CreateAlienHandlerCaloEtSim.C:78
 CreateAlienHandlerCaloEtSim.C:79
 CreateAlienHandlerCaloEtSim.C:80
 CreateAlienHandlerCaloEtSim.C:81
 CreateAlienHandlerCaloEtSim.C:82
 CreateAlienHandlerCaloEtSim.C:83
 CreateAlienHandlerCaloEtSim.C:84
 CreateAlienHandlerCaloEtSim.C:85
 CreateAlienHandlerCaloEtSim.C:86
 CreateAlienHandlerCaloEtSim.C:87
 CreateAlienHandlerCaloEtSim.C:88
 CreateAlienHandlerCaloEtSim.C:89
 CreateAlienHandlerCaloEtSim.C:90
 CreateAlienHandlerCaloEtSim.C:91
 CreateAlienHandlerCaloEtSim.C:92
 CreateAlienHandlerCaloEtSim.C:93
 CreateAlienHandlerCaloEtSim.C:94
 CreateAlienHandlerCaloEtSim.C:95
 CreateAlienHandlerCaloEtSim.C:96
 CreateAlienHandlerCaloEtSim.C:97
 CreateAlienHandlerCaloEtSim.C:98
 CreateAlienHandlerCaloEtSim.C:99
 CreateAlienHandlerCaloEtSim.C:100
 CreateAlienHandlerCaloEtSim.C:101
 CreateAlienHandlerCaloEtSim.C:102
 CreateAlienHandlerCaloEtSim.C:103
 CreateAlienHandlerCaloEtSim.C:104
 CreateAlienHandlerCaloEtSim.C:105
 CreateAlienHandlerCaloEtSim.C:106
 CreateAlienHandlerCaloEtSim.C:107
 CreateAlienHandlerCaloEtSim.C:108
 CreateAlienHandlerCaloEtSim.C:109
 CreateAlienHandlerCaloEtSim.C:110
 CreateAlienHandlerCaloEtSim.C:111
 CreateAlienHandlerCaloEtSim.C:112
 CreateAlienHandlerCaloEtSim.C:113
 CreateAlienHandlerCaloEtSim.C:114
 CreateAlienHandlerCaloEtSim.C:115
 CreateAlienHandlerCaloEtSim.C:116
 CreateAlienHandlerCaloEtSim.C:117
 CreateAlienHandlerCaloEtSim.C:118
 CreateAlienHandlerCaloEtSim.C:119
 CreateAlienHandlerCaloEtSim.C:120
 CreateAlienHandlerCaloEtSim.C:121
 CreateAlienHandlerCaloEtSim.C:122
 CreateAlienHandlerCaloEtSim.C:123
 CreateAlienHandlerCaloEtSim.C:124
 CreateAlienHandlerCaloEtSim.C:125
 CreateAlienHandlerCaloEtSim.C:126
 CreateAlienHandlerCaloEtSim.C:127
 CreateAlienHandlerCaloEtSim.C:128
 CreateAlienHandlerCaloEtSim.C:129
 CreateAlienHandlerCaloEtSim.C:130
 CreateAlienHandlerCaloEtSim.C:131
 CreateAlienHandlerCaloEtSim.C:132
 CreateAlienHandlerCaloEtSim.C:133
 CreateAlienHandlerCaloEtSim.C:134
 CreateAlienHandlerCaloEtSim.C:135
 CreateAlienHandlerCaloEtSim.C:136
 CreateAlienHandlerCaloEtSim.C:137
 CreateAlienHandlerCaloEtSim.C:138
 CreateAlienHandlerCaloEtSim.C:139
 CreateAlienHandlerCaloEtSim.C:140
 CreateAlienHandlerCaloEtSim.C:141
 CreateAlienHandlerCaloEtSim.C:142
 CreateAlienHandlerCaloEtSim.C:143
 CreateAlienHandlerCaloEtSim.C:144
 CreateAlienHandlerCaloEtSim.C:145
 CreateAlienHandlerCaloEtSim.C:146
 CreateAlienHandlerCaloEtSim.C:147
 CreateAlienHandlerCaloEtSim.C:148