diff --git a/PwaUtils/AbsXdecAmp.cc b/PwaUtils/AbsXdecAmp.cc index 5b8ad817c2b7d3fb9f81fe8b4bf596bfd09b13b4..361a79394e19dc2ed60f41d5d11886f0e5c169c9 100644 --- a/PwaUtils/AbsXdecAmp.cc +++ b/PwaUtils/AbsXdecAmp.cc @@ -137,7 +137,8 @@ void AbsXdecAmp::calcDynamics(EvtData* theData, AbsXdecAmp* grandmaAmp){ if(!_absDyn->isLdependent()){ theMutex.lock(); - _cachedDynMap[std::this_thread::get_id()][_absDyn->grandMaKey(grandmaAmp)] = _absDyn->eval( theData, grandmaAmp); + // _cachedDynMap[std::this_thread::get_id()][_absDyn->grandMaKey(grandmaAmp)] = _absDyn->eval( theData, grandmaAmp); + _cachedDynIdMap[std::this_thread::get_id()][_absDyn->grandMaId(grandmaAmp)] = _absDyn->eval( theData, grandmaAmp); theMutex.unlock(); } if(!_daughter1IsStable) _decAmpDaughter1->calcDynamics(theData, this); diff --git a/PwaUtils/AbsXdecAmp.hh b/PwaUtils/AbsXdecAmp.hh index 4b77870332f57ff6b5074ff10ea7f9871cd78f1a..923d3a3f98317e4b1a524554c4d7bae7d57284c7 100644 --- a/PwaUtils/AbsXdecAmp.hh +++ b/PwaUtils/AbsXdecAmp.hh @@ -45,7 +45,7 @@ class AbsDecay; //class AbsDynamics; -typedef CacheVector<std::map<std::string,std::map<Id2StringType, complex<float> > > > intStringShortComplFloatMap; +//typedef CacheVector<std::map<std::string,std::map<Id2StringType, complex<float> > > > intStringShortComplFloatMap; typedef CacheVector<std::map<unsigned short, std::map<Id2StringType, complex<float> > > > intUShortId2StringComplFloatMap; class AbsXdecAmp : public AbsParamHandler{ @@ -104,9 +104,8 @@ protected: Spin _lam2Min; Spin _lam2Max; - // intStringShortComplFloatMap _cachedAmpMap; intUShortId2StringComplFloatMap _cachedAmpIdMap; - std::map<std::thread::id, std::map<std::string, complex<float> > > _cachedDynMap; + std::map<std::thread::id, std::map<unsigned short, complex<float> > > _cachedDynIdMap; diff --git a/PwaUtils/HeliDecAmps.cc b/PwaUtils/HeliDecAmps.cc index ee1e946581a204f0a7bcb77c446a576c8be0f442..8684f0a566a8aa288f53634da6fda6851659349e 100644 --- a/PwaUtils/HeliDecAmps.cc +++ b/PwaUtils/HeliDecAmps.cc @@ -260,7 +260,8 @@ complex<double> HeliDecAmps::XdecAmp(Spin& lamX, EvtData* theData, Spin& lamFs, // result*=_preFactor*_isospinCG*sqrt(2.*_JPCPtr->J+1.); if (_absDyn->isLdependent()) result*=_cachedDynLMap.at(std::this_thread::get_id()); - else result*=_cachedDynMap.at(std::this_thread::get_id()).at(_absDyn->grandMaKey(grandmaAmp)); + // else result*=_cachedDynMap.at(std::this_thread::get_id()).at(_absDyn->grandMaKey(grandmaAmp)); + else result*=_cachedDynIdMap.at(std::this_thread::get_id()).at(_absDyn->grandMaId(grandmaAmp)); if(result.real()!=result.real()){ Alert << "result:\t" << result << endmsg; diff --git a/PwaUtils/LSDecAmps.cc b/PwaUtils/LSDecAmps.cc index 24c1a7b17e6cc5539a39b1aea4f82ec9587b9d91..ab92ebea42a173c090ade812d6c51c879fadc189 100644 --- a/PwaUtils/LSDecAmps.cc +++ b/PwaUtils/LSDecAmps.cc @@ -173,7 +173,8 @@ complex<double> LSDecAmps::lsLoop(AbsXdecAmp* grandmaAmp, Spin& lamX, EvtData* t result+=amp; } } - if (!_absDyn->isLdependent()) result *=_cachedDynMap.at(std::this_thread::get_id()).at(_absDyn->grandMaKey(grandmaAmp)); + // if (!_absDyn->isLdependent()) result *=_cachedDynMap.at(std::this_thread::get_id()).at(_absDyn->grandMaKey(grandmaAmp)); + if (!_absDyn->isLdependent()) result *=_cachedDynIdMap.at(std::this_thread::get_id()).at(_absDyn->grandMaId(grandmaAmp)); return result; } diff --git a/PwaUtils/TensorDecAmps.cc b/PwaUtils/TensorDecAmps.cc index e73b66373f9319dc0b40c8ac3c9ac8352cde8a6a..8cb20982183b8951c8b992817c668b189e1805fd 100644 --- a/PwaUtils/TensorDecAmps.cc +++ b/PwaUtils/TensorDecAmps.cc @@ -140,7 +140,8 @@ complex<double> TensorDecAmps::lsLoop(AbsXdecAmp* grandmaAmp, Spin lamX, EvtData result+=tmpResult; } - if (!_absDyn->isLdependent()) result *=_cachedDynMap.at(std::this_thread::get_id()).at(_absDyn->grandMaKey(grandmaAmp)); + //if (!_absDyn->isLdependent()) result *=_cachedDynMap.at(std::this_thread::get_id()).at(_absDyn->grandMaKey(grandmaAmp)); + if (!_absDyn->isLdependent()) result *=_cachedDynIdMap.at(std::this_thread::get_id()).at(_absDyn->grandMaId(grandmaAmp)); result*=_isospinCG; return result;