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
EvtEtaLLPiPi.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_ETALLPIPI_HH
22#define EVT_ETALLPIPI_HH
23
26
27#include <string>
28
29class EvtParticle;
30
31// eta' -> mu+ mu- pi+ pi- or e+ e- pi+ pi-
32// From Zhang Zhen-Yu et al, Chinese Phys. C 36, p926, 2012
33
34class EvtEtaLLPiPi : public EvtDecayProb {
35 public:
36 EvtEtaLLPiPi() = default;
37
38 void init() override;
39 void initProbMax() override;
40
41 std::string getName() const override;
42 EvtDecayBase* clone() const override;
43
44 void decay( EvtParticle* p ) override;
45
46 private:
47 void updateMassPars( double mLep, double mPi );
48
49 double rhoWidth( double s, double m ) const;
50
51 double F0( double sLL, double sPiPi ) const;
52
53 double lambda( double a, double b, double c ) const;
54
55 double ampSquared( EvtParticle* p ) const;
56
57 double m_alpha{ 1.0 / 137.0 };
58 double m_eSq{ 4.0 * EvtConst::pi * m_alpha };
59 double m_fPi{ 0.0924 };
60 double m_f8{ 1.3 * m_fPi };
61 double m_f0{ 1.04 * m_fPi };
62 double m_thetaMix{ 20.0 * EvtConst::pi / 180.0 };
63 double m_mixSq{ 0.0 };
64 double m_c1{ 1.0 };
65 double m_c2{ 0.0 };
66 double m_c3{ m_c1 - m_c2 }; // Eq 9
67 double m_par1{ 1.0 - ( 3.0 * ( m_c1 - m_c2 + m_c3 ) / 4.0 ) };
68 double m_parLL{ 3.0 * ( m_c1 - m_c2 - m_c3 ) / 4.0 };
69 double m_parPiPi{ 3.0 * m_c3 / 2.0 };
70 double m_rhoMass{ 0.775 }; // updated in init()
72 double m_rhoGamma{ 0.149 }; // updated in init()
73 double m_lepMass{ 0.106 }; // modified in updateMassPars()
75 double m_piMass{ 0.140 }; // modified in updateMassPars()
77 double m_4LepMassSq{ 4.0 * m_lepMassSq };
78 double m_4PiMassSq{ 4.0 * m_piMassSq };
79};
80
81#endif
static const double pi
Definition EvtConst.hh:26
EvtDecayBase()=default
double m_piMassSq
double lambda(double a, double b, double c) const
void decay(EvtParticle *p) override
double F0(double sLL, double sPiPi) const
EvtEtaLLPiPi()=default
void init() override
double ampSquared(EvtParticle *p) const
double rhoWidth(double s, double m) const
double m_4LepMassSq
void initProbMax() override
double m_rhoMassSq
double m_lepMassSq
double m_4PiMassSq
std::string getName() const override
EvtDecayBase * clone() const override
double m_thetaMix
double m_rhoGamma
void updateMassPars(double mLep, double mPi)