91   Double_t lowRange = 0., highRange = 200.;
 
   94   RooRealVar invMass(
"invMass", 
"M_{inv}", lowRange, highRange, 
"GeV");
 
   95   RooRealVar isolation(
"isolation", 
"isolation", 0., 20., 
"GeV");
 
  101   std::cout << 
"make z model" << std::endl;
 
  103   RooRealVar mZ(
"mZ", 
"Z Mass", 91.2, lowRange, highRange);
 
  104   RooRealVar sigmaZ(
"sigmaZ", 
"Width of Gaussian", 2, 0, 10, 
"GeV");
 
  105   RooGaussian mZModel(
"mZModel", 
"Z+jets Model", invMass, mZ, sigmaZ);
 
  114   RooConstVar zIsolDecayConst(
"zIsolDecayConst", 
"z isolation decay  constant", -1);
 
  115   RooExponential zIsolationModel(
"zIsolationModel", 
"z isolation model", isolation, zIsolDecayConst);
 
  123   std::cout << 
"make qcd model" << std::endl;
 
  129   RooRealVar qcdMassDecayConst(
"qcdMassDecayConst", 
"Decay const for QCD mass spectrum", -0.01, -100, 100, 
"1/GeV");
 
  130   RooExponential qcdMassModel(
"qcdMassModel", 
"qcd Mass Model", invMass, qcdMassDecayConst);
 
  136   RooConstVar qcdIsolDecayConst(
"qcdIsolDecayConst", 
"Et resolution constant", -.1);
 
  137   RooExponential qcdIsolationModel(
"qcdIsolationModel", 
"QCD isolation model", isolation, qcdIsolDecayConst);
 
  140   RooProdPdf qcdModel(
"qcdModel", 
"2-d model for QCD", 
RooArgSet(qcdMassModel, qcdIsolationModel));
 
  147   RooRealVar zYield(
"zYield", 
"fitted yield for Z", 500, 0., 5000);
 
  148   RooRealVar qcdYield(
"qcdYield", 
"fitted yield for QCD", 1000, 0., 10000);
 
  151   std::cout << 
"make full model" << std::endl;
 
  152   RooAddPdf model(
"model", 
"z+qcd background models", {zModel, qcdModel}, {zYield, qcdYield});
 
  153   RooAddPdf massModel(
"massModel", 
"z+qcd invariant mass model", {mZModel, qcdMassModel}, {zYield, qcdYield});
 
  158   std::cout << 
"import model" << std::endl;
 
  175   std::cout << 
"make data set and import to workspace" << std::endl;
 
  185   std::cout << 
"Calculate sWeights" << std::endl;
 
  208   std::cout << 
"\n\n------------------------------------------\nThe dataset before creating sWeights:\n";
 
  217   std::cout << 
"\n\nThe dataset after creating sWeights:\n";
 
  222   std::cout << 
"\n\n------------------------------------------\n\nCheck SWeights:" << std::endl;
 
  224   std::cout << std::endl
 
  225             << 
"Yield of Z is\t" << zYield->
getVal() << 
".  From sWeights it is " 
  226             << sData.GetYieldFromSWeight(
"zYield") << std::endl;
 
  228   std::cout << 
