16 #ifndef ROO_REAL_SUM_FUNC
17 #define ROO_REAL_SUM_FUNC
24 class RooRealSumFunc :
public RooAbsReal {
27 RooRealSumFunc(
const char *name,
const char *title);
28 RooRealSumFunc(
const char *name,
const char *title,
const RooArgList &funcList,
const RooArgList &coefList);
29 RooRealSumFunc(
const char *name,
const char *title, RooAbsReal &func1, RooAbsReal &func2, RooAbsReal &coef1);
30 RooRealSumFunc(
const RooRealSumFunc &other,
const char *name = 0);
31 virtual TObject *clone(
const char *newname)
const {
return new RooRealSumFunc(*
this, newname); }
32 virtual ~RooRealSumFunc();
34 Double_t evaluate()
const;
35 virtual Bool_t checkObservables(
const RooArgSet *nset)
const;
37 virtual Bool_t forceAnalyticalInt(
const RooAbsArg &arg)
const {
return arg.isFundamental(); }
38 Int_t getAnalyticalIntegralWN(RooArgSet &allVars, RooArgSet &numVars,
const RooArgSet *normSet,
39 const char *rangeName = 0)
const;
40 Double_t analyticalIntegralWN(Int_t code,
const RooArgSet *normSet,
const char *rangeName = 0)
const;
42 const RooArgList &funcList()
const {
return _funcList; }
43 const RooArgList &coefList()
const {
return _coefList; }
45 void printMetaArgs(std::ostream &os)
const;
47 virtual std::list<Double_t> *binBoundaries(RooAbsRealLValue & , Double_t , Double_t )
const;
48 virtual std::list<Double_t> *plotSamplingHint(RooAbsRealLValue & , Double_t , Double_t )
const;
49 Bool_t isBinnedDistribution(
const RooArgSet &obs)
const;
51 void setFloor(Bool_t flag) { _doFloor = flag; }
52 Bool_t getFloor()
const {
return _doFloor; }
53 static void setFloorGlobal(Bool_t flag) { _doFloorGlobal = flag; }
54 static Bool_t getFloorGlobal() {
return _doFloorGlobal; }
56 virtual CacheMode canNodeBeCached()
const {
return RooAbsArg::NotAdvised; };
57 virtual void setCacheAndTrackHints(RooArgSet &);
60 class CacheElem :
public RooAbsCacheElement {
63 virtual ~CacheElem(){};
64 virtual RooArgList containedArgs(Action)
66 RooArgList ret(_funcIntList);
67 ret.add(_funcNormList);
70 RooArgList _funcIntList;
71 RooArgList _funcNormList;
73 mutable RooObjCacheManager _normIntMgr;
77 RooListProxy _funcList;
78 RooListProxy _coefList;
83 static Bool_t _doFloorGlobal;
86 ClassDef(RooRealSumFunc, 3)