302 if (aCrossSection > 0.0)
306 #ifdef debug_G4Scatterer 307 G4cout <<
"be4 FinalState 1(p,e,m): " 318 if(!products || products->size() == 0)
return products;
320 #ifdef debug_G4Scatterer 327 #ifdef debug_G4Scatterer 328 G4cout <<
" FinalState 1: " 329 <<
final->Get4Momentum()<<
" " 330 <<
final->Get4Momentum().mag() ;
333 if(products->size() == 1)
return products;
334 final=products->operator[](1);
335 #ifdef debug_G4Scatterer 337 <<
final->Get4Momentum() <<
" " 338 <<
final->Get4Momentum().mag() <<
" " <<
G4endl;
341 final= products->operator[](0);
343 if(products->size()==2)
345 final=products->operator[](1);
346 pFinal +=
final->Get4Momentum();
349 #ifdef debug_G4Scatterer 350 if ( (pInitial-pFinal).mag() > 0.1*
MeV )
352 G4cout <<
"G4Scatterer: momentum imbalance, pInitial= " <<pInitial <<
" pFinal= " <<pFinal<<
G4endl;
357 for(
size_t hpw=0; hpw<products->size(); hpw++)
359 energyBalance-=products->operator[](hpw)->Get4Momentum().t();
360 pxBalance-=products->operator[](hpw)->Get4Momentum().vect().x();
361 pyBalance-=products->operator[](hpw)->Get4Momentum().vect().y();
362 pzBalance-=products->operator[](hpw)->Get4Momentum().vect().z();
363 chargeBalance-=
G4lrint(products->operator[](hpw)->GetDefinition()->GetPDGCharge());
364 baryonBalance-=products->operator[](hpw)->GetDefinition()->GetBaryonNumber();
366 if(getenv(
"ScattererEnergyBalanceCheck"))
367 std::cout <<
"DEBUGGING energy balance A: " 375 if(chargeBalance !=0 )
379 for(
size_t hpw=0; hpw<products->size(); hpw++)
381 G4cout << products->operator[](hpw)->GetDefinition()->GetParticleName()<<
G4endl;
384 "Problem in ChargeBalance");
const G4ParticleDefinition * GetDefinition() const
G4int GetBaryonNumber() const
const G4VCollision * FindCollision(const G4KineticTrack &trk1, const G4KineticTrack &trk2) const
const G4String & GetParticleName() const
virtual G4double CrossSection(const G4KineticTrack &trk1, const G4KineticTrack &trk2) const
G4GLOB_DLL std::ostream G4cout
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
virtual G4KineticTrackVector * FinalState(const G4KineticTrack &trk1, const G4KineticTrack &trk2) const =0
G4double GetPDGCharge() const
const G4LorentzVector & Get4Momentum() const