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
EvtGenModels
EvtSVVNONCPEIGEN.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 EVTSVVNONCPEIGEN_HH
22
#define EVTSVVNONCPEIGEN_HH
23
24
#include "
EvtGenBase/EvtDecayAmp.hh
"
25
26
class
EvtParticle
;
27
28
// Description: Routine to decay scalar -> vector vector
29
// and has CP violation.
30
//
31
// This model does all the ckm-suppressed decays and mixing for you. It randomly 'overwrites'
32
// any reco or tagging state as set in the Y(4S) decay model (VSS_(B)MIX) with its own generated states.
33
//
34
// As such, the corresponding dec file requires only one decay-mode description, for example:
35
// Decay MyB0
36
// 1.000 rho+ MyD*- SVV_NONCPEIGEN dm beta gamma 0.322 0.31 0.941 0 0.107 1.42 0.02 0 0.02 0 0.02 0 ;
37
// EndDecay
38
// and furthermore Y(4S) only needs to decay to B0's (or B0bar's).
39
// The decay above should be a CKM-favored mode (eg. B0->D*-rho+ or B0bar->D*+rho-).
40
// All ckm-suppressed decays and the mixing are derived from this line in the ::Decay function.
41
//
42
// There are 15 or 27 arguments. The first three are dm, phase1
43
// and phase2. dm is the B0-B0bar mass difference. Phases 1
44
// and 2 are the CKM weak phases relevant for the particular mode,
45
// eg for B-->DstRho phase1 is beta and phase2 is gamma.
46
//
47
// The next arguments are the 2 amplitudes (= 12 input parameters)
48
// in the order: A_f, Abar_f. In the example above, the 'A_f' amplitude now
49
// stands for the ckm-favored decay 'B0->D*-rho+', and 'Abar_f' stands for 'B0bar->D*-rho+'
50
//
51
// Each amplitude has its 3 helicity states in the order +, 0, -, which are each
52
// specified by a magnitude and a strong phase.
53
//
54
// The last 2 arguments A_fbar and Abar_fbar (=12 input parameters) are not necessary,
55
// but can included if one wants to set them differently from A_f, Abar_f.
56
//
57
// Mind you that Hbar_+- = H_-+ (ignoring the weak phase, which flips sign).
58
// It is custumary to select one set of helicity states (eg H_+-) and to adopt these for
59
// the CP-conjugate decays as well (ie. depict Hbar_-+ with H_+-), which is the interpretation
60
// we use for the input-parameters above.
61
// However, the angular decay in EvtGen is just a formula in which helicity amplitudes are 'plugged' in,
62
// making no difference between B0 or B0bar decays. In the model below we (thus) account for the +-
63
// flipping between B0 and B0bar.
64
65
class
EvtSVVNONCPEIGEN
:
public
EvtDecayAmp
{
66
public
:
67
std::string
getName
()
const override
;
68
EvtDecayBase
*
clone
()
const override
;
69
70
void
initProbMax
()
override
;
71
void
init
()
override
;
72
73
void
decay
(
EvtParticle
* p )
override
;
74
75
std::string
getParamName
(
int
i )
override
;
76
std::string
getParamDefault
(
int
i )
override
;
77
78
private
:
79
EvtComplex
m_A_f
[12];
80
};
81
82
#endif
EvtDecayAmp.hh
EvtComplex
Definition
EvtComplex.hh:29
EvtDecayAmp
Definition
EvtDecayAmp.hh:29
EvtDecayBase::EvtDecayBase
EvtDecayBase()=default
EvtParticle
Definition
EvtParticle.hh:45
EvtSVVNONCPEIGEN
Definition
EvtSVVNONCPEIGEN.hh:65
EvtSVVNONCPEIGEN::getName
std::string getName() const override
Definition
EvtSVVNONCPEIGEN.cpp:37
EvtSVVNONCPEIGEN::getParamName
std::string getParamName(int i) override
Definition
EvtSVVNONCPEIGEN.cpp:168
EvtSVVNONCPEIGEN::clone
EvtDecayBase * clone() const override
Definition
EvtSVVNONCPEIGEN.cpp:42
EvtSVVNONCPEIGEN::m_A_f
EvtComplex m_A_f[12]
Definition
EvtSVVNONCPEIGEN.hh:79
EvtSVVNONCPEIGEN::init
void init() override
Definition
EvtSVVNONCPEIGEN.cpp:47
EvtSVVNONCPEIGEN::initProbMax
void initProbMax() override
Definition
EvtSVVNONCPEIGEN.cpp:83
EvtSVVNONCPEIGEN::decay
void decay(EvtParticle *p) override
Definition
EvtSVVNONCPEIGEN.cpp:94
EvtSVVNONCPEIGEN::getParamDefault
std::string getParamDefault(int i) override
Definition
EvtSVVNONCPEIGEN.cpp:230
Generated by
1.16.1