16 #ifndef ROO_REAL_SUM_PDF
17 #define ROO_REAL_SUM_PDF
24 class RooRealSumPdf :
public RooAbsPdf {
28 RooRealSumPdf(
const char *name,
const char *title);
29 RooRealSumPdf(
const char *name,
const char *title,
const RooArgList& funcList,
const RooArgList& coefList, Bool_t extended=kFALSE) ;
30 RooRealSumPdf(
const char *name,
const char *title,
31 RooAbsReal& func1, RooAbsReal& func2, RooAbsReal& coef1) ;
32 RooRealSumPdf(
const RooRealSumPdf& other,
const char* name=0) ;
33 virtual TObject* clone(
const char* newname)
const {
return new RooRealSumPdf(*
this,newname) ; }
34 virtual ~RooRealSumPdf() ;
36 Double_t evaluate()
const ;
37 virtual Bool_t checkObservables(
const RooArgSet* nset)
const ;
39 virtual Bool_t forceAnalyticalInt(
const RooAbsArg& arg)
const {
return arg.isFundamental() ; }
40 Int_t getAnalyticalIntegralWN(RooArgSet& allVars, RooArgSet& numVars,
const RooArgSet* normSet,
const char* rangeName=0)
const ;
41 Double_t analyticalIntegralWN(Int_t code,
const RooArgSet* normSet,
const char* rangeName=0)
const ;
43 const RooArgList& funcList()
const {
return _funcList ; }
44 const RooArgList& coefList()
const {
return _coefList ; }
46 virtual ExtendMode extendMode()
const ;
48 virtual Double_t expectedEvents(
const RooArgSet* nset)
const ;
49 virtual Double_t expectedEvents(
const RooArgSet& nset)
const {
52 return expectedEvents(&nset) ;
55 virtual Bool_t selfNormalized()
const {
return getAttribute(
"BinnedLikelihoodActive") ; }
57 void printMetaArgs(std::ostream& os)
const ;
60 virtual std::list<Double_t>* binBoundaries(RooAbsRealLValue& , Double_t , Double_t )
const ;
61 virtual std::list<Double_t>* plotSamplingHint(RooAbsRealLValue& , Double_t , Double_t )
const ;
62 Bool_t isBinnedDistribution(
const RooArgSet& obs)
const ;
64 void setFloor(Bool_t flag) { _doFloor = flag ; }
65 Bool_t getFloor()
const {
return _doFloor ; }
66 static void setFloorGlobal(Bool_t flag) { _doFloorGlobal = flag ; }
67 static Bool_t getFloorGlobal() {
return _doFloorGlobal ; }
69 virtual CacheMode canNodeBeCached()
const {
return RooAbsArg::NotAdvised ; } ;
70 virtual void setCacheAndTrackHints(RooArgSet&) ;
74 class CacheElem :
public RooAbsCacheElement {
77 virtual ~CacheElem() {} ;
78 virtual RooArgList containedArgs(Action) { RooArgList ret(_funcIntList) ; ret.add(_funcNormList) ;
return ret ; }
79 RooArgList _funcIntList ;
80 RooArgList _funcNormList ;
82 mutable RooObjCacheManager _normIntMgr ;
85 RooListProxy _funcList ;
86 RooListProxy _coefList ;
90 static Bool_t _doFloorGlobal ;
94 bool haveLastCoef()
const {
95 return _funcList.size() == _coefList.size();
98 ClassDef(RooRealSumPdf, 4)