evtgen
is hosted by
Hepforge
,
IPPP Durham
Home
Documentation
Downloads
Repository
Bug tracker
Join the mailing list
Contact the developers
Licence
Acknowledgements
EvtGen
2.0.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
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>(),
_amp
( amp.
clone
() )
34
{
35
}
36
EvtAmpPdf
(
const
EvtAmpPdf<T>
&
other
) :
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
:
51
EvtAmplitude<T>
*
_amp
;
52
};
53
54
#endif
EvtAmpPdf::EvtAmpPdf
EvtAmpPdf(const EvtAmplitude< T > &)
Definition:
EvtAmpPdf.hh:33
EvtAmpPdf::EvtAmpPdf
EvtAmpPdf()
Definition:
EvtAmpPdf.hh:32
EvtAmplitude.hh
EvtPdf.hh
EvtAmpPdf::EvtAmpPdf
EvtAmpPdf(const EvtAmpPdf< T > &other)
Definition:
EvtAmpPdf.hh:36
EvtAmpPdf::_amp
EvtAmplitude< T > * _amp
Definition:
EvtAmpPdf.hh:51
EvtAmpPdf::clone
EvtAmpPdf< T > * clone() const override
Definition:
EvtAmpPdf.hh:42
EvtAmpPdf
Definition:
EvtAmpPdf.hh:30
EvtMacros.hh
EvtAmplitude
Definition:
EvtAmplitude.hh:29
EvtAmpPdf::pdf
double pdf(const T &p) const override
Definition:
EvtAmpPdf.hh:44
imag
double imag(const EvtComplex &c)
Definition:
EvtComplex.hh:235
COPY_PTR
#define COPY_PTR(X)
Definition:
EvtMacros.hh:26
EvtPdf
Definition:
EvtPdf.hh:72
EvtComplex
Definition:
EvtComplex.hh:29
real
double real(const EvtComplex &c)
Definition:
EvtComplex.hh:230
EvtAmpPdf::~EvtAmpPdf
virtual ~EvtAmpPdf()
Definition:
EvtAmpPdf.hh:40
EvtCyclic3::other
Index other(Index i, Index j)
Definition:
EvtCyclic3.cpp:156
Generated by
1.8.15