EvtGen
2.2.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
Toggle main menu visibility
Loading...
Searching...
No Matches
EvtGenBase
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
24
#include "
EvtGenBase/EvtAmplitude.hh
"
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>(),
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
:
51
EvtAmplitude<T>
*
m_amp
;
52
};
53
54
#endif
EvtAmplitude.hh
imag
double imag(const EvtComplex &c)
Definition
EvtComplex.hh:237
real
double real(const EvtComplex &c)
Definition
EvtComplex.hh:232
EvtMacros.hh
COPY_PTR
#define COPY_PTR(X)
Definition
EvtMacros.hh:26
EvtPdf.hh
EvtAmpPdf::EvtAmpPdf
EvtAmpPdf()
Definition
EvtAmpPdf.hh:32
EvtAmpPdf::EvtAmpPdf
EvtAmpPdf(const EvtAmpPdf< T > &other)
Definition
EvtAmpPdf.hh:36
EvtAmpPdf::EvtAmpPdf
EvtAmpPdf(const EvtAmplitude< T > &)
Definition
EvtAmpPdf.hh:33
EvtAmpPdf::m_amp
EvtAmplitude< T > * m_amp
Definition
EvtAmpPdf.hh:51
EvtAmpPdf::clone
EvtAmpPdf< T > * clone() const override
Definition
EvtAmpPdf.hh:42
EvtAmpPdf::~EvtAmpPdf
virtual ~EvtAmpPdf()
Definition
EvtAmpPdf.hh:40
EvtAmpPdf::pdf
double pdf(const T &p) const override
Definition
EvtAmpPdf.hh:44
EvtAmplitude
Definition
EvtAmplitude.hh:29
EvtComplex
Definition
EvtComplex.hh:29
EvtPdf::EvtPdf
EvtPdf()
Definition
EvtPdf.hh:74
Generated by
1.17.0