diff --git a/Examples/Psi2STo2K2PiGam/AbsPsi2STo2K2PiGamLh.cc b/Examples/Psi2STo2K2PiGam/AbsPsi2STo2K2PiGamLh.cc index fc1293f80ffd5beefe4f05eda618c794b9a7b67e..4c2325d536eccaf182ce3c57291da69be95e927a 100644 --- a/Examples/Psi2STo2K2PiGam/AbsPsi2STo2K2PiGamLh.cc +++ b/Examples/Psi2STo2K2PiGam/AbsPsi2STo2K2PiGamLh.cc @@ -1678,7 +1678,51 @@ complex<double> AbsPsi2STo2K2PiGamLh::chiToK1Tof980_piKAmp(Psi2STo2K2PiGamData:: return result; } +complex<double> AbsPsi2STo2K2PiGamLh::chiToK1Tof0_piKAmp(Psi2STo2K2PiGamData::Psi2STo2K2PiGamEvtData* theData, std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collection::SharedPtrLess >& K1Prod, std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collection::SharedPtrLess >& K1Dec, double K1Mass, double K1Width, double f0Mass, double f0Width){ + Vector4<double> KpPiPi(theData->KpPiPi_HeliChic0_4V.E(), theData->KpPiPi_HeliChic0_4V.Px(), + theData->KpPiPi_HeliChic0_4V.Py(), theData->KpPiPi_HeliChic0_4V.Pz()); + + Vector4<double> KmPiPi(theData->KmPiPi_HeliChic0_4V.E(), theData->KmPiPi_HeliChic0_4V.Px(), + theData->KmPiPi_HeliChic0_4V.Py(), theData->KmPiPi_HeliChic0_4V.Pz()); + + Vector4<double> PiPi(theData->PiPi_HeliChic0_4V.E(), theData->PiPi_HeliChic0_4V.Px(), + theData->PiPi_HeliChic0_4V.Py(), theData->PiPi_HeliChic0_4V.Pz()); + + + Spin lamK1=0; + complex<double> result(0.,0.); + + std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collection::SharedPtrLess >::iterator itProd; + std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collection::SharedPtrLess >::iterator itDec; + + for ( itProd=K1Prod.begin(); itProd!=K1Prod.end(); ++itProd){ + + boost::shared_ptr<const JPCLS> theState=itProd->first; + double theMagProd=itProd->second.first; + double thePhiProd=itProd->second.second; + complex<double> expiphiProd(cos(thePhiProd), sin(thePhiProd)); + + complex<double> currentResultDec(0.,0.); + for ( itDec=K1Dec.begin(); itDec!=K1Dec.end(); ++itDec){ + + boost::shared_ptr<const JPCLS> theDecState=itDec->first; + double theMagDec=itDec->second.first; + double thePhiDec=itDec->second.second; + complex<double> expiphiDec(cos(thePhiDec), sin(thePhiDec)); + + complex<double> ampKpPiPi=conj(theData->DfK1pTof0Kp[1][0][0])*BreitWigner(KpPiPi, K1Mass, K1Width); + complex<double> ampKmPiPi=conj(theData->DfK1mTof0Km[1][0][0])*BreitWigner(KmPiPi, K1Mass, K1Width); + + + currentResultDec+=theMagDec*expiphiDec*sqrt(2.*theState->L+1.)*Clebsch(theState->L, 0., theState->S, 0, theState->J, 0)*Clebsch(1,0, 0, 0, theState->S, 0)*BreitWigner(PiPi, f0Mass, f0Width)*(ampKpPiPi+ampKmPiPi); + } + + result+=theMagProd*expiphiProd*currentResultDec; + } + return result; + +} void AbsPsi2STo2K2PiGamLh::print(std::ostream& os) const{ os << "AbsPsi2STo2K2PiGamLh::print\n"; diff --git a/Examples/Psi2STo2K2PiGam/AbsPsi2STo2K2PiGamLh.hh b/Examples/Psi2STo2K2PiGam/AbsPsi2STo2K2PiGamLh.hh index d16312d8ef1f3c20e14f3016bec12d22771a88ab..63051965585c23ac885819f59d1f509ca405d901 100644 --- a/Examples/Psi2STo2K2PiGam/AbsPsi2STo2K2PiGamLh.hh +++ b/Examples/Psi2STo2K2PiGam/AbsPsi2STo2K2PiGamLh.hh @@ -136,6 +136,9 @@ protected: virtual complex<double> chiToPi0Pi0ToK0KAmp(Psi2STo2K2PiGamData::Psi2STo2K2PiGamEvtData* theData, std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collection::SharedPtrLess >& ChiToPi0Pi0Amp, double Pi_0_Mass, double Pi_0_Width, double K0Mass, double K0Width); virtual complex<double> chiToK1Tof980_piKAmp(Psi2STo2K2PiGamData::Psi2STo2K2PiGamEvtData* theData, std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collection::SharedPtrLess >& K1Prod, std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collection::SharedPtrLess >& K1Dec, double K1Mass, double K1Width, double f980_Mass, double f980_gKK, double f980_gPiPi); + + virtual complex<double> chiToK1Tof0_piKAmp(Psi2STo2K2PiGamData::Psi2STo2K2PiGamEvtData* theData, std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collection::SharedPtrLess >& K1Prod, std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collection::SharedPtrLess >& K1Dec, double K1Mass, double K1Width, double f0Mass, double f0Width); + private: diff --git a/Examples/Psi2STo2K2PiGam/FitParams2K2PiGam.cc b/Examples/Psi2STo2K2PiGam/FitParams2K2PiGam.cc index 802654e111a45cebd12c7281febb36903ff6fc4c..c04ca59a82e02bd7ff4bd184fcbb1151ebfe22ce 100644 --- a/Examples/Psi2STo2K2PiGam/FitParams2K2PiGam.cc +++ b/Examples/Psi2STo2K2PiGam/FitParams2K2PiGam.cc @@ -64,6 +64,7 @@ FitParams2K2PiGam::FitParams2K2PiGam() _jpclsMap[paramEnum2K2PiGam::ChiToK_0_2400ToKf_0_1710]=theStates.ChiToK0K0States(); _jpclsMap[paramEnum2K2PiGam::ChiToK_1_2400K]=theStates.ChiToK1400ToK892piStates(); _jpclsMap[paramEnum2K2PiGam::K_1_2400Tof980K]=theStates.K1pTof0KStates(); + _jpclsMap[paramEnum2K2PiGam::K_1_2400Tof1710K]=theStates.K1pTof0KStates(); _jpclsMap[paramEnum2K2PiGam::K892K_1_1680]=theStates.ChiTo2K892States(); _jpclsMap[paramEnum2K2PiGam::ChiToK1680K1680]=theStates.ChiTo2K892States(); _jpclsMap[paramEnum2K2PiGam::ChiToK1680K_0_1430]=theStates.ChiToKst0Kst1States(); @@ -168,6 +169,7 @@ std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collecti else if (index==paramEnum2K2PiGam::ChiToK_0_2400ToKf_0_1710) return params.ChiToK_0_2400ToKf_0_1710; else if (index==paramEnum2K2PiGam::ChiToK_1_2400K) return params.ChiToK_1_2400K; else if (index==paramEnum2K2PiGam::K_1_2400Tof980K) return params.K_1_2400Tof980K; + else if (index==paramEnum2K2PiGam::K_1_2400Tof1710K) return params.K_1_2400Tof1710K; else if (index==paramEnum2K2PiGam::K892K_1_1680) return params.ChiToK892K1680; else if (index==paramEnum2K2PiGam::ChiToK1680K1680) return params.ChiToK1680K1680; else if (index==paramEnum2K2PiGam::ChiToK1680K_0_1430) return params.ChiToK1680K_0_1430; diff --git a/Examples/Psi2STo2K2PiGam/FitParams2K2PiGam.hh b/Examples/Psi2STo2K2PiGam/FitParams2K2PiGam.hh index 52ebf66f5ff2647790182246bdb6a788b9589beb..6b16abd01f5616adef6065a0b748e902ede0fc61 100644 --- a/Examples/Psi2STo2K2PiGam/FitParams2K2PiGam.hh +++ b/Examples/Psi2STo2K2PiGam/FitParams2K2PiGam.hh @@ -42,6 +42,7 @@ struct param2K2PiGam std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collection::SharedPtrLess > K_1_1270ToK_0_1430Pi; std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collection::SharedPtrLess > ChiToK_1_2400K; std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collection::SharedPtrLess > K_1_2400Tof980K; + std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collection::SharedPtrLess > K_1_2400Tof1710K; std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collection::SharedPtrLess > f980_pif1710_k; std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collection::SharedPtrLess > f980_kf1710_pi; std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collection::SharedPtrLess > ChiTof1710f1710; @@ -153,7 +154,7 @@ struct paramEnum2K2PiGam{ K_2_1430K_2_1430, K_0_1430K_2_1430, K_1_1410K_1_1410, ChiToK_1_1410_K892, ChiToK_2_1430_K892, ChiToK_1_1400K, K_1_1400ToK892Pi, ChiToK_1_1270_K, K_1_1270ToK892Pi, K_1_1270ToK_0_1430Pi, ChiToK_1_1650K, K_1_1650ToK892Pi, K_1_1650ToK_0_1430Pi, K_0_1430K_0_1950, KappaK_0_1950, ChiToKappaK_0_1430, - ChiToK_1_2400K, K_1_2400Tof980K, + ChiToK_1_2400K, K_1_2400Tof980K, K_1_2400Tof1710K, f980_pif1710_k, f980_kf1710_pi, ChiTof1710f1710, f980f980, f980f2200, ChiTof980f_2_2300, ChiTof_2_2300sigma, f980_pif1370_k, f980_kf1370_pi, f980_pif1500_k, f980_kf1500_pi, f1710_pif1370_k, f1710_kf1370_pi, K_0_2400KToKf980, ChiToK_0_2400ToKf_0_1710, K892K_1_1680, ChiToK1680K1680, ChiToK1680K_0_1430, K892K_1_2300, @@ -181,7 +182,7 @@ struct paramEnum2K2PiGam{ "K_2_1430K_2_1430", "K_0_1430K_2_1430", "K_1_1410K_1_1410","ChiToK_1_1410_K892","ChiToK_2_1430_K892", "ChiToK_1_1400K", "K_1_1400ToK892Pi", "ChiToK_1_1270_K", "K_1_1270ToK892Pi", "K_1_1270ToK_0_1430Pi", "ChiToK_1_1650K", "K_1_1650ToK892Pi", "K_1_1650ToK_0_1430Pi","K_0_1430K_0_1950", "KappaK_0_1950","ChiToKappaK_0_1430", - "ChiToK_1_2400K", "K_1_2400Tof980K", + "ChiToK_1_2400K", "K_1_2400Tof980K","K_1_2400Tof1710K", "f980_pif1710_k", "f980_kf1710_pi", "ChiTof1710f1710", "f980f980", "f980f2200", "ChiTof980f_2_2300","ChiTof_2_2300sigma", "f980_pif1370_k", "f980_kf1370_pi", "f980_pif1500_k", "f980_kf1500_pi", "f1710_pif1370_k", "f1710_kf1370_pi", "K_0_2400KToKf980", "ChiToK_0_2400ToKf_0_1710", "K892K_1_1680", "ChiToK1680K1680", "ChiToK1680K_0_1430", "K892K_1_2300", diff --git a/Examples/Psi2STo2K2PiGam/Hyp5Lh.cc b/Examples/Psi2STo2K2PiGam/Hyp5Lh.cc index 9187426673f3c2f6649806ad7b48d43418992016..dc554036cb0b68d0b30dc62b7eda9c735c9456ad 100644 --- a/Examples/Psi2STo2K2PiGam/Hyp5Lh.cc +++ b/Examples/Psi2STo2K2PiGam/Hyp5Lh.cc @@ -13,6 +13,7 @@ Hyp5Lh::Hyp5Lh(boost::shared_ptr<const Psi2STo2K2PiGamEvtList> theEvtList, const , _K_0_2400KHyp5(true) ,_K_0_2400KTof_0_1710Hyp5(true) ,_K_1_2400KHyp5(true) + ,_K_1_2400KTof_0_1710Hyp5(true) ,_ChiToK_0_1430KPiHyp5(true) ,_ChiToK892KPiHyp5(true) , _nFitParams(0) @@ -26,6 +27,7 @@ Hyp5Lh::Hyp5Lh( boost::shared_ptr<AbsPsi2STo2K2PiGamLh> theLhPtr, const std::map , _K_0_2400KHyp5(true) ,_K_0_2400KTof_0_1710Hyp5(true) ,_K_1_2400KHyp5(true) + ,_K_1_2400KTof_0_1710Hyp5(true) ,_ChiToK_0_1430KPiHyp5(true) ,_ChiToK892KPiHyp5(true) , _nFitParams(0) @@ -68,12 +70,22 @@ complex<double> Hyp5Lh::chi0DecAmps(const param2K2PiGam& theParamVal, Psi2STo2K2 } - if (_K_1_2400KHyp5){ + if (_K_1_2400KHyp5 || _K_1_2400KTof_0_1710Hyp5){ std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collection::SharedPtrLess > ChiToK_1_2400K=theParamVal.ChiToK_1_2400K; - std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collection::SharedPtrLess > K_1_2400Tof980K=theParamVal.K_1_2400Tof980K; double K_1_2400Mass=theParamVal.BwK_1_2400.first; double K_1_2400Width=theParamVal.BwK_1_2400.second; - result+=chiToK1Tof980_piKAmp(theData, ChiToK_1_2400K, K_1_2400Tof980K, K_1_2400Mass, K_1_2400Width, f980_Mass, f980_gKK, f980_gPiPi); + + if(_K_1_2400KHyp5){ + std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collection::SharedPtrLess > K_1_2400Tof980K=theParamVal.K_1_2400Tof980K; + result+=chiToK1Tof980_piKAmp(theData, ChiToK_1_2400K, K_1_2400Tof980K, K_1_2400Mass, K_1_2400Width, f980_Mass, f980_gKK, f980_gPiPi); + } + + if(_K_1_2400KTof_0_1710Hyp5){ + double f1710Mass=theParamVal.Bwf1710.first; + double f1710Width=theParamVal.Bwf1710.second; + std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collection::SharedPtrLess > K_1_2400Tof1710K=theParamVal.K_1_2400Tof1710K; + result+=chiToK1Tof0_piKAmp(theData, ChiToK_1_2400K, K_1_2400Tof1710K, K_1_2400Mass, K_1_2400Width, f1710Mass, f1710Width); + } } if(_ChiToK_0_1430KPiHyp5){ @@ -251,6 +263,17 @@ void Hyp5Lh::setUp(const std::map<const std::string, bool>& hypMap){ } else Alert << "hypothesis K_1_2400KHyp5 not set!!!" <<endmsg; + + + iter= hypMap.find("K_1_2400KTof_0_1710Hyp5"); + if (iter !=hypMap.end()){ + _K_1_2400KTof_0_1710Hyp5= iter->second; + Info<< "hypothesis " << iter->first << "\t" << _K_1_2400KTof_0_1710Hyp5 <<endmsg; + _hypMap[iter->first]= iter->second; + } + else Alert << "hypothesis K_1_2400KTof_0_1710Hyp5 not set!!!" <<endmsg; + + iter= hypMap.find("K_0_2400KTof_0_1710Hyp5"); if (iter !=hypMap.end()){ @@ -291,10 +314,15 @@ void Hyp5Lh::setUp(const std::map<const std::string, bool>& hypMap){ } - if(_K_1_2400KHyp5){ + if(_K_1_2400KHyp5 || _K_1_2400KTof_0_1710Hyp5){ _ampVec.push_back(paramEnum2K2PiGam::ChiToK_1_2400K); - _ampVec.push_back(paramEnum2K2PiGam::K_1_2400Tof980K); _massVec.push_back(paramEnum2K2PiGam::K_1_2400); + if(_K_1_2400KHyp5){ + _ampVec.push_back(paramEnum2K2PiGam::K_1_2400Tof980K); + } + if(_K_1_2400KTof_0_1710Hyp5){ + _ampVec.push_back(paramEnum2K2PiGam::K_1_2400Tof1710K); + } } if(_ChiToK_0_1430KPiHyp5){ diff --git a/Examples/Psi2STo2K2PiGam/Hyp5Lh.hh b/Examples/Psi2STo2K2PiGam/Hyp5Lh.hh index 8229526b0096f944533e2b55591704db0ca265cc..77c943153885eeaa679e6403cfaa3cbe17a14560 100644 --- a/Examples/Psi2STo2K2PiGam/Hyp5Lh.hh +++ b/Examples/Psi2STo2K2PiGam/Hyp5Lh.hh @@ -55,6 +55,7 @@ protected: bool _K_0_2400KHyp5; bool _K_0_2400KTof_0_1710Hyp5; bool _K_1_2400KHyp5; + bool _K_1_2400KTof_0_1710Hyp5; bool _ChiToK_0_1430KPiHyp5; bool _ChiToK892KPiHyp5; diff --git a/Examples/Psi2STo2K2PiGam/Mpsi2STo2K2PiGamTestApp.cc b/Examples/Psi2STo2K2PiGam/Mpsi2STo2K2PiGamTestApp.cc index be4b10171932dbed522782d7b9e7133cb231de1e..d31b19cd5607da04295f6eb9dc1440ad2068d4ee 100644 --- a/Examples/Psi2STo2K2PiGam/Mpsi2STo2K2PiGamTestApp.cc +++ b/Examples/Psi2STo2K2PiGam/Mpsi2STo2K2PiGamTestApp.cc @@ -171,6 +171,7 @@ int main(int __argc,char *__argv[]){ hypMap["K_0_2400KHyp5"]=true; hypMap["K_0_2400KTof_0_1710Hyp5"]=true; hypMap["K_1_2400KHyp5"]=true; + hypMap["K_1_2400KTof_0_1710Hyp5"]=true; hypMap["ChiToK_0_1430KPiHyp5"]=true; hypMap["ChiToK892KPiHyp5"]=true; hypMap["K_0_1430K_0_1950Hyp6"]=true;