|
EvtGen
2.0.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
|
Go to the documentation of this file. 38 a0_( 0 ), a2_( 0 ), a4_( 0 ), al_( 0 ), ap_( 0 ) 44 a0_( 0 ), a2_( 0 ), a4_( 0 ), al_( al ), ap_( ap ) 53 a0_( a0 ), a2_( a2 ), a4_( a4 ), al_( al ), ap_( ap ) 119 auto L1115 = std::make_unique<EvtRareLbToLllFF::FormFactorSet>(); 120 L1115->F1.param( 1.21, 0.319, -0.0177, 0.387, 0.372 ); 121 L1115->F2.param( -0.202, -0.219, 0.0103, 0.387, 0.372 ); 122 L1115->F3.param( -0.0615, 0.00102, -0.00139, 0.387, 0.372 ); 123 L1115->F4.param( 0.387, 0.372 ); 124 L1115->G1.param( 0.927, 0.104, -0.00553, 0.387, 0.372 ); 125 L1115->G2.param( -0.236, -0.233, 0.0110, 0.387, 0.372 ); 126 L1115->G3.param( 0.0756, 0.0195, -0.00115, 0.387, 0.372 ); 127 L1115->G4.param( 0.387, 0.372 ); 128 L1115->H1.param( 0.936, 0.0722, -0.00643, 0.387, 0.372 ); 129 L1115->H2.param( 0.227, 0.265, -0.0101, 0.387, 0.372 ); 130 L1115->H3.param( -0.0757, -0.0195, 0.00116, 0.387, 0.372 ); 131 L1115->H4.param( -0.0174, -0.00986, -0.000524, 0.387, 0.372 ); 132 L1115->H5.param( 0.387, 0.372 ); 133 L1115->H6.param( 0.387, 0.372 ); 136 auto L1520 = std::make_unique<EvtRareLbToLllFF::FormFactorSet>(); 137 L1520->F1.param( -1.66, -0.295, 0.00924, 0.333, 0.308 ); 138 L1520->F2.param( 0.544, 0.194, -0.00420, 0.333, 0.308 ); 139 L1520->F3.param( 0.126, 0.00799, -0.000635, 0.333, 0.308 ); 140 L1520->F4.param( -0.0330, -0.00977, 0.00211, 0.303, 0.308 ); 141 L1520->G1.param( -0.964, -0.100, 0.00264, 0.333, 0.308 ); 142 L1520->G2.param( 0.625, 0.219, -0.00508, 0.333, 0.308 ); 143 L1520->G3.param( -0.183, -0.0380, 0.00351, 0.333, 0.308 ); 144 L1520->G4.param( 0.0530, 0.0161, -0.00221, 0.333, 0.308 ); 145 L1520->H1.param( -1.08, -0.0732, 0.00464, 0.333, 0.308 ); 146 L1520->H2.param( -0.507, -0.246, 0.00309, 0.333, 0.308 ); 147 L1520->H3.param( 0.187, 0.0295, -0.00107, 0.333, 0.308 ); 148 L1520->H4.param( 0.0772, 0.0267, -0.00217, 0.333, 0.308 ); 149 L1520->H5.param( -0.0517, -0.0173, 0.00259, 0.333, 0.308 ); 150 L1520->H6.param( 0.0206, 0.00679, -0.000220, 0.333, 0.308 ); 157 FF_ = {std::move( L1115 ), std::move( L1520 )}; 160 << " EvtRareLbToLll is using form factors from arXiv:1108.6129 " 169 static const double mq = 0.2848; 170 static const double mtilde = 1.122; 172 const double asq = 0.5 * ( dep. al_ * dep. al_ + dep. ap_ * dep. ap_ ); 173 const double psq = p * p; 175 return ( dep. a0_ + dep. a2_ * psq + dep. a4_ * psq * psq ) * 176 exp( -( 3. * mq * mq * psq ) / ( 2. * mtilde * mtilde * asq ) ); 183 const double M = lambda->mass(); 184 const double MB = parent-> mass(); 187 const double p = lambda->getP4().d3mag(); 197 const double H1 = func( p, dep. H1 ); 198 const double H2 = func( p, dep. H2 ); 199 const double H3 = func( p, dep. H3 ); 200 const double H4 = func( p, dep. H4 ); 203 FF. FT_[0] = -( MB + M ) * H1 - ( MB - M * vdotv ) * H2 - 204 ( MB * vdotv - M ) * H3; 205 FF. FT_[1] = MB * H1 + ( MB - M ) * H2 + ( MB * vdotv - M ) * H4; 206 FF. FT_[2] = M * H1 + ( MB - M ) * H3 - ( MB - M * vdotv ) * H4; 208 FF. GT_[0] = ( MB - M ) * H1 - M * ( 1. - vdotv ) * H2 - 209 MB * ( 1. - vdotv ) * H3; 210 FF. GT_[1] = MB * H1 - M * H2 - MB * H3; 211 FF. GT_[2] = M * H1 + M * H2 + MB * H3; 213 FF. FT_[0] = ( MB - M ) * H1 - ( MB - M * vdotv ) * H2 - 214 ( MB * vdotv - M ) * H3; 215 FF. FT_[1] = MB * H1 - ( MB + M ) * H2 + ( MB * vdotv - M ) * H4; 216 FF. FT_[2] = M * H1 - ( MB + M ) * H3 - ( MB - M * vdotv ) * H4; 218 FF. GT_[0] = -( MB + M ) * H1 + M * ( 1. + vdotv ) * H2 + 219 MB * ( 1. + vdotv ) * H3; 220 FF. GT_[1] = MB * H1 - M * H2 - MB * H3; 221 FF. GT_[2] = M * H1 - M * H2 - MB * H3; 230 const double M = lambda->mass(); 231 const double MB = parent-> mass(); 234 const double p = lambda->getP4().d3mag(); 246 const double H1 = func( p, FFset. H1 ); 247 const double H2 = func( p, FFset. H2 ); 248 const double H3 = func( p, FFset. H3 ); 249 const double H4 = func( p, FFset. H4 ); 250 const double H5 = func( p, FFset. H5 ); 251 const double H6 = func( p, FFset. H6 ); 254 FF. FT_[0] = -( MB + M ) * H1 - ( MB - M * vdotv ) * H2 - 255 ( MB * vdotv - M ) * H3 - MB * H5; 256 FF. FT_[1] = MB * H1 + ( MB - M ) * H2 + ( MB * vdotv - M ) * H4 - MB * H6; 257 FF. FT_[2] = M * H1 + ( MB - M ) * H3 - ( MB - M * vdotv ) * H4; 258 FF. FT_[3] = ( MB - M ) * H5 + ( MB - M * vdotv ) * H6; 260 FF. GT_[0] = ( MB - M ) * H1 - M * ( 1. - vdotv ) * H2 - 261 MB * ( 1. - vdotv ) * H3 + MB * H5 + M * H6; 262 FF. GT_[1] = MB * H1 - M * H2 - MB * H3; 263 FF. GT_[2] = M * H1 + M * H2 + MB * H3 - M * H6; 264 FF. GT_[3] = ( MB + M ) * H5 + M * ( 1. + vdotv ) * H6; 266 FF. FT_[0] = ( MB - M ) * H1 - ( MB - M * vdotv ) * H2 - 267 ( MB * vdotv - M ) * H3 - MB * H5; 268 FF. FT_[1] = MB * H1 - ( MB + M ) * H2 + ( MB * vdotv - M ) * H4 - MB * H6; 269 FF. FT_[2] = M * H1 - ( MB + M ) * H3 - ( MB - M * vdotv ) * H4; 270 FF. FT_[3] = -( MB + M ) * H5 + ( MB - M * vdotv ) * H6; 272 FF. GT_[0] = -( MB + M ) * H1 + M * ( 1. + vdotv ) * H2 + 273 MB * ( 1. + vdotv ) * H3 + MB * H5 + M * H6; 274 FF. GT_[1] = MB * H1 - M * H2 - MB * H3; 275 FF. GT_[2] = M * H1 - M * H2 - MB * H3 - M * H6; 276 FF. GT_[3] = -( MB - M ) * H5 - M * ( 1. - vdotv ) * H6; 289 if ( it == FFMap_.end() ) { 291 << " EvtRareLbToLll does not contain FF for " << lambda->getId() 305 << " EvtRareLbToLll expects DIRAC or RARITASWINGER daughter " void DiracFF(EvtParticle *parent, EvtParticle *lambda, EvtRareLbToLllFF::FormFactorSet &FFset, EvtRareLbToLllFF::FormFactors &FF)
std::map< int, EvtRareLbToLllFF::FormFactorSet * > FFMap_
static EvtSpinType::spintype getSpinType(EvtId i)
std::array< std::unique_ptr< EvtRareLbToLllFF::FormFactorSet >, 2 > FF_
std::ostream & EvtGenReport(EvtGenSeverity severity, const char *facility=0)
double calculateVdotV(EvtParticle *parent, EvtParticle *lambda) const
void RaritaSchwingerFF(EvtParticle *parent, EvtParticle *lambda, EvtRareLbToLllFF::FormFactorSet &FFset, EvtRareLbToLllFF::FormFactors &FF)
double func(const double p, EvtRareLbToLllFF::FormFactorDependence &dep)
void getFF(EvtParticle *parent, EvtParticle *lambda, EvtRareLbToLllFFBase::FormFactors &FF) override
static EvtId getId(const std::string &name)
double lambda(double q, double m1, double m2)
EvtComplex exp(const EvtComplex &c)
bool isNatural(EvtParticle *lambda)
Index other(Index i, Index j)
|