#include <CexmcReimplementedGenbod.hh>
Definition at line 51 of file CexmcReimplementedGenbod.hh.
CexmcReimplementedGenbod::CexmcReimplementedGenbod |
( |
| ) |
|
Implements CexmcPhaseSpaceGenerator.
Definition at line 87 of file CexmcReimplementedGenbod.cc.
97 if ( nmbOfOutputParticles > 2 )
99 for (
G4int i( 1 ); i < nmbOfOutputParticles - 1; ++i )
103 qsort( rno + 1, nmbOfOutputParticles - 2,
sizeof(
G4double ),
106 rno[ nmbOfOutputParticles - 1 ] = 1;
111 for (
int i( 0 ); i < nmbOfOutputParticles; ++i )
114 invMas[ i ] = rno[ i ] * te_minus_tm /
GeV + sum;
123 for (
int i( 0 ); i < nmbOfOutputParticles - 1; ++i )
125 pd[ i ] = PDK( invMas[ i + 1 ], invMas[ i ],
133 outVec[ 0 ].lVec->setPx( 0. );
134 outVec[ 0 ].lVec->setPy( pd[ 0 ] );
135 outVec[ 0 ].lVec->setPz( 0. );
136 outVec[ 0 ].lVec->setE( std::sqrt( pd[ 0 ] * pd[ 0 ] +
144 outVec[ i ].lVec->setPx( 0. );
145 outVec[ i ].lVec->setPy( -pd[ i - 1 ] );
146 outVec[ i ].lVec->setPz( 0. );
147 outVec[ i ].lVec->setE( std::sqrt( pd[ i - 1 ] * pd[ i - 1 ] +
152 G4double sZ( std::sqrt( 1 - cZ * cZ ) );
157 for (
int j( 0 ); j <= i; ++j )
162 v->setPx( cZ *
x - sZ * y );
163 v->setPy( sZ *
x + cZ * y );
166 v->setPx( cY *
x - sY *
z );
167 v->setPz( sY *
x + cY * z );
170 if ( i == nmbOfOutputParticles - 1 )
173 G4double beta( pd[ i ] / std::sqrt( pd[ i ] * pd[ i ] +
174 invMas[ i ] * invMas[ i ] ) );
175 for (
int j( 0 ); j <= i; ++j )
176 outVec[ j ].lVec->boost( 0, beta, 0 );
181 for (
int i( 0 ); i < nmbOfOutputParticles; ++i )
CexmcPhaseSpaceOutVector outVec
static constexpr double GeV
static constexpr double pi
The documentation for this class was generated from the following files: