31 model_name=
"DsTof0enu";
65 if ( d3 == EP || d3 == EM ) {
66 if (parnum == DsP || parnum == DsM ) {
70 }
else if ( d1 == PIP || d2 == PIP ) {
73 }
else if ( d1 == KP || d2 == KP ) {
76 }
else if ( d1 == KS ) {
79 }
else if ( d1 == KL ) {
85 if ( d3 == MUP || d3 == MUM ) {
86 if (parnum == DsP || parnum == DsM ) {
90 }
else if ( d1 == PIP || d2 == PIP ) {
93 }
else if ( d1 == KP || d2 == KP ) {
96 }
else if ( d1 == KS ) {
99 }
else if ( d1 == KL ) {
120 flatte_g1 = 0.199*mf0;
121 flatte_g2 = 3.01*0.199*mf0;
167 if(pid==11||pid==13) charm =-1;
169 double m2, q2, cosV, cosL, chi;
170 KinVGen(pi1,
pi2, e, nu, charm,
m2, q2, cosV, cosL, chi);
171 double prob = calPDF(
m2, q2, cosV, cosL, chi);
184 boost.
set(vp4_KPi.
get(0), -vp4_KPi.
get(1), -vp4_KPi.
get(2), -vp4_KPi.
get(3));
197 double sinx =
C.cross(V).dot(D);
198 double cosx =
C.dot(D);
199 chi = sinx>0? acos(cosx): -acos(cosx);
200 if(charm==-1) chi=-chi;
203double EvtDsTof0enu::calPDF(
double m2,
double q2,
double cosV,
double cosL,
double chi) {
205 double I1 = 0.25*
abs2(F10);
206 double sinL = sqrt(1.-cosL*cosL);
207 double sinL2 = sinL*sinL;
208 double cos2L = 1.0 - 2.0*sinL2;
209 double I = I1 - I1*cos2L;
213EvtComplex EvtDsTof0enu::Resonancef0Flatte(
double m2,
double q2) {
214 double pPiPi = getPStar(m2Ds,
m2, q2);
219 EvtComplex rhopipi = (2.0/3.0)*rhopiPpiM + (1.0/3.0)*rhopi0pi0;
221 EvtComplex amp = ciR/(ciR*(m2f0-
m2)-ciM*(flatte_g1*rhopipi+flatte_g2*rhoKK));
222 EvtComplex F10 = amp*pPiPi*mDs/(1.0-q2/m2ADs);
226double EvtDsTof0enu::getPStar(
double sa,
double sb,
double sc) {
227 double x = sa + sb - sc;
228 double q = 0.25*
x*
x/sa-sb;
241 if ((1.0-4.0*mX*mX/
m2)>0) rho = ciR*sqrt(1.0-4.0*mX*mX/
m2);
242 else rho = ciM*sqrt(4.0*mX*mX/
m2-1.0);
character *LEPTONflag integer iresonances real pi2
double abs2(const EvtComplex &c)
EvtDiracSpinor boostTo(const EvtDiracSpinor &sp, const EvtVector4R p4)
****INTEGER imax DOUBLE PRECISION m_pi *DOUBLE PRECISION m_amfin DOUBLE PRECISION m_Chfin DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_sinw2 DOUBLE PRECISION m_GFermi DOUBLE PRECISION m_MfinMin DOUBLE PRECISION m_ta2 INTEGER m_out INTEGER m_KeyFSR INTEGER m_KeyQCD *COMMON c_Semalib $ !copy of input $ !CMS energy $ !beam mass $ !final mass $ !beam charge $ !final charge $ !smallest final mass $ !Z mass $ !Z width $ !EW mixing angle $ !Gmu Fermi $ alphaQED at q
***************************************************************************************Pseudo Class RRes *****************************************************************************************Parameters and physical constants **Maarten sept ************************************************************************DOUBLE PRECISION xsmu **************************************************************************PARTICLE DATA all others are from PDG *Only resonances with known widths into electron pairs are sept ************************************************************************C Declarations C
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
void setProbMax(double prbmx)
void checkNDaug(int d1, int d2=-1)
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
void setProb(double prob)
void getName(std::string &name)
void decay(EvtParticle *p)
static int getStdHep(EvtId id)
static EvtId getId(const std::string &name)
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
double dot(const EvtVector4R &v2) const
EvtVector4R cross(const EvtVector4R &v2)
void set(int i, double d)