//-------------------------------------------------------------------------- // // Environment: // This software is part of the EvtGen package developed jointly // for the BaBar and CLEO collaborations. If you use all or part // of it, please give an appropriate acknowledgement. // // Copyright Information: See EvtGen/COPYRIGHT // Copyright (C) 1998 Caltech, UCSB // // Module: EvtXPsiGamma.cc // // Description: Routine to implement radiative decay X3872(2-+) -> J/psi gamma // according to [F. Brazzi et al, arXiv:1103.3155 // // Modification history: // // May, 7, 2012 Module created // //------------------------------------------------------------------------ // #include "EvtGenBase/EvtPatches.hh" #include #include "EvtGenBase/EvtParticle.hh" #include "EvtGenBase/EvtTensorParticle.hh" #include "EvtGenBase/EvtGenKine.hh" #include "EvtGenBase/EvtPDL.hh" #include "EvtGenBase/EvtReport.hh" #include "EvtGenBase/EvtVector4C.hh" #include "EvtGenBase/EvtTensor4C.hh" #include "EvtGenModels/EvtXPsiGamma.hh" #include #include using namespace std; EvtXPsiGamma::~EvtXPsiGamma() { /* cout<<"(* AVL EvtXPsiGamma::destructor getProbMax(-1) = "< initializePhaseSpace(getNDaug(),getDaugs()); double gOmega = 1.58, gPOmega = -0.74; // X -> omega psi couplings from table II double gRho = 1.58, gPRho = -0.74; // X -> omega psi couplings from table II double fRho=0.121, mRho2 = 0.770*0.770, fOmega=0.036, mOmega2 = 0.782*0.782; EvtComplex amp; if(_ID0 == EvtPDL::getId("gamma") ) { for(int iPsi = 0; iPsi < 4; iPsi++) { for(int iGamma = 0; iGamma < 1; iGamma++) { for(int iChi = 0; iChi<4; iChi++) { EvtComplex T2 = fT2( root->getDaug(1)->getP4(), root->getDaug(0)->getP4(), root->epsTensor(iChi), root->getDaug(1)->epsParent(iPsi).conj(), root->getDaug(0)->epsParentPhoton(iGamma).conj() ); EvtComplex T3 = fT3( root->getDaug(1)->getP4(), root->getDaug(0)->getP4(), root->epsTensor(iChi), root->getDaug(1)->epsParent(iPsi).conj(), root->getDaug(0)->epsParentPhoton(iGamma).conj() ); amp = (fOmega/mOmega2*gOmega+fRho/mRho2*gRho)*T2 + (fOmega/mOmega2*gPOmega+fRho/mRho2*gPRho)*T3; vertex(iChi, iGamma, iPsi, amp); };};}; } else if(_ID0 == EvtPDL::getId("omega") ) { for(int iPsi = 0; iPsi < 4; iPsi++) { for(int iGamma = 0; iGamma < 4; iGamma++) { for(int iChi = 0; iChi<4; iChi++) { EvtComplex T2 = fT2( root->getDaug(1)->getP4(), root->getDaug(0)->getP4(), root->epsTensor(iChi), root->getDaug(1)->epsParent(iPsi).conj(), root->getDaug(0)->epsParent(iGamma).conj() ); EvtComplex T3 = fT3( root->getDaug(1)->getP4(), root->getDaug(0)->getP4(), root->epsTensor(iChi), root->getDaug(1)->epsParent(iPsi).conj(), root->getDaug(0)->epsParent(iGamma).conj() ); // cout << "AVL:: omega"<getDaug(1)->getP4(), root->getDaug(0)->getP4(), root->epsTensor(iChi), root->getDaug(1)->epsParent(iPsi).conj(), root->getDaug(0)->epsParent(iGamma).conj() ); EvtComplex T3 = fT3( root->getDaug(1)->getP4(), root->getDaug(0)->getP4(), root->epsTensor(iChi), root->getDaug(1)->epsParent(iPsi).conj(), root->getDaug(0)->epsParent(iGamma).conj() ); // cout << "AVL:: rho"<