]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/RESONANCES/macros/lego_train/AddRsnTaskTrain.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / RESONANCES / macros / lego_train / AddRsnTaskTrain.C
CommitLineData
ae15a5ec 1AliAnalysisTask *AddRsnTaskTrain(const char *commonStr,const char *rsnStr,const char *rsnCutStr,TString rsnQualityCutStr="",TString extraMacro="",TString extraMacroArgs="") {
e22320ab 2 // rsnStr -> <Name>
3 // rsnCutStr -> <CutName>
221dc8d3 4 // This will use AddRsnPairs<Name>.C
5 // and for cuts AddRsnDaughterCuts<CutName>.C
6 // and <opt> string is passed to AddRsnDaughterCuts<CutName>.C
7 // so you can control different cut settings
8 // string "<Name>:mon" means that it will add monitoring histograms from cuts
9 // Note : for now you have to set gRsnUseMiniPackage = 0 to have mon histograms
e22320ab 10 // return AddRsnTask("<Name>:mon","<CutName>:<opt>","");
11 // or like we are using it now
12 // return AddRsnTask(rsnStr,rsnCutStr,"");
221dc8d3 13
0eaedb4f 14 Printf ("Running AddRsnTaskTrain(\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\")",commonStr,rsnStr,rsnCutStr,rsnQualityCutStr.Data(),extraMacro.Data(),extraMacroArgs.Data());
e22320ab 15 Bool_t valid;
aec68607 16 AliAnalysisManager::GetGlobalStr("LegoTrainPath",valid);
e22320ab 17 if (!valid) {
18 TString legoTrainPath = "$ALICE_ROOT/PWGLF/RESONANCES/macros/lego_train";
aec68607 19 AliAnalysisManager::SetGlobalStr("LegoTrainPath",legoTrainPath.Data());
e22320ab 20 }
221dc8d3 21
e22320ab 22 // Creating Rsn Train Manager
221dc8d3 23 AliRsnTrainManager *rsnMgr = new AliRsnTrainManager();
24
b68f0fc1 25 // Rsn Quality Cuts
26 if (!RsnLoadMacroTrain("RsnQualityCut.C")) return kFALSE;
27 if (!rsnQualityCutStr.IsNull()) AliRsnTrainManager::SetGlobalStr("RsnQualityCut",rsnQualityCutStr.Data());
28 //pp_LHC11_p4_120
29
30
680e4375 31 if (!RsnLoadMacroTrain("RsnTrainCommonSettings.C")) return kFALSE;
ae15a5ec 32 if (!extraMacro.IsNull()) {
33 if (!RsnLoadMacroTrain(extraMacro.Data())) return kFALSE;
34 }
35 RsnTrainCommonSettings(commonStr,rsnStr,extraMacro,extraMacroArgs);
680e4375 36
221dc8d3 37 rsnMgr->Print();
38
e22320ab 39 if (!RsnLoadMacroTrain("AddRsnTask.C")) return kFALSE;
680e4375 40
ae15a5ec 41 // Generate Rsn Analysisa Task
680e4375 42 AliAnalysisTask *task = AddRsnTask(rsnStr,rsnCutStr,"");
43
1c7bcf66 44 Printf("Saving Rsn Info -> RsnInfo.root");
45 TFile *f = TFile::Open("RsnInfo.root","RECREATE");
46 AliRsnTrainManager *rsnMgr = AliRsnTrainManager::GetRsnTrainManager();
47 TMap *map = rsnMgr->GetGlobals();
48 f->WriteObject(map,"RsnInfoMap");
49 f->Close();
50
ae15a5ec 51 // deleting AliRsnTrainManager to reset all previous settings
52 delete rsnMgr;
680e4375 53
ae15a5ec 54 return task;
680e4375 55
221dc8d3 56}
e22320ab 57
58Bool_t RsnLoadMacroTrain(TString macro,TString path="") {
59
60 Bool_t valid;
61 TString lego_path = AliAnalysisManager::GetGlobalStr("RsnLegoTrainPath",valid);
6f55d053 62 if (!valid) lego_path = "$ALICE_ROOT/PWGLF/RESONANCES/macros/lego_train";
e22320ab 63
64 if (!gSystem->AccessPathName(macro.Data())) {
65 gROOT->LoadMacro(macro.Data());
66 Printf("Macro loaded from %s/%s ...",gSystem->pwd(),macro.Data());
67 return kTRUE;
68 }
69
70 if (!gSystem->AccessPathName(gSystem->ExpandPathName(Form("%s/%s",lego_path.Data(),macro.Data())))) {
71 gROOT->LoadMacro(gSystem->ExpandPathName(Form("%s/%s",lego_path.Data(),macro.Data())));
72 Printf("Macro loaded from %s ...",gSystem->ExpandPathName(Form("%s/%s",lego_path.Data(),macro.Data())));
73 return kTRUE;
74 }
75
76 Printf("Error loading %s",macro.Data());
77
78 return kFALSE;
aec68607 79}