12 #ifndef ROO_PARAMHISTFUNC
13 #define ROO_PARAMHISTFUNC
28 class ParamHistFunc :
public RooAbsReal {
32 ParamHistFunc(
const char *name,
const char *title,
const RooArgList& vars,
const RooArgList& paramSet );
33 ParamHistFunc(
const char *name,
const char *title,
const RooArgList& vars,
const RooArgList& paramSet,
const TH1* hist );
34 virtual ~ParamHistFunc() ;
36 ParamHistFunc(
const ParamHistFunc& other,
const char* name = 0);
37 virtual TObject* clone(
const char* newname)
const {
return new ParamHistFunc(*
this, newname); }
39 const RooArgList& paramList()
const {
return _paramSet ; }
41 Int_t numBins()
const {
return _dataSet.numEntries(); }
43 void setParamConst( Int_t, Bool_t=kTRUE );
44 void setConstant(
bool constant);
46 void setShape(TH1* shape);
48 RooRealVar& getParameter()
const ;
49 RooRealVar& getParameter( Int_t masterIdx )
const ;
51 const RooArgSet*
get(Int_t masterIdx)
const {
return _dataSet.get( masterIdx ) ; }
52 const RooArgSet*
get(
const RooArgSet& coord)
const {
return _dataSet.get( coord ) ; }
54 double binVolume()
const {
return _dataSet.binVolume(); }
56 virtual Bool_t forceAnalyticalInt(
const RooAbsArg&)
const {
return kTRUE ; }
58 Int_t getAnalyticalIntegralWN(RooArgSet& allVars, RooArgSet& analVars,
const RooArgSet* normSet,
const char* rangeName=0)
const ;
59 Double_t analyticalIntegralWN(Int_t code,
const RooArgSet* normSet,
const char* rangeName=0)
const ;
61 static RooArgList createParamSet(RooWorkspace& w,
const std::string&,
const RooArgList& Vars);
62 static RooArgList createParamSet(RooWorkspace& w,
const std::string&,
const RooArgList& Vars, Double_t, Double_t);
63 static RooArgList createParamSet(
const std::string&, Int_t, Double_t, Double_t);
65 virtual std::list<Double_t>* binBoundaries(RooAbsRealLValue& , Double_t , Double_t )
const ;
66 virtual std::list<Double_t>* plotSamplingHint(RooAbsRealLValue& obs, Double_t xlo, Double_t xhi)
const ;
67 virtual Bool_t isBinnedDistribution(
const RooArgSet& )
const {
return kTRUE;}
72 class CacheElem :
public RooAbsCacheElement {
75 virtual ~CacheElem() {} ;
76 virtual RooArgList containedArgs(Action) {
77 RooArgList ret(_funcIntList) ;
79 ret.add(_highIntList);
82 RooArgList _funcIntList ;
83 RooArgList _lowIntList ;
84 RooArgList _highIntList ;
87 mutable RooObjCacheManager _normIntMgr ;
91 RooListProxy _dataVars;
92 RooListProxy _paramSet ;
96 mutable std::map<Int_t, Int_t> _binMap;
97 mutable RooDataHist _dataSet;
101 RooArgList _ownedList ;
103 Int_t getCurrentBin()
const ;
104 Int_t addVarSet(
const RooArgList& vars );
105 Int_t addParamSet(
const RooArgList& params );
106 static Int_t GetNumBins(
const RooArgSet& vars );
107 Double_t evaluate()
const;
109 ClassDef(ParamHistFunc,5)