BOSS 7.0.1
BESIII Offline Software System
Loading...
Searching...
No Matches
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//
23#include <stdlib.h>
26#include "EvtGenBase/EvtPDL.hh"
34#include "EvtGenBase/EvtId.hh"
35#include <string>
36
38
39void EvtSVVHelAmp::getName(std::string& model_name){
40
41 model_name="SVV_HELAMP";
42
43}
44
45
47
48 return new EvtSVVHelAmp;
49
50}
51
53
54 // check that there are 6 arguments
55 checkNArg(6);
56 checkNDaug(2);
57
59
62
63}
64
65
67
69
70}
71
72
74
78 EvtComplex(getArg(4)*cos(getArg(5)),getArg(4)*sin(getArg(5))));
79
80 return ;
81
82}
83
84
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
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
Evt3Rank3C directProd(const EvtVector3C &c1, const EvtVector3C &c2, const EvtVector3C &c3)
EvtTensor3C eps(const EvtVector3R &v)
Definition: EvtTensor3C.cc:307
double sin(const BesAngle a)
double cos(const BesAngle a)
Definition: EvtAmp.hh:30
void vertex(const EvtComplex &amp)
Definition: EvtAmp.cc:477
EvtAmp _amp2
Definition: EvtDecayAmp.hh:66
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
double getArg(int j)
void setProbMax(double prbmx)
void checkNDaug(int d1, int d2=-1)
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
EvtId getDaug(int i)
Definition: EvtDecayBase.hh:66
Definition: EvtId.hh:27
const EvtVector4R & getP4() const
Definition: EvtParticle.cc:121
EvtParticle * getDaug(int i)
Definition: EvtParticle.cc:85
virtual EvtVector4C eps(int i) const
Definition: EvtParticle.cc:576
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
static void SVVHel(EvtParticle *parent, EvtAmp &amp, EvtId n_v1, EvtId n_v2, const EvtComplex &hp, const EvtComplex &h0, const EvtComplex &hm)
Definition: EvtSVVHelAmp.cc:85
void decay(EvtParticle *p)
Definition: EvtSVVHelAmp.cc:73
EvtDecayBase * clone()
Definition: EvtSVVHelAmp.cc:46
void getName(std::string &name)
Definition: EvtSVVHelAmp.cc:39
virtual ~EvtSVVHelAmp()
Definition: EvtSVVHelAmp.cc:37
void initProbMax()
Definition: EvtSVVHelAmp.cc:66
static const EvtTensor3C & id()
Definition: EvtTensor3C.cc:330
EvtVector3C conj() const
Definition: EvtVector3C.hh:171
double d3mag() const
Definition: EvtVector3R.cc:95
EvtVector3C vec() const
Definition: EvtVector4C.hh:114
double get(int i) const
Definition: EvtVector4R.hh:179