BOSS 7.0.1
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtKstarnunu Class Reference

#include <EvtKstarnunu.hh>

+ Inheritance diagram for EvtKstarnunu:

Public Member Functions

 EvtKstarnunu ()
 
virtual ~EvtKstarnunu ()
 
void getName (std::string &name)
 
EvtDecayBaseclone ()
 
void init ()
 
void decay (EvtParticle *p)
 
- Public Member Functions inherited from EvtDecayAmp
void makeDecay (EvtParticle *p)
 
void setWeight (double weight)
 
void vertex (const EvtComplex &amp)
 
void vertex (int i1, const EvtComplex &amp)
 
void vertex (int i1, int i2, const EvtComplex &amp)
 
void vertex (int i1, int i2, int i3, const EvtComplex &amp)
 
void vertex (int *i1, const EvtComplex &amp)
 
virtual ~EvtDecayAmp ()
 
- Public Member Functions inherited from EvtDecayBase
virtual void getName (std::string &name)=0
 
virtual void decay (EvtParticle *p)=0
 
virtual void makeDecay (EvtParticle *p)=0
 
virtual EvtDecayBaseclone ()=0
 
virtual void init ()
 
virtual void initProbMax ()
 
virtual std::string commandName ()
 
virtual void command (std::string cmd)
 
double getProbMax (double prob)
 
double resetProbMax (double prob)
 
 EvtDecayBase ()
 
virtual ~EvtDecayBase ()
 
virtual bool matchingDecay (const EvtDecayBase &other) const
 
EvtId getParentId ()
 
double getBranchingFraction ()
 
void disableCheckQ ()
 
void checkQ ()
 
int getNDaug ()
 
EvtIdgetDaugs ()
 
EvtId getDaug (int i)
 
int getNArg ()
 
int getPHOTOS ()
 
void setPHOTOS ()
 
void setVerbose ()
 
void setSummary ()
 
double * getArgs ()
 
std::string * getArgsStr ()
 
double getArg (int j)
 
std::string getArgStr (int j)
 
std::string getModelName ()
 
int getDSum ()
 
int summary ()
 
int verbose ()
 
void saveDecayInfo (EvtId ipar, int ndaug, EvtId *daug, int narg, std::vector< std::string > &args, std::string name, double brfr)
 
void printSummary ()
 
void setProbMax (double prbmx)
 
void noProbMax ()
 
void checkNArg (int a1, int a2=-1, int a3=-1, int a4=-1)
 
void checkNDaug (int d1, int d2=-1)
 
void checkSpinParent (EvtSpinType::spintype sp)
 
void checkSpinDaughter (int d1, EvtSpinType::spintype sp)
 
virtual int nRealDaughters ()
 

Additional Inherited Members

- Static Public Member Functions inherited from EvtDecayBase
static void findMasses (EvtParticle *p, int ndaugs, EvtId daugs[10], double masses[10])
 
static void findMass (EvtParticle *p)
 
static double findMaxMass (EvtParticle *p)
 
- Protected Member Functions inherited from EvtDecayBase
bool daugsDecayedByParentModel ()
 
- Protected Attributes inherited from EvtDecayAmp
EvtAmp _amp2
 
- Protected Attributes inherited from EvtDecayBase
bool _daugsDecayedByParentModel
 

Detailed Description

Definition at line 28 of file EvtKstarnunu.hh.

Constructor & Destructor Documentation

◆ EvtKstarnunu()

EvtKstarnunu::EvtKstarnunu ( )
inline

Definition at line 32 of file EvtKstarnunu.hh.

32{}

Referenced by clone().

◆ ~EvtKstarnunu()

EvtKstarnunu::~EvtKstarnunu ( )
virtual

Definition at line 45 of file EvtKstarnunu.cc.

45{}

Member Function Documentation

◆ clone()

EvtDecayBase * EvtKstarnunu::clone ( )
virtual

Implements EvtDecayBase.

Definition at line 54 of file EvtKstarnunu.cc.

54 {
55
56 return new EvtKstarnunu;
57
58}

◆ decay()

void EvtKstarnunu::decay ( EvtParticle p)
virtual

Implements EvtDecayBase.

Definition at line 78 of file EvtKstarnunu.cc.

