Page MenuHomeHEPForge

D52.id223.diff
No OneTemporary

D52.id223.diff

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

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)

Event Timeline