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.
EvtPropSLPole.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 EVTPROPSLPOLE_HH
22 #define EVTPROPSLPOLE_HH
23 
25 #include "EvtGenBase/EvtPoint1D.hh"
28 
29 #include <memory>
30 
31 class Evtparticle;
32 
33 // Description:Semileptonic decays with pole form form factors
34 
35 class EvtPropSLPole : public EvtDecayAmp {
36  public:
37  std::string getName() override;
38  EvtDecayBase* clone() override;
39 
40  void decay( EvtParticle* p ) override;
41  void initProbMax() override;
42  void init() override;
43 
44  double calBreitWigner( EvtParticle* pmeson, EvtPoint1D point );
45  double calBreitWignerBasic( double maxMass );
46 
47  double calcMaxProb( EvtId parent, EvtId meson, EvtId lepton, EvtId nudaug,
48  EvtSemiLeptonicFF* FormFactors );
49 
50  private:
53  double _mass;
54  double _massMin;
55  double _massMax;
56  double _width;
57  double _maxRange;
59 
60  double _blatt;
62 
63  std::unique_ptr<EvtSemiLeptonicFF> SLPoleffmodel;
64  std::unique_ptr<EvtSemiLeptonicAmp> calcamp;
65 };
66 
67 #endif
void initProbMax() override
double calBreitWignerBasic(double maxMass)
std::unique_ptr< EvtSemiLeptonicAmp > calcamp
Definition: EvtId.hh:27
std::unique_ptr< EvtSemiLeptonicFF > SLPoleffmodel
double calcMaxProb(EvtId parent, EvtId meson, EvtId lepton, EvtId nudaug, EvtSemiLeptonicFF *FormFactors)
bool _includeDecayFact
std::string getName() override
void init() override
bool _includeBirthFact
void decay(EvtParticle *p) override
EvtSpinType::spintype _spin
EvtDecayBase * clone() override
double calBreitWigner(EvtParticle *pmeson, EvtPoint1D point)