Skip to content

Instantly share code, notes, and snippets.

@egpbos
Last active April 10, 2024 21:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save egpbos/03003b273b8bb2407aa64a575a99a25b to your computer and use it in GitHub Desktop.
Save egpbos/03003b273b8bb2407aa64a575a99a25b to your computer and use it in GitHub Desktop.
RooFit::MultiProcess demo - RooFit Users Workshop 2024
// run on ROOT 6.28+ built with -Droofit_multiprocess=ON
// root -l demo.cpp
// or call `demo(YOUR FAVORITE NUMBER OF CPUS)` inside root
#include "RooWorkspace.h"
#include "RooAbsPdf.h"
#include "RooDataSet.h"
#include "RooMinimizer.h"
void demo(int number_of_workers = 2)
{
RooWorkspace w = RooWorkspace();
w.factory("Gaussian::g(x[-5,5],mu[0,-3,3],sigma[1])");
RooAbsPdf* pdf = w.pdf("g");
RooAbsData* data = pdf->generate(RooArgSet(*w.var("x")), 10000);
auto nll = pdf->createNLL(*data, RooFit::ModularL(true));
RooMinimizer::Config cfg;
cfg.parallelize = number_of_workers;
RooMinimizer m(*nll, cfg);
m.migrad();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment