54 bool validndaug =
false;
89 report(
ERROR,
"EvtGen" ) <<
"Have not yet implemented this final state in TAUHADNU model"
93 for (
id = 0;
id < (
getNDaug() - 1 );
id++ )
110 EvtIdSet thePis(
"pi+",
"pi-",
"pi0" );
121 if ( p->
getId() == TAUM )
133 bool foundHadCurr =
false;
149 hadCurr = Fpi( q1, q2 ) * ( q1 - q2 );
163 int diffPi( 0 ), samePi1( 0 ), samePi2( 0 );
188 double qMass2 = Q.
mass2();
190 double GA1 = _gammaA1 * pi3G( Q.
mass2(), samePi1 ) / pi3G( _mA1 * _mA1, samePi1 );
195 hadCurr = BA1 * ( ( q1 - q3 ) - ( Q * ( Q * ( q1 - q3 ) ) / qMass2 ) * Fpi( q2, q3 ) +
196 ( q2 - q3 ) - ( Q * ( Q * ( q2 - q3 ) ) / qMass2 ) * Fpi( q1, q3 ) );
202 report(
ERROR,
"EvtGen" ) <<
"Have not yet implemented this final state in TAUHADNU model"
206 for (
id = 0;
id < (
getNDaug() - 1 );
id++ )
211 vertex( 0, tau1 * hadCurr );
212 vertex( 1, tau2 * hadCurr );
217double EvtTauHadnu::pi3G(
double m2,
int dupD ) {
219 if (
m2 > ( _mRho +
mPi ) )
220 {
return m2 * ( 1.623 + 10.38 /
m2 - 9.32 / (
m2 *
m2 ) + 0.65 / (
m2 *
m2 *
m2 ) ); }
224 return 4.1 * pow( t1, 3.0 ) * ( 1.0 - 3.3 * t1 + 5.8 * t1 * t1 );
234 EvtVector4R Q = q1 + q2;
238 double dRho = _mRho * _mRho -
m1 *
m1 -
m2 *
m2;
239 double pPiRho = ( 1.0 / _mRho ) * sqrt( ( dRho * dRho ) / 4.0 -
m1 *
m1 *
m2 *
m2 );
241 double dRhopr = _mRhopr * _mRhopr -
m1 *
m1 -
m2 *
m2;
242 double pPiRhopr = ( 1.0 / _mRhopr ) * sqrt( ( dRhopr * dRhopr ) / 4.0 -
m1 *
m1 *
m2 *
m2 );
244 double dQ = mQ2 -
m1 *
m1 -
m2 *
m2;
245 double pPiQ = ( 1.0 / sqrt( mQ2 ) ) * sqrt( ( dQ * dQ ) / 4.0 -
m1 *
m1 *
m2 *
m2 );
247 double gammaRho = _gammaRho * _mRho / sqrt( mQ2 ) * pow( ( pPiQ / pPiRho ), 3 );
248 EvtComplex BRhoDem( _mRho * _mRho - mQ2, -1.0 * _mRho * gammaRho );
249 EvtComplex BRho = _mRho * _mRho / BRhoDem;
251 double gammaRhopr = _gammaRhopr * _mRhopr / sqrt( mQ2 ) * pow( ( pPiQ / pPiRhopr ), 3 );
252 EvtComplex BRhoprDem( _mRhopr * _mRhopr - mQ2, -1.0 * _mRho * gammaRhopr );
253 EvtComplex BRhopr = _mRhopr * _mRhopr / BRhoprDem;
255 return ( BRho + _beta * BRhopr ) / ( 1 + _beta );
EvtVector4C EvtLeptonVACurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
ostream & report(Severity severity, const char *facility)
void vertex(const EvtComplex &)
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
void setProbMax(double prbmx)
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
int contains(const EvtId id)
static double getMeanMass(EvtId i)
static std::string name(EvtId i)
static EvtId getId(const std::string &name)
virtual EvtDiracSpinor spParentNeutrino() const
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
virtual EvtDiracSpinor sp(int) const
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
void getName(std::string &name)
void decay(EvtParticle *p)