Changeset View
Changeset View
Standalone View
Standalone View
src/LauResonanceMaker.cc
Show First 20 Lines • Show All 619 Lines • ▼ Show 20 Lines | if ( factor_iter != bwFactors_.end() ) { | ||||
// If not then we just store the value to be used later | // If not then we just store the value to be used later | ||||
BlattWeisskopfCategoryInfo& categoryInfo = bwFactors_[bwCategory]; | BlattWeisskopfCategoryInfo& categoryInfo = bwFactors_[bwCategory]; | ||||
categoryInfo.bwFactor_ = 0; | categoryInfo.bwFactor_ = 0; | ||||
categoryInfo.defaultRadius_ = -1.0; | categoryInfo.defaultRadius_ = -1.0; | ||||
categoryInfo.radiusFixed_ = fixRadius; | categoryInfo.radiusFixed_ = fixRadius; | ||||
} | } | ||||
} | } | ||||
LauBlattWeisskopfFactor* LauResonanceMaker::getParentBWFactor(Int_t resSpin, LauBlattWeisskopfFactor::BarrierType barrierType) | |||||
{ | |||||
LauBlattWeisskopfFactor* bwFactor(0); | |||||
// Look up the category in the category information map | |||||
BWFactorCategoryMap::iterator factor_iter = bwFactors_.find( LauBlattWeisskopfFactor::Parent ); | |||||
if ( factor_iter != bwFactors_.end() ) { | |||||
// If it exists, we can check if the factor object has been created | |||||
BlattWeisskopfCategoryInfo& categoryInfo = factor_iter->second; | |||||
if ( categoryInfo.bwFactor_ != 0 ) { | |||||
// If so, simply clone it | |||||
bwFactor = categoryInfo.bwFactor_->createClone( resSpin, barrierType ); | |||||
} | |||||
} | |||||
if ( bwFactor==0 ) { | |||||
std::cerr<<"ERROR in LauResonanceMaker::getParentBWFactor : No parent Blatt-Weisskopf factor found to be cloned for K-matrix."<<std::endl; | |||||
} | |||||
return bwFactor; | |||||
} | |||||
LauBlattWeisskopfFactor* LauResonanceMaker::getBWFactor( const LauBlattWeisskopfFactor::BlattWeisskopfCategory bwCategory, const LauResonanceInfo* resInfo ) | LauBlattWeisskopfFactor* LauResonanceMaker::getBWFactor( const LauBlattWeisskopfFactor::BlattWeisskopfCategory bwCategory, const LauResonanceInfo* resInfo ) | ||||
{ | { | ||||
LauBlattWeisskopfFactor* bwFactor(0); | LauBlattWeisskopfFactor* bwFactor(0); | ||||
// If this is an independent factor, create it and add it to the list of independent factors, then return it | // If this is an independent factor, create it and add it to the list of independent factors, then return it | ||||
if ( bwCategory == LauBlattWeisskopfFactor::Indep ) { | if ( bwCategory == LauBlattWeisskopfFactor::Indep ) { | ||||
bwFactor = new LauBlattWeisskopfFactor( *resInfo, bwBarrierType_, bwRestFrame_, bwCategory ); | bwFactor = new LauBlattWeisskopfFactor( *resInfo, bwBarrierType_, bwRestFrame_, bwCategory ); | ||||
bwIndepFactors_.push_back(bwFactor); | bwIndepFactors_.push_back(bwFactor); | ||||
Show All 13 Lines | if ( factor_iter == bwFactors_.end() ) { | ||||
categoryInfo.radiusFixed_ = kTRUE; | categoryInfo.radiusFixed_ = kTRUE; | ||||
} else { | } else { | ||||
// If it exists, we can check if the factor object has been created | // If it exists, we can check if the factor object has been created | ||||
BlattWeisskopfCategoryInfo& categoryInfo = factor_iter->second; | BlattWeisskopfCategoryInfo& categoryInfo = factor_iter->second; | ||||
if ( categoryInfo.bwFactor_ != 0 ) { | if ( categoryInfo.bwFactor_ != 0 ) { | ||||
// If so, simply clone it | // If so, simply clone it | ||||
const UInt_t resSpin = resInfo->getSpin(); | const UInt_t resSpin = resInfo->getSpin(); | ||||
bwFactor = categoryInfo.bwFactor_->createClone( resSpin ); | bwFactor = categoryInfo.bwFactor_->createClone( resSpin, categoryInfo.bwFactor_->getBarrierType() ); | ||||
} else { | } else { | ||||
// Otherwise we need to create it, using the default value if it has been set | // Otherwise we need to create it, using the default value if it has been set | ||||
if ( categoryInfo.defaultRadius_ >= 0.0 ) { | if ( categoryInfo.defaultRadius_ >= 0.0 ) { | ||||
bwFactor = new LauBlattWeisskopfFactor( *resInfo, categoryInfo.defaultRadius_, bwBarrierType_, bwRestFrame_, bwCategory ); | bwFactor = new LauBlattWeisskopfFactor( *resInfo, categoryInfo.defaultRadius_, bwBarrierType_, bwRestFrame_, bwCategory ); | ||||
} else { | } else { | ||||
bwFactor = new LauBlattWeisskopfFactor( *resInfo, bwBarrierType_, bwRestFrame_, bwCategory ); | bwFactor = new LauBlattWeisskopfFactor( *resInfo, bwBarrierType_, bwRestFrame_, bwCategory ); | ||||
} | } | ||||
categoryInfo.bwFactor_ = bwFactor; | categoryInfo.bwFactor_ = bwFactor; | ||||
▲ Show 20 Lines • Show All 165 Lines • ▼ Show 20 Lines | switch ( resType ) { | ||||
case LauAbsResonance::EFKLLM : | case LauAbsResonance::EFKLLM : | ||||
// EFKLLM form-factor description of the K-pi S-wave | // EFKLLM form-factor description of the K-pi S-wave | ||||
std::cout<<" : Using EFKLLM lineshape. "<<std::endl; | std::cout<<" : Using EFKLLM lineshape. "<<std::endl; | ||||
theResonance = new LauEFKLLMRes(resInfo, resPairAmpInt, daughters); | theResonance = new LauEFKLLMRes(resInfo, resPairAmpInt, daughters); | ||||
break; | break; | ||||
case LauAbsResonance::KMatrix : | case LauAbsResonance::KMatrix : | ||||
// K-matrix description of S-wave | // K-matrix description | ||||
std::cerr<<"ERROR in LauResonanceMaker::getResonance : K-matrix type specified, which should be separately handled."<<std::endl; | std::cerr<<"ERROR in LauResonanceMaker::getResonance : K-matrix type specified, which should be separately handled."<<std::endl; | ||||
break; | break; | ||||
case LauAbsResonance::FlatNR : | case LauAbsResonance::FlatNR : | ||||
// uniform NR amplitude - arguments are there to preserve the interface | // uniform NR amplitude - arguments are there to preserve the interface | ||||
std::cout<<" : Using uniform NR lineshape. "<<std::endl; | std::cout<<" : Using uniform NR lineshape. "<<std::endl; | ||||
// we override resPairAmpInt here | // we override resPairAmpInt here | ||||
theResonance = new LauFlatNR(resInfo, 0, daughters); | theResonance = new LauFlatNR(resInfo, 0, daughters); | ||||
▲ Show 20 Lines • Show All 149 Lines • Show Last 20 Lines |