CGEM BOSS 6.6.5.g
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtSSSCP.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: EvtSSSCP.cc
12//
13// Description: Routine to decay scalar -> 2 scalars
14//
15// Modification history:
16//
17// RYD November 24, 1996 Module created
18//
19//------------------------------------------------------------------------
20//
22#include <stdlib.h>
26#include "EvtGenBase/EvtPDL.hh"
29#include <string>
31
33
34void EvtSSSCP::getName(std::string& model_name){
35
36 model_name="SSS_CP";
37
38}
39
40
42
43 return new EvtSSSCP;
44
45}
46
48
49 // check that there are 7 arguments
50 checkNArg(7);
51 checkNDaug(2);
53
56
57}
58
60
61 //This is probably not quite right, but it should do as a start...
62 //Anders
63
64 setProbMax(2*(getArg(3)*getArg(3)+getArg(5)*getArg(5)));
65
66}
67
69
70 //added by Lange Jan4,2000
71 static EvtId B0=EvtPDL::getId("B0");
72 static EvtId B0B=EvtPDL::getId("anti-B0");
73
74 double t;
75 EvtId other_b;
76
77 EvtCPUtil::OtherB(p,t,other_b);
78
80
81
82 EvtComplex amp;
83
84 EvtComplex A,Abar;
85
86 A=EvtComplex(getArg(3)*cos(getArg(4)),getArg(3)*sin(getArg(4)));
87 Abar=EvtComplex(getArg(5)*cos(getArg(6)),getArg(5)*sin(getArg(6)));
88
89 if (other_b==B0B){
90 amp=A*cos(getArg(1)*t/(2*EvtConst::c))+
91 EvtComplex(cos(-2.0*getArg(0)),sin(-2.0*getArg(0)))*
92 getArg(2)*EvtComplex(0.0,1.0)*Abar*sin(getArg(1)*t/(2*EvtConst::c));
93 }
94 if (other_b==B0){
95 amp=A*EvtComplex(cos(2.0*getArg(0)),sin(2.0*getArg(0)))*
96 EvtComplex(0.0,1.0)*sin(getArg(1)*t/(2*EvtConst::c))+
97 getArg(2)*Abar*cos(getArg(1)*t/(2*EvtConst::c));
98 }
99
100 vertex(amp);
101
102 return ;
103}
104
double sin(const BesAngle a)
Definition: BesAngle.h:210
double cos(const BesAngle a)
Definition: BesAngle.h:213
static void OtherB(EvtParticle *p, double &t, EvtId &otherb)
Definition: EvtCPUtil.cc:229
static const double c
Definition: EvtConst.hh:32
void vertex(const EvtComplex &amp)
Definition: EvtDecayAmp.hh:37
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)
EvtId * getDaugs()
Definition: EvtDecayBase.hh:65
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
Definition: EvtId.hh:27
static EvtId getId(const std::string &name)
Definition: EvtPDL.cc:287
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
virtual ~EvtSSSCP()
Definition: EvtSSSCP.cc:32
void initProbMax()
Definition: EvtSSSCP.cc:59
void init()
Definition: EvtSSSCP.cc:47
EvtDecayBase * clone()
Definition: EvtSSSCP.cc:41
EvtSSSCP()
Definition: EvtSSSCP.hh:33
void decay(EvtParticle *p)
Definition: EvtSSSCP.cc:68
void getName(std::string &name)
Definition: EvtSSSCP.cc:34
int t()
Definition: t.c:1