BOSS
7.0.9
BESIII Offline Software System
Loading...
Searching...
No Matches
BesEvtGen-00-04-08/src/EvtGen/EvtGenModels/EvtSVVHelAmp.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: EvtSVVHelAmp.cc
12
//
13
// Description: Routine to decay scalar -> 2 vectors
14
// by specifying the helicity amplitudes
15
//
16
// Modification history:
17
//
18
// RYD November 24, 1996 Module created
19
//
20
//------------------------------------------------------------------------
21
//
22
#include "EvtGenBase/EvtPatches.hh"
23
#include <stdlib.h>
24
#include "EvtGenBase/EvtParticle.hh"
25
#include "EvtGenBase/EvtGenKine.hh"
26
#include "EvtGenBase/EvtPDL.hh"
27
#include "EvtGenBase/EvtVector4C.hh"
28
#include "EvtGenBase/EvtTensor4C.hh"
29
#include "EvtGenBase/EvtVector3C.hh"
30
#include "EvtGenBase/EvtVector3R.hh"
31
#include "EvtGenBase/EvtTensor3C.hh"
32
#include "EvtGenBase/EvtReport.hh"
33
#include "EvtGenModels/EvtSVVHelAmp.hh"
34
#include "EvtGenBase/EvtId.hh"
35
#include <string>
36
37
EvtSVVHelAmp::~EvtSVVHelAmp
() {}
38
39
void
EvtSVVHelAmp::getName
(std::string& model_name){
40
41
model_name=
"SVV_HELAMP"
;
42
43
}
44
45
46
EvtDecayBase
*
EvtSVVHelAmp::clone
(){
47
48
return
new
EvtSVVHelAmp
;
49
50
}
51
52
void
EvtSVVHelAmp::init
(){
53
54
// check that there are 6 arguments
55
checkNArg
(6);
56
checkNDaug
(2);
57
58
checkSpinParent
(
EvtSpinType::SCALAR
);
59
60
checkSpinDaughter
(0,
EvtSpinType::VECTOR
);
61
checkSpinDaughter
(1,
EvtSpinType::VECTOR
);
62
63
}
64
65
66
void
EvtSVVHelAmp::initProbMax
(){
67
68
setProbMax
(
getArg
(0)*
getArg
(0)+
getArg
(2)*
getArg
(2)+
getArg
(4)*
getArg
(4));
69
70
}
71
72
73
void
EvtSVVHelAmp::decay
(
EvtParticle
*p){
74
75
SVVHel
(p,
_amp2
,
getDaug
(0),
getDaug
(1),
76
EvtComplex
(
getArg
(0)*
cos
(
getArg
(1)),
getArg
(0)*
sin
(
getArg
(1))),
77
EvtComplex
(
getArg
(2)*
cos
(
getArg
(3)),
getArg
(2)*
sin
(
getArg
(3))),
78
EvtComplex
(
getArg
(4)*
cos
(
getArg
(5)),
getArg
(4)*
sin
(
getArg
(5))));
79
80
return ;
81
82
}
83
84
85
void
EvtSVVHelAmp::SVVHel
(
EvtParticle
*parent,
EvtAmp
& amp,
EvtId
n_v1,
EvtId
n_v2,
86
const
EvtComplex
& hp,
const
EvtComplex
& h0,
87
const
EvtComplex
& hm){
88
89
// Routine to decay a scalar into two vectors. Started
90
// by ryd on Oct 17, 1996.
91
92
int
tndaug = 2;
93
EvtId
tdaug[2];
94
tdaug[0] = n_v1;
95
tdaug[1] = n_v2;
96
97
98
parent->
initializePhaseSpace
(tndaug,tdaug);
99
100
EvtParticle
*v1,*v2;
101
v1 = parent->
getDaug
(0);
102
v2 = parent->
getDaug
(1);
103
104
EvtVector4R
momv1 = v1->
getP4
();
105
//EvtVector4R momv2 = v2->getP4();
106
107
EvtVector3R
v1dir(momv1.
get
(1),momv1.
get
(2),momv1.
get
(3));
108
v1dir=v1dir/v1dir.d3mag();
109
110
EvtComplex
a=-0.5*(hp+hm);
111
EvtComplex
b
=
EvtComplex
(0.0,0.5)*(hp-hm);
112
EvtComplex
c=h0+0.5*(hp+hm);
113
114
EvtTensor3C
M=a*
EvtTensor3C::id
()+
115
b
*
eps
(v1dir)+
116
c*
directProd
(v1dir,v1dir);
117
118
EvtVector3C
t0=M.cont1(v1->
eps
(0).
vec
().
conj
());
119
EvtVector3C
t1=M.cont1(v1->
eps
(1).
vec
().
conj
());
120
EvtVector3C
t2=M.cont1(v1->
eps
(2).
vec
().
conj
());
121
122
EvtVector3C
eps0=v2->
eps
(0).
vec
().
conj
();
123
EvtVector3C
eps1=v2->
eps
(1).
vec
().
conj
();
124
EvtVector3C
eps2=v2->
eps
(2).
vec
().
conj
();
125
126
amp.
vertex
(0,0,t0*eps0);
127
amp.
vertex
(0,1,t0*eps1);
128
amp.
vertex
(0,2,t0*eps2);
129
130
amp.
vertex
(1,0,t1*eps0);
131
amp.
vertex
(1,1,t1*eps1);
132
amp.
vertex
(1,2,t1*eps2);
133
134
amp.
vertex
(2,0,t2*eps0);
135
amp.
vertex
(2,1,t2*eps1);
136
amp.
vertex
(2,2,t2*eps2);
137
138
return ;
139
140
}
141
142
sin
double sin(const BesAngle a)
Definition:
BesAngle.h:210
cos
double cos(const BesAngle a)
Definition:
BesAngle.h:213
directProd
Evt3Rank3C directProd(const EvtVector3C &c1, const EvtVector3C &c2, const EvtVector3C &c3)
eps
EvtTensor3C eps(const EvtVector3R &v)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtTensor3C.cc:307
EvtAmp
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtAmp.hh:30
EvtAmp::vertex
void vertex(const EvtComplex &)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtAmp.cc:477
EvtComplex
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtComplex.hh:28
EvtDecayAmp::_amp2
EvtAmp _amp2
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtDecayAmp.hh:66
EvtDecayBase
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtDecayBase.hh:33
EvtDecayBase::checkSpinDaughter
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtDecayBase.cc:533
EvtDecayBase::checkSpinParent
void checkSpinParent(EvtSpinType::spintype sp)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtDecayBase.cc:520
EvtDecayBase::getArg
double getArg(int j)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtDecayBase.cc:564
EvtDecayBase::setProbMax
void setProbMax(double prbmx)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtDecayBase.cc:297
EvtDecayBase::checkNDaug
void checkNDaug(int d1, int d2=-1)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtDecayBase.cc:504
EvtDecayBase::checkNArg
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtDecayBase.cc:482
EvtDecayBase::getDaug
EvtId getDaug(int i)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtDecayBase.hh:66
EvtId
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtId.hh:27
EvtParticle
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtParticle.hh:42
EvtParticle::getP4
const EvtVector4R & getP4() const
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtParticle.cc:121
EvtParticle::getDaug
EvtParticle * getDaug(int i)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtParticle.cc:85
EvtParticle::eps
virtual EvtVector4C eps(int i) const
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtParticle.cc:576
EvtParticle::initializePhaseSpace
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtParticle.cc:1071
EvtSVVHelAmp::SVVHel
static void SVVHel(EvtParticle *parent, EvtAmp &, EvtId n_v1, EvtId n_v2, const EvtComplex &hp, const EvtComplex &h0, const EvtComplex &hm)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenModels/EvtSVVHelAmp.cc:85
EvtSVVHelAmp::decay
void decay(EvtParticle *p)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenModels/EvtSVVHelAmp.cc:73
EvtSVVHelAmp::clone
EvtDecayBase * clone()
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenModels/EvtSVVHelAmp.cc:46
EvtSVVHelAmp::getName
void getName(std::string &name)
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenModels/EvtSVVHelAmp.cc:39
EvtSVVHelAmp::EvtSVVHelAmp
EvtSVVHelAmp()
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenModels/EvtSVVHelAmp.hh:39
EvtSVVHelAmp::init
void init()
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenModels/EvtSVVHelAmp.cc:52
EvtSVVHelAmp::~EvtSVVHelAmp
virtual ~EvtSVVHelAmp()
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenModels/EvtSVVHelAmp.cc:37
EvtSVVHelAmp::initProbMax
void initProbMax()
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenModels/EvtSVVHelAmp.cc:66
EvtSpinType::SCALAR
@ SCALAR
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtSpinType.hh:31
EvtSpinType::VECTOR
@ VECTOR
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtSpinType.hh:31
EvtTensor3C
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtTensor3C.hh:53
EvtTensor3C::id
static const EvtTensor3C & id()
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtTensor3C.cc:330
EvtVector3C
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtVector3C.hh:29
EvtVector3C::conj
EvtVector3C conj() const
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtVector3C.hh:171
EvtVector3R
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtVector3R.hh:28
EvtVector4C::vec
EvtVector3C vec() const
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtVector4C.hh:114
EvtVector4R
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtVector4R.hh:29
EvtVector4R::get
double get(int i) const
Definition:
bak-BesEvtGen-00-04-08/src/EvtGen/EvtGenBase/EvtVector4R.hh:179
b
const double b
Definition:
slope.cxx:9
source
Generator
BesEvtGen
BesEvtGen-00-04-08
src
EvtGen
EvtGenModels
EvtSVVHelAmp.cc
Generated by
1.9.6