CGEM BOSS 6.6.5.i
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtSVSCP.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: EvtSVSCP.cc
12//
13// Description: Routine to decay scalar -> vectors scalar
14// and has CP violation.
15//
16// Modification history:
17//
18// RYD Febuary 10, 1997 Module created
19//
20//------------------------------------------------------------------------
21//
23#include <stdlib.h>
28#include "EvtGenBase/EvtPDL.hh"
31#include <string>
33
35
36void EvtSVSCP::getName(std::string& model_name){
37
38 model_name="SVS_CP";
39
40}
41
42
44
45 return new EvtSVSCP;
46
47}
48
50
51 // check that there are 7 arguments
52 checkNArg(7);
53 checkNDaug(2);
54
56
59
60
61}
62
63
65
66 //This is probably not quite right, but it should do as a start...
67 //Anders
68
69 setProbMax(2*(getArg(3)*getArg(3)+getArg(5)*getArg(5)));
70
71}
72
73
75
76 //added by Lange Jan4,2000
77 static EvtId B0=EvtPDL::getId("B0");
78 static EvtId B0B=EvtPDL::getId("anti-B0");
79
82 v = p->getDaug(0);
83 EvtVector4R momv = v->getP4();
84 EvtVector4R moms = p->getDaug(1)->getP4();
85 double massv = v->mass();
86 double t;
87 EvtId other_b;
88
89 EvtCPUtil::OtherB(p,t,other_b);
90
91 EvtComplex amp;
92
93 EvtComplex A,Abar;
94
95 A=EvtComplex(getArg(3)*cos(getArg(4)),getArg(3)*sin(getArg(4)));
96 Abar=EvtComplex(getArg(5)*cos(getArg(6)),getArg(5)*sin(getArg(6)));
97
98 if (other_b==B0B){
99 amp=A*cos(getArg(1)*t/(2*EvtConst::c))+
100 EvtComplex(cos(-2.0*getArg(0)),sin(-2.0*getArg(0)))*
101 getArg(2)*EvtComplex(0.0,1.0)*Abar*sin(getArg(1)*t/(2*EvtConst::c));
102 }
103 if (other_b==B0){
104 amp=A*EvtComplex(cos(2.0*getArg(0)),sin(2.0*getArg(0)))*
105 EvtComplex(0.0,1.0)*sin(getArg(1)*t/(2*EvtConst::c))+
106 getArg(2)*Abar*cos(getArg(1)*t/(2*EvtConst::c));
107 }
108
109 EvtVector4R p4_parent;
110
111 p4_parent=momv+moms;
112
113 double norm=massv/(momv.d3mag()*p4_parent.mass());
114
115 vertex(0,amp*norm*p4_parent*(v->epsParent(0)));
116 vertex(1,amp*norm*p4_parent*(v->epsParent(1)));
117 vertex(2,amp*norm*p4_parent*(v->epsParent(2)));
118
119 return ;
120}
121
double sin(const BesAngle a)
Definition BesAngle.h:210
double cos(const BesAngle a)
Definition BesAngle.h:213
**********Class see also m_nmax DOUBLE PRECISION m_amel DOUBLE PRECISION m_x2 DOUBLE PRECISION m_alfinv DOUBLE PRECISION m_Xenph INTEGER m_KeyWtm INTEGER m_idyfs DOUBLE PRECISION m_zini DOUBLE PRECISION m_q2 DOUBLE PRECISION m_Wt_KF DOUBLE PRECISION m_WtCut INTEGER m_KFfin *COMMON c_KarLud $ !Input CMS energy[GeV] $ !CMS energy after beam spread beam strahlung[GeV] $ !Beam energy spread[GeV] $ !z boost due to beam spread $ !electron beam mass *ff pair spectrum $ !minimum v
Definition KarLud.h:35
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)
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()
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
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
void decay(EvtParticle *p)
Definition EvtSVSCP.cc:74
void getName(std::string &name)
Definition EvtSVSCP.cc:36
EvtDecayBase * clone()
Definition EvtSVSCP.cc:43
void init()
Definition EvtSVSCP.cc:49
virtual ~EvtSVSCP()
Definition EvtSVSCP.cc:34
void initProbMax()
Definition EvtSVSCP.cc:64
double mass() const
double d3mag() const
int t()
Definition t.c:1