00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef ROO_CONV_COEF_VAR
00017 #define ROO_CONV_COEF_VAR
00018
00019 #include "Riosfwd.h"
00020 #include <math.h>
00021 #include <float.h>
00022
00023 #include "RooAbsReal.h"
00024 #include "RooRealVar.h"
00025 #include "RooRealProxy.h"
00026 #include "RooSetProxy.h"
00027 class RooAbsAnaConvPdf ;
00028
00029 class RooConvCoefVar : public RooAbsReal {
00030 public:
00031
00032 inline RooConvCoefVar() {
00033
00034 }
00035 RooConvCoefVar(const char *name, const char *title, const RooAbsAnaConvPdf& input, Int_t coefIdx, const RooArgSet* varList=0) ;
00036 RooConvCoefVar(const RooConvCoefVar& other, const char* name=0);
00037 virtual TObject* clone(const char* newname) const { return new RooConvCoefVar(*this,newname); }
00038 virtual ~RooConvCoefVar() {
00039
00040 } ;
00041
00042 virtual Double_t getVal(const RooArgSet* nset=0) const ;
00043
00044 virtual Double_t evaluate() const ;
00045 virtual Int_t getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars, const char* rangeName=0) const ;
00046 virtual Double_t analyticalIntegral(Int_t code, const char* rangeName=0) const ;
00047
00048 protected:
00049
00050 RooSetProxy _varSet ;
00051 RooRealProxy _convPdf ;
00052 Int_t _coefIdx ;
00053
00054 ClassDef(RooConvCoefVar,1)
00055 };
00056
00057 #endif