"Yield of QCD is\t" << qcdYield->
getVal() << 
".  From sWeights it is " 
  229             << sData.GetYieldFromSWeight(
"qcdYield") << std::endl
 
  232   for (
Int_t i = 0; i < 10; i++) {
 
  233      std::cout << 
"z Weight for event " << i << std::right << std::setw(12) << sData.GetSWeight(i, 
"zYield") << 
"  qcd Weight" 
  234                << std::setw(12) << sData.GetSWeight(i, 
"qcdYield") << 
"  Total Weight" << std::setw(12) << sData.GetSumOfEventSWeight(i)
 
  238   std::cout << std::endl;
 
  241   std::cout << 
"import new dataset with sWeights" << std::endl;
 
  252   std::cout << 
"make plots" << std::endl;
 
  281   RooPlot *frame = invMass->
frame(
Title(
"Fit of model to discriminating variable"));
 
  288   leg.AddEntry(frame->
findObject(
"FullModel"), 
"Full model", 
"L");
 
  290   leg.AddEntry(frame->
findObject(
"QCDModel"), 
"QCD model", 
"L");
 
  291   leg.SetBorderSize(0);
 
  308   RooPlot *frame2 = isolation->
frame(
Title(
"Isolation distribution with s weights to project out Z"));
 
  320   RooPlot *frame3 = isolation->
frame(
Title(
"Isolation distribution with s weights to project out QCD"));
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void data
 
void graphVizTree(const char *fileName, const char *delimiter="\n", bool useTitle=false, bool useLatex=false)
Create a GraphViz .dot file visualizing the expression tree headed by this RooAbsArg object.
 
RooFit::OwningPtr< RooDataSet > generate(const RooArgSet &whatVars, Int_t nEvents, const RooCmdArg &arg1, const RooCmdArg &arg2=RooCmdArg::none(), const RooCmdArg &arg3=RooCmdArg::none(), const RooCmdArg &arg4=RooCmdArg::none(), const RooCmdArg &arg5=RooCmdArg::none())
See RooAbsPdf::generate(const RooArgSet&,const RooCmdArg&,const RooCmdArg&,const RooCmdArg&,...
 
RooPlot * plotOn(RooPlot *frame, const RooCmdArg &arg1=RooCmdArg::none(), const RooCmdArg &arg2=RooCmdArg::none(), const RooCmdArg &arg3=RooCmdArg::none(), const RooCmdArg &arg4=RooCmdArg::none(), const RooCmdArg &arg5=RooCmdArg::none(), const RooCmdArg &arg6=RooCmdArg::none(), const RooCmdArg &arg7=RooCmdArg::none(), const RooCmdArg &arg8=RooCmdArg::none(), const RooCmdArg &arg9=RooCmdArg::none(), const RooCmdArg &arg10=RooCmdArg::none()) const override
Helper calling plotOn(RooPlot*, RooLinkedList&) const.
 
RooPlot * frame(const RooCmdArg &arg1, const RooCmdArg &arg2=RooCmdArg::none(), const RooCmdArg &arg3=RooCmdArg::none(), const RooCmdArg &arg4=RooCmdArg::none(), const RooCmdArg &arg5=RooCmdArg::none(), const RooCmdArg &arg6=RooCmdArg::none(), const RooCmdArg &arg7=RooCmdArg::none(), const RooCmdArg &arg8=RooCmdArg::none()) const
Create a new RooPlot on the heap with a drawing frame initialized for this object,...
 
double getVal(const RooArgSet *normalisationSet=nullptr) const
Evaluate object.
 
RooAddPdf is an efficient implementation of a sum of PDFs of the form.
 
RooArgList is a container object that can hold multiple RooAbsArg objects.
 
RooArgSet is a container object that can hold multiple RooAbsArg objects.
 
RooConstVar represent a constant real-valued object.
 
RooDataSet is a container class to hold unbinned data.
 
static RooMsgService & instance()
Return reference to singleton instance.
 
void setGlobalKillBelow(RooFit::MsgLevel level)
 
void setSilentMode(bool flag)
 
A RooPlot is a plot frame and a container for graphics objects within that frame.
 
TObject * findObject(const char *name, const TClass *clas=nullptr) const
Find the named object in our list of items and return a pointer to it.
 
void Draw(Option_t *options=nullptr) override
Draw this plot and all of the elements it contains.
 
RooProdPdf is an efficient implementation of a product of PDFs of the form.
 
RooRealVar represents a variable that can be changed from the outside.
 
A class to calculate "sWeights" used to create an "sPlot".
 
The RooWorkspace is a persistable container for RooFit projects.
 
RooAbsPdf * pdf(RooStringView name) const
Retrieve p.d.f (RooAbsPdf) with given name. A null pointer is returned if not found.
 
bool import(const RooAbsArg &arg, const RooCmdArg &arg1=RooCmdArg(), const RooCmdArg &arg2=RooCmdArg(), const RooCmdArg &arg3=RooCmdArg(), const RooCmdArg &arg4=RooCmdArg(), const RooCmdArg &arg5=RooCmdArg(), const RooCmdArg &arg6=RooCmdArg(), const RooCmdArg &arg7=RooCmdArg(), const RooCmdArg &arg8=RooCmdArg(), const RooCmdArg &arg9=RooCmdArg())
Import a RooAbsArg object, e.g.
 
RooRealVar * var(RooStringView name) const
Retrieve real-valued variable (RooRealVar) with given name. A null pointer is returned if not found.
 
RooAbsData * data(RooStringView name) const
Retrieve dataset (binned or unbinned) with given name. A null pointer is returned if not found.
 
TVirtualPad * cd(Int_t subpadnumber=0) override
Set current canvas & pad.
 
This class displays a legend box (TPaveText) containing several legend entries.
 
void Divide(Int_t nx=1, Int_t ny=1, Float_t xmargin=0.01, Float_t ymargin=0.01, Int_t color=0) override
Automatic pad generation by division.
 
RooCmdArg RecycleConflictNodes(bool flag=true)
 
RooCmdArg Rename(const char *suffix)
 
RooCmdArg DataError(Int_t)
 
RooCmdArg Components(Args_t &&... argsOrArgSet)
 
RooCmdArg LineColor(Color_t color)
 
RooCmdArg LineStyle(Style_t style)
 
The namespace RooFit contains mostly switches that change the behaviour of functions of PDFs (or othe...
 
Namespace for the RooStats classes.