81   std::vector<double> out(numBins);
 
   83   for (
int i = 0; i < numBins; ++i) {
 
 
   95using std::string, std::vector, std::make_unique, std::pair, std::unique_ptr, std::map;
 
  131      std::cout << 
"Error: Did not find 'ModelConfig' object in file: " << 
ws_single->GetName()
 
  137      cxcoutWHF << 
"No Parametetrs of interest are set" << std::endl;
 
  142    sstream << 
"Setting Parameter(s) of Interest as: ";
 
  154   std::cout << 
"WARNING: Can't find parameter of interest: " << 
poi_name 
  155        << 
" in Workspace. Not setting in ModelConfig." << std::endl;
 
  184    for( 
unsigned int i=0; i<
measurement.GetAsimovDatasets().size(); ++i) {
 
  194      cxcoutPHF << 
"Importing Asimov dataset" << std::endl;
 
  197        std::cout << 
"Error: Failed to import Asimov dataset: " << 
AsimovName 
 
  230      cxcoutF(HistFactory) << 
"Error: Failed to make Single-Channel workspace for channel: " << 
ch_name 
  231      << 
" and measurement: " << 
measurement.GetName() << std::endl;
 
 
  283      if( ! channel.CheckHistograms() ) {
 
  284        cxcoutFHF << 
"MakeModelAndMeasurementsFast: Channel: " << channel.GetName()
 
  285            << 
" has uninitialized histogram pointers" << std::endl;
 
  289      string ch_name = channel.GetName();
 
 
  315   Arg_t arg{
name.c_str(), 
name.c_str(), std::forward<Args_t>(args)...};
 
  326  for (
unsigned int idx=0; idx < 
fObsNameVec.size(); ++idx) {
 
 
  350      cxcoutI(HistFactory) << 
"processing hist " << hist->
GetName() << std::endl;
 
  352      cxcoutF(HistFactory) << 
"hist is empty" << std::endl;
 
  359    std::string classname = hist->
ClassName();
 
  360    if      (classname.find(
"TH1")==0) { 
histndim=1; }
 
  361    else if (classname.find(
"TH2")==0) { 
histndim=2; }
 
  362    else if (classname.find(
"TH3")==0) { 
histndim=3; }
 
  365    prefix += 
"_Hist_alphanominal";
 
 
  385      const double gaussSigma = isUniform ? 100. : 1.0;
 
  387         cxcoutIHF << 
"Added a uniform constraint for " << 
paramName << 
" as a Gaussian constraint with a very large sigma " << std::endl;
 
  415                           const string& prefix,
 
  420    std::vector<double> low;
 
  421    std::vector<double> high;
 
  425      std::string str = prefix + 
"_" + std::to_string(
j);
 
  430      lowSet.addOwned(std::make_unique<RooHistFunc>((str+
"low").c_str(),
"",
obsList,std::move(
lowDHist),0));
 
  436    interp.setPositiveDefinite();
 
  437    interp.setAllInterpCodes(4); 
 
  445    return proto.arg(prefix);
 
  475        std::stringstream 
range;
 
  476        range << 
"[" << 
norm.GetVal() << 
"," << 
norm.GetLow() << 
"," << 
norm.GetHigh() << 
"]";
 
  479          cxcoutI(HistFactory) << 
"making normFactor: " << 
norm.GetName() << std::endl;
 
  502        cxcoutI(HistFactory) <<
"<NormFactor Name =\""<<*
nit<<
"\"> is duplicated for <Sample Name=\"" 
  503            << 
sample.GetName() << 
"\">, but only one factor will be included.  \n Instead, define something like" 
  505            << 
"\"> \nin your top-level XML's <Measurement> entry and use <NormFactor Name=\""<<*
nit<<
"Squared\" in your channel XML file."<< std::endl;
 
 
  526    std::map<std::string, double>::iterator 
itconstr;
 
  527    for(
unsigned int i = 0; i < 
systList.size(); ++i) {
 
  530      std::string 
strname = sys.GetName();
 
  534      if (
meas.GetNoSyst().count(sys.GetName()) > 0 ) {
 
  535        cxcoutI(HistFactory) << 
"HistoToWorkspaceFast::AddConstraintTerm - skip systematic " << sys.GetName() << std::endl;
 
  539      if (
meas.GetGammaSyst().count(sys.GetName()) > 0 ) {
 
  540         double relerr = 
meas.GetGammaSyst().find(sys.GetName() )->second;
 
  542           cxcoutI(HistFactory) << 
"HistoToWorkspaceFast::AddConstraintTerm - zero uncertainty assigned - skip systematic  " << sys.GetName() << std::endl;
 
  565         yvar.setConstant(
true);
 
  570         cxcoutI(HistFactory) << 
"Added a gamma constraint for " << 
name << std::endl;
 
  576         const bool isUniform = 
meas.GetUniformSyst().count(sys.GetName()) > 0;
 
  580         if (
meas.GetLogNormSyst().count(sys.GetName()) == 0 &&  
meas.GetGammaSyst().count(sys.GetName()) == 0 ) {
 
  585         if (
meas.GetLogNormSyst().count(sys.GetName()) > 0 ) {
 
  587            const double relerr = 
meas.GetLogNormSyst().find(sys.GetName() )->second;
 
  590               proto, 
"alphaOfBeta_" + sys.GetName(), 
"x[0]*(pow(x[1],x[2])-1.)",
 
  591               RooArgList{emplace<RooRealVar>(proto, 
"tau_" + sys.GetName(), 1. / relerr),
 
  592                          emplace<RooRealVar>(proto, 
"kappa_" + sys.GetName(), 1. + relerr), alpha});
 
  594            cxcoutI(HistFactory) << 
"Added a log-normal constraint for " << 
name << std::endl;
 
  603      lowVec.push_back(sys.GetLow());
 
  604      highVec.push_back(sys.GetHigh());
 
  616       interp.setAllInterpCodes(4); 
 
 
  634      throw std::logic_error(
"HistFactory didn't process the observables correctly. Please file a bug report.");
 
  662        auto pos = 
name.find(
"Hist_alpha");
 
  663        if (pos != std::string::npos) {
 
  664          name = 
name.substr(0, pos) + 
"shapes";
 
  665        } 
else if ( (pos = 
name.find(
"nominal")) != std::string::npos) {
 
  666          name = 
name.substr(0, pos) + 
"shapes";
 
  677    tot.specialIntegratorConfig(
true)->method1D().setLabel(
"RooBinIntegrator")  ;
 
  678    tot.specialIntegratorConfig(
true)->method2D().setLabel(
"RooBinIntegrator")  ;
 
  679    tot.specialIntegratorConfig(
true)->methodND().setLabel(
"RooBinIntegrator")  ;
 
  683    tot.setAttribute(
"GenerateBinned"); 
 
  686    if(
fCfg.binnedFitOptimization) {
 
  687      tot.setAttribute(
"BinnedLikelihood");
 
 
  700      if(
myargi->isConstant()) 
continue;
 
  705      if(
myargi->isConstant()) 
continue;
 
  708        if(
myargj->isConstant()) 
continue;
 
  709        std::cout << 
myargi->GetName() << 
"," << 
myargj->GetName();
 
  712      std::cout << std::endl;
 
 
  726      Error(
"MakeSingleChannelWorkspace",
 
  727          "The input Channel does not contain any sample - return a nullptr");
 
  737      std::ostringstream stream;
 
  738      stream << 
"The sample " << channel.
GetSamples().front().GetName()
 
  739                   << 
" in channel " << channel.
GetName() << 
" does not contain a histogram. This is the channel:\n";
 
  740      channel.
Print(stream);
 
  741      Error(
"MakeSingleChannelWorkspace", 
"%s", stream.str().c_str());
 
  746      std::cout << 
"MakeSingleChannelWorkspace: Channel: " << channel.
GetName()
 
  747                      << 
" has uninitialized histogram pointers" << std::endl;
 
  771    for ( 
unsigned int idx=0; idx<
fObsNameVec.size(); ++idx ) {
 
  781      throw hf_exc(
"HistFactory is limited to 1- to 3-dimensional histograms.");
 
  784    cxcoutP(HistFactory) << 
"\n-----------------------------------------\n" 
  785        << 
"\tStarting to process '" 
  787        << 
"\n-----------------------------------------\n" << std::endl;
 
  799      cxcoutI(HistFactory) << 
"will preprocess this line: " << func << std::endl;
 
  814    std::vector< pair<const TH1*, std::unique_ptr<TH1>> > 
statHistPairs; 
 
  830      proto.var(
"nominalLumi")->setConstant();
 
  831      proto.defineSet(
"globalObservables",
"nominalLumi");
 
  835      proto.var(
"Lumi")->setConstant();
 
  884      if(
sample.GetHistoSysList().empty()) {
 
  899          bool isUniform = 
measurement.GetUniformSyst().count(
sample.GetHistoSysList()[i].GetName()) > 0;
 
  914      if( 
sample.GetStatError().GetActivate() ) {
 
  917          cxcoutF(HistFactory) << 
"Cannot include Stat Error for histograms of more than 3 dimensions." 
  926          cxcoutI(HistFactory) << 
"Sample: "     << 
sample.GetName()  << 
" to be included in Stat Error " 
  933          if( 
sample.GetStatError().GetErrorHist() == 
nullptr ) {
 
  935            cxcoutI(HistFactory) << 
"Making Statistical Uncertainty Hist for " 
  937                << 
" Sample: "  << 
sample.GetName()
 
  948            cxcoutI(HistFactory) << 
"Using external histogram for Stat Errors for " 
  950                << 
"\tSample: "  << 
sample.GetName()
 
  951                << 
"\tError Histogram: " << 
statErrorHist->GetName() << std::endl;
 
 1014      if( !
sample.GetShapeFactorList().empty() ) {
 
 1017          cxcoutF(HistFactory) << 
"Cannot include Stat Error for histograms of more than 3 dimensions." 
 1023              << 
" to be include a ShapeFactor." 
 1054                   << 
" to have initial shape from hist: " 
 1063                   << 
" to be constant" << std::endl;
 
 1082      if( !
sample.GetShapeSysList().empty() ) {
 
 1085          cxcoutF(HistFactory) << 
"Cannot include Stat Error for histograms of more than 3 dimensions." 
 1105                << 
" to include a ShapeSys." << std::endl;
 
 1183      if( !
sample.GetNormalizeByTheory() ) {
 
 1211        cxcoutE(HistFactory) << 
"Error: Failed to make ScaledUncertaintyHist for: " 
 1212            << 
channel_name + 
"_StatUncert" + 
"_RelErr" << std::endl;
 
 1219      cxcoutI(HistFactory) << 
"About to create Constraint Terms from: " 
 1232        cxcoutI(HistFactory) << 
"Using Gaussian StatErrors in channel: " << channel.
GetName() << std::endl;
 
 1235        cxcoutI(HistFactory) << 
"Using Poisson StatErrors in channel: " << channel.
GetName()  << std::endl;
 
 1264    for(
unsigned int i=0; i<
systToFix.size(); ++i){
 
 1268            << 
" could not set it to constant" << std::endl;
 
 1281            << 
" in workspace: " << 
proto.GetName() << std::endl;
 
 1291            << 
" in workspace: " << 
proto.GetName() << std::endl;
 
 1317    cxcoutP(HistFactory) << 
"\n-----------------------------------------\n" 
 1318        << 
"\timport model into workspace" 
 1319        << 
"\n-----------------------------------------\n" << std::endl;
 
 1323        "product of Poissons across bins for a single channel",
 
 1338    proto.importClassCode();
 
 1349    if (
fCfg.createPerRegionWorkspaces) {
 
 1362      std::unique_ptr<RooDataSet> dataset;
 
 1363      if(!
fCfg.storeDataError){
 
 1364        dataset = std::make_unique<RooDataSet>(
"obsData",
"",*
proto.set(
"observables"), 
RooFit::WeightVar(
"weightVar"));
 
 1371      proto.import(*dataset);
 
 1376      if(
data.GetName().empty()) {
 
 1377        cxcoutF(HistFactory) << 
"Error: Additional Data histogram for channel: " << channel.
GetName()
 
 1378                << 
" has no name! The name always needs to be set for additional datasets, " 
 1379                << 
"either via the \"Name\" tag in the XML or via RooStats::HistFactory::Data::SetName()." << std::endl;
 
 1385        cxcoutF(HistFactory) << 
"Error: Additional Data histogram for channel: " << channel.
GetName()
 
 1386                << 
" with name: " << 
dataName << 
" is nullptr" << std::endl;
 
 1393      proto.import(dataset);
 
 
 1408                         std::vector<std::string> 
const& 
obsNameVec) {
 
 1415        Error(
"ConfigureHistFactoryDataset",
"Invalid input - return");
 
 1426    for (
int i=1; i<=
ax->GetNbins(); ++i) { 
 
 1428      double xval = 
ax->GetBinCenter(i);
 
 1437   for(
int j=1; 
j<=
ay->GetNbins(); ++
j) {
 
 1438     double yval = 
ay->GetBinCenter(
j);
 
 1447       for(
int k=1; k<=
az->GetNbins(); ++k) {
 
 1448         double zval = 
az->GetBinCenter(k);
 
 
 1469                                                  std::vector<std::unique_ptr<RooWorkspace>> &
chs)
 
 1475        Error(
"MakeCombinedModel",
"Input vectors are empty - return a nullptr");
 
 1479        Error(
"MakeCombinedModel",
"Input vector of workspace has an invalid size - return a nullptr");
 
 1491    for(
unsigned int i = 0; i< 
ch_names.size(); ++i){
 
 1494    cxcoutI(HistFactory) <<
"full list of observables:\n" << 
obsList << std::endl;
 
 1498    for(
unsigned int i = 0; i< 
ch_names.size(); ++i){
 
 1501        throw std::invalid_argument(
"The first channel name for HistFactory cannot start with a digit. Got " + 
channel_name);
 
 1504        throw std::invalid_argument(
"Channel names for HistFactory cannot contain ','. Got " + 
channel_name);
 
 1511      if(!model) std::cout <<
"failed to find model for channel"<< std::endl;
 
 1520    cxcoutP(HistFactory) << 
"\n-----------------------------------------\n" 
 1521        << 
"\tEntering combination" 
 1522        << 
"\n-----------------------------------------\n" << std::endl;
 
 1523    auto combined = std::make_unique<RooWorkspace>(
"combined");
 
 1545      if(std::string(
"asimovData") == 
data->GetName()) {
 
 1550      std::map<std::string, RooAbsData*> 
dataMap;
 
 1551      for(
unsigned int i = 0; i < 
ch_names.size(); ++i){
 
 1562    cxcoutP(HistFactory) << 
"\n-----------------------------------------\n" 
 1563            << 
"\tImporting combined model" 
 1564            << 
"\n-----------------------------------------\n" << std::endl;
 
 1576        cxcoutE(HistFactory) << 
"could not find variable " << 
paramName << 
" could not set its value" << std::endl;
 
 1580    for(
unsigned int i=0; i<
fSystToFix.size(); ++i){
 
 1583        temp->setConstant();
 
 1584        cxcoutI(HistFactory) <<
"setting " << 
fSystToFix.at(i) << 
" constant" << std::endl;
 
 1586        cxcoutE(HistFactory) << 
"could not find variable " << 
fSystToFix.at(i) << 
" could not set it to constant" << std::endl;
 
 1604    cxcoutP(HistFactory) << 
"\n-----------------------------------------\n" 
 1605        << 
"\tcreate toy data" 
 1606        << 
"\n-----------------------------------------\n" << std::endl;
 
 1620      std::cout << 
"Error: Failed to create combined asimov dataset" << std::endl;
 
 
 1645      while( 
Nominal->IsBinUnderflow(binNumber) || 
Nominal->IsBinOverflow(binNumber) ){
 
 1649      double histError = 
Nominal->GetBinError( binNumber );
 
 1652      if( histError != histError ) {
 
 1653   std::cout << 
"Warning: In histogram " << 
Nominal->GetName()
 
 1654        << 
" bin error for bin " << 
i_bin 
 1655        << 
" is NAN.  Not using Error!!!" 
 1663      if( histError < 0  ) {
 
 1664   std::cout << 
"Warning: In histogram " << 
Nominal->GetName()
 
 1665        << 
" bin error for bin " << binNumber
 
 1666        << 
" is < 0.  Setting Error to 0" 
 1672      ErrorHist->SetBinContent( binNumber, histError );
 
 
 1694      cxcoutE(HistFactory) << 
"Warning: Empty Hist Vector, cannot create total uncertainty" << std::endl;
 
 1703  for( 
unsigned int i = 0; i < 
HistVec.size(); ++i ) {
 
 1706    const TH1* error   = 
HistVec.at(i).second.get();
 
 1709      cxcoutE(HistFactory) << 
"Error: Provided hists have unequal bins" << std::endl;
 
 1713      cxcoutE(HistFactory) << 
"Error: Provided hists have unequal bins" << std::endl;
 
 1741      if( histError != histError ) {
 
 1743        << 
" bin error for bin " << binNumber
 
 1744        << 
" is NAN.  Not using error!!";
 
 1761  for( 
int i = 0; i < numBins; ++i) {
 
 1765    while( 
ErrorHist->IsBinUnderflow(binNumber) || 
ErrorHist->IsBinOverflow(binNumber) ){
 
 1773      cxcoutW(HistFactory) << 
"Warning: Sum of histograms for bin: " << binNumber
 
 1774      << 
" is <= 0.  Setting error to 0" 
 1777      ErrorHist->SetBinContent( binNumber, 0.0 );
 
 1786      cxcoutE(HistFactory) << 
"Error: bin " << i << 
" error is NAN\n" 
 1801    cxcoutI(HistFactory) << 
"Making Total Uncertainty for bin " << binNumber
 
 
std::vector< double > histToVector(TH1 const &hist)
 
constexpr double alphaHigh
 
constexpr double alphaLow
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
#define R__ASSERT(e)
Checks condition e and reports a fatal error if it's false.
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void data
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char filename
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t result
 
A class which maps the current values of a RooRealVar (or a set of RooRealVars) to one of a number of...
 
static RooArgList createParamSet(RooWorkspace &w, const std::string &, const RooArgList &Vars)
Create the list of RooRealVar parameters which represent the height of the histogram bins.
 
The PiecewiseInterpolation is a class that can morph distributions into each other,...
 
const_iterator begin() const
 
const_iterator end() const
 
Common abstract base class for objects that represent a value and a "shape" in RooFit.
 
virtual bool add(const RooAbsArg &var, bool silent=false)
Add the specified argument to list.
 
Storage_t::size_type size() const
 
Abstract base class for binned and unbinned datasets.
 
Abstract interface for all probability density functions.
 
Abstract base class for objects that represent a real value that may appear on the left hand side of ...
 
void setConstant(bool value=true)
 
Abstract base class for objects that represent a real value and implements functionality common to al...
 
Calculates the sum of a set of RooAbsReal terms, or when constructed with two sets,...
 
RooArgList is a container object that can hold multiple RooAbsArg objects.
 
RooArgSet is a container object that can hold multiple RooAbsArg objects.
 
Implements a RooAbsBinning in terms of an array of boundary values, posing no constraints on the choi...
 
Object to represent discrete states.
 
Container class to hold N-dimensional binned data.
 
Container class to hold unbinned data.
 
RooFitResult is a container class to hold the input and output of a PDF fit to a dataset.
 
Implementation of the Gamma PDF for RooFit/RooStats.
 
Switches the message service to a different level while the instance is alive.
 
A real-valued function sampled from a multidimensional histogram.
 
static RooMsgService & instance()
Return reference to singleton instance.
 
A RooAbsReal implementing a polynomial in terms of a list of RooAbsReal coefficients.
 
Represents the product of a given set of RooAbsReal objects.
 
Implements a PDF constructed from a sum of functions:
 
Variable that can be changed from the outside.
 
void setBinning(const RooAbsBinning &binning, const char *name=nullptr)
Add given binning under name 'name' with this variable.
 
void setBins(Int_t nBins, const char *name=nullptr)
Create a uniform binning under name 'name' for this variable.
 
static void SetPrintLevel(int level)
set print level (static function)
 
static RooAbsData * GenerateAsimovData(const RooAbsPdf &pdf, const RooArgSet &observables)
generate the asimov data for the observables (not the global ones) need to deal with the case of a si...
 
TODO Here, we are missing some documentation.
 
void ConfigureWorkspace(RooWorkspace *)
 
This class encapsulates all information for the statistical interpretation of one experiment.
 
std::vector< RooStats::HistFactory::Data > & GetAdditionalData()
retrieve vector of additional data objects
 
void Print(std::ostream &=std::cout)
 
HistFactory::StatErrorConfig & GetStatErrorConfig()
get information about threshold for statistical uncertainties and constraint term
 
RooStats::HistFactory::Data & GetData()
get data object
 
bool CheckHistograms() const
 
std::vector< RooStats::HistFactory::Sample > & GetSamples()
get vector of samples for this channel
 
std::string GetName() const
get name of channel
 
This class provides helper functions for creating likelihood models from histograms.
 
std::unique_ptr< RooProduct > CreateNormFactor(RooWorkspace &proto, std::string &channel, std::string &sigmaEpsilon, Sample &sample, bool doRatio)
 
void GuessObsNameVec(const TH1 *hist)
 
std::unique_ptr< RooWorkspace > MakeSingleChannelWorkspace(Measurement &measurement, Channel &channel)
 
void MakeTotalExpected(RooWorkspace &proto, const std::string &totName, const std::vector< RooProduct * > &sampleScaleFactors, std::vector< std::vector< RooAbsArg * > > &sampleHistFuncs) const
 
std::unique_ptr< TH1 > MakeScaledUncertaintyHist(const std::string &Name, std::vector< std::pair< const TH1 *, std::unique_ptr< TH1 > > > const &HistVec) const
 
std::vector< std::string > fPreprocessFunctions
 
RooHistFunc * MakeExpectedHistFunc(const TH1 *hist, RooWorkspace &proto, std::string prefix, const RooArgList &observables) const
Create the nominal hist function from hist, and register it in the workspace.
 
void SetFunctionsToPreprocess(std::vector< std::string > lines)
 
std::vector< std::string > fObsNameVec
 
RooFit::OwningPtr< RooWorkspace > MakeSingleChannelModel(Measurement &measurement, Channel &channel)
 
RooFit::OwningPtr< RooWorkspace > MakeCombinedModel(std::vector< std::string >, std::vector< std::unique_ptr< RooWorkspace > > &)
 
TH1 * MakeAbsolUncertaintyHist(const std::string &Name, const TH1 *Hist)
 
std::map< std::string, double > fParamValues
 
static void ConfigureWorkspaceForMeasurement(const std::string &ModelName, RooWorkspace *ws_single, Measurement &measurement)
 
void AddConstraintTerms(RooWorkspace &proto, Measurement &measurement, std::string prefix, std::string interpName, std::vector< OverallSys > &systList, std::vector< std::string > &likelihoodTermNames, std::vector< std::string > &totSystTermNames)
 
void ConfigureHistFactoryDataset(RooDataSet &obsData, TH1 const &nominal, RooWorkspace &proto, std::vector< std::string > const &obsNameVec)
 
static void PrintCovarianceMatrix(RooFitResult *result, RooArgSet *params, std::string filename)
 
std::vector< std::string > fSystToFix
 
HistoToWorkspaceFactoryFast()
 
RooArgList createObservables(const TH1 *hist, RooWorkspace &proto) const
Create observables of type RooRealVar. Creates 1 to 3 observables, depending on the type of the histo...
 
The RooStats::HistFactory::Measurement class can be used to construct a model by combining multiple R...
 
Configuration for an un- constrained overall systematic to scale sample normalisations.
 
Configuration for a constrained overall systematic to scale sample normalisations.
 
*Un*constrained bin-by-bin variation of affected histogram.
 
Constrained bin-by-bin variation of affected histogram.
 
double GetRelErrorThreshold() const
 
Constraint::Type GetConstraintType() const
 
ModelConfig is a simple class that holds configuration information specifying how a model should be u...
 
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.
 
const RooArgSet * set(RooStringView name)
Return pointer to previously defined named set with given nmame If no such set is found a null pointe...
 
RooAbsArg * arg(RooStringView name) const
Return RooAbsArg with given name. A null pointer is returned if none is found.
 
bool import(const RooAbsArg &arg, const RooCmdArg &arg1={}, const RooCmdArg &arg2={}, const RooCmdArg &arg3={}, const RooCmdArg &arg4={}, const RooCmdArg &arg5={}, const RooCmdArg &arg6={}, const RooCmdArg &arg7={}, const RooCmdArg &arg8={}, const RooCmdArg &arg9={})
Import a RooAbsArg object, e.g.
 
Class to manage histogram axis.
 
Bool_t IsVariableBinSize() const
 
const char * GetTitle() const override
Returns title of object.
 
const TArrayD * GetXbins() const
 
TH1 is the base class of all histogram classes in ROOT.
 
virtual Int_t GetNbinsY() const
 
virtual Int_t GetNbinsZ() const
 
virtual Int_t GetDimension() const
 
virtual Int_t GetNbinsX() const
 
Bool_t IsBinUnderflow(Int_t bin, Int_t axis=0) const
Return true if the bin is underflow.
 
Bool_t IsBinOverflow(Int_t bin, Int_t axis=0) const
Return true if the bin is overflow.
 
virtual Double_t GetBinContent(Int_t bin) const
Return content of bin number bin.
 
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
 
const char * GetName() const override
Returns name of object.
 
const char * GetTitle() const override
Returns title of object.
 
virtual const char * ClassName() const
Returns name of class to which the object belongs.
 
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
 
void Start(Bool_t reset=kTRUE)
Start the stopwatch.
 
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
 
RooCmdArg RecycleConflictNodes(bool flag=true)
 
RooCmdArg Rename(const char *suffix)
 
RooCmdArg Conditional(const RooArgSet &pdfSet, const RooArgSet &depSet, bool depsAreCond=false)
 
RooConstVar & RooConst(double val)
 
RooCmdArg Index(RooCategory &icat)
 
RooCmdArg StoreError(const RooArgSet &aset)
 
RooCmdArg WeightVar(const char *name="weight", bool reinterpretAsWeight=false)
 
RooCmdArg Import(const char *state, TH1 &histo)
 
T * OwningPtr
An alias for raw pointers for indicating that the return type of a RooFit function is an owning point...
 
OwningPtr< T > makeOwningPtr(std::unique_ptr< T > &&ptr)
Internal helper to turn a std::unique_ptr<T> into an OwningPtr.
 
constexpr double defaultShapeSysGammaMax
 
constexpr double minShapeUncertainty
 
constexpr double defaultShapeFactorGammaMax
 
constexpr double defaultStatErrorGammaMax
 
constexpr double defaultGammaMin
 
CreateGammaConstraintsOutput createGammaConstraints(RooArgList const ¶mList, std::span< const double > relSigmas, double minSigma, Constraint::Type type)
 
Namespace for the RooStats classes.
 
Configuration settings for HistFactory behavior.