Page MenuHomeHEPForge

D84.1759141446.diff
No OneTemporary

Size
33 KB
Referenced Files
None
Subscribers
None

D84.1759141446.diff

diff --git a/EvtGenBase/EvtIdSet.hh b/EvtGenBase/EvtIdSet.hh
--- a/EvtGenBase/EvtIdSet.hh
+++ b/EvtGenBase/EvtIdSet.hh
@@ -131,8 +131,8 @@
EvtIdSet( const EvtIdSet& set1 );
EvtIdSet( const EvtIdSet& set1, const EvtIdSet& set2 );
- int contains( const EvtId id );
- int contains( const std::string id );
+ int contains( const EvtId id ) const;
+ int contains( const std::string id ) const;
void append( const EvtIdSet set1 );
int sizeOfSet() const;
diff --git a/EvtGenBase/EvtParticle.hh b/EvtGenBase/EvtParticle.hh
--- a/EvtGenBase/EvtParticle.hh
+++ b/EvtGenBase/EvtParticle.hh
@@ -171,7 +171,8 @@
/**
* Get pointer the the i:th daugther.
*/
- EvtParticle* getDaug( int i );
+ const EvtParticle* getDaug( const int i ) const { return _daug[i]; }
+ EvtParticle* getDaug( const int i ) { return _daug[i]; }
/**
* Iterates over the particles in a decay chain.
diff --git a/EvtGenModels/EvtRareLbToLll.hh b/EvtGenModels/EvtRareLbToLll.hh
--- a/EvtGenModels/EvtRareLbToLll.hh
+++ b/EvtGenModels/EvtRareLbToLll.hh
@@ -47,18 +47,20 @@
void decay( EvtParticle* parent ) override;
protected:
- void calcAmp( EvtAmp& amp, EvtParticle* parent );
+ void calcAmp( EvtAmp& amp, const EvtParticle& parent );
- void HadronicAmp( EvtParticle* parent, EvtParticle* lambda, EvtVector4C* T,
- const int i, const int j );
+ void HadronicAmp( const EvtParticle& parent, const EvtParticle& lambda,
+ EvtVector4C* T, const int i, const int j );
- void HadronicAmpRS( EvtParticle* parent, EvtParticle* lambda,
+ void HadronicAmpRS( const EvtParticle& parent, const EvtParticle& lambda,
EvtVector4C* T, const int i, const int j );
- bool isParticle( EvtParticle* parent ) const;
+ bool isParticle( const EvtParticle& parent ) const;
private:
double m_maxProbability;
+ double m_poleSize{ 0.00005 };
+ bool m_electronMode{ false };
std::unique_ptr<EvtRareLbToLllFFBase> ffmodel_;
std::unique_ptr<EvtRareLbToLllWC> wcmodel_;
diff --git a/EvtGenModels/EvtRareLbToLllFF.hh b/EvtGenModels/EvtRareLbToLllFF.hh
--- a/EvtGenModels/EvtRareLbToLllFF.hh
+++ b/EvtGenModels/EvtRareLbToLllFF.hh
@@ -1,6 +1,6 @@
/***********************************************************************
-* 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. *
* *
@@ -93,22 +93,23 @@
void init() override;
- void getFF( EvtParticle* parent, EvtParticle* lambda,
- EvtRareLbToLllFFBase::FormFactors& FF ) override;
+ void getFF( const EvtParticle& parent, const EvtParticle& lambda,
+ EvtRareLbToLllFFBase::FormFactors& FF ) const override;
private:
- double func( const double p, EvtRareLbToLllFF::FormFactorDependence& dep );
+ double func( const double p,
+ const EvtRareLbToLllFF::FormFactorDependence& dep ) const;
std::array<std::unique_ptr<EvtRareLbToLllFF::FormFactorSet>, 2> FF_;
std::map<int, EvtRareLbToLllFF::FormFactorSet*> FFMap_;
- void DiracFF( EvtParticle* parent, EvtParticle* lambda,
- EvtRareLbToLllFF::FormFactorSet& FFset,
- EvtRareLbToLllFF::FormFactors& FF );
+ void DiracFF( const EvtParticle& parent, const EvtParticle& lambda,
+ const EvtRareLbToLllFF::FormFactorSet& FFset,
+ EvtRareLbToLllFF::FormFactors& FF ) const;
- void RaritaSchwingerFF( EvtParticle* parent, EvtParticle* lambda,
- EvtRareLbToLllFF::FormFactorSet& FFset,
- EvtRareLbToLllFF::FormFactors& FF );
+ void RaritaSchwingerFF( const EvtParticle& parent, const EvtParticle& lambda,
+ const EvtRareLbToLllFF::FormFactorSet& FFset,
+ EvtRareLbToLllFF::FormFactors& FF ) const;
};
#endif // EVTRARELBTOLLLFF_HH
diff --git a/EvtGenModels/EvtRareLbToLllFFBase.hh b/EvtGenModels/EvtRareLbToLllFFBase.hh
--- a/EvtGenModels/EvtRareLbToLllFFBase.hh
+++ b/EvtGenModels/EvtRareLbToLllFFBase.hh
@@ -1,6 +1,6 @@
/***********************************************************************
-* 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. *
* *
@@ -54,17 +54,17 @@
virtual void init() = 0;
- virtual void getFF( EvtParticle* parent, EvtParticle* lambda,
- EvtRareLbToLllFFBase::FormFactors& FF ) = 0;
+ virtual void getFF( const EvtParticle& parent, const EvtParticle& lambda,
+ EvtRareLbToLllFFBase::FormFactors& FF ) const = 0;
- bool isNatural( EvtParticle* lambda );
+ bool isNatural( const EvtParticle& lambda ) const;
EvtRareLbToLllFFBase();
virtual ~EvtRareLbToLllFFBase(){};
protected:
- double calculateVdotV( EvtParticle* parent, EvtParticle* lambda ) const;
- double calculateVdotV( EvtParticle*, EvtParticle*, double qsq ) const;
+ double calculateVdotV( const EvtParticle& parent, const EvtParticle& lambda ) const;
+ double calculateVdotV( const EvtParticle&, const EvtParticle&, double qsq ) const;
EvtIdSet natural_;
};
diff --git a/EvtGenModels/EvtRareLbToLllFFGutsche.hh b/EvtGenModels/EvtRareLbToLllFFGutsche.hh
--- a/EvtGenModels/EvtRareLbToLllFFGutsche.hh
+++ b/EvtGenModels/EvtRareLbToLllFFGutsche.hh
@@ -1,6 +1,6 @@
/***********************************************************************
-* 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. *
* *
@@ -42,19 +42,20 @@
public:
void init() override;
- void getFF( EvtParticle* parent, EvtParticle* lambda,
- EvtRareLbToLllFFBase::FormFactors& FF ) override;
+ void getFF( const EvtParticle& parent, const EvtParticle& lambda,
+ EvtRareLbToLllFFBase::FormFactors& FF ) const override;
private:
- double formFactorParametrization( double s, double f0, double a, double b );
+ double formFactorParametrization( const double s, const double f0,
+ const double a, const double b ) const;
double fVconsts[3][3];
double fAconsts[3][3];
double fTVconsts[3][3];
double fTAconsts[3][3];
- static EvtIdSet fParents;
- static EvtIdSet fDaughters;
+ const EvtIdSet fParents{ "Lambda_b0", "anti-Lambda_b0" };
+ const EvtIdSet fDaughters{ "Lambda0", "anti-Lambda0" };
};
#endif // EVTRARELBTOLLLFF_HH
diff --git a/EvtGenModels/EvtRareLbToLllFFlQCD.hh b/EvtGenModels/EvtRareLbToLllFFlQCD.hh
--- a/EvtGenModels/EvtRareLbToLllFFlQCD.hh
+++ b/EvtGenModels/EvtRareLbToLllFFlQCD.hh
@@ -1,6 +1,6 @@
/***********************************************************************
-* 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. *
* *
@@ -46,13 +46,13 @@
void init() override;
- void getFF( EvtParticle* parent, EvtParticle* lambda,
- EvtRareLbToLllFFBase::FormFactors& FF ) override;
+ void getFF( const EvtParticle& parent, const EvtParticle& lambda,
+ EvtRareLbToLllFFBase::FormFactors& FF ) const override;
private:
- double formFactorParametrization( double q2, double a0, double a1,
- double pole );
- double zvar( double q2 );
+ double formFactorParametrization( const double q2, const double a0,
+ const double a1, const double pole ) const;
+ double zvar( const double q2 ) const;
double fconsts[3][3];
double gconsts[3][3];
diff --git a/History.md b/History.md
--- a/History.md
+++ b/History.md
@@ -9,6 +9,12 @@
https://phab.hepforge.org/Dxyz
===
+## R02-02-0X
+
+9 June 2022 Michal Kreps
+* D84: Improve efficiency of RareLbToLll decay model for final states with e+e- pair.
+
+===
## R02-02-00
12 May 2022 Michal Kreps
diff --git a/src/EvtGenBase/EvtIdSet.cpp b/src/EvtGenBase/EvtIdSet.cpp
--- a/src/EvtGenBase/EvtIdSet.cpp
+++ b/src/EvtGenBase/EvtIdSet.cpp
@@ -419,7 +419,7 @@
this->append( set2 );
}
-int EvtIdSet::contains( const EvtId id )
+int EvtIdSet::contains( const EvtId id ) const
{
int i;
for ( i = 0; i < _numInList; i++ ) {
@@ -430,7 +430,7 @@
return 0;
}
-int EvtIdSet::contains( const std::string nm )
+int EvtIdSet::contains( const std::string nm ) const
{
int i;
for ( i = 0; i < _numInList; i++ ) {
diff --git a/src/EvtGenBase/EvtParticle.cpp b/src/EvtGenBase/EvtParticle.cpp
--- a/src/EvtGenBase/EvtParticle.cpp
+++ b/src/EvtGenBase/EvtParticle.cpp
@@ -88,11 +88,6 @@
_channel = i;
}
-EvtParticle* EvtParticle::getDaug( int i )
-{
- return _daug[i];
-}
-
EvtParticle* EvtParticle::getParent() const
{
return _parent;
diff --git a/src/EvtGenModels/EvtRareLbToLll.cpp b/src/EvtGenModels/EvtRareLbToLll.cpp
--- a/src/EvtGenModels/EvtRareLbToLll.cpp
+++ b/src/EvtGenModels/EvtRareLbToLll.cpp
@@ -69,6 +69,14 @@
checkSpinDaughter( 1, EvtSpinType::DIRAC );
checkSpinDaughter( 2, EvtSpinType::DIRAC );
+ // Work out whether we have electron mode
+ const EvtIdSet leptons{ "e-", "e+" };
+ if ( leptons.contains( getDaug( 1 ) ) ) {
+ m_electronMode = true;
+ EvtGenReport( EVTGEN_ERROR, "EvtGen" )
+ << " EvtRareLbToLll has dielectron final state" << std::endl;
+ }
+
std::string model = getArgStr( 0 );
if ( model == "Gutsche" ) {
ffmodel_ = std::make_unique<EvtRareLbToLllFFGutsche>();
@@ -117,45 +125,44 @@
EvtSpinDensity rho;
rho.setDiag( parent.getSpinStates() );
- double M0 = EvtPDL::getMass( getParentId() );
- double mL = EvtPDL::getMass( getDaug( 0 ) );
- double m1 = EvtPDL::getMass( getDaug( 1 ) );
- double m2 = EvtPDL::getMass( getDaug( 2 ) );
+ const double M0 = EvtPDL::getMass( getParentId() );
+ const double mL = EvtPDL::getMass( getDaug( 0 ) );
+ const double m1 = EvtPDL::getMass( getDaug( 1 ) );
+ const double m2 = EvtPDL::getMass( getDaug( 2 ) );
- double q2, pstar, elambda, theta;
- double q2min = ( m1 + m2 ) * ( m1 + m2 );
- double q2max = ( M0 - mL ) * ( M0 - mL );
+ const double q2min = ( m1 + m2 ) * ( m1 + m2 );
+ const double q2max = ( M0 - mL ) * ( M0 - mL );
EvtVector4R p4lambda, p4lep1, p4lep2, boost;
EvtGenReport( EVTGEN_INFO, "EvtGen" )
<< " EvtRareLbToLll is probing whole phase space ..." << std::endl;
- int i, j;
double prob = 0;
- for ( i = 0; i <= 100; i++ ) {
- q2 = q2min + i * ( q2max - q2min ) / 100.;
- elambda = ( M0 * M0 + mL * mL - q2 ) / 2 / M0;
- if ( i == 0 )
- pstar = 0;
- else
+ const int nsteps = 5000;
+ for ( int i = 0; i <= nsteps; i++ ) {
+ const double q2 = q2min + i * ( q2max - q2min ) / nsteps;
+ const double elambda = ( M0 * M0 + mL * mL - q2 ) / 2 / M0;
+ double pstar{0};
+ if ( i != 0 ) {
pstar = sqrt( q2 - ( m1 + m2 ) * ( m1 + m2 ) ) *
sqrt( q2 - ( m1 - m2 ) * ( m1 - m2 ) ) / 2 / sqrt( q2 );
+ }
boost.set( M0 - elambda, 0, 0, +sqrt( elambda * elambda - mL * mL ) );
- if ( i != 100 ) {
+ if ( i != nsteps ) {
p4lambda.set( elambda, 0, 0,
-sqrt( elambda * elambda - mL * mL ) );
} else {
p4lambda.set( mL, 0, 0, 0 );
}
- for ( j = 0; j <= 45; j++ ) {
- theta = j * EvtConst::pi / 45;
+ for ( int j = 0; j <= 45; j++ ) {
+ const double theta = j * EvtConst::pi / 45;
p4lep1.set( sqrt( pstar * pstar + m1 * m1 ), 0,
+pstar * sin( theta ), +pstar * cos( theta ) );
p4lep2.set( sqrt( pstar * pstar + m2 * m2 ), 0,
-pstar * sin( theta ), -pstar * cos( theta ) );
- //std::cout << "p1: " << p4lep1 << " p2: " << p4lep2 << " pstar: " << pstar << std::endl;
- if ( i != 100 ) // At maximal q2 we are already in correct frame as Lambda and W/Zvirtual are at rest
+
+ if ( i != nsteps) // At maximal q2 we are already in correct frame as Lambda and W/Zvirtual are at rest
{
p4lep1 = boostTo( p4lep1, boost );
p4lep2 = boostTo( p4lep2, boost );
@@ -163,24 +170,25 @@
lambda->init( getDaug( 0 ), p4lambda );
lep1->init( getDaug( 1 ), p4lep1 );
lep2->init( getDaug( 2 ), p4lep2 );
- calcAmp( amp, &parent );
+ calcAmp( amp, parent );
prob = rho.normalizedProb( amp.getSpinDensity() );
- //std::cout << "q2: " << q2 << " \t theta: " << theta << " \t prob: " << prob << std::endl;
- //std::cout << "p1: " << p4lep1 << " p2: " << p4lep2 << " q2-q2min: " << q2-(m1+m2)*(m1+m2) << std::endl;
+ // In case of electron mode add pole
+ if ( m_electronMode ) {
+ prob /= 1.0 + m_poleSize / ( q2*q2 );
+ }
+
if ( prob > m_maxProbability ) {
EvtGenReport( EVTGEN_INFO, "EvtGen" )
<< " - probability " << prob << " found at q2 = " << q2
- << " (" << 100 * ( q2 - q2min ) / ( q2max - q2min )
+ << " (" << nsteps * ( q2 - q2min ) / ( q2max - q2min )
<< " %) and theta = " << theta * 180 / EvtConst::pi
<< std::endl;
m_maxProbability = prob;
}
}
- //::abort();
}
- //m_poleSize = 0.04*q2min;
- m_maxProbability *= 1.2;
+ m_maxProbability *= 1.05;
}
setProbMax( m_maxProbability );
@@ -191,44 +199,49 @@
void EvtRareLbToLll::decay( EvtParticle* parent )
{
- parent->initializePhaseSpace( getNDaug(), getDaugs() );
-
- calcAmp( _amp2, parent );
+ // Phase space initialization depends on what leptons are
+ if ( m_electronMode ) {
+ setWeight( parent->initializePhaseSpace( getNDaug(), getDaugs(), false,
+ m_poleSize, 1, 2 ) );
+ } else {
+ parent->initializePhaseSpace( getNDaug(), getDaugs() );
+ }
+ calcAmp( _amp2, *parent );
}
-bool EvtRareLbToLll::isParticle( EvtParticle* parent ) const
+bool EvtRareLbToLll::isParticle( const EvtParticle& parent ) const
{
- static EvtIdSet partlist( "Lambda_b0" );
+ const EvtIdSet partlist{ "Lambda_b0" };
- return partlist.contains( parent->getId() );
+ return partlist.contains( parent.getId() );
}
-void EvtRareLbToLll::calcAmp( EvtAmp& amp, EvtParticle* parent )
+void EvtRareLbToLll::calcAmp( EvtAmp& amp, const EvtParticle& parent )
{
//parent->setDiagonalSpinDensity();
- EvtParticle* lambda = parent->getDaug( 0 );
+ const EvtParticle* lambda = parent.getDaug( 0 );
- static EvtIdSet leptons( "e-", "mu-", "tau-" );
+ const EvtIdSet leptons{ "e-", "mu-", "tau-" };
const bool isparticle = isParticle( parent );
- EvtParticle* lp = 0;
- EvtParticle* lm = 0;
+ const EvtParticle* lp = 0;
+ const EvtParticle* lm = 0;
- if ( leptons.contains( parent->getDaug( 1 )->getId() ) ) {
- lp = parent->getDaug( 1 );
- lm = parent->getDaug( 2 );
+ if ( leptons.contains( parent.getDaug( 1 )->getId() ) ) {
+ lp = parent.getDaug( 1 );
+ lm = parent.getDaug( 2 );
} else {
- lp = parent->getDaug( 2 );
- lm = parent->getDaug( 1 );
+ lp = parent.getDaug( 2 );
+ lm = parent.getDaug( 1 );
}
EvtVector4R P;
- P.set( parent->mass(), 0.0, 0.0, 0.0 );
+ P.set( parent.mass(), 0.0, 0.0, 0.0 );
EvtVector4R q = lp->getP4() + lm->getP4();
- double qsq = q.mass2();
+ const double qsq = q.mass2();
// Leptonic currents
EvtVector4C LV[2][2]; // \bar{\ell} \gamma^{\mu} \ell
@@ -252,7 +265,7 @@
EvtRareLbToLllFF::FormFactors FF;
//F, G, FT and GT
- ffmodel_->getFF( parent, lambda, FF );
+ ffmodel_->getFF( parent, *lambda, FF );
EvtComplex C7eff = wcmodel_->GetC7Eff( qsq );
EvtComplex C9eff = wcmodel_->GetC9Eff( qsq );
@@ -264,12 +277,12 @@
EvtComplex EC[4];
// check to see if particle is same or opposite parity to Lb
- const int parity = ffmodel_->isNatural( lambda ) ? 1 : -1;
+ const int parity = ffmodel_->isNatural( *lambda ) ? 1 : -1;
// Lambda spin type
const EvtSpinType::spintype spin = EvtPDL::getSpinType( lambda->getId() );
- static const double mb = 5.209;
+ const double mb = 5.209;
// Eq. 48 + 49
for ( unsigned int i = 0; i < 4; ++i ) {
@@ -300,7 +313,7 @@
// Hadronic currents
for ( int i = 0; i < 2; ++i ) {
for ( int j = 0; j < 2; ++j ) {
- HadronicAmp( parent, lambda, T, i, j );
+ HadronicAmp( parent, *lambda, T, i, j );
H1[i][j] = ( cv * AC[0] * T[0] + ca * BC[0] * T[1] +
cs * AC[1] * T[2] + cp * BC[1] * T[3] +
@@ -341,6 +354,7 @@
// Build hadronic amplitude
for ( int i = 0; i < 2; ++i ) {
for ( int j = 0; j < 4; ++j ) {
+ HadronicAmpRS( parent, *lambda, T, i, j );
H1[i][j] = ( cv * AC[0] * T[0] + ca * BC[0] * T[1] +
cs * AC[1] * T[2] + cp * BC[1] * T[3] +
cs * AC[2] * T[4] + cp * BC[2] * T[5] +
@@ -383,19 +397,20 @@
// spin 1/2 daughters
-void EvtRareLbToLll::HadronicAmp( EvtParticle* parent, EvtParticle* lambda,
- EvtVector4C* T, const int i, const int j )
+void EvtRareLbToLll::HadronicAmp( const EvtParticle& parent,
+ const EvtParticle& lambda, EvtVector4C* T,
+ const int i, const int j )
{
- const EvtDiracSpinor Sfinal = lambda->spParent( j );
- const EvtDiracSpinor Sinit = parent->sp( i );
+ const EvtDiracSpinor Sfinal = lambda.spParent( j );
+ const EvtDiracSpinor Sinit = parent.sp( i );
- const EvtVector4R L = lambda->getP4();
+ const EvtVector4R L = lambda.getP4();
EvtVector4R P;
- P.set( parent->mass(), 0.0, 0.0, 0.0 );
+ P.set( parent.mass(), 0.0, 0.0, 0.0 );
- const double Pm = parent->mass();
- const double Lm = lambda->mass();
+ const double Pm = parent.mass();
+ const double Lm = lambda.mass();
// \bar{u} \gamma^{\mu} u
T[0] = EvtLeptonVCurrent( Sfinal, Sinit );
@@ -424,16 +439,17 @@
// spin 3/2 daughters
-void EvtRareLbToLll::HadronicAmpRS( EvtParticle* parent, EvtParticle* lambda,
- EvtVector4C* T, const int i, const int j )
+void EvtRareLbToLll::HadronicAmpRS( const EvtParticle& parent,
+ const EvtParticle& lambda, EvtVector4C* T,
+ const int i, const int j )
{
- const EvtRaritaSchwinger Sfinal = lambda->spRSParent( j );
- const EvtDiracSpinor Sinit = parent->sp( i );
+ const EvtRaritaSchwinger Sfinal = lambda.spRSParent( j );
+ const EvtDiracSpinor Sinit = parent.sp( i );
EvtVector4R P;
- P.set( parent->mass(), 0.0, 0.0, 0.0 );
+ P.set( parent.mass(), 0.0, 0.0, 0.0 );
- const EvtVector4R L = lambda->getP4();
+ const EvtVector4R L = lambda.getP4();
EvtTensor4C ID;
ID.setdiag( 1.0, 1.0, 1.0, 1.0 );
@@ -445,8 +461,8 @@
}
const double Pmsq = P.mass2();
- const double Pm = parent->mass();
- const double PmLm = Pm * lambda->mass();
+ const double Pm = parent.mass();
+ const double PmLm = Pm * lambda.mass();
EvtVector4C V1, V2;
diff --git a/src/EvtGenModels/EvtRareLbToLllFF.cpp b/src/EvtGenModels/EvtRareLbToLllFF.cpp
--- a/src/EvtGenModels/EvtRareLbToLllFF.cpp
+++ b/src/EvtGenModels/EvtRareLbToLllFF.cpp
@@ -1,6 +1,6 @@
/***********************************************************************
-* 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. *
* *
@@ -163,8 +163,8 @@
//=============================================================================
-double EvtRareLbToLllFF::func( const double p,
- EvtRareLbToLllFF::FormFactorDependence& dep )
+double EvtRareLbToLllFF::func(
+ const double p, const EvtRareLbToLllFF::FormFactorDependence& dep ) const
{
static const double mq = 0.2848;
static const double mtilde = 1.122;
@@ -176,15 +176,16 @@
exp( -( 3. * mq * mq * psq ) / ( 2. * mtilde * mtilde * asq ) );
}
-void EvtRareLbToLllFF::DiracFF( EvtParticle* parent, EvtParticle* lambda,
- EvtRareLbToLllFF::FormFactorSet& dep,
- EvtRareLbToLllFF::FormFactors& FF )
+void EvtRareLbToLllFF::DiracFF( const EvtParticle& parent,
+ const EvtParticle& lambda,
+ const EvtRareLbToLllFF::FormFactorSet& dep,
+ EvtRareLbToLllFF::FormFactors& FF ) const
{
- const double M = lambda->mass();
- const double MB = parent->mass();
+ const double M = lambda.mass();
+ const double MB = parent.mass();
const double vdotv = calculateVdotV( parent, lambda );
- const double p = lambda->getP4().d3mag();
+ const double p = lambda.getP4().d3mag();
FF.F_[0] = func( p, dep.F1 );
FF.F_[1] = func( p, dep.F2 );
@@ -222,16 +223,16 @@
}
}
-void EvtRareLbToLllFF::RaritaSchwingerFF( EvtParticle* parent,
- EvtParticle* lambda,
- EvtRareLbToLllFF::FormFactorSet& FFset,
- EvtRareLbToLllFF::FormFactors& FF )
+void EvtRareLbToLllFF::RaritaSchwingerFF(
+ const EvtParticle& parent, const EvtParticle& lambda,
+ const EvtRareLbToLllFF::FormFactorSet& FFset,
+ EvtRareLbToLllFF::FormFactors& FF ) const
{
- const double M = lambda->mass();
- const double MB = parent->mass();
+ const double M = lambda.mass();
+ const double MB = parent.mass();
const double vdotv = calculateVdotV( parent, lambda );
- const double p = lambda->getP4().d3mag();
+ const double p = lambda.getP4().d3mag();
FF.F_[0] = func( p, FFset.F1 );
FF.F_[1] = func( p, FFset.F2 );
@@ -277,24 +278,24 @@
}
}
-void EvtRareLbToLllFF::getFF( EvtParticle* parent, EvtParticle* lambda,
- EvtRareLbToLllFF::FormFactors& FF )
+void EvtRareLbToLllFF::getFF( const EvtParticle& parent, const EvtParticle& lambda,
+ EvtRareLbToLllFF::FormFactors& FF ) const
{
// Find the FF information for this particle, start by setting all to zero
FF.areZero();
// Are the FF's for the particle known?
- auto it = FFMap_.find( lambda->getId().getId() );
+ auto it = FFMap_.find( lambda.getId().getId() );
if ( it == FFMap_.end() ) {
EvtGenReport( EVTGEN_ERROR, "EvtGen" )
- << " EvtRareLbToLll does not contain FF for " << lambda->getId()
+ << " EvtRareLbToLll does not contain FF for " << lambda.getId()
<< std::endl;
return;
}
// Split by spin 1/2, spin 3/2
- const int spin = EvtPDL::getSpinType( lambda->getId() );
+ const int spin = EvtPDL::getSpinType( lambda.getId() );
if ( EvtSpinType::DIRAC == spin ) {
DiracFF( parent, lambda, *( it->second ), FF );
diff --git a/src/EvtGenModels/EvtRareLbToLllFFBase.cpp b/src/EvtGenModels/EvtRareLbToLllFFBase.cpp
--- a/src/EvtGenModels/EvtRareLbToLllFFBase.cpp
+++ b/src/EvtGenModels/EvtRareLbToLllFFBase.cpp
@@ -1,6 +1,6 @@
/***********************************************************************
-* 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. *
* *
@@ -41,33 +41,33 @@
{
}
-bool EvtRareLbToLllFFBase::isNatural( EvtParticle* lambda )
+bool EvtRareLbToLllFFBase::isNatural( const EvtParticle& lambda ) const
{
- return natural_.contains( lambda->getId() );
+ return natural_.contains( lambda.getId() );
}
-double EvtRareLbToLllFFBase::calculateVdotV( EvtParticle* parent,
- EvtParticle* lambda ) const
+double EvtRareLbToLllFFBase::calculateVdotV( const EvtParticle& parent,
+ const EvtParticle& lambda ) const
{
EvtVector4R p4parent;
- p4parent.set( parent->mass(), 0, 0, 0 );
+ p4parent.set( parent.mass(), 0, 0, 0 );
- EvtVector4R p4lambda = lambda->getP4();
+ EvtVector4R p4lambda = lambda.getP4();
- double M = lambda->mass();
- double MB = parent->mass();
+ const double M = lambda.mass();
+ const double MB = parent.mass();
return p4parent.cont( p4lambda ) / ( MB * M );
// return E_Lambda/M_Lambda
}
-double EvtRareLbToLllFFBase::calculateVdotV( EvtParticle* parent,
- EvtParticle* lambda,
+double EvtRareLbToLllFFBase::calculateVdotV( const EvtParticle& parent,
+ const EvtParticle& lambda,
const double qsq ) const
{
- double M = lambda->mass();
- double MB = parent->mass();
+ const double M = lambda.mass();
+ const double MB = parent.mass();
double E = ( MB * MB - M * M - qsq ) / ( 2. * MB );
diff --git a/src/EvtGenModels/EvtRareLbToLllFFGutsche.cpp b/src/EvtGenModels/EvtRareLbToLllFFGutsche.cpp
--- a/src/EvtGenModels/EvtRareLbToLllFFGutsche.cpp
+++ b/src/EvtGenModels/EvtRareLbToLllFFGutsche.cpp
@@ -1,6 +1,6 @@
/***********************************************************************
-* 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. *
* *
@@ -34,9 +34,6 @@
// Standard constructor, initializes variables
//=============================================================================
-EvtIdSet EvtRareLbToLllFFGutsche::fParents( "Lambda_b0", "anti-Lambda_b0" );
-EvtIdSet EvtRareLbToLllFFGutsche::fDaughters( "Lambda0", "anti-Lambda0" );
-
void EvtRareLbToLllFFGutsche::init()
{
fVconsts[0][0] = 0.107;
@@ -86,8 +83,9 @@
//=============================================================================
-void EvtRareLbToLllFFGutsche::getFF( EvtParticle* parent, EvtParticle* lambda,
- EvtRareLbToLllFFBase::FormFactors& FF )
+void EvtRareLbToLllFFGutsche::getFF( const EvtParticle& parent,
+ const EvtParticle& lambda,
+ EvtRareLbToLllFFBase::FormFactors& FF ) const
{
// Find the FF information for this particle, start by setting all to zero
FF.areZero();
@@ -101,13 +99,13 @@
}
*/
- double m1 = parent->getP4().mass();
- double m2 = lambda->getP4().mass();
+ const double m1 = parent.getP4().mass();
+ const double m2 = lambda.getP4().mass();
EvtVector4R p4parent;
- p4parent.set( parent->mass(), 0, 0, 0 );
- double q2 = ( p4parent - lambda->getP4() ).mass2();
- double m21 = m2 / m1;
- double shat = q2 / m1 / m1;
+ p4parent.set( parent.mass(), 0, 0, 0 );
+ const double q2 = ( p4parent - lambda.getP4() ).mass2();
+ const double m21 = m2 / m1;
+ const double shat = q2 / m1 / m1;
double fV[3];
double fA[3];
@@ -146,8 +144,10 @@
return;
}
-double EvtRareLbToLllFFGutsche::formFactorParametrization( double s, double f0,
- double a, double b )
+double EvtRareLbToLllFFGutsche::formFactorParametrization( const double s,
+ const double f0,
+ const double a,
+ const double b ) const
{
return f0 / ( 1 - a * s + b * s * s );
}
diff --git a/src/EvtGenModels/EvtRareLbToLllFFlQCD.cpp b/src/EvtGenModels/EvtRareLbToLllFFlQCD.cpp
--- a/src/EvtGenModels/EvtRareLbToLllFFlQCD.cpp
+++ b/src/EvtGenModels/EvtRareLbToLllFFlQCD.cpp
@@ -1,6 +1,6 @@
/***********************************************************************
-* 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. *
* *
@@ -39,14 +39,14 @@
void EvtRareLbToLllFFlQCD::init()
{
- EvtId LbID = EvtPDL::getId( std::string( "Lambda_b0" ) );
- EvtId LID = EvtPDL::getId( std::string( "Lambda0" ) );
- EvtId BID = EvtPDL::getId( std::string( "B+" ) );
- EvtId KID = EvtPDL::getId( std::string( "K-" ) );
- double m1 = EvtPDL::getMass( LbID );
- double m2 = EvtPDL::getMass( LID );
- double mB = EvtPDL::getMass( BID );
- double mK = EvtPDL::getMass( KID );
+ const EvtId LbID = EvtPDL::getId( std::string( "Lambda_b0" ) );
+ const EvtId LID = EvtPDL::getId( std::string( "Lambda0" ) );
+ const EvtId BID = EvtPDL::getId( std::string( "B+" ) );
+ const EvtId KID = EvtPDL::getId( std::string( "K-" ) );
+ const double m1 = EvtPDL::getMass( LbID );
+ const double m2 = EvtPDL::getMass( LID );
+ const double mB = EvtPDL::getMass( BID );
+ const double mK = EvtPDL::getMass( KID );
t0 = ( m1 - m2 ) * ( m1 - m2 );
tplus = ( mB + mK ) * ( mB + mK );
@@ -97,25 +97,26 @@
//=============================================================================
-void EvtRareLbToLllFFlQCD::getFF( EvtParticle* parent, EvtParticle* lambda,
- EvtRareLbToLllFFBase::FormFactors& FF )
+void EvtRareLbToLllFFlQCD::getFF( const EvtParticle& parent,
+ const EvtParticle& lambda,
+ EvtRareLbToLllFFBase::FormFactors& FF ) const
{
// Find the FF information for this particle, start by setting all to zero
FF.areZero();
- double m1 = parent->getP4().mass();
- double m2 = lambda->getP4().mass();
+ const double m1 = parent.getP4().mass();
+ const double m2 = lambda.getP4().mass();
// double m21=m2/m1;
EvtVector4R p4parent;
- p4parent.set( parent->mass(), 0, 0, 0 );
- double q2 = ( p4parent - lambda->getP4() ).mass2();
+ p4parent.set( parent.mass(), 0, 0, 0 );
+ const double q2 = ( p4parent - lambda.getP4() ).mass2();
- double massSum = m1 + m2;
- double massDiff = m1 - m2;
- double massSumSq = massSum * massSum;
- double massDiffSq = massDiff * massDiff;
- double q2Sum = q2 - massSumSq;
- double q2Diff = q2 - massDiffSq;
+ const double massSum = m1 + m2;
+ const double massDiff = m1 - m2;
+ const double massSumSq = massSum * massSum;
+ const double massDiffSq = massDiff * massDiff;
+ const double q2Sum = q2 - massSumSq;
+ const double q2Diff = q2 - massDiffSq;
double f[3];
double g[3];
@@ -182,17 +183,19 @@
return;
}
-double EvtRareLbToLllFFlQCD::formFactorParametrization( double q2, double a0,
- double a1, double pole )
+double EvtRareLbToLllFFlQCD::formFactorParametrization( const double q2,
+ const double a0,
+ const double a1,
+ const double pole ) const
{
- double z = zvar( q2 );
+ const double z = zvar( q2 );
return 1. / ( 1. - q2 / ( pole * pole ) ) * ( a0 + a1 * z );
}
-double EvtRareLbToLllFFlQCD::zvar( double q2 )
+double EvtRareLbToLllFFlQCD::zvar( const double q2 ) const
{
- double a = std::sqrt( tplus - q2 );
- double b = std::sqrt( tplus - t0 );
+ const double a = std::sqrt( tplus - q2 );
+ const double b = std::sqrt( tplus - t0 );
return ( a - b ) / ( a + b );
}

File Metadata

Mime Type
text/plain
Expires
Mon, Sep 29, 11:24 AM (21 h, 23 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
6561174
Default Alt Text
D84.1759141446.diff (33 KB)

Event Timeline