1 AliAnalysisTask *AddRsnTaskTrain(const char *commonStr,const char *rsnStr,const char *rsnCutStr,TString rsnQualityCutStr="",TString extraMacro="",TString extraMacroArgs="") {
3 // rsnCutStr -> <CutName>
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
10 // return AddRsnTask("<Name>:mon","<CutName>:<opt>","");
11 // or like we are using it now
12 // return AddRsnTask(rsnStr,rsnCutStr,"");
14 Printf ("Running AddRsnTaskTrain(\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\")",commonStr,rsnStr,rsnCutStr,rsnQualityCutStr.Data(),extraMacro.Data(),extraMacroArgs.Data());
16 AliAnalysisManager::GetGlobalStr("LegoTrainPath",valid);
18 TString legoTrainPath = "$ALICE_ROOT/PWGLF/RESONANCES/macros/lego_train";
19 AliAnalysisManager::SetGlobalStr("LegoTrainPath",legoTrainPath.Data());
22 // Creating Rsn Train Manager
23 AliRsnTrainManager *rsnMgr = new AliRsnTrainManager();
26 if (!RsnLoadMacroTrain("RsnQualityCut.C")) return kFALSE;
27 if (!rsnQualityCutStr.IsNull()) AliRsnTrainManager::SetGlobalStr("RsnQualityCut",rsnQualityCutStr.Data());
31 if (!RsnLoadMacroTrain("RsnTrainCommonSettings.C")) return kFALSE;
32 if (!extraMacro.IsNull()) {
33 if (!RsnLoadMacroTrain(extraMacro.Data())) return kFALSE;
35 RsnTrainCommonSettings(commonStr,rsnStr,extraMacro,extraMacroArgs);
39 if (!RsnLoadMacroTrain("AddRsnTask.C")) return kFALSE;
41 // Generate Rsn Analysisa Task
42 AliAnalysisTask *task = AddRsnTask(rsnStr,rsnCutStr,"");
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");
51 // deleting AliRsnTrainManager to reset all previous settings
58 Bool_t RsnLoadMacroTrain(TString macro,TString path="") {
61 TString lego_path = AliAnalysisManager::GetGlobalStr("RsnLegoTrainPath",valid);
62 if (!valid) lego_path = "$ALICE_ROOT/PWGLF/RESONANCES/macros/lego_train";
64 if (!gSystem->AccessPathName(macro.Data())) {
65 gROOT->LoadMacro(macro.Data());
66 Printf("Macro loaded from %s/%s ...",gSystem->pwd(),macro.Data());
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())));
76 Printf("Error loading %s",macro.Data());