diff --git a/PwaUtils/EvtDataBaseList.hh b/PwaUtils/EvtDataBaseList.hh index eb5b560aa2d6649e6e2b5f93da4f1ae19858011c..804975d25ae0c125470db2e06dcc39701f1da838 100644 --- a/PwaUtils/EvtDataBaseList.hh +++ b/PwaUtils/EvtDataBaseList.hh @@ -44,7 +44,7 @@ typedef std::map<unsigned short, double> mapShortDouble; typedef std::map<unsigned short, Vector4<double> > mapShort4Vec; typedef std::map<unsigned short, map<Id2StringType, complex<double> > > mapShortInt2Complex; typedef std::map<unsigned short, map<unsigned short, map<Id3StringType, complex<double> > > > mapShortShortInt3Complex; - +typedef std::map<unsigned short, map<Id3StringType, map<unsigned short, complex<double> > > > mapShortInt3ShortComplex; struct EvtData { mapShortInt3Complex WignerDIdId3; @@ -55,6 +55,7 @@ struct EvtData { mapShortInt2Complex Complex2Spin; mapShortShortInt3Complex ComplexLS3Spin; mapShortShortInt3Complex ComplexN3Spin; + mapShortInt3ShortComplex Complex3SpinLS; double evtWeight; int evtNo; }; diff --git a/PwaUtils/IsobarTensorDecay.cc b/PwaUtils/IsobarTensorDecay.cc index f526622112bf3f2fdc60978cb2ea3d44734500ad..1a1692cfb4bc478df3e1d3c68047e1c5729f9c4b 100644 --- a/PwaUtils/IsobarTensorDecay.cc +++ b/PwaUtils/IsobarTensorDecay.cc @@ -295,7 +295,8 @@ void IsobarTensorDecay::fillWignerDs(std::map<std::string, Vector4<double> >& fs } Id3StringType IdLamXLam1Lam2=FunctionUtils::spin3Index(lamMother, lamDaughter1, lamDaughter2); unsigned short currentLSId=(*itJPCLS)->idnumberLS; - evtData->ComplexLS3Spin[_nameId][currentLSId][IdLamXLam1Lam2]=result(0); + // evtData->ComplexLS3Spin[_nameId][currentLSId][IdLamXLam1Lam2]=result(0); + evtData->Complex3SpinLS[_nameId][IdLamXLam1Lam2][currentLSId]=result(0); } } } diff --git a/PwaUtils/TensorDecAmps.cc b/PwaUtils/TensorDecAmps.cc index ee59d983a0a967e61ef734f661f26af84705dd75..2931e096bbac637470cc658a06a530fe1250fae6 100644 --- a/PwaUtils/TensorDecAmps.cc +++ b/PwaUtils/TensorDecAmps.cc @@ -119,7 +119,8 @@ complex<double> TensorDecAmps::lsLoop(AbsXdecAmp* grandmaAmp, Spin lamX, EvtData Spin lam1Max, Spin lam2Min, Spin lam2Max, bool withDecs) { complex<double> result(0.,0.); - map<unsigned short, map<Id3StringType, complex<double> > >& currentLS3SpinMap=theData->ComplexLS3Spin.at(_decay->nameId()); + // map<unsigned short, map<Id3StringType, complex<double> > >& currentLS3SpinMap=theData->ComplexLS3Spin.at(_decay->nameId()); + map<Id3StringType, map<unsigned short, complex<double> > >& current3SpinLSMap=theData->Complex3SpinLS.at(_decay->nameId()); std::vector< std::shared_ptr<const LScomb> >::const_iterator itLS; for(Spin lambda1=-_Jdaughter1; lambda1<=_Jdaughter1; ++lambda1){ @@ -127,9 +128,11 @@ complex<double> TensorDecAmps::lsLoop(AbsXdecAmp* grandmaAmp, Spin lamX, EvtData for(Spin lambda2=-_Jdaughter2; lambda2<=_Jdaughter2; ++lambda2){ if(lambda2<lam2Min || lambda2>lam2Max) continue; Id3StringType IdLamXLam1Lam2=FunctionUtils::spin3Index(lamX, lambda1, lambda2); + map<unsigned short, complex<double> >& currentLSMap = current3SpinLSMap.at(IdLamXLam1Lam2); complex<double> amp(0.,0.); for(itLS=_LSs.begin(); itLS!=_LSs.end(); ++itLS){ - complex<double> tmpamp=_currentParamMagExpi.at(*itLS)*currentLS3SpinMap.at((*itLS)->idnumberLS).at(IdLamXLam1Lam2); + //complex<double> tmpamp=_currentParamMagExpi.at(*itLS)*currentLS3SpinMap.at((*itLS)->idnumberLS).at(IdLamXLam1Lam2); + complex<double> tmpamp=_currentParamMagExpi.at(*itLS)*currentLSMap.at((*itLS)->idnumberLS); if (_absDyn->isLdependent()){ tmpamp *=_cachedDynIdLSMap.at((*itLS)->L).at(_absDyn->grandMaId(grandmaAmp)); }