Go to the documentation of this file. 1 #ifndef CombineTools_Process_h
2 #define CombineTools_Process_h
7 #include "RooAbsReal.h"
8 #include "RooAbsData.h"
9 #include "RooRealVar.h"
27 if (pdf_ && !dynamic_cast<RooAbsPdf*>(pdf_) && cached_obs_) {
29 cached_int_ = pdf_->createIntegral(RooArgSet(*cached_obs_));
31 base = cached_int_->getVal();
33 return norm_ ? base * norm_->getVal() * rate_ : base * rate_;
52 TH1
const*
shape()
const {
return shape_.get(); }
60 RooAbsReal
const*
pdf()
const {
return pdf_; }
63 RooAbsData
const*
data()
const {
return data_; }
66 RooAbsReal
const*
norm()
const {
return norm_; }
73 static std::ostream&
PrintHeader(std::ostream &out);
77 std::unique_ptr<TH1> shape_;
81 RooRealVar* cached_obs_;
82 mutable RooAbsReal* cached_int_;
friend std::ostream & operator<<(std::ostream &out, Process const &val)
friend void swap(Process &first, Process &second)
void set_shape(std::unique_ptr< TH1 > shape, bool set_rate)
TH1 const * shape() const
void set_rate(double const &rate)
std::string to_string() const
RooAbsData const * data() const
RooRealVar * observable() const
double no_norm_rate() const
Get the process normalisation without multiplying by the RooAbsReal value (in the case that it's pres...
void set_observable(RooRealVar *obs)
Process & operator=(Process other)
std::unique_ptr< TH1 > ClonedScaledShape() const
RooAbsReal const * pdf() const
std::unique_ptr< TH1 > ClonedShape() const
static std::ostream & PrintHeader(std::ostream &out)
void set_norm(RooAbsReal *norm)
void set_pdf(RooAbsReal *pdf)
RooAbsReal const * norm() const
void set_data(RooAbsData *data)