Skip to content

Commit d6239cd

Browse files
committed
allow obs to be specified in extended binding
1 parent af43461 commit d6239cd

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

roofit/roofitcore/inc/RooExtendedBinding.h

+3
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,22 @@
1414
#include "RooAbsReal.h"
1515
#include "RooRealProxy.h"
1616
#include "RooCategoryProxy.h"
17+
#include "RooSetProxy.h"
1718
#include "RooAbsPdf.h"
1819
#include "RooAbsCategory.h"
1920

2021
class RooExtendedBinding : public RooAbsReal {
2122
public:
2223
RooExtendedBinding() {} ;
2324
RooExtendedBinding(const char *name, const char *title, RooAbsPdf& _pdf);
25+
RooExtendedBinding(const char *name, const char *title, RooAbsPdf& _pdf, const RooArgSet& _obs);
2426
RooExtendedBinding(const RooExtendedBinding& other, const char* name=nullptr) ;
2527
TObject* clone(const char* newname=nullptr) const override { return new RooExtendedBinding(*this,newname); }
2628

2729
protected:
2830

2931
RooRealProxy pdf ;
32+
RooSetProxy _obsList;
3033

3134
double evaluate() const override ;
3235

roofit/roofitcore/src/RooExtendedBinding.cxx

+10-2
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,18 @@
2222
{
2323
}
2424

25+
RooExtendedBinding::RooExtendedBinding(const char *name, const char *title, RooAbsPdf& _pdf, const RooArgSet& obs) :
26+
RooAbsReal(name,title),
27+
pdf("pdf","pdf",this,_pdf),
28+
_obsList("obsList", "List of observables", this)
29+
{
30+
_obsList.add(obs);
31+
}
2532

2633
RooExtendedBinding::RooExtendedBinding(const RooExtendedBinding& other, const char* name) :
2734
RooAbsReal(other,name),
28-
pdf("pdf",this,other.pdf)
35+
pdf("pdf",this,other.pdf),
36+
_obsList("obsList", this, other._obsList)
2937
{
3038
}
3139

@@ -34,7 +42,7 @@
3442
double RooExtendedBinding::evaluate() const
3543
{
3644
// ENTER EXPRESSION IN TERMS OF VARIABLE ARGUMENTS HERE
37-
return (const_cast<RooAbsPdf &>(static_cast<RooAbsPdf const&>(pdf.arg()))).expectedEvents(nullptr) ;
45+
return (const_cast<RooAbsPdf &>(static_cast<RooAbsPdf const&>(pdf.arg()))).expectedEvents(_obsList.empty() ? nullptr : &_obsList) ;
3846
}
3947

4048

0 commit comments

Comments
 (0)