57 for ( i = 0; i < (
getNDaug() - 1 ); i++ ) {
61 bool validndaug =
false;
93 <<
"Have not yet implemented this final state in TAUHADNUKS model"
97 for (
id = 0;
id < (
getNDaug() - 1 );
id++ )
118 EvtIdSet thePis{
"pi+",
"pi-",
"pi0" };
130 if ( p->
getId() == TAUM ) {
139 bool foundHadCurr =
false;
149 double m1 = q1.
mass();
150 double m2 = q2.
mass();
152 hadCurr =
Fpi( ( q1 + q2 ).mass2(), m1, m2 ) * ( q1 - q2 );
163 int diffPi( 0 ), samePi1( 0 ), samePi2( 0 );
184 double m1 = q1.
mass();
185 double m2 = q2.
mass();
186 double m3 = q3.
mass();
189 double Q2 = Q.
mass2();
193 gFunc( mA12, samePi1 );
199 ( ( ( q1 - q3 ) - ( Q * ( Q * ( q1 - q3 ) ) / Q2 ) ) *
200 Fpi( ( q1 + q3 ).mass2(), m1, m3 ) +
201 ( ( q2 - q3 ) - ( Q * ( Q * ( q2 - q3 ) ) / Q2 ) ) *
202 Fpi( ( q2 + q3 ).mass2(), m2, m3 ) );
208 if ( !foundHadCurr ) {
210 <<
"Have not yet implemented this final state in TAUHADNUKS model"
214 for (
id = 0;
id < (
getNDaug() - 1 );
id++ )
220 vertex( 0, tau1 * hadCurr );
221 vertex( 1, tau2 * hadCurr );
229 double mpi2 = pow( mpi, 2. );
230 if ( Q2 < pow(
m_mRho + mpi, 2. ) ) {
231 double arg = Q2 - 9. * mpi2;
232 return 4.1 * pow(
arg, 3. ) * ( 1. - 3.3 *
arg + 5.8 * pow(
arg, 2. ) );
234 return Q2 * ( 1.623 + 10.38 / Q2 - 9.32 / pow( Q2, 2. ) +
235 0.65 / pow( Q2, 3. ) );
243 return ( BW_rho +
m_beta * BW_rhopr ) / ( 1. +
m_beta );
249 double m2 = pow( m, 2. );
251 if ( s > pow( xm1 + xm2, 2. ) ) {
252 double qs = sqrt( fabs( ( s - pow( xm1 + xm2, 2. ) ) *
253 ( s - pow( xm1 - xm2, 2. ) ) ) ) /
255 double qm = sqrt( fabs( ( m2 - pow( xm1 + xm2, 2. ) ) *
256 ( m2 - pow( xm1 - xm2, 2. ) ) ) ) /
259 gamma *= m2 / s * pow( qs / qm, 3. );
263 EvtComplex denBW( m2 - s, -1. * sqrt( s ) * gamma );
double arg(const EvtComplex &c)
EvtVector4C EvtLeptonVACurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
std::ostream & EvtGenReport(EvtGenSeverity severity, const char *facility=nullptr)
void vertex(const EvtComplex &)
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
double getArg(unsigned int j)
void setProbMax(double prbmx)
EvtId getDaug(int i) const
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
const EvtId * getDaugs() const
bool contains(const EvtId &id) const
static std::string name(EvtId i)
static double getMeanMass(EvtId i)
static EvtId getId(const std::string &name)
double initializePhaseSpace(size_t numdaughter, const EvtId *daughters, bool forceResetMasses=false, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
virtual EvtDiracSpinor spParentNeutrino() const
const EvtVector4R & getP4() const
EvtParticle * getDaug(const int i)
virtual EvtDiracSpinor sp(int) const
void decay(EvtParticle *p) override
EvtComplex BW(double s, double m, double gamma, double xm1, double xm2)
EvtComplex Fpi(double s, double xm1, double xm2)
std::string getName() const override
EvtDecayBase * clone() const override
double gFunc(double m2, int dupD)
void initProbMax() override