]>
Commit | Line | Data |
---|---|---|
ae15a5ec | 1 | AliAnalysisTask *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 | |
e22320ab | 14 | Bool_t valid; |
aec68607 | 15 | AliAnalysisManager::GetGlobalStr("LegoTrainPath",valid); |
e22320ab | 16 | if (!valid) { |
17 | TString legoTrainPath = "$ALICE_ROOT/PWGLF/RESONANCES/macros/lego_train"; | |
aec68607 | 18 | AliAnalysisManager::SetGlobalStr("LegoTrainPath",legoTrainPath.Data()); |
e22320ab | 19 | } |
221dc8d3 | 20 | |
e22320ab | 21 | // Creating Rsn Train Manager |
221dc8d3 | 22 | AliRsnTrainManager *rsnMgr = new AliRsnTrainManager(); |
23 | ||
b68f0fc1 | 24 | // Rsn Quality Cuts |
25 | if (!RsnLoadMacroTrain("RsnQualityCut.C")) return kFALSE; | |
26 | if (!rsnQualityCutStr.IsNull()) AliRsnTrainManager::SetGlobalStr("RsnQualityCut",rsnQualityCutStr.Data()); | |
27 | //pp_LHC11_p4_120 | |
28 | ||
29 | ||
680e4375 | 30 | if (!RsnLoadMacroTrain("RsnTrainCommonSettings.C")) return kFALSE; |
ae15a5ec | 31 | if (!extraMacro.IsNull()) { |
32 | if (!RsnLoadMacroTrain(extraMacro.Data())) return kFALSE; | |
33 | } | |
34 | RsnTrainCommonSettings(commonStr,rsnStr,extraMacro,extraMacroArgs); | |
680e4375 | 35 | |
221dc8d3 | 36 | rsnMgr->Print(); |
37 | ||
e22320ab | 38 | if (!RsnLoadMacroTrain("AddRsnTask.C")) return kFALSE; |
680e4375 | 39 | |
ae15a5ec | 40 | // Generate Rsn Analysisa Task |
680e4375 | 41 | AliAnalysisTask *task = AddRsnTask(rsnStr,rsnCutStr,""); |
42 | ||
1c7bcf66 | 43 | Printf("Saving Rsn Info -> RsnInfo.root"); |
44 | TFile *f = TFile::Open("RsnInfo.root","RECREATE"); | |
45 | AliRsnTrainManager *rsnMgr = AliRsnTrainManager::GetRsnTrainManager(); | |
46 | TMap *map = rsnMgr->GetGlobals(); | |
47 | f->WriteObject(map,"RsnInfoMap"); | |
48 | f->Close(); | |
49 | ||
ae15a5ec | 50 | // deleting AliRsnTrainManager to reset all previous settings |
51 | delete rsnMgr; | |
680e4375 | 52 | |
ae15a5ec | 53 | return task; |
680e4375 | 54 | |
221dc8d3 | 55 | } |
e22320ab | 56 | |
57 | Bool_t RsnLoadMacroTrain(TString macro,TString path="") { | |
58 | ||
59 | Bool_t valid; | |
60 | TString lego_path = AliAnalysisManager::GetGlobalStr("RsnLegoTrainPath",valid); | |
6f55d053 | 61 | if (!valid) lego_path = "$ALICE_ROOT/PWGLF/RESONANCES/macros/lego_train"; |
e22320ab | 62 | |
63 | if (!gSystem->AccessPathName(macro.Data())) { | |
64 | gROOT->LoadMacro(macro.Data()); | |
65 | Printf("Macro loaded from %s/%s ...",gSystem->pwd(),macro.Data()); | |
66 | return kTRUE; | |
67 | } | |
68 | ||
69 | if (!gSystem->AccessPathName(gSystem->ExpandPathName(Form("%s/%s",lego_path.Data(),macro.Data())))) { | |
70 | gROOT->LoadMacro(gSystem->ExpandPathName(Form("%s/%s",lego_path.Data(),macro.Data()))); | |
71 | Printf("Macro loaded from %s ...",gSystem->ExpandPathName(Form("%s/%s",lego_path.Data(),macro.Data()))); | |
72 | return kTRUE; | |
73 | } | |
74 | ||
75 | Printf("Error loading %s",macro.Data()); | |
76 | ||
77 | return kFALSE; | |
aec68607 | 78 | } |