File indexing completed on 2026-08-06 09:20:07
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 #ifndef EVTRARELBTOLLLFF_HH
0022 #define EVTRARELBTOLLLFF_HH 1
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033 #include "EvtGenBase/EvtIdSet.hh"
0034 #include "EvtGenBase/EvtParticle.hh"
0035
0036 #include "EvtGenModels/EvtRareLbToLllFFBase.hh"
0037
0038 #include <array>
0039 #include <map>
0040 #include <memory>
0041 #include <string>
0042
0043 class EvtRareLbToLllFF : public EvtRareLbToLllFFBase {
0044 public:
0045 class FormFactorDependence final {
0046 public:
0047 FormFactorDependence();
0048
0049 FormFactorDependence( const double al, const double ap );
0050
0051 FormFactorDependence( const double a0, const double a2, const double a4,
0052 const double al, const double ap );
0053
0054 FormFactorDependence( const FormFactorDependence& other );
0055
0056 FormFactorDependence* clone() const;
0057
0058 void param( const double al, const double ap );
0059
0060 void param( const double a0, const double a2, const double a4,
0061 const double al, const double ap );
0062
0063 double a0_;
0064 double a2_;
0065 double a4_;
0066 double al_;
0067 double ap_;
0068 };
0069
0070 class FormFactorSet final {
0071 public:
0072 FormFactorSet();
0073
0074 FormFactorSet( const FormFactorSet& other );
0075
0076 EvtRareLbToLllFF::FormFactorDependence F1;
0077 EvtRareLbToLllFF::FormFactorDependence F2;
0078 EvtRareLbToLllFF::FormFactorDependence F3;
0079 EvtRareLbToLllFF::FormFactorDependence F4;
0080
0081 EvtRareLbToLllFF::FormFactorDependence G1;
0082 EvtRareLbToLllFF::FormFactorDependence G2;
0083 EvtRareLbToLllFF::FormFactorDependence G3;
0084 EvtRareLbToLllFF::FormFactorDependence G4;
0085
0086 EvtRareLbToLllFF::FormFactorDependence H1;
0087 EvtRareLbToLllFF::FormFactorDependence H2;
0088 EvtRareLbToLllFF::FormFactorDependence H3;
0089 EvtRareLbToLllFF::FormFactorDependence H4;
0090 EvtRareLbToLllFF::FormFactorDependence H5;
0091 EvtRareLbToLllFF::FormFactorDependence H6;
0092 };
0093
0094 void init() override;
0095
0096 void getFF( EvtParticle* parent, EvtParticle* lambda,
0097 EvtRareLbToLllFFBase::FormFactors& FF ) override;
0098
0099 private:
0100 double func( const double p, EvtRareLbToLllFF::FormFactorDependence& dep );
0101
0102 std::array<std::unique_ptr<EvtRareLbToLllFF::FormFactorSet>, 2> FF_;
0103 std::map<int, EvtRareLbToLllFF::FormFactorSet*> FFMap_;
0104
0105 void DiracFF( EvtParticle* parent, EvtParticle* lambda,
0106 EvtRareLbToLllFF::FormFactorSet& FFset,
0107 EvtRareLbToLllFF::FormFactors& FF );
0108
0109 void RaritaSchwingerFF( EvtParticle* parent, EvtParticle* lambda,
0110 EvtRareLbToLllFF::FormFactorSet& FFset,
0111 EvtRareLbToLllFF::FormFactors& FF );
0112 };
0113
0114 #endif