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.
EvtRareLbToLll.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 EVTRARELBTOLLL_HH
22 #define EVTRARELBTOLLL_HH 1
23 
24 #include "EvtGenBase/EvtAmp.hh"
27 
30 
31 #include <memory>
32 
33 // Description:
34 // Implements the rare Lb --> Lambda^(*) ell ell models described in
35 // http://arxiv.org/pdf/1108.6129.pdf
36 
37 class EvtRareLbToLll : public EvtDecayAmp {
38  public:
39  std::string getName() override;
40 
41  EvtDecayBase* clone() override;
42 
43  void init() override;
44 
45  void initProbMax() override;
46 
47  void decay( EvtParticle* parent ) override;
48 
49  protected:
50  void calcAmp( EvtAmp& amp, EvtParticle* parent );
51 
53  const int i, const int j );
54 
56  EvtVector4C* T, const int i, const int j );
57 
58  bool isParticle( EvtParticle* parent ) const;
59 
60  private:
62 
63  std::unique_ptr<EvtRareLbToLllFFBase> ffmodel_;
64  std::unique_ptr<EvtRareLbToLllWC> wcmodel_;
65 };
66 #endif //
void decay(EvtParticle *parent) override
void HadronicAmp(EvtParticle *parent, EvtParticle *lambda, EvtVector4C *T, const int i, const int j)
std::unique_ptr< EvtRareLbToLllWC > wcmodel_
void HadronicAmpRS(EvtParticle *parent, EvtParticle *lambda, EvtVector4C *T, const int i, const int j)
bool isParticle(EvtParticle *parent) const
void calcAmp(EvtAmp &amp, EvtParticle *parent)
std::unique_ptr< EvtRareLbToLllFFBase > ffmodel_
double m_maxProbability
std::string getName() override
void init() override
void initProbMax() override
EvtDecayBase * clone() override
Definition: EvtAmp.hh:30
double lambda(double q, double m1, double m2)
Definition: EvtFlatQ2.cpp:31