BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtChi2BB2.cc
Go to the documentation of this file.
1//--------------------------------------------------------------------------
2//
3// Environment:
4// This software is part of models developed at BES collaboration
5// based on the EvtGen framework. If you use all or part
6// of it, please give an appropriate acknowledgement.
7//
8// Copyright Information: See EvtGen/BesCopyright
9// Copyright (A) 2006 Ping Rong-Gang @IHEP
10//
11// Module: EvtChi2BB2.cc
12//
13// Description: Routine to decay Chi2 to B10 B10bar.
14//
15// Modification history:
16//
17// Pang C.Y. and Ping R.-G. April, 2007 Module created
18//
19//------------------------------------------------------------------------
20//
21#include "EvtChi2BB2.hh"
32#include <stdlib.h>
33#include <string>
34using std::cout;
35using std::endl;
37
38void EvtChi2BB2::getName( std::string& model_name ) { model_name = "Chi2BB2"; }
39
41
50
51/*
52void EvtChi2BB2::initProbMax() {
53
54 //Hard coded... should not be hard to calculate...
55 setProbMax(100.0);
56
57}
58*/
60
62
63 EvtParticle *v, *s1;
64 EvtVector4R pv, ps, ppr;
65
66 v = p->getDaug( 0 );
67 s1 = p->getDaug( 1 );
68 pv = v->getP4();
69 ps = s1->getP4();
70 ppr = p->getP4();
71
72 // Put phase space results into the daughters.
73 EvtHelSys angles( ppr, pv ); // using helicity sys. angles
74 double theta = angles.getHelAng( 1 );
75 double phi = angles.getHelAng( 2 );
76 double gamma = 0;
77 double F00, F01, F02, F03, F10, F11, F13, F20, F22, F23, F30, F31, F32, F33;
78 F00 = getArg( 0 );
79 F01 = getArg( 1 );
80 F02 = getArg( 2 );
81 F03 = getArg( 3 );
82 F11 = getArg( 4 );
83
84 F33 = F00;
85 F32 = F01;
86 F31 = F02;
87 F30 = F03;
88 F22 = F11;
89 F10 = F01;
90 F20 = F02;
91 F23 = F10;
92 F13 = F20;
93 // cout<<"********F00,F01,F02,F03,F10,F11,F13,F20,F22,F23,F30,F31,F32,F33="<<F00<<F01<<F02<<F03<<F10<<F11<<F13<<F20<<F22<<F23<<F30<<F31<<F32<<F33<<endl;
94
95 vertex( 0, 0, 0, Djmn( 2, 0, 0, phi, theta, gamma ) * F00 ); // Chi2 helicity =0
96 // corresponding index 0;
97 vertex( 0, 0, 1, Djmn( 2, 0, -1, phi, theta, gamma ) * F01 );
98 vertex( 0, 0, 2, Djmn( 2, 0, 2, phi, theta, gamma ) * F02 );
99 vertex( 0, 0, 3, Djmn( 2, 0, 1, phi, theta, gamma ) * F03 );
100 vertex( 0, 1, 0, Djmn( 2, 0, 1, phi, theta, gamma ) * F10 );
101 vertex( 0, 1, 1, Djmn( 2, 0, 0, phi, theta, gamma ) * F11 );
102 vertex( 0, 1, 2, 0.0 );
103 vertex( 0, 1, 3, Djmn( 2, 0, 2, phi, theta, gamma ) * F13 );
104 vertex( 0, 2, 0, Djmn( 2, 0, -2, phi, theta, gamma ) * F20 );
105 vertex( 0, 2, 1, 0.0 );
106 vertex( 0, 2, 2, Djmn( 2, 0, 0, phi, theta, gamma ) * F22 );
107 vertex( 0, 2, 3, Djmn( 2, 0, -1, phi, theta, gamma ) * F23 );
108 vertex( 0, 3, 0, Djmn( 2, 0, -1, phi, theta, gamma ) * F30 );
109 vertex( 0, 3, 1, Djmn( 2, 0, -2, phi, theta, gamma ) * F31 );
110 vertex( 0, 3, 2, Djmn( 2, 0, 1, phi, theta, gamma ) * F32 );
111 vertex( 0, 3, 3, Djmn( 2, 0, 0, phi, theta, gamma ) * F33 );
112
113 vertex( 1, 0, 0, Djmn( 2, 2, 0, phi, theta, gamma ) * F00 ); // Chi2 helicity =2
114 // corresponding index 1;
115 vertex( 1, 0, 1, Djmn( 2, 2, -1, phi, theta, gamma ) * F01 );
116 vertex( 1, 0, 2, Djmn( 2, 2, 2, phi, theta, gamma ) * F02 );
117 vertex( 1, 0, 3, Djmn( 2, 2, 1, phi, theta, gamma ) * F03 );
118 vertex( 1, 1, 0, Djmn( 2, 2, 1, phi, theta, gamma ) * F10 );
119 vertex( 1, 1, 1, Djmn( 2, 2, 0, phi, theta, gamma ) * F11 );
120 vertex( 1, 1, 2, 0.0 );
121 vertex( 1, 1, 3, Djmn( 2, 2, 2, phi, theta, gamma ) * F13 );
122 vertex( 1, 2, 0, Djmn( 2, 2, -2, phi, theta, gamma ) * F20 );
123 vertex( 1, 2, 1, 0.0 );
124 vertex( 1, 2, 2, Djmn( 2, 2, 0, phi, theta, gamma ) * F22 );
125 vertex( 1, 2, 3, Djmn( 2, 2, -1, phi, theta, gamma ) * F23 );
126 vertex( 1, 3, 0, Djmn( 2, 2, -1, phi, theta, gamma ) * F30 );
127 vertex( 1, 3, 1, Djmn( 2, 2, -2, phi, theta, gamma ) * F31 );
128 vertex( 1, 3, 2, Djmn( 2, 2, 1, phi, theta, gamma ) * F32 );
129 vertex( 1, 3, 3, Djmn( 2, 2, 0, phi, theta, gamma ) * F33 );
130
131 vertex( 2, 0, 0, Djmn( 2, -2, 0, phi, theta, gamma ) * F00 ); // Chi2 helicity =-2
132 // corresponding index 2;
133 vertex( 2, 0, 1, Djmn( 2, -2, -1, phi, theta, gamma ) * F01 );
134 vertex( 2, 0, 2, Djmn( 2, -2, 2, phi, theta, gamma ) * F02 );
135 vertex( 2, 0, 3, Djmn( 2, -2, 1, phi, theta, gamma ) * F03 );
136 vertex( 2, 1, 0, Djmn( 2, -2, 1, phi, theta, gamma ) * F10 );
137 vertex( 2, 1, 1, Djmn( 2, -2, 0, phi, theta, gamma ) * F11 );
138 vertex( 2, 1, 2, 0.0 );
139 vertex( 2, 1, 3, Djmn( 2, -2, 2, phi, theta, gamma ) * F13 );
140 vertex( 2, 2, 0, Djmn( 2, -2, -2, phi, theta, gamma ) * F20 );
141 vertex( 2, 2, 1, 0.0 );
142 vertex( 2, 2, 2, Djmn( 2, -2, 0, phi, theta, gamma ) * F22 );
143 vertex( 2, 2, 3, Djmn( 2, -2, -1, phi, theta, gamma ) * F23 );
144 vertex( 2, 3, 0, Djmn( 2, -2, -1, phi, theta, gamma ) * F30 );
145 vertex( 2, 3, 1, Djmn( 2, -2, -2, phi, theta, gamma ) * F31 );
146 vertex( 2, 3, 2, Djmn( 2, -2, 1, phi, theta, gamma ) * F32 );
147 vertex( 2, 3, 3, Djmn( 2, -2, 0, phi, theta, gamma ) * F33 );
148
149 vertex( 3, 0, 0, Djmn( 2, 1, 0, phi, theta, gamma ) * F00 ); // Chi2 helicity =1
150 // corresponding index 3;
151 vertex( 3, 0, 1, Djmn( 2, 1, -1, phi, theta, gamma ) * F01 );
152 vertex( 3, 0, 2, Djmn( 2, 1, 2, phi, theta, gamma ) * F02 );
153 vertex( 3, 0, 3, Djmn( 2, 1, 1, phi, theta, gamma ) * F03 );
154 vertex( 3, 1, 0, Djmn( 2, 1, 1, phi, theta, gamma ) * F10 );
155 vertex( 3, 1, 1, Djmn( 2, 1, 0, phi, theta, gamma ) * F11 );
156 vertex( 3, 1, 2, 0.0 );
157 vertex( 3, 1, 3, Djmn( 2, 1, 2, phi, theta, gamma ) * F13 );
158 vertex( 3, 2, 0, Djmn( 2, 1, -2, phi, theta, gamma ) * F20 );
159 vertex( 3, 2, 1, 0.0 );
160 vertex( 3, 2, 2, Djmn( 2, 1, 0, phi, theta, gamma ) * F22 );
161 vertex( 3, 2, 3, Djmn( 2, 1, -1, phi, theta, gamma ) * F23 );
162 vertex( 3, 3, 0, Djmn( 2, 1, -1, phi, theta, gamma ) * F30 );
163 vertex( 3, 3, 1, Djmn( 2, 1, -2, phi, theta, gamma ) * F31 );
164 vertex( 3, 3, 2, Djmn( 2, 1, 1, phi, theta, gamma ) * F32 );
165 vertex( 3, 3, 3, Djmn( 2, 1, 0, phi, theta, gamma ) * F33 );
166
167 vertex( 4, 0, 0, Djmn( 2, -1, 0, phi, theta, gamma ) * F00 ); // Chi2 helicity =-1
168 // corresponding index 4;
169 vertex( 4, 0, 1, Djmn( 2, -1, -1, phi, theta, gamma ) * F01 );
170 vertex( 4, 0, 2, Djmn( 2, -1, 2, phi, theta, gamma ) * F02 );
171 vertex( 4, 0, 3, Djmn( 2, -1, 1, phi, theta, gamma ) * F03 );
172 vertex( 4, 1, 0, Djmn( 2, -1, 1, phi, theta, gamma ) * F10 );
173 vertex( 4, 1, 1, Djmn( 2, -1, 0, phi, theta, gamma ) * F11 );
174 vertex( 4, 1, 2, 0.0 );
175 vertex( 4, 1, 3, Djmn( 2, -1, 2, phi, theta, gamma ) * F13 );
176 vertex( 4, 2, 0, Djmn( 2, -1, -2, phi, theta, gamma ) * F20 );
177 vertex( 4, 2, 1, 0.0 );
178 vertex( 4, 2, 2, Djmn( 2, -1, 0, phi, theta, gamma ) * F22 );
179 vertex( 4, 2, 3, Djmn( 2, -1, -1, phi, theta, gamma ) * F23 );
180 vertex( 4, 3, 0, Djmn( 2, -1, -1, phi, theta, gamma ) * F30 );
181 vertex( 4, 3, 1, Djmn( 2, -1, -2, phi, theta, gamma ) * F31 );
182 vertex( 4, 3, 2, Djmn( 2, -1, 1, phi, theta, gamma ) * F32 );
183 vertex( 4, 3, 3, Djmn( 2, -1, 0, phi, theta, gamma ) * F33 );
184
185 return;
186}
EvtComplex Djmn(int j, int m, int n, double phi, double theta, double gamma)
Definition EvtHelSys.cc:165
**********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
void init()
Definition EvtChi2BB2.cc:42
void decay(EvtParticle *p)
Definition EvtChi2BB2.cc:59
virtual ~EvtChi2BB2()
Definition EvtChi2BB2.cc:36
void getName(std::string &name)
Definition EvtChi2BB2.cc:38
EvtDecayBase * clone()
Definition EvtChi2BB2.cc:40
void vertex(const EvtComplex &amp)
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
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)
double getHelAng(int i)
Definition EvtHelSys.cc:52
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)