78 {
79
80 static EvtId NUE=EvtPDL::getId("nu_e");
81 static EvtId NUM=EvtPDL::getId("nu_mu");
82 static EvtId NUT=EvtPDL::getId("nu_tau");
83 static EvtId NUEB=EvtPDL::getId("anti-nu_e");
84 static EvtId NUMB=EvtPDL::getId("anti-nu_mu");
85 static EvtId NUTB=EvtPDL::getId("anti-nu_tau");
86
88
89 double m_b = p->mass();
90
91 EvtParticle *meson, *neutrino1, *neutrino2;
92 meson = p->getDaug(0);
93 neutrino1 = p->getDaug(1);
94 neutrino2 = p->getDaug(2);
95 EvtVector4R momnu1 = neutrino1->getP4();
96 EvtVector4R momnu2 = neutrino2->getP4();
97 EvtVector4R momkstar = meson->getP4();
98
99 double v0_0, a0_0, a1_0, a2_0;
100 double m2v0, m2a0, a1_b, a2_b;
101 v0_0 = 0.47;
102 a0_0 = 0.30;
103 a1_0 = 0.37;
104 a2_0 = 0.40;
105 m2v0 = 5.*5.;
106 m2a0 = 4.8*4.8;
107 a1_b = -0.023;
108 a2_b = 0.034;
109
110 EvtVector4R q = momnu1+momnu2;
111 double q2 = q.mass2();
112
113 double v0, a1, a2;
114 v0 = v0_0/(1-q2/m2v0);
115 a1 = a1_0*(1+a1_b*q2);
116 a2 = a2_0*(1+a2_b*q2);
117
118 EvtVector4R p4b; p4b.set(m_b,0.,0.,0.); // Do calcs in mother rest frame
119
120 double m_k = meson->mass();
121
122 EvtTensor4C tds=(-2*v0/(m_b+m_k))*dual(directProd(p4b,momkstar))
123 - EvtComplex(0.0,1.0)*
124 ( (m_b+m_k)*a1*EvtTensor4C::g()
125 - (a2/(m_b+m_k))*directProd(p4b-momkstar,p4b+momkstar));
126
127 EvtVector4C l;
128
129 if (getDaug(1)==NUE||getDaug(1)==NUM||getDaug(1)==NUT) {
131 neutrino2->spParentNeutrino());
132 }
133 if (getDaug(1)==NUEB||getDaug(1)==NUMB||getDaug(1)==NUTB) {
135 neutrino1->spParentNeutrino());
136 }
137
138 EvtVector4C et0,et1,et2;
139 et0 = tds.cont1( meson->epsParent(0).conj() );
140 et1 = tds.cont1( meson->epsParent(1).conj() );
141 et2 = tds.cont1( meson->epsParent(2).conj() );
142
143 vertex(0,l*et0);
144 vertex(1,l*et1);
145 vertex(2,l*et2);
146
147 return;
148}
Evt3Rank3C directProd(const EvtVector3C &c1, const EvtVector3C &c2, const EvtVector3C &c3)
EvtVector4C EvtLeptonVACurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
EvtTensor4C dual(const EvtTensor4C &t2)
Definition: EvtTensor4C.cc:379
*********DOUBLE PRECISION m_pi INTEGER m_lenwt !max no of aux weights INTEGER m_phmax !maximum photon multiplicity ISR FSR *DOUBLE COMPLEX m_Pauli4 DOUBLE COMPLEX m_AmpBorn DOUBLE COMPLEX m_AmpBoxy DOUBLE COMPLEX m_AmpBorn1 DOUBLE COMPLEX m_AmpBorn2 DOUBLE COMPLEX m_AmpExpo2p DOUBLE COMPLEX m_Rmat DOUBLE COMPLEX m_BoxGZut !DOUBLE COMPLEX m_F1finPair2 !DOUBLE PRECISION m_Vcut DOUBLE PRECISION m_Alfinv DOUBLE PRECISION m_Lorin1 DOUBLE PRECISION m_Lorin2 DOUBLE PRECISION m_b
Definition: GPS.h:30
****INTEGER imax DOUBLE PRECISION m_pi *DOUBLE PRECISION m_amfin DOUBLE PRECISION m_Chfin DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_sinw2 DOUBLE PRECISION m_GFermi DOUBLE PRECISION m_MfinMin DOUBLE PRECISION m_ta2 INTEGER m_out INTEGER m_KeyFSR INTEGER m_KeyQCD *COMMON c_Semalib $ !copy of input $ !CMS energy $ !beam mass $ !final mass $ !beam charge $ !final charge $ !smallest final mass $ !Z mass $ !Z width $ !EW mixing angle $ !Gmu Fermi $ alphaQED at q
Definition: KKsem.h:33
void vertex(const EvtComplex &amp)
Definition: EvtDecayAmp.hh:37
EvtId * getDaugs()
Definition: EvtDecayBase.hh:65
EvtId getDaug(int i)
Definition: EvtDecayBase.hh:66
Definition: EvtId.hh:27
static EvtId getId(const std::string &name)
Definition: EvtPDL.cc:287
virtual EvtVector4C epsParent(int i) const
Definition: EvtParticle.cc:565
virtual EvtDiracSpinor spParentNeutrino() const
Definition: EvtParticle.cc:635
const EvtVector4R & getP4() const
Definition: EvtParticle.cc:121
EvtParticle * getDaug(int i)
Definition: EvtParticle.cc:85
double mass() const
Definition: EvtParticle.cc:127
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
EvtVector4C cont1(const EvtVector4C &v4) const
Definition: EvtTensor4C.cc:461
static const EvtTensor4C & g()
Definition: EvtTensor4C.cc:47
EvtVector4C conj() const
Definition: EvtVector4C.hh:206
void set(int i, double d)
Definition: EvtVector4R.hh:183

◆ getName()

void EvtKstarnunu::getName ( std::string &  name)
virtual

Implements EvtDecayBase.

Definition at line 47 of file EvtKstarnunu.cc.

47 {
48
49 model_name="KSTARNUNU";
50
51}

◆ init()

void EvtKstarnunu::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 60 of file EvtKstarnunu.cc.

60 {
61
62 // check that there are 0 arguments
63 checkNArg(0);
64 checkNDaug(3);
65
66 //We expect the parent to be a scalar
67 //and the daughters to be K neutrino netrino
68
70
74
75}
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
void checkNDaug(int d1, int d2=-1)
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)

The documentation for this class was generated from the following files: