00001 #ifndef ROO_RELBREITWIGNER
00002 #define ROO_RELBREITWIGNER
00003
00004 #include "RooFitCore/RooAbsPdf.hh"
00005 #include "RooFitCore/RooRealProxy.hh"
00006
00007 class RooRealVar;
00008
00009 class RooRelBreitWigner : public RooAbsPdf {
00010
00011 public:
00012 RooRelBreitWigner(const char *name,
00013 const char *title,
00014 RooAbsReal& _x,
00015 RooAbsReal& _mean,
00016 RooAbsReal& _width,
00017 RooAbsReal& _radius,
00018 RooAbsReal& _mass_a,
00019 RooAbsReal& _mass_b,
00020 RooAbsReal& _spin);
00021 RooRelBreitWigner(const RooRelBreitWigner& other,
00022 const char* name=0) ;
00023 virtual TObject* clone(const char* newname) const {
00024 return new RooRelBreitWigner(*this,newname);
00025 }
00026 inline virtual ~RooRelBreitWigner() { }
00027
00028 protected:
00029
00030 RooRealProxy x ;
00031 RooRealProxy mean ;
00032 RooRealProxy width ;
00033 RooRealProxy radius ;
00034 RooRealProxy mass_a ;
00035 RooRealProxy mass_b ;
00036 RooRealProxy spin ;
00037
00038 Double_t evaluate() const ;
00039
00040 private:
00041 Double_t getWidth() const;
00042 Double_t getQterm(Double_t q, Double_t q0) const;
00043 Double_t getFF(Double_t q) const;
00044 Double_t getQ(Double_t mass) const;
00045
00046 ClassDef(RooRelBreitWigner,0)
00047 };
00048
00049 #endif