44 #ifdef CEXMC_USE_GENBOD 
   53     extern int  genbod_( 
void );
 
   57 extern struct  genbod_in_data
 
   66 extern struct  genbod_out_data
 
   73 CexmcGenbod::CexmcGenbod()
 
   80 G4bool  CexmcGenbod::CheckKinematics( 
void )
 
   83     for ( CexmcPhaseSpaceInVector::const_iterator  k( inVec.begin() );
 
   84                                                         k != inVec.end(); ++k )
 
   86         totalEnergy += ( *k )->e();
 
   94     return totalEnergy - totalMass > 0.0f + 
epsilon;
 
   98 G4double  CexmcGenbod::Generate( 
void )
 
  100     genin_.tecm = totalEnergy / 
GeV;
 
  104     float ( *pcm )[ 5 ]( &genout_.pcm[ 0 ] );
 
  106     for ( CexmcPhaseSpaceOutVector::iterator  k( outVec.begin() );
 
  107                                                         k != outVec.end(); ++k )
 
  109         k->lVec->setPx( ( *pcm )[ 0 ] * 
GeV );
 
  110         k->lVec->setPy( ( *pcm )[ 1 ] * GeV );
 
  111         k->lVec->setPz( ( *pcm )[ 2 ] * GeV );
 
  112         k->lVec->setE( ( *pcm++ )[ 3 ] * GeV );
 
  119 void  CexmcGenbod::ParticleChangeHook( 
void )
 
  121     size_t  nmbOfOutputParticles( outVec.size() );
 
  123     if ( nmbOfOutputParticles < 2 || nmbOfOutputParticles > 18 )
 
  126     genin_.np = nmbOfOutputParticles;
 
  128     float *  amass( genin_.amass );
 
  130     for ( CexmcPhaseSpaceOutVector::const_iterator  k( outVec.begin() );
 
  131                                                         k != outVec.end(); ++k )
 
  133         *amass++ = k->mass / 
GeV;
 
  138 void  CexmcGenbod::FermiEnergyDepStatusChangeHook( 
void )
 
  140     genin_.kgenev = fermiEnergyDepIsOn ? 2 : 1;
 
static constexpr double GeV
 
double epsilon(double density, double temperature)