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.
EvtD0gammaDalitz.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 __EVTD0GAMMADALITZ_HH__
22 #define __EVTD0GAMMADALITZ_HH__
23 
24 #include "EvtGenBase/EvtCyclic3.hh"
27 #include "EvtGenBase/EvtFlatte.hh"
29 
30 #include <vector>
31 
32 class EvtParticle;
33 
34 class EvtD0gammaDalitz : public EvtDecayAmp {
35  private:
36  int _d1;
37  int _d2;
38  int _d3;
39 
40  bool _isKsPiPi;
41 
42  // Useful constants.
46 
49 
51  static const EvtDalitzReso::NumType& _GS;
53 
54  static const EvtCyclic3::Pair& _AB;
55  static const EvtCyclic3::Pair& _AC;
56  static const EvtCyclic3::Pair& _BC;
57 
58  // Values to be read or computed based on values in the evt.pdl file.
59  // IDs of the relevant particles.
74 
75  // Flavor of the B mother.
77 
78  // Masses of the relevant particles.
79  double _mD0;
80  double _mKs;
81  double _mPi;
82  double _mK;
83 
84  void readPDGValues();
85  void reportInvalidAndExit() const;
86 
87  EvtComplex dalitzKsPiPi( const EvtDalitzPoint& point ) const;
88  EvtComplex dalitzKsKK( const EvtDalitzPoint& point ) const;
89 
90  public:
91  std::string getName() override;
92  EvtDecayBase* clone() override;
93 
94  void init() override;
95  void initProbMax() override;
96 
97  void decay( EvtParticle* p ) override;
98 };
99 
100 #endif
static const EvtDalitzReso::CouplingType & _PicPicKK
static const EvtDalitzReso::NumType & _KMAT
static const EvtCyclic3::Pair & _AB
EvtDecayBase * clone() override
static const EvtSpinType::spintype & _SCALAR
EvtComplex dalitzKsKK(const EvtDalitzPoint &point) const
void init() override
static const EvtCyclic3::Pair & _BC
static const EvtCyclic3::Pair & _AC
Definition: EvtId.hh:27
static const EvtDalitzReso::CouplingType & _EtaPic
void decay(EvtParticle *p) override
static const EvtSpinType::spintype & _TENSOR
static const EvtDalitzReso::NumType & _RBW
void initProbMax() override
std::string getName() override
static const EvtDalitzReso::NumType & _GS
static const EvtSpinType::spintype & _VECTOR
EvtComplex dalitzKsPiPi(const EvtDalitzPoint &point) const
void reportInvalidAndExit() const