From 5d6f1c493d7444cfec64a65201ab7f909fcc8c98 Mon Sep 17 00:00:00 2001
From: Julian Pychy <julian@mred.ep1.rub.de>
Date: Fri, 31 Oct 2014 16:39:20 +0100
Subject: [PATCH] fixed missing mutex

---
 PwaUtils/BreitWignerDynamics.hh   |  1 -
 PwaUtils/KMatrixDynamics.hh       |  1 -
 PwaUtils/KPiSWaveIso12Dynamics.hh |  1 -
 PwaUtils/PiPiSWaveASDynamics.cc   | 14 +++++---------
 PwaUtils/PiPiSWaveASDynamics.hh   |  1 -
 5 files changed, 5 insertions(+), 13 deletions(-)

diff --git a/PwaUtils/BreitWignerDynamics.hh b/PwaUtils/BreitWignerDynamics.hh
index 5f311440..b2cbd7fd 100644
--- a/PwaUtils/BreitWignerDynamics.hh
+++ b/PwaUtils/BreitWignerDynamics.hh
@@ -53,7 +53,6 @@ protected:
 
   double _currentMass;
   double _currentWidth;
-  std::map<int, complex<double> >  _cachedMap; 
 
 private:
 
diff --git a/PwaUtils/KMatrixDynamics.hh b/PwaUtils/KMatrixDynamics.hh
index 4b2a670c..b5b77820 100644
--- a/PwaUtils/KMatrixDynamics.hh
+++ b/PwaUtils/KMatrixDynamics.hh
@@ -65,7 +65,6 @@ protected:
   int _orderKMatBg;
   bool _withKMatAdler;
   double _currentMass;
-  std::map<int, complex<double> >  _cachedMap;
   std::map<std::string, std::shared_ptr<AbsXdecAmp> >  _grandMaAmpMap;
   
   std::shared_ptr<KMatrixRel> _kMatr;
diff --git a/PwaUtils/KPiSWaveIso12Dynamics.hh b/PwaUtils/KPiSWaveIso12Dynamics.hh
index ba79a70f..9079b01d 100644
--- a/PwaUtils/KPiSWaveIso12Dynamics.hh
+++ b/PwaUtils/KPiSWaveIso12Dynamics.hh
@@ -58,7 +58,6 @@ public:
 protected:
   //  std::string _massKey;
   double _currentMass;
-  std::map<int, complex<double> >  _cachedMap;
   std::map<std::string, std::shared_ptr<AbsXdecAmp> >  _grandMaAmpMap;
 
   std::shared_ptr<KMatrixKPiSFocus> _kMatr;
diff --git a/PwaUtils/PiPiSWaveASDynamics.cc b/PwaUtils/PiPiSWaveASDynamics.cc
index 46e25caf..b7f15e17 100644
--- a/PwaUtils/PiPiSWaveASDynamics.cc
+++ b/PwaUtils/PiPiSWaveASDynamics.cc
@@ -72,8 +72,9 @@ complex<double> result(0.,0.);
  
   bool readFromCachedMap=false;
 
+  theMutex.lock();
   if( _cacheAmps){
-    if(_recalcMap[currentKey]){
+    if(_recalcMap.at(currentKey)){
       bool currentEvtAlreadyCached=false;
       
       std::map<int, std::map<std::string, bool > >::iterator itAlreadyCached=_alreadyCached.find(evtNo);
@@ -83,15 +84,11 @@ complex<double> result(0.,0.);
 	  currentEvtAlreadyCached=itAlreadyCached2->second;     
 	}
 	else{
-	  theMutex.lock();
-	  _alreadyCached[evtNo][currentKey]=false;
-	  theMutex.unlock();
+	  _alreadyCached.at(evtNo)[currentKey]=false;
 	}   
       }
       else{ 
-	theMutex.lock();
 	_alreadyCached[evtNo][currentKey]=false;
-	theMutex.unlock();
       } 
   
       if(currentEvtAlreadyCached) readFromCachedMap=true;
@@ -103,15 +100,14 @@ complex<double> result(0.,0.);
     result=_cachedStringMap.at(evtNo).at(currentKey);
   }  
   else{
-      theMutex.lock();
       result=_fVecMap[currentKey]->evalProjMatrix(theData->DoubleString.at(_dynKey), _projectionIndex);
       if ( _cacheAmps){
 	_cachedStringMap[evtNo][currentKey]=result;
 	_alreadyCached.at(evtNo).at(currentKey)=true;
       }
-      theMutex.unlock();
   }
-  //  Info << "result: " << result << endmsg;  
+  theMutex.unlock();
+  
   return result;
 }
 
diff --git a/PwaUtils/PiPiSWaveASDynamics.hh b/PwaUtils/PiPiSWaveASDynamics.hh
index 868fd6e4..13d17351 100644
--- a/PwaUtils/PiPiSWaveASDynamics.hh
+++ b/PwaUtils/PiPiSWaveASDynamics.hh
@@ -62,7 +62,6 @@ protected:
   virtual int projectionIndex(std::vector<Particle*>& fsParticles);
 
   double _currentMass;
-  std::map<int, complex<double> >  _cachedMap;
   std::map<std::string, std::shared_ptr<AbsXdecAmp> >  _grandMaAmpMap;
 
   std::map<std::string, std::shared_ptr<FVector> > _fVecMap;
-- 
GitLab