AliAnalysisGrid* CreateAlienHandler(const char* mode, bool isMC){ AliAnalysisAlien *plugin = new AliAnalysisAlien(); // Set the run mode (can be "full", "test", "offline", "submit" or "terminate") plugin->SetRunMode(gridmode.Data()); // Set versions of used packages plugin->SetAPIVersion("V1.1x"); plugin->SetAliPhysicsVersion("vAN-20170425-1"); plugin->SetExecutableCommand("aliroot -b -q"); // Declare the analysis source files names separated by blancs. To be compiled runtime // using ACLiC on the worker nodes. //plugin->SetAdditionalLibs("libPWGLFnuclex.so"); plugin->AddIncludePath("-I. -I$ROOTSYS/include -I$ALICE_ROOT/include -I$ALICE_PHYSICS/include"); // Declare all libraries (other than the default ones for the framework. These will benloaded by the generated analysis macro. Add all extra files (task .cxx/.h) here. // Declare the output file names separated by blancs. // (can be like: file.root or file.root@ALICE::Niham::File) // To only save certain files, use SetDefaultOutputs(kFALSE), and then // SetOutputFiles("list.root other.filename") to choose which files to save plugin->SetDefaultOutputs(); //plugin->SetOutputFiles("list.root"); // Optionally set a name for the generated analysis macro (default MyAnalysis.C) plugin->SetAnalysisMacro(Form("%s.C",kTaskName.Data())); // Optionally set maximum number of input files/subjob (default 100, put 0 to ignore) plugin->SetSplitMaxInputFileNumber(kJobSplitting); // Optionally modify the executable name (default analysis.sh) plugin->SetExecutable(Form("%s.sh",kTaskName.Data())); // set number of test files to use in "test" mode plugin->SetNtestFiles(2); // file containing a list of chuncks to be used for testing plugin->SetFileForTestMode("testdata"); // Optionally resubmit threshold. plugin->SetMasterResubmitThreshold(90); // Optionally set time to live (default 30000 sec) plugin->SetTTL(30000); // Optionally set input format (default xml-single) plugin->SetInputFormat("xml-single"); // Optionally modify the name of the generated JDL (default analysis.jdl) plugin->SetJDLName(Form("%s.jdl",kTaskName.Data())); // Optionally modify job price (default 1) plugin->SetPrice(1); // Optionally modify split mode (default 'se') plugin->SetSplitMode("se"); return plugin; }
AliAnalysisGrid *CreateAlienHandler() { AliAnalysisAlien *plugin = new AliAnalysisAlien(); //plugin->SetOverwriteMode(); // Set the run mode (can be "full", "test", "offline", "submit" or "terminate") //plugin->SetRunMode("test"); plugin->SetRunMode("full"); //plugin->SetRunMode("terminate"); // Set versions of used packages plugin->SetAPIVersion("V1.1x"); plugin->SetROOTVersion("v5-34-08-6"); plugin->SetAliROOTVersion("vAN-20141031"); // Set the path for finding the data plugin->SetGridDataDir("/alice/data/2010/LHC10h/"); plugin->SetDataPattern("ESDs/pass2/AOD086/*/AliAOD.root"); // for testing over multiple files //plugin->SetDataPattern("ESDs/pass2/AOD086/0001/AliAOD.root"); // for testing over a single file plugin->SetRunPrefix("000"); //plugin->AddRunNumber(137161); gROOT->ProcessLine(".L AddRunNumbers.C"); int added = AddRunNumbers(plugin,0,95,"lhc10h"); if(added<0) return NULL; // Set the path for the output plugin->SetGridWorkingDir("TaskExample"); // $HOME/TaskExample plugin->SetGridOutputDir("OutputTesting_X005"); // $HOME/TaskExample/OutputTesting // Specify the source code for the analysis plugin->SetAnalysisSource("AliAnalysisTaskExample.cxx"); // class file plugin->SetAdditionalLibs("AliAnalysisTaskExample.h AliAnalysisTaskExample.cxx"); // header space class // Default outputs (?) plugin->SetDefaultOutputs(); // ALWAYS use default outputs, code warns then crashes if not // The rest of these are optional, though some are very useful plugin->SetSplitMaxInputFileNumber(100); // default 100 input files/subjob plugin->SetMaxInitFailed(5); // default (?) jobs fail to kill waiting subjobs plugin->SetMasterResubmitThreshold(90); // default (?) resubmit threshold plugin->SetTTL(50000); // default 30000 sec time to live plugin->SetAnalysisMacro("TaskExample.C"); // default "MyAnalysis.C" plugin->SetExecutable("TaskExample.sh"); // default "analysis.sh" plugin->SetJDLName("TaskExample.jdl"); // default "analysis.jdl" plugin->SetInputFormat("xml-single"); // default "xml-single" plugin->SetPrice(1); // default 1 price to modify job plugin->SetSplitMode("se"); // default "se" return plugin; }
AliAnalysisGrid *CreateAlienHandler() { AliAnalysisAlien *plugin = new AliAnalysisAlien(); plugin->SetRunMode("test"); // generate files and make local test on my PC //plugin->SetRunMode("offline"); // generate files that can be modified; no submission //plugin->SetRunMode("submit"); // submit files generated with offline mode //plugin->SetRunMode("full"); // generate files and submit //plugin->SetRunMode("terminate"); // do merging only in one job plugin->SetAPIVersion("V1.1x"); plugin->SetAliPhysicsVersion("vAN-20151115-1"); plugin->SetNtestFiles(1); //plugin->SetROOTVersion("v5-34-08-6"); //plugin->SetAliROOTVersion("vAN-20141031"); plugin->SetGridDataDir("/alice/data/2010/LHC10h/"); plugin->SetDataPattern("ESDs/pass2/AOD160/0008/AliAOD.root"); plugin->SetRunPrefix("000"); int runNumber[] = {139510, 139507}; int size = sizeof(runNumber)/sizeof(runNumber[0]); for(int i=0; i<size; i++) { plugin->AddRunNumber(runNumber[i]); } //plugin->AddRunNumber(139510); plugin->SetGridWorkingDir("TaskFlow"); // $HOME/TaskFlow plugin->SetGridOutputDir("OutputFlow"); // TaskFlow/OutputFlow // plugin->AddIncludePath("-I$ROOTSYS/include -I$ALICE_ROOT/include"); plugin->SetAnalysisSource("AliAnalysisTaskFlow.cxx"); plugin->SetAdditionalLibs("AliAnalysisTaskFlow.h AliAnalysisTaskFlow.cxx"); plugin->SetDefaultOutputs(); plugin->SetOutputToRunNo(); plugin->SetAnalysisMacro("Flow.C"); plugin->SetSplitMaxInputFileNumber(400); plugin->SetMasterResubmitThreshold(90); plugin->SetTTL(20000); plugin->SetJDLName("Flow.jdl"); plugin->SetExecutable("Flow.sh"); // plugin->SetExecutableCommand("aliroot -b -q"); return plugin; }
void RunMacro(){ // check the function for asymmetric TPC cut in ConfigHFEemcalMod....the rest is still necessary???? // Firstly, set some variables const char* launch = "grid"; // grid, local (if your data is on your local machine, doesn't connect at all) const char* mode = "test"; //test, full, terminate (test= connect to grid but run locally, full= run on grid, terminate= merge output on grid) Bool_t pre_final_stage = kTRUE; //TRUE = merging done on grid, FALSE = merge happens locally Int_t cyclenumber = 1; Bool_t debug = kTRUE; char* work_dir = "PhiCorrelations_LHC16q_0_20_noveto"; char* output_dir = "output_2018_10_22_FAST"; Int_t ttl = 50000; Int_t noffiles = 40; Int_t runcycle[]={0,1,31}; //Int_t runcycle[]={0,16,31}; Bool_t UseParfiles = kFALSE; // load libraries LoadLibraries(); // create and customize the alien handler AliAnalysisAlien *alienHandler = new AliAnalysisAlien(); alienHandler->AddIncludePath("-I. -I$ROOTSYS/include -I$ALICE_ROOT -I$ALICE_ROOT/EMCAL -I$ALICE_ROOT/PYTHIA6 -I$ALICE_ROOT/ANALYSIS -I$ALICE_PHYSICS/PWGGA -I$ALICE_PHYSICS/PWGHF -I$ALICE_PHYSICS/PWGHF/hfe -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_PHYSICS/OADB -I$ALICE_PHYSICS/PWGHF/base -I$ALICE_ROOT/include -I$ALICE_ROOT/ITS -I$ALICE_ROOT/TPC -I$ALICE_ROOT/CONTAINERS -I$ALICE_ROOT/STEER -I$ALICE_ROOT/TRD -I$ALICE_ROOT/macros -I$ALICE_ROOT/ANALYSIS -I$ALICE_PHYSICS/OADB/macros -I$ALICE_PHYSICS/PWGCF/Correlations -I$ALICE_PHYSICS/PWGCF -I$ALICE_PHYSICS/PWGCF/Correlations/Base -I$ALICE_PHYSICS/include -g"); alienHandler->SetAdditionalLibs("AliAnalysisTaskHadronPhiCorr_current.cxx AliAnalysisTaskHadronPhiCorr_current.h AddTaskHadronPhiCorr_current.C libpythia6.so libEGPythia6.so libAliPythia6.so libPWGHFhfe.so libCDB.so libSTEER.so libCORRFW.so libPWGflowBase.so libPWGflowTasks.so libGui.so libProof.so libMinuit.so libXMLParser.so libRAWDatabase.so libRAWDatarec.so libCDB.so libSTEERBase.so libSTEER.so libTPCbase.so libTOFbase.so libTOFrec.so libTRDbase.so libVZERObase.so libVZEROrec.so libT0base.so libT0rec.so libPWGTools.so libPWGCFCorrelationsBase.so"); alienHandler->SetAnalysisSource("AliAnalysisTaskHadronPhiCorr_current.cxx"); //alienHandler->SetOverwriteMode(); alienHandler->SetRunMode(mode); alienHandler->SetNtestFiles(2); //alienHandler->SetAPIVersion("V1.1x"); alienHandler->SetAliPhysicsVersion("vAN-20170731-1"); //alienHandler->SetFileForTestMode("File_LHC12dPass1.txt"); //txt file that tells where to look for local files if launch=local //alienHandler->SetGridDataDir("/alice/sim/LHC10d4/"); //alienHandler->SetDataPattern("*ESDs.root"); alienHandler->SetGridDataDir("//alice/data/2016/LHC16q/"); alienHandler->SetDataPattern("*/pass1_FAST/AOD/*/*AOD.root"); //alienHandler->SetDataPattern("*/pass4/AOD/*AOD.root"); alienHandler->SetRunPrefix("000"); // IMPORTANT! Only need for real data, comment this line out for MC data //LHC12d //Int_t runArray[] = {186320, 186319, 186318, 186229, 186208, 186205, 186200, 186167, 186165, 186164, 186163, 185912, 185909, 185784, 185778, 185776, 185775, 185768, 185765, 185764, 185757, 185756, 185738, 185735, 185734, 185701, 185699, 185698, 185697, 185695, 185687, 185680, 185589, 185588, 185583, 185582, 185581, 185580, 185578}; //Int_t runArray[] = {186320, 186319, 186318, 186229, 186208, 186205, 186200, 186167, 186165, 186164, 186163, 185912, 185909, 185784, 185778, 185776, 185775, 185768, 185765, 185764, 185757, 185756, 185738, 185735, 185734, 185701, 185699, 185698, 185697, 185695, 185687, 185680, 185589, 185588, 185583, 185582, 185581, 185580, 185578, 185575, 185574, 185565, 185563, 185474, 185465, 185461, 185457, 185375, 185371, 185363, 185362, 185361, 185360, 185359, 185356, 185351, 185350, 185349, 185303, 185302, 185300, 185299, 185296, 185293, 185292, 185291, 185289, 185288, 185284, 185282, 185221, 185217, 185208, 185206, 185203, 185198, 185196, 185189}; //LHC13b //Int_t runArray[] = {195483, 195482, 195481, 195480, 195479, 195478, 195391, 195389, 195351, 195346, 195344}; //LHC13c //Int_t runArray[] = {195529, 195531, 195566, 195567, 195568, 195592, 195593, 195596, 195633, 195635, 195644, 195673, 195675, 195677}; //LHC10d4 - MC Data //Int_t runArray[] = {119159, 119161, 119163, 119841, 119842, 119844, 119845, 119846, 119849, 119853, 119856, 119859, 119862, 120067, 120069, 120072, 120073, 120076, 120079, 120244, 120503, 120504, 120505, 120616, 120617, 120671, 120741, 120750, 120758, 120820, 120821, 120822, 120823, 120824, 120825, 120829}; // Int_t runArray[] = {120073}; //for testing why files were being opened but not closed //LHC16r - 8 TeV pPb data //Int_t runArray[] = {266318, 266317, 266316, 266305, 266304, 266300, 266299, 266296, 266208, 266197, 266196, 266193, 266190, 266189, 266187, 266117, 266086, 266085, 266084, 266083, 266081, 266076, 266074, 266034, 265797, 265795, 265789, 265788, 265756, 265754, 265746, 265744, 265742, 265741, 265714, 265713,265709, 265705, 265701, 265700, 265698, 265697, 265696, 265607, 265596, 265594}; //Int_t runArray[] = {266318, 266317, 266316, 266208, 266197, 266196, 266187, 265754, 265744, 265607, 265596, 265594}; //LHC16q - 5 TeV pPb data Int_t runArray[] = {265525, 265521, 265501, 265500, 265499, 265435, 265427, 265426, 265425, 265424, 265422, 265421, 265420, 265419, 265388, 265387, 265385, 265384, 265383, 265381, 265378, 265377, 265344, 265343, 265342, 265339, 265338, 265336, 265334, 265332, 265309}; for (Int_t i = runcycle[cyclenumber - 1]; i < runcycle[cyclenumber] ; i++) { if (i == sizeof(runArray) / sizeof(runArray[1])) break; alienHandler->AddRunNumber(runArray[i]); } printf("\n\nSetting Up alienHandler.\n\n"); alienHandler->SetGridWorkingDir(work_dir); alienHandler->SetGridOutputDir(output_dir); alienHandler->SetDefaultOutputs(kTRUE); alienHandler->SetAnalysisMacro("PhiInvMass.C"); alienHandler->SetSplitMaxInputFileNumber(noffiles); alienHandler->SetExecutable("PhiInvMass.sh"); alienHandler->SetExecutableCommand("aliroot -b -q"); alienHandler->SetTTL(ttl); //10000 alienHandler->SetInputFormat("xml-single"); alienHandler->SetJDLName("PhiInvMass.jdl"); alienHandler->SetPrice(1); alienHandler->SetSplitMode("se"); alienHandler->SetMasterResubmitThreshold(10); alienHandler->SetMergeExcludes("EventStat_temp.root"); alienHandler->SetOutputToRunNo(kTRUE); alienHandler->SetKeepLogs(kTRUE); alienHandler->SetMaxMergeFiles(15); alienHandler->SetMaxMergeStages(7); alienHandler->SetMergeViaJDL(pre_final_stage); // alienHandler->SetOneStageMerging(kFALSE); //???????????????????????????????------------------- if (!alienHandler) return; // load the necessary macros //gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C"); //gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C"); // Use AliRoot includes to compile our task gROOT->ProcessLine(".include $ALICE_ROOT/include"); gROOT->ProcessLine(".include $ALICE_ROOT/EMCAL"); gROOT->ProcessLine(".include $ALICE_PHYSICS/include"); gROOT->ProcessLine(".include $ALICE_ROOT/ANALYSIS/"); gROOT->ProcessLine(".include $PWD/."); gSystem->AddIncludePath("-I. -I$ROOTSYS/include -I$ALICE_ROOT -I$ALICE_ROOT/EMCAL -I$ALICE_ROOT/PYTHIA6 -I$ALICE_ROOT/ANALYSIS -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_PHYSICS/OADB -I$ALICE_PHYSICS/PWGHF/base -I$ALICE_ROOT/include -I$ALICE_ROOT/ITS -I$ALICE_ROOT/TPC -I$ALICE_ROOT/CONTAINERS -I$ALICE_ROOT/STEER -I$ALICE_ROOT/TRD -I$ALICE_ROOT/macros -I$ALICE_ROOT/ANALYSIS -I$ALICE_PHYSICS/OADB -I$ALICE_ROOT/PWG/FLOW/Base -I$ALICE_PHYSICS/PWGCF/Correlations/Base -I$ALICE_PHYSICS/PWGCF/Correlations -g "); // gSystem->AddIncludePath("-I. -I$ROOTSYS/include -I$ALICE_ROOT -I$ALICE_ROOT/include -I$ALICE_ROOT/macros -I$ALICE_PHYSICS/include -g"); //printf("\n!!!!!!!!!!!!!!!!!!!!!!\n AliAnalysis Manager \n\n"); AliAnalysisManager *mgr = new AliAnalysisManager("PhiAnalysis"); mgr->SetGridHandler(alienHandler); AliAODInputHandler* aodH = new AliAODInputHandler(); mgr->SetInputEventHandler(aodH); // AliESDInputHandler* esdH = new AliESDInputHandler(); // mgr->SetInputEventHandler(esdH); // AliMCEventHandler* mcH = new AliMCEventHandler(); // mgr->SetMCtruthEventHandler(mcH); // mcH->SetReadTR(kFALSE); //gROOT->LoadMacro("AddTaskPhiCorr.C"); gROOT->LoadMacro("./AliAnalysisTaskHadronPhiCorr.cxx++g"); //gROOT->LoadMacro("$ALICE_PHYSICS/OADB/macros/AddTaskPhysicsSelection.C"); //gROOT->LoadMacro("$ALICE_PHYSICS/OADB/COMMON/MULTIPLICITY/macros/AddTaskMultSelection.C"); //gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C"); //switch on aliphysicsselection gInterpreter->ProcessLine(Form(".x %s", gSystem->ExpandPathName("$ALICE_PHYSICS/OADB/COMMON/MULTIPLICITY/macros/AddTaskMultSelection.C"))); AliPhysicsSelectionTask* physSelTask = reinterpret_cast<AliPhysicsSelectionTask*>(gInterpreter->ProcessLine(Form(".x %s(kFALSE, kTRUE)", gSystem->ExpandPathName("$ALICE_PHYSICS/OADB/macros/AddTaskPhysicsSelection.C")))); //Only set true for MC Bool_t isMC = kFALSE; gInterpreter->ProcessLine(Form(".x %s(kFALSE)", gSystem->ExpandPathName("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C"))); //create a task AliAnalysisTaskHadronPhiCorr_current *task1 = reinterpret_cast<AliAnalysisTaskHadronPhiCorr_current*>(gInterpreter->ProcessLine(Form(".x %s(kFALSE, 0.0, 20.0)", gSystem->ExpandPathName("AddTaskHadronPhiCorr_current.C")))); //AliAnalysisTaskHadronPhiCorr_current *task2 = reinterpret_cast<AliAnalysisTaskHadronPhiCorr_current*>(gInterpreter->ProcessLine(Form(".x %s(true, 10.0, 20.0)", gSystem->ExpandPathName("AddTaskHadronPhiCorr_current.C")))); //AliAnalysisTaskHadronPhiCorr_current *task3 = reinterpret_cast<AliAnalysisTaskHadronPhiCorr_current*>(gInterpreter->ProcessLine(Form(".x %s(kFALSE, 20.0, 40.0)", gSystem->ExpandPathName("AddTaskHadronPhiCorr_current.C")))); //AliAnalysisTaskHadronPhiCorr_current *task4 = reinterpret_cast<AliAnalysisTaskHadronPhiCorr_current*>(gInterpreter->ProcessLine(Form(".x %s(kTRUE, 40.0, 90.0)", gSystem->ExpandPathName("AddTaskHadronPhiCorr_current.C")))); task1->SetKaonEtaCut(0.8); task1->SetKaonTPCCut(3.0); task1->SetKaonTOFCut(3.0); task1->SetTOFVeto(kFALSE); task1->SetKaonTrkBit(1024); task1->SetAssocTrkBit(1024); task1->SetTrigTrkBit(AliAODTrack::kIsHybridGCG); task1->SetZVertexMin(-10.0); task1->SetZVertexMax(10.0); task1->SetZVertexNbins(10); task1->SetCentEstimator("V0A"); if (!mgr->InitAnalysis()) return; mgr->PrintStatus(); //fprintf(stdout, "\n!!!!!!!!!!!!!\nAbout to launch analysis... \n"); // Start analysis in grid. mgr->StartAnalysis(launch); //printf("\n!!!!!!!!!!!!!\nDone with StartAnalysis(launch)\n"); fflush(stdout); }
AliAnalysisGrid* CreateAlienHandlerTrigger(const char * run,const char * recopass="******", Bool_t isMC=kFALSE) { // 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. TGrid::Connect("alien:"); AliAnalysisAlien *plugin = new AliAnalysisAlien(); // Set the run mode (can be "full", "test", "offline", "submit" or "terminate") plugin->SetRunMode("full"); //plugin->SetRunMode("test"); // Set versions of used packages plugin->SetAPIVersion("V1.1x"); plugin->SetROOTVersion("v5-27-06-2"); plugin->SetAliROOTVersion("v4-21-03-AN"); // Declare input data to be processed. // Method 1: Create automatically XML collections using alien 'find' command. // Define production directory LFN // LHC09d // /alice/data/2009/LHC09d/000104892/ESDs/pass6/ if (!isMC) plugin->SetGridDataDir(Form("/alice/data/2010/LHC10h/%s/ESDs/%s/", run,recopass)); else plugin->SetGridDataDir(Form("/alice/sim/%s",recopass)); // Set data search pattern plugin->SetDataPattern("AliESDs.root"); // ...then add run numbers to be considered // plugin->AddRunNumber(104892); // plugin->AddRunNumber(300001); // 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(Form("MultPb/Task_%s_%s",run,recopass)); // Declare alien output directory. Relative to working directory. plugin->SetGridOutputDir("out"); // Declare the analysis source files names separated by blancs. To be compiled runtime // using ACLiC on the worker nodes. plugin->SetAnalysisSource("AliAnalysisTaskTriggerStudy.cxx AliHistoListWrapper.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("AliAnalysisTaskTriggerStudy.cxx AliHistoListWrapper.cxx AliAnalysisTaskTriggerStudy.h AliHistoListWrapper.h"); // plugin->SetAdditionalLibs("AliCollisionsNormalization.cxx AliCollisionNormalizationTask.cxx AliPhysicsSelection.cxx AliCollisionsNormalization.h AliCollisionNormalizationTask.h AliPhysicsSelection.h"); // I'm using a modified ANALYSISalice package, so I need to load par files for everything plugin->EnablePackage("STEERBase"); plugin->EnablePackage("ESD"); plugin->EnablePackage("AOD"); plugin->EnablePackage("CORRFW"); plugin->EnablePackage("ANALYSIS"); plugin->EnablePackage("ANALYSISalice"); // Declare the output file names separated by blancs. // (can be like: file.root or file.root@ALICE::Niham::File) plugin->SetDefaultOutputs(kFALSE); // plugin->SetOutputFiles(Form("EventStat_temp.root %s",outfilename); plugin->SetOutputFiles("Trig_Temp.root"); // Optionally define the files to be archived. // plugin->SetOutputArchive("log_archive.zip:stdout,stderr@ALICE::NIHAM::File root_archive.zip:*.root@ALICE::NIHAM::File"); plugin->SetOutputArchive("log_archive.zip:stdout,stderr"); // Optionally set a name for the generated analysis macro (default MyAnalysis.C) plugin->SetAnalysisMacro("AnalysisTrigger.C"); // Optionally set maximum number of input files/subjob (default 100, put 0 to ignore) 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(30000); // Optionally set input format (default xml-single) plugin->SetInputFormat("xml-single"); // Optionally modify the name of the generated JDL (default analysis.jdl) plugin->SetJDLName("TaskNorm.jdl"); // Optionally modify job price (default 1) plugin->SetPrice(1); // Optionally modify split mode (default 'se') plugin->SetSplitMode("se"); return plugin; }
void RsnGridPlugin(TString analysisMode) { Bool_t valid = kTRUE; TString dsConfig = AliAnalysisManager::GetGlobalStr("rsnTrainDSConfig",valid); Int_t globalTrainID = AliAnalysisManager::GetGlobalInt("rsnGlobalTrainID",valid); Int_t numRuns = AliAnalysisManager::GetGlobalInt("rsnGridNumRuns",valid); Int_t numRunsSkip = AliAnalysisManager::GetGlobalInt("rsnGridNumRunsSkip",valid); AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); if (!mgr) { Printf("Error[RsnGridPlugin] mgr is null !!!"); return; } AliAnalysisAlien *plugin = (AliAnalysisAlien *) mgr->GetGridHandler(); if (!plugin) { Printf("Error[RsnGridPlugin] : plugin is null !!!"); return; } // getting latest train id TString rsnTrainName = gSystem->BaseName(dsConfig.Data()); rsnTrainName.ReplaceAll(".txt",""); rsnTrainName.Append(TString::Format("/%03d/%d_%d",globalTrainID,numRunsSkip,numRuns).Data()); if (!gGrid) TGrid::Connect("alien://"); if (!gGrid) return; TGridResult *r = gGrid->Query(TString::Format("%s/RsnTrain/%s",gGrid->GetHomeDirectory(),rsnTrainName.Data()).Data(),"*/analysis.root"); Int_t idRsnTrain = 0; if (r) { TString s = r->GetKey(r->GetSize()-1,"lfn"); s.ReplaceAll("/analysis.root",""); s = gSystem->BaseName(s); if (!s.IsNull()) idRsnTrain = s.Atoi(); if (!analysisMode.CompareTo("full")) idRsnTrain++; } rsnTrainName.Append(Form("/%03d",idRsnTrain)); TString rsnTrainWkDir = TString::Format("RsnTrain/%s",rsnTrainName.Data()).Data(); Info("RsnGridPlugin()",TString::Format("RSN Train directory : %s%s",gGrid->GetHomeDirectory(),rsnTrainWkDir.Data()).Data()); plugin->SetGridWorkingDir(rsnTrainWkDir.Data()); plugin->SetGridOutputDir("output"); // In this case will be $HOME/work/output plugin->SetAPIVersion("V1.1x"); TString rootver = AliAnalysisManager::GetGlobalStr("rsnLegoTrainROOTversion",valid); plugin->SetROOTVersion(rootver.Data()); TString alirootVersion = AliAnalysisManager::GetGlobalStr("rsnLegoTrainAliROOTversion",valid); if (alirootVersion.IsNull()) { if (gSystem->Getenv("ALICE_ROOT")) alirootVersion = gSystem->GetFromPipe("aliroot --version | awk '{print $3}'"); } plugin->SetAliROOTVersion(alirootVersion.Data()); plugin->SetExecutableCommand("aliroot -b -q"); plugin->SetAnalysisMacro("RsnTrain.C"); plugin->SetMasterResubmitThreshold(90); plugin->SetTTL(84600); plugin->SetInputFormat("xml-single"); plugin->SetJDLName("RsnTrain.jdl"); plugin->SetPrice(1); plugin->SetSplitMode("se"); plugin->SetNtestFiles(2); plugin->SetMergeViaJDL(); plugin->SetOverwriteMode(kFALSE); // plugin->SetKeepLogs(kTRUE); RsnSetData(plugin,dsConfig,numRuns,numRunsSkip,1000); plugin->SetSplitMaxInputFileNumber(25); // Fatal("RsnDataSet","No dataset found !!!"); }
//______________________________________________________________________________ AliAnalysisGrid* CreateAlienHandler(const char *taskname, const char *gridmode, const char *proofcluster, const char *proofdataset) { AliAnalysisAlien *plugin = new AliAnalysisAlien(); // Set the run mode (can be "full", "test", "offline", "submit" or "terminate") plugin->SetRunMode(gridmode); // Set versions of used packages plugin->SetAPIVersion("V1.1x"); plugin->SetROOTVersion("v5-34-08"); plugin->SetAliROOTVersion("vAN-20140915"); plugin->SetExecutableCommand("aliroot -b -q"); // Declare input data to be processed. // Method 1: Create automatically XML collections using alien 'find' command. // Define production directory LFN // plugin->SetGridDataDir("/alice/data/2010/LHC10h"); // plugin->SetGridDataDir(" /alice/data/2011/LHC11h_2/"); //sim // plugin->SetDataPattern("pass2/*AliAOD.root"); // sim plugin->SetGridDataDir("/alice/data/2011/LHC11h_2/"); //sim plugin->SetDataPattern("*/pass2/*AliESDs.root"); // sim plugin->SetRunPrefix("000"); // real data Int_t runlist[] = { // Counter 170309, 170308, 170306, 170270, 170269, 170268, 170230, 170228, 170204, 170203, // 10 170193, 170163, 170159, 170155, 170081, 170027, 169859, 169858, 169855, 169846, // 20 169838, 169837, 169835, 169417, 169415, 169411, 169238, 169167, 169160, 169156, // 30 169148, 169145, 169144, 169138, 169094, 169091, 169035, 168992, 168988, 168826, // 40 168777, 168514, 168512, 168511, 168467, 168464, 168460, 168458, 168362, 168361, // 50 168342, 168341, 168325, 168322, 168311, 168310, 167988, 167987 // 58 }; for(Int_t i = 0; i < 9; i++) plugin->AddRunNumber(runlist[i]); plugin->SetNrunsPerMaster(3); plugin->SetOutputToRunNo(); // Method 2: Declare existing data files (raw collections, xml collections, root file) // 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(taskname); // Declare alien output directory. Relative to working directory. plugin->SetGridOutputDir("output"); // In this case will be $HOME/taskname/out // plugin->SetAdditionalLibs("libTree.so libGeom.so libPhysics.so libVMC.so libMinuit.so libSTEERBase.so libESD.so libAOD.so libANALYSIS.so libOADB.so libANALYSISalice.so libCORRFW.so libPWGHFbase.so libPWGflowBase.so libPWGflowTasks.so libPWGHFvertexingHF.so"); // plugin->SetAdditionalLibs("libCORRFW.so libPWGHFbase.so libPWGflowBase.so libPWGflowTasks.so libPWGHFvertexingHF.so"); plugin->SetAnalysisSource("AliAnalysisTaskFlowd.cxx"); //plugin->SetAdditionalLibs("AliAnalysisTaskFlowd.h AliAnalysisTaskFlowd.cxx "); cout<<"-->>>>>>>>>>>>>>>>>>>>>>>>> 1"<<endl; // Declare the analysis source files names separated by blancs. To be compiled runtime // using ACLiC on the worker nodes. //plugin->SetAdditionalLibs("libPWGHFbase.so libPWGflowBase.so libPWGflowTasks.so libPWGHFvertexingHF.so AliAODMuonReplicator0.so"); cout<<"-->>>>>>>>>>>>>>>>>>>>>>>>> 2"<<endl; // plugin->SetAdditionalLibs("libTree.so libGeom.so libPhysics.so libVMC.so libMinuit.so libSTEERBase.so libESD.so libAOD.so libANALYSIS.so libOADB.so libANALYSISalice.so libCORRFW.so libPWGHFbase.so libPWGflowBase.so libPWGflowTasks.so libPWGHFvertexingHF.so"); // plugin->SetAnalysisSource("AliAnalysisTaskESDMuonFilterO.cxx"); //plugin->SetAnalysisSource("AliAODMuonReplicator0.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("AliAODMuonReplicator0_cxx.so"); // plugin->SetAdditionalLibs("AliAnalysisTaskESDMuonFilterO_cxx.so"); //questo plugin->SetAdditionalLibs("libSTEERBase.so libESD.so AliAnalysisTaskFlowd.h AliAnalysisTaskFlowd.cxx libPWGflowBase.so libPWGflowTasks.so libPWGHFbase.so libPWGHFvertexingHF.so"); 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 -I$ALICE_ROOT/PWGHF -I$ALICE_ROOT/PWGHF/base -I$ALICE_ROOT/PWGHF/vertexingHF -I$ALICE_ROOT/PWG/FLOW/Base -I$ALICE_ROOT/PWG/FLOW/Tasks -g"); // plugin->SetAdditionalLibs("AliAODMuonReplicator0.h AliAODMuonReplicator0.cxx"); // plugin->SetAdditionalLibs("AliAnalysisTaskESDMuonFilterO.h AliAnalysisTaskESDMuonFilterO.cxx"); //plugin->SetAdditionalLibs("AliAODMuonReplicator0.h AliAODMuonReplicator0.cxx AliAnalysisTaskESDMuonFilterO.h AliAnalysisTaskESDMuonFilterO.cxx"); cout<<"-->>>>>>>>>>>>>>>>>>>>>>>>> 3"<<endl; // plugin->SetAdditionalLibs("AliAODMuonReplicator0.h AliAODMuonReplicator0.cxx"); // plugin->SetAdditionalLibs("AliAnalysisTaskESDMuonFilterO.h AliAnalysisTaskESDMuonFilterO.cxx"); // Declare the output file names separated by blancs. // (can be like: file.root or file.root@ALICE::Niham::File) // To only save certain files, use SetDefaultOutputs(kFALSE), and then // SetOutputFiles("list.root other.filename") to choose which files to save plugin->SetDefaultOutputs(); //plugin->SetOutputFiles("list.root"); // Optionally set a name for the generated analysis macro (default MyAnalysis.C) plugin->SetAnalysisMacro(Form("%s.C",taskname)); // Optionally set maximum number of input files/subjob (default 100, put 0 to ignore) plugin->SetSplitMaxInputFileNumber(10); // Optionally modify the executable name (default analysis.sh) plugin->SetExecutable(Form("%s.sh",taskname)); // set number of test files to use in "test" mode plugin->SetNtestFiles(1); // file containing a list of chuncks to be used for testin plugin->SetFileForTestMode("testdata"); // Optionally resubmit threshold. plugin->SetMasterResubmitThreshold(90); // Optionally set time to live (default 30000 sec) plugin->SetTTL(30000); // Optionally set input format (default xml-single) plugin->SetInputFormat("xml-single"); // Optionally modify the name of the generated JDL (default analysis.jdl) plugin->SetJDLName(Form("%s.jdl",taskname)); // Optionally modify job price (default 1) plugin->SetPrice(1); // Optionally modify split mode (default 'se') plugin->SetSplitMode("se"); //---------------------------------------------------------- //--- PROOF MODE SPECIFIC SETTINGS ------------ //---------------------------------------------------------- // Proof cluster plugin->SetProofCluster(proofcluster); // Dataset to be used plugin->SetProofDataSet(proofdataset); // May need to reset proof. Supported modes: 0-no reset, 1-soft, 2-hard plugin->SetProofReset(0); // May limit number of workers plugin->SetNproofWorkers(0); // May limit the number of workers per slave plugin->SetNproofWorkersPerSlave(1); // May use a specific version of root installed in proof plugin->SetRootVersionForProof("current"); // May set the aliroot mode. Check http://aaf.cern.ch/node/83 plugin->SetAliRootMode("default"); // Loads AF libs by default // May request ClearPackages (individual ClearPackage not supported) plugin->SetClearPackages(kFALSE); // Plugin test mode works only providing a file containing test file locations, used in "local" mode also plugin->SetFileForTestMode("files.txt"); // file should contain path name to a local directory containg *ESDs.root etc // Request connection to alien upon connection to grid plugin->SetProofConnectGrid(kFALSE); cout<<"-->>>>>>>>>>>>>>>>>>>>>>>>> 4"<<endl; return plugin; cout<<"-->>>>>>>>>>>>>>>>>>>>>>>>> 5"<<endl; }
//______________________________________________________________________________ AliAnalysisGrid* CreateAlienHandler(Bool_t bAOD, Int_t bunchN, const char *taskname, const char *gridmode, const char *proofcluster, const char *proofdataset) { AliAnalysisAlien *plugin = new AliAnalysisAlien(); // Set the run mode (can be "full", "test", "offline", "submit" or "terminate") plugin->SetRunMode(gridmode); // Set versions of used packages plugin->SetAPIVersion("V1.1x"); plugin->SetROOTVersion("v5-34-08"); plugin->SetAliROOTVersion("v5-05-19-AN"); // Declare input data to be processed. // Method 1: Create automatically XML collections using alien 'find' command. // Define production directory LFN plugin->SetGridDataDir("/alice/data/2010/LHC10h/"); // On real reconstructed data: // plugin->SetGridDataDir("/alice/data/2009/LHC09d"); // Set data search pattern //plugin->SetDataPattern("*ESDs.root"); // THIS CHOOSES ALL PASSES // Data pattern for reconstructed data if(!bAOD){ plugin->SetDataPattern("*ESDs/pass2/*ESDs.root"); // CHECK LATEST PASS OF DATA SET IN ALIENSH } else{ plugin->SetDataPattern("*ESDs/pass2/AOD086/*/AliAOD.root"); } plugin->SetRunPrefix("000"); // real data // ...then add run numbers to be considered //plugin->SetRunRange(114917,115322); if(bunchN==0){ plugin->AddRunNumber(137366); } //bunch1 else if(bunchN == 1){ plugin->AddRunNumber(139510); plugin->AddRunNumber(139507); plugin->AddRunNumber(139505); plugin->AddRunNumber(139503); plugin->AddRunNumber(139465); plugin->AddRunNumber(139438); plugin->AddRunNumber(139437); plugin->AddRunNumber(139360); plugin->AddRunNumber(139329); plugin->AddRunNumber(139328); } //bunch2 else if(bunchN == 2){ plugin->AddRunNumber(139314); plugin->AddRunNumber(139310); plugin->AddRunNumber(139309); plugin->AddRunNumber(139173); plugin->AddRunNumber(139107); plugin->AddRunNumber(139105); plugin->AddRunNumber(139038); plugin->AddRunNumber(139037); plugin->AddRunNumber(139036); plugin->AddRunNumber(139029); plugin->AddRunNumber(139028); plugin->AddRunNumber(138872); plugin->AddRunNumber(138871); plugin->AddRunNumber(138870); plugin->AddRunNumber(138837); plugin->AddRunNumber(138732); plugin->AddRunNumber(138730); plugin->AddRunNumber(138666); plugin->AddRunNumber(138662); plugin->AddRunNumber(138653); } else if(bunchN == 3){ plugin->AddRunNumber(138652); plugin->AddRunNumber(138638); plugin->AddRunNumber(138624); plugin->AddRunNumber(138621); plugin->AddRunNumber(138583); plugin->AddRunNumber(138582); plugin->AddRunNumber(138579); plugin->AddRunNumber(138578); plugin->AddRunNumber(138534); plugin->AddRunNumber(138469); } else if(bunchN == 4){ plugin->AddRunNumber(138442); plugin->AddRunNumber(138439); plugin->AddRunNumber(138438); plugin->AddRunNumber(138396); plugin->AddRunNumber(138364); plugin->AddRunNumber(138275); plugin->AddRunNumber(138225); plugin->AddRunNumber(138201); plugin->AddRunNumber(138197); plugin->AddRunNumber(138192); } else if(bunchN == 5){ plugin->AddRunNumber(138190); plugin->AddRunNumber(137848); plugin->AddRunNumber(137844); plugin->AddRunNumber(137752); plugin->AddRunNumber(137751); plugin->AddRunNumber(137724); plugin->AddRunNumber(137722); plugin->AddRunNumber(137718); plugin->AddRunNumber(137704); plugin->AddRunNumber(137693); } else if(bunchN == 6){ plugin->AddRunNumber(137692); plugin->AddRunNumber(137691); plugin->AddRunNumber(137686); plugin->AddRunNumber(137685); plugin->AddRunNumber(137639); plugin->AddRunNumber(137638); plugin->AddRunNumber(137608); plugin->AddRunNumber(137595); plugin->AddRunNumber(137549); plugin->AddRunNumber(137546); } else if(bunchN == 7){ plugin->AddRunNumber(137544); plugin->AddRunNumber(137541); plugin->AddRunNumber(137539); plugin->AddRunNumber(137531); plugin->AddRunNumber(137530); plugin->AddRunNumber(137443); plugin->AddRunNumber(137441); plugin->AddRunNumber(137440); plugin->AddRunNumber(137439); plugin->AddRunNumber(137434); } else if(bunchN == 8){ plugin->AddRunNumber(137432); plugin->AddRunNumber(137431); plugin->AddRunNumber(137430); plugin->AddRunNumber(137366); plugin->AddRunNumber(137243); plugin->AddRunNumber(137236); plugin->AddRunNumber(137235); plugin->AddRunNumber(137232); plugin->AddRunNumber(137231); plugin->AddRunNumber(137162); plugin->AddRunNumber(137161); } else{ stderr<<"BUNCH NOT THERE"<<endl; return NULL; } //plugin->AddRunList("139510, 139507, 139505, 139503, 139465, 139438, 139437, 139360, 139329, 139328, 139314, 139310, 139309, 139173, 139107, 139105, 139038, 139037, 139036, 139029, 139028, 138872, 138871, 138870, 138837, 138732, 138730, 138666, 138662, 138653, 138652, 138638, 138624, 138621, 138583, 138582, 138579, 138578, 138534, 138469, 138442, 138439, 138438, 138396, 138364, 138275, 138225, 138201, 138197, 138192, 138190, 137848, 137844, 137752, 137751, 137724, 137722, 137718, 137704, 137693, 137692, 137691, 137686, 137685, 137639, 137638, 137608, 137595, 137549, 137546, 137544, 137541, 137539, 137531, 137530, 137443, 137441, 137440, 137439, 137434, 137432, 137431, 137430, 137366, 137243, 137236, 137235, 137232, 137231, 137162, 137161"); plugin->SetNrunsPerMaster(1); plugin->SetOutputToRunNo(); // comment out the next line when using the "terminate" option, unless // you want separate merged files for each run plugin->SetMergeViaJDL(); // 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(taskname); // Declare alien output directory. Relative to working directory. plugin->SetGridOutputDir("out"); // In this case will be $HOME/taskname/out // Declare the analysis source files names separated by blancs. To be compiled runtime // using ACLiC on the worker nodes. plugin->SetAnalysisSource("AliBalance.cxx AliAnalysisTaskBF.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->AddIncludePath("-I."); //plugin->SetAdditionalLibs("libPWGCFebye.so"); plugin->SetAdditionalLibs("AliBalance.cxx AliBalance.h AliAnalysisTaskBF.cxx AliAnalysisTaskBF.h"); // Declare the output file names separated by blancs. // (can be like: file.root or file.root@ALICE::Niham::File) // To only save certain files, use SetDefaultOutputs(kFALSE), and then // SetOutputFiles("list.root other.filename") to choose which files to save plugin->SetDefaultOutputs(); //plugin->SetOutputFiles("list.root"); // Optionally set a name for the generated analysis macro (default MyAnalysis.C) plugin->SetAnalysisMacro(Form("%s.C",taskname)); // Optionally set maximum number of input files/subjob (default 100, put 0 to ignore) plugin->SetSplitMaxInputFileNumber(100); // Optionally modify the executable name (default analysis.sh) plugin->SetExecutable(Form("%s.sh",taskname)); // set number of test files to use in "test" mode plugin->SetNtestFiles(1); // Optionally resubmit threshold. plugin->SetMasterResubmitThreshold(90); // Optionally set time to live (default 30000 sec) plugin->SetTTL(90000); // Optionally set input format (default xml-single) plugin->SetInputFormat("xml-single"); // Optionally modify the name of the generated JDL (default analysis.jdl) plugin->SetJDLName(Form("%s.jdl",taskname)); // Optionally modify job price (default 1) plugin->SetPrice(1); // Optionally modify split mode (default 'se') plugin->SetSplitMode("se"); //plugin->SetUseSubmitPolicy(); //plugin->SetKeepLogs(); //---------------------------------------------------------- //--- PROOF MODE SPECIFIC SETTINGS ------------ //---------------------------------------------------------- // Proof cluster plugin->SetProofCluster(proofcluster); // Dataset to be used plugin->SetProofDataSet(proofdataset); // May need to reset proof. Supported modes: 0-no reset, 1-soft, 2-hard plugin->SetProofReset(0); // May limit number of workers plugin->SetNproofWorkers(0); // May limit the number of workers per slave plugin->SetNproofWorkersPerSlave(1); // May use a specific version of root installed in proof plugin->SetRootVersionForProof("current"); // May set the aliroot mode. Check http://aaf.cern.ch/node/83 plugin->SetAliRootMode("default"); // Loads AF libs by default // May request ClearPackages (individual ClearPackage not supported) plugin->SetClearPackages(kFALSE); // Plugin test mode works only providing a file containing test file locations, used in "local" mode also plugin->SetFileForTestMode("files.txt"); // file should contain path name to a local directory containg *ESDs.root etc // Request connection to alien upon connection to grid plugin->SetProofConnectGrid(kFALSE); plugin->Print(); return plugin; }
AliAnalysisGrid* CreateAlienHandler(const char* mode = "offline") { //if (!AliAnalysisGrid::CreateToken()) return NULL; AliAnalysisAlien *plugin = new AliAnalysisAlien(); plugin->SetRunMode(mode); // "full", "test", "offline", "submit" or "terminate" plugin->SetMergeViaJDL(kTRUE); plugin->SetOneStageMerging(kFALSE); plugin->SetMaxMergeStages(2); plugin->SetAPIVersion("V1.1x"); plugin->SetROOTVersion("v5-30-03"); plugin->SetAliROOTVersion("v5-02-16-AN"); // add data through aliensh find procedure. //plugin->SetGridDataDir("/alice/sim/LHC11d2/"); plugin->SetGridDataDir("/alice/data/2011/LHC11e"); //plugin->SetDataPattern("*pass1/*ESDs.root"); //plugin->SetDataPattern("*tag.root"); //plugin->SetDataPattern("*pass1/*tag.root"); plugin->SetDataPattern("*AOD.root"); //plugin->AddRunNumber(119161); //plugin->AddRunNumber("000162740"); //plugin->AddRunNumber("000161585"); plugin->AddRunNumber("000162644"); // Method 2: Declare existing data files //plugin->AddDataFile("tag.xml"); // plugin->AddDataFile("/alice/data/2008/LHC08c/000057657/raw/Run57657.Merged.RAW.tag.root"); plugin->SetGridWorkingDir("eta"); plugin->SetGridOutputDir("output"); // In this case will be $HOME/work/output // TString source = ""; // source += "EtaCandidate.cxx "; // source += "EtaPriCandidate.cxx "; // source += "EtaConfig.cxx "; // source += "EtaOutput.cxx "; // source += "EtaAnalysis.cxx "; // source += "EtaTask.cxx "; // plugin->SetAnalysisSource(source); plugin->SetAnalysisSource("EtaCandidate.cxx EtaPriCandidate.cxx EtaConfig.cxx EtaOutput.cxx EtaAnalysis.cxx EtaTask.cxx"); // TString libs = source; // libs += "EtaCandidate.h "; // libs += " EtaPriCandidate.h"; // libs += " EtaConfig.h"; // libs += " EtaOutput.h"; // libs += " EtaAnalysis.h"; // libs += " EtaTask.h"; // plugin->SetAdditionalLibs(libs); plugin->SetAdditionalLibs("EtaCandidate.h EtaCandidate.cxx EtaPriCandidate.h EtaPriCandidate.cxx EtaConfig.h EtaConfig.cxx EtaOutput.h EtaOutput.cxx EtaAnalysis.h EtaAnalysis.cxx EtaTask.h EtaTask.cxx"); plugin->SetDefaultOutputs(kTRUE); //plugin->SetDefaultOutputs(kFALSE); //plugin->SetOutputFiles("eta.output.ESD.root EventStat_temp.root"); // Optionally define the files to be archived. // plugin->SetOutputArchive("log_archive.zip:stdout,stderr@ALICE::NIHAM::File root_archive.zip:*.root@ALICE::NIHAM::File"); // plugin->SetOutputArchive("log_archive.zip:stdout,stderr"); // Optionally set a name for the generated analysis macro (default MyAnalysis.C) plugin->SetAnalysisMacro("EtaAnalysis.C"); plugin->SetExecutable("runEtaAnalysis.sh"); plugin->SetJDLName("EtaAnalysis.jdl"); plugin->SetSplitMaxInputFileNumber(100); plugin->SetMaxInitFailed(5); plugin->SetMasterResubmitThreshold(90); plugin->SetTTL(43200); plugin->SetInputFormat("xml-single"); plugin->SetPrice(1); plugin->SetSplitMode("se"); return plugin; }