BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtVll.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: EvtVll.cc
12//
13// Description: The decay of a vector meson to two leptons,
14// or generally, two spin 1/2 particles.
15// E.g., J/psi -> e+ e-
16//
17// Modification history:
18//
19// RYD January 17, 1997 Module created
20//
21//------------------------------------------------------------------------
22//
23#include "EvtVll.hh"
31#include <iostream>
32#include <stdlib.h>
33#include <string>
34
36
37void EvtVll::getName( std::string& model_name ) { model_name = "VLL"; }
38
40
42
43 // check that there are 0 arguments
44 checkNArg( 0 );
45 checkNDaug( 2 );
46
48
51}
52
54
56
58
59 EvtParticle *l1, *l2;
60 l1 = p->getDaug( 0 );
61 l2 = p->getDaug( 1 );
62
63 EvtVector4C l11, l12, l21, l22;
64 l11 = EvtLeptonVCurrent( l1->spParent( 0 ), l2->spParent( 0 ) );
65 l12 = EvtLeptonVCurrent( l1->spParent( 0 ), l2->spParent( 1 ) );
66 l21 = EvtLeptonVCurrent( l1->spParent( 1 ), l2->spParent( 0 ) );
67 l22 = EvtLeptonVCurrent( l1->spParent( 1 ), l2->spParent( 1 ) );
68
69 EvtVector4C eps0 = p->eps( 0 );
70 EvtVector4C eps1 = p->eps( 1 );
71 EvtVector4C eps2 = p->eps( 2 );
72
73 double M2 = p->mass();
74 M2 *= M2;
75 double m2 = l1->mass();
76 m2 *= m2;
77
78 double norm = 1.0 / sqrt( 2 * M2 + 4 * m2 - 4 * m2 * m2 / M2 );
79
80 vertex( 0, 0, 0, norm * ( eps0 * l11 ) );
81 vertex( 0, 0, 1, norm * ( eps0 * l12 ) );
82 vertex( 0, 1, 0, norm * ( eps0 * l21 ) );
83 vertex( 0, 1, 1, norm * ( eps0 * l22 ) );
84
85 vertex( 1, 0, 0, norm * ( eps1 * l11 ) );
86 vertex( 1, 0, 1, norm * ( eps1 * l12 ) );
87 vertex( 1, 1, 0, norm * ( eps1 * l21 ) );
88 vertex( 1, 1, 1, norm * ( eps1 * l22 ) );
89
90 vertex( 2, 0, 0, norm * ( eps2 * l11 ) );
91 vertex( 2, 0, 1, norm * ( eps2 * l12 ) );
92 vertex( 2, 1, 0, norm * ( eps2 * l21 ) );
93 vertex( 2, 1, 1, norm * ( eps2 * l22 ) );
94
95 return;
96}
EvtVector4C EvtLeptonVCurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
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)
virtual EvtDiracSpinor spParent(int) const
EvtParticle * getDaug(int i)
double mass() const
virtual EvtVector4C eps(int i) const
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
void init()
Definition EvtVll.cc:41
void decay(EvtParticle *p)
Definition EvtVll.cc:55
virtual ~EvtVll()
Definition EvtVll.cc:35
void initProbMax()
Definition EvtVll.cc:53
EvtVll()
Definition EvtVll.hh:31
void getName(std::string &name)
Definition EvtVll.cc:37
EvtDecayBase * clone()
Definition EvtVll.cc:39
double double * m2
Definition qcdloop1.h:83