class AliAnalysisGrid;
class AliAnalysisAlien;
//_______________________________| Loading Libraries |________________________________
void Load() {
gSystem->SetIncludePath("-I. -I$ROOTSYS/include -I$ALICE_ROOT -I$ALICE_ROOT/include -I$ALICE_ROOT/ITS -I$ALICE_ROOT/TPC -I$ALICE_ROOT/CONTAINERS -I$ALICE_ROOT/STEER/STEER -I$ALICE_ROOT/STEER/STEERBase -I$ALICE_ROOT/STEER/ESD -I$ALICE_ROOT/STEER/AOD -I$ALICE_ROOT/TRD -I$ALICE_ROOT/macros -I$ALICE_ROOT/ANALYSIS -I$ALICE_ROOT/OADB -I$ALICE_ROOT/PWGPP -g");
//load the required aliroot libraries
gSystem->Load("libTree.so");
gSystem->Load("libGeom.so");
gSystem->Load("libPhysics.so");
gSystem->Load("libVMC.so");
gSystem->Load("libMinuit.so");
gSystem->Load("libSTEERBase.so");
gSystem->Load("libESD.so");
gSystem->Load("libAOD.so");
gSystem->Load("libANALYSIS.so");
gSystem->Load("libOADB.so");
gSystem->Load("libANALYSISalice.so");
gSystem->Load("libCORRFW.so");
gSystem->Load("libPWGPP.so");
}
//_______________________________| Running on Grid |________________________________
void RunCFSingleTrackEfficiencyTask()
{
const Bool_t readAOD = 1;
TString analysisMode = "local"; // "local", "grid", or "proof"
TString inputMode = "list"; // "list", "xml", or "dataset"
Long64_t nentries = 123567890,firstentry=0;
Bool_t useAlienPlugin = kTRUE;
TString pluginmode = "test";
TString testfileslistWithPlugin="filesAOD.txt"; // list of local files to test a la "files.txt" to use by the plugin
TBenchmark benchmark;
benchmark.Start("AliCFSingleTrackEfficiencyTask");
Load();
if(analysisMode=="grid") {
TGrid::Connect("alien://") ; // Create an AliRunTagCuts and an AliEventTagCuts Object
}
if(useAlienPlugin) {
AliAnalysisGrid *alienHandler = CreateAlienHandler(pluginmode,testfileslistWithPlugin,readAOD);
if(!alienHandler) return;
}
printf("CREATE ANALYSIS MANAGER\n");
AliAnalysisManager *mgr = new AliAnalysisManager("My Manager","My Manager");
mgr->SetDebugLevel(10);
if(useAlienPlugin) mgr->SetGridHandler(alienHandler);
AliMCEventHandler* mcHandler = new AliMCEventHandler();
if (!readAOD) mgr->SetMCtruthEventHandler(mcHandler);
AliInputEventHandler* dataHandler;
if (readAOD) dataHandler = new AliAODInputHandler();
else dataHandler = new AliESDInputHandler();
mgr->SetInputEventHandler(dataHandler);
//CREATE THE TASK
printf("Prepare to create the task\n");
// Run physics selection if not reading AODs
if (!readAOD) {
gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection(kTRUE);
}
// Add new tasks
//
// First add the task for the PID response setting
gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C");
AliAnalysisTaskSE *setupTask = AddTaskPIDResponse(kTRUE,kTRUE);
gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDqa.C");
AliAnalysisTaskPIDqa *pidQA = AddTaskPIDqa();
// gROOT->LoadMacro("AliSingleTrackEffCuts.cxx++g");
// gROOT->LoadMacro("AliCFSingleTrackEfficiencyTask.cxx++g");
gROOT->LoadMacro("AddSingleTrackEfficiencyTask.C");
AliCFSingleTrackEfficiencyTask *task = AddSingleTrackEfficiencyTask(readAOD,"Nch");
AliCFSingleTrackEfficiencyTask *taskPi = AddSingleTrackEfficiencyTask(readAOD,"Pion",AliPID::kPion,211);
AliCFSingleTrackEfficiencyTask *taskKa = AddSingleTrackEfficiencyTask(readAOD,"Kaon",AliPID::kKaon,321);
// Run the analysis
TChain * analysisChain=0;
if(analysisChain) printf("CHAIN HAS %d ENTRIES\n",(Int_t)analysisChain->GetEntries());
if(!mgr->InitAnalysis()) return;
mgr->PrintStatus();
if(analysisMode=="grid" && !useAlienPlugin) analysisMode="local";
if(analysisMode!="proof") {
mgr->StartAnalysis(analysisMode.Data(),analysisChain,nentries,firstentry);
}
benchmark.Stop("AliCFSingleTrackEfficiencyTask");
benchmark.Show("AliCFSingleTrackEfficiencyTask");
return;
}
//_______________________________| CreateAlienHandler |________________________________
AliAnalysisGrid* CreateAlienHandler(TString pluginmode="test", TString testfileslistWithPlugin="", const Bool_t readAOD=kTRUE)
{
AliAnalysisAlien *plugin = new AliAnalysisAlien();
plugin->SetRunMode(pluginmode.Data());
plugin->SetUser("zconesa");
plugin->SetAPIVersion("V1.1x");
plugin->SetROOTVersion("v5-34-08");
plugin->SetAliROOTVersion("v5-05-03-AN");
plugin->SetNtestFiles(1);
// Set data file list to test on local mode
plugin->SetFileForTestMode(testfileslistWithPlugin.Data());
// Set data search pattern for DATA grid Mode
plugin->SetGridDataDir("/alice/sim/2013/LHC13d3"); // specify MC sample
if(readAOD) plugin->SetDataPattern("AOD/*AliAOD.root");// specify AOD set
else plugin->SetDataPattern("*/AliESDs.root");
Int_t totruns=0;
gROOT->LoadMacro("$ALICE_ROOT/PWGHF/vertexingHF/AddGoodRuns.C");
totruns += AddGoodRuns(plugin,"LHC13b","LHC13b");
totruns += AddGoodRuns(plugin,"LHC13c","LHC13c");
plugin->SetNrunsPerMaster(totruns);
// plugin->AddDataFile("/alice/cern.ch/user/z/zconesa/sim/LHC13d3/195483_195529.xml");
plugin->SetGridWorkingDir("sim/LHC13d3/ST290713");
plugin->SetGridOutputDir("out");
plugin->SetExecutable("ST290713.sh");
plugin->SetAnalysisSource("AliSingleTrackEffCuts.cxx AliCFSingleTrackEfficiencyTask.cxx");
plugin->SetAdditionalLibs("AliSingleTrackEffCuts.h AliSingleTrackEffCuts.cxx AliCFSingleTrackEfficiencyTask.cxx AliCFSingleTrackEfficiencyTask.h");
plugin->AddIncludePath("-I. -I$ROOTSYS/include -I$ALICE_ROOT -I$ALICE_ROOT/include -I$ALICE_ROOT/ITS -I$ALICE_ROOT/TPC -I$ALICE_ROOT/CONTAINERS -I$ALICE_ROOT/STEER/STEER -I$ALICE_ROOT/STEER/STEERBase -I$ALICE_ROOT/STEER/ESD -I$ALICE_ROOT/STEER/AOD -I$ALICE_ROOT/TRD -I$ALICE_ROOT/macros -I$ALICE_ROOT/ANALYSIS -I$ALICE_ROOT/OADB -g");
plugin->SetDefaultOutputs(kTRUE);
// merging via jdl
plugin->SetMergeViaJDL(kTRUE);
plugin->SetOneStageMerging(kFALSE);
plugin->SetMaxMergeStages(2);
plugin->SetSplitMaxInputFileNumber(5);
plugin->SetAnalysisMacro("ST290713.C");
plugin->SetJDLName("TaskHFST290713.jdl");
return plugin;
}
RunCFSingleTrackEfficiencyTask.C:1 RunCFSingleTrackEfficiencyTask.C:2 RunCFSingleTrackEfficiencyTask.C:3 RunCFSingleTrackEfficiencyTask.C:4 RunCFSingleTrackEfficiencyTask.C:5 RunCFSingleTrackEfficiencyTask.C:6 RunCFSingleTrackEfficiencyTask.C:7 RunCFSingleTrackEfficiencyTask.C:8 RunCFSingleTrackEfficiencyTask.C:9 RunCFSingleTrackEfficiencyTask.C:10 RunCFSingleTrackEfficiencyTask.C:11 RunCFSingleTrackEfficiencyTask.C:12 RunCFSingleTrackEfficiencyTask.C:13 RunCFSingleTrackEfficiencyTask.C:14 RunCFSingleTrackEfficiencyTask.C:15 RunCFSingleTrackEfficiencyTask.C:16 RunCFSingleTrackEfficiencyTask.C:17 RunCFSingleTrackEfficiencyTask.C:18 RunCFSingleTrackEfficiencyTask.C:19 RunCFSingleTrackEfficiencyTask.C:20 RunCFSingleTrackEfficiencyTask.C:21 RunCFSingleTrackEfficiencyTask.C:22 RunCFSingleTrackEfficiencyTask.C:23 RunCFSingleTrackEfficiencyTask.C:24 RunCFSingleTrackEfficiencyTask.C:25 RunCFSingleTrackEfficiencyTask.C:26 RunCFSingleTrackEfficiencyTask.C:27 RunCFSingleTrackEfficiencyTask.C:28 RunCFSingleTrackEfficiencyTask.C:29 RunCFSingleTrackEfficiencyTask.C:30 RunCFSingleTrackEfficiencyTask.C:31 RunCFSingleTrackEfficiencyTask.C:32 RunCFSingleTrackEfficiencyTask.C:33 RunCFSingleTrackEfficiencyTask.C:34 RunCFSingleTrackEfficiencyTask.C:35 RunCFSingleTrackEfficiencyTask.C:36 RunCFSingleTrackEfficiencyTask.C:37 RunCFSingleTrackEfficiencyTask.C:38 RunCFSingleTrackEfficiencyTask.C:39 RunCFSingleTrackEfficiencyTask.C:40 RunCFSingleTrackEfficiencyTask.C:41 RunCFSingleTrackEfficiencyTask.C:42 RunCFSingleTrackEfficiencyTask.C:43 RunCFSingleTrackEfficiencyTask.C:44 RunCFSingleTrackEfficiencyTask.C:45 RunCFSingleTrackEfficiencyTask.C:46 RunCFSingleTrackEfficiencyTask.C:47 RunCFSingleTrackEfficiencyTask.C:48 RunCFSingleTrackEfficiencyTask.C:49 RunCFSingleTrackEfficiencyTask.C:50 RunCFSingleTrackEfficiencyTask.C:51 RunCFSingleTrackEfficiencyTask.C:52 RunCFSingleTrackEfficiencyTask.C:53 RunCFSingleTrackEfficiencyTask.C:54 RunCFSingleTrackEfficiencyTask.C:55 RunCFSingleTrackEfficiencyTask.C:56 RunCFSingleTrackEfficiencyTask.C:57 RunCFSingleTrackEfficiencyTask.C:58 RunCFSingleTrackEfficiencyTask.C:59 RunCFSingleTrackEfficiencyTask.C:60 RunCFSingleTrackEfficiencyTask.C:61 RunCFSingleTrackEfficiencyTask.C:62 RunCFSingleTrackEfficiencyTask.C:63 RunCFSingleTrackEfficiencyTask.C:64 RunCFSingleTrackEfficiencyTask.C:65 RunCFSingleTrackEfficiencyTask.C:66 RunCFSingleTrackEfficiencyTask.C:67 RunCFSingleTrackEfficiencyTask.C:68 RunCFSingleTrackEfficiencyTask.C:69 RunCFSingleTrackEfficiencyTask.C:70 RunCFSingleTrackEfficiencyTask.C:71 RunCFSingleTrackEfficiencyTask.C:72 RunCFSingleTrackEfficiencyTask.C:73 RunCFSingleTrackEfficiencyTask.C:74 RunCFSingleTrackEfficiencyTask.C:75 RunCFSingleTrackEfficiencyTask.C:76 RunCFSingleTrackEfficiencyTask.C:77 RunCFSingleTrackEfficiencyTask.C:78 RunCFSingleTrackEfficiencyTask.C:79 RunCFSingleTrackEfficiencyTask.C:80 RunCFSingleTrackEfficiencyTask.C:81 RunCFSingleTrackEfficiencyTask.C:82 RunCFSingleTrackEfficiencyTask.C:83 RunCFSingleTrackEfficiencyTask.C:84 RunCFSingleTrackEfficiencyTask.C:85 RunCFSingleTrackEfficiencyTask.C:86 RunCFSingleTrackEfficiencyTask.C:87 RunCFSingleTrackEfficiencyTask.C:88 RunCFSingleTrackEfficiencyTask.C:89 RunCFSingleTrackEfficiencyTask.C:90 RunCFSingleTrackEfficiencyTask.C:91 RunCFSingleTrackEfficiencyTask.C:92 RunCFSingleTrackEfficiencyTask.C:93 RunCFSingleTrackEfficiencyTask.C:94 RunCFSingleTrackEfficiencyTask.C:95 RunCFSingleTrackEfficiencyTask.C:96 RunCFSingleTrackEfficiencyTask.C:97 RunCFSingleTrackEfficiencyTask.C:98 RunCFSingleTrackEfficiencyTask.C:99 RunCFSingleTrackEfficiencyTask.C:100 RunCFSingleTrackEfficiencyTask.C:101 RunCFSingleTrackEfficiencyTask.C:102 RunCFSingleTrackEfficiencyTask.C:103 RunCFSingleTrackEfficiencyTask.C:104 RunCFSingleTrackEfficiencyTask.C:105 RunCFSingleTrackEfficiencyTask.C:106 RunCFSingleTrackEfficiencyTask.C:107 RunCFSingleTrackEfficiencyTask.C:108 RunCFSingleTrackEfficiencyTask.C:109 RunCFSingleTrackEfficiencyTask.C:110 RunCFSingleTrackEfficiencyTask.C:111 RunCFSingleTrackEfficiencyTask.C:112 RunCFSingleTrackEfficiencyTask.C:113 RunCFSingleTrackEfficiencyTask.C:114 RunCFSingleTrackEfficiencyTask.C:115 RunCFSingleTrackEfficiencyTask.C:116 RunCFSingleTrackEfficiencyTask.C:117 RunCFSingleTrackEfficiencyTask.C:118 RunCFSingleTrackEfficiencyTask.C:119 RunCFSingleTrackEfficiencyTask.C:120 RunCFSingleTrackEfficiencyTask.C:121 RunCFSingleTrackEfficiencyTask.C:122 RunCFSingleTrackEfficiencyTask.C:123 RunCFSingleTrackEfficiencyTask.C:124 RunCFSingleTrackEfficiencyTask.C:125 RunCFSingleTrackEfficiencyTask.C:126 RunCFSingleTrackEfficiencyTask.C:127 RunCFSingleTrackEfficiencyTask.C:128 RunCFSingleTrackEfficiencyTask.C:129 RunCFSingleTrackEfficiencyTask.C:130 RunCFSingleTrackEfficiencyTask.C:131 RunCFSingleTrackEfficiencyTask.C:132 RunCFSingleTrackEfficiencyTask.C:133 RunCFSingleTrackEfficiencyTask.C:134 RunCFSingleTrackEfficiencyTask.C:135 RunCFSingleTrackEfficiencyTask.C:136 RunCFSingleTrackEfficiencyTask.C:137 RunCFSingleTrackEfficiencyTask.C:138 RunCFSingleTrackEfficiencyTask.C:139 RunCFSingleTrackEfficiencyTask.C:140 RunCFSingleTrackEfficiencyTask.C:141 RunCFSingleTrackEfficiencyTask.C:142 RunCFSingleTrackEfficiencyTask.C:143 RunCFSingleTrackEfficiencyTask.C:144 RunCFSingleTrackEfficiencyTask.C:145 RunCFSingleTrackEfficiencyTask.C:146 RunCFSingleTrackEfficiencyTask.C:147 RunCFSingleTrackEfficiencyTask.C:148 RunCFSingleTrackEfficiencyTask.C:149 RunCFSingleTrackEfficiencyTask.C:150 RunCFSingleTrackEfficiencyTask.C:151 RunCFSingleTrackEfficiencyTask.C:152 RunCFSingleTrackEfficiencyTask.C:153 RunCFSingleTrackEfficiencyTask.C:154 RunCFSingleTrackEfficiencyTask.C:155 RunCFSingleTrackEfficiencyTask.C:156 RunCFSingleTrackEfficiencyTask.C:157