void AddAnalysisManagerMixRsn(TString analysisSource = "proof", TString analysisMode = "test", TString opts = "") { Bool_t useMC = kFALSE; TString format = "esd"; // ALICE stuff AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); if (!mgr) mgr = new AliAnalysisManager("Martin Vala's AM"); gROOT->LoadMacro("SetupAnalysisPlugin.C"); AliAnalysisGrid *analysisPlugin = SetupAnalysisPlugin(analysisMode.Data()); if (!analysisPlugin) return; gSystem->Load("libXMLParser.so"); gSystem->Load("libANALYSIS.so"); gSystem->Load("libANALYSISalice.so"); gSystem->Load("libCORRFW.so"); gSystem->Load("libEventMixing.so"); gSystem->Load("libPWG2resonances.so"); analysisPlugin->SetAliRootMode("ALIROOT"); // Loads AF libs by default // sets additional settings to plubin analysisPlugin->SetAdditionalLibs("libXMLParser.so libCORRFW.so libEventMixing.so libPWG2resonances.so"); // analysisPlugin->SetAdditionalLibs("libXMLParser.so libCORRFW.so libEventMixing.so PWG2resonances.par RESONANCESMV.par"); // analysisPlugin->SetAdditionalLibs("libXMLParser.so libCORRFW.so libEventMixing.so libPWG2resonances.so"); // sets plugin to manager mgr->SetGridHandler(analysisPlugin); Info("AddAnalysisManagerMixRsn.C", "Creating AliMultiInputEventHandler ..."); AliMultiInputEventHandler *mainInputHandler = new AliMultiInputEventHandler(); Info("AddAnalysisManagerMixRsn.C", "Creating esdInputHandler ..."); AliESDInputHandler *esdInputHandler = new AliESDInputHandler(); mainInputHandler->AddInputEventHandler(esdInputHandler); if (useMC) { Info("AddAnalysisManagerMixRsn.C", "Creating mcInputHandler ..."); AliMCEventHandler* mcInputHandler = new AliMCEventHandler(); mainInputHandler->AddInputEventHandler(mcInputHandler); } // add main input handler (with mixing handler) mgr->SetInputEventHandler(mainInputHandler); // add mixing handler (uncomment to turn on Mixnig) gROOT->LoadMacro("MixingSetting.C"); mainInputHandler->AddInputEventHandler(MixingSetting()); // adds all tasks gROOT->LoadMacro("AddAnalysisTaskAllRsn.C"); AddAnalysisTaskAllRsn(format, useMC, opts); }
Bool_t RunALICE(TString anSrc = "grid", TString anMode = "terminate", TString input="aod" /*or "esd"*/, TString inputMC="" /*or "mc"*/, Long64_t nEvents = 1e10, Long64_t nSkip = 0, TString dsName="", TString alirsnliteManagers ="AddAMRsn", Bool_t useMultiHandler=kTRUE, TString alirsnlitesrc ="$ALICE_ROOT", TString alirsnlitetasks ="" ) { // some init work anSrc.ToLower(); anMode.ToLower(); input.ToLower(); inputMC.ToLower(); // loads libs and setup include paths if (LoadLibsBase(alirsnlitesrc)) return kFALSE; // reset manager if already exists AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); if (mgr) delete mgr; mgr = new AliAnalysisManager("AliRsnLiteAM","AliRsnLite Analysis Manager"); Bool_t useAODOut = kFALSE; CreateInputHandlers(input,inputMC,useAODOut,useMultiHandler); // add default grid handler gROOT->LoadMacro("SetupAnalysisPlugin.C"); AliAnalysisGrid *analysisPlugin = SetupAnalysisPlugin(anMode.Data()); if (!analysisPlugin) { Printf("Error : analysisPlugin is null !!!"); return kFALSE; } mgr->SetGridHandler(analysisPlugin); if (!dsName.IsNull()) { if (!anSrc.CompareTo("proof") && !anMode.CompareTo("full")) { analysisPlugin->SetProofDataSet(dsName.Data()); Printf(Form("Using DataSet %s ...",dsName.Data())); } else { analysisPlugin->SetFileForTestMode(dsName.Data()); Printf(Form("Using Test file %s ...",dsName.Data())); } } TList *listManagers = CreateListOfManagersFromDir(alirsnliteManagers,alirsnlitetasks); if (!listManagers) { Printf("Error : CreateListOfManagersFromDir failed !!!"); return kFALSE;} // adds all tasks if (!AddAllManagers(listManagers, anSrc, anMode,input,inputMC)) { Printf("Error : AddAllManagers failed !!!"); return kFALSE;} gSystem->ListLibraries("ls"); TStopwatch timer; timer.Start(); // runs analysis if (!RunAnalysisManager(anSrc, anMode.Data(), nEvents, nSkip)) { Printf("Error : RunAnalysisManager failed !!!"); return kFALSE;} timer.Stop(); timer.Print(); Printf("Working directory is %s ...", gSystem->WorkingDirectory()); Printf("Done OK"); return kTRUE; }
void AddAnalysisManagerTestTask(TString analysisSource = "proof", TString analysisMode = "test", TString opts = "") { Bool_t useMC = kFALSE; TString format = "esd"; format = "aod"; // ALICE stuff AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); if (!mgr) mgr = new AliAnalysisManager("Martin Vala's AM"); gROOT->LoadMacro("SetupAnalysisPlugin.C"); AliAnalysisGrid *analysisPlugin = SetupAnalysisPlugin(analysisMode.Data()); if (!analysisPlugin) return; // load par files localy gSystem->Load("libANALYSIS.so"); gSystem->Load("libANALYSISalice.so"); gROOT->LoadMacro("AliAnalysisTaskCustomMix.cxx+g"); analysisPlugin->AddIncludePath(gSystem->ExpandPathName("$ALICE_ROOT/ANALYSIS/EventMixing")); analysisPlugin->SetAliRootMode("ALIROOT"); // Loads AF libs by default // sets additional settings to plubin analysisPlugin->SetAnalysisSource("AliAnalysisTaskCustomMix.cxx"); analysisPlugin->SetAdditionalLibs("libEventMixing.so AliAnalysisTaskCustomMix.h AliAnalysisTaskCustomMix.cxx"); // sets plugin to manager mgr->SetGridHandler(analysisPlugin); Info("AddAnalysisManagerMixRsn.C", "Creating AliMultiInputEventHandler ..."); AliMultiInputEventHandler *mainInputHandler = new AliMultiInputEventHandler(); Info("AddAnalysisManagerMixRsn.C", "Creating esdInputHandler ..."); AliESDInputHandler *esdInputHandler = new AliESDInputHandler(); mainInputHandler->AddInputEventHandler(esdInputHandler); if (useMC) { Info("AddAnalysisManagerMixRsn.C", "Creating mcInputHandler ..."); AliMCEventHandler* mcInputHandler = new AliMCEventHandler(); mainInputHandler->AddInputEventHandler(mcInputHandler); } Int_t bufferSize = 1; Int_t mixNum = 5; AliMixInputEventHandler *mixHandler = new AliMixInputEventHandler(bufferSize, mixNum); mixHandler->SetInputHandlerForMixing(dynamic_cast<AliMultiInputEventHandler*>(mainInputHandler)); AliMixEventPool *evPool = new AliMixEventPool(); AliMixEventCutObj *multi = new AliMixEventCutObj(AliMixEventCutObj::kMultiplicity, 1, 101, 10); AliMixEventCutObj *zvertex = new AliMixEventCutObj(AliMixEventCutObj::kZVertex, -5, 5, 1); evPool->AddCut(multi); evPool->AddCut(zvertex); // adds event pool (comment it and u will have default mixing) mixHandler->SetEventPool(evPool); // add mixing handler (uncomment to turn on Mixnig) mainInputHandler->AddInputEventHandler(mixHandler); // add main input handler (with mixing handler) mgr->SetInputEventHandler(mainInputHandler); // adds all tasks gROOT->LoadMacro("AddAnalysisTaskAll.C"); AddAnalysisTaskAll(format, useMC, opts); }