24 class RooJohnson final :
public RooAbsPdf {
28 RooJohnson(
const char *name,
const char *title,
29 RooAbsReal& mass, RooAbsReal& mu, RooAbsReal& lambda,
30 RooAbsReal& gamma, RooAbsReal& delta,
31 double massThreshold = -std::numeric_limits<double>::max());
33 RooJohnson(
const RooJohnson& other,
const char* newName =
nullptr);
35 virtual ~RooJohnson() =
default;
37 TObject* clone(
const char* newname)
const override {
38 return new RooJohnson(*
this,newname);
41 Int_t getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars,
const char* rangeName=0)
const override;
42 Double_t analyticalIntegral(Int_t code,
const char* rangeName=0)
const override;
44 Int_t getGenerator(
const RooArgSet& directVars, RooArgSet &generateVars, Bool_t staticInitOK=kTRUE)
const override;
45 void generateEvent(Int_t code)
override;
48 enum AnaInt_t {kMass = 1, kMean, kLambda, kGamma, kDelta};
57 double _massThreshold{-1.E300};
59 Double_t evaluate()
const override;
60 RooSpan<double> evaluateBatch(std::size_t begin, std::size_t end)
const override;
62 ClassDefOverride(RooJohnson,1)