Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
RooEffProd Class Reference

The class RooEffProd implements the product of a PDF with an efficiency function.

The normalization integral of the product is calculated numerically, but the event generation is handled by a specialized generator context that implements the event generation in a more efficient for cases where the PDF has an internal generator that is smarter than accept reject.

Definition at line 19 of file RooEffProd.h.

Public Types

enum  {
  kIsOnHeap = 0x01000000 , kNotDeleted = 0x02000000 , kZombie = 0x04000000 , kInconsistent = 0x08000000 ,
  kBitMask = 0x00ffffff
}
 
enum  { kSingleKey = (1ULL << ( 0 )) , kOverwrite = (1ULL << ( 1 )) , kWriteDelete = (1ULL << ( 2 )) }
 
enum  ContentsOption {
  kName =1 , kClassName =2 , kValue =4 , kArgs =8 ,
  kExtras =16 , kAddress =32 , kTitle =64 , kCollectionHeader =128
}
 
enum  EDeprecatedStatusBits { kObjInCanvas = (1ULL << ( 3 )) }
 
enum  ErrorLoggingMode { PrintErrors , CollectErrors , CountErrors , Ignore }
 
enum  EStatusBits {
  kCanDelete = (1ULL << ( 0 )) , kMustCleanup = (1ULL << ( 3 )) , kIsReferenced = (1ULL << ( 4 )) , kHasUUID = (1ULL << ( 5 )) ,
  kCannotPick = (1ULL << ( 6 )) , kNoContextMenu = (1ULL << ( 8 )) , kInvalidObject = (1ULL << ( 13 ))
}
 
enum  ExtendMode { CanNotBeExtended , CanBeExtended , MustBeExtended }
 
enum  OperMode { Auto = 0 , AClean = 1 , ADirty = 2 }
 
using RefCountList_t = RooSTLRefCountList<RooAbsArg>
 
using RefCountListLegacyIterator_t = TIteratorToSTLInterface<RefCountList_t::Container_t>
 
enum  ScaleType { Raw , Relative , NumEvent , RelativeExpected }
 
enum  StyleOption {
  kInline =1 , kSingleLine =2 , kStandard =3 , kVerbose =4 ,
  kTreeStructure =5
}
 
using value_type = double
 

Public Member Functions

 RooEffProd ()
 
 RooEffProd (const char *name, const char *title, RooAbsPdf &pdf, RooAbsReal &efficiency)
 Constructs the product of the PDF inPdf with the efficiency function inEff.
 
 RooEffProd (const RooEffProd &other, const char *name=nullptr)
 Copy constructor.
 
void AbstractMethod (const char *method) const
 Call this function within a function that you don't want to define as purely virtual, in order not to force all users deriving from that class to implement that maybe (on their side) unused function; but at the same time, emit a run-time warning if they try to call it, telling that it is not implemented in the derived class: action must thus be taken on the user side to override it.
 
bool addOwnedComponents (const RooAbsCollection &comps)
 Take ownership of the contents of 'comps'.
 
bool addOwnedComponents (RooAbsCollection &&comps)
 Take ownership of the contents of 'comps'.
 
bool addOwnedComponents (RooArgList &&comps)
 Take ownership of the contents of 'comps'.
 
template<typename... Args_t>
bool addOwnedComponents (std::unique_ptr< Args_t >... comps)
 
virtual double analyticalIntegral (Int_t code, const char *rangeName=nullptr) const
 Implements the actual analytical integral(s) advertised by getAnalyticalIntegral.
 
double analyticalIntegralWN (Int_t code, const RooArgSet *normSet, const char *rangeName=nullptr) const override
 Analytical integral with normalization (see RooAbsReal::analyticalIntegralWN() for further information).
 
virtual void AppendPad (Option_t *option="")
 Append graphics object to current pad.
 
virtual void applyWeightSquared (bool flag)
 Disables or enables the usage of squared weights.
 
TF1asTF (const RooArgList &obs, const RooArgList &pars=RooArgList(), const RooArgSet &nset=RooArgSet()) const
 Return a ROOT TF1,2,3 object bound to this RooAbsReal with given definition of observables and parameters.
 
void attachArgs (const RooAbsCollection &set)
 Bind this node to objects in set.
 
