ROOT logo
TList *RsnManagerTrain(TString addRsnManager="AddRsnToManagerTrain.C",
                       Int_t isESD=0,
                       Int_t isMC=0,
                       Int_t isPP=1,
                       Int_t useRsnMini = 1,
                       Int_t useMixing = 0,
                       Int_t numMix = 10,
                       Int_t fullOutput = 1)
{

   // sets Rsn Lego train path
   TString legoTrainPath = "$ALICE_ROOT/PWGLF/RESONANCES/macros/lego_train";

   // creates list
   TList *listRsn = new TList();

   TString commonCutOption="";
   commonCutOption = "mon";

   Printf("Adding RsnManger : %s",addRsnManager.Data());
   AddResonanceToRsnManager(listRsn,addRsnManager.Data(),legoTrainPath.Data());

   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
   if (!mgr) {
      Printf("Error[RsnManager] mgr is null !!!");
      return 0;
   }

   Bool_t valid;
   AliAnalysisManager::GetGlobalStr("rsnLegoTrainPath",valid);
   if (valid) {
      return list;
   }

   Printf("Setting up RSN variables ...");
   AliAnalysisManager::SetGlobalStr("rsnLegoTrainPath",legoTrainPath.Data());
   AliAnalysisManager::SetGlobalInt("rsnIsPP",isPP);
   AliAnalysisManager::SetGlobalInt("rsnUseMC",isMC);
   AliAnalysisManager::SetGlobalInt("rsnUseMiniPackage",useRsnMini);

   // mixing setting
   AliAnalysisManager::SetGlobalInt("rsnUseMixing",useMixing);
   AliAnalysisManager::SetGlobalInt("rsnNumMix",numMix);

   // oputput settings
   AliAnalysisManager::SetGlobalInt("rsnOutputFull",fullOutput);

   // expert options (don't change)
   AliAnalysisManager::SetGlobalInt("rsnMixPrintRefresh",-1);

   AliAnalysisManager::SetGlobalStr("rsnLegoTrainCommonCutOption",commonCutOption.Data());

   return listRsn;
}

Bool_t AddResonanceToRsnManager(TList *listRsn,TString rsnAddMacro="AddRsnToManagerPhi.C",TString path="") {
   if (!listRsn) return kFALSE;

   RsnManagerLoadMacro(rsnAddMacro,path);
   rsnAddMacro.ReplaceAll(".C","");
   gROOT->ProcessLine(TString::Format("%s((TList*)%p)",rsnAddMacro.Data(),listRsn).Data());

   return kTRUE;
}

Bool_t RsnManagerLoadMacro(TString macro,TString path="") {

   TString lego_path=path;

   if (lego_path.IsNull()) {
      Bool_t valid;
      lego_path = AliAnalysisManager::GetGlobalStr("rsnLegoTrainPath",valid);
      if (!valid) lego_path = "$ALICE_ROOT/PWG2/RESONANCES/macros/lego_train";
   }
   if (!gSystem->AccessPathName(macro.Data())) {
      gROOT->LoadMacro(macro.Data());
      Printf("Macro loaded from %s/%s ...",gSystem->pwd(),macro.Data());
      return kTRUE;
   }

   if (!gSystem->AccessPathName(gSystem->ExpandPathName(Form("%s/%s",lego_path.Data(),macro.Data())))) {
      gROOT->LoadMacro(gSystem->ExpandPathName(Form("%s/%s",lego_path.Data(),macro.Data())));
      Printf("Macro loaded from %s ...",gSystem->ExpandPathName(Form("%s/%s",lego_path.Data(),macro.Data())));
      return kTRUE;
   }

   Printf("Error loading %s",macro.Data());

   return kFALSE;
}

 RsnManagerTrain.C:1
 RsnManagerTrain.C:2
 RsnManagerTrain.C:3
 RsnManagerTrain.C:4
 RsnManagerTrain.C:5
 RsnManagerTrain.C:6
 RsnManagerTrain.C:7
 RsnManagerTrain.C:8
 RsnManagerTrain.C:9
 RsnManagerTrain.C:10
 RsnManagerTrain.C:11
 RsnManagerTrain.C:12
 RsnManagerTrain.C:13
 RsnManagerTrain.C:14
 RsnManagerTrain.C:15
 RsnManagerTrain.C:16
 RsnManagerTrain.C:17
 RsnManagerTrain.C:18
 RsnManagerTrain.C:19
 RsnManagerTrain.C:20
 RsnManagerTrain.C:21
 RsnManagerTrain.C:22
 RsnManagerTrain.C:23
 RsnManagerTrain.C:24
 RsnManagerTrain.C:25
 RsnManagerTrain.C:26
 RsnManagerTrain.C:27
 RsnManagerTrain.C:28
 RsnManagerTrain.C:29
 RsnManagerTrain.C:30
 RsnManagerTrain.C:31
 RsnManagerTrain.C:32
 RsnManagerTrain.C:33
 RsnManagerTrain.C:34
 RsnManagerTrain.C:35
 RsnManagerTrain.C:36
 RsnManagerTrain.C:37
 RsnManagerTrain.C:38
 RsnManagerTrain.C:39
 RsnManagerTrain.C:40
 RsnManagerTrain.C:41
 RsnManagerTrain.C:42
 RsnManagerTrain.C:43
 RsnManagerTrain.C:44
 RsnManagerTrain.C:45
 RsnManagerTrain.C:46
 RsnManagerTrain.C:47
 RsnManagerTrain.C:48
 RsnManagerTrain.C:49
 RsnManagerTrain.C:50
 RsnManagerTrain.C:51
 RsnManagerTrain.C:52
 RsnManagerTrain.C:53
 RsnManagerTrain.C:54
 RsnManagerTrain.C:55
 RsnManagerTrain.C:56
 RsnManagerTrain.C:57
 RsnManagerTrain.C:58
 RsnManagerTrain.C:59
 RsnManagerTrain.C:60
 RsnManagerTrain.C:61
 RsnManagerTrain.C:62
 RsnManagerTrain.C:63
 RsnManagerTrain.C:64
 RsnManagerTrain.C:65
 RsnManagerTrain.C:66
 RsnManagerTrain.C:67
 RsnManagerTrain.C:68
 RsnManagerTrain.C:69
 RsnManagerTrain.C:70
 RsnManagerTrain.C:71
 RsnManagerTrain.C:72
 RsnManagerTrain.C:73
 RsnManagerTrain.C:74
 RsnManagerTrain.C:75
 RsnManagerTrain.C:76
 RsnManagerTrain.C:77
 RsnManagerTrain.C:78
 RsnManagerTrain.C:79
 RsnManagerTrain.C:80
 RsnManagerTrain.C:81
 RsnManagerTrain.C:82
 RsnManagerTrain.C:83
 RsnManagerTrain.C:84
 RsnManagerTrain.C:85
 RsnManagerTrain.C:86
 RsnManagerTrain.C:87
 RsnManagerTrain.C:88
 RsnManagerTrain.C:89
 RsnManagerTrain.C:90
 RsnManagerTrain.C:91
 RsnManagerTrain.C:92