41 ClassImp(RooRangeBoolean);
48 RooRangeBoolean::RooRangeBoolean()
55 RooRangeBoolean::RooRangeBoolean(
const char* name,
const char* title, RooAbsRealLValue& x,
const char* rangeName) :
56 RooAbsReal(name, title),
57 _x(
"x",
"Dependent", this, x),
67 RooRangeBoolean::RooRangeBoolean(
const RooRangeBoolean& other,
const char* name) :
68 RooAbsReal(other, name),
69 _x(
"x", this, other._x),
70 _rangeName(other._rangeName)
80 RooRangeBoolean::~RooRangeBoolean()
90 Double_t RooRangeBoolean::evaluate()
const
92 Double_t xmin = ((RooAbsRealLValue&)_x.arg()).getMin(_rangeName.Data()) ;
93 Double_t xmax = ((RooAbsRealLValue&)_x.arg()).getMax(_rangeName.Data()) ;
95 Double_t ret = (_x >= xmin && _x < xmax) ? 1.0 : 0.0 ;
103 std::list<Double_t>* RooRangeBoolean::plotSamplingHint(RooAbsRealLValue& obs, Double_t , Double_t )
const
105 if (
string(obs.GetName())!=_x.arg().GetName()) {
109 list<Double_t>* hint =
new list<Double_t> ;
110 hint->push_back(((RooAbsRealLValue&)_x.arg()).getMin(_rangeName.Data())-1e-6) ;
111 hint->push_back(((RooAbsRealLValue&)_x.arg()).getMin(_rangeName.Data())+1e-6) ;
112 hint->push_back(((RooAbsRealLValue&)_x.arg()).getMax(_rangeName.Data())-1e-6) ;
113 hint->push_back(((RooAbsRealLValue&)_x.arg()).getMax(_rangeName.Data())+1e-6) ;