]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/RESONANCES/macros/lego_train/AddRsnTaskTrain.C
Updated macros for lego_train phi analysis (mvala)
[u/mrichter/AliRoot.git] / PWGLF / RESONANCES / macros / lego_train / AddRsnTaskTrain.C
1 AliAnalysisTask *AddRsnTaskTrain(const char *commonStr,const char *rsnStr,const char *rsnCutStr,TString rsnQualityCutStr="",TString extraMacro="",TString extraMacroArgs="") {
2    // rsnStr -> <Name>
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,"");
13
14    Printf ("Running AddRsnTaskTrain(\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\")",commonStr,rsnStr,rsnCutStr,rsnQualityCutStr.Data(),extraMacro.Data(),extraMacroArgs.Data());
15    Bool_t valid;
16    AliAnalysisManager::GetGlobalStr("LegoTrainPath",valid);
17    if (!valid) {
18       TString legoTrainPath = "$ALICE_ROOT/PWGLF/RESONANCES/macros/lego_train";
19       AliAnalysisManager::SetGlobalStr("LegoTrainPath",legoTrainPath.Data());
20    }
21
22    // Creating Rsn Train Manager
23    AliRsnTrainManager *rsnMgr = new AliRsnTrainManager();
24
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
31    if (!RsnLoadMacroTrain("RsnTrainCommonSettings.C")) return kFALSE;
32    if (!extraMacro.IsNull()) {
33       if (!RsnLoadMacroTrain(extraMacro.Data())) return kFALSE;
34    }
35    RsnTrainCommonSettings(commonStr,rsnStr,extraMacro,extraMacroArgs);
36
37    rsnMgr->Print();
38
39    if (!RsnLoadMacroTrain("AddRsnTask.C")) return kFALSE;
40
41    // Generate Rsn Analysisa Task
42    AliAnalysisTask *task = AddRsnTask(rsnStr,rsnCutStr,"");
43
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
51    // deleting AliRsnTrainManager to reset all previous settings
52    delete rsnMgr;
53
54    return task;
55
56 }
57
58 Bool_t RsnLoadMacroTrain(TString macro,TString path="") {
59
60    Bool_t valid;
61    TString lego_path = AliAnalysisManager::GetGlobalStr("RsnLegoTrainPath",valid);
62    if (!valid) lego_path = "$ALICE_ROOT/PWGLF/RESONANCES/macros/lego_train";
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;
79 }