Page Menu
Home
HEPForge
Search
Configure Global Search
Log In
Files
F19250997
EvtISGW2.cpp
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
17 KB
Referenced Files
None
Subscribers
None
EvtISGW2.cpp
View Options
//--------------------------------------------------------------------------
//
// Environment:
// This software is part of the EvtGen package developed jointly
// for the BaBar and CLEO collaborations. If you use all or part
// of it, please give an appropriate acknowledgement.
//
// Copyright Information: See EvtGen/COPYRIGHT
// Copyright (C) 1998 Caltech, UCSB
//
// Module: EvtISGW2.cc
//
// Description: Routine to implement semileptonic decays according
// to the model ISGW2
//
// Modification history:
//
// DJL/RYD September 25, 1996 Module created
//
//------------------------------------------------------------------------
//
#include
"EvtGenBase/EvtPatches.hh"
#include
<stdlib.h>
#include
"EvtGenBase/EvtParticle.hh"
#include
"EvtGenBase/EvtGenKine.hh"
#include
"EvtGenBase/EvtPDL.hh"
#include
"EvtGenBase/EvtReport.hh"
#include
"EvtGenModels/EvtISGW2.hh"
#include
"EvtGenBase/EvtConst.hh"
#include
"EvtGenBase/EvtIdSet.hh"
#include
<string>
#include
"EvtGenModels/EvtISGW2FF.hh"
#include
"EvtGenBase/EvtSemiLeptonicScalarAmp.hh"
#include
"EvtGenBase/EvtSemiLeptonicVectorAmp.hh"
#include
"EvtGenBase/EvtSemiLeptonicTensorAmp.hh"
EvtISGW2
::
EvtISGW2
()
:
isgw2ffmodel
(
0
)
,
calcamp
(
0
)
{}
EvtISGW2
::~
EvtISGW2
()
{
delete
isgw2ffmodel
;
isgw2ffmodel
=
0
;
delete
calcamp
;
calcamp
=
0
;
}
std
::
string
EvtISGW2
::
getName
(){
return
"ISGW2"
;
}
EvtDecayBase
*
EvtISGW2
::
clone
(){
return
new
EvtISGW2
;
}
void
EvtISGW2
::
decay
(
EvtParticle
*
p
){
p
->
initializePhaseSpace
(
getNDaug
(),
getDaugs
());
calcamp
->
CalcAmp
(
p
,
_amp2
,
isgw2ffmodel
);
}
void
EvtISGW2
::
initProbMax
()
{
//added by Lange Jan4,2000
static
EvtId
EM
=
EvtPDL
::
getId
(
"e-"
);
static
EvtId
EP
=
EvtPDL
::
getId
(
"e+"
);
static
EvtId
MUM
=
EvtPDL
::
getId
(
"mu-"
);
static
EvtId
MUP
=
EvtPDL
::
getId
(
"mu+"
);
static
EvtId
TAUM
=
EvtPDL
::
getId
(
"tau-"
);
static
EvtId
TAUP
=
EvtPDL
::
getId
(
"tau+"
);
static
EvtId
BP
=
EvtPDL
::
getId
(
"B+"
);
static
EvtId
BM
=
EvtPDL
::
getId
(
"B-"
);
static
EvtId
B0
=
EvtPDL
::
getId
(
"B0"
);
static
EvtId
B0B
=
EvtPDL
::
getId
(
"anti-B0"
);
static
EvtId
BS0
=
EvtPDL
::
getId
(
"B_s0"
);
static
EvtId
BSB
=
EvtPDL
::
getId
(
"anti-B_s0"
);
static
EvtId
BCP
=
EvtPDL
::
getId
(
"B_c+"
);
static
EvtId
BCM
=
EvtPDL
::
getId
(
"B_c-"
);
static
EvtId
DST0
=
EvtPDL
::
getId
(
"D*0"
);
static
EvtId
DSTB
=
EvtPDL
::
getId
(
"anti-D*0"
);
static
EvtId
DSTP
=
EvtPDL
::
getId
(
"D*+"
);
static
EvtId
DSTM
=
EvtPDL
::
getId
(
"D*-"
);
static
EvtId
D0
=
EvtPDL
::
getId
(
"D0"
);
static
EvtId
D0B
=
EvtPDL
::
getId
(
"anti-D0"
);
static
EvtId
DP
=
EvtPDL
::
getId
(
"D+"
);
static
EvtId
DM
=
EvtPDL
::
getId
(
"D-"
);
static
EvtId
D1P1P
=
EvtPDL
::
getId
(
"D_1+"
);
static
EvtId
D1P1N
=
EvtPDL
::
getId
(
"D_1-"
);
static
EvtId
D1P10
=
EvtPDL
::
getId
(
"D_10"
);
static
EvtId
D1P1B
=
EvtPDL
::
getId
(
"anti-D_10"
);
static
EvtId
D3P2P
=
EvtPDL
::
getId
(
"D_2*+"
);
static
EvtId
D3P2N
=
EvtPDL
::
getId
(
"D_2*-"
);
static
EvtId
D3P20
=
EvtPDL
::
getId
(
"D_2*0"
);
static
EvtId
D3P2B
=
EvtPDL
::
getId
(
"anti-D_2*0"
);
static
EvtId
D3P1P
=
EvtPDL
::
getId
(
"D'_1+"
);
static
EvtId
D3P1N
=
EvtPDL
::
getId
(
"D'_1-"
);
static
EvtId
D3P10
=
EvtPDL
::
getId
(
"D'_10"
);
static
EvtId
D3P1B
=
EvtPDL
::
getId
(
"anti-D'_10"
);
static
EvtId
D3P0P
=
EvtPDL
::
getId
(
"D_0*+"
);
static
EvtId
D3P0N
=
EvtPDL
::
getId
(
"D_0*-"
);
static
EvtId
D3P00
=
EvtPDL
::
getId
(
"D_0*0"
);
static
EvtId
D3P0B
=
EvtPDL
::
getId
(
"anti-D_0*0"
);
static
EvtId
D21S0P
=
EvtPDL
::
getId
(
"D(2S)+"
);
static
EvtId
D21S0N
=
EvtPDL
::
getId
(
"D(2S)-"
);
static
EvtId
D21S00
=
EvtPDL
::
getId
(
"D(2S)0"
);
static
EvtId
D21S0B
=
EvtPDL
::
getId
(
"anti-D(2S)0"
);
static
EvtId
D23S1P
=
EvtPDL
::
getId
(
"D*(2S)+"
);
static
EvtId
D23S1N
=
EvtPDL
::
getId
(
"D*(2S)-"
);
static
EvtId
D23S10
=
EvtPDL
::
getId
(
"D*(2S)0"
);
static
EvtId
D23S1B
=
EvtPDL
::
getId
(
"anti-D*(2S)0"
);
static
EvtId
RHO2S0
=
EvtPDL
::
getId
(
"rho(2S)0"
);
static
EvtId
RHO2SP
=
EvtPDL
::
getId
(
"rho(2S)+"
);
static
EvtId
RHO2SM
=
EvtPDL
::
getId
(
"rho(2S)-"
);
static
EvtId
OMEG2S
=
EvtPDL
::
getId
(
"omega(2S)"
);
static
EvtId
ETA2S
=
EvtPDL
::
getId
(
"eta(2S)"
);
static
EvtId
PI2S0
=
EvtPDL
::
getId
(
"pi(2S)0"
);
static
EvtId
PI2SP
=
EvtPDL
::
getId
(
"pi(2S)+"
);
static
EvtId
PI2SM
=
EvtPDL
::
getId
(
"pi(2S)-"
);
static
EvtId
PIP
=
EvtPDL
::
getId
(
"pi+"
);
static
EvtId
PIM
=
EvtPDL
::
getId
(
"pi-"
);
static
EvtId
PI0
=
EvtPDL
::
getId
(
"pi0"
);
static
EvtId
RHOP
=
EvtPDL
::
getId
(
"rho+"
);
static
EvtId
RHOM
=
EvtPDL
::
getId
(
"rho-"
);
static
EvtId
RHO0
=
EvtPDL
::
getId
(
"rho0"
);
static
EvtId
A2P
=
EvtPDL
::
getId
(
"a_2+"
);
static
EvtId
A2M
=
EvtPDL
::
getId
(
"a_2-"
);
static
EvtId
A20
=
EvtPDL
::
getId
(
"a_20"
);
static
EvtId
A1P
=
EvtPDL
::
getId
(
"a_1+"
);
static
EvtId
A1M
=
EvtPDL
::
getId
(
"a_1-"
);
static
EvtId
A10
=
EvtPDL
::
getId
(
"a_10"
);
static
EvtId
A0P
=
EvtPDL
::
getId
(
"a_0+"
);
static
EvtId
A0M
=
EvtPDL
::
getId
(
"a_0-"
);
static
EvtId
A00
=
EvtPDL
::
getId
(
"a_00"
);
static
EvtId
B1P
=
EvtPDL
::
getId
(
"b_1+"
);
static
EvtId
B1M
=
EvtPDL
::
getId
(
"b_1-"
);
static
EvtId
B10
=
EvtPDL
::
getId
(
"b_10"
);
static
EvtId
H1
=
EvtPDL
::
getId
(
"h_1"
);
static
EvtId
H1PR
=
EvtPDL
::
getId
(
"h'_1"
);
static
EvtId
F1
=
EvtPDL
::
getId
(
"f_1"
);
static
EvtId
F1PR
=
EvtPDL
::
getId
(
"f'_1"
);
static
EvtId
F0
=
EvtPDL
::
getId
(
"f_0"
);
static
EvtId
F0PR
=
EvtPDL
::
getId
(
"f'_0"
);
static
EvtId
F2
=
EvtPDL
::
getId
(
"f_2"
);
static
EvtId
F2PR
=
EvtPDL
::
getId
(
"f'_2"
);
static
EvtId
ETA
=
EvtPDL
::
getId
(
"eta"
);
static
EvtId
ETAPR
=
EvtPDL
::
getId
(
"eta'"
);
static
EvtId
OMEG
=
EvtPDL
::
getId
(
"omega"
);
static
EvtId
KP
=
EvtPDL
::
getId
(
"K+"
);
static
EvtId
KM
=
EvtPDL
::
getId
(
"K-"
);
static
EvtId
K0
=
EvtPDL
::
getId
(
"K0"
);
static
EvtId
KB
=
EvtPDL
::
getId
(
"anti-K0"
);
static
EvtId
K0S
=
EvtPDL
::
getId
(
"K_S0"
);
static
EvtId
K0L
=
EvtPDL
::
getId
(
"K_L0"
);
static
EvtId
KSTP
=
EvtPDL
::
getId
(
"K*+"
);
static
EvtId
KSTM
=
EvtPDL
::
getId
(
"K*-"
);
static
EvtId
KST0
=
EvtPDL
::
getId
(
"K*0"
);
static
EvtId
KSTB
=
EvtPDL
::
getId
(
"anti-K*0"
);
static
EvtId
K1P
=
EvtPDL
::
getId
(
"K_1+"
);
static
EvtId
K1M
=
EvtPDL
::
getId
(
"K_1-"
);
static
EvtId
K10
=
EvtPDL
::
getId
(
"K_10"
);
static
EvtId
K1B
=
EvtPDL
::
getId
(
"anti-K_10"
);
static
EvtId
K1STP
=
EvtPDL
::
getId
(
"K'_1+"
);
static
EvtId
K1STM
=
EvtPDL
::
getId
(
"K'_1-"
);
static
EvtId
K1ST0
=
EvtPDL
::
getId
(
"K'_10"
);
static
EvtId
K1STB
=
EvtPDL
::
getId
(
"anti-K'_10"
);
static
EvtId
K2STP
=
EvtPDL
::
getId
(
"K_2*+"
);
static
EvtId
K2STM
=
EvtPDL
::
getId
(
"K_2*-"
);
static
EvtId
K2ST0
=
EvtPDL
::
getId
(
"K_2*0"
);
static
EvtId
K2STB
=
EvtPDL
::
getId
(
"anti-K_2*0"
);
static
EvtId
K0STP
=
EvtPDL
::
getId
(
"K_0*+"
);
static
EvtId
K0STM
=
EvtPDL
::
getId
(
"K_0*-"
);
static
EvtId
K0ST0
=
EvtPDL
::
getId
(
"K_0*0"
);
static
EvtId
K0STB
=
EvtPDL
::
getId
(
"anti-K_0*0"
);
static
EvtId
PHI
=
EvtPDL
::
getId
(
"phi"
);
static
EvtId
DSP
=
EvtPDL
::
getId
(
"D_s+"
);
static
EvtId
DSM
=
EvtPDL
::
getId
(
"D_s-"
);
static
EvtId
DSSTP
=
EvtPDL
::
getId
(
"D_s*+"
);
static
EvtId
DSSTM
=
EvtPDL
::
getId
(
"D_s*-"
);
static
EvtId
DS1P
=
EvtPDL
::
getId
(
"D_s1+"
);
static
EvtId
DS1M
=
EvtPDL
::
getId
(
"D_s1-"
);
static
EvtId
DS0STP
=
EvtPDL
::
getId
(
"D_s0*+"
);
static
EvtId
DS0STM
=
EvtPDL
::
getId
(
"D_s0*-"
);
static
EvtId
DPS1P
=
EvtPDL
::
getId
(
"D'_s1+"
);
static
EvtId
DPS1M
=
EvtPDL
::
getId
(
"D'_s1-"
);
static
EvtId
DS2STP
=
EvtPDL
::
getId
(
"D_s2*+"
);
static
EvtId
DS2STM
=
EvtPDL
::
getId
(
"D_s2*-"
);
EvtId
parnum
,
mesnum
,
lnum
;
parnum
=
getParentId
();
mesnum
=
getDaug
(
0
);
lnum
=
getDaug
(
1
);
if
(
parnum
==
BP
||
parnum
==
BM
||
parnum
==
B0
||
parnum
==
B0B
||
parnum
==
BS0
||
parnum
==
BSB
)
{
if
(
mesnum
==
DST0
||
mesnum
==
DSTP
||
mesnum
==
DSTB
||
mesnum
==
DSTM
||
mesnum
==
DSSTP
||
mesnum
==
DSSTM
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
10000.0
);
return
;
}
if
(
lnum
==
TAUP
||
lnum
==
TAUM
)
{
setProbMax
(
7000.0
);
return
;
}
}
if
(
mesnum
==
D0
||
mesnum
==
DP
||
mesnum
==
D0B
||
mesnum
==
DM
||
mesnum
==
DSP
||
mesnum
==
DSM
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
4000.0
);
return
;
}
if
(
lnum
==
TAUP
||
lnum
==
TAUM
)
{
setProbMax
(
3500.0
);
return
;
}
}
if
(
mesnum
==
D1P1P
||
mesnum
==
D1P1N
||
mesnum
==
D1P10
||
mesnum
==
D1P1B
||
mesnum
==
DS1P
||
mesnum
==
DS1M
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
1300.0
);
return
;
}
if
(
lnum
==
TAUP
||
lnum
==
TAUM
)
{
setProbMax
(
480.0
);
return
;
}
}
if
(
mesnum
==
D3P1P
||
mesnum
==
D3P1N
||
mesnum
==
D3P10
||
mesnum
==
D3P1B
||
mesnum
==
DS0STP
||
mesnum
==
DS0STM
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
450.0
);
return
;
}
if
(
lnum
==
TAUP
||
lnum
==
TAUM
)
{
setProbMax
(
73.0
);
//???
return
;
}
}
if
(
mesnum
==
D3P0P
||
mesnum
==
D3P0N
||
mesnum
==
D3P00
||
mesnum
==
D3P0B
||
mesnum
==
DPS1P
||
mesnum
==
DPS1M
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
200.0
);
return
;
}
if
(
lnum
==
TAUP
||
lnum
==
TAUM
)
{
setProbMax
(
90.0
);
return
;
}
}
if
(
mesnum
==
D3P2P
||
mesnum
==
D3P2N
||
mesnum
==
D3P20
||
mesnum
==
D3P2B
||
mesnum
==
DS2STP
||
mesnum
==
DS2STM
)
{
if
(
mesnum
==
DS2STP
||
mesnum
==
DS2STM
)
{
setProbMax
(
550.0
);
return
;
}
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
400.0
);
return
;
}
if
(
lnum
==
TAUP
||
lnum
==
TAUM
)
{
setProbMax
(
220.0
);
return
;
}
}
if
(
mesnum
==
D21S0P
||
mesnum
==
D21S0N
||
mesnum
==
D21S00
||
mesnum
==
D21S0B
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
16.0
);
return
;
}
if
(
lnum
==
TAUP
||
lnum
==
TAUM
)
{
setProbMax
(
3.0
);
return
;
}
}
if
(
mesnum
==
D23S1P
||
mesnum
==
D23S1N
||
mesnum
==
D23S10
||
mesnum
==
D23S1B
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
500.0
);
return
;
}
if
(
lnum
==
TAUP
||
lnum
==
TAUM
)
{
setProbMax
(
250.0
);
return
;
}
}
if
(
mesnum
==
RHOP
||
mesnum
==
RHOM
||
mesnum
==
RHO0
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
6500.0
);
return
;
}
if
(
lnum
==
TAUP
||
lnum
==
TAUM
)
{
setProbMax
(
6000.0
);
return
;
}
}
if
(
mesnum
==
OMEG
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
6800.0
);
return
;
}
if
(
lnum
==
TAUP
||
lnum
==
TAUM
)
{
setProbMax
(
6000.0
);
return
;
}
}
if
(
mesnum
==
PIP
||
mesnum
==
PIM
||
mesnum
==
PI0
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
1200.0
);
return
;
}
if
(
lnum
==
TAUP
||
lnum
==
TAUM
)
{
setProbMax
(
1150.0
);
return
;
}
}
if
(
mesnum
==
ETA
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
1800.0
);
return
;
}
if
(
lnum
==
TAUP
||
lnum
==
TAUM
)
{
setProbMax
(
1900.0
);
return
;
}
}
if
(
mesnum
==
ETAPR
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
3000.0
);
return
;
}
if
(
lnum
==
TAUP
||
lnum
==
TAUM
)
{
setProbMax
(
3000.0
);
return
;
}
}
if
(
mesnum
==
B1P
||
mesnum
==
B1M
||
mesnum
==
B10
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
2500.0
);
return
;
}
if
(
lnum
==
TAUP
||
lnum
==
TAUM
)
{
setProbMax
(
1700.0
);
return
;
}
}
if
(
mesnum
==
A0P
||
mesnum
==
A0M
||
mesnum
==
A00
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
80.0
);
return
;
}
if
(
lnum
==
TAUP
||
lnum
==
TAUM
)
{
setProbMax
(
62.0
);
return
;
}
}
if
(
mesnum
==
A1P
||
mesnum
==
A1M
||
mesnum
==
A10
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
4500.0
);
return
;
}
if
(
lnum
==
TAUP
||
lnum
==
TAUM
)
{
setProbMax
(
3500.0
);
return
;
}
}
if
(
mesnum
==
A2P
||
mesnum
==
A2M
||
mesnum
==
A20
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
1200.0
);
return
;
}
if
(
lnum
==
TAUP
||
lnum
==
TAUM
)
{
setProbMax
(
1000.0
);
return
;
}
}
if
(
mesnum
==
H1
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
2600.0
);
return
;
}
if
(
lnum
==
TAUP
||
lnum
==
TAUM
)
{
setProbMax
(
2900.0
);
return
;
}
}
if
(
mesnum
==
H1PR
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
1400.0
);
return
;
}
if
(
lnum
==
TAUP
||
lnum
==
TAUM
)
{
setProbMax
(
1500.0
);
return
;
}
}
if
(
mesnum
==
F2
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
1100.0
);
return
;
}
if
(
lnum
==
TAUP
||
lnum
==
TAUM
)
{
setProbMax
(
1100.0
);
return
;
}
}
if
(
mesnum
==
F2PR
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
804.0
);
return
;
}
if
(
lnum
==
TAUP
||
lnum
==
TAUM
)
{
setProbMax
(
600.0
);
return
;
}
}
if
(
mesnum
==
F1
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
2500.0
);
return
;
}
if
(
lnum
==
TAUP
||
lnum
==
TAUM
)
{
setProbMax
(
2000.0
)
;
return
;
}
}
if
(
mesnum
==
F1PR
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
2400.0
);
return
;
}
if
(
lnum
==
TAUP
||
lnum
==
TAUM
)
{
setProbMax
(
1700.0
);
return
;
}
}
if
(
mesnum
==
F0
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
80.0
);
return
;
}
if
(
lnum
==
TAUP
||
lnum
==
TAUM
)
{
setProbMax
(
63.0
);
return
;
}
}
if
(
mesnum
==
F0PR
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
120.0
);
return
;
}
if
(
lnum
==
TAUP
||
lnum
==
TAUM
)
{
setProbMax
(
120.0
);
return
;
}
}
if
(
mesnum
==
RHO2SP
||
mesnum
==
RHO2SM
||
mesnum
==
RHO2S0
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
2400.0
);
return
;
}
if
(
lnum
==
TAUP
||
lnum
==
TAUM
)
{
setProbMax
(
2000.0
);
return
;
}
}
if
(
mesnum
==
OMEG2S
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
1600.0
);
return
;
}
if
(
lnum
==
TAUP
||
lnum
==
TAUM
)
{
setProbMax
(
1400.0
)
;
return
;
}
}
if
(
mesnum
==
PI2SP
||
mesnum
==
PI2SM
||
mesnum
==
PI2S0
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
500.0
);
return
;
}
if
(
lnum
==
TAUP
||
lnum
==
TAUM
)
{
setProbMax
(
300.0
);
return
;
}
}
if
(
mesnum
==
ETA2S
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
344.0
);
return
;
}
if
(
lnum
==
TAUP
||
lnum
==
TAUM
)
{
setProbMax
(
300.0
);
return
;
}
}
if
(
mesnum
==
KP
||
mesnum
==
KM
||
mesnum
==
K1P
||
mesnum
==
K1M
||
mesnum
==
K1STP
||
mesnum
==
K1STM
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
2000.0
);
return
;
}
if
(
lnum
==
TAUP
||
lnum
==
TAUM
)
{
setProbMax
(
1000.0
);
return
;
}
}
if
(
mesnum
==
KSTP
||
mesnum
==
KSTM
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
10000.0
);
return
;
}
if
(
lnum
==
TAUP
||
lnum
==
TAUM
)
{
setProbMax
(
7000.0
);
return
;
}
}
}
if
(
parnum
==
D0
||
parnum
==
DP
||
parnum
==
DM
||
parnum
==
D0B
)
{
if
(
mesnum
==
RHOP
||
mesnum
==
RHOM
||
mesnum
==
RHO0
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
110.0
);
return
;
}
}
if
(
mesnum
==
OMEG
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
75.0
);
return
;
}
}
if
(
mesnum
==
PIP
||
mesnum
==
PIM
||
mesnum
==
PI0
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
40.0
);
return
;
}
}
if
(
mesnum
==
ETA
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
65.0
);
return
;
}
}
if
(
mesnum
==
ETAPR
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
60.0
);
return
;
}
}
if
(
mesnum
==
KP
||
mesnum
==
KM
||
mesnum
==
K0
||
mesnum
==
K0S
||
mesnum
==
K0L
||
mesnum
==
KB
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
70.0
);
return
;
}
}
if
(
mesnum
==
K1STP
||
mesnum
==
K1STM
||
mesnum
==
K1ST0
||
mesnum
==
K1STB
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
3.3
);
return
;
}
}
if
(
mesnum
==
K1P
||
mesnum
==
K1M
||
mesnum
==
K10
||
mesnum
==
K1B
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
100.0
);
return
;
}
}
if
(
mesnum
==
KSTP
||
mesnum
==
KSTM
||
mesnum
==
KST0
||
mesnum
==
KSTB
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
135.0
);
return
;
}
}
if
(
mesnum
==
K2STP
||
mesnum
==
K2STM
||
mesnum
==
K2ST0
||
mesnum
==
K2STB
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
//Lange - Oct 26,2001 - increasing from 0.75 to
//accomodate
setProbMax
(
9.0
);
// setProbMax( 0.75);
return
;
}
}
if
(
mesnum
==
F0
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
1.0
);
return
;
}
}
}
if
(
parnum
==
DSP
||
parnum
==
DSM
)
{
if
(
mesnum
==
PHI
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
90.0
);
return
;
}
}
if
(
mesnum
==
ETA
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
75.0
);
return
;
}
}
if
(
mesnum
==
ETAPR
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
80.0
)
;
return
;
}
}
if
(
mesnum
==
KST0
||
mesnum
==
KSTB
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
100.0
)
;
return
;
}
}
if
(
mesnum
==
K0
||
mesnum
==
KB
||
mesnum
==
K0S
||
mesnum
==
K0L
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
45.0
);
return
;
}
}
if
(
mesnum
==
F0
)
{
if
(
lnum
==
EP
||
lnum
==
EM
||
lnum
==
MUP
||
lnum
==
MUM
)
{
setProbMax
(
1.0
);
return
;
}
}
}
if
(
parnum
==
BCP
||
parnum
==
BCM
)
{
setProbMax
(
1000.0
);
return
;
}
//This is a real cludge.. (ryd)
setProbMax
(
0.0
);
}
void
EvtISGW2
::
init
(){
checkNArg
(
0
);
checkNDaug
(
3
);
//We expect the parent to be a scalar
//and the daughters to be X lepton neutrino
checkSpinParent
(
EvtSpinType
::
SCALAR
);
checkSpinDaughter
(
1
,
EvtSpinType
::
DIRAC
);
checkSpinDaughter
(
2
,
EvtSpinType
::
NEUTRINO
);
EvtSpinType
::
spintype
mesontype
=
EvtPDL
::
getSpinType
(
getDaug
(
0
));
isgw2ffmodel
=
new
EvtISGW2FF
;
if
(
mesontype
==
EvtSpinType
::
SCALAR
)
{
calcamp
=
new
EvtSemiLeptonicScalarAmp
;
}
if
(
mesontype
==
EvtSpinType
::
VECTOR
)
{
calcamp
=
new
EvtSemiLeptonicVectorAmp
;
}
if
(
mesontype
==
EvtSpinType
::
TENSOR
)
{
calcamp
=
new
EvtSemiLeptonicTensorAmp
;
}
}
File Metadata
Details
Attached
Mime Type
text/x-c
Expires
Tue, Sep 30, 5:46 AM (1 d, 10 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
6548214
Default Alt Text
EvtISGW2.cpp (17 KB)
Attached To
Mode
rEVTGEN evtgen
Attached
Detach File
Event Timeline
Log In to Comment