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