11#ifndef RooFit_RooFitImplHelpers_h
12#define RooFit_RooFitImplHelpers_h
85 it->first->setOperMode(it->second,
false);
93 std::vector<std::pair<RooAbsArg *, RooAbsArg::OperMode>>
_entries;
147 const std::string
msg =
"p.d.f normalization integral is zero or negative: " + std::to_string(
normVal);
153 std::stringstream
ss;
154 ss <<
"p.d.f value is less than zero (" <<
rawVal <<
"), trying to recover";
double toDouble(const char *s)
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void input
Scope guard that temporarily changes the operation mode of one or more RooAbsArg instances.
ChangeOperModeRAII(RooAbsArg *arg, RooAbsArg::OperMode opMode)
Convenience ctor: behaves like a scope guard for a single arg.
ChangeOperModeRAII(ChangeOperModeRAII &&)=default
ChangeOperModeRAII(ChangeOperModeRAII const &)=delete
void change(RooAbsArg *arg, RooAbsArg::OperMode opMode)
Record arg's current operMode and flip it to opMode.
void clear()
Restore every recorded change right away, emptying this guard.
std::vector< std::pair< RooAbsArg *, RooAbsArg::OperMode > > _entries
ChangeOperModeRAII & operator=(ChangeOperModeRAII const &)=delete
ChangeOperModeRAII()=default
ChangeOperModeRAII & operator=(ChangeOperModeRAII &&)=default
Disable all caches for sub-branches in an expression tree.
DisableCachingRAII(DisableCachingRAII const &other)=delete
DisableCachingRAII & operator=(DisableCachingRAII const &other)=delete
DisableCachingRAII(bool oldState)
Inhibit all dirty-state propagation, and assume every node as dirty.
Common abstract base class for objects that represent a value and a "shape" in RooFit.
void setOperMode(OperMode mode, bool recurseADirty=true)
Set the operation mode of this node.
static void setDirtyInhibit(bool flag)
Control global dirty inhibit mode.
OperMode operMode() const
Query the operation mode of this node.
Abstract container object that can hold multiple RooAbsArg objects.
Abstract base class for binned and unbinned datasets.
Abstract interface for all probability density functions.
void logEvalError(const char *message, const char *serverValueString=nullptr) const
Log evaluation error message.
RooArgSet is a container object that can hold multiple RooAbsArg objects.
std::string makeValidVarName(std::string const &in)
void replaceAll(std::string &inOut, std::string_view what, std::string_view with)
std::string makeSliceCutString(RooArgSet const &sliceDataSet)
double normalizeWithNaNPacking(RooAbsPdf const &pdf, double rawVal, double normVal)
RooAbsArg * cloneTreeWithSameParametersImpl(RooAbsArg const &arg, RooArgSet const *observables)
bool snapshotImpl(RooAbsCollection const &input, RooAbsCollection &output, bool deepCopy, RooArgSet const *observables)
RooArgSet selectFromArgSet(RooArgSet const &, std::string const &names)
bool checkIfRangesOverlap(RooArgSet const &observables, std::vector< std::string > const &rangeNames)
std::unique_ptr< T > cloneTreeWithSameParameters(T const &arg, RooArgSet const *observables=nullptr)
Clone RooAbsArg object and reattach to original parameters.
std::string getRangeNameForSimComponent(std::string const &rangeName, bool splitRange, std::string const &catName)
void getSortedComputationGraph(RooAbsArg const &func, RooArgSet &out)
BinnedLOutput getBinnedL(RooAbsPdf const &pdf)
std::string getColonSeparatedNameString(RooArgSet const &argSet, char delim=':')
std::pair< double, double > getRangeOrBinningInterval(RooAbsArg const *arg, const char *rangeName)
static double packFloatIntoNaN(float payload)
Pack float into mantissa of a NaN.