diff --git a/Examples/Jamfile b/Examples/Jamfile index f4b29065016a8ea257a58602360152a5631cb4e0..f4fe0fcbbdf052ec885b3e471ea195b4c0dc76db 100644 --- a/Examples/Jamfile +++ b/Examples/Jamfile @@ -10,3 +10,5 @@ build-project JpsiGamKsKlKK ; build-project JpsiGamEtaPiPiNew ; build-project JpsiToPhiPhiGam ; build-project D0ToKsPipPim ; +build-project JpsiToOmegaPhiGam ; + diff --git a/Examples/JpsiToOmegaPhiGam/ConfigFiles/JpsiToOmegaPhiDefault.cfg b/Examples/JpsiToOmegaPhiGam/ConfigFiles/JpsiToOmegaPhiDefault.cfg deleted file mode 100644 index 2246fba5255afba99cae4bfb8187cece9c842729..0000000000000000000000000000000000000000 --- a/Examples/JpsiToOmegaPhiGam/ConfigFiles/JpsiToOmegaPhiDefault.cfg +++ /dev/null @@ -1,32 +0,0 @@ -################################################################################# -# Configuration file for JpsiToEtaPiPi PWA # -# # -# Authors: Bertram Kopf (RUB) # -################################################################################# - -errLogMode = debug -noOfThreads = 32 -#errLogMode = trace - -datFile = /data/liema/pascal/bes/marc/FS4Vectors-JpsiGamPhiOm_daten.dat -mcFile = /data/liema/pascal/bes/marc/FS4Vectors-JpsiGamPhiOm1G.dat - -ratioMcToData = 10 -useEventWeight = false - -paramFile = ./defaultparams.dat - -startHypo = production - - -enableHyp = GammaEta_2981 - - -massRangeMin = 1. -massRangeMax = 4. - -mode = qaMode -# Determines whether information about configuration options should be emitted -verbose = 1 - -#mnParFix = J1P-1C-1Lama0Lamb1GammaEta_2981Phi diff --git a/Examples/JpsiToOmegaPhiGam/Jamfile b/Examples/JpsiToOmegaPhiGam/Jamfile index 0baeb6e8d4509d36a655c463d568cbf7193c46b2..5ef09b65611832d0b64b57f8f0cced6415160bf7 100644 --- a/Examples/JpsiToOmegaPhiGam/Jamfile +++ b/Examples/JpsiToOmegaPhiGam/Jamfile @@ -15,3 +15,4 @@ exe MJpsiToOmegaPhiGamApp : MJpsiToOmegaPhiGamApp.cc JpsiToOmegaPhiGam : ; + diff --git a/Examples/JpsiToOmegaPhiGam/Jamfile~ b/Examples/JpsiToOmegaPhiGam/Jamfile~ deleted file mode 100644 index 348fb7c2df4b1e355da749635e926430934ba46e..0000000000000000000000000000000000000000 --- a/Examples/JpsiToOmegaPhiGam/Jamfile~ +++ /dev/null @@ -1,17 +0,0 @@ -project : - ; - -lib JpsiToPhiPhiGam : - [ glob *.cc : *App.cc ] - $(TOP)/PwaUtils//PwaUtils - $(TOP)/Event//Event - $(TOP)/qft++//qft++ - : - : - : ; - -exe MJpsiToOmegaPhiGamApp : MJpsiToOmegaPhiGamApp.cc JpsiToOmegaPhiGam : ; - - - - diff --git a/Examples/JpsiToOmegaPhiGam/JpsiGamPipPimPi0KK.root b/Examples/JpsiToOmegaPhiGam/JpsiGamPipPimPi0KK.root deleted file mode 100644 index 33c4ff0a6b88d32079beab5499a2720fe5014c6b..0000000000000000000000000000000000000000 Binary files a/Examples/JpsiToOmegaPhiGam/JpsiGamPipPimPi0KK.root and /dev/null differ diff --git a/Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamEventList.cc b/Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamEventList.cc index 16ddaf9f73f4ab1e7a74e52274a10af050fd7642..c431245a6fa816951632e46f04908832a16defab 100644 --- a/Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamEventList.cc +++ b/Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamEventList.cc @@ -79,27 +79,56 @@ 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_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_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); - + // + // Omega decay plane normal and lambda parameter + // 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; + /////// + + + // + // omega and phi decay plane normal in omega phi helicity system + // + + //omega + Vector4<float> normalpipluspiminusheliomegaTLVlab= helicityVecInverse( V4_PipPimPi0KpKm_Lab, V4_PipPimPi0_Lab, V4_omegaDecPlaneNormal_HeliPipPimPi0); + Vector4<float> V4_omegaDecPlaneNormal_HeliPipPimPi0KpKm= helicityVec(V4_all_Lab,V4_PipPimPi0KpKm_Lab , normalpipluspiminusheliomegaTLVlab); + + //test + Vector4<float> testBoosted = helicityVec( V4_PipPimPi0KpKm_Lab, V4_PipPimPi0_Lab, normalpipluspiminusheliomegaTLVlab ); + //cout << "++++++++++++++++++++++++++++++"<<endl; + //cout << V4_omegaDecPlaneNormal_HeliPipPimPi0 << endl; + //cout << testBoosted << endl; + //cout << "+++++++++++++++++++++++++++++++" << endl; + //eot + + + + + + //phi + Vector4<float> V4_phiDecPlaneNormal_HeliPipPimPi0KpKm ( 0.5*( V4_Kp_HeliPipPimPi0KpKm.T()+ V4_Km_HeliPipPimPi0KpKm.T() ), + V4_Km_HeliPipPimPi0KpKm.Y()*V4_Kp_HeliPipPimPi0KpKm.Z() - V4_Km_HeliPipPimPi0KpKm.Z()*V4_Kp_HeliPipPimPi0KpKm.Y(), + V4_Km_HeliPipPimPi0KpKm.Z()*V4_Kp_HeliPipPimPi0KpKm.X() - V4_Km_HeliPipPimPi0KpKm.X()*V4_Kp_HeliPipPimPi0KpKm.Z(), + V4_Km_HeliPipPimPi0KpKm.X()*V4_Kp_HeliPipPimPi0KpKm.Y() - V4_Km_HeliPipPimPi0KpKm.Y()*V4_Kp_HeliPipPimPi0KpKm.X() ); + // EvtDataNew* evtData=new EvtDataNew(); evtData->FourVecsProd[enumProd4V::Psi] = V4_psi; @@ -121,6 +150,8 @@ void JpsiToOmegaPhiGamEventList::read4Vecs(EventList& evtList, std::vector<EvtDa evtData->FourVecsDec[enumJpsiGamX4V::V4_Pi0_HeliPipPimPi0]=V4_Pi0_HeliPipPimPi0; evtData->FourVecsDec[enumJpsiGamX4V::V4_omegaDecPlaneNormal_HeliPipPimPi0] =V4_omegaDecPlaneNormal_HeliPipPimPi0; + evtData->FourVecsDec[enumJpsiGamX4V::V4_omegaDecPlaneNormal_HeliPipPimPi0KpKm] =V4_omegaDecPlaneNormal_HeliPipPimPi0KpKm; + evtData->FourVecsDec[enumJpsiGamX4V::V4_phiDecPlaneNormal_HeliPipPimPi0KpKm] =V4_phiDecPlaneNormal_HeliPipPimPi0KpKm; evtData->KinematicVariables[enumJpsiGamXKin::OmegaDecLambda]=lambda; diff --git a/Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamEventList.cc~ b/Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamEventList.cc~ deleted file mode 100644 index f53eaae208131d3c2e14958d5b82a747968dd2ec..0000000000000000000000000000000000000000 --- a/Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamEventList.cc~ +++ /dev/null @@ -1,163 +0,0 @@ -#include <getopt.h> -#include <fstream> -#include <string> - -#include "Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamEventList.hh" - -#include "Event/EventList.hh" -#include "PwaUtils/KinUtils.hh" - -#include "Event/Event.hh" -#include "ErrLogger/ErrLogger.hh" - - -JpsiToOmegaPhiGamEventList::JpsiToOmegaPhiGamEventList() : - EvtDataBaseListNew() -{ -} - - -JpsiToOmegaPhiGamEventList::~JpsiToOmegaPhiGamEventList() -{ -} - -void JpsiToOmegaPhiGamEventList::read4Vecs(EventList& evtList, std::vector<EvtDataNew*>& theEvtList, double& evtWeightSum, int maxEvts){ - Event* anEvent; - int evtCount = 0; - while ((anEvent = evtList.nextEvent())){ - if (evtCount>= maxEvts) break; - if (evtCount%10000 == 0) Info << "4vec calculation for event " << evtCount ; // << endmsg; - - Vector4<float> gam = *(anEvent->p4(0)); - Vector4<float> kp = *(anEvent->p4(1)); - Vector4<float> km = *(anEvent->p4(2)); - Vector4<float> pip = *(anEvent->p4(3)); - Vector4<float> pim = *(anEvent->p4(4)); - Vector4<float> pi0 = *(anEvent->p4(5)); - - Vector4<float> V4_psi = gam+kp+km+pip+pim+pi0; - - if (evtCount%10000 == 0){ - Info << "psi 4vec" << "\n" - << " px: " << V4_psi.Px() <<"\t" - << " py: " << V4_psi.Py() <<"\t" - << " pz: " << V4_psi.Pz() <<"\t" - << " e : " << V4_psi.E() << "\t" - << " m : " << V4_psi.M() ; // << endmsg; - } - - Vector4<float> V4_all_Lab( pip+pim+pi0+kp+km+gam ); - Vector4<float> V4_PipPimPi0KpKm_Lab( pip+pim+pi0+kp+km ); - Vector4<float> V4_PipPimPi0_Lab( pip+pim+pi0 ); - Vector4<float> V4_pip_Lab( pip ); - Vector4<float> V4_KpKm_Lab( kp+km ); - Vector4<float> V4_Kp_Lab( kp ); - Vector4<float> V4_Km_Lab( km ); - Vector4<float> V4_pim_Lab( pim ); - Vector4<float> V4_pi0_Lab( pi0 ); - - Vector4<float> V4_PipPimPi0KpKm_HeliPsi( V4_PipPimPi0KpKm_Lab ); - V4_PipPimPi0KpKm_HeliPsi.Boost(V4_psi); - - Vector4<float> V4_gamma_HeliPsi( gam ); - V4_gamma_HeliPsi.Boost(V4_psi); - Vector4<float> V4_KpKm_HeliPsi( kp+km ); - V4_KpKm_HeliPsi.Boost(V4_psi); - Vector4<float> V4_PipPimPi0_HeliPsi( pip+pim+pi0 ); - V4_PipPimPi0_HeliPsi.Boost(V4_psi); - - Vector4<float> V4_Pip_HeliPsi( pip ); - V4_Pip_HeliPsi.Boost( V4_psi ); - Vector4<float> V4_Pim_HeliPsi( pim ); - V4_Pim_HeliPsi.Boost( V4_psi ); - Vector4<float> V4_Pi0_HeliPsi( pi0 ); - V4_Pi0_HeliPsi.Boost( V4_psi ); - Vector4<float> V4_Kp_HeliPsi( kp ); - V4_Kp_HeliPsi.Boost( V4_psi ); - Vector4<float> V4_Km_HeliPsi( km ); - V4_Km_HeliPsi.Boost( V4_psi ); - - 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_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_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; - evtData->FourVecsDec[enumJpsiGamX4V::V4_PipPimPi0_HeliPsi]=V4_PipPimPi0_HeliPsi; - evtData->FourVecsDec[enumJpsiGamX4V::V4_KpKm_HeliPsi]=V4_KpKm_HeliPsi; - evtData->FourVecsDec[enumJpsiGamX4V::V4_gamma_HeliPsi]=V4_gamma_HeliPsi; - evtData->FourVecsDec[enumJpsiGamX4V::V4_Pip_HeliPsi]=V4_Pip_HeliPsi; - evtData->FourVecsDec[enumJpsiGamX4V::V4_Pim_HeliPsi]=V4_Pim_HeliPsi; - evtData->FourVecsDec[enumJpsiGamX4V::V4_Pi0_HeliPsi]=V4_Pi0_HeliPsi; - evtData->FourVecsDec[enumJpsiGamX4V::V4_Kp_HeliPsi]=V4_Kp_HeliPsi; - 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_Ks_HeliPipPimPi0]=V4_Ks_HeliPipPimPi0; - evtData->FourVecsDec[enumJpsiGamX4V::V4_Kp_HeliKpKm]= V4_Kp_HeliKpKm; - - // evtData->FourVecsDec[enumJpsiGamX4V::V4_normKpKmDecHeliKsKlKpKm]=V4_normKpKmDecHeliKsKlKpKm; - // evtData->FourVecsDec[enumJpsiGamX4V::V4_normKsKlDecHeliKsKlKpKm]=V4_normKsKlDecHeliKsKlKpKm; - - - // 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++){ - evtData->WignerDsProd[enumProdDfunc::Psi][jPsi][M][lam]=Wigner_D(0.,V4_PipPimPi0KpKm_HeliPsi.Theta(),0,jPsi,M,lam); - } - } - - // //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 - 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->evtWeight=anEvent->Weight(); - evtData->evtNo=_evtNoAll; - theEvtList.push_back(evtData); - - evtWeightSum += anEvent->Weight(); - ++evtCount; - ++_evtNoAll; - } -} - - diff --git a/Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamEventList.hh b/Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamEventList.hh index 83bf76731752be38e49461cc2dd5b14e3da4a566..4557386d4acc81876bc7e164cf7086953cf1a0b3 100644 --- a/Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamEventList.hh +++ b/Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamEventList.hh @@ -15,7 +15,8 @@ struct enumJpsiGamX4V{ V4_PipPimPi0_HeliPipPimPi0KpKm, V4_KpKm_HeliPipPimPi0KpKm, V4_Pip_HeliPipPimPi0, V4_Pim_HeliPipPimPi0, V4_Pi0_HeliPipPimPi0, V4_Kp_HeliKpKm, - V4_omegaDecPlaneNormal_HeliPipPimPi0, n4Vecs}; + V4_omegaDecPlaneNormal_HeliPipPimPi0, V4_omegaDecPlaneNormal_HeliPipPimPi0KpKm, V4_phiDecPlaneNormal_HeliPipPimPi0KpKm, + n4Vecs}; static const std::string& name(unsigned int t) { @@ -25,7 +26,7 @@ struct enumJpsiGamX4V{ "PipPimPi0_HeliPipPimPi0KpKm", "KpKm_HeliPipPimPi0KpKm", "Pip_HeliPipPimPi0", "Pim_HeliPipPimPi0", "Pi0_HeliPipPimPi0" "Kp_HeliKpKm", - "V4_omegaDecPlaneNormal_HeliPipPimPi0" }; + "V4_omegaDecPlaneNormal_HeliPipPimPi0","V4_omegaDecPlaneNormal_HeliPipPimPi0KpKm", "V4_phiDecPlaneNormal_HeliPipPimPi0KpKm" }; if (t<0 || t>=enumJpsiGamX4V::n4Vecs) assert(0); return fitName[t]; diff --git a/Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamEventList.hh~ b/Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamEventList.hh~ deleted file mode 100644 index 8a001003a5ab828546f994f5ff4b8d68067fe6ef..0000000000000000000000000000000000000000 --- a/Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamEventList.hh~ +++ /dev/null @@ -1,75 +0,0 @@ -#ifndef _JpsiToOmegaPhiGamEventList_H -#define _JpsiToOmegaPhiGamEventList_H - -#include <iostream> -#include <vector> - -#include <cassert> -// #include <TSystem.h> -#include "qft++/topincludes/relativistic-quantum-mechanics.hh" -#include "PwaUtils/EvtDataBaseListNew.hh" - -struct enumJpsiGamX4V{ - enum {V4_KsKlKpKm_HeliPsi=0, V4_KsKl_HeliPsi,V4_KpKm_HeliPsi, V4_gamma_HeliPsi, - V4_Ks_HeliPsi, V4_Kl_HeliPsi, V4_Kp_HeliPsi, V4_Km_HeliPsi, - V4_KsKl_HeliKsKlKpKm,V4_KpKm_HeliKsKlKpKm ,V4_Ks_HeliKsKl,V4_Kp_HeliKpKm, - V4_normKpKmDecHeliKsKlKpKm, V4_normKsKlDecHeliKsKlKpKm, n4Vecs}; - - static const std::string& name(unsigned int t) - { - static std::string fitName[enumJpsiGamX4V::n4Vecs] - ={"KsKlKpKm_HeliPsi", "KsKl_HeliPsi,KpKm_HeliPsi", "gamma_HeliPsi", - "Ks_HeliPsi, Kl_HeliPsi", "Kp_HeliPsi", "Km_HeliPsi", - "KsKl_HeliKsKlKpKm","KpKm_HeliKsKlKpKm" ,"Ks_HeliKsKl","Kp_HeliKpKm", - "normKpKmDecHeliKsKlKpKm", "normKsKlDecHeliKsKlKpKm" - }; - - if (t<0 || t>=enumJpsiGamX4V::n4Vecs) assert(0); - return fitName[t]; - } -}; - -struct enumJpsiGamXDfunc{ - enum {Df_XToPhiPhi1=0, Df_XToPhiPhi2, Df_PhiToKsKl,Df_PhiToKpKm, nDfuncts}; - - static const std::string& name(unsigned int t) - { - static std::string fitName[enumJpsiGamXDfunc::nDfuncts] - ={"XToPhiPhi1", "XToPhiPhi2", "PhiToKsKl", "PhiToKpKm"}; - if (t<0 || t>=enumJpsiGamXDfunc::nDfuncts) assert(0); - return fitName[t]; - } -}; - - - -class EventList; - -class JpsiToOmegaPhiGamEventList : public EvtDataBaseListNew { - -public: - - // create/copy/destroy: - - ///Constructor - JpsiToOmegaPhiGamEventList(); - - - - /** Destructor */ - virtual ~JpsiToOmegaPhiGamEventList(); - - // Getters: - - -protected: - - - virtual void read4Vecs(EventList& evtList, std::vector<EvtDataNew*>& theEvtList, double& evtWeightSum, int maxEvts); - -private: - - -}; - -#endif diff --git a/Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamHist.cc b/Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamHist.cc index e7522fe6fd86875b48600fbf74a76f3b031dfa09..8579868db2e392ce9a9ecb93172d25f61dec5f2f 100644 --- a/Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamHist.cc +++ b/Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamHist.cc @@ -334,9 +334,9 @@ void JpsiToOmegaPhiGamHist::initRootStuff() _phiPhi_OmegaPhiHeliMcHist= new TH1F("_phiPhi_OmegaPhiHeliMcHist", "cos(#Phi_{#phi}) K+ K- Mc", 100, -TMath::Pi(), TMath::Pi()); _phiPhi_OmegaPhiHeliFittedHist= new TH1F("_phiPhi_OmegaPhiHeliFittedHist", "cos(#Phi_{#phi}) K+ K- Fit", 100, -TMath::Pi(), TMath::Pi()); - _chiDataHist= new TH1F("_chiDataHist", "#chi data", 90, 0., 90.); - _chiMcHist= new TH1F("_chiMcHist", "#chi Mc", 90, 0., 90.); - _chiFittedHist= new TH1F("_chiFittedHist", "#chi Fit", 90, 0., 90.); + _chiDataHist= new TH1F("_chiDataHist", "#chi data", 100, 0., 90.); + _chiMcHist= new TH1F("_chiMcHist", "#chi Mc", 100, 0., 90.); + _chiFittedHist= new TH1F("_chiFittedHist", "#chi Fit", 100, 0., 90.); nbins = 50; xmin=0; @@ -411,25 +411,20 @@ void JpsiToOmegaPhiGamHist::plotLambda(TH1F* theHisto, EvtDataNew* theData, doub } void JpsiToOmegaPhiGamHist::plotChi(TH1F* theChiHisto, EvtDataNew* theData, double weight){ -// Vector4<double>& V4_PipPimPi0KpKm_HeliPsi = theData->FourVecsDec[enumJpsiGamX4V::V4_PipPimPi0KpKm_HeliPsi] ; -// Vector4<double>& V4_Pip_HeliPsi= theData->FourVecsDec[enumJpsiGamX4V::V4_Pip_HeliPsi] ; -// Vector4<double>& V4_Kl_HeliPsi= theData->FourVecsDec[enumJpsiGamX4V::V4_Kl_HeliPsi] ; -// Vector4<double>& V4_Kp_HeliPsi= theData->FourVecsDec[enumJpsiGamX4V::V4_Kp_HeliPsi] ; -// Vector4<double>& V4_Km_HeliPsi= theData->FourVecsDec[enumJpsiGamX4V::V4_Km_HeliPsi] ; - -// double thePhiPhiDecayPlaneAngle = decayAngleChi( V4_PipPimPi0KpKm_HeliPsi, V4_Kp_HeliPsi, V4_Km_HeliPsi, V4_Pip_HeliPsi, V4_Kl_HeliPsi ); - - - //Vector4<double>& V4_normKpKmDecHeliPipPimPi0KpKm = theData->FourVecsDec[enumJpsiGamX4V::V4_normKpKmDecHeliPipPimPi0KpKm]; - //Vector4<double>& V4_normPipPimPi0DecHeliPipPimPi0KpKm = theData->FourVecsDec[enumJpsiGamX4V::V4_normPipPimPi0DecHeliPipPimPi0KpKm]; - - // double cosChi=(V4_normKpKmDecHeliPipPimPi0KpKm.Px()*V4_normPipPimPi0DecHeliPipPimPi0KpKm.Px() - // +V4_normKpKmDecHeliPipPimPi0KpKm.Py()*V4_normPipPimPi0DecHeliPipPimPi0KpKm.Py() - // +V4_normKpKmDecHeliPipPimPi0KpKm.Pz()*V4_normPipPimPi0DecHeliPipPimPi0KpKm.Pz()) - // / (V4_normKpKmDecHeliPipPimPi0KpKm.P()*V4_normPipPimPi0DecHeliPipPimPi0KpKm.P()); - - // double chi=acos(fabs(cosChi)); - // theChiHisto->Fill(chi*180./TMath::Pi(),weight); + + Vector4<double>& V4_normKpKmDecHeliPipPimPi0KpKm = theData->FourVecsDec[enumJpsiGamX4V::V4_phiDecPlaneNormal_HeliPipPimPi0KpKm]; + Vector4<double>& V4_normPipPimPi0DecHeliPipPimPi0KpKm = theData->FourVecsDec[enumJpsiGamX4V::V4_omegaDecPlaneNormal_HeliPipPimPi0KpKm]; + + double cosChi=(V4_normKpKmDecHeliPipPimPi0KpKm.Px()*V4_normPipPimPi0DecHeliPipPimPi0KpKm.Px() + +V4_normKpKmDecHeliPipPimPi0KpKm.Py()*V4_normPipPimPi0DecHeliPipPimPi0KpKm.Py() + +V4_normKpKmDecHeliPipPimPi0KpKm.Pz()*V4_normPipPimPi0DecHeliPipPimPi0KpKm.Pz()) + / (V4_normKpKmDecHeliPipPimPi0KpKm.P()*V4_normPipPimPi0DecHeliPipPimPi0KpKm.P()); + + double chi=acos(fabs(cosChi)); + if(chi>0.5*TMath::Pi()){ + chi=TMath::Pi()-chi; + } + theChiHisto->Fill(chi*180./TMath::Pi(),weight); } void JpsiToOmegaPhiGamHist::fillTuple( TNtuple* theTuple, EvtDataNew* theData, double weight) diff --git a/Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamHist.cc~ b/Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamHist.cc~ deleted file mode 100644 index 0cd9ac3601e2e564badc3f6acc1484684aee1077..0000000000000000000000000000000000000000 --- a/Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamHist.cc~ +++ /dev/null @@ -1,672 +0,0 @@ -#include <getopt.h> -#include <fstream> -#include <sstream> -#include <string> - -#include "Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamHist.hh" -#include "Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamEventList.hh" -//#include "Examples/JpsiGamPipPimPi0KK/JpsiGamPipPimPi0KKData.hh" -//#include "Examples/JpsiGamPipPimPi0KK/JpsiGamPipPimPi0KKProdLh.hh" -#include "PwaUtils/KinUtils.hh" -//#include "Examples/JpsiGamPipPimPi0KK/JpsiGamPipPimPi0KKFitParams.hh" - -#include "TFile.h" -#include "TH1F.h" -#include "TH2F.h" -#include "TMath.h" -#include "TNtuple.h" -#include "TLorentzVector.h" -#include "ErrLogger/ErrLogger.hh" - - -JpsiToOmegaPhiGamHist::JpsiToOmegaPhiGamHist(boost::shared_ptr<const EvtDataBaseListNew> theEvtList) : - _theTFile(0), - _dalitzDataHist(0), - _dalitzMcHist(0), - _dalitzFittedHist(0), - _PhiPhiMassDataHist(0), - _PhiPhiMassMcHist(0), - _PhiPhiMassFittedHist(0), - _KpKmMassDataHist(0), - _KpKmMassMcHist(0), - _KpKmMassFittedHist(0), - _PipPimPi0MassDataHist(0), - _PipPimPi0MassMcHist(0), - _PipPimPi0MassFittedHist(0), - _costPhi_KpKmDataHist(0), - _costPhi_KpKmMcHist(0), - _costPhi_KpKmFittedHist(0), - _phiPhi_KpKmDataHist(0), - _phiPhi_KpKmMcHist(0), - _phiPhi_KpKmFittedHist(0), - _chiDataHist(0), - _chiMcHist(0), - _chiFittedHist(0), - _dataTuple(0), - _mcTuple(0), - _massIndepTuple(0), - _massRange(make_pair(0.,0.) ) -{ - if(0==theEvtList){ - Alert <<"JpsiGamPipPimPi0KKEventList* theEvtList is a 0 pointer !!!!" ; // << endmsg; - exit(1); - } - - initRootStuff(); - - const std::vector<EvtDataNew*> dataList=theEvtList->getDataVecs(); - - std::vector<EvtDataNew*>::const_iterator it=dataList.begin(); - while(it!=dataList.end()) - { - const double evtWeight=(*it)->evtWeight; - plotDalitz(_dalitzDataHist, (*it), evtWeight); - plotPhiPhi(_PhiPhiMassDataHist, (*it), evtWeight ); - plotPipPimPi0( _PipPimPi0MassDataHist, (*it), evtWeight ); - plotKpKm( _KpKmMassDataHist, (*it), evtWeight ); - plotCostPhiPip( _costPip_PipPimPi0HeliDataHist, _phiPip_PipPimPi0HeliDataHist, (*it), evtWeight ); - plotCostPhiKp( _costKp_KpKmHeliDataHist, _phiKp_KpKmHeliDataHist, (*it), evtWeight ); - plotCostGam( _costGamCmDataHist, (*it), evtWeight ); - plotCostPhi_PhiPhiHeli(_costPhi_KpKmDataHist, _phiPhi_KpKmDataHist, (*it)->FourVecsDec[enumJpsiGamX4V::V4_KpKm_HeliPipPimPi0KpKm], evtWeight); - plotChi(_chiDataHist, (*it), evtWeight ); - fillTuple(_dataTuple, (*it), evtWeight); - - ++it; - } - - const std::vector<EvtDataNew*> mcList=theEvtList->getMcVecs(); - it=mcList.begin(); - while(it!=mcList.end()) - { - plotDalitz(_dalitzMcHist, (*it), 1.); - plotPhiPhi(_PhiPhiMassMcHist, (*it), 1. ); - plotPipPimPi0( _PipPimPi0MassMcHist, (*it), 1. ); - plotKpKm( _KpKmMassMcHist, (*it), 1. ); - plotCostPhiPip( _costPip_PipPimPi0HeliMcHist, _phiPip_PipPimPi0HeliMcHist, (*it), 1. ); - plotCostPhiKp( _costKp_KpKmHeliMcHist, _phiKp_KpKmHeliMcHist,(*it), 1. ); - plotCostGam( _costGamCmMcHist,(*it), 1. ); - plotCostPhi_PhiPhiHeli(_costPhi_KpKmMcHist, _phiPhi_KpKmMcHist, (*it)->FourVecsDec[enumJpsiGamX4V::V4_KpKm_HeliPipPimPi0KpKm], 1.); - plotChi(_chiMcHist, (*it), 1. ); - - // double evtWeight= _theJpsiGamPipPimPi0KKLh->calcEvtIntensity((*it), _fitParam); - double evtWeight=1.; - plotDalitz(_dalitzFittedHist, (*it),evtWeight ); - plotPhiPhi(_PhiPhiMassFittedHist, (*it), evtWeight ); - plotPipPimPi0( _PipPimPi0MassFittedHist, (*it), evtWeight ); - plotKpKm( _KpKmMassFittedHist, (*it), evtWeight ); - plotCostPhiPip( _costPip_PipPimPi0HeliFittedHist, _phiPip_PipPimPi0HeliFittedHist,(*it), evtWeight ); - plotCostPhiKp( _costKp_KpKmHeliFittedHist, _phiKp_KpKmHeliFittedHist,(*it), evtWeight ); - plotCostGam( _costGamCmFittedHist,(*it), evtWeight ); - plotCostPhi_PhiPhiHeli(_costPhi_KpKmFittedHist, _phiPhi_KpKmFittedHist, (*it)->FourVecsDec[enumJpsiGamX4V::V4_KpKm_HeliPipPimPi0KpKm], evtWeight); - plotChi(_chiFittedHist, (*it), evtWeight ); - - fillTuple(_mcTuple, (*it), evtWeight); - ++it; - } - - double integralDataWoWeight=(double) theEvtList->getDataVecs().size(); - Info <<"No of data events without weight " << integralDataWoWeight ; // << endmsg; - - double integralDataWWeight = theEvtList->NoOfWeightedDataEvts(); - Info <<"No of data events with weight " << integralDataWWeight ; // << endmsg; - - double integralMC = theEvtList->NoOfWeightedMcEvts(); - Info <<"No of MC events " << integralMC ; // << endmsg; - - Info <<"scaling factor " << integralDataWWeight/integralMC ; // << endmsg; - - double scaleFactor = integralDataWWeight/integralMC; - - _dalitzFittedHist->Scale(scaleFactor); - _PhiPhiMassFittedHist->Scale(scaleFactor); - _PipPimPi0MassFittedHist->Scale(scaleFactor); - _KpKmMassFittedHist->Scale(scaleFactor); - _costPip_PipPimPi0HeliFittedHist->Scale(scaleFactor); - _phiPip_PipPimPi0HeliFittedHist->Scale(scaleFactor); - _costKp_KpKmHeliFittedHist->Scale(scaleFactor); - _phiKp_KpKmHeliFittedHist->Scale(scaleFactor); - _costGamCmFittedHist->Scale(scaleFactor); - _costPhi_KpKmFittedHist->Scale(scaleFactor); - _phiPhi_KpKmFittedHist->Scale(scaleFactor); - _chiFittedHist->Scale(scaleFactor); - - -} - -JpsiToOmegaPhiGamHist::JpsiToOmegaPhiGamHist(boost::shared_ptr<AbsLhNew> theLh, fitParamsNew& theFitParms): - _theTFile(0), - _dalitzDataHist(0), - _dalitzMcHist(0), - _dalitzFittedHist(0), - _PhiPhiMassDataHist(0), - _PhiPhiMassMcHist(0), - _PhiPhiMassFittedHist(0), - _KpKmMassDataHist(0), - _KpKmMassMcHist(0), - _KpKmMassFittedHist(0), - _PipPimPi0MassDataHist(0), - _PipPimPi0MassMcHist(0), - _PipPimPi0MassFittedHist(0), - _costPhi_KpKmDataHist(0), - _costPhi_KpKmMcHist(0), - _costPhi_KpKmFittedHist(0), - _phiPhi_KpKmDataHist(0), - _phiPhi_KpKmMcHist(0), - _phiPhi_KpKmFittedHist(0), - _chiDataHist(0), - _chiMcHist(0), - _chiFittedHist(0), - _dataTuple(0), - _mcTuple(0), - _massIndepTuple(0), - _massRange(make_pair(0.,0.) ) -{ - if(0==theLh){ - Alert <<"AbsLh* is a 0 pointer !!!!" ; // << endmsg; - exit(1); - } - - initRootStuff(); - boost::shared_ptr<const EvtDataBaseListNew> theEvtList=theLh->getEventList(); - const std::vector<EvtDataNew*> dataList=theEvtList->getDataVecs(); - - std::vector<EvtDataNew*>::const_iterator it=dataList.begin(); - while(it!=dataList.end()) - { - const double evtWeight=(*it)->evtWeight; - plotDalitz(_dalitzDataHist, (*it), evtWeight); - plotPhiPhi(_PhiPhiMassDataHist, (*it), evtWeight ); - plotPipPimPi0( _PipPimPi0MassDataHist, (*it), evtWeight ); - plotKpKm( _KpKmMassDataHist, (*it), evtWeight ); - plotCostPhiPip( _costPip_PipPimPi0HeliDataHist, _phiPip_PipPimPi0HeliDataHist, (*it), evtWeight ); - plotCostPhiKp( _costKp_KpKmHeliDataHist, _phiKp_KpKmHeliDataHist, (*it), evtWeight ); - plotCostGam( _costGamCmDataHist, (*it), evtWeight ); - plotCostPhi_PhiPhiHeli(_costPhi_KpKmDataHist, _phiPhi_KpKmDataHist, (*it)->FourVecsDec[enumJpsiGamX4V::V4_KpKm_HeliPipPimPi0KpKm], evtWeight); - plotChi(_chiDataHist, (*it), evtWeight ); - fillTuple(_dataTuple, (*it), evtWeight); - - ++it; - } - - const std::vector<EvtDataNew*> mcList=theEvtList->getMcVecs(); - it=mcList.begin(); - while(it!=mcList.end()) - { - plotDalitz(_dalitzMcHist, (*it), 1.); - plotPhiPhi(_PhiPhiMassMcHist, (*it), 1. ); - plotPipPimPi0( _PipPimPi0MassMcHist, (*it), 1. ); - plotKpKm( _KpKmMassMcHist, (*it), 1. ); - plotCostPhiPip( _costPip_PipPimPi0HeliMcHist, _phiPip_PipPimPi0HeliMcHist, (*it), 1. ); - plotCostPhiKp( _costKp_KpKmHeliMcHist, _phiKp_KpKmHeliMcHist,(*it), 1. ); - plotCostGam( _costGamCmMcHist,(*it), 1. ); - plotCostPhi_PhiPhiHeli(_costPhi_KpKmMcHist, _phiPhi_KpKmMcHist, (*it)->FourVecsDec[enumJpsiGamX4V::V4_KpKm_HeliPipPimPi0KpKm], 1.); - plotChi(_chiMcHist, (*it), 1. ); - - // double evtWeight= _theJpsiGamPipPimPi0KKLh->calcEvtIntensity((*it), _fitParam); - double evtWeight= theLh->calcEvtIntensity( (*it), theFitParms ); - plotDalitz(_dalitzFittedHist, (*it),evtWeight ); - plotPhiPhi(_PhiPhiMassFittedHist, (*it), evtWeight ); - plotPipPimPi0( _PipPimPi0MassFittedHist, (*it), evtWeight ); - plotKpKm( _KpKmMassFittedHist, (*it), evtWeight ); - plotCostPhiPip( _costPip_PipPimPi0HeliFittedHist, _phiPip_PipPimPi0HeliFittedHist,(*it), evtWeight ); - plotCostPhiKp( _costKp_KpKmHeliFittedHist, _phiKp_KpKmHeliFittedHist,(*it), evtWeight ); - plotCostGam( _costGamCmFittedHist,(*it), evtWeight ); - plotCostPhi_PhiPhiHeli(_costPhi_KpKmFittedHist, _phiPhi_KpKmFittedHist, (*it)->FourVecsDec[enumJpsiGamX4V::V4_KpKm_HeliPipPimPi0KpKm], evtWeight); - plotChi(_chiFittedHist, (*it), evtWeight ); - - fillTuple(_mcTuple, (*it), evtWeight); - ++it; - } - - double integralDataWoWeight=(double) theEvtList->getDataVecs().size(); - Info <<"No of data events without weight " << integralDataWoWeight ; // << endmsg; - - double integralDataWWeight=(double) theEvtList->NoOfWeightedDataEvts(); - Info <<"No of data events with weight " << integralDataWWeight ; // << endmsg; - - - double integralMC=(double) theEvtList->NoOfWeightedMcEvts(); - Info <<"No of MC events " << integralMC ; // << endmsg; - - Info <<"scaling factor " << integralDataWWeight/integralMC ; // << endmsg; - - double scaleFactor = integralDataWWeight/integralMC; - - _dalitzFittedHist->Scale(scaleFactor); - _PhiPhiMassFittedHist->Scale(scaleFactor); - _PipPimPi0MassFittedHist->Scale(scaleFactor); - _KpKmMassFittedHist->Scale(scaleFactor); - _costPip_PipPimPi0HeliFittedHist->Scale(scaleFactor); - _phiPip_PipPimPi0HeliFittedHist->Scale(scaleFactor); - _costKp_KpKmHeliFittedHist->Scale(scaleFactor); - _phiKp_KpKmHeliFittedHist->Scale(scaleFactor); - _costGamCmFittedHist->Scale(scaleFactor); - _costPhi_KpKmFittedHist->Scale(scaleFactor); - _phiPhi_KpKmFittedHist->Scale(scaleFactor); - _chiFittedHist->Scale(scaleFactor); - - double integralFitted=(double) _costGamCmFittedHist->Integral(); - Info <<"No of fit events " << integralFitted ; // << endmsg; -} - - -// JpsiToOmegaPhiGamHist::JpsiToOmegaPhiGamHist(JpsiGamPipPimPi0KKProdLh* theJpsiGamPipPimPi0KKLh, fitParams& fitParam, FitParamErrorMatrix* theErrorMatrix) : -// _theTFile(0), -// _dalitzDataHist(0), -// _dalitzMcHist(0), -// _dalitzFittedHist(0), -// _PhiPhiMassDataHist(0), -// _PhiPhiMassMcHist(0), -// _PhiPhiMassFittedHist(0), -// _KpKmMassDataHist(0), -// _KpKmMassMcHist(0), -// _KpKmMassFittedHist(0), -// _PipPimPi0MassDataHist(0), -// _PipPimPi0MassMcHist(0), -// _PipPimPi0MassFittedHist(0), -// _costPhi_KpKmDataHist(0), -// _costPhi_KpKmMcHist(0), -// _costPhi_KpKmFittedHist(0), -// _phiPhi_KpKmDataHist(0), -// _phiPhi_KpKmMcHist(0), -// _phiPhi_KpKmFittedHist(0), -// _chiDataHist(0), -// _chiMcHist(0), -// _chiFittedHist(0), -// _dataTuple(0), -// _mcTuple(0), -// _massIndepTuple(0), -// _massRange(make_pair(0.,0.) ) -// { -// if(0==theJpsiGamPipPimPi0KKLh){ -// Alert <<"JpsiGamPipPimPi0KKLh* theJpsiGamPipPimPi0KKLh is a 0 pointer !!!!" ; // << endmsg; -// exit(1); -// } - -// initRootStuff(); -// _theJpsiGamPipPimPi0KKLh = theJpsiGamPipPimPi0KKLh; -// _fitParam = fitParam; -// std::vector<double> data; -// _errMatrix = theErrorMatrix; - -// } - - -// void JpsiToOmegaPhiGamHist::fill(){ - -// boost::shared_ptr<const EvtDataBaseList> theEvtList=_theJpsiGamPipPimPi0KKLh->getEventList(); -// const std::vector<EvtData*> dataList=theEvtList->getDataVecs(); - -// std::vector<EvtDataNew*>::const_iterator it=dataList.begin(); -// while(it!=dataList.end()) -// { -// plotDalitz(_dalitzDataHist, (*it), 1.); -// plotPhiPhi(_PhiPhiMassDataHist, (*it), 1. ); -// plotPipPimPi0( _PipPimPi0MassDataHist, (*it), 1. ); -// plotKpKm( _KpKmMassDataHist, (*it), 1. ); -// plotCostPhiPip( _costPip_PipPimPi0HeliDataHist, _phiPip_PipPimPi0HeliDataHist, (*it), 1. ); -// plotCostPhiKp( _costKp_KpKmHeliDataHist, _phiKp_KpKmHeliDataHist, (*it), 1. ); -// plotCostGam( _costGamCmDataHist, (*it), 1. ); -// plotCostPhi_PhiPhiHeli(_costPhi_KpKmDataHist, _phiPhi_KpKmDataHist, (*it)->FourVecsDec[enumJpsiGamX4V::V4_KpKm_HeliPipPimPi0KpKm], 1.); -// plotChi(_chiDataHist, (*it), 1. ); -// fillTuple(_dataTuple, (*it), 1.); - -// ++it; -// } - -// const std::vector<EvtDataNew*> mcList=theEvtList->getMcVecs(); -// it=mcList.begin(); -// while(it!=mcList.end()) -// { -// plotDalitz(_dalitzMcHist, (*it), 1.); -// plotPhiPhi(_PhiPhiMassMcHist, (*it), 1. ); -// plotPipPimPi0( _PipPimPi0MassMcHist, (*it), 1. ); -// plotKpKm( _KpKmMassMcHist, (*it), 1. ); -// plotCostPhiPip( _costPip_PipPimPi0HeliMcHist, _phiPip_PipPimPi0HeliMcHist, (*it), 1. ); -// plotCostPhiKp( _costKp_KpKmHeliMcHist, _phiKp_KpKmHeliMcHist,(*it), 1. ); -// plotCostGam( _costGamCmMcHist,(*it), 1. ); -// plotCostPhi_PhiPhiHeli(_costPhi_KpKmMcHist, _phiPhi_KpKmMcHist, (*it)->FourVecsDec[enumJpsiGamX4V::V4_KpKm_HeliPipPimPi0KpKm], 1.); -// plotChi(_chiMcHist, (*it), 1. ); - -// double evtWeight= _theJpsiGamPipPimPi0KKLh->calcEvtIntensity((*it), _fitParam); -// plotDalitz(_dalitzFittedHist, (*it),evtWeight ); -// plotPhiPhi(_PhiPhiMassFittedHist, (*it), evtWeight ); -// plotPipPimPi0( _PipPimPi0MassFittedHist, (*it), evtWeight ); -// plotKpKm( _KpKmMassFittedHist, (*it), evtWeight ); -// plotCostPhiPip( _costPip_PipPimPi0HeliFittedHist, _phiPip_PipPimPi0HeliFittedHist,(*it), evtWeight ); -// plotCostPhiKp( _costKp_KpKmHeliFittedHist, _phiKp_KpKmHeliFittedHist,(*it), evtWeight ); -// plotCostGam( _costGamCmFittedHist,(*it), evtWeight ); -// plotCostPhi_PhiPhiHeli(_costPhi_KpKmFittedHist, _phiPhi_KpKmFittedHist, (*it)->FourVecsDec[enumJpsiGamX4V::V4_KpKm_HeliPipPimPi0KpKm], evtWeight); -// plotChi(_chiFittedHist, (*it), evtWeight ); - -// fillTuple(_mcTuple, (*it), evtWeight); -// ++it; -// } - - -// double integralData=(double) theEvtList->getDataVecs().size(); -// Info <<"No of fit data events " << integralData ; // << endmsg; - -// double integralFitted=(double) theEvtList->getMcVecs().size(); -// Info <<"No of fit events " << integralFitted ; // << endmsg; - -// Info <<"scaling factor " << integralData/integralFitted ; // << endmsg; - -// double scaleFactor = integralData/integralFitted; - -// _dalitzFittedHist->Scale(scaleFactor); -// _PhiPhiMassFittedHist->Scale(scaleFactor); -// _PipPimPi0MassFittedHist->Scale(scaleFactor); -// _KpKmMassFittedHist->Scale(scaleFactor); -// _costPip_PipPimPi0HeliFittedHist->Scale(scaleFactor); -// _phiPip_PipPimPi0HeliFittedHist->Scale(scaleFactor); -// _costKp_KpKmHeliFittedHist->Scale(scaleFactor); -// _phiKp_KpKmHeliFittedHist->Scale(scaleFactor); -// _costGamCmFittedHist->Scale(scaleFactor); -// _costPhi_KpKmFittedHist->Scale(scaleFactor); -// _phiPhi_KpKmFittedHist->Scale(scaleFactor); -// _chiFittedHist->Scale(scaleFactor); - - -// double iEta(0.), iEtaErr(0.), iF0(0.), iF0Err(0.), iEta2(0.), iEta2Err(0.), iF1(0.), iF1Err(0.), iF2(0.), iF2Err(0.); -// double etaReal(0.), etaImg(0.); - -// it=mcList.begin(); -// while(it!=mcList.end()){ - -// std::pair<double, double> intensityEvent = make_pair(0.,0.); -// _theJpsiGamPipPimPi0KKLh->calcComponentIntensity((*it), _fitParam, *_errMatrix, "etacHyp", intensityEvent); -// iEta+= intensityEvent.first*scaleFactor; -// iEtaErr+= intensityEvent.second*scaleFactor; - -// _theJpsiGamPipPimPi0KKLh->calcComponentIntensity((*it), _fitParam, *_errMatrix, "f02020Hyp",intensityEvent); -// iF0 += intensityEvent.first*scaleFactor; -// iF0Err += intensityEvent.second*scaleFactor; - -// _theJpsiGamPipPimPi0KKLh->calcComponentIntensity((*it), _fitParam, *_errMatrix, "f1Hyp", intensityEvent); -// iF1 += intensityEvent.first*scaleFactor; -// iF1Err += intensityEvent.second*scaleFactor; - -// _theJpsiGamPipPimPi0KKLh->calcComponentIntensity((*it), _fitParam, *_errMatrix, "f22300Hyp",intensityEvent); -// iF2 += intensityEvent.first*scaleFactor; -// iF2Err += intensityEvent.second*scaleFactor; - -// _theJpsiGamPipPimPi0KKLh->calcComponentIntensity((*it), _fitParam, *_errMatrix, "eta21870Hyp",intensityEvent); -// iEta2+= intensityEvent.first*scaleFactor; -// iEta2Err += intensityEvent.second*scaleFactor; - - - - -// it++; -// } -// double meanMassRange = _massRange.first + 0.5*(_massRange.second-_massRange.first); - - -// Info << "Events for component eta : " << iEta << " +/- " << iEtaErr ; -// Info << "Events for component f0: " << iF0 << " +/- " << iF0Err ; -// Info << "Events for component f1: " << iF1 << " +/- " << iF1Err ; -// Info << "Events for component f2: " << iF2 << " +/- " << iF2Err ; -// Info << "Events for component eta2: " << iEta2 << " +/- " << iEta2Err ; - -// std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > PsiToEtacGamPhi=_fitParam.Phis[paramEnumJpsiGamPipPimPi0KK::PsiToEtacGamma]; -// std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > PsiToEtacGamMag=_fitParam.Mags[paramEnumJpsiGamPipPimPi0KK::PsiToEtacGamma]; -// std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >::iterator phiIter = PsiToEtacGamPhi.begin(); -// for(; phiIter!=PsiToEtacGamPhi.end(); phiIter++){ -// double thePhase = phiIter->second; -// double theMag = PsiToEtacGamMag[phiIter->first]; - -// etaImg = theMag*cos(thePhase) ; -// etaReal = theMag*sin(thePhase); -// } - -// _massIndepTuple->Fill(meanMassRange, iEta, iEtaErr, iF0, iF0Err, iF1, iF1Err, iF2, iF2Err, iEta2, iEta2Err, etaImg, etaReal ); - -// } - -JpsiToOmegaPhiGamHist::~JpsiToOmegaPhiGamHist() -{ - _theTFile->Write(); - _theTFile->Close(); -} - -void JpsiToOmegaPhiGamHist::initRootStuff() -{ - std::string rootFileName="./JpsiGamPipPimPi0KK.root"; - - _theTFile=new TFile(rootFileName.c_str(),"recreate"); - int xbins = 50; - double xmin=0.8; - double xmax =10.; - int ybins=xbins; - double ymin=xmin; - double ymax=xmax; - - _dalitzDataHist= new TH2F("_dalitzDataHist","Dpl K+K- K+#pi^{0} data",xbins, xmin, xmax, ybins, ymin, ymax ); - _dalitzMcHist= new TH2F("_dalitzMcHist","Dpl K+K- K+#pi^{0} MC",xbins, xmin, xmax, ybins, ymin, ymax); - _dalitzFittedHist= new TH2F("_dalitzFittedHist","Dpl K+K- K+#pi^{0} fit",xbins, xmin, xmax, ybins, ymin, ymax ); - - - int nbins=400; - xmin=2; - xmax=4.; - _PhiPhiMassDataHist = new TH1F("_PhiPhiMassDataHist", "_PhiPhiMassDataHist", nbins, xmin, xmax); - _PhiPhiMassMcHist = new TH1F("_PhiPhiMassMcHist", "_PhiPhiMassMcHist", nbins, xmin, xmax); - _PhiPhiMassFittedHist = new TH1F("_PhiPhiMassFittedHist", "_PhiPhiMassFittedHist", nbins, xmin, xmax); - - nbins=50; - xmin=0.8; - xmax=1.2; - _PipPimPi0MassDataHist = new TH1F("_PipPimPi0MassDataHist", "_PipPimPi0MassDataHist", nbins, xmin, xmax); - _PipPimPi0MassMcHist = new TH1F("_PipPimPi0MassMcHist", "_PipPimPi0MassMcHist", nbins, xmin, xmax); - _PipPimPi0MassFittedHist = new TH1F("_PipPimPi0MassFittedHist", "_PipPimPi0MassFittedHist", nbins, xmin, xmax); - - _KpKmMassDataHist = new TH1F("_KpKmMassDataHist", "_KpKmMassDataHist", nbins, xmin, xmax); - _KpKmMassMcHist = new TH1F("_KpKmMassMcHist", "_KpKmMassMcHist", nbins, xmin, xmax); - _KpKmMassFittedHist = new TH1F("_KpKmMassFittedHist", "_KpKmMassFittedHist", nbins, xmin, xmax); - - _costPip_PipPimPi0HeliDataHist= new TH1F("_costPip_PipPimPi0HeliDataHist", "cos(#Theta_{Pip}) PipPimPi0Heli data", 100, -1., 1.); - _costPip_PipPimPi0HeliMcHist= new TH1F("_costPip_PipPimPi0HeliMcHist", "cos(#Theta_{Pip}) PipPimPi0Heli Mc", 100, -1., 1.); - _costPip_PipPimPi0HeliFittedHist= new TH1F("_costPip_PipPimPi0HeliFittedHist", "cos(#Theta_{Pip}) PipPimPi0Heli Fit", 100, -1, 1); - _phiPip_PipPimPi0HeliDataHist= new TH1F("_phiPip_PipPimPi0HeliDataHist", "#Phi_{Pip} PipPimPi0Heli data", 100, -TMath::Pi(), TMath::Pi()); - _phiPip_PipPimPi0HeliMcHist= new TH1F("_phiPip_PipPimPi0HeliMcHist", "#Phi_{Pip} PipPimPi0Heli Mc", 100, -TMath::Pi(), TMath::Pi()); - _phiPip_PipPimPi0HeliFittedHist= new TH1F("_phiPip_PipPimPi0HeliFittedHist", "#Phi_{Pip} PipPimPi0Heli Fit", 100, -TMath::Pi(), TMath::Pi()); - - _costKp_KpKmHeliDataHist= new TH1F("_costKp_KpKmHeliDataHist", "cos(#Theta_{K+}) PipPimPi0Heli data", 100, -1., 1.); - _costKp_KpKmHeliMcHist= new TH1F("_costKp_KpKmHeliMcHist", "cos(#Theta_{K+}) PipPimPi0Heli Mc", 100, -1., 1.); - _costKp_KpKmHeliFittedHist= new TH1F("_costKp_KpKmHeliFittedHist", "cos(#Theta_{K+}) PipPimPi0Heli Fit", 100, -1, 1); - _phiKp_KpKmHeliDataHist= new TH1F("_phiKp_KpKmHeliDataHist", "#Phi_{K+} PipPimPi0Heli data", 100, -TMath::Pi(), TMath::Pi()); - _phiKp_KpKmHeliMcHist= new TH1F("_phiKp_KpKmHeliMcHist", "#Phi_{K+} PipPimPi0Heli Mc", 100, -TMath::Pi(), TMath::Pi()); - _phiKp_KpKmHeliFittedHist= new TH1F("_phiKp_KpKmHeliFittedHist", "#Phi_{K+} PipPimPi0Heli Fit", 100, -TMath::Pi(), TMath::Pi()); - - - _costGamCmDataHist= new TH1F("_costGamCmDataHist", "cos(#Theta_{#gamma}) CM data", 100, -1., 1.); - _costGamCmMcHist= new TH1F("_costGamCmMcHist", "cos(#Theta_{#gamma}) CM Mc", 100, -1., 1.); - _costGamCmFittedHist= new TH1F("_costGamCmFittedHist", "cos(#Theta_{#gamma}) CM Fit", 100, -1, 1); - - _costPhi_KpKmDataHist= new TH1F("_costPhi_KpKmDataHist", "cos(#Theta_{#phi}) K+ K- data", 100, -1., 1.); - _costPhi_KpKmMcHist= new TH1F("_costPhi_KpKmMcHist", "cos(#Theta_{#phi}) K+ K- Mc", 100, -1., 1.); - _costPhi_KpKmFittedHist= new TH1F("_costPhi_KpKmFittedHist", "cos(#Theta_{#phi}) K+ K- Fit", 100, -1., 1.); - - _phiPhi_KpKmDataHist= new TH1F("_phiPhi_KpKmDataHist", "cos(#Phi_{#phi}) K+ K- data", 100, -TMath::Pi(), TMath::Pi()); - _phiPhi_KpKmMcHist= new TH1F("_phiPhi_KpKmMcHist", "cos(#Phi_{#phi}) K+ K- Mc", 100, -TMath::Pi(), TMath::Pi()); - _phiPhi_KpKmFittedHist= new TH1F("_phiPhi_KpKmFittedHist", "cos(#Phi_{#phi}) K+ K- Fit", 100, -TMath::Pi(), TMath::Pi()); - - _chiDataHist= new TH1F("_chiDataHist", "#chi data", 90, 0., 90.); - _chiMcHist= new TH1F("_chiMcHist", "#chi Mc", 90, 0., 90.); - _chiFittedHist= new TH1F("_chiFittedHist", "#chi Fit", 90, 0., 90.); - - std::string tupleVariables = "mPipPimPi0KpKm:mPipPimPi0:mKpKm:PipPimPi0KpKmCostTheta:gamCosTheta:PipPimPi0CosTheta:KpKmCosTheta:PipCosTheta:KpCosTheta:decPlaneChi:testHeli:weight"; - - - _dataTuple=new TNtuple("_dataTuple", "data ntuple", tupleVariables.data()); - _mcTuple=new TNtuple("_mcTuple", "mc ntuple", tupleVariables.data()); - - _massIndepTuple = new TNtuple("_massIndepTuple","results from mass indep. fits", ("mass:eta:etaErr:f0:f0Err:f1:f1Err:f2:f2Err:eta2:eta2Err:etaReal:etaImg") ); -} - -void JpsiToOmegaPhiGamHist::plotDalitz(TH2F* theHisto, EvtDataNew* theData, double weight) -{ - Vector4<double>& V4_PipPimPi0_HeliPsi = theData->FourVecsDec[enumJpsiGamX4V::V4_PipPimPi0_HeliPsi] ; - Vector4<double>& V4_KpKm_HeliPsi = theData->FourVecsDec[enumJpsiGamX4V::V4_KpKm_HeliPsi] ; - Vector4<double>& V4_gamma_HeliPsi = theData->FourVecsDec[enumJpsiGamX4V::V4_gamma_HeliPsi] ; - - double gphi1 = (V4_gamma_HeliPsi + V4_PipPimPi0_HeliPsi ).M(); - double gphi2 = (V4_gamma_HeliPsi + V4_KpKm_HeliPsi ).M(); - theHisto->Fill( gphi1*gphi1, gphi2*gphi2 ,weight); -} - -void JpsiToOmegaPhiGamHist::plotPhiPhi(TH1F* theHisto, EvtDataNew* theData, double weight){ - Vector4<double>& v4 = theData->FourVecsDec[enumJpsiGamX4V::V4_PipPimPi0KpKm_HeliPsi]; - theHisto->Fill( v4.M(), weight ); -} - -void JpsiToOmegaPhiGamHist::plotPipPimPi0(TH1F* theHisto, EvtDataNew* theData, double weight){ - Vector4<double>& v4 = theData->FourVecsDec[enumJpsiGamX4V::V4_PipPimPi0_HeliPsi]; - theHisto->Fill( v4.M(), weight ); -} -void JpsiToOmegaPhiGamHist::plotKpKm(TH1F* theHisto, EvtDataNew* theData, double weight){ - Vector4<double>& v4 = theData->FourVecsDec[enumJpsiGamX4V::V4_KpKm_HeliPipPimPi0KpKm]; - theHisto->Fill( v4.M(), weight ); -} - -void JpsiToOmegaPhiGamHist::plotCostPhiPip(TH1F* theCostHisto, TH1F* thePhiHisto, EvtDataNew* theData, double weight){ - Vector4<double>& v4 = theData->FourVecsDec[enumJpsiGamX4V::V4_Pip_HeliPipPimPi0]; - theCostHisto->Fill( v4.CosTheta(), weight ); - thePhiHisto->Fill( v4.Phi(), weight ); -} - -void JpsiToOmegaPhiGamHist::plotCostPhiKp(TH1F* theCostHisto, TH1F* thePhiHisto, EvtDataNew* theData, double weight){ - Vector4<double>& v4 = theData->FourVecsDec[enumJpsiGamX4V::V4_Kp_HeliKpKm]; - theCostHisto->Fill( v4.CosTheta(), weight ); - thePhiHisto->Fill( v4.Phi(), weight ); -} - -void JpsiToOmegaPhiGamHist::plotCostGam(TH1F* theCostHisto, EvtDataNew* theData, double weight){ - Vector4<double>& v4 = theData->FourVecsDec[enumJpsiGamX4V::V4_gamma_HeliPsi]; - theCostHisto->Fill( v4.CosTheta(), weight ); -} - -void JpsiToOmegaPhiGamHist::plotCostPhi_PhiPhiHeli(TH1F* theCostHisto, TH1F* thePhiHisto, const Vector4<double>& the4Vec, double weight){ - theCostHisto->Fill( the4Vec.CosTheta(), weight); - thePhiHisto->Fill( the4Vec.Phi(), weight); -} - -void JpsiToOmegaPhiGamHist::plotChi(TH1F* theChiHisto, EvtDataNew* theData, double weight){ -// Vector4<double>& V4_PipPimPi0KpKm_HeliPsi = theData->FourVecsDec[enumJpsiGamX4V::V4_PipPimPi0KpKm_HeliPsi] ; -// Vector4<double>& V4_Pip_HeliPsi= theData->FourVecsDec[enumJpsiGamX4V::V4_Pip_HeliPsi] ; -// Vector4<double>& V4_Kl_HeliPsi= theData->FourVecsDec[enumJpsiGamX4V::V4_Kl_HeliPsi] ; -// Vector4<double>& V4_Kp_HeliPsi= theData->FourVecsDec[enumJpsiGamX4V::V4_Kp_HeliPsi] ; -// Vector4<double>& V4_Km_HeliPsi= theData->FourVecsDec[enumJpsiGamX4V::V4_Km_HeliPsi] ; - -// double thePhiPhiDecayPlaneAngle = decayAngleChi( V4_PipPimPi0KpKm_HeliPsi, V4_Kp_HeliPsi, V4_Km_HeliPsi, V4_Pip_HeliPsi, V4_Kl_HeliPsi ); - - - Vector4<double>& V4_normKpKmDecHeliPipPimPi0KpKm = theData->FourVecsDec[enumJpsiGamX4V::V4_normKpKmDecHeliPipPimPi0KpKm]; - Vector4<double>& V4_normPipPimPi0DecHeliPipPimPi0KpKm = theData->FourVecsDec[enumJpsiGamX4V::V4_normPipPimPi0DecHeliPipPimPi0KpKm]; - - double cosChi=(V4_normKpKmDecHeliPipPimPi0KpKm.Px()*V4_normPipPimPi0DecHeliPipPimPi0KpKm.Px() - +V4_normKpKmDecHeliPipPimPi0KpKm.Py()*V4_normPipPimPi0DecHeliPipPimPi0KpKm.Py() - +V4_normKpKmDecHeliPipPimPi0KpKm.Pz()*V4_normPipPimPi0DecHeliPipPimPi0KpKm.Pz()) - / (V4_normKpKmDecHeliPipPimPi0KpKm.P()*V4_normPipPimPi0DecHeliPipPimPi0KpKm.P()); - - double chi=acos(fabs(cosChi)); - theChiHisto->Fill(chi*180./TMath::Pi(),weight); -} - -void JpsiToOmegaPhiGamHist::fillTuple( TNtuple* theTuple, EvtDataNew* theData, double weight) -{ - - Vector4<double>& V4_PipPimPi0KpKm_HeliPsi = theData->FourVecsDec[enumJpsiGamX4V::V4_PipPimPi0KpKm_HeliPsi] ; - Vector4<double>& V4_PipPimPi0_HeliPsi= theData->FourVecsDec[enumJpsiGamX4V::V4_PipPimPi0_HeliPsi] ; - Vector4<double>& V4_KpKm_HeliPsi= theData->FourVecsDec[enumJpsiGamX4V::V4_KpKm_HeliPsi] ; - Vector4<double>& V4_gamma_HeliPsi= theData->FourVecsDec[enumJpsiGamX4V::V4_gamma_HeliPsi] ; - - Vector4<double>& V4_PipPimPi0_HeliPipPimPi0KpKm= theData->FourVecsDec[enumJpsiGamX4V::V4_PipPimPi0_HeliPipPimPi0KpKm] ; - Vector4<double>& V4_KpKm_HeliPipPimPi0KpKm= theData->FourVecsDec[enumJpsiGamX4V::V4_KpKm_HeliPipPimPi0KpKm] ; - Vector4<double>& V4_Pip_HeliPipPimPi0= theData->FourVecsDec[enumJpsiGamX4V::V4_Pip_HeliPipPimPi0] ; - Vector4<double>& V4_Kp_HeliKpKm= theData->FourVecsDec[enumJpsiGamX4V::V4_Kp_HeliKpKm] ; - - Vector4<double>& V4_Pip_HeliPsi= theData->FourVecsDec[enumJpsiGamX4V::V4_Pip_HeliPsi] ; - Vector4<double>& V4_Kl_HeliPsi= theData->FourVecsDec[enumJpsiGamX4V::V4_Kl_HeliPsi] ; - Vector4<double>& V4_Kp_HeliPsi= theData->FourVecsDec[enumJpsiGamX4V::V4_Kp_HeliPsi] ; - Vector4<double>& V4_Km_HeliPsi= theData->FourVecsDec[enumJpsiGamX4V::V4_Km_HeliPsi] ; - - - Vector4<double>& V4_normKpKmDecHeliPipPimPi0KpKm = theData->FourVecsDec[enumJpsiGamX4V::V4_normKpKmDecHeliPipPimPi0KpKm]; - Vector4<double>& V4_normPipPimPi0DecHeliPipPimPi0KpKm = theData->FourVecsDec[enumJpsiGamX4V::V4_normPipPimPi0DecHeliPipPimPi0KpKm]; - double cosChi=(V4_normKpKmDecHeliPipPimPi0KpKm.Px()*V4_normPipPimPi0DecHeliPipPimPi0KpKm.Px() - +V4_normKpKmDecHeliPipPimPi0KpKm.Py()*V4_normPipPimPi0DecHeliPipPimPi0KpKm.Py() - +V4_normKpKmDecHeliPipPimPi0KpKm.Pz()*V4_normPipPimPi0DecHeliPipPimPi0KpKm.Pz()) - / (V4_normKpKmDecHeliPipPimPi0KpKm.P()*V4_normPipPimPi0DecHeliPipPimPi0KpKm.P()); - - double chi=acos(fabs(cosChi)); - double thePhiPhiDecayPlaneAngle = chi/TMath::Pi()*180.; - - //double thePhiPhiDecayPlaneAngle = decayAngleChi( V4_PipPimPi0KpKm_HeliPsi, V4_Kp_HeliPsi, V4_Km_HeliPsi, V4_Pip_HeliPsi, V4_Kl_HeliPsi ); - double testHeli = costDecHeli( V4_PipPimPi0KpKm_HeliPsi+V4_gamma_HeliPsi, V4_Pip_HeliPsi+V4_Kl_HeliPsi+V4_Km_HeliPsi+V4_Kp_HeliPsi, V4_Pip_HeliPsi+V4_Kl_HeliPsi ); - - theTuple->Fill( V4_PipPimPi0KpKm_HeliPsi.M(), - V4_PipPimPi0_HeliPsi.M(), - V4_KpKm_HeliPsi.M(), - V4_PipPimPi0KpKm_HeliPsi.CosTheta(), - V4_gamma_HeliPsi.CosTheta(), - V4_PipPimPi0_HeliPipPimPi0KpKm.CosTheta(), - V4_KpKm_HeliPipPimPi0KpKm.CosTheta(), - V4_Pip_HeliPipPimPi0.CosTheta(), - V4_Kp_HeliKpKm.CosTheta(), - thePhiPhiDecayPlaneAngle, - testHeli, - weight); -} - - -double JpsiToOmegaPhiGamHist::decayAngleChi(const Vector4<double>& v4_p,const Vector4<double>& v4_d1, - const Vector4<double>& v4_d2,const Vector4<double>& v4_h1, - const Vector4<double>& v4_h2 ) { - - TLorentzVector p4_p( v4_p.Px(), v4_p.Py(), v4_p.Pz(), v4_p.E() ); - TLorentzVector p4_d1p( v4_d1.Px(), v4_d1.Py(), v4_d1.Pz(), v4_d1.E() ); - TLorentzVector p4_d2p( v4_d2.Px(), v4_d2.Py(), v4_d2.Pz(), v4_d2.E() ); - TLorentzVector p4_h1p( v4_h1.Px(), v4_h1.Py(), v4_h1.Pz(), v4_h1.E() ); - TLorentzVector p4_h2p( v4_h2.Px(), v4_h2.Py(), v4_h2.Pz(), v4_h2.E() ); - - - // boost all vectors parent restframe - - p4_d1p.Boost( -p4_p.BoostVector() ); - p4_d2p.Boost( -p4_p.BoostVector() ); - p4_h1p.Boost( -p4_p.BoostVector() ); - p4_h2p.Boost( -p4_p.BoostVector() ); - - - TVector3 d1_perp,d1_prime,h1_perp; - TVector3 D; - - D=(p4_d1p+p4_d2p).Vect(); - - d1_perp=p4_d1p.Vect()-(D.Dot(p4_d1p.Vect())/D.Dot(D))*D; - h1_perp=p4_h1p.Vect()-(D.Dot(p4_h1p.Vect())/D.Dot(D))*D; - - // orthogonal to both D and d1_perp - - d1_prime=D.Cross(d1_perp); - - d1_perp= d1_perp* (1./d1_perp.Mag()); - d1_prime= d1_prime * (1./d1_prime.Mag()); - - double x,y; - - x=d1_perp.Dot(h1_perp); - y=d1_prime.Dot(h1_perp); - - double chi=atan2(y,x); - - if (chi<0.0) chi+=2.*TMath::Pi(); - - return chi; - -} - - - diff --git a/Examples/JpsiToOmegaPhiGam/MJpsiToOmegaPhiGamApp.cc~ b/Examples/JpsiToOmegaPhiGam/MJpsiToOmegaPhiGamApp.cc~ deleted file mode 100644 index cdbd4cf14012d55269d2c535457c6830399ae1e5..0000000000000000000000000000000000000000 --- a/Examples/JpsiToOmegaPhiGam/MJpsiToOmegaPhiGamApp.cc~ +++ /dev/null @@ -1,353 +0,0 @@ -#include <iostream> -#include <cstring> -#include <string> -#include <sstream> -#include <vector> -#include <map> -#include <iterator> - -#ifdef _OPENMP -#include <omp.h> -#endif - -#include <boost/shared_ptr.hpp> -#include "Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamEventList.hh" -#include "PwaUtils/PsiToXGamParser.hh" -#include "PwaUtils/PsiToXGamReader.hh" -#include "Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamHist.hh" -#include "Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamStates.hh" -//#include "Examples/JpsiGamEtaPiPiNew/JpsiGamEtaPiPiEventListNew.hh" -#include "Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamLh.hh" - -#include "PwaUtils/EvtDataBaseListNew.hh" -#include "PwaUtils/FitParamsBaseNew.hh" -#include "PwaUtils/StreamFitParmsBaseNew.hh" -#include "PwaUtils/PwaFcnBaseNew.hh" -#include "PwaUtils/AbsLhNew.hh" -#include "Utils/ErrLogUtils.hh" - -#include "Setup/PwaEnv.hh" -#include "Particle/ParticleTable.hh" -#include "Particle/Particle.hh" -#include "Event/EventList.hh" -#include "Event/Event.hh" -#include "Particle/PdtParser.hh" -#include "qft++/topincludes/tensor.hh" - -#include "ErrLogger/ErrLogger.hh" -#include "Minuit2/MnUserParameters.h" -#include "Minuit2/MnMigrad.h" -#include "Minuit2/FunctionMinimum.h" -#include "Minuit2/MnMinos.h" -#include "Minuit2/MnStrategy.h" -#include "Minuit2/MnPrint.h" -#include "Minuit2/MnScan.h" - -using namespace ROOT::Minuit2; - - - -int main(int __argc,char *__argv[]){ - clock_t start, end; - start= clock(); - - // Parse the command line - static PsiToXGamParser theAppParams(__argc, __argv); - - // Set the desired error logging mode - setErrLogMode(theAppParams.getErrLogMode()); - -#ifdef _OPENMP - const int noOfThreads=theAppParams.noOfThreads(); - omp_set_num_threads(noOfThreads); -#endif - - - std::string theCfgFile = theAppParams.getConfigFile(); - - std::string jobOption = theAppParams.getjobOption(); - - const std::string datFile=theAppParams.dataFile(); - const std::string mcFile=theAppParams.mcFile(); - Info << "data file: " << datFile ; // << endmsg; - Info << "mc file: " << mcFile ; // << endmsg; - - ParticleTable pTable; - PdtParser parser; - std::string theSourcePath=getenv("CMAKE_SOURCE_DIR"); - std::string pdtFile(theSourcePath+"/Particle/pdt.table"); - if (!parser.parse(pdtFile, pTable)) { - Alert << "Error: could not parse " << pdtFile ; // << endmsg; - exit(1); - } - - std::pair<double, double> massRange = theAppParams.massRange(); - Info << "Mass range: " << massRange.first << " " << massRange.second ; - - std::vector<std::string> fileNames; - fileNames.push_back(datFile); - - bool withEvtWeight=theAppParams.useEvtWeight(); - Info << "EvtWeight: " << withEvtWeight << endmsg; - PsiToXGamReader eventReader(fileNames, 5, 0, withEvtWeight); - EventList eventsData; - eventReader.fillMassRange(eventsData, massRange ); - - if (!eventsData.findParticleTypes(pTable)) - Warning << "could not find all particles" ; // << endmsg; - - Info << "\nFile has " << eventsData.size() << " events. Each event has " - << eventsData.nextEvent()->size() << " final state particles.\n" ; // << endmsg; - eventsData.rewind(); - - Event* anEvent; - int evtCount = 0; - while ((anEvent = eventsData.nextEvent()) != 0 && evtCount < 10) { - Info << "\n" - << *(anEvent->p4(0)) << "\tm = " << anEvent->p4(0)->Mass() << "\n" - << *(anEvent->p4(1)) << "\tm = " << anEvent->p4(1)->Mass() << "\n" - << *(anEvent->p4(2)) << "\tm = " << anEvent->p4(2)->Mass() << "\n" - << *(anEvent->p4(3)) << "\tm = " << anEvent->p4(3)->Mass() << "\n" - << *(anEvent->p4(4)) << "\tm = " << anEvent->p4(4)->Mass() << "\n" - ; // << endmsg; - ++evtCount; - } - eventsData.rewind(); - - - std::vector<std::string> fileNamesMc; - fileNamesMc.push_back(mcFile); - PsiToXGamReader eventReaderMc(fileNamesMc, 5, 0, withEvtWeight); - EventList eventsMc; - eventReaderMc.fillMassRange(eventsMc, massRange); - eventsMc.rewind(); - - // - //calculate helicity angles, fill map with D-functions - // - - boost::shared_ptr<JpsiToOmegaPhiGamEventList> theJpsiGamXEventListPtr(new JpsiToOmegaPhiGamEventList()); - theJpsiGamXEventListPtr->ratioMcToData(theAppParams.ratioMcToData()); - theJpsiGamXEventListPtr->read(eventsData, eventsMc); - - std::string mode=theAppParams.mode(); - std::cout << "Mode: " << mode << std::endl; - if (mode=="plotmode"){ - // JpsiToOmegaPhiGamHist theHist(theJpsiGamXEventListPtr,theAppParams.massRange()); - JpsiToOmegaPhiGamHist theHist(theJpsiGamXEventListPtr); - // theHist.setMassRange(theAppParams.massRange() ); - return 0; - } - - // - //retrieve hypotheses - // - - boost::shared_ptr<JpsiToOmegaPhiGamStates> jpsiToOmegaPhiGamStatesPtr(new JpsiToOmegaPhiGamStates()); - jpsiToOmegaPhiGamStatesPtr->print(std::cout); - - const std::vector<std::string> hypVec=theAppParams.enabledHyps(); - boost::shared_ptr<AbsLhNew> theLhPtr; - - std::string startWithHyp=theAppParams.startHypo(); - - if (startWithHyp=="production"){ - theLhPtr = boost::shared_ptr<AbsLhNew> (new JpsiToOmegaPhiGamLh(theJpsiGamXEventListPtr, hypVec, jpsiToOmegaPhiGamStatesPtr)); - } - else { - Alert << "start with hypothesis " << startWithHyp << " not supported!!!!" ; // << endmsg; - exit(1); - } - - boost::shared_ptr<FitParamsBaseNew> theFitParamBase=boost::shared_ptr<FitParamsBaseNew>(new FitParamsBaseNew()); - - if (mode=="dumpDefaultParams"){ - fitParamsNew defaultVal; - fitParamsNew defaultErr; - theLhPtr->getDefaultParams(defaultVal, defaultErr); - std::string defaultparamsname = "defaultparams" + jobOption + ".dat"; - std::ofstream theStreamDefault ( defaultparamsname.c_str() ); - - theFitParamBase->dumpParams(theStreamDefault, defaultVal, defaultErr); - return 0; - } - - std::string paramStreamerPath=theAppParams.fitParamFile(); - StreamFitParmsBaseNew theParamStreamer(paramStreamerPath, theLhPtr); - fitParamsNew theStartparams=theParamStreamer.getFitParamVal(); - fitParamsNew theErrorparams=theParamStreamer.getFitParamErr(); - - PwaFcnBaseNew theFcn(theLhPtr, theFitParamBase); - MnUserParameters upar; - theFitParamBase->setMnUsrParams(upar, theStartparams, theErrorparams); - - std::cout << "\n\n**************** Minuit Fit parameter **************************" << std::endl; - for (int i=0; i<int(upar.Params().size()); ++i){ - std::cout << upar.Name(i) << "\t" << upar.Value(i) << "\t" << upar.Error(i) << std::endl; - } - - const std::vector<std::string> fixedParams=theAppParams.fixedParams(); - - const unsigned int noOfFreeFitParams = upar.Params().size()-fixedParams.size(); - if (mode=="qaMode"){ - - Info << "\nThe parameter values are: " << "\n" << endmsg; - theFitParamBase->printParams(theStartparams); - - Info << "\nThe parameter errors are: " << "\n" << endmsg; - theFitParamBase->printParams(theErrorparams); - - double theLh=theLhPtr->calcLogLh(theStartparams); - Info <<"theLh = "<< theLh << endmsg; - - - JpsiToOmegaPhiGamHist theHist(theLhPtr, theStartparams); - theHist.setMassRange(theAppParams.massRange() ); - - double evtWeightSumData = theJpsiGamXEventListPtr->NoOfWeightedDataEvts(); - double BICcriterion=2.*theLh+noOfFreeFitParams*log(evtWeightSumData); - double AICcriterion=2.*theLh+2.*noOfFreeFitParams; - double AICccriterion=AICcriterion+2.*noOfFreeFitParams*(noOfFreeFitParams+1)/(evtWeightSumData-noOfFreeFitParams-1); - - Info << "noOfFreeFitParams:\t" <<noOfFreeFitParams; - Info << "evtWeightSumData:\t" <<evtWeightSumData; - Info << "BIC:\t" << BICcriterion << endmsg; - Info << "AIC:\t" << AICcriterion << endmsg; - Info << "AICc:\t" << AICccriterion << endmsg; - - std::string qaSummaryFileName = "qaSummary" + jobOption + ".dat"; - std::ofstream theQaStream ( qaSummaryFileName.c_str() ); - theQaStream << "BIC\t" << BICcriterion << "\n"; - theQaStream << "AICa\t" << AICcriterion << "\n"; - theQaStream << "AICc\t" << AICccriterion << "\n"; - theQaStream << "logLh\t" << theLh << "\n"; - theQaStream << "free parameter\t" << noOfFreeFitParams << "\n"; - theQaStream.close(); - - end= clock(); - double cpuTime= (end-start)/ (CLOCKS_PER_SEC); - Info << "cpuTime:\t" << cpuTime << "\tsec" << endmsg; - return 0; - } - - if (mode=="pwa"){ - bool cacheAmps = theAppParams.cacheAmps(); - Info << "caching amplitudes enabled / disabled:\t" << cacheAmps << endmsg; - if (cacheAmps) theLhPtr->cacheAmplitudes(); - std::vector<std::string>::const_iterator itFix; - for (itFix=fixedParams.begin(); itFix!=fixedParams.end(); ++itFix){ - upar.Fix( (*itFix) ); - } - - // // bool prescan=false; - // // if(prescan){ - // // upar.Fix(0); - // // MnScan theScan(theFcn, upar); - // // FunctionMinimum smin = theScan(); - // // MnUserParameterState sState = smin.UserState(); - // // cout << "After scan" << endl; - // // cout << sState << endl; - - // // upar = smin.UserParameters(); - // // upar.Release(0); - // // } - - MnMigrad migrad(theFcn, upar); - Info <<"start migrad "<< endmsg; - FunctionMinimum min = migrad(); - - if(!min.IsValid()) { - //try with higher strategy - Info <<"FM is invalid, try with strategy = 2."<< endmsg; - MnMigrad migrad2(theFcn, min.UserState(), MnStrategy(2)); - min = migrad2(); - } - - MnUserParameters finalUsrParameters=min.UserParameters(); - const std::vector<double> finalParamVec=finalUsrParameters.Params(); - fitParamsNew finalFitParams=theStartparams; - theFitParamBase->getFitParamVal(finalParamVec, finalFitParams); - - // //MnUserCovariance theCov = min.UserCovariance() ; - // //cout << "User vov : "<< endl; - // //cout << theCov << endl; - - theFitParamBase->printParams(finalFitParams); - double theLh=theLhPtr->calcLogLh(finalFitParams); - Info <<"theLh = "<< theLh << endmsg; - - - const std::vector<double> finalParamErrorVec=finalUsrParameters.Errors(); - fitParamsNew finalFitErrs=theErrorparams; - theFitParamBase->getFitParamVal(finalParamErrorVec, finalFitErrs); - - std::string finalResultname = "finalResult" + jobOption + ".dat"; - std::ofstream theStream ( finalResultname.c_str() ); - //std::ofstream theStream ( "finalResult.dat"); - theFitParamBase->dumpParams(theStream, finalFitParams, finalFitErrs); - - MnUserCovariance theCovMatrix = min.UserCovariance(); - std::cout << min << std::endl; - - // // //std::ofstream theCompStream ( "componentIntensity.dat"); - // // //theProdLh->dumpComponentIntensity( theCompStream, finalFitParams, theErrMatrix ); - // JpsiGamEtaPiPiHistNew theHist(theLhPtr, finalFitParams,theAppParams.massRange()); - // //theHist.setMassRange(theAppParams.massRange() ); - // // // theHist.fill(); - // end= clock(); - // double cpuTime= (end-start)/ (CLOCKS_PER_SEC); - // Info << "cpuTime:\t" << cpuTime << "\tsec" << endmsg; - - - - - // std::cout << "Start event number calculation for each wave" << std::endl; - - // std::vector<std::string> hypVec_test=theAppParams.enabledHyps(); - // fitParamsNew finalFitParams_test=finalFitParams; - // std::vector<std::string>::iterator it; - // int hypnumber=0; - - // for (it=hypVec_test.begin(); it!=hypVec_test.end();++it){ - // //std::cout << "hypothesis\t" << (*it) << "\t enabled\n"; - // if ((*it).find("Gamma")==0) hypnumber++; - // } - // std::cout << std::endl; - // std::cout << "Number of hypothesis found: " << hypnumber << std::endl; - - // int j; - // for (int i=1;i<=hypnumber;i++){ - // j=1; - // for (it=hypVec_test.begin(); it!=hypVec_test.end();++it){ - // // Mark bad hypothesis - // if ((*it).find("Gamma")==0 && i!=j) { - // (*It).Insert(0, "#"); - // j++; - // } - // else{ if ((*it).find("Gamma")==0) j++; } - // } - // std::cout << "Start calulation with following hypothesis:" << std::endl; - // if (startWithHyp=="production"){ - // theLhPtr = boost::shared_ptr<AbsLhNew> (new JpsiGamEtaPiPiProdLhNew(theJpsiGamEtaPiPiEventListPtr, hypVec_test, jpsiGamEtaPiPiStatesPtr)); - // } - // else { - // Alert << "start with hypothesis " << startWithHyp << " not supported!!!!" ; // << endmsg; - // exit(1); - // } - // double theLh=theLhPtr->calcLogLh(finalFitParams_test); - // Info <<"theLh = "<< theLh << endmsg; - // JpsiGamEtaPiPiHistNew theHist(theLhPtr, finalFitParams_test ,theAppParams.massRange()); - // // Unmark bad hypothesis - // for (it=hypVec_test.begin(); it!=hypVec_test.end();++it){ - // if ((*it).find("#")==0) (*it).erase(0,1); - // } - // std::cout << std::endl; - // } - - return 0; - } - - - return 0; -} - diff --git a/Examples/JpsiToOmegaPhiGam/XToOmegaPhiDecAmps.cc b/Examples/JpsiToOmegaPhiGam/XToOmegaPhiDecAmps.cc index 4e27c8a004344a17922a9bf806d1adf13c6e4b50..08776146b4ce9f3c7b119320e9db4b677feaec4c 100644 --- a/Examples/JpsiToOmegaPhiGam/XToOmegaPhiDecAmps.cc +++ b/Examples/JpsiToOmegaPhiGam/XToOmegaPhiDecAmps.cc @@ -22,7 +22,7 @@ XToOmegaPhiDecAmps::XToOmegaPhiDecAmps(const std::string& name, const std::vecto ,_flatteMassFit(false) ,_phiMass( 1.019455) ,_omegaMass( 0.78265) - ,_phiPhiPair(make_pair(_phiMass, _phiMass)) + ,_phiPhiPair(make_pair(_omegaMass, _omegaMass)) ,_omegaPhiPair(make_pair(_omegaMass, _phiMass)) ,_theStatesPtr(theStates) { @@ -41,7 +41,7 @@ complex<double> XToOmegaPhiDecAmps::XdecAmp(Spin lamX, EvtDataNew* theData){ complex<double> result(0.,0.); - result+=XToPhiPhiAmp(lamX, theData); + result+=XToPhiOmegaAmp(lamX, theData); complex<double> dynModel(1.,0.); if (!_massIndependent){ @@ -70,7 +70,7 @@ complex<double> XToOmegaPhiDecAmps::XdecAmp(Spin lamX, EvtDataNew* theData){ return result; } -complex<double> XToOmegaPhiDecAmps::XToPhiPhiAmp(Spin lamX, EvtDataNew* theData){ +complex<double> XToOmegaPhiDecAmps::XToPhiOmegaAmp(Spin lamX, EvtDataNew* theData){ complex<double> result(0.,0.); std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >::iterator itXMag; @@ -82,17 +82,17 @@ complex<double> XToOmegaPhiDecAmps::XToPhiPhiAmp(Spin lamX, EvtDataNew* theData) double theXPhi=_currentParamPhis[XState]; complex<double> expiphiX(cos(theXPhi), sin(theXPhi)); - for(Spin lambdaPhi1=-1; lambdaPhi1<=1; lambdaPhi1++){ - for(Spin lambdaPhi2=-1; lambdaPhi2<=1; lambdaPhi2++){ - Spin lambda = lambdaPhi1-lambdaPhi2; + for(Spin lambdaOmega=-1; lambdaOmega<=1; lambdaOmega++){ + for(Spin lambdaPhi=-1; lambdaPhi<=1; lambdaPhi++){ + Spin lambda = lambdaOmega-lambdaPhi; if( fabs(lambda)>XState->J || fabs(lambda)>XState->S) continue; 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 ) + *Clebsch(1, lambdaOmega, 1, -lambdaPhi, XState->S, lambda ) *conj( theData->WignerDsDec[enumJpsiGamXDfunc::Df_XToOmegaPhi_KK][XState->J][lamX][lambda]); - amp = amp * phiphiTo4KAmp( theData, lambdaPhi1, lambdaPhi2 ); + amp = amp * phiOmegaTo2K3piAmp( theData, lambdaOmega, lambdaPhi ); result +=amp; } @@ -102,13 +102,13 @@ complex<double> XToOmegaPhiDecAmps::XToPhiPhiAmp(Spin lamX, EvtDataNew* theData) return result; } -complex<double> XToOmegaPhiDecAmps::phiphiTo4KAmp( EvtDataNew* theData, Spin lambdaPhi1, Spin lambdaPhi2 ){ +complex<double> XToOmegaPhiDecAmps::phiOmegaTo2K3piAmp( EvtDataNew* theData, Spin lambdaOmega, Spin lambdaPhi ){ complex<double> result(0.,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]); + result = 3. * conj(theData->WignerDsDec[enumJpsiGamXDfunc::Df_OmegaToPipPimPi0][1][lambdaOmega][0]) * sqrt(lambda) + * 3.* conj(theData->WignerDsDec[enumJpsiGamXDfunc::Df_PhiToKpKm][1][lambdaPhi][0]); return result; } diff --git a/Examples/JpsiToOmegaPhiGam/XToOmegaPhiDecAmps.cc~ b/Examples/JpsiToOmegaPhiGam/XToOmegaPhiDecAmps.cc~ deleted file mode 100644 index ba065bea5f07424e4f616f156b87f465d7e924d5..0000000000000000000000000000000000000000 --- a/Examples/JpsiToOmegaPhiGam/XToOmegaPhiDecAmps.cc~ +++ /dev/null @@ -1,265 +0,0 @@ -#include <getopt.h> -#include <fstream> -#include <string> - -#include "Examples/JpsiToOmegaPhiGam/XToOmegaPhiDecAmps.hh" -#include "qft++/relativistic-quantum-mechanics/Utils.hh" -#include "ErrLogger/ErrLogger.hh" -// #include "PwaUtils/EvtDataBaseListNew.hh" -#include "Examples/JpsiToOmegaPhiGam/JpsiToOmegaPhiGamEventList.hh" - -#ifdef _OPENMP -#include <omp.h> -#endif - -XToOmegaPhiDecAmps::XToOmegaPhiDecAmps(const std::string& name, const std::vector<std::string>& hypVec, boost::shared_ptr<JpsiToOmegaPhiGamStates> theStates, Spin spinX, int parity) : - AbsXdecAmp(name, hypVec, spinX, parity) - ,_phiPhiKey(name+"ToPhiPhi") - ,_xBWKey(name+"BreitWigner") - ,_xFlatteKey(name+"Flatte") - ,_massIndependent(true) - ,_bwMassFit(false) - ,_flatteMassFit(false) - ,_phiMass( 1.019455) - ,_omegaMass( 0.78265) - ,_phiPhiPair(make_pair(_phiMass, _phiMass)) - ,_omegaPhiPair(make_pair(_omegaMass, _phiMass)) - ,_theStatesPtr(theStates) -{ - initialize(); -} - -XToOmegaPhiDecAmps::~XToOmegaPhiDecAmps() -{ -} - -complex<double> XToOmegaPhiDecAmps::XdecAmp(Spin lamX, EvtDataNew* theData){ - int evtNo=theData->evtNo; - - if ( _cacheAmps && !_recalculate) return _cachedAmpMap[evtNo][lamX]; - - - complex<double> result(0.,0.); - - result+=XToPhiPhiAmp(lamX, theData); - - complex<double> dynModel(1.,0.); - if (!_massIndependent){ - Vector4<double> p4PhiPhi = theData->FourVecsDec[enumJpsiGamX4V::V4_KsKlKpKm_HeliPsi]; - if(_bwMassFit){ - dynModel=BreitWigner(p4PhiPhi, _currentXMass, _currentXWidth); - } - else if(_flatteMassFit){ - dynModel=Flatte( p4PhiPhi, _phiPhiPair, _omegaPhiPair, _currentXMass, _currentgFactorPhiPhi, _currentgFactorOmegaPhi ); - } - } - - result *=dynModel; - - if ( _cacheAmps){ -#ifdef _OPENMP -#pragma omp critical - { -#endif - _cachedAmpMap[evtNo][lamX]=result; -#ifdef _OPENMP - } -#endif - } - - return result; -} - -complex<double> XToOmegaPhiDecAmps::XToPhiPhiAmp(Spin lamX, EvtDataNew* theData){ - - complex<double> result(0.,0.); - std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >::iterator itXMag; - - - for ( itXMag=_currentParamMags.begin(); itXMag!=_currentParamMags.end(); ++itXMag){ - boost::shared_ptr<const JPCLS> XState=itXMag->first; - double theXMag=itXMag->second; - double theXPhi=_currentParamPhis[XState]; - complex<double> expiphiX(cos(theXPhi), sin(theXPhi)); - - for(Spin lambdaPhi1=-1; lambdaPhi1<=1; lambdaPhi1++){ - for(Spin lambdaPhi2=-1; lambdaPhi2<=1; lambdaPhi2++){ - Spin lambda = lambdaPhi1-lambdaPhi2; - if( fabs(lambda)>XState->J || fabs(lambda)>XState->S) continue; - - 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]); - - amp = amp * phiphiTo4KAmp( theData, lambdaPhi1, lambdaPhi2 ); - - result +=amp; - } - } - } - - return result; -} - -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]) - * 3.* conj(theData->WignerDsDec[enumJpsiGamXDfunc::Df_PhiToKpKm][1][lambdaPhi2][0]); - - return result; -} - - -void XToOmegaPhiDecAmps::getDefaultParams(fitParamsNew& fitVal, fitParamsNew& fitErr){ - - std::vector< boost::shared_ptr<const JPCLS> > PhiPhiStates; - if(_J_X==0 && _parity==-1) PhiPhiStates=_theStatesPtr->EtaToPhiPhiStates(); - else if(_J_X==0 && _parity==1) PhiPhiStates=_theStatesPtr->F0ToPhiPhiStates(); - else if(_J_X==1 && _parity==1) PhiPhiStates=_theStatesPtr->F1ToPhiPhiStates(); - else if(_J_X==2 && _parity==-1) PhiPhiStates=_theStatesPtr->Eta2ToPhiPhiStates(); - else if(_J_X==2 && _parity==1) PhiPhiStates=_theStatesPtr->F2ToPhiPhiStates(); - std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > currentMagValMap; - std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > currentPhiValMap; - std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > currentMagErrMap; - std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > currentPhiErrMap; - - std::vector< boost::shared_ptr<const JPCLS> >::const_iterator itLS; - for(itLS=PhiPhiStates.begin(); itLS!=PhiPhiStates.end(); ++itLS){ - currentMagValMap[*itLS]=0.2; - currentPhiValMap[*itLS]=0.; - currentMagErrMap[*itLS]=0.8; - currentPhiErrMap[*itLS]=0.3; - } - fitVal.Mags[_phiPhiKey]=currentMagValMap; - fitVal.Phis[_phiPhiKey]=currentPhiValMap; - fitErr.Mags[_phiPhiKey]=currentMagErrMap; - fitErr.Phis[_phiPhiKey]=currentPhiErrMap; - - - if (!_massIndependent){ - size_t pos=_name.find("_"); - std::string massMeVString=_name.substr(pos+1); - stringstream massMeVStrStream(massMeVString); - int MassMeV; - massMeVStrStream >> MassMeV; - double MassGeV= ( (double) MassMeV)/1000.; - - fitVal.Masses[_name]=MassGeV; - fitErr.Masses[_name]=0.01; - - if(_bwMassFit){ - fitVal.Widths[_name]=0.2; - fitErr.Widths[_name]=0.02; - } - else if( _flatteMassFit){ - std::string phiPhiGFactorKey="gFactorPhiPhi_"+_name; - std::string omegaPhiGFactorKey="gFactorOmegaPhi_"+_name; - fitVal.gFactors[phiPhiGFactorKey]=0.3; - fitVal.gFactors[omegaPhiGFactorKey]=0.3; - fitErr.gFactors[phiPhiGFactorKey]=0.2; - fitErr.gFactors[omegaPhiGFactorKey]=0.2; - } - } -} - -void XToOmegaPhiDecAmps::print(std::ostream& os) const{ - return; //dummy -} - -void XToOmegaPhiDecAmps::initialize(){ - std::vector<std::string>::const_iterator it; - - for (it=_hypVec.begin(); it!=_hypVec.end(); ++it){ - if (it->compare(0, _xBWKey.size(), _xBWKey) ==0){ - _bwMassFit=true; - _massIndependent=false; - } - else if (it->compare(0, _xFlatteKey.size(), _xFlatteKey) ==0){ - _flatteMassFit=true; - _massIndependent=false; - } - } - - -} - -bool XToOmegaPhiDecAmps::checkRecalculation(fitParamsNew& theParamVal){ - _recalculate=false; - std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > XToPhiPhiMag=theParamVal.Mags[_phiPhiKey]; - std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > XToPhiPhiPhi=theParamVal.Phis[_phiPhiKey]; - std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >::iterator itXMag; - for ( itXMag=XToPhiPhiMag.begin(); itXMag!=XToPhiPhiMag.end(); ++itXMag){ - boost::shared_ptr<const JPCLS> XState=itXMag->first; - double theXMag=itXMag->second; - double theXPhi=XToPhiPhiPhi[XState]; - if ( fabs(theXMag - _currentParamMags[XState]) > 1.e-10 ){ - _recalculate=true; - } - if ( fabs(theXPhi - _currentParamPhis[XState]) > 1.e-10 ){ - _recalculate=true; - } - } - - if (!_massIndependent){ - double xMass=theParamVal.Masses[_name]; - if ( fabs(xMass-_currentXMass) > 1.e-10){ - _recalculate=true; - } - - if(_bwMassFit){ - double xWidth=theParamVal.Widths[_name]; - if ( fabs(xWidth - _currentXWidth) > 1.e-10){ - _recalculate=true; - } - } - else if(_flatteMassFit){ - std::string phiPhiGFactorKey="gFactorPhiPhi_"+_name; - std::string omegaPhiFactorKey="gFactorOmegaPhi_"+_name; - double gFactorPhiPhi=theParamVal.gFactors[phiPhiGFactorKey]; - double gFactorOmegaPhi=theParamVal.gFactors[omegaPhiFactorKey]; - if ( fabs(gFactorPhiPhi - _currentgFactorPhiPhi) > 1.e-10 ){ - _recalculate=true; - } - if ( fabs(gFactorOmegaPhi - _currentgFactorOmegaPhi) > 1.e-10 ){ - _recalculate=true; - } - } - } - if (_recalculate) Info << "Recalculate amplitude:\t" << _name << endmsg; - - return _recalculate; -} - - -void XToOmegaPhiDecAmps::updateFitParams(fitParamsNew& theParamVal){ - std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > XToPhiPhiMag=theParamVal.Mags[_phiPhiKey]; - std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess > XToPhiPhiPhi=theParamVal.Phis[_phiPhiKey]; - std::map< boost::shared_ptr<const JPCLS>, double, pawian::Collection::SharedPtrLess >::iterator itXMag; - for ( itXMag=XToPhiPhiMag.begin(); itXMag!=XToPhiPhiMag.end(); ++itXMag){ - boost::shared_ptr<const JPCLS> XState=itXMag->first; - double theXMag=itXMag->second; - double theXPhi=XToPhiPhiPhi[XState]; - _currentParamMags[XState]=theXMag; - _currentParamPhis[XState]=theXPhi; - } - - if (!_massIndependent){ - double xMass=theParamVal.Masses[_name]; - _currentXMass= xMass; - - if(_bwMassFit){ - double xWidth=theParamVal.Widths[_name]; - _currentXWidth=xWidth; - } - else if(_flatteMassFit){ - std::string phiPhiGFactorKey="gFactorPhiPhi_"+_name; - std::string omegaPhiFactorKey="gFactorOmegaPhi_"+_name; - double gFactorPhiPhi=theParamVal.gFactors[phiPhiGFactorKey]; - double gFactorOmegaPhi=theParamVal.gFactors[omegaPhiFactorKey]; - _currentgFactorPhiPhi=gFactorPhiPhi; - _currentgFactorOmegaPhi=gFactorOmegaPhi; - } - } -} diff --git a/Examples/JpsiToOmegaPhiGam/XToOmegaPhiDecAmps.hh b/Examples/JpsiToOmegaPhiGam/XToOmegaPhiDecAmps.hh index 2d88afdc2cdb1810c6cf50ed7020198baed36400..6174638e3bf3127554c858758d65f5ab7a12912a 100644 --- a/Examples/JpsiToOmegaPhiGam/XToOmegaPhiDecAmps.hh +++ b/Examples/JpsiToOmegaPhiGam/XToOmegaPhiDecAmps.hh @@ -51,8 +51,8 @@ protected: boost::shared_ptr<JpsiToOmegaPhiGamStates> _theStatesPtr; - complex<double> XToPhiPhiAmp(Spin lamX, EvtDataNew* theData); - complex<double> phiphiTo4KAmp( EvtDataNew* theData, Spin lambdaPhi1, Spin lambdaPhi2 ); + complex<double> XToPhiOmegaAmp(Spin lamX, EvtDataNew* theData); + complex<double> phiOmegaTo2K3piAmp( EvtDataNew* theData, Spin lambdaOmega, Spin lambdaPhi ); virtual void initialize(); diff --git a/Examples/JpsiToOmegaPhiGam/defaultparams.dat b/Examples/JpsiToOmegaPhiGam/defaultparams.dat deleted file mode 100644 index 1945a9dc6639777f9fdaa26fd28987e46e22be89..0000000000000000000000000000000000000000 --- a/Examples/JpsiToOmegaPhiGam/defaultparams.dat +++ /dev/null @@ -1,4 +0,0 @@ -J1P-1C-1Lama0Lamb1GammaEta_2981Mag 0.7 0.6 -J1P-1C-1Lama0Lamb1GammaEta_2981Phi 0 0.3 -J0P-1C1L1S1Eta_2981ToPhiPhiMag 0.2 0.8 -J0P-1C1L1S1Eta_2981ToPhiPhiPhi 0 0.3 diff --git a/Examples/JpsiToOmegaPhiGam/qaSummary.dat b/Examples/JpsiToOmegaPhiGam/qaSummary.dat deleted file mode 100644 index 082ca6c949578e52a59d51607869be9a399c3187..0000000000000000000000000000000000000000 --- a/Examples/JpsiToOmegaPhiGam/qaSummary.dat +++ /dev/null @@ -1,5 +0,0 @@ -BIC 12195.7 -AICa 12170.2 -AICc 12170.2 -logLh 6081.08 -free parameter 4 diff --git a/Examples/JpsiToPhiPhiGam/ConfigFiles/startParamsEta.cfg b/Examples/JpsiToPhiPhiGam/ConfigFiles/startParamsEta.cfg index 37e6e50975e7724103fec7d3a6221b0393bdcdcb..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 --- a/Examples/JpsiToPhiPhiGam/ConfigFiles/startParamsEta.cfg +++ b/Examples/JpsiToPhiPhiGam/ConfigFiles/startParamsEta.cfg @@ -1,4 +0,0 @@ -J1P-1C-1Lama0Lamb1GammaEta_2000Mag 0.7 0.6 -J1P-1C-1Lama0Lamb1GammaEta_2000Phi 0 0.3 -J0P-1C1L1S1Eta_2000ToPhiPhiMag 0.2 0.8 -J0P-1C1L1S1Eta_2000ToPhiPhiPhi 0 0.3