Page Menu
Home
HEPForge
Search
Configure Global Search
Log In
Files
F8308528
D52.id223.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
5 KB
Subscribers
None
D52.id223.diff
View Options
diff --git a/inc/LauBlattWeisskopfFactor.hh b/inc/LauBlattWeisskopfFactor.hh
--- a/inc/LauBlattWeisskopfFactor.hh
+++ b/inc/LauBlattWeisskopfFactor.hh
@@ -36,6 +36,7 @@
#define LAU_BLATTWEISSKOPFFACTOR
#include "Rtypes.h"
+#include "TString.h"
class LauParameter;
class LauResonanceInfo;
@@ -83,6 +84,9 @@
//! Constructor
LauBlattWeisskopfFactor( const LauResonanceInfo& resInfo, const Double_t resRadius, const BarrierType barrierType, const RestFrame restFrame, const BlattWeisskopfCategory category );
+ //! Constructor
+ LauBlattWeisskopfFactor( const Int_t spin, const Double_t resRadius, const BarrierType barrierType, const RestFrame restFrame, const BlattWeisskopfCategory category );
+
//! Destructor
virtual ~LauBlattWeisskopfFactor();
@@ -121,6 +125,9 @@
//! Copy assignment operator (not implemented)
LauBlattWeisskopfFactor& operator=( const LauBlattWeisskopfFactor& other );
+ //! Set the name of the radius parameter
+ TString setRadiusName( const BlattWeisskopfCategory category, TString specifiedCategoryName="" );
+
//! Resonance spin
const UInt_t spin_;
diff --git a/src/LauBlattWeisskopfFactor.cc b/src/LauBlattWeisskopfFactor.cc
--- a/src/LauBlattWeisskopfFactor.cc
+++ b/src/LauBlattWeisskopfFactor.cc
@@ -58,6 +58,16 @@
std::cout << "INFO in LauBlattWeisskopfFactor constructor : creating radius parameter for category \"" << categoryName << "\", with initial value " << resRadius << std::endl;
}
+LauBlattWeisskopfFactor::LauBlattWeisskopfFactor( const Int_t spin, const Double_t resRadius, const BarrierType barrierType, const RestFrame restFrame, const BlattWeisskopfCategory category ) :
+ spin_(spin),
+ radius_(new LauParameter("NEED_A_GOOD_NAME",resRadius,0.0,10.0,kTRUE)),
+ barrierType_(barrierType),
+ restFrame_(restFrame)
+{
+ TString categoryName = this->setRadiusName( category );
+ std::cout << "INFO in LauBlattWeisskopfFactor constructor : creating radius parameter for category \"" << categoryName << "\", with initial value " << resRadius << std::endl;
+}
+
LauBlattWeisskopfFactor::~LauBlattWeisskopfFactor()
{
}
@@ -72,56 +82,70 @@
TString LauBlattWeisskopfFactor::setRadiusName( const LauResonanceInfo& resInfo, const BlattWeisskopfCategory category )
{
- TString name = "BarrierRadius_";
- TString categoryName;
-
switch (category) {
- case Parent :
- categoryName = "Parent";
- break;
case Indep :
- categoryName = resInfo.getSanitisedName();
- break;
- case Light :
- categoryName = "Light";
- break;
- case Kstar :
- categoryName = "Kstar";
- break;
- case Charm :
- categoryName = "Charm";
- break;
- case StrangeCharm :
- categoryName = "StrangeCharm";
- break;
- case Charmonium :
- categoryName = "Charmonium";
- break;
- case Beauty :
- categoryName = "Beauty";
- break;
- case StrangeBeauty :
- categoryName = "StrangeBeauty";
- break;
- case CharmBeauty :
- categoryName = "CharmBeauty";
- break;
- case Custom1 :
- categoryName = "Custom1";
- break;
- case Custom2 :
- categoryName = "Custom2";
- break;
- case Custom3 :
- categoryName = "Custom3";
- break;
- case Custom4 :
- categoryName = "Custom4";
+ return this->setRadiusName( category, resInfo.getSanitisedName() );
break;
default :
- categoryName = "Unknown";
+ return this->setRadiusName( category );
break;
}
+}
+
+TString LauBlattWeisskopfFactor::setRadiusName( const BlattWeisskopfCategory category, TString specifiedCategoryName )
+{
+ TString name = "BarrierRadius_";
+ TString categoryName;
+
+ if ( specifiedCategoryName.EqualTo("") ) {
+ switch (category) {
+ case Parent :
+ categoryName = "Parent";
+ break;
+ case Light :
+ categoryName = "Light";
+ break;
+ case Kstar :
+ categoryName = "Kstar";
+ break;
+ case Charm :
+ categoryName = "Charm";
+ break;
+ case StrangeCharm :
+ categoryName = "StrangeCharm";
+ break;
+ case Charmonium :
+ categoryName = "Charmonium";
+ break;
+ case Beauty :
+ categoryName = "Beauty";
+ break;
+ case StrangeBeauty :
+ categoryName = "StrangeBeauty";
+ break;
+ case CharmBeauty :
+ categoryName = "CharmBeauty";
+ break;
+ case Custom1 :
+ categoryName = "Custom1";
+ break;
+ case Custom2 :
+ categoryName = "Custom2";
+ break;
+ case Custom3 :
+ categoryName = "Custom3";
+ break;
+ case Custom4 :
+ categoryName = "Custom4";
+ break;
+ default :
+ categoryName = "Unknown";
+ break;
+ }
+ }
+ else {
+ categoryName = specifiedCategoryName;
+ }
name.Append(categoryName);
radius_->name(name);
diff --git a/src/LauResonanceMaker.cc b/src/LauResonanceMaker.cc
--- a/src/LauResonanceMaker.cc
+++ b/src/LauResonanceMaker.cc
@@ -639,6 +639,18 @@
if ( categoryInfo.bwFactor_ != 0 ) {
// If so, simply clone it
bwFactor = categoryInfo.bwFactor_->createClone( resSpin, barrierType );
+ } else {
+ // Otherwise we need to create it, using the default value if it has been set
+ if ( categoryInfo.defaultRadius_ >= 0.0 ) {
+ bwFactor = new LauBlattWeisskopfFactor( resSpin, categoryInfo.defaultRadius_, bwBarrierType_, bwRestFrame_, LauBlattWeisskopfFactor::Parent );
+ } else {
+ std::cerr<<"ERROR in LauResonanceMaker::getParentBWFactor : No default radius set for Blatt-Weisskopf factor category: Parent"<<std::endl;
+ }
+ categoryInfo.bwFactor_ = bwFactor;
+
+ // Set whether the radius should be fixed/floated
+ LauParameter* radius = bwFactor->getRadiusParameter();
+ radius->fixed( categoryInfo.radiusFixed_ );
}
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Dec 20, 12:20 PM (17 h, 10 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4022742
Default Alt Text
D52.id223.diff (5 KB)
Attached To
D52: Alterations to allow Blatt-Weisskopf factor for parent to be created in a model with only a K-matrix
Event Timeline
Log In to Comment