/******************************************************************************* * Project: BaBar detector at the SLAC PEP-II B-factory * Package: EvtGenBase * File: $Id: EvtAmpPdf.hh,v 1.5 2003/06/20 17:19:59 dvoretsk Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech *******************************************************************************/ #ifndef EVT_AMP_PDF_HH #define EVT_AMP_PDF_HH #include "EvtGenBase/EvtMacros.hh" #include "EvtGenBase/EvtAmplitude.hh" #include "EvtGenBase/EvtPdf.hh" template class EvtAmpPdf : public EvtPdf { public: EvtAmpPdf() {} EvtAmpPdf(const EvtAmplitude& amp) : EvtPdf(), _amp(amp.clone()) {} EvtAmpPdf(const EvtAmpPdf& other) : EvtPdf(other), COPY_PTR(_amp) {} virtual ~EvtAmpPdf() { delete _amp; } virtual EvtAmpPdf* clone() const { return new EvtAmpPdf(*this); } virtual double pdf(const T& p) const { EvtComplex amp = _amp->evaluate(p); return real(amp)*real(amp) + imag(amp)*imag(amp); } private: EvtAmplitude* _amp; }; #endif