diff --git a/Examples/JpsiToOmegaPhiGam/JpsiGamPipPimPi0KK.root b/Examples/JpsiToOmegaPhiGam/JpsiGamPipPimPi0KK.root index 312f53f759b3fcc5f50ff2ae7a1c9eff476f705f..db3b2dfdc1131b427c3a8641f8cdce5cb58620cd 100644 Binary files a/Examples/JpsiToOmegaPhiGam/JpsiGamPipPimPi0KK.root and b/Examples/JpsiToOmegaPhiGam/JpsiGamPipPimPi0KK.root differ diff --git a/Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamEventList.cc b/Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamEventList.cc index 3bba5c6c50b1ef6b8618c786b7f5492c7b861764..16ddaf9f73f4ab1e7a74e52274a10af050fd7642 100644 --- a/Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamEventList.cc +++ b/Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamEventList.cc @@ -79,28 +79,28 @@ void JpsiToOmegaPhiGamEventList::read4Vecs(EventList& evtList, std::vector<EvtDa Vector4<float> V4_PipPimPi0_HeliPipPimPi0KpKm=helicityVec(V4_all_Lab, V4_PipPimPi0KpKm_Lab, V4_PipPimPi0_Lab); Vector4<float> V4_KpKm_HeliPipPimPi0KpKm=helicityVec(V4_all_Lab, V4_PipPimPi0KpKm_Lab, V4_KpKm_Lab); - Vector4<float> V4_Pip_HeliPipPimPi0=helicityVec(V4_PipPimPi0KpKm_Lab, V4_PipPimPi0_Lab, V4_pip_Lab); + Vector4<float> V4_Pip_HeliPipPimPi0=helicityVec(V4_PipPimPi0KpKm_Lab, V4_PipPimPi0_Lab, V4_pip_Lab); + Vector4<float> V4_Pim_HeliPipPimPi0=helicityVec(V4_PipPimPi0KpKm_Lab, V4_PipPimPi0_Lab, V4_pim_Lab); + Vector4<float> V4_Pi0_HeliPipPimPi0=helicityVec(V4_PipPimPi0KpKm_Lab, V4_PipPimPi0_Lab, V4_pi0_Lab); + Vector4<float> V4_Kp_HeliKpKm=helicityVec(V4_PipPimPi0KpKm_Lab, V4_KpKm_Lab, V4_Kp_Lab); Vector4<float> V4_Kp_HeliPipPimPi0KpKm=helicityVec(V4_all_Lab, V4_PipPimPi0KpKm_Lab, V4_Kp_Lab); Vector4<float> V4_Km_HeliPipPimPi0KpKm=helicityVec(V4_all_Lab, V4_PipPimPi0KpKm_Lab, V4_Km_Lab); - // Vector4<float> V4_normKpKmDecHeliKsKlKpKm - // (0.5*(V4_Kp_HeliKsKlKpKm.T()+V4_Km_HeliKsKlKpKm.T()), - // V4_Km_HeliKsKlKpKm.Y()*V4_Kp_HeliKsKlKpKm.Z()-V4_Km_HeliKsKlKpKm.Z()*V4_Kp_HeliKsKlKpKm.Y(), - // V4_Km_HeliKsKlKpKm.Z()*V4_Kp_HeliKsKlKpKm.X()-V4_Km_HeliKsKlKpKm.X()*V4_Kp_HeliKsKlKpKm.Z(), - // V4_Km_HeliKsKlKpKm.X()*V4_Kp_HeliKsKlKpKm.Y()-V4_Km_HeliKsKlKpKm.Y()*V4_Kp_HeliKsKlKpKm.X()); - // Vector4<float> V4_Kl_HeliKsKlKpKm=helicityVec(V4_all_Lab, V4_KsKlKpKm_Lab, V4_Kl_Lab); - // Vector4<float> V4_Ks_HeliKsKlKpKm=helicityVec(V4_all_Lab, V4_KsKlKpKm_Lab, V4_Ks_Lab); + Vector4<float> V4_omegaDecPlaneNormal_HeliPipPimPi0 ( 0.5*( V4_Pip_HeliPipPimPi0.T()+ V4_Pim_HeliPipPimPi0.T()+ V4_Pi0_HeliPipPimPi0.T() ), + V4_Pim_HeliPipPimPi0.Y()*V4_Pip_HeliPipPimPi0.Z() - V4_Pim_HeliPipPimPi0.Z()*V4_Pip_HeliPipPimPi0.Y(), + V4_Pim_HeliPipPimPi0.Z()*V4_Pip_HeliPipPimPi0.X() - V4_Pim_HeliPipPimPi0.X()*V4_Pip_HeliPipPimPi0.Z(), + V4_Pim_HeliPipPimPi0.X()*V4_Pip_HeliPipPimPi0.Y() - V4_Pim_HeliPipPimPi0.Y()*V4_Pip_HeliPipPimPi0.X() ); + + + + double theQ = V4_Pip_HeliPipPimPi0.E()- V4_Pip_HeliPipPimPi0.M() + V4_Pim_HeliPipPimPi0.E()- V4_Pim_HeliPipPimPi0.M() + V4_Pi0_HeliPipPimPi0.E()- V4_Pi0_HeliPipPimPi0.M(); + double lambdaNorm=theQ*theQ*(theQ*theQ/108.+ V4_Pim_HeliPipPimPi0.M()*theQ/9.+ V4_Pim_HeliPipPimPi0.M()* V4_Pim_HeliPipPimPi0.M()/3.); + double lambda= V4_omegaDecPlaneNormal_HeliPipPimPi0.P()* V4_omegaDecPlaneNormal_HeliPipPimPi0.P()/lambdaNorm; - // Vector4<float> V4_normKsKlDecHeliKsKlKpKm - // (0.5*(V4_Kl_HeliKsKlKpKm.T()+V4_Ks_HeliKsKlKpKm.T()), - // V4_Ks_HeliKsKlKpKm.Y()*V4_Kl_HeliKsKlKpKm.Z()-V4_Ks_HeliKsKlKpKm.Z()*V4_Kl_HeliKsKlKpKm.Y(), - // V4_Ks_HeliKsKlKpKm.Z()*V4_Kl_HeliKsKlKpKm.X()-V4_Ks_HeliKsKlKpKm.X()*V4_Kl_HeliKsKlKpKm.Z(), - // V4_Ks_HeliKsKlKpKm.X()*V4_Kl_HeliKsKlKpKm.Y()-V4_Ks_HeliKsKlKpKm.Y()*V4_Kl_HeliKsKlKpKm.X()); - EvtDataNew* evtData=new EvtDataNew(); evtData->FourVecsProd[enumProd4V::Psi] = V4_psi; evtData->FourVecsDec[enumJpsiGamX4V::V4_PipPimPi0KpKm_HeliPsi]=V4_PipPimPi0KpKm_HeliPsi; @@ -114,15 +114,19 @@ void JpsiToOmegaPhiGamEventList::read4Vecs(EventList& evtList, std::vector<EvtDa evtData->FourVecsDec[enumJpsiGamX4V::V4_Km_HeliPsi]=V4_Km_HeliPsi; evtData->FourVecsDec[enumJpsiGamX4V::V4_PipPimPi0_HeliPipPimPi0KpKm]=V4_PipPimPi0_HeliPipPimPi0KpKm; evtData->FourVecsDec[enumJpsiGamX4V::V4_KpKm_HeliPipPimPi0KpKm]=V4_KpKm_HeliPipPimPi0KpKm; - evtData->FourVecsDec[enumJpsiGamX4V::V4_Pip_HeliPipPimPi0]=V4_Pip_HeliPipPimPi0; evtData->FourVecsDec[enumJpsiGamX4V::V4_Kp_HeliKpKm]= V4_Kp_HeliKpKm; - // evtData->FourVecsDec[enumJpsiGamX4V::V4_normKpKmDecHeliKsKlKpKm]=V4_normKpKmDecHeliKsKlKpKm; - // evtData->FourVecsDec[enumJpsiGamX4V::V4_normKsKlDecHeliKsKlKpKm]=V4_normKsKlDecHeliKsKlKpKm; + evtData->FourVecsDec[enumJpsiGamX4V::V4_Pip_HeliPipPimPi0]=V4_Pip_HeliPipPimPi0; + evtData->FourVecsDec[enumJpsiGamX4V::V4_Pim_HeliPipPimPi0]=V4_Pim_HeliPipPimPi0; + evtData->FourVecsDec[enumJpsiGamX4V::V4_Pi0_HeliPipPimPi0]=V4_Pi0_HeliPipPimPi0; - - // calculate and store WignerD functions for Psi -> X gamma (JPC =0-+, 0++, 2++) - + evtData->FourVecsDec[enumJpsiGamX4V::V4_omegaDecPlaneNormal_HeliPipPimPi0] =V4_omegaDecPlaneNormal_HeliPipPimPi0; + + evtData->KinematicVariables[enumJpsiGamXKin::OmegaDecLambda]=lambda; + + // + // calculate and store WignerD functions for Psi -> X gamma (JPC =0-+, 0++, 2++) + // Spin jPsi=1; for (Spin M=-1; M<=1; M=M+2){ for (Spin lam=-1; lam<=1; lam++){ @@ -131,23 +135,24 @@ void JpsiToOmegaPhiGamEventList::read4Vecs(EventList& evtList, std::vector<EvtDa } // //WignerD functions for X -> phi phi - - // for (Spin J_X=0; J_X<=2; J_X++){ - // for (Spin lam_X=-J_X; lam_X<=J_X; lam_X++){ - // for (Spin lamPhi1mlamPhi2=-J_X; lamPhi1mlamPhi2<=J_X; lamPhi1mlamPhi2++){ - // evtData->WignerDsDec[enumJpsiGamXDfunc::Df_XToPhiPhi1][J_X][lam_X][lamPhi1mlamPhi2] - // =Wigner_D(V4_KsKl_HeliKsKlKpKm.Phi(),V4_KsKl_HeliKsKlKpKm.Theta(),0,J_X,lam_X,lamPhi1mlamPhi2); - // evtData->WignerDsDec[enumJpsiGamXDfunc::Df_XToPhiPhi2][J_X][lam_X][lamPhi1mlamPhi2] - // =Wigner_D(V4_KpKm_HeliKsKlKpKm.Phi(),V4_KpKm_HeliKsKlKpKm.Theta(),0,J_X,lam_X,lamPhi1mlamPhi2); - // } - // } - // } - //WignerD function for phi -> K+ K- and phi -> KS KL + for (Spin J_X=0; J_X<=2; J_X++){ + for (Spin lam_X=-J_X; lam_X<=J_X; lam_X++){ + for (Spin lamPhilamOmega=-J_X; lamPhilamOmega<=J_X; lamPhilamOmega++){ + evtData->WignerDsDec[enumJpsiGamXDfunc::Df_XToOmegaPhi_KK][J_X][lam_X][lamPhilamOmega] + =Wigner_D(V4_KpKm_HeliPipPimPi0KpKm.Phi(),V4_KpKm_HeliPipPimPi0KpKm.Theta(),0,J_X,lam_X,lamPhilamOmega); + evtData->WignerDsDec[enumJpsiGamXDfunc::Df_XToOmegaPhi_3pi][J_X][lam_X][lamPhilamOmega] + =Wigner_D(V4_PipPimPi0_HeliPipPimPi0KpKm.Phi(), V4_PipPimPi0_HeliPipPimPi0KpKm.Theta(),0,J_X,lam_X,lamPhilamOmega); + } + } + } + + //WignerD function for phi -> K+ K- andomega -> pi+ pi- pi0 Spin phiSpin=1; for(Spin M=-phiSpin; M<=phiSpin; M++){ Spin lam=0; evtData->WignerDsDec[enumJpsiGamXDfunc::Df_PhiToKpKm][phiSpin][M][lam] = Wigner_D(V4_Kp_HeliKpKm.Phi(),V4_Kp_HeliKpKm.Theta(), 0,phiSpin,M,lam); + evtData->WignerDsDec[enumJpsiGamXDfunc::Df_OmegaToPipPimPi0][phiSpin][M][lam] = Wigner_D(V4_omegaDecPlaneNormal_HeliPipPimPi0.Phi(), V4_omegaDecPlaneNormal_HeliPipPimPi0.Theta(), 0,phiSpin,M,lam); } evtData->evtWeight=anEvent->Weight(); diff --git a/Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamEventList.hh b/Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamEventList.hh index a2943edbeda8322cf99eeb7fe10de037033d4023..83bf76731752be38e49461cc2dd5b14e3da4a566 100644 --- a/Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamEventList.hh +++ b/Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamEventList.hh @@ -12,14 +12,20 @@ struct enumJpsiGamX4V{ enum { Psi=0, V4_PipPimPi0KpKm_HeliPsi, V4_PipPimPi0_HeliPsi, V4_KpKm_HeliPsi, V4_gamma_HeliPsi, V4_Pip_HeliPsi, V4_Pim_HeliPsi, V4_Pi0_HeliPsi, V4_Kp_HeliPsi, V4_Km_HeliPsi, - V4_PipPimPi0_HeliPipPimPi0KpKm, V4_KpKm_HeliPipPimPi0KpKm, V4_Pip_HeliPipPimPi0, V4_Kp_HeliKpKm, n4Vecs}; + V4_PipPimPi0_HeliPipPimPi0KpKm, V4_KpKm_HeliPipPimPi0KpKm, + V4_Pip_HeliPipPimPi0, V4_Pim_HeliPipPimPi0, V4_Pi0_HeliPipPimPi0, + V4_Kp_HeliKpKm, + V4_omegaDecPlaneNormal_HeliPipPimPi0, n4Vecs}; static const std::string& name(unsigned int t) { static std::string fitName[enumJpsiGamX4V::n4Vecs] ={ "Psi", "PipPimPi0KpKm_HeliPsi", "PipPimPi0_HeliPsi", "KpKm_HeliPsi", "gamma_HeliPsi", "Pip_HeliPsi", "Pim_HeliPsi", "Pi0_HeliPsi", "Kp_HeliPsi", "Km_HeliPsi", - "PipPimPi0_HeliPipPimPi0KpKm", "KpKm_HeliPipPimPi0KpKm", "Pip_HeliPipPimPi0", "Kp_HeliKpKm" }; + "PipPimPi0_HeliPipPimPi0KpKm", "KpKm_HeliPipPimPi0KpKm", + "Pip_HeliPipPimPi0", "Pim_HeliPipPimPi0", "Pi0_HeliPipPimPi0" + "Kp_HeliKpKm", + "V4_omegaDecPlaneNormal_HeliPipPimPi0" }; if (t<0 || t>=enumJpsiGamX4V::n4Vecs) assert(0); return fitName[t]; @@ -27,18 +33,29 @@ struct enumJpsiGamX4V{ }; struct enumJpsiGamXDfunc{ - enum {Df_XToPhiPhi1=0, Df_XToPhiPhi2, Df_PhiToKsKl,Df_PhiToKpKm, nDfuncts}; + enum {Df_XToOmegaPhi_KK=0, Df_XToOmegaPhi_3pi, Df_OmegaToPipPimPi0, Df_PhiToKpKm, nDfuncts}; static const std::string& name(unsigned int t) { static std::string fitName[enumJpsiGamXDfunc::nDfuncts] - ={"XToPhiPhi1", "XToPhiPhi2", "PhiToKsKl", "PhiToKpKm"}; + ={"XToOmegaPhi_KK", "XToOmegaPhi_3pi", "OmegaToPipPimPi0", "PhiToKpKm"}; if (t<0 || t>=enumJpsiGamXDfunc::nDfuncts) assert(0); return fitName[t]; } }; +struct enumJpsiGamXKin{ + enum {OmegaDecLambda=0, nKinVars}; + // static const std::string& name(unsigned int t) + // { + // static std::string fitName[enumJpsiGamXKin::nKinVars] + // ={"OmegaDecLambda"}; + // if (t<0 || t>=enumJpsiGamXKin::nKinVars) assert(0); + // return fitName[t]; + // } +}; + class EventList; diff --git a/Examples/JpsiToOmegaPhiGam/XToOmegaPhiDecAmps.cc b/Examples/JpsiToOmegaPhiGam/XToOmegaPhiDecAmps.cc index 999eb17c328a8fb0c326f3108df79a35e2e2acb5..4e27c8a004344a17922a9bf806d1adf13c6e4b50 100644 --- a/Examples/JpsiToOmegaPhiGam/XToOmegaPhiDecAmps.cc +++ b/Examples/JpsiToOmegaPhiGam/XToOmegaPhiDecAmps.cc @@ -90,7 +90,7 @@ complex<double> XToOmegaPhiDecAmps::XToPhiPhiAmp(Spin lamX, EvtDataNew* theData) complex<double> amp = theXMag*expiphiX*sqrt(2*XState->L+1) *Clebsch(XState->L, 0, XState->S, lambda, XState->J, lambda) *Clebsch(1, lambdaPhi1, 1, -lambdaPhi2, XState->S, lambda ) - *conj( theData->WignerDsDec[enumJpsiGamXDfunc::Df_XToPhiPhi1][XState->J][lamX][lambda]); + *conj( theData->WignerDsDec[enumJpsiGamXDfunc::Df_XToOmegaPhi_KK][XState->J][lamX][lambda]); amp = amp * phiphiTo4KAmp( theData, lambdaPhi1, lambdaPhi2 ); @@ -105,7 +105,9 @@ complex<double> XToOmegaPhiDecAmps::XToPhiPhiAmp(Spin lamX, EvtDataNew* theData) complex<double> XToOmegaPhiDecAmps::phiphiTo4KAmp( EvtDataNew* theData, Spin lambdaPhi1, Spin lambdaPhi2 ){ complex<double> result(0.,0.); - result = 3. * conj(theData->WignerDsDec[enumJpsiGamXDfunc::Df_PhiToKsKl][1][lambdaPhi1][0]) + double lambda = theData->KinematicVariables[enumJpsiGamXKin::OmegaDecLambda]; + + result = 3. * conj(theData->WignerDsDec[enumJpsiGamXDfunc::Df_OmegaToPipPimPi0][1][lambdaPhi1][0]) * sqrt(lambda) * 3.* conj(theData->WignerDsDec[enumJpsiGamXDfunc::Df_PhiToKpKm][1][lambdaPhi2][0]); return result; diff --git a/Examples/JpsiToOmegaPhiGam/bin/gcc-4.4.6/release/link-static/JpsiToOmegaPhiGamEventList.o b/Examples/JpsiToOmegaPhiGam/bin/gcc-4.4.6/release/link-static/JpsiToOmegaPhiGamEventList.o index c67e4f5c0038cf7c39deba78eadc7d05ad94d297..6984974385a45644677f592eb9a34a768f30f3aa 100644 Binary files a/Examples/JpsiToOmegaPhiGam/bin/gcc-4.4.6/release/link-static/JpsiToOmegaPhiGamEventList.o and b/Examples/JpsiToOmegaPhiGam/bin/gcc-4.4.6/release/link-static/JpsiToOmegaPhiGamEventList.o differ diff --git a/Examples/JpsiToOmegaPhiGam/bin/gcc-4.4.6/release/link-static/JpsiToOmegaPhiGamHist.o b/Examples/JpsiToOmegaPhiGam/bin/gcc-4.4.6/release/link-static/JpsiToOmegaPhiGamHist.o index 7b3d7655bc1a551d305a0e1359f7b938adaeb141..00307f1514f152a9dbbd4d6123deb447d2efa9e1 100644 Binary files a/Examples/JpsiToOmegaPhiGam/bin/gcc-4.4.6/release/link-static/JpsiToOmegaPhiGamHist.o and b/Examples/JpsiToOmegaPhiGam/bin/gcc-4.4.6/release/link-static/JpsiToOmegaPhiGamHist.o differ diff --git a/Examples/JpsiToOmegaPhiGam/bin/gcc-4.4.6/release/link-static/MJpsiToOmegaPhiGamApp b/Examples/JpsiToOmegaPhiGam/bin/gcc-4.4.6/release/link-static/MJpsiToOmegaPhiGamApp index ddd8479141c732f1bc5ceb1b0b3de79325fa36e7..d6d83f8b93eb2874131a058efb7cc438138e1e9e 100755 Binary files a/Examples/JpsiToOmegaPhiGam/bin/gcc-4.4.6/release/link-static/MJpsiToOmegaPhiGamApp and b/Examples/JpsiToOmegaPhiGam/bin/gcc-4.4.6/release/link-static/MJpsiToOmegaPhiGamApp differ diff --git a/Examples/JpsiToOmegaPhiGam/bin/gcc-4.4.6/release/link-static/MJpsiToOmegaPhiGamApp.o b/Examples/JpsiToOmegaPhiGam/bin/gcc-4.4.6/release/link-static/MJpsiToOmegaPhiGamApp.o index e8dd83dd26459a7c754399fadb851b36b95861da..581d95895927210abbde16acfb6fdb35a82eeee6 100644 Binary files a/Examples/JpsiToOmegaPhiGam/bin/gcc-4.4.6/release/link-static/MJpsiToOmegaPhiGamApp.o and b/Examples/JpsiToOmegaPhiGam/bin/gcc-4.4.6/release/link-static/MJpsiToOmegaPhiGamApp.o differ diff --git a/Examples/JpsiToOmegaPhiGam/bin/gcc-4.4.6/release/link-static/XToOmegaPhiDecAmps.o b/Examples/JpsiToOmegaPhiGam/bin/gcc-4.4.6/release/link-static/XToOmegaPhiDecAmps.o index 70b6dea7dc5ae2dc3d115ee4fca5cda0d425d820..b22429ba5cfa2eee9bbf63b9913a5190df0a2bdf 100644 Binary files a/Examples/JpsiToOmegaPhiGam/bin/gcc-4.4.6/release/link-static/XToOmegaPhiDecAmps.o and b/Examples/JpsiToOmegaPhiGam/bin/gcc-4.4.6/release/link-static/XToOmegaPhiDecAmps.o differ diff --git a/Examples/JpsiToOmegaPhiGam/bin/gcc-4.4.6/release/link-static/libJpsiToOmegaPhiGam.a b/Examples/JpsiToOmegaPhiGam/bin/gcc-4.4.6/release/link-static/libJpsiToOmegaPhiGam.a index d4a5fd835515df4373f3ae183e1c530f47d7bad9..80e49677e60aade252d7931c358918a8be42937c 100644 Binary files a/Examples/JpsiToOmegaPhiGam/bin/gcc-4.4.6/release/link-static/libJpsiToOmegaPhiGam.a and b/Examples/JpsiToOmegaPhiGam/bin/gcc-4.4.6/release/link-static/libJpsiToOmegaPhiGam.a differ diff --git a/Examples/JpsiToOmegaPhiGam/qaSummary.dat b/Examples/JpsiToOmegaPhiGam/qaSummary.dat index 13d516790c2685a01b88949ea2b8af8b2403847b..859d6457b449c8f0af61a0bdf19d22f9e1c37d9b 100644 --- a/Examples/JpsiToOmegaPhiGam/qaSummary.dat +++ b/Examples/JpsiToOmegaPhiGam/qaSummary.dat @@ -1,5 +1,5 @@ -BIC 4392.52 -AICa 4367 -AICc 4367.01 -logLh 2179.5 +BIC 14611.8 +AICa 14586.3 +AICc 14586.3 +logLh 7289.15 free parameter 4