EvtGen 2.2.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
Loading...
Searching...
No Matches
EvtAmpPdf.hh
Go to the documentation of this file.
1
2/***********************************************************************
3* Copyright 1998-2020 CERN for the benefit of the EvtGen authors *
4* *
5* This file is part of EvtGen. *
6* *
7* EvtGen is free software: you can redistribute it and/or modify *
8* it under the terms of the GNU General Public License as published by *
9* the Free Software Foundation, either version 3 of the License, or *
10* (at your option) any later version. *
11* *
12* EvtGen is distributed in the hope that it will be useful, *
13* but WITHOUT ANY WARRANTY; without even the implied warranty of *
14* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15* GNU General Public License for more details. *
16* *
17* You should have received a copy of the GNU General Public License *
18* along with EvtGen. If not, see <https://www.gnu.org/licenses/>. *
19***********************************************************************/
20
21#ifndef EVT_AMP_PDF_HH
22#define EVT_AMP_PDF_HH
23
26#include "EvtGenBase/EvtPdf.hh"
27
28template <class T>
29
30class EvtAmpPdf : public EvtPdf<T> {
31 public:
33 EvtAmpPdf( const EvtAmplitude<T>& amp ) : EvtPdf<T>(), m_amp( amp.clone() )
34 {
35 }
36 EvtAmpPdf( const EvtAmpPdf<T>& other ) :
37 EvtPdf<T>( other ), COPY_PTR( m_amp )
38 {
39 }
40 virtual ~EvtAmpPdf() { delete m_amp; }
41
42 EvtAmpPdf<T>* clone() const override { return new EvtAmpPdf( *this ); }
43
44 double pdf( const T& p ) const override
45 {
46 EvtComplex amp = m_amp->evaluate( p );
47 return real( amp ) * real( amp ) + imag( amp ) * imag( amp );
48 }
49
50 private:
52};
53
54#endif
double imag(const EvtComplex &c)
double real(const EvtComplex &c)
#define COPY_PTR(X)
Definition EvtMacros.hh:26
EvtAmpPdf(const EvtAmpPdf< T > &other)
Definition EvtAmpPdf.hh:36
EvtAmpPdf(const EvtAmplitude< T > &amp)
Definition EvtAmpPdf.hh:33
EvtAmplitude< T > * m_amp
Definition EvtAmpPdf.hh:51
EvtAmpPdf< T > * clone() const override
Definition EvtAmpPdf.hh:42
virtual ~EvtAmpPdf()
Definition EvtAmpPdf.hh:40
double pdf(const T &p) const override
Definition EvtAmpPdf.hh:44
EvtPdf()
Definition EvtPdf.hh:74