16 #ifndef ROO_TRUTH_MODEL
17 #define ROO_TRUTH_MODEL
21 class RooTruthModel :
public RooResolutionModel {
24 enum RooTruthBasis { noBasis=0, expBasisMinus= 1, expBasisSum= 2, expBasisPlus= 3,
25 sinBasisMinus=11, sinBasisSum=12, sinBasisPlus=13,
26 cosBasisMinus=21, cosBasisSum=22, cosBasisPlus=23,
29 coshBasisMinus=51,coshBasisSum=52,coshBasisPlus=53,
30 sinhBasisMinus=61,sinhBasisSum=62,sinhBasisPlus=63,
33 enum BasisType { none=0, expBasis=1, sinBasis=2, cosBasis=3,
34 linBasis=4, quadBasis=5, coshBasis=6, sinhBasis=7 } ;
35 enum BasisSign { Both=0, Plus=+1, Minus=-1 } ;
38 inline RooTruthModel() { }
39 RooTruthModel(
const char *name,
const char *title, RooRealVar& x) ;
40 RooTruthModel(
const RooTruthModel& other,
const char* name=0);
41 virtual TObject* clone(
const char* newname)
const {
return new RooTruthModel(*
this,newname) ; }
42 virtual ~RooTruthModel();
44 virtual Int_t basisCode(
const char* name)
const ;
46 virtual RooAbsGenContext* modelGenContext(
const RooAbsAnaConvPdf& convPdf,
const RooArgSet &vars,
47 const RooDataSet *prototype=0,
const RooArgSet* auxProto=0,
48 Bool_t verbose= kFALSE)
const;
50 Int_t getGenerator(
const RooArgSet& directVars, RooArgSet &generateVars, Bool_t staticInitOK=kTRUE)
const;
51 void generateEvent(Int_t code);
53 Int_t getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars,
const char* rangeName=0)
const ;
54 Double_t analyticalIntegral(Int_t code,
const char* rangeName=0)
const ;
57 virtual Double_t evaluate()
const ;
58 virtual void changeBasis(RooFormulaVar* basis) ;
60 ClassDef(RooTruthModel,1)