Changeset View
Changeset View
Standalone View
Standalone View
inc/LauRescatterThreshold.hh
- This file was added.
/* | |||||
Copyright 2004 University of Warwick | |||||
Licensed under the Apache License, Version 2.0 (the "License"); | |||||
you may not use this file except in compliance with the License. | |||||
You may obtain a copy of the License at | |||||
http://www.apache.org/licenses/LICENSE-2.0 | |||||
Unless required by applicable law or agreed to in writing, software | |||||
distributed under the License is distributed on an "AS IS" BASIS, | |||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||||
See the License for the specific language governing permissions and | |||||
limitations under the License. | |||||
*/ | |||||
/* | |||||
Laura++ package authors: | |||||
John Back | |||||
Paul Harrison | |||||
Thomas Latham | |||||
*/ | |||||
/*! \file LauRescatterThreshold.hh | |||||
\brief File containing declaration of LauRescatterThreshold class. | |||||
*/ | |||||
/*! \class LauRescatterThreshold | |||||
\brief Class for defining the threshold-rescattering model. | |||||
Defines a threshold-rescattering model. | |||||
*/ | |||||
#ifndef LAU_RESCATTER_THRESHOLD | |||||
#define LAU_RESCATTER_THRESHOLD | |||||
#include "TString.h" | |||||
#include "LauComplex.hh" | |||||
#include "LauAbsResonance.hh" | |||||
class LauKinematics; | |||||
class LauParameter; | |||||
class LauRescatterThreshold : public LauAbsResonance { | |||||
public: | |||||
//! Constructor | |||||
/*! | |||||
\param [in] resInfo the object containing information on the resonance name, mass, width, spin, charge, etc. | |||||
\param [in] resType the model of the resonance | |||||
\param [in] resPairAmpInt the number of the daughter not produced by the resonance | |||||
\param [in] daughters the daughter particles | |||||
*/ | |||||
LauRescatterThreshold(LauResonanceInfo* resInfo, const Int_t resPairAmpInt, const LauDaughters* daughters); | |||||
//! Destructor | |||||
virtual ~LauRescatterThreshold(); | |||||
//! Override the enforcement of pure Legendre polynomial spin factors | |||||
/*! | |||||
By default this model uses pure Legendre polynomial | |||||
spin factors, regardless of the default type set in | |||||
LauResonanceMaker or any specific request from the user. | |||||
This function allows the enforcement to be overridden. | |||||
\param [in] forceLegendre boolean flag (kTRUE, the default, implies enforcement of pure Legendre spin factors, kFALSE overrides this to allow use of other formalisms) | |||||
*/ | |||||
void enforceLegendreSpinFactors( const Bool_t forceLegendre ) { forceLegendre_ = forceLegendre; } | |||||
//! Initialise the model | |||||
virtual void initialise(); | |||||
//! Get the resonance model type | |||||
/*! | |||||
\return the resonance model type | |||||
*/ | |||||
virtual LauAbsResonance::LauResonanceModel getResonanceModel() const {return LauAbsResonance::RescatterThreshold;} | |||||
//! Compute phasespace factor | |||||
virtual LauComplex phspFactor(const Double_t mass, const Double_t m1, const Double_t m2); | |||||
//! Set value of the various parameters | |||||
/*! | |||||
\param [in] name the name of the parameter to be changed | |||||
\param [in] value the new parameter value | |||||
*/ | |||||
virtual void setResonanceParameter(const TString& name, const Double_t value); | |||||
//! Allow the various parameters to float in the fit | |||||
/*! | |||||
\param [in] name the name of the parameter to be floated | |||||
*/ | |||||
virtual void floatResonanceParameter(const TString& name); | |||||
//! Access the given resonance parameter | |||||
/*! | |||||
\param [in] name the name of the parameter | |||||
\return the corresponding parameter | |||||
*/ | |||||
virtual LauParameter* getResonanceParameter(const TString& name); | |||||
//! Retrieve the resonance parameters, e.g. so that they can be loaded into a fit | |||||
/*! | |||||
\return floating parameters of the resonance | |||||
*/ | |||||
virtual const std::vector<LauParameter*>& getFloatingParameters(); | |||||
protected: | |||||
//! Set the parameter c11, the coupling strength for self-scattering from/to the near-threshold channel | |||||
/*! | |||||
\param [in] c11, the new coupling strength value | |||||
*/ | |||||
void set_c11(const Double_t c11); | |||||
//! Set the parameter c12, the coupling strength for scattering from the near-threshold channel to the observation channel | |||||
/*! | |||||
\param [in] c12, the new coupling strength value | |||||
*/ | |||||
void set_c12(const Double_t c12); | |||||
//! Set the parameter rescatterChannel_massDaug1, the mass of the first (of two) members of the near-threshold channel | |||||
/*! | |||||
\param [in] rescatterChannel_massDaug1, the new mass of the first member of the near-threshold channel | |||||
*/ | |||||
void set_rescatterChannel_massDaug1(const Double_t rescatterChannel_massDaug1); | |||||
//! Set the parameter rescatterChannel_massDaug2, the mass of the second (of two) members of the near-threshold channel | |||||
/*! | |||||
\param [in] rescatterChannel_massDaug2, the new mass of the second member of the near-threshold channel | |||||
*/ | |||||
void set_rescatterChannel_massDaug2(const Double_t rescatterChannel_massDaug2); | |||||
//! Get the c11 coupling strength parameter | |||||
/*! | |||||
\return the c11 coupling strength parameter | |||||
*/ | |||||
Double_t get_c11() const {return (_c11!=0) ? _c11->unblindValue() : 0.0;} | |||||
//! Get the c12 coupling strength parameter | |||||
/*! | |||||
\return the c12 coupling strength parameter | |||||
*/ | |||||
Double_t get_c12() const {return (_c12!=0) ? _c12->unblindValue() : 0.0;} | |||||
//! Get the rescatterChannel_massDaug1 coupling strength parameter | |||||
/*! | |||||
\return the rescatterChannel_massDaug1 coupling strength parameter | |||||
*/ | |||||
Double_t get_rescatterChannel_massDaug1() const {return (_rescatterChannel_massDaug1!=0) ? _rescatterChannel_massDaug1->unblindValue() : 0.0;} | |||||
//! Get the rescatterChannel_massDaug2 coupling strength parameter | |||||
/*! | |||||
\return the rescatterChannel_massDaug2 coupling strength parameter | |||||
*/ | |||||
Double_t get_rescatterChannel_massDaug2() const {return (_rescatterChannel_massDaug2!=0) ? _rescatterChannel_massDaug2->unblindValue() : 0.0;} | |||||
//! See if the c11 parameter is fixed or floating | |||||
/*! | |||||
\return kTRUE if the c11 coupling strength parameter is fixed, kFALSE otherwise | |||||
*/ | |||||
Bool_t fix_c11() const {return (_c11!=0) ? _c11->fixed() : kTRUE;} | |||||
//! See if the c12 parameter is fixed or floating | |||||
/*! | |||||
\return kTRUE if the c12 coupling strength parameter is fixed, kFALSE otherwise | |||||
*/ | |||||
Bool_t fix_c12() const {return (_c12!=0) ? _c12->fixed() : kTRUE;} | |||||
//! See if the rescatterChannel_massDaug1 parameter is fixed or floating | |||||
/*! | |||||
\return kTRUE if the rescatterChannel_massDaug1 mass parameter is fixed, kFALSE otherwise | |||||
*/ | |||||
Bool_t fix_rescatterChannel_massDaug1() const {return (_rescatterChannel_massDaug1!=0) ? _rescatterChannel_massDaug1->fixed() : kTRUE;} | |||||
//! See if the rescatterChannel_massDaug2 parameter is fixed or floating | |||||
/*! | |||||
\return kTRUE if the rescatterChannel_massDaug2 mass parameter is fixed, kFALSE otherwise | |||||
*/ | |||||
Bool_t fix_rescatterChannel_massDaug2() const {return (_rescatterChannel_massDaug2!=0) ? _rescatterChannel_massDaug2->fixed() : kTRUE;} | |||||
//! Complex resonant amplitude | |||||
/*! | |||||
\param [in] mass appropriate invariant mass for the resonance | |||||
\param [in] spinTerm spin term | |||||
*/ | |||||
virtual LauComplex resAmp(Double_t mass, Double_t spinTerm); | |||||
private: | |||||
//! Copy constructor (not implemented) | |||||
LauRescatterThreshold(const LauRescatterThreshold& rhs); | |||||
//! Copy assignment operator (not implemented) | |||||
LauRescatterThreshold& operator=(const LauRescatterThreshold& rhs); | |||||
//! The c11 parameter | |||||
LauParameter* _c11; | |||||
//! The c12 parameter | |||||
LauParameter* _c12; | |||||
//! The rescatterChannel_massDaug1 parameter | |||||
LauParameter* _rescatterChannel_massDaug1; | |||||
//! The rescatterChannel_massDaug2 parameter | |||||
LauParameter* _rescatterChannel_massDaug2; | |||||
//! Force use of Legendre spin factors | |||||
Bool_t forceLegendre_; | |||||
//! Mass of daughters | |||||
Double_t _massDaug1; | |||||
Double_t _massDaug2; | |||||
ClassDef(LauRescatterThreshold,0) | |||||
}; | |||||
#endif |