BOSS
7.0.7
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtBtoKpiCPiso.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: EvtBtoKpiCPiso.cc
12
//
13
// Description: Routine to decay B -> K pi with isospin amplitudes
14
//
15
// Modification history:
16
//
17
// RYD/NK Febuary 7, 1998 Module created
18
//
19
//------------------------------------------------------------------------
20
//
21
#include "
EvtGenBase/EvtPatches.hh
"
22
#include <stdlib.h>
23
#include "
EvtGenBase/EvtParticle.hh
"
24
#include "
EvtGenBase/EvtGenKine.hh
"
25
#include "
EvtGenBase/EvtPDL.hh
"
26
#include "
EvtGenBase/EvtReport.hh
"
27
#include "
EvtGenModels/EvtBtoKpiCPiso.hh
"
28
#include <string>
29
30
EvtBtoKpiCPiso::~EvtBtoKpiCPiso
() {}
31
32
void
EvtBtoKpiCPiso::getName
(std::string& model_name){
33
34
model_name=
"BTOKPI_CP_ISO"
;
35
36
}
37
38
39
EvtDecayBase
*
EvtBtoKpiCPiso::clone
(){
40
41
return
new
EvtBtoKpiCPiso
;
42
43
}
44
45
46
void
EvtBtoKpiCPiso::init
(){
47
48
// check that there are 15 arguments
49
checkNArg
(15);
50
checkNDaug
(2);
51
52
checkSpinParent
(
EvtSpinType::SCALAR
);
53
54
checkSpinDaughter
(0,
EvtSpinType::SCALAR
);
55
checkSpinDaughter
(1,
EvtSpinType::SCALAR
);
56
}
57
58
59
void
EvtBtoKpiCPiso::initProbMax
() {
60
61
//this might need to be revised
62
63
//added by Lange Jan4,2000
64
static
EvtId
PI0=
EvtPDL::getId
(
"pi0"
);
65
static
EvtId
PIP=
EvtPDL::getId
(
"pi+"
);
66
static
EvtId
PIM=
EvtPDL::getId
(
"pi+"
);
67
static
EvtId
K0=
EvtPDL::getId
(
"K0"
);
68
static
EvtId
KB=
EvtPDL::getId
(
"anti-K0"
);
69
static
EvtId
KP=
EvtPDL::getId
(
"K+"
);
70
static
EvtId
KM=
EvtPDL::getId
(
"K-"
);
71
72
if
(((
getDaug
(0)==PI0) && (
getDaug
(1)==KP)) || ((
getDaug
(0)==KP) && (
getDaug
(1)==PI0))) {
73
setProbMax
(2.0*(
getArg
(2)*
getArg
(2) +
getArg
(10)*
getArg
(10)));
74
}
75
76
if
(((
getDaug
(0)==PI0) && (
getDaug
(1)==KM)) || ((
getDaug
(0)==KM) && (
getDaug
(1)==PI0))) {
77
setProbMax
( 2.0*(
getArg
(4)*
getArg
(4) +
getArg
(12)*
getArg
(12)));
78
}
79
80
if
(((
getDaug
(0)==PIP) && (
getDaug
(1)==K0)) || ((
getDaug
(0)==K0) && (
getDaug
(1)==PIP))) {
81
setProbMax
( 4.0*(
getArg
(6)*
getArg
(6) +
getArg
(10)*
getArg
(10)));
82
}
83
84
if
(((
getDaug
(0)==PIM) && (
getDaug
(1)==KB)) || ((
getDaug
(0)==KB) && (
getDaug
(1)==PIM))) {
85
setProbMax
( 4.0*(
getArg
(8)*
getArg
(8) +
getArg
(12)*
getArg
(12)));
86
}
87
88
if
(((
getDaug
(0)==PI0) && (
getDaug
(1)==K0)) || ((
getDaug
(0)==K0) && (
getDaug
(1)==PI0))) {
89
setProbMax
( 2.0*(
getArg
(2)*
getArg
(2) +
getArg
(10)*
getArg
(10)));
90
}
91
92
if
(((
getDaug
(0)==PI0) && (
getDaug
(1)==KB)) || ((
getDaug
(0)==KB) && (
getDaug
(1)==PI0))) {
93
setProbMax
( 2.0*(
getArg
(4)*
getArg
(4) +
getArg
(12)*
getArg
(12)));
94
}
95
96
if
(((
getDaug
(0)==PIM) && (
getDaug
(1)==KP)) || ((
getDaug
(0)==KP) && (
getDaug
(1)==PIM))) {
97
setProbMax
( 4.0*(
getArg
(6)*
getArg
(6) +
getArg
(10)*
getArg
(10)));
98
}
99
100
if
(((
getDaug
(0)==PIP) && (
getDaug
(1)==KM)) || ((
getDaug
(0)==KM) && (
getDaug
(1)==PIP))) {
101
setProbMax
( 4.0*(
getArg
(8)*
getArg
(8) +
getArg
(12)*
getArg
(12)));
102
}
103
}
104
105
void
EvtBtoKpiCPiso::decay
(
EvtParticle
*p ){
106
107
108
p->
initializePhaseSpace
(
getNDaug
(),
getDaugs
());
109
//added by Lange Jan4,2000
110
static
EvtId
PI0=
EvtPDL::getId
(
"pi0"
);
111
static
EvtId
PIP=
EvtPDL::getId
(
"pi+"
);
112
static
EvtId
PIM=
EvtPDL::getId
(
"pi+"
);
113
static
EvtId
K0=
EvtPDL::getId
(
"K0"
);
114
static
EvtId
KB=
EvtPDL::getId
(
"anti-K0"
);
115
static
EvtId
KP=
EvtPDL::getId
(
"K+"
);
116
static
EvtId
KM=
EvtPDL::getId
(
"K-"
);
117
118
119
EvtComplex
A;
120
EvtComplex
U, Ubar, V, Vbar, W, Wbar;
121
122
U =
EvtComplex
(
getArg
(2)*
cos
(
getArg
(3)),
getArg
(2)*
sin
(
getArg
(3)));
123
Ubar =
EvtComplex
(
getArg
(4)*
cos
(
getArg
(5)),
getArg
(4)*
sin
(
getArg
(5)));
124
V =
EvtComplex
(
getArg
(6)*
cos
(
getArg
(7)),
getArg
(6)*
sin
(
getArg
(7)));
125
Vbar =
EvtComplex
(
getArg
(8)*
cos
(
getArg
(9)),
getArg
(8)*
sin
(
getArg
(9)));
126
W =
EvtComplex
(
getArg
(10)*
cos
(
getArg
(11)),
getArg
(10)*
sin
(
getArg
(11)));
127
Wbar =
EvtComplex
(
getArg
(12)*
cos
(
getArg
(13)),
getArg
(12)*
sin
(
getArg
(13)));
128
129
//depending on what combination of K pi we have, there will be different
130
//A and Abar (only A given in comments!)
131
132
if
(((
getDaug
(0)==PI0) && (
getDaug
(1)==KP)) || ((
getDaug
(0)==KP) && (
getDaug
(1)==PI0))) {
133
134
//pi0 K+, so U - W
135
136
A = U - W;
137
}
138
139
if
(((
getDaug
(0)==PI0) && (
getDaug
(1)==KM)) || ((
getDaug
(0)==KM) && (
getDaug
(1)==PI0))) {
140
141
//pi0 K-, so Ubar - Wbar
142
143
A = Ubar - Wbar;
144
}
145
146
if
(((
getDaug
(0)==PIP) && (
getDaug
(1)==K0)) || ((
getDaug
(0)==K0) && (
getDaug
(1)==PIP))) {
147
148
//pi+ K0, so V + W
149
150
A = sqrt(2.0)*(V + W);
151
}
152
153
if
(((
getDaug
(0)==PIM) && (
getDaug
(1)==KB)) || ((
getDaug
(0)==KB) && (
getDaug
(1)==PIM))) {
154
155
//pi- K0bar, so Vbar + Wbar
156
A = sqrt(2.0)*(Vbar + Wbar);
157
}
158
159
if
(((
getDaug
(0)==PI0) && (
getDaug
(1)==K0)) || ((
getDaug
(0)==K0) && (
getDaug
(1)==PI0))) {
160
161
//pi0 K0, so U + W
162
163
A= U + W;
164
}
165
166
if
(((
getDaug
(0)==PI0) && (
getDaug
(1)==KB)) || ((
getDaug
(0)==KB) && (
getDaug
(1)==PI0))) {
167
168
A = Ubar + Wbar;
169
}
170
171
if
(((
getDaug
(0)==PIM) && (
getDaug
(1)==KP)) || ((
getDaug
(0)==KP) && (
getDaug
(1)==PIM))) {
172
173
//pi- K+, so V - W
174
175
A = sqrt(2.0)*(V - W);
176
}
177
178
if
(((
getDaug
(0)==PIP) && (
getDaug
(1)==KM)) || ((
getDaug
(0)==KM) && (
getDaug
(1)==PIP))) {
179
180
A = sqrt(2.0)*(Vbar - Wbar);
181
}
182
183
vertex
(A);
184
185
return ;
186
}
187
sin
double sin(const BesAngle a)
Definition:
BesAngle.h:210
cos
double cos(const BesAngle a)
Definition:
BesAngle.h:213
EvtBtoKpiCPiso.hh
EvtGenKine.hh
EvtPDL.hh
EvtParticle.hh
EvtPatches.hh
EvtReport.hh
EvtBtoKpiCPiso::init
void init()
Definition:
EvtBtoKpiCPiso.cc:46
EvtBtoKpiCPiso::clone
EvtDecayBase * clone()
Definition:
EvtBtoKpiCPiso.cc:39
EvtBtoKpiCPiso::getName
void getName(std::string &name)
Definition:
EvtBtoKpiCPiso.cc:32
EvtBtoKpiCPiso::initProbMax
void initProbMax()
Definition:
EvtBtoKpiCPiso.cc:59
EvtBtoKpiCPiso::~EvtBtoKpiCPiso
virtual ~EvtBtoKpiCPiso()
Definition:
EvtBtoKpiCPiso.cc:30
EvtBtoKpiCPiso::decay
void decay(EvtParticle *p)
Definition:
EvtBtoKpiCPiso.cc:105
EvtBtoKpiCPiso::EvtBtoKpiCPiso
EvtBtoKpiCPiso()
Definition:
EvtBtoKpiCPiso.hh:32
EvtComplex
Definition:
EvtComplex.hh:28
EvtDecayAmp::vertex
void vertex(const EvtComplex &)
Definition:
EvtDecayAmp.hh:37
EvtDecayBase
Definition:
EvtDecayBase.hh:33
EvtDecayBase::checkSpinDaughter
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
Definition:
EvtDecayBase.cc:533
EvtDecayBase::checkSpinParent
void checkSpinParent(EvtSpinType::spintype sp)
Definition:
EvtDecayBase.cc:520
EvtDecayBase::getArg
double getArg(int j)
Definition:
EvtDecayBase.cc:564
EvtDecayBase::setProbMax
void setProbMax(double prbmx)
Definition:
EvtDecayBase.cc:297
EvtDecayBase::getNDaug
int getNDaug()
Definition:
EvtDecayBase.hh:64
EvtDecayBase::checkNDaug
void checkNDaug(int d1, int d2=-1)
Definition:
EvtDecayBase.cc:504
EvtDecayBase::getDaugs
EvtId * getDaugs()
Definition:
EvtDecayBase.hh:65
EvtDecayBase::checkNArg
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
Definition:
EvtDecayBase.cc:482
EvtDecayBase::getDaug
EvtId getDaug(int i)
Definition:
EvtDecayBase.hh:66
EvtId
Definition:
EvtId.hh:27
EvtPDL::getId
static EvtId getId(const std::string &name)
Definition:
EvtPDL.cc:287
EvtParticle
Definition:
EvtParticle.hh:42
EvtParticle::initializePhaseSpace
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
Definition:
EvtParticle.cc:1071
EvtSpinType::SCALAR
@ SCALAR
Definition:
EvtSpinType.hh:31
source
Generator
BesEvtGen
BesEvtGen-00-04-08
src
EvtGen
EvtGenModels
EvtBtoKpiCPiso.cc
Generated by
1.9.6