diff --git a/Examples/Psi2STo2K2PiGam/AbsPsi2STo2K2PiGamLh.cc b/Examples/Psi2STo2K2PiGam/AbsPsi2STo2K2PiGamLh.cc index ff7373024eea7ba89a5372b150980fabf504a4e5..a4b0cb9a75fb574ec281637d2b4a6a295ae900e9 100644 --- a/Examples/Psi2STo2K2PiGam/AbsPsi2STo2K2PiGamLh.cc +++ b/Examples/Psi2STo2K2PiGam/AbsPsi2STo2K2PiGamLh.cc @@ -677,6 +677,50 @@ complex<double> AbsPsi2STo2K2PiGamLh::chiToK0KpiAmp(Psi2STo2K2PiGamData::Psi2STo return result; } + + + + +complex<double> AbsPsi2STo2K2PiGamLh::chiToKst1KpiAmp(Psi2STo2K2PiGamData::Psi2STo2K2PiGamEvtData* theData, std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collection::SharedPtrLess >& ChiToKst1KPi, double Kst1Mass, double Kst1Width){ + + Vector4<double> KpPi0(theData->KpPi0_HeliKpPi0Pi0_4V.E(), theData->KpPi0_HeliKpPi0Pi0_4V.Px(), + theData->KpPi0_HeliKpPi0Pi0_4V.Py(), theData->KpPi0_HeliKpPi0Pi0_4V.Pz()); + + Vector4<double> KpPi1(theData->KpPi1_HeliKpPi0Pi0_4V.E(), theData->KpPi1_HeliKpPi0Pi0_4V.Px(), + theData->KpPi1_HeliKpPi0Pi0_4V.Py(), theData->KpPi1_HeliKpPi0Pi0_4V.Pz()); + + Vector4<double> KmPi0(theData->KmPi0_HeliKmPi0Pi0_4V.E(), theData->KmPi0_HeliKmPi0Pi0_4V.Px(), + theData->KmPi0_HeliKmPi0Pi0_4V.Py(), theData->KmPi0_HeliKmPi0Pi0_4V.Pz()); + + Vector4<double> KmPi1(theData->KmPi1_HeliKmPi0Pi0_4V.E(), theData->KmPi1_HeliKmPi0Pi0_4V.Px(), + theData->KmPi1_HeliKmPi0Pi0_4V.Py(), theData->KmPi1_HeliKmPi0Pi0_4V.Pz()); + + + complex<double> result(0.,0.); + std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collection::SharedPtrLess >::iterator it; + for ( it=ChiToKst1KPi.begin(); it!=ChiToKst1KPi.end(); ++it){ + + double theMag=it->second.first; + double thePhi=it->second.second; + complex<double> expiphi(cos(thePhi), sin(thePhi)); + + complex<double> ampKpToKpPi0=BreitWigner(KpPi0, Kst1Mass, Kst1Width)*conj(theData->DfKst1pToKpPi0[1][0][0]); + complex<double> ampKpToKpPi1=BreitWigner(KpPi1, Kst1Mass, Kst1Width)*conj(theData->DfKst1pToKpPi1[1][0][0]); + complex<double> ampKmToKmPi0=BreitWigner(KmPi0, Kst1Mass, Kst1Width)*conj(theData->DfKst1mToKmPi0[1][0][0]); + complex<double> ampKmToKmPi1=BreitWigner(KmPi1, Kst1Mass, Kst1Width)*conj(theData->DfKst1mToKmPi1[1][0][0]); + + + result+=theMag*expiphi*3.*(ampKpToKpPi0+ampKpToKpPi1+ampKmToKmPi0+ampKmToKmPi1); + } + + return result; +} + + + + + + complex<double> AbsPsi2STo2K2PiGamLh::chiToK0KT0K1piKAmp(Psi2STo2K2PiGamData::Psi2STo2K2PiGamEvtData* theData, std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collection::SharedPtrLess >& K0ToK0Pi, double K0pMass, double K0pWidth, double K1dMass, double K1dWidth){ Vector4<double> KpPiPi(theData->KpPiPi_HeliChic0_4V.E(), theData->KpPiPi_HeliChic0_4V.Px(), theData->KpPiPi_HeliChic0_4V.Py(), theData->KpPiPi_HeliChic0_4V.Pz()); diff --git a/Examples/Psi2STo2K2PiGam/AbsPsi2STo2K2PiGamLh.hh b/Examples/Psi2STo2K2PiGam/AbsPsi2STo2K2PiGamLh.hh index 9464615cffe2c395351543e7b54c56123f3de4b1..7f8335790e29a49d04363be566d6ac9f2131b341 100644 --- a/Examples/Psi2STo2K2PiGam/AbsPsi2STo2K2PiGamLh.hh +++ b/Examples/Psi2STo2K2PiGam/AbsPsi2STo2K2PiGamLh.hh @@ -85,6 +85,8 @@ protected: virtual complex<double> chiToK0KpiAmp(Psi2STo2K2PiGamData::Psi2STo2K2PiGamEvtData* theData, std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collection::SharedPtrLess >& ChiToK0KPi, double K0Mass, double K0Width); + virtual complex<double> chiToKst1KpiAmp(Psi2STo2K2PiGamData::Psi2STo2K2PiGamEvtData* theData, std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collection::SharedPtrLess >& ChiToKst1KPi, double Kst1Mass, double Kst1Width); + virtual complex<double> chiToK0KT0K1piKAmp(Psi2STo2K2PiGamData::Psi2STo2K2PiGamEvtData* theData, std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collection::SharedPtrLess >& K0ToK0Pi, double K0pMass, double K0pWidth, double K1dMass, double K1dWidth); virtual complex<double> chiToK1ToK0piAmp(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 K0Mass, double K0Width); diff --git a/Examples/Psi2STo2K2PiGam/FitParams2K2PiGam.cc b/Examples/Psi2STo2K2PiGam/FitParams2K2PiGam.cc index 95e6024753002f0f7395342a3770f25796d80557..40b55a97a63754d1aaf30df91212a88d3dbefb3b 100644 --- a/Examples/Psi2STo2K2PiGam/FitParams2K2PiGam.cc +++ b/Examples/Psi2STo2K2PiGam/FitParams2K2PiGam.cc @@ -87,6 +87,7 @@ FitParams2K2PiGam::FitParams2K2PiGam() _jpclsMap[paramEnum2K2PiGam::ChiToK_2_1770K]=theStates.ChiToK2mK0mStates(); _jpclsMap[paramEnum2K2PiGam::K_2_1770ToK_2_1430Pi]=theStates.K2mToK2pPiStates(); _jpclsMap[paramEnum2K2PiGam::ChiToK_0_1430KPi]=theStates.ChiTo2K_0_States(); + _jpclsMap[paramEnum2K2PiGam::ChiToK892KPi]=theStates.ChiToK1400ToK892piStates(); } FitParams2K2PiGam::~FitParams2K2PiGam() @@ -184,6 +185,7 @@ std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collecti else if (index==paramEnum2K2PiGam::ChiToK_2_1770K) return params.ChiToK_2_1770K; else if (index==paramEnum2K2PiGam::K_2_1770ToK_2_1430Pi) return params.K_2_1770ToK_2_1430Pi; else if (index==paramEnum2K2PiGam::ChiToK_0_1430KPi) return params.ChiToK_0_1430KPi; + else if (index==paramEnum2K2PiGam::ChiToK892KPi) return params.ChiToK892KPi; else{ Alert << "index " << index << " not supported !!!" << endmsg; exit(0); diff --git a/Examples/Psi2STo2K2PiGam/FitParams2K2PiGam.hh b/Examples/Psi2STo2K2PiGam/FitParams2K2PiGam.hh index 06ee1d39e6c2a7ade6012f9a9e50bb5d3df2da3d..b4f0566b45a79031d3c73715d0524609147db5a2 100644 --- a/Examples/Psi2STo2K2PiGam/FitParams2K2PiGam.hh +++ b/Examples/Psi2STo2K2PiGam/FitParams2K2PiGam.hh @@ -100,6 +100,7 @@ struct param2K2PiGam std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collection::SharedPtrLess > ChiToK_2_1770K; std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collection::SharedPtrLess > K_2_1770ToK_2_1430Pi; std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collection::SharedPtrLess > ChiToK_0_1430KPi; + std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collection::SharedPtrLess > ChiToK892KPi; pair<double, double> BwK892; pair<double, double> BwKappa; @@ -155,7 +156,7 @@ struct paramEnum2K2PiGam{ ChiToPi_2_1670Pi, Pi_2_1670Tof_2_1270Pi, Pi_2_1670ToK892K, ChiToPi1800Pi0Tof980, ChiToPi1800Pi0Tof1370, ChiToPi1800Pi0ToKappa, ChiToPi1800Pi0ToK892K, ChiToPi3000Pi0ToK892K, ChiToPi3000Pi0ToK_0_1950K, ChiToPi_2_2285Pi,Pi_2_2285Tof1700Pi, Pi_2_2285ToK892KPi, Pi_2_2285ToK_0_1430K, Pi_2_2285ToK_2_1430K, - ChiToK_2_1770K, K_2_1770ToK_2_1430Pi, ChiToK_0_1430KPi, nAmps, + ChiToK_2_1770K, K_2_1770ToK_2_1430Pi, ChiToK_0_1430KPi, ChiToK892KPi, nAmps, K892=nAmps,Kappa, K_0_1430, K_1_1400, K_1_1410, K_2_1430, K_1_1270,K_1_1650, f1500, f1710, f2200, sigma, f1360, f1370, K_0_2400, K_1_2400, K_0_1950, K_1_1680, K_1_2300, K_0_1460, K_0_1830, @@ -182,7 +183,7 @@ struct paramEnum2K2PiGam{ "ChiToPi_2_1670Pi","Pi_2_1670Tof_2_1270Pi","Pi_2_1670ToK892K", "ChiToPi1800Pi0Tof980","ChiToPi1800Pi0Tof1370","ChiToPi1800Pi0ToKappa","ChiToPi1800Pi0ToK892K","ChiToPi3000Pi0ToK892K","ChiToPi3000Pi0ToK_0_1950K", "ChiToPi_2_2285Pi","Pi_2_2285Tof1700Pi","Pi_2_2285ToK892KPi","Pi_2_2285ToK_0_1430K","Pi_2_2285ToK_2_1430K", - "ChiToK_2_1770K","K_2_1770ToK_2_1430Pi","ChiToK_0_1430KPi", + "ChiToK_2_1770K","K_2_1770ToK_2_1430Pi","ChiToK_0_1430KPi","ChiToK892KPi", "K892", "Kappa", "K_0_1430", "K_1_1400", "K_1_1410", "K_2_1430", "K_1_1270", "K_1_1650", "f1500", "f1710", "f2200", "sigma", "f1360", "f1370", "K_0_2400", "K_1_2400", "K_0_1950", "K_1_1680", "K_1_2300", "K_0_1460", "K_0_1830", diff --git a/Examples/Psi2STo2K2PiGam/Hyp5Lh.cc b/Examples/Psi2STo2K2PiGam/Hyp5Lh.cc index 4921ffc016acf192bf43ac86a294656a9ddf679f..9187426673f3c2f6649806ad7b48d43418992016 100644 --- a/Examples/Psi2STo2K2PiGam/Hyp5Lh.cc +++ b/Examples/Psi2STo2K2PiGam/Hyp5Lh.cc @@ -14,6 +14,7 @@ Hyp5Lh::Hyp5Lh(boost::shared_ptr<const Psi2STo2K2PiGamEvtList> theEvtList, const ,_K_0_2400KTof_0_1710Hyp5(true) ,_K_1_2400KHyp5(true) ,_ChiToK_0_1430KPiHyp5(true) + ,_ChiToK892KPiHyp5(true) , _nFitParams(0) { setUp(hypMap); @@ -26,6 +27,7 @@ Hyp5Lh::Hyp5Lh( boost::shared_ptr<AbsPsi2STo2K2PiGamLh> theLhPtr, const std::map ,_K_0_2400KTof_0_1710Hyp5(true) ,_K_1_2400KHyp5(true) ,_ChiToK_0_1430KPiHyp5(true) + ,_ChiToK892KPiHyp5(true) , _nFitParams(0) { setUp(hypMap); @@ -81,6 +83,13 @@ complex<double> Hyp5Lh::chi0DecAmps(const param2K2PiGam& theParamVal, Psi2STo2K2 result+=chiToK0KpiAmp(theData, ChiToK_0_1430KPi, K_0_1430Mass, K_0_1430Width); } + + if(_ChiToK892KPiHyp5){ + std::map< boost::shared_ptr<const JPCLS>, pair<double, double>, pawian::Collection::SharedPtrLess > ChiToK892KPi=theParamVal.ChiToK892KPi; + double K892Mass=theParamVal.BwK892.first; + double K892Width=theParamVal.BwK892.second; + result+=chiToKst1KpiAmp(theData, ChiToK892KPi, K892Mass, K892Width); + } return result; } @@ -260,7 +269,13 @@ void Hyp5Lh::setUp(const std::map<const std::string, bool>& hypMap){ } else Alert << "hypothesis ChiToK_0_1430KPiHyp5 not set!!!" <<endmsg; - + iter= hypMap.find("ChiToK892KPiHyp5"); + if (iter !=hypMap.end()){ + _ChiToK892KPiHyp5= iter->second; + Info<< "hypothesis " << iter->first << "\t" << _ChiToK892KPiHyp5 <<endmsg; + _hypMap[iter->first]= iter->second; + } + else Alert << "hypothesis ChiToK892KPiHyp5 not set!!!" <<endmsg; if(_K_0_2400KHyp5 || _K_0_2400KTof_0_1710Hyp5){ @@ -286,6 +301,10 @@ void Hyp5Lh::setUp(const std::map<const std::string, bool>& hypMap){ _ampVec.push_back(paramEnum2K2PiGam::ChiToK_0_1430KPi); } + if (_ChiToK892KPiHyp5){ + _ampVec.push_back(paramEnum2K2PiGam::ChiToK892KPi); + } + std::vector<unsigned int>::iterator ampIt; for (ampIt=_ampVec.begin(); ampIt!=_ampVec.end(); ++ampIt){ std::vector< boost::shared_ptr<const JPCLS> > JPCLSs=_fitParams2K2PiGam.jpclsVec(*ampIt); diff --git a/Examples/Psi2STo2K2PiGam/Hyp5Lh.hh b/Examples/Psi2STo2K2PiGam/Hyp5Lh.hh index 66b0e4cdecf9d41b6a802328a468ae13b6ebb9e3..8229526b0096f944533e2b55591704db0ca265cc 100644 --- a/Examples/Psi2STo2K2PiGam/Hyp5Lh.hh +++ b/Examples/Psi2STo2K2PiGam/Hyp5Lh.hh @@ -56,6 +56,7 @@ protected: bool _K_0_2400KTof_0_1710Hyp5; bool _K_1_2400KHyp5; bool _ChiToK_0_1430KPiHyp5; + bool _ChiToK892KPiHyp5; virtual complex<double> chi0DecAmps(const param2K2PiGam& theParamVal, Psi2STo2K2PiGamData::Psi2STo2K2PiGamEvtData* theData); diff --git a/Examples/Psi2STo2K2PiGam/Mpsi2STo2K2PiGamTestApp.cc b/Examples/Psi2STo2K2PiGam/Mpsi2STo2K2PiGamTestApp.cc index dcf3584844e4457417fdfe3550d76aeb941c61cb..c0c82926e942a947fd6cfdfb4ec379cbe7c26941 100644 --- a/Examples/Psi2STo2K2PiGam/Mpsi2STo2K2PiGamTestApp.cc +++ b/Examples/Psi2STo2K2PiGam/Mpsi2STo2K2PiGamTestApp.cc @@ -168,6 +168,7 @@ int main(int __argc,char *__argv[]){ hypMap["K_0_2400KTof_0_1710Hyp5"]=true; hypMap["K_1_2400KHyp5"]=true; hypMap["ChiToK_0_1430KPiHyp5"]=true; + hypMap["ChiToK892KPiHyp5"]=true; hypMap["K_0_1430K_0_1950Hyp6"]=true; hypMap["KappaK_0_1430Hyp6"]=true; hypMap["KappaK_0_1950Hyp6"]=true;