Changeset View
Changeset View
Standalone View
Standalone View
src/EvtGenModels/EvtRareLbToLllFFGutsche.cpp
/*********************************************************************** | /*********************************************************************** | ||||
* Copyright 1998-2020 CERN for the benefit of the EvtGen authors * | * Copyright 1998-2022 CERN for the benefit of the EvtGen authors * | ||||
* * | * * | ||||
* This file is part of EvtGen. * | * This file is part of EvtGen. * | ||||
* * | * * | ||||
* EvtGen is free software: you can redistribute it and/or modify * | * EvtGen is free software: you can redistribute it and/or modify * | ||||
* it under the terms of the GNU General Public License as published by * | * it under the terms of the GNU General Public License as published by * | ||||
* the Free Software Foundation, either version 3 of the License, or * | * the Free Software Foundation, either version 3 of the License, or * | ||||
* (at your option) any later version. * | * (at your option) any later version. * | ||||
* * | * * | ||||
Show All 17 Lines | |||||
// | // | ||||
// 2014-10-21 : Michal Kreps | // 2014-10-21 : Michal Kreps | ||||
//----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||||
//============================================================================= | //============================================================================= | ||||
// Standard constructor, initializes variables | // Standard constructor, initializes variables | ||||
//============================================================================= | //============================================================================= | ||||
EvtIdSet EvtRareLbToLllFFGutsche::fParents( "Lambda_b0", "anti-Lambda_b0" ); | |||||
EvtIdSet EvtRareLbToLllFFGutsche::fDaughters( "Lambda0", "anti-Lambda0" ); | |||||
void EvtRareLbToLllFFGutsche::init() | void EvtRareLbToLllFFGutsche::init() | ||||
{ | { | ||||
fVconsts[0][0] = 0.107; | fVconsts[0][0] = 0.107; | ||||
fVconsts[0][1] = 2.27; | fVconsts[0][1] = 2.27; | ||||
fVconsts[0][2] = 1.367; | fVconsts[0][2] = 1.367; | ||||
fVconsts[1][0] = 0.043; | fVconsts[1][0] = 0.043; | ||||
fVconsts[1][1] = 2.411; | fVconsts[1][1] = 2.411; | ||||
fVconsts[1][2] = 1.531; | fVconsts[1][2] = 1.531; | ||||
Show All 33 Lines | void EvtRareLbToLllFFGutsche::init() | ||||
EvtGenReport( EVTGEN_INFO, "EvtGen" ) | EvtGenReport( EVTGEN_INFO, "EvtGen" ) | ||||
<< " EvtRareLbToLll is using form factors from arXiv:1301.3737 " | << " EvtRareLbToLll is using form factors from arXiv:1301.3737 " | ||||
<< std::endl; | << std::endl; | ||||
} | } | ||||
//============================================================================= | //============================================================================= | ||||
void EvtRareLbToLllFFGutsche::getFF( EvtParticle* parent, EvtParticle* lambda, | void EvtRareLbToLllFFGutsche::getFF( const EvtParticle& parent, | ||||
EvtRareLbToLllFFBase::FormFactors& FF ) | const EvtParticle& lambda, | ||||
EvtRareLbToLllFFBase::FormFactors& FF ) const | |||||
{ | { | ||||
// Find the FF information for this particle, start by setting all to zero | // Find the FF information for this particle, start by setting all to zero | ||||
FF.areZero(); | FF.areZero(); | ||||
/* | /* | ||||
if ( ! ( fParents.contains(parent->getId()) && | if ( ! ( fParents.contains(parent->getId()) && | ||||
fDaughters.contains(lambda->getId()) ) ) | fDaughters.contains(lambda->getId()) ) ) | ||||
{ | { | ||||
EvtGenReport(EVTGEN_ERROR,"EvtGen") << " EvtRareLbToLllFFGutsche: Unknown mother and/or daughter. " << std::endl; | EvtGenReport(EVTGEN_ERROR,"EvtGen") << " EvtRareLbToLllFFGutsche: Unknown mother and/or daughter. " << std::endl; | ||||
return; | return; | ||||
} | } | ||||
*/ | */ | ||||
double m1 = parent->getP4().mass(); | const double m1 = parent.getP4().mass(); | ||||
double m2 = lambda->getP4().mass(); | const double m2 = lambda.getP4().mass(); | ||||
EvtVector4R p4parent; | EvtVector4R p4parent; | ||||
p4parent.set( parent->mass(), 0, 0, 0 ); | p4parent.set( parent.mass(), 0, 0, 0 ); | ||||
double q2 = ( p4parent - lambda->getP4() ).mass2(); | const double q2 = ( p4parent - lambda.getP4() ).mass2(); | ||||
double m21 = m2 / m1; | const double m21 = m2 / m1; | ||||
double shat = q2 / m1 / m1; | const double shat = q2 / m1 / m1; | ||||
double fV[3]; | double fV[3]; | ||||
double fA[3]; | double fA[3]; | ||||
for ( int i = 0; i <= 2; ++i ) { | for ( int i = 0; i <= 2; ++i ) { | ||||
fV[i] = formFactorParametrization( shat, fVconsts[i][0], fVconsts[i][1], | fV[i] = formFactorParametrization( shat, fVconsts[i][0], fVconsts[i][1], | ||||
fVconsts[i][2] ); | fVconsts[i][2] ); | ||||
fA[i] = formFactorParametrization( shat, fAconsts[i][0], fAconsts[i][1], | fA[i] = formFactorParametrization( shat, fAconsts[i][0], fAconsts[i][1], | ||||
fAconsts[i][2] ); | fAconsts[i][2] ); | ||||
Show All 22 Lines | */ | ||||
FF.GT_[0] = -fTA[1] * ( m1 - m2 ) + fTA[0] * ( q2 / m1 ); | FF.GT_[0] = -fTA[1] * ( m1 - m2 ) + fTA[0] * ( q2 / m1 ); | ||||
FF.GT_[1] = -fTA[1] * m1 + fTA[0] * ( m1 + m2 ); | FF.GT_[1] = -fTA[1] * m1 + fTA[0] * ( m1 + m2 ); | ||||
FF.GT_[2] = -fTA[0] * m2 * m21 - m2 * ( fTA[0] + fTA[1] ); | FF.GT_[2] = -fTA[0] * m2 * m21 - m2 * ( fTA[0] + fTA[1] ); | ||||
return; | return; | ||||
} | } | ||||
double EvtRareLbToLllFFGutsche::formFactorParametrization( double s, double f0, | double EvtRareLbToLllFFGutsche::formFactorParametrization( const double s, | ||||
double a, double b ) | const double f0, | ||||
const double a, | |||||
const double b ) const | |||||
{ | { | ||||
return f0 / ( 1 - a * s + b * s * s ); | return f0 / ( 1 - a * s + b * s * s ); | ||||
} | } |