Page MenuHomeHEPForge

D39.1759128488.diff
No OneTemporary

Size
29 KB
Referenced Files
None
Subscribers
None

D39.1759128488.diff

diff --git a/inc/LauAbsResonance.hh b/inc/LauAbsResonance.hh
--- a/inc/LauAbsResonance.hh
+++ b/inc/LauAbsResonance.hh
@@ -473,37 +473,37 @@
LauAbsResonance& operator=(const LauAbsResonance& rhs);
//! Information on the resonance
- LauResonanceInfo* resInfo_;
+ LauResonanceInfo* resInfo_{0};
//! Information on the particles
const LauDaughters* daughters_;
//! Parent name
- TString nameParent_;
+ TString nameParent_{""};
//! Daughter 1 name
- TString nameDaug1_;
+ TString nameDaug1_{""};
//! Daughter 2 name
- TString nameDaug2_;
+ TString nameDaug2_{""};
//! Bachelor name
- TString nameBachelor_;
+ TString nameBachelor_{""};
//! Parent charge
- Int_t chargeParent_;
+ Int_t chargeParent_{0};
//! Daughter 1 charge
- Int_t chargeDaug1_;
+ Int_t chargeDaug1_{0};
//! Daughter 2 charge
- Int_t chargeDaug2_;
+ Int_t chargeDaug2_{0};
//! Bachelor charge
- Int_t chargeBachelor_;
+ Int_t chargeBachelor_{0};
//! Parent mass
- Double_t massParent_;
+ Double_t massParent_{0.0};
//! Daughter 1 mass
- Double_t massDaug1_;
+ Double_t massDaug1_{0.0};
//! Daughter 2 mass
- Double_t massDaug2_;
+ Double_t massDaug2_{0.0};
// Bachelor mass
- Double_t massBachelor_;
+ Double_t massBachelor_{0.0};
//! Resonance name
TString resName_;
@@ -512,49 +512,49 @@
TString sanitisedName_;
//! Resonance mass
- LauParameter* resMass_;
+ LauParameter* resMass_{0};
//! Resonance width
- LauParameter* resWidth_;
+ LauParameter* resWidth_{0};
//! All parameters of the resonance
std::vector<LauParameter*> resParameters_;
//! Resonance spin
- Int_t resSpin_;
+ Int_t resSpin_{0};
//! Resonance charge
- Int_t resCharge_;
+ Int_t resCharge_{0};
//! DP axis identifier
Int_t resPairAmpInt_;
//! Blatt Weisskopf barrier for parent decay
- LauBlattWeisskopfFactor* parBWFactor_;
+ LauBlattWeisskopfFactor* parBWFactor_{0};
//! Blatt Weisskopf barrier for resonance decay
- LauBlattWeisskopfFactor* resBWFactor_;
+ LauBlattWeisskopfFactor* resBWFactor_{0};
//! Spin formalism
- LauSpinType spinType_;
+ LauSpinType spinType_{Zemach_P};
//! Boolean to flip helicity
- Bool_t flipHelicity_;
+ Bool_t flipHelicity_{kFALSE};
//! Boolean to ignore the momentum factors in both the spin factor and the mass-dependent width
- Bool_t ignoreMomenta_;
+ Bool_t ignoreMomenta_{kFALSE};
//! Boolean to set the spinTerm to unity always
- Bool_t ignoreSpin_;
+ Bool_t ignoreSpin_{kFALSE};
//! Boolean to ignore barrier factor scaling in the amplitude numerator, they are still used for the mass-dependent width
- Bool_t ignoreBarrierScaling_;
+ Bool_t ignoreBarrierScaling_{kFALSE};
// Event kinematics information
//! Invariant mass
- Double_t mass_;
+ Double_t mass_{0.0};
//! Helicity angle cosine
- Double_t cosHel_;
+ Double_t cosHel_{0.0};
//! Daughter momentum in resonance rest frame
- Double_t q_;
+ Double_t q_{0.0};
//! Bachelor momentum in resonance rest frame
- Double_t p_;
+ Double_t p_{0.0};
//! Bachelor momentum in parent rest frame
- Double_t pstar_;
+ Double_t pstar_{0.0};
//! Covariant factor
/*!
@@ -566,10 +566,10 @@
\see LauKinematics::getcov13
\see LauKinematics::getcov23
*/
- Double_t erm_;
+ Double_t erm_{1.0};
//! Covariant factor (full spin-dependent expression)
- Double_t covFactor_;
+ Double_t covFactor_{1.0};
ClassDef(LauAbsResonance,0) // Abstract resonance class
diff --git a/inc/LauKMatrixProdPole.hh b/inc/LauKMatrixProdPole.hh
--- a/inc/LauKMatrixProdPole.hh
+++ b/inc/LauKMatrixProdPole.hh
@@ -44,7 +44,7 @@
class LauKMatrixProdPole : public LauAbsResonance {
- public:
+ public:
//! Constructor
/*!
\param [in] poleName name of the pole
@@ -54,34 +54,36 @@
\param [in] daughters the daughter particles
\param [in] useProdAdler boolean to turn on/off the production Adler zero factor
*/
- LauKMatrixProdPole(const TString& poleName, Int_t poleIndex, Int_t resPairAmpInt,
- LauKMatrixPropagator* propagator, const LauDaughters* daughters,
- Bool_t useProdAdler = kFALSE);
+ LauKMatrixProdPole( const TString& poleName, Int_t poleIndex, Int_t resPairAmpInt,
+ LauKMatrixPropagator* propagator, const LauDaughters* daughters,
+ Bool_t useProdAdler = kFALSE);
//! Destructor
- virtual ~LauKMatrixProdPole();
+ virtual ~LauKMatrixProdPole();
// Initialise the model
- virtual void initialise() {return;}
+ virtual void initialise() {return;}
//! The amplitude calculation
/*!
\param [in] kinematics the kinematic variables of the current event
\return the complex amplitude
*/
- virtual LauComplex amplitude(const LauKinematics* kinematics);
+ virtual LauComplex amplitude(const LauKinematics* kinematics);
//! Get the resonance model type
- /*!
- \return the resonance model type
- */
+ /*!
+ \return the resonance model type
+ */
virtual LauAbsResonance::LauResonanceModel getResonanceModel() const {return LauAbsResonance::KMatrix;}
+ virtual const std::vector<LauParameter*>& getFloatingParameters();
+
protected:
//! Function not meant to be called, amplitude is called directly in this case
- virtual LauComplex resAmp(Double_t mass, Double_t spinTerm);
+ virtual LauComplex resAmp(Double_t mass, Double_t spinTerm);
- private:
+ private:
//! Copy constructor (not implemented)
LauKMatrixProdPole(const LauKMatrixProdPole& rhs);
@@ -89,14 +91,14 @@
LauKMatrixProdPole& operator=(const LauKMatrixProdPole& rhs);
//! The K-matrix propagator
- LauKMatrixPropagator* thePropagator_;
+ LauKMatrixPropagator* thePropagator_;
//! The number of the pole
Int_t poleIndex_;
- //! Boolean to turn on/off the production Adler zero factor
- Bool_t useProdAdler_;
+ //! Boolean to turn on/off the production Adler zero factor
+ Bool_t useProdAdler_;
- ClassDef(LauKMatrixProdPole, 0) // K-matrix production pole
+ ClassDef(LauKMatrixProdPole, 0) // K-matrix production pole
};
diff --git a/inc/LauKMatrixProdSVP.hh b/inc/LauKMatrixProdSVP.hh
--- a/inc/LauKMatrixProdSVP.hh
+++ b/inc/LauKMatrixProdSVP.hh
@@ -76,6 +76,8 @@
\return the resonance model type
*/
virtual LauAbsResonance::LauResonanceModel getResonanceModel() const {return LauAbsResonance::KMatrix;}
+
+ const std::vector<LauParameter*>& getFloatingParameters();
protected:
//! Function not meant to be called
diff --git a/inc/LauKMatrixPropagator.hh b/inc/LauKMatrixPropagator.hh
--- a/inc/LauKMatrixPropagator.hh
+++ b/inc/LauKMatrixPropagator.hh
@@ -49,7 +49,7 @@
class LauKMatrixPropagator {
- public:
+ public:
//! Constructor
/*!
\param [in] name name of the propagator
@@ -59,12 +59,12 @@
\param [in] nPoles the number of poles
\param [in] rowIndex this specifies which row of the propagator should be used when summing over the amplitude channels
*/
- LauKMatrixPropagator(const TString& name, const TString& paramFileName,
- Int_t resPairAmpInt, Int_t nChannels, Int_t nPoles,
- Int_t rowIndex = 1);
+ LauKMatrixPropagator( const TString& name, const TString& paramFileName,
+ Int_t resPairAmpInt, Int_t nChannels, Int_t nPoles,
+ Int_t rowIndex = 1 );
//! Destructor
- virtual ~LauKMatrixPropagator();
+ virtual ~LauKMatrixPropagator();
//! Calculate the invariant mass squared s
/*!
@@ -82,25 +82,25 @@
/*!
\param [in] inputFile name of the input file
*/
- void setParameters(const TString& inputFile);
+ void setParameters(const TString& inputFile);
- //! Get the scattering K matrix
- /*!
- \return the real, symmetric scattering K matrix
+ //! Get the scattering K matrix
+ /*!
+ \return the real, symmetric scattering K matrix
*/
- TMatrixD getKMatrix() const {return ScattKMatrix_;}
+ TMatrixD getKMatrix() const {return ScattKMatrix_;}
- //! Get the real part of the propagator full matrix
- /*!
- \return the real part of the propagator full matrix
- */
- TMatrixD getRealPropMatrix() const {return realProp_;}
+ //! Get the real part of the propagator full matrix
+ /*!
+ \return the real part of the propagator full matrix
+ */
+ TMatrixD getRealPropMatrix() const {return realProp_;}
- //! Get the negative imaginary part of the full propagator matrix
- /*!
- \return the negative imaginary part of the full propagator matrix
- */
- TMatrixD getNegImagPropMatrix() const {return negImagProp_;}
+ //! Get the negative imaginary part of the full propagator matrix
+ /*!
+ \return the negative imaginary part of the full propagator matrix
+ */
+ TMatrixD getNegImagPropMatrix() const {return negImagProp_;}
//! Get the real part of the term of the propagator
/*!
@@ -123,6 +123,14 @@
*/
Double_t getPoleDenomTerm(Int_t poleIndex) const;
+ //! Get coupling parameters, set according to the input file
+ /*!
+ \param [in] poleIndex number of the required pole
+ \param [in] channelIndex number of the required channel
+ \return the parameter of the coupling constant
+ */
+ LauParameter& getPoleMassSqParameter(Int_t poleIndex);
+
//! Get coupling constants that were loaded from the input file
/*!
\param [in] poleIndex number of the required pole
@@ -131,6 +139,14 @@
*/
Double_t getCouplingConstant(Int_t poleIndex, Int_t channelIndex) const;
+ //! Get coupling parameters, set according to the input file
+ /*!
+ \param [in] poleIndex number of the required pole
+ \param [in] channelIndex number of the required channel
+ \return the parameter of the coupling constant
+ */
+ LauParameter& getCouplingParameter(Int_t poleIndex, Int_t channelIndex);
+
//! Get scattering constants that were loaded from the input file
/*!
\param [in] channel1Index number of the first channel index
@@ -139,6 +155,32 @@
*/
Double_t getScatteringConstant(Int_t channel1Index, Int_t channel2Index) const;
+ //! Get scattering parameters, set according to the input file
+ /*!
+ \param [in] channel1Index number of the first channel index
+ \param [in] channel2Index number of the second channel index
+ \return the parameter of the scattering constant
+ */
+ LauParameter& getScatteringParameter(Int_t channel1Index, Int_t channel2Index);
+
+ //! Get s0 production parameter
+ /*!
+ \return the s0Prod parameter
+ */
+ LauParameter& gets0Prod() {return s0Prod_;}
+
+ //! Get sA production parameter
+ /*!
+ \return the sA parameter
+ */
+ LauParameter& getsA() {return sA_;}
+
+ //! Get sA0 production parameter
+ /*!
+ \return the sA0 parameter
+ */
+ LauParameter& getsA0() {return sA0_;}
+
//! Get the "slowly-varying part" term of the amplitude
/*!
\return the svp term
@@ -154,62 +196,60 @@
//! Get the DP axis identifier
/*!
- /return the value to identify the DP axis in question
+ \return the value to identify the DP axis in question
*/
Int_t getResPairAmpInt() const {return resPairAmpInt_;}
//! Get the number of channels
/*!
- /return the number of channels
+ \return the number of channels
*/
Int_t getNChannels() const {return nChannels_;}
//! Get the number of poles
/*!
- /return the number of poles
+ \return the number of poles
*/
Int_t getNPoles() const {return nPoles_;}
//! Get the propagator name
/*!
- /return the name of the propagator
+ \return the name of the propagator
*/
TString getName() const {return name_;}
- //! Get the unitary transition amplitude for the given channel
- /*!
- \param [in] s The invariant mass squared
- \param [in] channel The index number of the channel process
- \return the complex amplitude T
+ //! Get the unitary transition amplitude for the given channel
+ /*!
+ \param [in] s The invariant mass squared
+ \param [in] channel The index number of the channel process
+ \return the complex amplitude T
*/
- LauComplex getTransitionAmp(Double_t s, Int_t channel);
+ LauComplex getTransitionAmp(Double_t s, Int_t channel);
-
- //! Get the complex phase space term for the given channel and invariant mass squared
- /*!
- \param [in] s The invariant mass squared
- \param [in] channel The index number of the channel process
- \return the complex phase space term rho(channel, channel)
+ //! Get the complex phase space term for the given channel and invariant mass squared
+ /*!
+ \param [in] s The invariant mass squared
+ \param [in] channel The index number of the channel process
+ \return the complex phase space term rho(channel, channel)
*/
- LauComplex getPhaseSpaceTerm(Double_t s, Int_t channel);
+ LauComplex getPhaseSpaceTerm(Double_t s, Int_t channel);
- //! Get the Adler zero factor, which is set when updatePropagator is called
- /*!
- \return the Adler zero factor
+ //! Get the Adler zero factor, which is set when updatePropagator is called
+ /*!
+ \return the Adler zero factor
*/
- Double_t getAdlerZero() const {return adlerZeroFactor_;}
+ Double_t getAdlerZero() const {return adlerZeroFactor_;}
- //! Get the THat amplitude for the given s and channel number
- /*!
- \param [in] s The invariant mass squared
+ //! Get the THat amplitude for the given s and channel number
+ /*!
+ \param [in] s The invariant mass squared
\param [in] channel The index number of the channel process
\return the complex THat amplitude
*/
- LauComplex getTHat(Double_t s, Int_t channel);
-
+ LauComplex getTHat(Double_t s, Int_t channel);
- protected:
+ protected:
//! Calculate the scattering K-matrix for the given value of s
/*!
\param [in] s the invariant mass squared
@@ -318,22 +358,22 @@
Bool_t checkPhaseSpaceType(Int_t phaseSpaceInt) const;
- //! Get the unitary transition amplitude matrix for the given kinematics
- /*!
- \param [in] kinematics The pointer to the constant kinematics
+ //! Get the unitary transition amplitude matrix for the given kinematics
+ /*!
+ \param [in] kinematics The pointer to the constant kinematics
*/
- void getTMatrix(const LauKinematics* kinematics);
+ void getTMatrix(const LauKinematics* kinematics);
- //! Get the unitary transition amplitude matrix for the given kinematics
- /*!
- \param [in] s The invariant mass squared of the system
+ //! Get the unitary transition amplitude matrix for the given kinematics
+ /*!
+ \param [in] s The invariant mass squared of the system
*/
- void getTMatrix(Double_t s);
+ void getTMatrix(Double_t s);
- //! Get the square root of the phase space matrix
- void getSqrtRhoMatrix();
-
- private:
+ //! Get the square root of the phase space matrix
+ void getSqrtRhoMatrix();
+
+ private:
//! Copy constructor (not implemented)
LauKMatrixPropagator(const LauKMatrixPropagator& rhs);
@@ -341,39 +381,39 @@
LauKMatrixPropagator& operator=(const LauKMatrixPropagator& rhs);
//! Create a map for the K-matrix parameters
- typedef std::map<int, std::vector<LauParameter> > KMatrixParamMap;
+ typedef std::map<int, std::vector<LauParameter> > KMatrixParamMap;
- //! Initialise and set the dimensions for the internal matrices and parameter arrays
- void initialiseMatrices();
+ //! Initialise and set the dimensions for the internal matrices and parameter arrays
+ void initialiseMatrices();
- //! Store the (phase space) channel indices from a line in the parameter file
- /*!
- \param [in] theLine Vector of strings corresponding to the line from the parameter file
+ //! Store the (phase space) channel indices from a line in the parameter file
+ /*!
+ \param [in] theLine Vector of strings corresponding to the line from the parameter file
*/
- void storeChannels(const std::vector<std::string>& theLine);
+ void storeChannels(const std::vector<std::string>& theLine);
- //! Store the pole mass and couplings from a line in the parameter file
- /*!
- \param [in] theLine Vector of strings corresponding to the line from the parameter file
+ //! Store the pole mass and couplings from a line in the parameter file
+ /*!
+ \param [in] theLine Vector of strings corresponding to the line from the parameter file
*/
- void storePole(const std::vector<std::string>& theLine);
+ void storePole(const std::vector<std::string>& theLine);
- //! Store the scattering coefficients from a line in the parameter file
- /*!
- \param [in] theLine Vector of strings corresponding to the line from the parameter file
+ //! Store the scattering coefficients from a line in the parameter file
+ /*!
+ \param [in] theLine Vector of strings corresponding to the line from the parameter file
*/
- void storeScattering(const std::vector<std::string>& theLine);
+ void storeScattering(const std::vector<std::string>& theLine);
- //! Store miscelleanous parameters from a line in the parameter file
- /*!
- \param [in] keyword the name of the parameter to be set
- \param [in] parString the string containing the value of the parameter
+ //! Store miscelleanous parameters from a line in the parameter file
+ /*!
+ \param [in] keyword the name of the parameter to be set
+ \param [in] parString the string containing the value of the parameter
*/
- void storeParameter(const TString& keyword, const TString& parString);
+ void storeParameter(const TString& keyword, const TString& parString);
- //! String to store the propagator name
+ //! String to store the propagator name
TString name_;
//! Name of the input parameter file
TString paramFileName_;
@@ -415,10 +455,10 @@
TMatrixD ReSqrtRhoMatrix_;
//! Imaginary part of the square root of the phase space density diagonal matrix
TMatrixD ImSqrtRhoMatrix_;
- //! Real part of the unitary T matrix
- TMatrixD ReTMatrix_;
- //! Imaginary part of the unitary T matrix
- TMatrixD ImTMatrix_;
+ //! Real part of the unitary T matrix
+ TMatrixD ReTMatrix_;
+ //! Imaginary part of the unitary T matrix
+ TMatrixD ImTMatrix_;
//! Number of channels
Int_t nChannels_;
@@ -426,12 +466,12 @@
Int_t nPoles_;
//! Vector of squared pole masses
- std::vector<LauParameter> mSqPoles_;
+ std::vector<LauParameter> mSqPoles_;
//! Array of coupling constants
- LauParArray gCouplings_;
+ LauParArray gCouplings_;
//! Array of scattering SVP values
- LauParArray fScattering_;
+ LauParArray fScattering_;
//! Vector of phase space types
std::vector<Int_t> phaseSpaceTypes_;
@@ -490,8 +530,8 @@
//! Control the output of the functions
Bool_t verbose_;
- //! Control if scattering constants are channel symmetric: f_ji = f_ij
- Bool_t scattSymmetry_;
+ //! Control if scattering constants are channel symmetric: f_ji = f_ij
+ Bool_t scattSymmetry_;
ClassDef(LauKMatrixPropagator,0) // K-matrix amplitude model
};
diff --git a/src/LauAbsResonance.cc b/src/LauAbsResonance.cc
--- a/src/LauAbsResonance.cc
+++ b/src/LauAbsResonance.cc
@@ -85,30 +85,13 @@
LauAbsResonance::LauAbsResonance(LauResonanceInfo* resInfo, const Int_t resPairAmpInt, const LauDaughters* daughters) :
resInfo_(resInfo),
daughters_(daughters),
- nameParent_(""), nameDaug1_(""), nameDaug2_(""), nameBachelor_(""),
- chargeParent_(0), chargeDaug1_(0), chargeDaug2_(0), chargeBachelor_(0),
- massParent_(0.0), massDaug1_(0.0), massDaug2_(0.0), massBachelor_(0.0),
resName_( (resInfo!=0) ? resInfo->getName() : "" ),
sanitisedName_( (resInfo!=0) ? resInfo->getSanitisedName() : "" ),
resMass_( (resInfo!=0) ? resInfo->getMass() : 0 ),
resWidth_( (resInfo!=0) ? resInfo->getWidth() : 0 ),
resSpin_( (resInfo!=0) ? resInfo->getSpin() : 0 ),
resCharge_( (resInfo!=0) ? resInfo->getCharge() : 0 ),
- resPairAmpInt_(resPairAmpInt),
- parBWFactor_(0),
- resBWFactor_(0),
- spinType_(Zemach_P),
- flipHelicity_(kFALSE),
- ignoreMomenta_(kFALSE),
- ignoreSpin_(kFALSE),
- ignoreBarrierScaling_(kFALSE),
- mass_(0.0),
- cosHel_(0.0),
- q_(0.0),
- p_(0.0),
- pstar_(0.0),
- erm_(1.0),
- covFactor_(1.0)
+ resPairAmpInt_(resPairAmpInt)
{
if ( resInfo == 0 ) {
std::cerr << "ERROR in LauAbsResonance constructor : null LauResonanceInfo object provided" << std::endl;
@@ -143,32 +126,10 @@
// Constructor
LauAbsResonance::LauAbsResonance(const TString& resName, const Int_t resPairAmpInt, const LauDaughters* daughters) :
- resInfo_(0),
daughters_(daughters),
- nameParent_(""), nameDaug1_(""), nameDaug2_(""), nameBachelor_(""),
- chargeParent_(0), chargeDaug1_(0), chargeDaug2_(0), chargeBachelor_(0),
- massParent_(0.0), massDaug1_(0.0), massDaug2_(0.0), massBachelor_(0.0),
resName_(resName),
sanitisedName_(resName),
- resMass_(0),
- resWidth_(0),
- resSpin_(0),
- resCharge_(0),
- resPairAmpInt_(resPairAmpInt),
- parBWFactor_(0),
- resBWFactor_(0),
- spinType_(Zemach_P),
- flipHelicity_(kFALSE),
- ignoreMomenta_(kFALSE),
- ignoreSpin_(kFALSE),
- ignoreBarrierScaling_(kFALSE),
- mass_(0.0),
- cosHel_(0.0),
- q_(0.0),
- p_(0.0),
- pstar_(0.0),
- erm_(1.0),
- covFactor_(1.0)
+ resPairAmpInt_(resPairAmpInt)
{
if ( daughters_ == 0 ) {
std::cerr << "ERROR in LauAbsResonance constructor : null LauDaughters object provided" << std::endl;
diff --git a/src/LauKMatrixProdPole.cc b/src/LauKMatrixProdPole.cc
--- a/src/LauKMatrixProdPole.cc
+++ b/src/LauKMatrixProdPole.cc
@@ -106,3 +106,32 @@
return amp;
}
+
+const std::vector<LauParameter*>& LauKMatrixProdPole::getFloatingParameters()
+{
+
+ this->clearFloatingParameters();
+
+ Int_t nChannels = thePropagator_->getNChannels();
+
+ for (int jChannel = 0 ; jChannel < nChannels ; jChannel++)
+ {
+ LauParameter& par_gj_ = thePropagator_->getCouplingParameter(poleIndex_, jChannel);
+ if ( !par_gj_.fixed() )
+ {
+ this->addFloatingParameter( &par_gj_ );
+ }
+ }
+
+ for (int iPole = 0 ; iPole < thePropagator_->getNPoles() ; iPole++)
+ {
+ LauParameter& par_polemasssq_ = thePropagator_->getPoleMassSqParameter(poleIndex_);
+ if ( !par_polemasssq_.fixed() )
+ {
+ this->addFloatingParameter( &par_polemasssq_ );
+ }
+ }
+
+ return this->getParameters();
+
+}
\ No newline at end of file
diff --git a/src/LauKMatrixProdSVP.cc b/src/LauKMatrixProdSVP.cc
--- a/src/LauKMatrixProdSVP.cc
+++ b/src/LauKMatrixProdSVP.cc
@@ -94,3 +94,47 @@
}
+const std::vector<LauParameter*>& LauKMatrixProdSVP::getFloatingParameters()
+{
+
+ this->clearFloatingParameters();
+
+ Int_t nChannels = thePropagator_->getNChannels();
+
+ for (int jChannel = 0 ; jChannel < nChannels ; jChannel++)
+ {
+ LauParameter& par_f_ = thePropagator_->getScatteringParameter(channelIndex_, jChannel);
+ if ( !par_f_.fixed() )
+ {
+ this->addFloatingParameter( &par_f_ );
+ }
+
+ LauParameter& par_mSq0_ = thePropagator_->getPoleMassSqParameter(jChannel);
+ if ( !par_mSq0_.fixed() )
+ {
+ this->addFloatingParameter( &par_mSq0_ );
+ }
+
+ }
+
+ LauParameter& par_s0Prod_ = thePropagator_->gets0Prod();
+ if ( !par_s0Prod_.fixed() )
+ {
+ this->addFloatingParameter( &par_s0Prod_ );
+ }
+
+ LauParameter& par_sA_ = thePropagator_->getsA();
+ if ( !par_sA_.fixed() )
+ {
+ this->addFloatingParameter( &par_sA_ );
+ }
+
+ LauParameter& par_sA0_ = thePropagator_->getsA0();
+ if ( !par_sA0_.fixed() )
+ {
+ this->addFloatingParameter( &par_sA0_ );
+ }
+
+ return this->getParameters();
+
+}
diff --git a/src/LauKMatrixPropagator.cc b/src/LauKMatrixPropagator.cc
--- a/src/LauKMatrixPropagator.cc
+++ b/src/LauKMatrixPropagator.cc
@@ -45,7 +45,7 @@
ClassImp(LauKMatrixPropagator)
LauKMatrixPropagator::LauKMatrixPropagator(const TString& name, const TString& paramFile,
- Int_t resPairAmpInt, Int_t nChannels,
+ Int_t resPairAmpInt, Int_t nChannels,
Int_t nPoles, Int_t rowIndex) :
name_(name),
paramFileName_(paramFile),
@@ -452,7 +452,7 @@
Double_t poleMass = std::atof(theLine[2].c_str());
Double_t poleMassSq = poleMass*poleMass;
- LauParameter mPoleParam(poleMassSq);
+ LauParameter mPoleParam(Form("KM_%s_poleMassSq_%i",name_.Data(),poleIndex),poleMassSq);
mSqPoles_[poleIndex] = mPoleParam;
cout<<"Added bare pole mass "<<poleMass<<" GeV for pole number "<<poleIndex+1<<endl;
@@ -460,7 +460,7 @@
for (Int_t iChannel = 0; iChannel < nChannels_; iChannel++) {
Double_t couplingConst = std::atof(theLine[iChannel+3].c_str());
- LauParameter couplingParam(couplingConst);
+ LauParameter couplingParam(Form("KM_%s_gCoupling_%i_%i",name_.Data(),poleIndex,iChannel),couplingConst);
gCouplings_[poleIndex][iChannel] = couplingParam;
cout<<"Added coupling parameter g^{"<<poleIndex+1<<"}_"
@@ -473,8 +473,8 @@
} else {
cerr<<"Error in LauKMatrixPropagator::storePole. Expecting "<<nExpect
- <<" numbers for pole definition but found "<<nWords
- <<" values instead"<<endl;
+ <<" numbers for pole definition but found "<<nWords
+ <<" values instead"<<endl;
}
@@ -499,7 +499,7 @@
for (Int_t iChannel = 0; iChannel < nChannels_; iChannel++) {
Double_t scattConst = std::atof(theLine[iChannel+2].c_str());
- LauParameter scattParam(scattConst);
+ LauParameter scattParam(Form("KM_%s_scattConst_%i_%i",name_.Data(),scattIndex,iChannel),scattConst);
fScattering_[scattIndex][iChannel] = scattParam;
cout<<"Added scattering parameter f("<<scattIndex+1<<","
@@ -527,31 +527,31 @@
Double_t mSq0Value = std::atof(parString.Data());
cout<<"Adler zero constant m0Sq = "<<mSq0Value<<endl;
- mSq0_ = LauParameter("mSq0", mSq0Value);
+ mSq0_ = LauParameter(Form("KM_%s_mSq0",name_.Data()), mSq0Value);
} else if (!keyword.CompareTo("s0scatt")) {
Double_t s0ScattValue = std::atof(parString.Data());
cout<<"Adler zero constant s0Scatt = "<<s0ScattValue<<endl;
- s0Scatt_ = LauParameter("s0Scatt", s0ScattValue);
+ s0Scatt_ = LauParameter(Form("KM_%s_s0Scatt",name_.Data()), s0ScattValue);
} else if (!keyword.CompareTo("s0prod")) {
Double_t s0ProdValue = std::atof(parString.Data());
cout<<"Adler zero constant s0Prod = "<<s0ProdValue<<endl;
- s0Prod_ = LauParameter("s0Scatt", s0ProdValue);
+ s0Prod_ = LauParameter(Form("KM_%s_s0Prod",name_.Data()), s0ProdValue);
} else if (!keyword.CompareTo("sa0")) {
Double_t sA0Value = std::atof(parString.Data());
cout<<"Adler zero constant sA0 = "<<sA0Value<<endl;
- sA0_ = LauParameter("sA0", sA0Value);
+ sA0_ = LauParameter(Form("KM_%s_sA0",name_.Data()), sA0Value);
} else if (!keyword.CompareTo("sa")) {
Double_t sAValue = std::atof(parString.Data());
cout<<"Adler zero constant sA = "<<sAValue<<endl;
- sA_ = LauParameter("sA", sAValue);
+ sA_ = LauParameter(Form("KM_%s_sA",name_.Data()), sAValue);
} else if (!keyword.CompareTo("scattsymmetry")) {
@@ -651,6 +651,16 @@
}
+LauParameter& LauKMatrixPropagator::getPoleMassSqParameter(Int_t poleIndex)
+{
+ if ( (parametersSet_ == kFALSE) || (poleIndex < 0 || poleIndex >= nPoles_) ) {
+ std::cerr << "ERROR from LauKMatrixPropagator::getPoleMassSqParameter(). Invalid pole." << std::endl;
+ gSystem->Exit(EXIT_FAILURE);
+ }
+
+ return mSqPoles_[poleIndex];
+}
+
Double_t LauKMatrixPropagator::getCouplingConstant(Int_t poleIndex, Int_t channelIndex) const
{
@@ -663,6 +673,18 @@
}
+LauParameter& LauKMatrixPropagator::getCouplingParameter(Int_t poleIndex, Int_t channelIndex)
+{
+
+ if ( (parametersSet_ == kFALSE) || (poleIndex < 0 || poleIndex >= nPoles_) || (channelIndex < 0 || channelIndex >= nChannels_) ) {
+ std::cerr << "ERROR from LauKMatrixPropagator::getCouplingParameter(). Invalid coupling." << std::endl;
+ gSystem->Exit(EXIT_FAILURE);
+ }
+
+ //std::cout << "Minvalue + range for " << poleIndex << ", " << channelIndex << ": " << gCouplings_[poleIndex][channelIndex].minValue() << " => + " << gCouplings_[poleIndex][channelIndex].range() <<
+ // " and init value: " << gCouplings_[poleIndex][channelIndex].initValue() << std::endl;
+ return gCouplings_[poleIndex][channelIndex];
+}
Double_t LauKMatrixPropagator::getScatteringConstant(Int_t channel1Index, Int_t channel2Index) const
{
@@ -676,6 +698,17 @@
}
+LauParameter& LauKMatrixPropagator::getScatteringParameter(Int_t channel1Index, Int_t channel2Index)
+{
+
+ if ( (parametersSet_ == kFALSE) || (channel1Index < 0 || channel1Index >= nChannels_) || (channel2Index < 0 || channel2Index >= nChannels_) ) {
+ std::cerr << "ERROR from LauKMatrixPropagator::getScatteringParameter(). Invalid chanel index." << std::endl;
+ gSystem->Exit(EXIT_FAILURE);
+ }
+
+ return fScattering_[channel1Index][channel2Index];
+}
+
Double_t LauKMatrixPropagator::calcSVPTerm(Double_t s, Double_t s0) const
{

File Metadata

Mime Type
text/plain
Expires
Mon, Sep 29, 7:48 AM (20 h, 46 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
6556042
Default Alt Text
D39.1759128488.diff (29 KB)

Event Timeline