Changeset View
Changeset View
Standalone View
Standalone View
inc/LauBlattWeisskopfFactor.hh
Show All 30 Lines | /*! \class LauBlattWeisskopfFactor | ||||
This factor is used in resonance models such as the Relativistic Breit-Wigner. | This factor is used in resonance models such as the Relativistic Breit-Wigner. | ||||
*/ | */ | ||||
#ifndef LAU_BLATTWEISSKOPFFACTOR | #ifndef LAU_BLATTWEISSKOPFFACTOR | ||||
#define LAU_BLATTWEISSKOPFFACTOR | #define LAU_BLATTWEISSKOPFFACTOR | ||||
#include "Rtypes.h" | #include "Rtypes.h" | ||||
#include "TString.h" | |||||
johndan: Needed, annoyingly, for the default argument assignment of `""` to the `TString` parameter of… | |||||
class LauParameter; | class LauParameter; | ||||
class LauResonanceInfo; | class LauResonanceInfo; | ||||
class LauBlattWeisskopfFactor { | class LauBlattWeisskopfFactor final { | ||||
public: | public: | ||||
//! Define the allowed types of barrier factors | //! Define the allowed types of barrier factors | ||||
enum BarrierType { | enum BarrierType { | ||||
BWBarrier, /*!< Blatt-Weisskopf barrier factor (for use when momentum terms not used in angular term) */ | BWBarrier, /*!< Blatt-Weisskopf barrier factor (for use when momentum terms not used in angular term) */ | ||||
BWPrimeBarrier, /*!< Blatt-Weisskopf barrier factor (for use when momentum terms are used in angular term) - the default */ | BWPrimeBarrier, /*!< Blatt-Weisskopf barrier factor (for use when momentum terms are used in angular term) - the default */ | ||||
ExpBarrier /*!< expoential barrier factor (mostly used for virtual contributions) */ | ExpBarrier /*!< expoential barrier factor (mostly used for virtual contributions) */ | ||||
}; | }; | ||||
//! Define the rest frame in which the momentum should be calculated (only relevant for bachelor) | //! Define the rest frame in which the momentum should be calculated (only relevant for bachelor) | ||||
enum RestFrame { | enum RestFrame { | ||||
Show All 22 Lines | public: | ||||
}; | }; | ||||
//! Constructor | //! Constructor | ||||
LauBlattWeisskopfFactor( const LauResonanceInfo& resInfo, const BarrierType barrierType, const RestFrame restFrame, const BlattWeisskopfCategory category ); | LauBlattWeisskopfFactor( const LauResonanceInfo& resInfo, const BarrierType barrierType, const RestFrame restFrame, const BlattWeisskopfCategory category ); | ||||
//! Constructor | //! Constructor | ||||
LauBlattWeisskopfFactor( const LauResonanceInfo& resInfo, const Double_t resRadius, const BarrierType barrierType, const RestFrame restFrame, const BlattWeisskopfCategory category ); | LauBlattWeisskopfFactor( const LauResonanceInfo& resInfo, const Double_t resRadius, const BarrierType barrierType, const RestFrame restFrame, const BlattWeisskopfCategory category ); | ||||
//! Destructor | //! Constructor | ||||
virtual ~LauBlattWeisskopfFactor(); | LauBlattWeisskopfFactor( const Int_t spin, const Double_t resRadius, const BarrierType barrierType, const RestFrame restFrame, const BlattWeisskopfCategory category ); | ||||
//! Method to create a new factor with cloned radius parameter | //! Method to create a new factor with cloned radius parameter | ||||
/*! | /*! | ||||
\param newSpin the value of the spin to use for the created instance | \param newSpin the value of the spin to use for the created instance | ||||
*/ | */ | ||||
LauBlattWeisskopfFactor* createClone( const UInt_t newSpin , const BarrierType newBarrierType ); | LauBlattWeisskopfFactor* createClone( const UInt_t newSpin , const BarrierType newBarrierType ); | ||||
//! Retrieve the radius parameter | //! Retrieve the radius parameter | ||||
Show All 9 Lines | public: | ||||
RestFrame getRestFrame() const { return restFrame_; } | RestFrame getRestFrame() const { return restFrame_; } | ||||
//! Calculate form factor value | //! Calculate form factor value | ||||
/*! | /*! | ||||
\param p the value of the momentum | \param p the value of the momentum | ||||
*/ | */ | ||||
Double_t calcFormFactor( const Double_t p ) const; | Double_t calcFormFactor( const Double_t p ) const; | ||||
protected: | |||||
//! Set the name of the radius parameter | |||||
TString setRadiusName( const LauResonanceInfo& resInfo, const BlattWeisskopfCategory category ); | |||||
private: | private: | ||||
//! Copy constructor | //! Copy constructor | ||||
LauBlattWeisskopfFactor( const LauBlattWeisskopfFactor& other, const UInt_t newSpin, const BarrierType newBarrierType ); | LauBlattWeisskopfFactor( const LauBlattWeisskopfFactor& other, const UInt_t newSpin, const BarrierType newBarrierType ); | ||||
//! Copy assignment operator (not implemented) | //! Copy assignment operator (not implemented) | ||||
LauBlattWeisskopfFactor& operator=( const LauBlattWeisskopfFactor& other ); | LauBlattWeisskopfFactor& operator=( const LauBlattWeisskopfFactor& other ); | ||||
//! Set the name of the radius parameter | |||||
Done Inline ActionsThis is the new function I had to introduce which doesn't expect a resInfo argument (since it's not needed in most cases for naming the Blatt-Weisskopf factor category) johndan: This is the new function I had to introduce which doesn't expect a `resInfo` argument (since… | |||||
TString setRadiusName( const LauResonanceInfo& resInfo, const BlattWeisskopfCategory category ); | |||||
//! Set the name of the radius parameter | |||||
TString setRadiusName( const BlattWeisskopfCategory category ); | |||||
//! Set the name of the radius parameter | |||||
TString setRadiusName( const TString& categoryName ); | |||||
//! Resonance spin | //! Resonance spin | ||||
const UInt_t spin_; | const UInt_t spin_; | ||||
//! Radius parameter | //! Radius parameter | ||||
LauParameter* radius_; | LauParameter* radius_; | ||||
//! Barrier type | //! Barrier type | ||||
const BarrierType barrierType_; | const BarrierType barrierType_; | ||||
//! Rest frame | //! Rest frame | ||||
const RestFrame restFrame_; | const RestFrame restFrame_; | ||||
ClassDef(LauBlattWeisskopfFactor, 0) | ClassDef(LauBlattWeisskopfFactor, 0) | ||||
}; | }; | ||||
#endif | #endif |
Needed, annoyingly, for the default argument assignment of "" to the TString parameter of setRadiusName.