16 #ifndef ROO_RESOLUTION_MODEL
17 #define ROO_RESOLUTION_MODEL
24 class RooAbsAnaConvPdf;
26 class RooResolutionModel :
public RooAbsPdf {
30 inline RooResolutionModel() : _basis(0) { }
31 RooResolutionModel(
const char *name,
const char *title, RooRealVar& x) ;
32 RooResolutionModel(
const RooResolutionModel& other,
const char* name=0);
33 virtual TObject* clone(
const char* newname)
const = 0 ;
34 virtual ~RooResolutionModel();
36 virtual RooAbsGenContext* modelGenContext(
const RooAbsAnaConvPdf&,
const RooArgSet&,
37 const RooDataSet*,
const RooArgSet*,
38 Bool_t)
const {
return 0; }
40 Double_t getValV(
const RooArgSet* nset=0)
const ;
41 virtual RooResolutionModel* convolution(RooFormulaVar* basis, RooAbsArg* owner)
const ;
42 RooRealVar& convVar()
const ;
43 const RooRealVar& basisConvVar()
const ;
45 inline Bool_t isBasisSupported(
const char* name)
const {
return basisCode(name)?kTRUE:kFALSE ; }
46 virtual Int_t basisCode(
const char* name)
const = 0 ;
48 virtual void normLeafServerList(RooArgSet& list)
const ;
49 Double_t getNorm(
const RooArgSet* nset=0)
const ;
51 inline const RooFormulaVar& basis()
const {
return _basis?*_basis:*identity() ; }
52 Bool_t isConvolved() {
return _basis ? kTRUE : kFALSE ; }
54 virtual void printMultiline(std::ostream& os, Int_t content, Bool_t verbose=kFALSE, TString indent=
"")
const ;
56 static RooFormulaVar* identity() ;
58 virtual void changeBasis(RooFormulaVar* basis) ;
62 friend class RooConvGenContext ;
63 friend class RooAddModel ;
66 virtual Bool_t redirectServersHook(
const RooAbsCollection& newServerList, Bool_t mustReplaceAll, Bool_t nameChange, Bool_t isRecursive) ;
70 friend class RooAbsAnaConvPdf ;
73 RooFormulaVar* _basis ;
76 ClassDef(RooResolutionModel,1)