67 {
68
69
70
71
72
75
76 double L=2.0*log(
w/0.000511);
79
80
81
84
87
88 double pgmax=(
s-4.0*md*md)/(2.0*
w);
89
90 assert(pgmax>0.0);
91
93
95
96 double k=fabs(pgz);
97
99
101
102 double mres=p4res.
mass();
103
104 double ed=mres/2.0;
105
106 assert(ed>md);
107
108 double pd=sqrt(ed*ed-md*md);
109
110
111
112
115
116
118
121
122
123
124 double p0=0.0;
126 double pp=0.0;
127 if (ed>mDp) pp=sqrt(ed*ed-mDp*mDp);
128
129 double p0norm=sqrt(0.25*m*m-
mD0*
mD0);
130 double ppnorm=sqrt(0.25*m*m-mDp*mDp);
131
132 double r0=12.7;
133 double rp=12.7;
134
138 }
139
140 double GammaTot=
Gamma*(pp*pp*pp/(1+pp*pp*rp*rp)+p0*p0*p0/(1+p0*p0*r0*r0))/
141 (ppnorm*ppnorm*ppnorm/(1+ppnorm*ppnorm*rp*rp)+
142 p0norm*p0norm*p0norm/(1+p0norm*p0norm*r0*r0));
143
144
145 sigma*=pd*pd*pd/((mres-m)*(mres-m)+0.25*GammaTot*GammaTot);
146
147 assert(sigma>0.0);
148
149 static double sigmax=sigma;
150
151 if (sigma>sigmax){
152 sigmax=sigma;
153 }
154
155
156
158
160
161
162
163
164
165
166 double norm=sqrt(sigma);
167
171
175
179
183
187
191
192 return;
193}
EvtComplex exp(const EvtComplex &c)
DOUBLE_PRECISION count[2]
void vertex(const EvtComplex &)
static double getWidth(EvtId i)
static double getMeanMass(EvtId i)
static EvtId getId(const std::string &name)
virtual EvtVector4C epsParent(int i) const
virtual void init(EvtId part_n, const EvtVector4R &p4)=0
EvtVector4R getP4Restframe()
EvtParticle * getDaug(int i)
virtual EvtVector4C eps(int i) const
double Gamma(const double Q2, const double M2, const double G, const double mkpp2, const double mkmp2)