118 {
119
122
123
124
126 {
127 std::cout <<
"Particle " <<
EvtPDL::name( p->
getId() ) <<
" has zero mass" << std::endl;
128 abort();
129 }
131 int mydummy = 0;
133
134 EvtVector4R p4[100];
135
136 int i, more, nson;
137 int ndaugjs;
138 int kf[100];
139 EvtId id[100];
141
142 double px[100], py[100], pz[100], e[100];
143
144 if ( p->
getNDaug() != 0 ) {
return; }
145 do {
147
148 double toteng = 0;
149
150 for ( i = 0; i < ndaugjs; i++ )
151 {
152
154
156
157
158
159
160
161
162 toteng += e[i];
163 if ( px[i] * px[i] + py[i] * py[i] + pz[i] * pz[i] >= e[i] * e[i] )
164 e[i] = sqrt( px[i] * px[i] + py[i] * py[i] + pz[i] * pz[i] ) + 0.0000000000001;
165
166 p4[i].
set( e[i], px[i], py[i], pz[i] );
167 }
168
169
170
172
173 more = ( ( channel != -1 ) && ( channel != p->
getChannel() ) );
174
175
176 } while ( more );
177
179
180 for ( i = 0; i < ndaugjs; i++ ) p->
getDaug( i )->
init(
id[i], p4[i] );
181
184 return;
185}
struct @125167362051102326102214011354340031122345135231 cbbeam_
************Class m_ypar INTEGER m_KeyWgt INTEGER m_KeyIHVP INTEGER m_KeyGPS INTEGER m_IsBeamPolarized INTEGER m_EvtGenInterface DOUBLE PRECISION m_Emin DOUBLE PRECISION m_sphot DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_q2 DOUBLE PRECISION m_PolBeam2 DOUBLE PRECISION m_xErrPb *COMMON c_KK2f $ !CMS energy average $ !Spin Polarization vector first beam $ !Spin Polarization vector second beam $ !Beam energy spread[GeV] $ !minimum hadronization energy[GeV] $ !input READ never touch them !$ !debug facility $ !maximum weight $ !inverse alfaQED $ !minimum real photon energy
static int inChannelList(EvtId parent, int ndaug, EvtId *daugs)
static EvtId evtIdFromStdHep(int stdhep)
static std::string name(EvtId i)
static EvtSpinType::spintype getSpinType(EvtId i)
void makeDaughters(int ndaug, EvtId *id)
virtual void init(EvtId part_n, const EvtVector4R &p4)=0
EvtParticle * getDaug(int i)
static void pythiaInit(int f)
static void pythiacont(double *, int *, int *, double *, double *, double *, double *)
void set(int i, double d)