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.
EvtRareLbToLllFF.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 EVTRARELBTOLLLFF_HH
22 #define EVTRARELBTOLLLFF_HH 1
23 
24 // Include files
25 
33 #include "EvtGenBase/EvtIdSet.hh"
35 
37 
38 #include <array>
39 #include <map>
40 #include <memory>
41 #include <string>
42 
44  public:
45  class FormFactorDependence final {
46  public:
48 
49  FormFactorDependence( const double al, const double ap );
50 
51  FormFactorDependence( const double a0, const double a2, const double a4,
52  const double al, const double ap );
53 
55 
56  FormFactorDependence* clone() const;
57 
58  void param( const double al, const double ap );
59 
60  void param( const double a0, const double a2, const double a4,
61  const double al, const double ap );
62 
63  double a0_;
64  double a2_;
65  double a4_;
66  double al_;
67  double ap_;
68  };
69 
70  class FormFactorSet final {
71  public:
72  FormFactorSet();
73 
75 
80 
85 
92  };
93 
94  void init() override;
95 
96  void getFF( EvtParticle* parent, EvtParticle* lambda,
97  EvtRareLbToLllFFBase::FormFactors& FF ) override;
98 
99  private:
100  double func( const double p, EvtRareLbToLllFF::FormFactorDependence& dep );
101 
102  std::array<std::unique_ptr<EvtRareLbToLllFF::FormFactorSet>, 2> FF_;
103  std::map<int, EvtRareLbToLllFF::FormFactorSet*> FFMap_;
104 
105  void DiracFF( EvtParticle* parent, EvtParticle* lambda,
108 
112 };
113 
114 #endif // EVTRARELBTOLLLFF_HH
void DiracFF(EvtParticle *parent, EvtParticle *lambda, EvtRareLbToLllFF::FormFactorSet &FFset, EvtRareLbToLllFF::FormFactors &FF)
EvtRareLbToLllFF::FormFactorDependence F2
EvtRareLbToLllFF::FormFactorDependence G1
std::map< int, EvtRareLbToLllFF::FormFactorSet * > FFMap_
EvtRareLbToLllFF::FormFactorDependence H1
std::array< std::unique_ptr< EvtRareLbToLllFF::FormFactorSet >, 2 > FF_
EvtRareLbToLllFF::FormFactorDependence H5
EvtRareLbToLllFF::FormFactorDependence F1
EvtRareLbToLllFF::FormFactorDependence G3
EvtRareLbToLllFF::FormFactorDependence H6
const double a2
EvtRareLbToLllFF::FormFactorDependence H2
void param(const double al, const double ap)
void RaritaSchwingerFF(EvtParticle *parent, EvtParticle *lambda, EvtRareLbToLllFF::FormFactorSet &FFset, EvtRareLbToLllFF::FormFactors &FF)
double func(const double p, EvtRareLbToLllFF::FormFactorDependence &dep)
EvtRareLbToLllFF::FormFactorDependence H3
void getFF(EvtParticle *parent, EvtParticle *lambda, EvtRareLbToLllFFBase::FormFactors &FF) override
EvtRareLbToLllFF::FormFactorDependence F3
EvtRareLbToLllFF::FormFactorDependence F4
const double a4
FormFactorDependence * clone() const
EvtRareLbToLllFF::FormFactorDependence H4
double lambda(double q, double m1, double m2)
Definition: EvtFlatQ2.cpp:31
void init() override
EvtRareLbToLllFF::FormFactorDependence G4
Index other(Index i, Index j)
Definition: EvtCyclic3.cpp:156
EvtRareLbToLllFF::FormFactorDependence G2