BOSS 7.0.1
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtSSSCPT.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: EvtSSSCPT.cc
12//
13// Description: Routine to decay scalar -> 2 scalars (CPT)
14//
15// Modification history:
16//
17// SHY April 28, 1997 Module created
18//
19//------------------------------------------------------------------------
20//
22#include <stdlib.h>
26#include "EvtGenBase/EvtPDL.hh"
29#include "EvtGenBase/EvtId.hh"
30#include <string>
32
34
35void EvtSSSCPT::getName(std::string& model_name){
36
37 model_name="SSS_CPT";
38
39}
40
41
43
44 return new EvtSSSCPT;
45
46}
47
49
50 // check that there are 8 arguments
51 checkNArg(8);
52 checkNDaug(2);
53
54}
55
56
58
59 //added by Lange Jan4,2000
60 static EvtId B0=EvtPDL::getId("B0");
61 static EvtId B0B=EvtPDL::getId("anti-B0");
62
63
64 double t;
65 EvtId other_b;
66
67 EvtCPUtil::OtherB(p,t,other_b);
68
70
71 EvtComplex amp;
72
73 EvtComplex A,Abar;
74 EvtComplex P,Q,D,Im;
75
76 P=EvtComplex(cos(-getArg(0)),sin(-getArg(0)));
77 Q=EvtComplex(cos(getArg(0)),sin(getArg(0)));
78 D=EvtComplex(getArg(6)*cos(getArg(7)),getArg(6)*sin(getArg(7)));
79 Im=EvtComplex(0.0,1.0);
80
81 A=EvtComplex(getArg(2)*cos(getArg(3)),getArg(2)*sin(getArg(3)));
82 Abar=EvtComplex(getArg(4)*cos(getArg(5)),getArg(4)*sin(getArg(5)));
83
84 if (other_b==B0B){
85 amp=A*cos(getArg(1)*t/(2*EvtConst::c))+
86 Im*sin(getArg(1)*t/(2*EvtConst::c))*
87 (Q/P*A + 2.0*D*Abar);
88 }
89 if (other_b==B0){
90 amp=Abar*cos(getArg(1)*t/(2*EvtConst::c))+
91 Im*sin(getArg(1)*t/(2*EvtConst::c))*
92 (P/Q*A - 2.0*D*Abar);
93 }
94
95 vertex(amp);
96
97 return ;
98}
99
double P(RecMdcKalTrack *trk)
double sin(const BesAngle a)
double cos(const BesAngle a)
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
double getArg(int j)
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)
void init()
Definition: EvtSSSCPT.cc:48
virtual ~EvtSSSCPT()
Definition: EvtSSSCPT.cc:33
void decay(EvtParticle *p)
Definition: EvtSSSCPT.cc:57
void getName(std::string &name)
Definition: EvtSSSCPT.cc:35
EvtDecayBase * clone()
Definition: EvtSSSCPT.cc:42
int t()
Definition: t.c:1