library: libRooFit
#include "RooAbsAnaConvPdf.h"

RooAbsAnaConvPdf


class description - header file - source file - inheritance tree (.pdf)

class RooAbsAnaConvPdf : public RooAbsPdf

Inheritance Chart:
TObject
<-
TNamed
RooPrintable
<-
RooAbsArg
<-
RooAbsReal
<-
RooAbsPdf
<-
RooAbsAnaConvPdf
<-
RooBCPEffDecay
RooBCPGenDecay
RooBDecay
RooBMixDecay
RooDecay
RooNonCPEigenDecay
 
    This is an abstract class, constructors will not be documented.
    Look at the header to check for available constructors.


    protected:
Bool_t changeModel(const RooResolutionModel& newModel) const RooRealVar* convVar() const virtual Double_t evaluate() const virtual RooAbsGenContext* genContext(const RooArgSet& vars, const RooDataSet* prototype = 0, const RooArgSet* auxProto = 0, Bool_t verbose = kFALSE) const void makeCoefVarList() const RooArgSet* parseIntegrationRequest(const RooArgSet& intSet, Int_t& coefCode, RooArgSet* analVars = 0) const virtual Bool_t redirectServersHook(const RooAbsCollection& newServerList, Bool_t mustReplaceAll, Bool_t nameChange, Bool_t isRecursive) virtual void syncNormalizationPostHook(RooAbsReal* norm, const RooArgSet* nset) const virtual Bool_t syncNormalizationPreHook(RooAbsReal* norm, const RooArgSet* nset) const public:
virtual ~RooAbsAnaConvPdf() virtual Double_t analyticalIntegralWN(Int_t code, const RooArgSet* normSet, const char* rangeName = "0") const static TClass* Class() virtual Double_t coefAnalyticalIntegral(Int_t coef, Int_t code, const char* rangeName = "0") const virtual Double_t coefficient(Int_t basisIndex) const Int_t declareBasis(const char* expression, const RooArgList& params) virtual Bool_t forceAnalyticalInt(const RooAbsArg& dep) const virtual Int_t getAnalyticalIntegralWN(RooArgSet& allVars, RooArgSet& analVars, const RooArgSet* normSet, const char* rangeName = "0") const virtual Int_t getCoefAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars, const char* rangeName = "0") const Double_t getCoefNorm(Int_t coefIdx, const RooArgSet& nset, const char* rangeName) const Double_t getCoefNorm(Int_t coefIdx, const RooArgSet* nset = 0, const char* rangeName = "0") const virtual TClass* IsA() const virtual Bool_t isDirectGenSafe(const RooAbsArg& arg) const virtual void printToStream(ostream& stream, RooPrintable::PrintOption opt = Standard, TString indent = ) const virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b)

Data Members


    protected:
Bool_t _isCopy RooResolutionModel* _model Original resolution model RooRealVar* _convVar Convolution variable RooListProxy _convSet Set of (resModel (x) basisFunc) convolution objects RooArgList _basisList List of created basis functions RooArgSet* _convNormSet Subset of last normalization that applies to convolutions TIterator* _convSetIter ! Iterator over _convNormSet RooArgList _coefVarList RooNormListManager _coefNormMgr ! Coefficient normalization manager RooAICRegistry _codeReg

Class Description

~RooAbsAnaConvPdf()
 Destructor
Int_t declareBasis(const char* expression, const RooArgList& params)
 Declare a basis function for use in this physics model. The string expression
 must be a valid RooFormulVar expression representing the basis function, referring
 to the convolution variable as '@0', and any additional parameters (supplied in
 'params' as '@1','@2' etc.

 The return value is a unique identifier code, that will be passed to coefficient()
 to identify the basis function for which the coefficient is requested. If the
 resolution model used does not support the declared basis function, code -1 is
 returned.

Bool_t changeModel(const RooResolutionModel& newModel)
 Change the resolution model to given model
RooAbsGenContext* genContext(const RooArgSet &vars, const RooDataSet *prototype, const RooArgSet* auxProto, Bool_t verbose)
Bool_t isDirectGenSafe(const RooAbsArg& arg)
 All direct generation of convolution arg if model is truth model
const RooRealVar* convVar()
 Return a pointer to the convolution variable instance used in the resolution model
Double_t evaluate()
 Calculate the current unnormalized value of the PDF

 PDF = sum_k coef_k * [ basis_k (x) ResModel ]

Int_t getAnalyticalIntegralWN(RooArgSet& allVars, RooArgSet& analVars, const RooArgSet* normSet2, const char* /*rangeName*/)
{
 Handle trivial no-integration scenario
if (allVars.getSize()==0) return 0 ;

 Select subset of allVars that are actual dependents
RooArgSet* allDeps = getObservables(allVars) ;
RooArgSet* normSet = normSet2 ? getObservables(normSet2) : 0 ;

RooAbsArg *arg ;
RooResolutionModel *conv ;

Double_t analyticalIntegralWN(Int_t code, const RooArgSet* normSet, const char* rangeName)
 Return analytical integral defined by given scenario code.

 For unnormalized integrals this is
                    _                _
   PDF = sum_k Int(dx) coef_k * Int(dy) [ basis_k (x) ResModel ].
       _
 where x is the set of coefficient dependents to be integrated
 and y the set of basis function dependents to be integrated.

 For normalized integrals this becomes

         sum_k Int(dx) coef_k * Int(dy) [ basis_k (x) ResModel ].
  PDF =  --------------------------------------------------------
         sum_k Int(dv) coef_k * Int(dw) [ basis_k (x) ResModel ].

 where x is the set of coefficient dependents to be integrated,
 y the set of basis function dependents to be integrated,
 v is the set of coefficient dependents over which is normalized and
 w is the set of basis function dependents over which is normalized.

 Set x must be contained in v and set y must be contained in w.

Double_t getCoefNorm(Int_t coefIdx, const RooArgSet* nset, const char* rangeName)
void makeCoefVarList()
 Build complete list of coefficient variables
void printToStream(ostream& os, PrintOption opt, TString indent)
 Print info about this object to the specified stream. In addition to the info
 from RooAbsPdf::printToStream() we add:

   Verbose : detailed information on convolution integrals
Double_t getCoefNorm(Int_t coefIdx, const RooArgSet& nset, const char* rangeName)
 Coefficient normalization access
Int_t getCoefAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars, const char* rangeName=0)
 Coefficient Analytical integration support
Double_t coefAnalyticalIntegral(Int_t coef, Int_t code, const char* rangeName=0)
Bool_t forceAnalyticalInt(const RooAbsArg& dep)
Double_t coefficient(Int_t basisIndex)
Bool_t redirectServersHook(const RooAbsCollection& newServerList, Bool_t mustReplaceAll, Bool_t nameChange, Bool_t isRecursive)
RooArgSet* parseIntegrationRequest(const RooArgSet& intSet, Int_t& coefCode, RooArgSet* analVars=0)
Bool_t syncNormalizationPreHook(RooAbsReal* norm,const RooArgSet* nset)
void syncNormalizationPostHook(RooAbsReal* norm,const RooArgSet* nset)

Last update: Tue Jul 11 11:44:56 2006
Copyright (c) 2000-2005, Regents of the University of California *


ROOT page - Class index - Class Hierarchy - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.