BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtTauVectornu.cc
Go to the documentation of this file.
1//--------------------------------------------------------------------------
2//
3// Environment:
4// This software is part of the EvtGen package developed jointly
5// for the BaBar and CLEO collaborations. If you use all or part
6// of it, please give an appropriate acknowledgement.
7//
8// Copyright Information: See EvtGen/COPYRIGHT
9// Copyright (C) 1998 Caltech, UCSB
10//
11// Module: EvtTauVectornu.cc
12//
13// Description: The vector decay of the tau meson.
14// E.g., tau- -> rho- + nut
15//
16// Modification history:
17//
18// RYD/SHY April 23, 1997 Module created
19//
20//------------------------------------------------------------------------
21//
22#include "EvtTauVectornu.hh"
30#include <iostream>
31#include <stdlib.h>
32#include <string>
33
35
36void EvtTauVectornu::getName( std::string& model_name ) { model_name = "TAUVECTORNU"; }
37
39
41
42 // check that there are 0 arguments
43 checkNArg( 0 );
44 checkNDaug( 2 );
45
47
50}
51
53
55
56 static EvtId TAUM = EvtPDL::getId( "tau-" );
58
59 EvtParticle *v, *nut;
60 v = p->getDaug( 0 );
61 nut = p->getDaug( 1 );
62 double mvec = v->mass();
63 EvtVector4C tau1, tau2;
64
65 if ( p->getId() == TAUM )
66 {
67 tau1 = EvtLeptonVACurrent( nut->spParentNeutrino(), p->sp( 0 ) );
68 tau2 = EvtLeptonVACurrent( nut->spParentNeutrino(), p->sp( 1 ) );
69 }
70 else
71 {
72 tau1 = EvtLeptonVACurrent( p->sp( 0 ), nut->spParentNeutrino() );
73 tau2 = EvtLeptonVACurrent( p->sp( 1 ), nut->spParentNeutrino() );
74 }
75
76 double norm = mvec * sqrt( mvec );
77
78 vertex( 0, 0, norm * tau1 * ( v->epsParent( 0 ).conj() ) );
79 vertex( 0, 1, norm * tau1 * ( v->epsParent( 1 ).conj() ) );
80 vertex( 0, 2, norm * tau1 * ( v->epsParent( 2 ).conj() ) );
81 vertex( 1, 0, norm * tau2 * ( v->epsParent( 0 ).conj() ) );
82 vertex( 1, 1, norm * tau2 * ( v->epsParent( 1 ).conj() ) );
83 vertex( 1, 2, norm * tau2 * ( v->epsParent( 2 ).conj() ) );
84
85 return;
86}
EvtVector4C EvtLeptonVACurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
**********Class see also m_nmax DOUBLE PRECISION m_amel DOUBLE PRECISION m_x2 DOUBLE PRECISION m_alfinv DOUBLE PRECISION m_Xenph INTEGER m_KeyWtm INTEGER m_idyfs DOUBLE PRECISION m_zini DOUBLE PRECISION m_q2 DOUBLE PRECISION m_Wt_KF DOUBLE PRECISION m_WtCut INTEGER m_KFfin *COMMON c_KarLud $ !Input CMS energy[GeV] $ !CMS energy after beam spread beam strahlung[GeV] $ !Beam energy spread[GeV] $ !z boost due to beam spread $ !electron beam mass *ff pair spectrum $ !minimum v
Definition KarLud.h:35
void vertex(const EvtComplex &amp)
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
void setProbMax(double prbmx)
void checkNDaug(int d1, int d2=-1)
EvtId * getDaugs()
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
Definition EvtId.hh:27
static EvtId getId(const std::string &name)
Definition EvtPDL.cc:272
EvtId getId() const
virtual EvtDiracSpinor spParentNeutrino() 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)
EvtDecayBase * clone()
virtual ~EvtTauVectornu()
void getName(std::string &name)
void decay(EvtParticle *p)