#include <getopt.h> #include <fstream> #include <sstream> #include <string> #include "Examples/Psi2STo2K2PiGam/Psi2STo2K2PiGamStates.hh" #include "ErrLogger/ErrLogger.hh" Psi2STo2K2PiGamStates::Psi2STo2K2PiGamStates() : _psiJPC(new jpcRes(1, -1, -1)), _chic0JPC(new jpcRes(0, 1, 1)), _Kst0JPC(new jpcRes(0, 1, 0)), _Kst1JPC(new jpcRes(1, -1, 0)), _Kst2JPC(new jpcRes(2, 1, 0)), _K1400JPC(new jpcRes(1, 1, 0)), _f0JPC(new jpcRes(0, 1, 1)), _f2JPC(new jpcRes(2, 1, 1)), _pi0JPC(new jpcRes(0, -1, 1)), _kJPC(new jpcRes(0, -1, 0)), _gamJPC(new jpcRes(1, -1, -1)), _pi2JPC(new jpcRes(2, -1, 1)), _K2mJPC(new jpcRes(2, -1, 0)) { //LS combinations for Psi(2S) decay to Chi_c0 gamma fillJPCLS(_psiJPC, _chic0JPC, _gamJPC, _PsiJPCLS); //LS combinations for the Chi_c0 decay to K1(1400) K fillJPCLS(_chic0JPC, _K1400JPC, _kJPC, _ChiToK1400ToK892piJPCLS); //LS combinations for the Chi_c0 decay to K*(892) K*(892) fillJPCLS(_chic0JPC, _Kst1JPC, _Kst1JPC,_ChiTo2K892JPCLS); //LS combinations for the Chi_c0 decay to K*2(1430) K*2(1430) fillJPCLS(_chic0JPC, _Kst2JPC, _Kst2JPC, _ChiTo2K_2_1430JPCLS); //LS combinations for the Chi_c0 decay to K*0(1430) K*0(1430) fillJPCLS(_chic0JPC, _Kst0JPC, _Kst0JPC, _ChiTo2K_0_JPCLS); //LS combinations for the Chi_c0 decay to K*0(1430) K*2(1430) fillJPCLS(_chic0JPC, _Kst0JPC, _Kst2JPC, _ChiToK0K2_JPCLS); //LS combinations for the Chi_c0 decay to K*0 K*1 fillJPCLS(_chic0JPC, _Kst0JPC, _Kst1JPC, _ChiToKst0Kst1JPCLS); //LS combinations for the Chi_c0 decay to K*1 K*2 fillJPCLS(_chic0JPC, _Kst1JPC, _Kst2JPC, _ChiToKst1Kst2JPCLS); //LS combinations for the Chi_c0 decay to f0 f0 fillJPCLS(_chic0JPC, _f0JPC, _f0JPC,_ChiTof0f0JPCLS); //LS combinations for the Chi_c0 decay to f0 f2 fillJPCLS(_chic0JPC, _f0JPC, _f2JPC,_ChiTof0f2JPCLS); //LS combinations for the Chi_c0 decay to f2 f2 fillJPCLS(_chic0JPC, _f2JPC, _f2JPC,_ChiTof2f2JPCLS); //LS combinations for the Chi_c0 decay to K0 K0 fillJPCLS(_chic0JPC, _kJPC, _kJPC, _ChiToK0K0JPCLS); //LS combinations for the Chi_c0 decay to Pi2 Pi fillJPCLS(_chic0JPC, _pi0JPC, _pi2JPC, _ChiToPi_2PiJPCLS); //LS combinations for the K*+- decay to K+- Pi0 fillJPCLS(_Kst1JPC, _kJPC, _pi0JPC, _Kst1JPCLS); //LS combinations for the K*2+- decay to K+- Pi0 fillJPCLS(_Kst2JPC, _kJPC, _pi0JPC, _Kst2JPCLS); //LS combinations for the K*+- decay to K+- Pi0 fillJPCLS(_K1400JPC, _Kst1JPC, _pi0JPC, _K1400ToKst1PiJPCLS); //LS combinations for the K1- decay to K0 Pi0 fillJPCLS(_K1400JPC, _Kst0JPC, _pi0JPC, _K1ToK0PiJPCLS); //LS combinations for the f2 decay to K+ K- fillJPCLS(_f2JPC, _kJPC, _kJPC, _f2JPCLS); //LS combinations for the pi_2 decay to f2 Pi fillJPCLS(_pi2JPC, _pi0JPC, _f2JPC, _Pi_2Tof_2PiJPCLS); //LS combinations for the pi_2 decay to K*0 K fillJPCLS(_pi2JPC, _kJPC, _Kst0JPC,_Pi_2ToKst0KJPCLS); //LS combinations for the pi_2 decay to K*1 K fillJPCLS(_pi2JPC, _kJPC, _Kst1JPC,_Pi_2ToKst1KJPCLS); //LS combinations for the pi_2 decay to K*2 K fillJPCLS(_pi2JPC, _kJPC, _Kst2JPC,_Pi_2ToKst2KJPCLS); //LS combinations for the chi_c0 to pi0 pi0 fillJPCLS(_chic0JPC, _pi0JPC, _pi0JPC, _ChiToPi0Pi0JPCLS); //LS combinations for the pi_2 decay to f0 Pi fillJPCLS(_pi2JPC, _pi0JPC, _f0JPC, _Pi_2Tof0PiJPCLS); //LS combinations for the decay chi_c0 to K2- K0- fillJPCLS(_chic0JPC, _kJPC, _K2mJPC, _ChiToK2mK0mJPCLS); //LS combinations for the decay K2- pi0 fillJPCLS(_K2mJPC, _pi0JPC, _Kst2JPC,_K2mToK2pPiJPCLS); //LS combinations for the K1+ decay to f0 K fillJPCLS(_K1400JPC, _f0JPC, _kJPC, _K1pTof0KJPCLS); fillJPCLS(_pi0JPC, _Kst1JPC, _pi0JPC, _Pi0pToKstKJPCLS); fillJPCLS(_K2mJPC, _f0JPC, _kJPC, _K2Tof0KJPCLS); } Psi2STo2K2PiGamStates::~Psi2STo2K2PiGamStates() { } void Psi2STo2K2PiGamStates::fillJPCLS(boost::shared_ptr<jpcRes> motherRes, boost::shared_ptr<jpcRes> daughterRes1, boost::shared_ptr<jpcRes> daughterRes2, std::vector< boost::shared_ptr<const JPCLS> >& theJPCLSVec) { // first: check C-parity if ( motherRes->C != daughterRes1->C*daughterRes2->C){ Warning << "C-Parity not valid for the reaction: JPC= " << motherRes->J << " " << motherRes->P << " " << motherRes->C << " --> " << " JPC= " << daughterRes1->J << " " << daughterRes1->P << " " << daughterRes1->C << " and " << " JPC= " << daughterRes2->J << " " << daughterRes2->P << " " << daughterRes2->C << endmsg; } vector<LS> LSs=GetValidLS(motherRes->J, motherRes->P, daughterRes1->J, daughterRes1->P, daughterRes2->J, daughterRes2->P); int num_LS = (int) LSs.size(); for(int ls = 0; ls < num_LS; ls++){ Spin L= LSs[ls].L; Spin S= LSs[ls].S; boost::shared_ptr<const JPCLS> tmpJPCLS(new JPCLS(motherRes, L, S)); theJPCLSVec.push_back(tmpJPCLS); } } void Psi2STo2K2PiGamStates::print(std::ostream& os) const { os << "*** Psi(2S): LS combinations for the decay to Psi(2S) gamma*** "<< std::endl; std::vector< boost::shared_ptr<const JPCLS > >::const_iterator itJPCLS; for ( itJPCLS=_PsiJPCLS.begin(); itJPCLS!=_PsiJPCLS.end(); ++itJPCLS){ (*itJPCLS)->print(os); os << "\n" << std::endl; } os << "*** Chi_c0: LS combinations for the decay to K1(1400)*+- K-+ *** "<< std::endl; for ( itJPCLS=_ChiToK1400ToK892piJPCLS.begin(); itJPCLS!=_ChiToK1400ToK892piJPCLS.end(); ++itJPCLS){ (*itJPCLS)->print(os); os << "\n" << std::endl; } os << "*** Chi_c0: LS combinations for the decay to K*(892) K*(892) *** "<< std::endl; for ( itJPCLS=_ChiTo2K892JPCLS.begin(); itJPCLS!=_ChiTo2K892JPCLS.end(); ++itJPCLS){ (*itJPCLS)->print(os); os << "\n" << std::endl; } os << "*** Chi_c0: LS combinations for the decay to K*2(1430) K*2(1430) *** "<< std::endl; for ( itJPCLS=_ChiTo2K_2_1430JPCLS.begin(); itJPCLS!=_ChiTo2K_2_1430JPCLS.end(); ++itJPCLS){ (*itJPCLS)->print(os); os << "\n" << std::endl; } os << "*** Chi_c0: LS combinations for the decay to K*0(1430) K*0(1430) *** "<< std::endl; for ( itJPCLS=_ChiTo2K_0_JPCLS.begin(); itJPCLS!=_ChiTo2K_0_JPCLS.end(); ++itJPCLS){ (*itJPCLS)->print(os); os << "\n" << std::endl; } os << "*** Chi_c0: LS combinations for the decay to K*0(1430) K*2(1430) *** "<< std::endl; for ( itJPCLS=_ChiToK0K2_JPCLS.begin(); itJPCLS!=_ChiToK0K2_JPCLS.end(); ++itJPCLS){ (*itJPCLS)->print(os); os << "\n" << std::endl; } os << "*** Chi_c0: LS combinations for the decay to K*0 K*1 *** "<< std::endl; for ( itJPCLS=_ChiToKst0Kst1JPCLS.begin(); itJPCLS!=_ChiToKst0Kst1JPCLS.end(); ++itJPCLS){ (*itJPCLS)->print(os); os << "\n" << std::endl; } os << "*** Chi_c0: LS combinations for the decay to K*1 K*2 *** "<< std::endl; for ( itJPCLS=_ChiToKst1Kst2JPCLS.begin(); itJPCLS!=_ChiToKst1Kst2JPCLS.end(); ++itJPCLS){ (*itJPCLS)->print(os); os << "\n" << std::endl; } os << "*** Chi_c0: LS combinations for the decay to f0 f0 *** "<< std::endl; for ( itJPCLS=_ChiTof0f0JPCLS.begin(); itJPCLS!=_ChiTof0f0JPCLS.end(); ++itJPCLS){ (*itJPCLS)->print(os); os << "\n" << std::endl; } os << "*** Chi_c0: LS combinations for the decay to f0 f2 *** "<< std::endl; for ( itJPCLS=_ChiTof0f2JPCLS.begin(); itJPCLS!=_ChiTof0f2JPCLS.end(); ++itJPCLS){ (*itJPCLS)->print(os); os << "\n" << std::endl; } os << "*** Chi_c0: LS combinations for the decay to f2 f2 *** "<< std::endl; for ( itJPCLS=_ChiTof2f2JPCLS.begin(); itJPCLS!=_ChiTof2f2JPCLS.end(); ++itJPCLS){ (*itJPCLS)->print(os); os << "\n" << std::endl; } os << "*** Chi_c0: LS combinations for the decay to pi2 pi0 *** "<< std::endl; for ( itJPCLS=_ChiToPi_2PiJPCLS.begin(); itJPCLS!=_ChiToPi_2PiJPCLS.end(); ++itJPCLS){ (*itJPCLS)->print(os); os << "\n" << std::endl; } os << "\n *** K*2+-: LS combinations for the decay to K*2+- -> K+- pi0 *** "<< std::endl; for ( itJPCLS=_Kst2JPCLS.begin(); itJPCLS!=_Kst2JPCLS.end(); ++itJPCLS){ (*itJPCLS)->print(os); os << "\n" << std::endl; } os << "\n *** K1(1400): LS combinations for the decay to K1(1400)+- -> K*1+- pi0 *** "<< std::endl; for ( itJPCLS=_K1400ToKst1PiJPCLS.begin(); itJPCLS!=_K1400ToKst1PiJPCLS.end(); ++itJPCLS){ (*itJPCLS)->print(os); os << "\n" << std::endl; } os << "\n *** K1(1270): LS combinations for the decay to K1(1270) -> K0(1430) pi0 *** "<< std::endl; for ( itJPCLS=_K1ToK0PiJPCLS.begin(); itJPCLS!=_K1ToK0PiJPCLS.end(); ++itJPCLS){ (*itJPCLS)->print(os); os << "\n" << std::endl; } os << "\n *** f2: LS combinations for the decay to K K *** "<< std::endl; for ( itJPCLS=_f2JPCLS.begin(); itJPCLS!=_f2JPCLS.end(); ++itJPCLS){ (*itJPCLS)->print(os); os << "\n" << std::endl; } os << "\n *** pi2: LS combinations for the decay to K0 K0 *** "<< std::endl; for ( itJPCLS=_ChiToK0K0JPCLS.begin(); itJPCLS!=_ChiToK0K0JPCLS.end(); ++itJPCLS){ (*itJPCLS)->print(os); os << "\n" << std::endl; } os << "\n *** pi2: LS combinations for the pi2 decay to pi0 f2 *** "<< std::endl; for ( itJPCLS=_Pi_2Tof_2PiJPCLS.begin(); itJPCLS!=_Pi_2Tof_2PiJPCLS.end(); ++itJPCLS){ (*itJPCLS)->print(os); os << "\n" << std::endl; } os << "\n *** pi2: LS combinations for the pi2 decay to K*0 K *** "<< std::endl; for ( itJPCLS=_Pi_2ToKst0KJPCLS.begin(); itJPCLS!=_Pi_2ToKst0KJPCLS.end(); ++itJPCLS){ (*itJPCLS)->print(os); os << "\n" << std::endl; } os << "\n *** pi2: LS combinations for the pi2 decay to K*1 K *** "<< std::endl; for ( itJPCLS=_Pi_2ToKst1KJPCLS.begin(); itJPCLS!=_Pi_2ToKst1KJPCLS.end(); ++itJPCLS){ (*itJPCLS)->print(os); os << "\n" << std::endl; } os << "\n *** pi2: LS combinations for the pi2 decay to K*2 K *** "<< std::endl; for ( itJPCLS=_Pi_2ToKst2KJPCLS.begin(); itJPCLS!=_Pi_2ToKst2KJPCLS.end(); ++itJPCLS){ (*itJPCLS)->print(os); os << "\n" << std::endl; } os << "\n *** pi2: LS combinations for the chi_c0 decay to pi0 pi0 *** "<< std::endl; for ( itJPCLS=_ChiToPi0Pi0JPCLS.begin(); itJPCLS!=_ChiToPi0Pi0JPCLS.end(); ++itJPCLS){ (*itJPCLS)->print(os); os << "\n" << std::endl; } os << "\n *** pi2: LS combinations for the pi2 decay to f0 pi0 *** "<< std::endl; for ( itJPCLS=_Pi_2Tof0PiJPCLS.begin(); itJPCLS!=_Pi_2Tof0PiJPCLS.end(); ++itJPCLS){ (*itJPCLS)->print(os); os << "\n" << std::endl; } os << "\n *** pi2: LS combinations for the chi_c0 decay to K2- K0- *** "<< std::endl; for ( itJPCLS=_ChiToK2mK0mJPCLS.begin(); itJPCLS!=_ChiToK2mK0mJPCLS.end(); ++itJPCLS){ (*itJPCLS)->print(os); os << "\n" << std::endl; } os << "\n *** pi2: LS combinations for the decay K2- to K*20+ pi0 *** "<< std::endl; for ( itJPCLS=_K2mToK2pPiJPCLS.begin(); itJPCLS!=_K2mToK2pPiJPCLS.end(); ++itJPCLS){ (*itJPCLS)->print(os); os << "\n" << std::endl; } os << "\n *** K1+: LS combinations for the decay K1+ to f0 K *** "<< std::endl; for ( itJPCLS=_K1pTof0KJPCLS.begin(); itJPCLS!=_K1pTof0KJPCLS.end(); ++itJPCLS){ (*itJPCLS)->print(os); os << "\n" << std::endl; } os << "\n *** LS combinations for the decay pi0 to K*1 K *** "<< std::endl; for ( itJPCLS=_Pi0pToKstKJPCLS.begin(); itJPCLS!=_Pi0pToKstKJPCLS.end(); ++itJPCLS){ (*itJPCLS)->print(os); os << "\n" << std::endl; } os << "\n *** LS combinations for the decay K2 to f0 K *** "<< std::endl; for ( itJPCLS=_K2Tof0KJPCLS.begin(); itJPCLS!=_K2Tof0KJPCLS.end(); ++itJPCLS){ (*itJPCLS)->print(os); os << "\n" << std::endl; } os << "\n *** K+- *** "<< std::endl; _kJPC->print(os); os << "\n *** pi0 *** "<< std::endl; _pi0JPC->print(os); os << "\n *** gamma *** "<< std::endl; _gamJPC->print(os); os << "\n"<< std::endl; }