BOSS 8.0.0
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//
21#include "EvtSSSCP.hh"
29#include <stdlib.h>
30#include <string>
31
33
34void EvtSSSCP::getName( std::string& model_name ) { model_name = "SSS_CP"; }
35
37
39
40 // check that there are 7 arguments
41 checkNArg( 7 );
42 checkNDaug( 2 );
44
47}
48
50
51 // This is probably not quite right, but it should do as a start...
52 // Anders
53
54 setProbMax( 2 * ( getArg( 3 ) * getArg( 3 ) + getArg( 5 ) * getArg( 5 ) ) );
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 double t;
64 EvtId other_b;
65
66 EvtCPUtil::OtherB( p, t, other_b );
67
69
70 EvtComplex amp;
71
72 EvtComplex A, Abar;
73
74 A = EvtComplex( getArg( 3 ) * cos( getArg( 4 ) ), getArg( 3 ) * sin( getArg( 4 ) ) );
75 Abar = EvtComplex( getArg( 5 ) * cos( getArg( 6 ) ), getArg( 5 ) * sin( getArg( 6 ) ) );
76
77 if ( other_b == B0B )
78 {
79 amp = A * cos( getArg( 1 ) * t / ( 2 * EvtConst::c ) ) +
80 EvtComplex( cos( -2.0 * getArg( 0 ) ), sin( -2.0 * getArg( 0 ) ) ) * getArg( 2 ) *
81 EvtComplex( 0.0, 1.0 ) * Abar * sin( getArg( 1 ) * t / ( 2 * EvtConst::c ) );
82 }
83 if ( other_b == B0 )
84 {
85 amp = A * EvtComplex( cos( 2.0 * getArg( 0 ) ), sin( 2.0 * getArg( 0 ) ) ) *
86 EvtComplex( 0.0, 1.0 ) * sin( getArg( 1 ) * t / ( 2 * EvtConst::c ) ) +
87 getArg( 2 ) * Abar * cos( getArg( 1 ) * t / ( 2 * EvtConst::c ) );
88 }
89
90 vertex( amp );
91
92 return;
93}
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)
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:272
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:49
void init()
Definition EvtSSSCP.cc:38
EvtDecayBase * clone()
Definition EvtSSSCP.cc:36
void decay(EvtParticle *p)
Definition EvtSSSCP.cc:57
void getName(std::string &name)
Definition EvtSSSCP.cc:34
int t()
Definition t.c:1