50 argdelta = 6.71184e-02;
52 argdelta2 = 2.00844e-02;
60 argdelta = 6.25729e+00;
62 argdelta2 = 3.28230e+00;
109 double prob = AMPsq();
114double EvtEtap2gpipi::AMPsq() {
117 -1 * prho.
get( 3 ) );
118 double m2 = ( _pd[0] + _pd[1] ).mass2();
119 double m = ( _pd[0] + _pd[1] ).
mass();
124 double coshel_pi = pi_rhocms.
dot( etap_rhocms ) / pi_rhocms.
d3mag() / etap_rhocms.
d3mag();
125 double ang_part = 1 - coshel_pi * coshel_pi;
128 if ( m < 0.95778 ) kgamma = ( 0.95778 * 0.95778 - m * m ) / ( 2 * 0.95778 );
130 if ( m > 2 *
mpi ) qpim = sqrt( 0.25 * m * m - pow(
mpi, 2 ) );
132 double qpimrho = sqrt( 0.25 * Mrho * Mrho - pow(
mpi, 2 ) );
133 double qpimrhop = sqrt( 0.25 * Mrhop * Mrhop - pow(
mpi, 2 ) );
135 double hm = ( 2. /
PI ) * ( qpim / m ) * log( ( m + 2 * qpim ) / ( 2 *
mpi ) );
138 ( 2. /
PI ) * ( qpimrho / Mrho ) * log( ( Mrho + 2 * qpimrho ) / ( 2. *
mpi ) );
140 ( 2. /
PI ) * ( qpimrhop / Mrhop ) * log( ( Mrhop + 2 * qpimrhop ) / ( 2. *
mpi ) );
142 double d = ( 3. /
PI ) * (
mpi *
mpi / pow( qpimrho, 2 ) ) *
143 log( ( Mrho + 2 * qpimrho ) / ( 2 *
mpi ) ) +
144 ( Mrho / ( 2 *
PI * qpimrho ) ) -
145 ( (
mpi *
mpi * Mrho ) / (
PI * pow( qpimrho, 3 ) ) );
146 double drhop = ( 3. /
PI ) * (
mpi *
mpi / pow( qpimrhop, 2 ) ) *
147 log( ( Mrhop + 2 * qpimrhop ) / ( 2 *
mpi ) ) +
148 ( Mrhop / ( 2 *
PI * qpimrhop ) ) -
149 ( (
mpi *
mpi * Mrhop ) / (
PI * pow( qpimrhop, 3 ) ) );
151 double dhds = hmrho * ( pow( 8 * pow( qpimrho, 2 ), -1 ) - pow( 2 * Mrho * Mrho, -1 ) ) +
152 pow( 2 *
PI * Mrho * Mrho, -1 );
154 hmrhop * ( pow( 8 * pow( qpimrhop, 2 ), -1 ) - pow( 2 * Mrhop * Mrhop, -1 ) ) +
155 pow( 2 *
PI * Mrhop * Mrhop, -1 );
157 double fm2 = Grho * ( Mrho * Mrho / pow( qpimrho, 3 ) ) *
158 ( qpim * qpim * ( hm - hmrho ) +
159 ( Mrho * Mrho - m * m ) * qpimrho * qpimrho * ( dhds ) );
160 double fm2rhop = Grhop * ( Mrhop * Mrhop / pow( qpimrhop, 3 ) ) *
161 ( qpim * qpim * ( hm - hmrhop ) +
162 ( Mrhop * Mrhop - m * m ) * qpimrhop * qpimrhop * ( dhdsrhop ) );
164 double Grhom = Grho * pow( ( qpim / qpimrho ), 3 ) * ( Mrho / m );
165 double Grhopm = Grhop * pow( ( qpim / qpimrhop ), 3 ) * ( Mrhop / m );
167 double coefficient = ( 1. / ( 48 *
PI *
PI *
PI ) ) * pow( kgamma, 2 ) * pow( qpim, 2 );
168 double coe1 = pow( ( 2 * sqrt( 48 *
PI * pow( Mrho, -4 ) ) ), 2 );
170 EvtComplex denomGrhom( Mrho * Mrho - m * m + fm2, -1 * Mrho * Grhom );
174 EvtComplex denomBWomega( Momega * Momega - m * m, -Momega * Gomega );
178 EvtComplex part2 = BWrho * cdelta * BWomega * ( m * m ) / ( Momega * Momega );
180 EvtComplex denomGrhopm( Mrhop * Mrhop - m * m + fm2rhop, -1 * Mrhop * Grhopm );
181 EvtComplex realpm( Mrhop * Mrhop * ( 1 + drhop * Grhop / Mrhop ), 0 );
184 EvtComplex denom( delta2 *
cos( argdelta2 ) + 1.0, delta2 *
sin( argdelta2 ) );
188 EvtComplex amp = ( ( BWrho * ( cdelta * BWomega * ( m * m ) / ( Momega * Momega ) + 1.0 ) +
190 ( cdelta2 + 1 ) * sqrt( coe1 ) +
193 double total = coefficient *
abs2( amp );
194 double amp2 = total * ang_part;
double abs2(const EvtComplex &c)
EvtDiracSpinor boostTo(const EvtDiracSpinor &sp, const EvtVector4R p4)
double sin(const BesAngle a)
double cos(const BesAngle a)
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 EvtSpinType::spintype getSpinType(EvtId i)
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