void attachDataSet (const RooAbsData &set)
 Replace server nodes with names matching the dataset variable names with those data set variables, making this PDF directly dependent on the dataset.
 
void attachDataStore (const RooAbsDataStore &set)
 Replace server nodes with names matching the dataset variable names with those data set variables, making this PDF directly dependent on the dataset.
 
const std::set< std::string > & attributes () const
 
virtual RooAbsGenContextautoGenContext (const RooArgSet &vars, const RooDataSet *prototype=nullptr, const RooArgSet *auxProto=nullptr, bool verbose=false, bool autoBinned=true, const char *binnedTag="") const
 
virtual std::list< double > * binBoundaries (RooAbsRealLValue &obs, double xlo, double xhi) const
 Retrieve bin boundaries if this distribution is binned in obs.
 
RooFit::OwningPtr< RooAbsFuncbindVars (const RooArgSet &vars, const RooArgSet *nset=nullptr, bool clipInvalid=false) const
 Create an interface adaptor f(vars) that binds us to the specified variables (in arbitrary order).
 
virtual RooAbsGenContextbinnedGenContext (const RooArgSet &vars, bool verbose=false) const
 Return a binned generator context.
 
virtual void Browse (TBrowser *b)
 Browse object. May be overridden for another default action.
 
bool canBeExtended () const
 If true, PDF can provide extended likelihood term.
 
virtual bool canComputeBatchWithCuda () const
 
ULong_t CheckedHash ()
 Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object.
 
virtual bool checkObservables (const RooArgSet *nset) const
 Overloadable function in which derived classes can implement consistency checks of the variables.
 
template<typename... CmdArgs_t>
RooFit::OwningPtr< RooFitResultchi2FitTo (RooDataHist &data, CmdArgs_t const &... cmdArgs)
 Calls RooAbsReal::createChi2 and returns the fit result.
 
virtual const char * ClassName () const
 Returns name of class to which the object belongs.
 
void Clear (Option_t *option="") override
 Set name and title to empty strings ("").
 
TObjectClone (const char *newname=nullptr) const override
 Make a clone of an object using the Streamer facility.
 
TObjectclone (const char *newname=nullptr) const override
 
virtual RooAbsArgcloneTree (const char *newname=nullptr) const
 Clone tree expression of objects.
 
Int_t Compare (const TObject *other) const override
 Utility function used by TCollection::Sort to compare contained TObjects We implement comparison by name, resulting in alphabetical sorting by object name.
 
std::unique_ptr< RooAbsArgcompileForNormSet (RooArgSet const &normSet, RooFit::Detail::CompileContext &ctx) const override
 
void Copy (TObject &named) const override
 Copy this to obj.
 
RooFit::OwningPtr< RooAbsRealcreateCdf (const RooArgSet &iset, const RooArgSet &nset=RooArgSet())
 Create a cumulative distribution function of this p.d.f in terms of the observables listed in iset.
 
RooFit::OwningPtr< RooAbsRealcreateCdf (const RooArgSet &iset, const RooCmdArg &arg1, const RooCmdArg &arg2={}, const RooCmdArg &arg3={}, const RooCmdArg &arg4={}, const RooCmdArg &arg5={}, const RooCmdArg &arg6={}, const RooCmdArg &arg7={}, const RooCmdArg &arg8={})
 Create an object that represents the integral of the function over one or more observables listed in iset.
 
template<typename... CmdArgs_t>
RooFit::OwningPtr< RooAbsRealcreateChi2 (RooDataHist &data, CmdArgs_t const &... cmdArgs)
 Create a \( \chi^2 \) variable from a histogram and this function.
 
virtual std::unique_ptr< RooAbsRealcreateExpectedEventsFunc (const RooArgSet *nset) const
 Returns an object that represents the expected number of events for a given normalization set, similar to how createIntegral() returns an object that returns the integral.
 
RooFit::OwningPtr< RooAbsArgcreateFundamental (const char *newname=nullptr) const override
 Create a RooRealVar fundamental object with our properties.
 
