25 class RooKeysPdf :
public RooAbsPdf {
27 enum Mirror { NoMirror, MirrorLeft, MirrorRight, MirrorBoth,
28 MirrorAsymLeft, MirrorAsymLeftRight,
29 MirrorAsymRight, MirrorLeftAsymRight,
32 RooKeysPdf(
const char *name,
const char *title,
33 RooAbsReal& x, RooDataSet& data, Mirror mirror= NoMirror,
35 RooKeysPdf(
const char *name,
const char *title,
36 RooAbsReal& x, RooRealVar& xdata, RooDataSet& data, Mirror mirror= NoMirror,
38 RooKeysPdf(
const RooKeysPdf& other,
const char* name=0);
39 virtual TObject* clone(
const char* newname)
const {
return new RooKeysPdf(*
this,newname); }
40 virtual ~RooKeysPdf();
42 virtual Int_t getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars,
43 const char* rangeName = 0)
const;
44 virtual Double_t analyticalIntegral(Int_t code,
const char* rangeName = 0)
const;
45 virtual Int_t getMaxVal(
const RooArgSet& vars)
const;
46 virtual Double_t maxVal(Int_t code)
const;
48 void LoadDataSet( RooDataSet& data);
53 Double_t evaluate()
const;
58 static const Double_t _nSigma;
66 enum { _nPoints = 1000 };
67 Double_t _lookupTable[_nPoints+1];
69 Double_t g(Double_t x,Double_t sigma)
const;
71 Bool_t _mirrorLeft, _mirrorRight;
72 Bool_t _asymLeft, _asymRight;
76 Double_t _lo, _hi, _binWidth;
79 ClassDef(RooKeysPdf,2)