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
EvtMassAmp.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_MASSAMP_HH
22#define EVT_MASSAMP_HH
23
28
29#include <memory>
30// Relativistic lineshape for a two-body decay of a resonance to two
31// pseudoscalars. The mass dependence of the width and the vertex factors
32// are included in the calculation.
33
34class EvtMassAmp : public EvtAmplitude<EvtPoint1D> {
35 public:
36 EvtMassAmp( const EvtPropBreitWignerRel& prop, const EvtTwoBodyVertex& vd );
37 EvtMassAmp( const EvtMassAmp& other );
38 EvtMassAmp& operator=( const EvtMassAmp& other );
39
40 EvtComplex amplitude( const EvtPoint1D& p ) const override;
41
43 {
44 return new EvtMassAmp( *this );
45 }
46
47 void setBirthVtx( const EvtTwoBodyVertex& vb )
48 {
49 m_vb = std::make_unique<EvtTwoBodyVertex>( vb );
50 }
51
52 void addBirthFact() { m_useBirthFact = true; }
53 void addDeathFact() { m_useDeathFact = true; }
56
57 private:
60 std::unique_ptr<EvtTwoBodyVertex> m_vb;
61
66};
67
68#endif
std::unique_ptr< EvtTwoBodyVertex > m_vb
Definition EvtMassAmp.hh:60
EvtMassAmp(const EvtPropBreitWignerRel &prop, const EvtTwoBodyVertex &vd)
void addDeathFactFF()
Definition EvtMassAmp.hh:55
void setBirthVtx(const EvtTwoBodyVertex &vb)
Definition EvtMassAmp.hh:47
EvtPropBreitWignerRel m_prop
Definition EvtMassAmp.hh:58
bool m_useDeathFactFF
Definition EvtMassAmp.hh:65
bool m_useBirthFactFF
Definition EvtMassAmp.hh:64
EvtTwoBodyVertex m_vd
Definition EvtMassAmp.hh:59
EvtAmplitude< EvtPoint1D > * clone() const override
Definition EvtMassAmp.hh:42
bool m_useBirthFact
Definition EvtMassAmp.hh:62
EvtComplex amplitude(const EvtPoint1D &p) const override
void addBirthFactFF()
Definition EvtMassAmp.hh:54
bool m_useDeathFact
Definition EvtMassAmp.hh:63
void addBirthFact()
Definition EvtMassAmp.hh:52
EvtMassAmp & operator=(const EvtMassAmp &other)
void addDeathFact()
Definition EvtMassAmp.hh:53