7 Int_t idRsnTrain = AliAnalysisManager::GetGlobalInt("rsnTrainID",valid);
8 TString dsConfig = AliAnalysisManager::GetGlobalStr("rsnTrainDSConfig",valid);
10 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
11 if (!mgr) { Printf("Error[RsnGridPlugin] mgr is null !!!"); return; }
13 AliAnalysisAlien *plugin = (AliAnalysisAlien *) mgr->GetGridHandler();
14 if (!plugin) { Printf("Error[RsnGridPlugin] : plugin is null !!!"); return; }
16 TString rsnTrainName = gSystem->BaseName(dsConfig.Data());
17 rsnTrainName.ReplaceAll(".txt",Form("/%03d",idRsnTrain));
19 plugin->SetGridWorkingDir(Form("RsnTrain/%s",rsnTrainName.Data()));
20 plugin->SetGridOutputDir("output"); // In this case will be $HOME/work/output
22 plugin->SetAPIVersion("V1.1x");
23 plugin->SetROOTVersion("v5-30-03-1");
25 TString alirootVersion="v5-02-16-AN";
26 alirootVersion = gSystem->GetFromPipe("aliroot --version | awk '{print $3}'");
28 plugin->SetAliROOTVersion(alirootVersion.Data());
30 plugin->SetExecutableCommand("aliroot -b -q");
32 plugin->SetAnalysisMacro("RsnTrain.C");
33 plugin->SetMasterResubmitThreshold(90);
34 plugin->SetTTL(84600);
35 plugin->SetInputFormat("xml-single");
36 plugin->SetJDLName("RsnTrain.jdl");
38 plugin->SetSplitMode("se");
39 plugin->SetNtestFiles(2);
40 plugin->SetMergeViaJDL();
41 // plugin->SetKeepLogs(kTRUE);
43 RsnSetData(plugin,dsConfig,1000);
45 plugin->SetSplitMaxInputFileNumber(50);
47 // Fatal("RsnDataSet","No dataset found !!!");
50 void RsnSetData(AliAnalysisAlien *plugin,TString dsConf,Int_t maxRunsPerMaster = 1000) {
52 Bool_t dsFound = kTRUE;
53 Int_t nRunsPerMaster = 0;
56 TString legoTrainPath = AliAnalysisManager::GetGlobalStr("rsnLegoTrainPath",valid);
58 if (gSystem->AccessPathName(dsConf.Data())) dsConf.Prepend(Form("%s/",legoTrainPath.Data()));
59 dsConf = gSystem->ExpandPathName(dsConf.Data());
61 if (dsConf.Contains(".txt")) {
63 in.open(dsConf.Data());
64 if (!in.is_open()) Fatal("RsnSetData",Form("File %s was not found !!!",dsConf.Data()));
65 Printf("DS config file : %s",dsConf.Data());
67 Bool_t isRun = kFALSE;
71 if (line.IsNull()) continue;
72 if (line.Contains("BASE")) {
73 GetParameterFromConfig(line);
74 plugin->SetGridDataDir(line.Data());
75 Printf("BASE -> %s",line.Data());
78 if (line.Contains("PREFIX")) {
79 GetParameterFromConfig(line);
80 plugin->SetRunPrefix(line.Data());
81 Printf("PREFIX -> %s",line.Data());
84 if (line.Contains("DATA_PATTERN")) {
85 GetParameterFromConfig(line);
86 plugin->SetDataPattern(line.Data());
87 Printf("DATA_PATTERN -> %s",line.Data());
90 if (!line.CompareTo("RUNS")) {
95 // Printf("Adding RUN : %s",line.Data());
96 plugin->AddRunNumber(line.Data());
101 plugin->SetGridDataDir("");
102 plugin->SetDataPattern("");
103 Fatal("RsnDataSet","No dataset found !!!");
106 if (nRunsPerMaster > maxRunsPerMaster) nRunsPerMaster = maxRunsPerMaster;
107 plugin->SetNrunsPerMaster(nRunsPerMaster);
111 void GetParameterFromConfig(TString &str,TString token="="){
112 TObjArray *array = str.Tokenize(token.Data());
113 TObjString *strObj = (TObjString *)array->At(1);
114 if (strObj) str = strObj->GetString();