--- /dev/null
+ AliAnalysisGrid* CreateAlienHandlerCaloEtSim()
+{
+// 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("full"); // VERY IMPORTANT - DECRIBED BELOW
+// Set versions of used packages
+ plugin->SetAPIVersion("V1.1x");
+ plugin->SetROOTVersion("v5-26-00b-6");
+ plugin->SetAliROOTVersion("v4-20-04-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
+
+// 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("/alice/data/2008/LHC08c/000057657/raw/Run57657.Merged.RAW.tag.root");
+
+// Define alien work directory where all files will be copied. Relative to alien $HOME.
+ plugin->SetGridWorkingDir("etOystein");
+// 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
+// using ACLiC on the worker nodes.
+ //plugin->SetAnalysisSource("AliAnalysisTaskHadEt.cxx");
+ //plugin->SetAnalysisSource("AliAnalysisEt.cxx AliAnalysisEtMonteCarlo.cxx AliAnalysisEtMonteCarloPhos.cxx AliAnalysisEtReconstructed.cxx AliAnalysisEtReconstructedPhos.cxx AliAnalysisHadEt.cxx AliAnalysisHadEtMonteCarlo.cxx AliAnalysisHadEtReconstructed.cxx AliAnalysisTaskHadEt.cxx AliAnalysisTaskTotEt.cxx");
+ plugin->SetAnalysisSource("AliAnalysisEt.cxx AliAnalysisEtMonteCarlo.cxx AliAnalysisEtMonteCarloPhos.cxx AliAnalysisEtMonteCarloEmcal.cxx AliAnalysisEtReconstructed.cxx AliAnalysisEtReconstructedPhos.cxx AliAnalysisEtReconstructedEmcal.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("AliAnalysisEtCuts.h AliAnalysisEt.h AliAnalysisEtMonteCarlo.h AliAnalysisEtMonteCarloPhos.h AliAnalysisEtMonteCarloEmcal.h AliAnalysisEtReconstructed.h AliAnalysisEtReconstructedPhos.h AliAnalysisEtReconstructedEmcal.h AliAnalysisTaskTotEt.h AliAnalysisEt.cxx AliAnalysisEtMonteCarlo.cxx AliAnalysisEtMonteCarloPhos.cxx AliAnalysisEtMonteCarloEmcal.cxx AliAnalysisEtReconstructed.cxx AliAnalysisEtReconstructedPhos.cxx AliAnalysisEtReconstructedEmcal.cxx AliAnalysisTaskTotEt.cxx");
+// No need for output file names. Procedure is automatic. <-- not true
+ plugin->SetDefaultOutputs(kFALSE);
+ plugin->SetOutputFiles("Et.ESD.sim.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("OysteinsEtAnalysis.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;
+}
--- /dev/null
+ AliAnalysisGrid* CreateAlienHandlerHadEtSim()
+{
+// 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("full"); // VERY IMPORTANT - DECRIBED BELOW
+// Set versions of used packages
+ plugin->SetAPIVersion("V1.1x");
+ plugin->SetROOTVersion("v5-26-00b-6");
+ plugin->SetAliROOTVersion("v4-20-04-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
+
+// 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("/alice/data/2008/LHC08c/000057657/raw/Run57657.Merged.RAW.tag.root");
+
+// Define alien work directory where all files will be copied. Relative to alien $HOME.
+ plugin->SetGridWorkingDir("et");
+// 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
+// using ACLiC on the worker nodes.
+ //plugin->SetAnalysisSource("AliAnalysisTaskHadEt.cxx");
+ //plugin->SetAnalysisSource("AliAnalysisEt.cxx AliAnalysisEtMonteCarlo.cxx AliAnalysisEtMonteCarloPhos.cxx AliAnalysisEtReconstructed.cxx AliAnalysisEtReconstructedPhos.cxx AliAnalysisHadEt.cxx AliAnalysisHadEtMonteCarlo.cxx AliAnalysisHadEtReconstructed.cxx AliAnalysisTaskHadEt.cxx AliAnalysisTaskTotEt.cxx");
+ plugin->SetAnalysisSource("AliAnalysisHadEt.cxx AliAnalysisHadEtMonteCarlo.cxx AliAnalysisHadEtReconstructed.cxx AliAnalysisTaskHadEt.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("AliAnalysisEtCuts.h AliAnalysisHadEt.cxx AliAnalysisHadEtMonteCarlo.cxx AliAnalysisHadEtReconstructed.cxx AliAnalysisTaskHadEt.cxx AliAnalysisHadEt.h AliAnalysisHadEtMonteCarlo.h AliAnalysisHadEtReconstructed.h AliAnalysisTaskHadEt.h");
+// No need for output file names. Procedure is automatic. <-- not true
+ plugin->SetDefaultOutputs(kFALSE);
+ plugin->SetOutputFiles("Et.ESD.new.sim.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("ChristinesEtAnalysis.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;
+}
--- /dev/null
+//Create by Christine Nattrass, Rebecca Scott, Irakli Martashvili
+//University of Tennessee at Knoxville
+
+//by default this runs locally
+//With the argument true this submits jobs to the grid
+//As written this requires an xml script tag.xml in the ~/et directory on the grid to submit jobs
+void runCaloEt(bool submit = false) {
+ TStopwatch timer;
+ timer.Start();
+ gSystem->Load("libTree.so");
+ gSystem->Load("libGeom.so");
+ gSystem->Load("libVMC.so");
+ gSystem->Load("libXMLIO.so");
+
+ gSystem->Load("libSTEERBase.so");
+ gSystem->Load("libESD.so");
+ gSystem->Load("libAOD.so");
+
+ gSystem->Load("libANALYSIS");
+ gSystem->Load("libANALYSISalice");
+
+ gSystem->AddIncludePath("-I$ALICE_ROOT/include");
+ gROOT->ProcessLine(".L AliAnalysisEt.cxx+g");
+ gROOT->ProcessLine(".L AliAnalysisEtMonteCarlo.cxx+g");
+ gROOT->ProcessLine(".L AliAnalysisEtMonteCarloPhos.cxx+g");
+ gROOT->ProcessLine(".L AliAnalysisEtMonteCarloEmcal.cxx+g");
+ gROOT->ProcessLine(".L AliAnalysisEtReconstructed.cxx+g");
+ gROOT->ProcessLine(".L AliAnalysisEtReconstructedPhos.cxx+g");
+ gROOT->ProcessLine(".L AliAnalysisEtReconstructedEmcal.cxx+g");
+
+ gROOT->ProcessLine(".L AliAnalysisTaskTotEt.cxx+g");
+
+
+ char *kTreeName = "esdTree" ;
+ TChain * chain = new TChain(kTreeName,"myESDTree") ;
+
+
+ if(submit){
+ gSystem->Load("libNetx.so") ;
+ gSystem->Load("libgapiUI.so");
+ gSystem->Load("libRAliEn.so");
+ TGrid::Connect("alien://") ;
+ }
+ chain->Add("/data/LHC10d15/1821/AliESDs.root");//CN changed
+
+
+
+ // Make the analysis manager
+ AliAnalysisManager *mgr = new AliAnalysisManager("TotEtManager");
+
+ if(submit){
+ gROOT->LoadMacro("CreateAlienHandlerPhosEtSim.C");
+ AliAnalysisGrid *alienHandler = CreateAlienHandlerPhosEtSim();
+ if (!alienHandler) return;
+ mgr->SetGridHandler(alienHandler);
+ }
+
+ AliVEventHandler* esdH = new AliESDInputHandler;
+ mgr->SetInputEventHandler(esdH);
+ AliMCEventHandler* handler = new AliMCEventHandler;
+ handler->SetReadTR(kFALSE);
+ mgr->SetMCtruthEventHandler(handler);
+
+ AliAnalysisTaskTotEt *task1 = new AliAnalysisTaskTotEt("TaskTotEt");
+ mgr->AddTask(task1);
+
+ // Create containers for input/output
+ //AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("cchain1", TChain::Class(),AliAnalysisManager::kInputContainer);
+ AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
+
+ //AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("out1", TList::Class(), AliAnalysisManager::kOutputContainer,"Et.ESD.sim.root");
+ AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("out1", TList::Class(), AliAnalysisManager::kOutputContainer,"Et.ESD.sim.root");
+
+ //____________________________________________//
+ mgr->ConnectInput(task1,0,cinput1);
+ mgr->ConnectOutput(task1,1,coutput1);
+
+ mgr->SetDebugLevel(0);
+
+ if (!mgr->InitAnalysis()) return;
+ mgr->PrintStatus();
+ if(submit){
+ mgr->StartAnalysis("grid");
+ }
+ else{
+ mgr->StartAnalysis("local",chain);
+ }
+
+ timer.Stop();
+ timer.Print();
+}
--- /dev/null
+//Create by Christine Nattrass, Rebecca Scott, Irakli Martashvili
+//University of Tennessee at Knoxville
+
+//by default this runs locally
+//With the argument true this submits jobs to the grid
+//As written this requires an xml script tag.xml in the ~/et directory on the grid to submit jobs
+void runHadEt(bool submit = false) {
+ TStopwatch timer;
+ timer.Start();
+ gSystem->Load("libTree.so");
+ gSystem->Load("libGeom.so");
+ gSystem->Load("libVMC.so");
+ gSystem->Load("libXMLIO.so");
+
+ gSystem->Load("libSTEERBase.so");
+ gSystem->Load("libESD.so");
+ gSystem->Load("libAOD.so");
+
+ gSystem->Load("libANALYSIS");
+ gSystem->Load("libANALYSISalice");
+
+ gSystem->AddIncludePath("-I$ALICE_ROOT/include");
+ gROOT->ProcessLine(".L AliAnalysisHadEt.cxx+g");
+ gROOT->ProcessLine(".L AliAnalysisHadEtMonteCarlo.cxx+g");
+ gROOT->ProcessLine(".L AliAnalysisHadEtReconstructed.cxx+g");
+ gROOT->ProcessLine(".L AliAnalysisTaskHadEt.cxx+g");
+
+
+ char *kTreeName = "esdTree" ;
+ TChain * chain = new TChain(kTreeName,"myESDTree") ;
+ if(submit){
+ gSystem->Load("libNetx.so") ;
+ gSystem->Load("libgapiUI.so");
+ gSystem->Load("libRAliEn.so");
+ TGrid::Connect("alien://") ;
+ }
+ chain->Add("/data/LHC10d15/1821/AliESDs.root");
+
+ // Make the analysis manager
+ AliAnalysisManager *mgr = new AliAnalysisManager("TotEtManager");
+ if(submit){
+ gROOT->LoadMacro("CreateAlienHandlerHadEtSim.C");
+ AliAnalysisGrid *alienHandler = CreateAlienHandlerHadEtSim();
+ if (!alienHandler) return;
+ mgr->SetGridHandler(alienHandler);
+ }
+
+ AliVEventHandler* esdH = new AliESDInputHandler;
+ mgr->SetInputEventHandler(esdH);
+ AliMCEventHandler* handler = new AliMCEventHandler;
+ handler->SetReadTR(kFALSE);
+ mgr->SetMCtruthEventHandler(handler);
+ AliAnalysisTaskHadEt *task2 = new AliAnalysisTaskHadEt("TaskHadEt");
+ mgr->AddTask(task2);
+ AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
+ AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("out2", TList::Class(), AliAnalysisManager::kOutputContainer,"Et.ESD.new.sim.root");
+ mgr->ConnectInput(task2,0,cinput1);
+ mgr->ConnectOutput(task2,1,coutput2);
+
+ mgr->SetDebugLevel(0);
+
+ if (!mgr->InitAnalysis()) return;
+ mgr->PrintStatus();
+ if(submit){
+ mgr->StartAnalysis("grid");
+ }
+ else{
+ mgr->StartAnalysis("local",chain);
+ }
+
+ timer.Stop();
+ timer.Print();
+}