/*****************************************************************************
 * Project: RooFit                                                           *
 *                                                                           *
  * This code was autogenerated by RooClassFactory                            * 
 *****************************************************************************/

#ifndef ROO_PARAM_HIST_FUNC
#define ROO_PARAM_HIST_FUNC

#include "RooAbsPdf.h"
#include "RooRealProxy.h"
#include "RooCategoryProxy.h"
#include "RooAbsReal.h"
#include "RooAbsCategory.h"
#include "RooListProxy.h"
#include "RooSetProxy.h"
#include "RooDataHist.h"
 
class RooParamHistFunc : public RooAbsReal {
public:
  RooParamHistFunc() {} ; 
  RooParamHistFunc(const char *name, const char *title, RooDataHist& dh, Bool_t paramRelative=kTRUE);
  RooParamHistFunc(const char *name, const char *title, const RooAbsArg& x, RooDataHist& dh, Bool_t paramRelative=kTRUE);
  RooParamHistFunc(const char *name, const char *title, RooDataHist& dh, const RooParamHistFunc& paramSource, Bool_t paramRelative=kTRUE) ;
  RooParamHistFunc(const RooParamHistFunc& other, const char* name=0) ;
  virtual TObject* clone(const char* newname) const { return new RooParamHistFunc(*this,newname); }
  inline virtual ~RooParamHistFunc() { }

  virtual std::list<Double_t>* binBoundaries(RooAbsRealLValue& /*obs*/, Double_t /*xlo*/, Double_t /*xhi*/) const ;
  virtual std::list<Double_t>* plotSamplingHint(RooAbsRealLValue& obs, Double_t xlo, Double_t xhi) const ; 
  virtual Bool_t isBinnedDistribution(const RooArgSet&) const { return kTRUE ; }


  virtual Bool_t forceAnalyticalInt(const RooAbsArg&) const { return kTRUE ; }
  Int_t getAnalyticalIntegralWN(RooArgSet& allVars, RooArgSet& analVars, const RooArgSet* normSet,const char* rangeName=0) const ;
  Double_t analyticalIntegralWN(Int_t code, const RooArgSet* normSet, const char* rangeName=0) const ;

  Double_t getActual(Int_t ibin) ;
  void setActual(Int_t ibin, Double_t newVal) ;
  Double_t getNominal(Int_t ibin) const ;
  Double_t getNominalError(Int_t ibin) const ;

  const RooArgList& paramList() const { return _p ; }
  
 protected:

  friend class RooHistConstraint ;
 
  RooListProxy  _x ;
  RooListProxy _p ;
  RooDataHist _dh ;
  Bool_t _relParam ;
  
  Double_t evaluate() const ;

private:

  ClassDef(RooParamHistFunc,1) // Your description goes here...
};
 
#endif
 RooParamHistFunc.h:1
 RooParamHistFunc.h:2
 RooParamHistFunc.h:3
 RooParamHistFunc.h:4
 RooParamHistFunc.h:5
 RooParamHistFunc.h:6
 RooParamHistFunc.h:7
 RooParamHistFunc.h:8
 RooParamHistFunc.h:9
 RooParamHistFunc.h:10
 RooParamHistFunc.h:11
 RooParamHistFunc.h:12
 RooParamHistFunc.h:13
 RooParamHistFunc.h:14
 RooParamHistFunc.h:15
 RooParamHistFunc.h:16
 RooParamHistFunc.h:17
 RooParamHistFunc.h:18
 RooParamHistFunc.h:19
 RooParamHistFunc.h:20
 RooParamHistFunc.h:21
 RooParamHistFunc.h:22
 RooParamHistFunc.h:23
 RooParamHistFunc.h:24
 RooParamHistFunc.h:25
 RooParamHistFunc.h:26
 RooParamHistFunc.h:27
 RooParamHistFunc.h:28
 RooParamHistFunc.h:29
 RooParamHistFunc.h:30
 RooParamHistFunc.h:31
 RooParamHistFunc.h:32
 RooParamHistFunc.h:33
 RooParamHistFunc.h:34
 RooParamHistFunc.h:35
 RooParamHistFunc.h:36
 RooParamHistFunc.h:37
 RooParamHistFunc.h:38
 RooParamHistFunc.h:39
 RooParamHistFunc.h:40
 RooParamHistFunc.h:41
 RooParamHistFunc.h:42
 RooParamHistFunc.h:43
 RooParamHistFunc.h:44
 RooParamHistFunc.h:45
 RooParamHistFunc.h:46
 RooParamHistFunc.h:47
 RooParamHistFunc.h:48
 RooParamHistFunc.h:49
 RooParamHistFunc.h:50
 RooParamHistFunc.h:51
 RooParamHistFunc.h:52
 RooParamHistFunc.h:53
 RooParamHistFunc.h:54
 RooParamHistFunc.h:55
 RooParamHistFunc.h:56
 RooParamHistFunc.h:57
 RooParamHistFunc.h:58
 RooParamHistFunc.h:59
 RooParamHistFunc.h:60
 RooParamHistFunc.h:61