evtgen is hosted by Hepforge, IPPP Durham
EvtGen  2.0.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
EvtBtoKD3P.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_BTOKD3P
22 #define EVT_BTOKD3P
23 
24 class EvtParticle;
25 #include "EvtGenBase/EvtComplex.hh"
27 
28 // Decay model that does the decay B+ -> K+ D , D -> 3 psudoscalars.
29 //
30 // The B- daughters specified in the decay file should be K-, D0, D0,
31 // where the first D0 is produced via b->c decay and the second via b->u.
32 // In reality, only one D daughter exists, so the first two
33 // daughters must be defined to decay to the same final state using
34 // the EvtPto3P model, but with CP-conjugate amplitudes.
35 //
36 // For a given point in the Pto3P Dalitz plot,
37 // the total amplitude is \propto [A1 + A2 r exp(i(phase))], where
38 //
39 // A1 & A2 are the amplitudes of the D0 and D0bar to decay into that
40 // Dalitz plot point,
41 //
42 // r is the (positive) ratio between the A(B->B0bar K) and A(B->D0 K)
43 // B decay amplitudes,
44 //
45 // phase is the total phase difference (weak phase + strong phase) between
46 // A(B->D0bar K) and A(B->B0 K).
47 //
48 // Note that this model knows nothing about your convention for the
49 // sign of the phase, so when specifying the decay of a B- you need to
50 // change the order of D0 and D0bar and change the total phase so that
51 // the sign of the weak phase flips with respect to the parameters of B+.
52 
53 class EvtBtoKD3P : public EvtDecayAmp {
54  public:
55  EvtDecayBase* clone() override;
56 
57  // Initialize model
58  void init() override;
59  void initProbMax() override;
60  void decay( EvtParticle* p ) override;
61 
62  // we really have two daughters, although three are listed in the .dec file:
63  int nRealDaughters() override { return 2; }
64 
65  std::string getName() override;
66 
67  protected:
68  // parameters:
69  double _r;
71 
72  // other:
73  const EvtDecayBase* _model1 = nullptr;
74  const EvtDecayBase* _model2 = nullptr;
75  bool _decayedOnce = false;
76 };
77 
78 #endif
EvtComplex _exp
Definition: EvtBtoKD3P.hh:70
bool _decayedOnce
Definition: EvtBtoKD3P.hh:75
std::string getName() override
Definition: EvtBtoKD3P.cpp:44
double _r
Definition: EvtBtoKD3P.hh:69
const EvtDecayBase * _model2
Definition: EvtBtoKD3P.hh:74
void decay(EvtParticle *p) override
Definition: EvtBtoKD3P.cpp:77
void init() override
Definition: EvtBtoKD3P.cpp:50
void initProbMax() override
Definition: EvtBtoKD3P.cpp:71
EvtDecayBase * clone() override
Definition: EvtBtoKD3P.cpp:38
const EvtDecayBase * _model1
Definition: EvtBtoKD3P.hh:73
int nRealDaughters() override
Definition: EvtBtoKD3P.hh:63