BOSS 8.0.0
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//
21#include "EvtSSSCPT.hh"
30#include <stdlib.h>
31#include <string>
32
34
35void EvtSSSCPT::getName( std::string& model_name ) { model_name = "SSS_CPT"; }
36
38
40
41 // check that there are 8 arguments
42 checkNArg( 8 );
43 checkNDaug( 2 );
44}
45
47
48 // added by Lange Jan4,2000
49 static EvtId B0 = EvtPDL::getId( "B0" );
50 static EvtId B0B = EvtPDL::getId( "anti-B0" );
51
52 double t;
53 EvtId other_b;
54
55 EvtCPUtil::OtherB( p, t, other_b );
56
58
59 EvtComplex amp;
60
61 EvtComplex A, Abar;
62 EvtComplex P, Q, D, Im;
63
64 P = EvtComplex( cos( -getArg( 0 ) ), sin( -getArg( 0 ) ) );
65 Q = EvtComplex( cos( getArg( 0 ) ), sin( getArg( 0 ) ) );
66 D = EvtComplex( getArg( 6 ) * cos( getArg( 7 ) ), getArg( 6 ) * sin( getArg( 7 ) ) );
67 Im = EvtComplex( 0.0, 1.0 );
68
69 A = EvtComplex( getArg( 2 ) * cos( getArg( 3 ) ), getArg( 2 ) * sin( getArg( 3 ) ) );
70 Abar = EvtComplex( getArg( 4 ) * cos( getArg( 5 ) ), getArg( 4 ) * sin( getArg( 5 ) ) );
71
72 if ( other_b == B0B )
73 {
74 amp = A * cos( getArg( 1 ) * t / ( 2 * EvtConst::c ) ) +
75 Im * sin( getArg( 1 ) * t / ( 2 * EvtConst::c ) ) * ( Q / P * A + 2.0 * D * Abar );
76 }
77 if ( other_b == B0 )
78 {
79 amp = Abar * cos( getArg( 1 ) * t / ( 2 * EvtConst::c ) ) +
80 Im * sin( getArg( 1 ) * t / ( 2 * EvtConst::c ) ) * ( P / Q * A - 2.0 * D * Abar );
81 }
82
83 vertex( amp );
84
85 return;
86}
double P(RecMdcKalTrack *trk)
static void OtherB(EvtParticle *p, double &t, EvtId &otherb)
Definition EvtCPUtil.cc:225
static const double c
Definition EvtConst.hh:31
void vertex(const EvtComplex &amp)
double getArg(int j)
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:272
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
void init()
Definition EvtSSSCPT.cc:39
virtual ~EvtSSSCPT()
Definition EvtSSSCPT.cc:33
void decay(EvtParticle *p)
Definition EvtSSSCPT.cc:46
void getName(std::string &name)
Definition EvtSSSCPT.cc:35
EvtDecayBase * clone()
Definition EvtSSSCPT.cc:37
int t()
Definition t.c:1