Skip to content
Snippets Groups Projects
Commit 2475407e authored by Pascal Scheffels's avatar Pascal Scheffels
Browse files

Merge branch 'master' of tau.ep1.rub.de:/var/www/git/Pawian

parents fa8a9a7f 5fe2cc6b
No related branches found
No related tags found
No related merge requests found
Showing
with 68 additions and 42 deletions
No preview for this file type
......@@ -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();
......
......@@ -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;
......
......@@ -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;
......
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
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
......@@ -32,6 +32,7 @@ typedef std::map<int, Vector4<double> > mapInt4Vec;
typedef std::map<int, map<Spin,map<Spin,map<Spin,complex<double> > > > > mapIntSpinComplex;
typedef std::map<std::string, Vector4<double> > mapString4Vec;
typedef std::map<std::string, map<Spin,map<Spin,map<Spin,complex<double> > > > > mapStringSpinComplex;
typedef std::map<int, double > mapIntDouble;
struct EvtDataNew {
mapInt4Vec FourVecsProd;
......@@ -40,6 +41,7 @@ struct EvtDataNew {
mapIntSpinComplex WignerDsDec;
mapString4Vec FourVecsString;
mapStringSpinComplex WignerDsString;
mapIntDouble KinematicVariables;
double evtWeight;
int evtNo;
};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment