evtgen is hosted by Hepforge, IPPP Durham
EvtGen  2.0.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
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 
25 #include "EvtGenBase/EvtMacros.hh"
26 #include "EvtGenBase/EvtPdf.hh"
27 
28 template <class T>
29 
30 class EvtAmpPdf : public EvtPdf<T> {
31  public:
32  EvtAmpPdf() {}
33  EvtAmpPdf( const EvtAmplitude<T>& amp ) : EvtPdf<T>(), _amp( amp.clone() )
34  {
35  }
37  EvtPdf<T>( other ), COPY_PTR( _amp )
38  {
39  }
40  virtual ~EvtAmpPdf() { delete _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 = _amp->evaluate( p );
47  return real( amp ) * real( amp ) + imag( amp ) * imag( amp );
48  }
49 
50  private:
52 };
53 
54 #endif
EvtAmpPdf(const EvtAmplitude< T > &amp)
Definition: EvtAmpPdf.hh:33
EvtAmpPdf(const EvtAmpPdf< T > &other)
Definition: EvtAmpPdf.hh:36
EvtAmplitude< T > * _amp
Definition: EvtAmpPdf.hh:51
EvtAmpPdf< T > * clone() const override
Definition: EvtAmpPdf.hh:42
double pdf(const T &p) const override
Definition: EvtAmpPdf.hh:44
double imag(const EvtComplex &c)
Definition: EvtComplex.hh:235
#define COPY_PTR(X)
Definition: EvtMacros.hh:26
Definition: EvtPdf.hh:72
double real(const EvtComplex &c)
Definition: EvtComplex.hh:230
virtual ~EvtAmpPdf()
Definition: EvtAmpPdf.hh:40
Index other(Index i, Index j)
Definition: EvtCyclic3.cpp:156