From 2913b6bc798edcab032729fd84441767fd2830a4 Mon Sep 17 00:00:00 2001 From: lan13005 Date: Wed, 17 Apr 2024 16:30:43 -0400 Subject: [PATCH 1/3] factorize breit wigner functions to provide method to calculate amp from masses --- src/libraries/AMPTOOLS_AMPS/BreitWigner.cc | 8 +++++++- src/libraries/AMPTOOLS_AMPS/BreitWigner.h | 1 + src/libraries/AMPTOOLS_AMPS/BreitWigner3body.cc | 8 +++++++- src/libraries/AMPTOOLS_AMPS/BreitWigner3body.h | 1 + 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/libraries/AMPTOOLS_AMPS/BreitWigner.cc b/src/libraries/AMPTOOLS_AMPS/BreitWigner.cc index 3dfc84ef1..c501eae43 100644 --- a/src/libraries/AMPTOOLS_AMPS/BreitWigner.cc +++ b/src/libraries/AMPTOOLS_AMPS/BreitWigner.cc @@ -61,7 +61,13 @@ BreitWigner::calcAmplitude( GDouble** pKin ) const GDouble mass = Ptot.M(); GDouble mass1 = P1.M(); GDouble mass2 = P2.M(); - + + return calcAmplitudeFromMasses( mass, mass1, mass2 ); +} + +complex< GDouble > +BreitWigner::calcAmplitudeFromMasses( GDouble mass, GDouble mass1, GDouble mass2 ) const +{ // assert positive breakup momenta GDouble q0 = fabs( breakupMomentum(m_mass0, mass1, mass2) ); GDouble q = fabs( breakupMomentum(mass, mass1, mass2) ); diff --git a/src/libraries/AMPTOOLS_AMPS/BreitWigner.h b/src/libraries/AMPTOOLS_AMPS/BreitWigner.h index 9312ac434..fca51597c 100644 --- a/src/libraries/AMPTOOLS_AMPS/BreitWigner.h +++ b/src/libraries/AMPTOOLS_AMPS/BreitWigner.h @@ -36,6 +36,7 @@ class BreitWigner : public UserAmplitude< BreitWigner > string name() const { return "BreitWigner"; } complex< GDouble > calcAmplitude( GDouble** pKin ) const; + complex< GDouble > calcAmplitudeFromMasses( GDouble mass, GDouble mass1, GDouble mass2 ) const; void updatePar( const AmpParameter& par ); diff --git a/src/libraries/AMPTOOLS_AMPS/BreitWigner3body.cc b/src/libraries/AMPTOOLS_AMPS/BreitWigner3body.cc index e2c7cb072..1b18a0991 100644 --- a/src/libraries/AMPTOOLS_AMPS/BreitWigner3body.cc +++ b/src/libraries/AMPTOOLS_AMPS/BreitWigner3body.cc @@ -48,7 +48,13 @@ BreitWigner3body::calcAmplitude( GDouble** pKin ) const GDouble width = m_width0; //GDouble width = m_width0; - + + return calcAmplitudeFromMasses( mass ); +} + +complex< GDouble > +BreitWigner::calcAmplitudeFromMasses( GDouble mass ) const +{ // this first factor just gets normalization right for BW's that have // no additional s-dependence from orbital L complex bwtop( sqrt( m_mass0 * m_width0 / 3.1416 ), 0.0 ); diff --git a/src/libraries/AMPTOOLS_AMPS/BreitWigner3body.h b/src/libraries/AMPTOOLS_AMPS/BreitWigner3body.h index 235f7cac6..eb0116905 100644 --- a/src/libraries/AMPTOOLS_AMPS/BreitWigner3body.h +++ b/src/libraries/AMPTOOLS_AMPS/BreitWigner3body.h @@ -36,6 +36,7 @@ class BreitWigner3body : public UserAmplitude< BreitWigner3body > string name() const { return "BreitWigner3body"; } complex< GDouble > calcAmplitude( GDouble** pKin ) const; + complex< GDouble > calcAmplitudeFromMasses( GDouble mass ) const; void updatePar( const AmpParameter& par ); From 8db7a0f118c90e519c7c677ba355d015a7f012f6 Mon Sep 17 00:00:00 2001 From: lan13005 Date: Wed, 17 Apr 2024 16:44:05 -0400 Subject: [PATCH 2/3] fix methods namespace for BreitWigner3body --- src/libraries/AMPTOOLS_AMPS/BreitWigner3body.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libraries/AMPTOOLS_AMPS/BreitWigner3body.cc b/src/libraries/AMPTOOLS_AMPS/BreitWigner3body.cc index 1b18a0991..64cf2d4e1 100644 --- a/src/libraries/AMPTOOLS_AMPS/BreitWigner3body.cc +++ b/src/libraries/AMPTOOLS_AMPS/BreitWigner3body.cc @@ -53,7 +53,7 @@ BreitWigner3body::calcAmplitude( GDouble** pKin ) const } complex< GDouble > -BreitWigner::calcAmplitudeFromMasses( GDouble mass ) const +BreitWigner3body::calcAmplitudeFromMasses( GDouble mass ) const { // this first factor just gets normalization right for BW's that have // no additional s-dependence from orbital L From bfbcd0a04fd17d93122c47452edeed33a3016c26 Mon Sep 17 00:00:00 2001 From: lan13005 Date: Wed, 17 Apr 2024 16:50:38 -0400 Subject: [PATCH 3/3] fix calculation in BreitWigner3body --- src/libraries/AMPTOOLS_AMPS/BreitWigner3body.cc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/libraries/AMPTOOLS_AMPS/BreitWigner3body.cc b/src/libraries/AMPTOOLS_AMPS/BreitWigner3body.cc index 64cf2d4e1..0898ce1ba 100644 --- a/src/libraries/AMPTOOLS_AMPS/BreitWigner3body.cc +++ b/src/libraries/AMPTOOLS_AMPS/BreitWigner3body.cc @@ -46,15 +46,14 @@ BreitWigner3body::calcAmplitude( GDouble** pKin ) const GDouble mass = Ptot.M(); - GDouble width = m_width0; - //GDouble width = m_width0; - return calcAmplitudeFromMasses( mass ); } complex< GDouble > BreitWigner3body::calcAmplitudeFromMasses( GDouble mass ) const { + GDouble width = m_width0; + // this first factor just gets normalization right for BW's that have // no additional s-dependence from orbital L complex bwtop( sqrt( m_mass0 * m_width0 / 3.1416 ), 0.0 );