TList *RsnManager() { Int_t isESD = 0; Int_t isPP = 0; Int_t useRsnMini = 1; Int_t useMixing = 1; Int_t numMix = 5; Int_t fullOutput = 1; Int_t mcMomentum = 0; Int_t mcMon = 0; Int_t usePhysSel = -1; // usePhysSel = AliVEvent::kMB; Int_t useCentralityTask = 0; Int_t useEventPlaneTask = 0; Double_t eventCutVertex = 10.0; Int_t useYNotEta = 0; // useCommonQualityCut=-1 -> Defaultcuts for 2010 Int_t useCommonQualityCut = -1; useCommonQualityCut = 5; Int_t useEventMixPar = 0; Int_t useRsnPar = 0; Int_t useRsnParDev = -1; TString rootver = "v5-33-02b"; TString alirootver = ""; // alirootver = "v5-03-07-AN"; TString legoTrainPath = "$ALICE_ROOT/PWGLF/RESONANCES/macros/lego_train"; // legoTrainPath = "$HOME/git/AliRsn/PWGLF/RESONANCES/macros/lego_train"; TList *listRsn = new TList(); // This will use AddRsnPairs<Name>.C // and for cuts AddRsnDaughterCuts<CutName>.C // and <opt> string is passed to AddRsnDaughterCuts<CutName>.C // so you can control different cut settings // string "<Name>:mon" means that it will add monitoring histograms from cuts // Note : for now you have to set gRsnUseMiniPackage = 0 to have mon histograms // listRsn->Add(new TNamed("<Name>:mon","<CutName>:<opt>")); TString commonCutOption=""; commonCutOption = "mon"; // commonCutOption += "_eta"; AddResonanceToRsnManager(listRsn,"AddRsnToManagerPhi.C",legoTrainPath.Data()); // AddResonanceToRsnManager(listRsn,"AddRsnToManagerKStar.C",legoTrainPath.Data()); // AddResonanceToRsnManager(listRsn,"AddRsnToManagerRho.C",legoTrainPath.Data()); // AddResonanceToRsnManager(listRsn,"AddRsnToManagerLambda.C",legoTrainPath.Data()); //============= ONLY for GRID ==================== TString dsConfig = "datasets-grid/LHC11e3a_AOD074.txt"; Int_t globalTrainID=0; Int_t numRuns = 1000; Int_t numRunsSkip = 0; //================================================ /////////////////////////////////////////// // don't edit next lines (EXPERTS ONLY) /////////////////////////////////////////// AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); if (!mgr) { Printf("Error[RsnManager] mgr is null !!!"); return 0; } AliAnalysisManager::SetGlobalStr("rsnLegoTrainPath",legoTrainPath.Data()); AliAnalysisManager::SetGlobalInt("rsnIsPP",isPP); // use parfiles instead of libs AliAnalysisManager::SetGlobalInt("rsnUseEventMixingPar",useEventMixPar); AliAnalysisManager::SetGlobalInt("rsnUseRSNPar",useRsnPar); AliAnalysisManager::SetGlobalInt("rsnUseRSNParDev",useRsnParDev); // common options AliAnalysisManager::SetGlobalInt("rsnUsePhysSel",usePhysSel); AliAnalysisManager::SetGlobalInt("rsnUseCentralityTask",useCentralityTask); AliAnalysisManager::SetGlobalInt("rsnUseEventPlaneTask",useEventPlaneTask); AliAnalysisManager::SetGlobalInt("rsnUsePIDResponse",1); AliAnalysisManager::SetGlobalInt("rsnCommonQualityCut",useCommonQualityCut); AliAnalysisManager::SetGlobalInt("rsnUseRapidity",useYNotEta); // rsn options AliAnalysisManager::SetGlobalInt("rsnUseMixing",useMixing); if (useRsnMini) { AliAnalysisManager::SetGlobalInt("rsnUseMiniPackage",1); AliAnalysisManager::SetGlobalInt("rsnUseRsnInputHandler",0); AliAnalysisManager::SetGlobalInt("rsnSplitMgrByTasks",1); } else { AliAnalysisManager::SetGlobalInt("rsnUseMiniPackage",0); AliAnalysisManager::SetGlobalInt("rsnUseRsnInputHandler",1); AliAnalysisManager::SetGlobalInt("rsnSplitMgrByTasks",0); // AliAnalysisManager::SetGlobalInt("rsnUseMixing",0); } // mixing setting AliAnalysisManager::SetGlobalInt("rsnNumMix",numMix); // oputput settings AliAnalysisManager::SetGlobalInt("rsnOutputFull",fullOutput); AliAnalysisManager::SetGlobalInt("rsnUseMCMomentum",mcMomentum); AliAnalysisManager::SetGlobalInt("rsnUseMCMonitoring",mcMon); AliAnalysisManager::SetGlobalDbl("rsnEventCutVertex",eventCutVertex); // expert options (don't change) AliAnalysisManager::SetGlobalInt("rsnMixPrintRefresh",-1); // RSN train settings for GRID AliAnalysisManager::SetGlobalStr("rsnTrainDSConfig",dsConfig.Data()); AliAnalysisManager::SetGlobalInt("rsnGlobalTrainID",globalTrainID); AliAnalysisManager::SetGlobalInt("rsnGridNumRuns",numRuns); AliAnalysisManager::SetGlobalInt("rsnGridNumRunsSkip",numRunsSkip); // root and aliroot version AliAnalysisManager::SetGlobalStr("rsnLegoTrainROOTversion",rootver.Data()); AliAnalysisManager::SetGlobalStr("rsnLegoTrainAliROOTversion",alirootver.Data()); 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/PWGLF/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; }