TH1createHistogram (const char *name, const RooAbsRealLValue &xvar, 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
 Create and fill a ROOT histogram TH1, TH2 or TH3 with the values of this function.
 
TH1createHistogram (const char *name, const RooAbsRealLValue &xvar, RooLinkedList &argList) const
 Internal method implementing createHistogram.
 
TH1createHistogram (RooStringView varNameList, Int_t xbins=0, Int_t ybins=0, Int_t zbins=0) const
 Create and fill a ROOT histogram TH1, TH2 or TH3 with the values of this function for the variables with given names.
 
RooFit::OwningPtr< RooAbsRealcreateIntegral (const RooArgSet &iset, const char *rangeName) const
 Create integral over observables in iset in range named rangeName.
 
RooFit::OwningPtr< RooAbsRealcreateIntegral (const RooArgSet &iset, const RooArgSet &nset, const char *rangeName=nullptr) const
 Create integral over observables in iset in range named rangeName with integrand normalized over observables in nset.
 
RooFit::OwningPtr< RooAbsRealcreateIntegral (const RooArgSet &iset, const RooArgSet &nset, const RooNumIntConfig &cfg, const char *rangeName=nullptr) const
 Create integral over observables in iset in range named rangeName with integrand normalized over observables in nset while using specified configuration for any numeric integration.
 
virtual RooFit::OwningPtr< RooAbsRealcreateIntegral (const RooArgSet &iset, const RooArgSet *nset=nullptr, const RooNumIntConfig *cfg=nullptr, const char *rangeName=nullptr) const
 Create an object that represents the integral of the function over one or more observables listed in iset.
 
RooFit::OwningPtr< RooAbsRealcreateIntegral (const RooArgSet &iset, 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
 Create an object that represents the integral of the function over one or more observables listed in iset.
 
RooFit::OwningPtr< RooAbsRealcreateIntegral (const RooArgSet &iset, const RooNumIntConfig &cfg, const char *rangeName=nullptr) const
 Create integral over observables in iset in range named rangeName using specified configuration for any numeric integration.
 
RooFit::OwningPtr< RooAbsRealcreateIntRI (const RooArgSet &iset, const RooArgSet &nset={})
 Utility function for createRunningIntegral.
 
template<typename... CmdArgs_t>
RooFit::OwningPtr< RooAbsRealcreateNLL (RooAbsData &data, CmdArgs_t const &... cmdArgs)
 Construct representation of -log(L) of PDF with given dataset.
 
const RooAbsRealcreatePlotProjection (const RooArgSet &dependentVars, const RooArgSet *projectedVars, RooArgSet *&cloneSet, const char *rangeName=nullptr, const RooArgSet *condObs=nullptr) const
 Utility function for plotOn() that creates a projection of a function or p.d.f to be plotted on a RooPlot.
 
const RooAbsRealcreatePlotProjection (const RooArgSet &depVars, const RooArgSet &projVars, RooArgSet *&cloneSet) const
 Utility function for plotOn() that creates a projection of a function or p.d.f to be plotted on a RooPlot.
 
virtual RooFit::OwningPtr< RooAbsRealcreateProfile (const RooArgSet &paramsOfInterest)
 Create a RooProfileLL object that eliminates all nuisance parameters in the present function.
 
virtual RooAbsPdfcreateProjection (const RooArgSet &iset)
 Return a p.d.f that represent a projection of this p.d.f integrated over given observables.
 
RooFit::OwningPtr< RooAbsRealcreateRunningIntegral (const RooArgSet &iset, const RooArgSet &nset={})
 Calls createRunningIntegral(const RooArgSet&, const RooCmdArg&, const RooCmdArg&, const RooCmdArg&, const RooCmdArg&, const RooCmdArg&, const RooCmdArg&, const RooCmdArg&, const RooCmdArg&)
 
RooFit::OwningPtr< RooAbsRealcreateRunningIntegral (const RooArgSet &iset, const RooCmdArg &arg1, const RooCmdArg &arg2={}, const RooCmdArg &arg3={}, const RooCmdArg &arg4={}, const RooCmdArg &arg5={}, const RooCmdArg &arg6={}, const RooCmdArg &arg7={}, const RooCmdArg &arg8={})
 Create an object that represents the running integral of the function over one or more observables listed in iset, i.e.
 
RooFit::OwningPtr< RooAbsRealcreateScanCdf (const RooArgSet &iset, const RooArgSet &nset, Int_t numScanBins, Int_t intOrder)
 
RooFit::OwningPtr< RooAbsRealcreateScanRI (const RooArgSet &iset, const RooArgSet &nset, Int_t numScanBins, Int_t intOrder)
 Utility fun