Geant4-11
Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes
G4CascadeCheckBalance Class Reference

#include <G4CascadeCheckBalance.hh>

Inheritance diagram for G4CascadeCheckBalance:
G4VCascadeCollider

Public Member Functions

G4bool baryonOkay () const
 
G4bool chargeOkay () const
 
void collide (const G4Fragment &fragment, G4CollisionOutput &output)
 
void collide (const G4Fragment &target, const std::vector< G4InuclElementaryParticle > &particles)
 
void collide (const G4Fragment &target, const std::vector< G4InuclNuclei > &fragments)
 
void collide (G4InuclParticle *bullet, G4InuclParticle *target, const std::vector< G4CascadParticle > &particles)
 
void collide (G4InuclParticle *bullet, G4InuclParticle *target, const std::vector< G4InuclElementaryParticle > &particles)
 
void collide (G4InuclParticle *bullet, G4InuclParticle *target, G4CollisionOutput &output)
 
void collide (G4InuclParticle *bullet, G4InuclParticle *target, G4CollisionOutput &output, const std::vector< G4CascadParticle > &cparticles)
 
G4int deltaB () const
 
G4double deltaE () const
 
G4double deltaKE () const
 
G4LorentzVector deltaLV () const
 
G4double deltaP () const
 
G4int deltaQ () const
 
G4int deltaS () const
 
G4bool ekinOkay () const
 
G4bool energyOkay () const
 
 G4CascadeCheckBalance (const G4String &owner="G4CascadeCheckBalance")
 
 G4CascadeCheckBalance (G4double relative, G4double absolute, const G4String &owner="G4CascadeCheckBalance")
 
G4bool momentumOkay () const
 
G4bool okay () const
 
G4double relativeE () const
 
G4double relativeKE () const
 
G4double relativeP () const
 
void setAbsoluteLimit (G4double limit)
 
void setLimits (G4double relative, G4double absolute)
 
void setOwner (const G4String &owner)
 
void setRelativeLimit (G4double limit)
 
virtual void setVerboseLevel (G4int verbose=0)
 
G4bool strangeOkay () const
 
virtual ~G4CascadeCheckBalance ()
 

Static Public Attributes

static const G4double tolerance = 1e-6
 

Protected Member Functions

G4double ekin (const G4LorentzVector &p) const
 
virtual void setName (const G4String &name)
 

Protected Attributes

G4String theName
 
G4int verboseLevel
 

Private Member Functions

 G4CascadeCheckBalance (const G4CascadeCheckBalance &)
 
G4CascadeCheckBalanceoperator= (const G4CascadeCheckBalance &)
 

Private Attributes

G4double absoluteLimit
 
G4LorentzVector final
 
G4int finalBaryon
 
G4int finalCharge
 
G4int finalStrange
 
G4LorentzVector initial
 
G4int initialBaryon
 
G4int initialCharge
 
G4int initialStrange
 
G4double relativeLimit
 
G4CollisionOutput tempOutput
 

Detailed Description

Definition at line 64 of file G4CascadeCheckBalance.hh.

Constructor & Destructor Documentation

◆ G4CascadeCheckBalance() [1/3]

G4CascadeCheckBalance::G4CascadeCheckBalance ( const G4String owner = "G4CascadeCheckBalance")
explicit

◆ G4CascadeCheckBalance() [2/3]

G4CascadeCheckBalance::G4CascadeCheckBalance ( G4double  relative,
G4double  absolute,
const G4String owner = "G4CascadeCheckBalance" 
)

Definition at line 77 of file G4CascadeCheckBalance.cc.

80 : G4VCascadeCollider(owner), relativeLimit(relative),
81 absoluteLimit(absolute), initialBaryon(0), finalBaryon(0),
83 finalStrange(0) {}

◆ ~G4CascadeCheckBalance()

virtual G4CascadeCheckBalance::~G4CascadeCheckBalance ( )
inlinevirtual

Definition at line 72 of file G4CascadeCheckBalance.hh.

72{};

◆ G4CascadeCheckBalance() [3/3]

G4CascadeCheckBalance::G4CascadeCheckBalance ( const G4CascadeCheckBalance )
private

Member Function Documentation

◆ baryonOkay()

G4bool G4CascadeCheckBalance::baryonOkay ( ) const

Definition at line 330 of file G4CascadeCheckBalance.cc.

330 {
331 G4bool bokay = (deltaB() == 0); // Must be perfect!
332
333 if (verboseLevel && !bokay)
334 G4cerr << theName << ": Baryon number VIOLATED " << deltaB() << G4endl;
335 return bokay;
336}
bool G4bool
Definition: G4Types.hh:86
G4GLOB_DLL std::ostream G4cerr
#define G4endl
Definition: G4ios.hh:57

References deltaB(), G4cerr, G4endl, G4VCascadeCollider::theName, and G4VCascadeCollider::verboseLevel.

Referenced by G4CascadeInterface::checkFinalResult(), okay(), and G4CascadeInterface::throwNonConservationFailure().

◆ chargeOkay()

G4bool G4CascadeCheckBalance::chargeOkay ( ) const

Definition at line 338 of file G4CascadeCheckBalance.cc.

338 {
339 G4bool qokay = (deltaQ() == 0); // Must be perfect!
340
341 if (verboseLevel && !qokay)
342 G4cerr << theName << ": Charge conservation VIOLATED " << deltaQ()
343 << G4endl;
344 return qokay;
345}

References deltaQ(), G4cerr, G4endl, G4VCascadeCollider::theName, and G4VCascadeCollider::verboseLevel.

Referenced by G4CascadeInterface::checkFinalResult(), okay(), and G4CascadeInterface::throwNonConservationFailure().

◆ collide() [1/7]

void G4CascadeCheckBalance::collide ( const G4Fragment fragment,
G4CollisionOutput output 
)

Definition at line 156 of file G4CascadeCheckBalance.cc.

157 {
158 if (verboseLevel)
159 G4cout << " >>> G4CascadeCheckBalance(" << theName << ")::collide(<FRAG>)"
160 << G4endl;
161
162 // Copy initial state directly from fragment (no bullet/target sums)
163 initial = fragment.GetMomentum()/GeV; // G4Fragment returns MeV
164 initialCharge = fragment.GetZ_asInt();
165 initialBaryon = fragment.GetA_asInt();
166 initialStrange = 0; // No hypernuclei at present
167
168 // Final state totals are computed for us
169 final = output.getTotalOutputMomentum();
170
171 // Remove electron masses when internal conversion occurs
172 G4double elMass = 0.;
173 std::vector<G4InuclElementaryParticle>& outParts =
174 output.getOutgoingParticles();
175 G4int nelec = 0;
176 for (G4int i = 0; i < output.numberOfOutgoingParticles(); i++) {
177 if (outParts[i].getDefinition() == G4Electron::Electron() ) {
178 elMass += outParts[i].getDefinition()->GetPDGMass();
179 ++nelec;
180 }
181 }
182 if(nelec > 0) {
183 initial += G4LorentzVector(0.,0.,0.,elMass/GeV);
184 initialCharge -= nelec;
185 }
186
188 finalCharge = output.getTotalCharge();
190
191 // Report results
192 if (verboseLevel) {
193 G4cout << " initial px " << initial.px() << " py " << initial.py()
194 << " pz " << initial.pz() << " E " << initial.e()
195 << " baryon " << initialBaryon << " charge " << initialCharge
196 << " strange " << initialStrange << G4endl
197 << " final px " << final.px() << " py " << final.py()
198 << " pz " << final.pz() << " E " << final.e()
199 << " baryon " << finalBaryon << " charge " << finalCharge
200 << " strange " << finalStrange << G4endl;
201 }
202}
CLHEP::HepLorentzVector G4LorentzVector
static constexpr double GeV
Definition: G4SIunits.hh:203
double G4double
Definition: G4Types.hh:83
int G4int
Definition: G4Types.hh:85
G4GLOB_DLL std::ostream G4cout
G4int numberOfOutgoingParticles() const
G4int getTotalStrangeness() const
G4LorentzVector getTotalOutputMomentum() const
G4int getTotalBaryonNumber() const
G4int getTotalCharge() const
const std::vector< G4InuclElementaryParticle > & getOutgoingParticles() const
static G4Electron * Electron()
Definition: G4Electron.cc:93
const G4LorentzVector & GetMomentum() const
Definition: G4Fragment.hh:323
G4int GetZ_asInt() const
Definition: G4Fragment.hh:276
G4int GetA_asInt() const
Definition: G4Fragment.hh:271

References CLHEP::HepLorentzVector::e(), G4Electron::Electron(), finalBaryon, finalCharge, finalStrange, G4cout, G4endl, G4Fragment::GetA_asInt(), G4Fragment::GetMomentum(), G4CollisionOutput::getOutgoingParticles(), G4CollisionOutput::getTotalBaryonNumber(), G4CollisionOutput::getTotalCharge(), G4CollisionOutput::getTotalOutputMomentum(), G4CollisionOutput::getTotalStrangeness(), G4Fragment::GetZ_asInt(), GeV, initial, initialBaryon, initialCharge, initialStrange, G4CollisionOutput::numberOfOutgoingParticles(), CLHEP::HepLorentzVector::px(), CLHEP::HepLorentzVector::py(), CLHEP::HepLorentzVector::pz(), G4VCascadeCollider::theName, and G4VCascadeCollider::verboseLevel.

◆ collide() [2/7]

void G4CascadeCheckBalance::collide ( const G4Fragment target,
const std::vector< G4InuclElementaryParticle > &  particles 
)

Definition at line 219 of file G4CascadeCheckBalance.cc.

220 {
221 if (verboseLevel)
222 G4cout << " >>> G4CascadeCheckBalance(" << theName
223 << ")::collide(<FRAG>,<vector>)" << G4endl;
224
225 tempOutput.reset(); // Buffer for processing
227 collide(target, tempOutput);
228}
void collide(G4InuclParticle *bullet, G4InuclParticle *target, G4CollisionOutput &output)
void addOutgoingParticles(const std::vector< G4InuclElementaryParticle > &particles)

References G4CollisionOutput::addOutgoingParticles(), collide(), G4cout, G4endl, G4CollisionOutput::reset(), tempOutput, G4VCascadeCollider::theName, and G4VCascadeCollider::verboseLevel.

◆ collide() [3/7]

void G4CascadeCheckBalance::collide ( const G4Fragment target,
const std::vector< G4InuclNuclei > &  fragments 
)

Definition at line 232 of file G4CascadeCheckBalance.cc.

233 {
234 if (verboseLevel)
235 G4cout << " >>> G4CascadeCheckBalance(" << theName << ")::collide(<vector>)"
236 << G4endl;
237
238 tempOutput.reset(); // Buffer for processing
239 tempOutput.addOutgoingNuclei(fragments);
240 collide(target, tempOutput);
241}
void addOutgoingNuclei(const std::vector< G4InuclNuclei > &nuclea)

References G4CollisionOutput::addOutgoingNuclei(), collide(), G4cout, G4endl, G4CollisionOutput::reset(), tempOutput, G4VCascadeCollider::theName, and G4VCascadeCollider::verboseLevel.

◆ collide() [4/7]

void G4CascadeCheckBalance::collide ( G4InuclParticle bullet,
G4InuclParticle target,
const std::vector< G4CascadParticle > &  particles 
)

Definition at line 245 of file G4CascadeCheckBalance.cc.

247 {
248 if (verboseLevel)
249 G4cout << " >>> G4CascadeCheckBalance(" << theName
250 << ")::collide(<cparticles>)" << G4endl;
251
252 tempOutput.reset(); // Buffer for processing
254 collide(bullet, target, tempOutput);
255}

References G4CollisionOutput::addOutgoingParticles(), collide(), G4cout, G4endl, G4CollisionOutput::reset(), tempOutput, G4VCascadeCollider::theName, and G4VCascadeCollider::verboseLevel.

◆ collide() [5/7]

void G4CascadeCheckBalance::collide ( G4InuclParticle bullet,
G4InuclParticle target,
const std::vector< G4InuclElementaryParticle > &  particles 
)

Definition at line 207 of file G4CascadeCheckBalance.cc.

209 {
210 if (verboseLevel)
211 G4cout << " >>> G4CascadeCheckBalance(" << theName << ")::collide(<vector>)"
212 << G4endl;
213
214 tempOutput.reset(); // Buffer for processing
216 collide(bullet, target, tempOutput);
217}

References G4CollisionOutput::addOutgoingParticles(), collide(), G4cout, G4endl, G4CollisionOutput::reset(), tempOutput, G4VCascadeCollider::theName, and G4VCascadeCollider::verboseLevel.

◆ collide() [6/7]

void G4CascadeCheckBalance::collide ( G4InuclParticle bullet,
G4InuclParticle target,
G4CollisionOutput output 
)
virtual

Implements G4VCascadeCollider.

Definition at line 88 of file G4CascadeCheckBalance.cc.

90 {
91 if (verboseLevel)
92 G4cout << " >>> G4CascadeCheckBalance(" << theName << ")::collide"
93 << G4endl;
94
95 initial *= 0.; // Fast reset; some colliders only have one pointer
96 if (bullet) initial += bullet->getMomentum();
97 if (target) initial += target->getMomentum();
98
99 // Baryon number, charge and strangeness must be computed "by hand"
100 initialCharge = 0;
101 if (bullet) initialCharge += G4int(bullet->getCharge());
102 if (target) initialCharge += G4int(target->getCharge());
103
105 dynamic_cast<G4InuclElementaryParticle*>(bullet);
107 dynamic_cast<G4InuclElementaryParticle*>(target);
108
109 G4InuclNuclei* nbullet = dynamic_cast<G4InuclNuclei*>(bullet);
110 G4InuclNuclei* ntarget = dynamic_cast<G4InuclNuclei*>(target);
111
113 ((pbullet ? pbullet->baryon() : nbullet ? nbullet->getA() : 0) +
114 (ptarget ? ptarget->baryon() : ntarget ? ntarget->getA() : 0) );
115
116 // NOTE: Currently we ignore possibility of hypernucleus target
117 initialStrange = 0;
118 if (pbullet) initialStrange += pbullet->getStrangeness();
119 if (ptarget) initialStrange += ptarget->getStrangeness();
120
121 G4int nelec = 0;
122 G4double elMass = 0.;
123 std::vector<G4InuclElementaryParticle>& outParts =
124 output.getOutgoingParticles();
125 for (G4int i = 0; i < output.numberOfOutgoingParticles(); i++) {
126 if (outParts[i].getDefinition() == G4Electron::Electron() ) {
127 elMass += outParts[i].getDefinition()->GetPDGMass();
128 ++nelec;
129 }
130 }
131 if(nelec > 0) {
132 initial += G4LorentzVector(0.,0.,0.,elMass/GeV);
133 initialCharge -= nelec;
134 }
135
136 // Final state totals are computed for us
137 final = output.getTotalOutputMomentum();
139 finalCharge = output.getTotalCharge();
141
142 // Report results
143 if (verboseLevel) {
144 G4cout << " initial px " << initial.px() << " py " << initial.py()
145 << " pz " << initial.pz() << " E " << initial.e()
146 << " baryon " << initialBaryon << " charge " << initialCharge
147 << " strange " << initialStrange << G4endl
148 << " final px " << final.px() << " py " << final.py()
149 << " pz " << final.pz() << " E " << final.e()
150 << " baryon " << finalBaryon << " charge " << finalCharge
151 << " strange " << finalStrange << G4endl;
152 }
153}
G4int getA() const
G4LorentzVector getMomentum() const
G4double getCharge() const

References G4InuclElementaryParticle::baryon(), CLHEP::HepLorentzVector::e(), G4Electron::Electron(), finalBaryon, finalCharge, finalStrange, G4cout, G4endl, G4InuclNuclei::getA(), G4InuclParticle::getCharge(), G4InuclParticle::getMomentum(), G4CollisionOutput::getOutgoingParticles(), G4InuclElementaryParticle::getStrangeness(), G4CollisionOutput::getTotalBaryonNumber(), G4CollisionOutput::getTotalCharge(), G4CollisionOutput::getTotalOutputMomentum(), G4CollisionOutput::getTotalStrangeness(), GeV, initial, initialBaryon, initialCharge, initialStrange, G4CollisionOutput::numberOfOutgoingParticles(), CLHEP::HepLorentzVector::px(), CLHEP::HepLorentzVector::py(), CLHEP::HepLorentzVector::pz(), G4VCascadeCollider::theName, and G4VCascadeCollider::verboseLevel.

Referenced by G4CascadeInterface::ApplyYourself(), G4CascadeInterface::checkFinalResult(), collide(), G4CascadeRecoilMaker::collide(), G4NucleiModel::generateParticleFate(), G4CascadeInterface::Propagate(), G4CascadeDeexciteBase::validateOutput(), and G4CascadeColliderBase::validateOutput().

◆ collide() [7/7]

void G4CascadeCheckBalance::collide ( G4InuclParticle bullet,
G4InuclParticle target,
G4CollisionOutput output,
const std::vector< G4CascadParticle > &  cparticles 
)

Definition at line 259 of file G4CascadeCheckBalance.cc.

262 {
263 if (verboseLevel)
264 G4cout << " >>> G4CascadeCheckBalance(" << theName
265 << ")::collide(<EP>,<CP>)" << G4endl;
266
267 tempOutput.reset(); // Buffer for processing
268 tempOutput.add(output);
270 collide(bullet, target, tempOutput);
271}
void add(const G4CollisionOutput &right)

References G4CollisionOutput::add(), G4CollisionOutput::addOutgoingParticles(), collide(), G4cout, G4endl, G4CollisionOutput::reset(), tempOutput, G4VCascadeCollider::theName, and G4VCascadeCollider::verboseLevel.

◆ deltaB()

G4int G4CascadeCheckBalance::deltaB ( ) const
inline

◆ deltaE()

G4double G4CascadeCheckBalance::deltaE ( ) const
inline

◆ deltaKE()

G4double G4CascadeCheckBalance::deltaKE ( ) const
inline

Definition at line 132 of file G4CascadeCheckBalance.hh.

132{ return (ekin(final) - ekin(initial)); }
G4double ekin(const G4LorentzVector &p) const

References ekin(), and initial.

Referenced by G4CascadeInterface::checkFinalResult(), ekinOkay(), and relativeKE().

◆ deltaLV()

G4LorentzVector G4CascadeCheckBalance::deltaLV ( ) const
inline

Definition at line 144 of file G4CascadeCheckBalance.hh.

144{ return final - initial; }

References initial.

Referenced by deltaP(), and G4CascadeRecoilMaker::fillRecoil().

◆ deltaP()

G4double G4CascadeCheckBalance::deltaP ( ) const
inline

Definition at line 138 of file G4CascadeCheckBalance.hh.

138{ return deltaLV().rho(); }
G4LorentzVector deltaLV() const

References deltaLV(), and CLHEP::HepLorentzVector::rho().

Referenced by momentumOkay(), relativeP(), and G4CascadeInterface::throwNonConservationFailure().

◆ deltaQ()

G4int G4CascadeCheckBalance::deltaQ ( ) const
inline

◆ deltaS()

G4int G4CascadeCheckBalance::deltaS ( ) const
inline

Definition at line 149 of file G4CascadeCheckBalance.hh.

149{ return (finalStrange- initialStrange); }

References finalStrange, and initialStrange.

Referenced by strangeOkay().

◆ ekin()

G4double G4CascadeCheckBalance::ekin ( const G4LorentzVector p) const
inlineprotected

Definition at line 153 of file G4CascadeCheckBalance.hh.

153{ return (p.e() - p.m()); }

References CLHEP::HepLorentzVector::e(), and CLHEP::HepLorentzVector::m().

Referenced by deltaKE(), and relativeKE().

◆ ekinOkay()

G4bool G4CascadeCheckBalance::ekinOkay ( ) const

Definition at line 293 of file G4CascadeCheckBalance.cc.

293 {
294 G4bool relokay = (std::abs(relativeKE()) < relativeLimit);
295 G4bool absokay = (std::abs(deltaKE()) < absoluteLimit);
296
297 if (verboseLevel && (!relokay || !absokay)) {
298 G4cerr << theName << ": Kinetic energy balance: relative "
299 << relativeKE() << (relokay ? " conserved" : " VIOLATED")
300 << " absolute " << deltaKE()
301 << (absokay ? " conserved" : " VIOLATED") << G4endl;
302 } else if (verboseLevel > 1) {
303 G4cout << theName << ": Kinetic energy balance: relative "
304 << relativeKE() << " conserved absolute " << deltaKE()
305 << " conserved" << G4endl;
306 }
307
308 return (relokay && absokay);
309}

References absoluteLimit, deltaKE(), G4cerr, G4cout, G4endl, relativeKE(), relativeLimit, G4VCascadeCollider::theName, and G4VCascadeCollider::verboseLevel.

◆ energyOkay()

G4bool G4CascadeCheckBalance::energyOkay ( ) const

Definition at line 275 of file G4CascadeCheckBalance.cc.

275 {
276 G4bool relokay = (std::abs(relativeE()) < relativeLimit);
277 G4bool absokay = (std::abs(deltaE()) < absoluteLimit);
278
279 if (verboseLevel && (!relokay || !absokay)) {
280 G4cerr << theName << ": Energy conservation: relative " << relativeE()
281 << (relokay ? " conserved" : " VIOLATED")
282 << " absolute " << deltaE()
283 << (absokay ? " conserved" : " VIOLATED") << G4endl;
284 } else if (verboseLevel > 1) {
285 G4cout << theName << ": Energy conservation: relative " << relativeE()
286 << " conserved absolute " << deltaE() << " conserved" << G4endl;
287 }
288
289 return (relokay && absokay);
290}

References absoluteLimit, deltaE(), G4cerr, G4cout, G4endl, relativeE(), relativeLimit, G4VCascadeCollider::theName, and G4VCascadeCollider::verboseLevel.

Referenced by okay(), and G4CascadeInterface::throwNonConservationFailure().

◆ momentumOkay()

G4bool G4CascadeCheckBalance::momentumOkay ( ) const

Definition at line 312 of file G4CascadeCheckBalance.cc.

312 {
313 G4bool relokay = (std::abs(relativeP()) < 10.*relativeLimit);
314 G4bool absokay = (std::abs(deltaP()) < 10.*absoluteLimit);
315
316 if (verboseLevel && (!relokay || !absokay)) {
317 G4cerr << theName << ": Momentum conservation: relative " << relativeP()
318 << (relokay ? " conserved" : " VIOLATED")
319 << " absolute " << deltaP()
320 << (absokay ? " conserved" : " VIOLATED") << G4endl;
321 } else if (verboseLevel > 1) {
322 G4cout << theName << ": Momentum conservation: relative " << relativeP()
323 << " conserved absolute " << deltaP() << " conserved" << G4endl;
324 }
325
326 return (relokay && absokay);
327}

References absoluteLimit, deltaP(), G4cerr, G4cout, G4endl, relativeLimit, relativeP(), G4VCascadeCollider::theName, and G4VCascadeCollider::verboseLevel.

Referenced by okay(), and G4CascadeInterface::throwNonConservationFailure().

◆ okay()

G4bool G4CascadeCheckBalance::okay ( ) const
inline

◆ operator=()

G4CascadeCheckBalance & G4CascadeCheckBalance::operator= ( const G4CascadeCheckBalance )
private

◆ relativeE()

G4double G4CascadeCheckBalance::relativeE ( ) const
inline

Definition at line 127 of file G4CascadeCheckBalance.hh.

127 {
128 return ( (std::abs(deltaE())<tolerance) ? 0. :
129 (initial.e()<tolerance) ? 1. : deltaE()/initial.e() );
130 }

References deltaE(), CLHEP::HepLorentzVector::e(), initial, and tolerance.

Referenced by energyOkay(), and G4CascadeInterface::throwNonConservationFailure().

◆ relativeKE()

G4double G4CascadeCheckBalance::relativeKE ( ) const
inline

Definition at line 133 of file G4CascadeCheckBalance.hh.

133 {
134 return ( (std::abs(deltaKE())<tolerance) ? 0. :
135 (ekin(initial)<tolerance) ? 1. : deltaKE()/ekin(initial) );
136 }

References deltaKE(), ekin(), initial, and tolerance.

Referenced by ekinOkay().

◆ relativeP()

G4double G4CascadeCheckBalance::relativeP ( ) const
inline

Definition at line 139 of file G4CascadeCheckBalance.hh.

139 {
140 return ( (std::abs(deltaP())<tolerance) ? 0. :
141 (initial.rho()<tolerance) ? 1. : deltaP()/initial.rho() );
142 }

References deltaP(), initial, CLHEP::HepLorentzVector::rho(), and tolerance.

Referenced by momentumOkay(), and G4CascadeInterface::throwNonConservationFailure().

◆ setAbsoluteLimit()

void G4CascadeCheckBalance::setAbsoluteLimit ( G4double  limit)
inline

Definition at line 82 of file G4CascadeCheckBalance.hh.

82{ absoluteLimit = limit; }

References absoluteLimit.

Referenced by setLimits().

◆ setLimits()

void G4CascadeCheckBalance::setLimits ( G4double  relative,
G4double  absolute 
)
inline

Definition at line 76 of file G4CascadeCheckBalance.hh.

76 {
77 setRelativeLimit(relative);
78 setAbsoluteLimit(absolute);
79 }
void setRelativeLimit(G4double limit)
void setAbsoluteLimit(G4double limit)

References setAbsoluteLimit(), and setRelativeLimit().

Referenced by G4CascadeInterface::G4CascadeInterface().

◆ setName()

virtual void G4VCascadeCollider::setName ( const G4String name)
inlineprotectedvirtualinherited

Definition at line 55 of file G4VCascadeCollider.hh.

55{ theName = name; }
const char * name(G4int ptype)

References G4InuclParticleNames::name(), and G4VCascadeCollider::theName.

Referenced by setOwner().

◆ setOwner()

void G4CascadeCheckBalance::setOwner ( const G4String owner)
inline

Definition at line 74 of file G4CascadeCheckBalance.hh.

74{ setName(owner); }
virtual void setName(const G4String &name)

References G4VCascadeCollider::setName().

◆ setRelativeLimit()

void G4CascadeCheckBalance::setRelativeLimit ( G4double  limit)
inline

Definition at line 81 of file G4CascadeCheckBalance.hh.

81{ relativeLimit = limit; }

References relativeLimit.

Referenced by setLimits().

◆ setVerboseLevel()

virtual void G4VCascadeCollider::setVerboseLevel ( G4int  verbose = 0)
inlinevirtualinherited

◆ strangeOkay()

G4bool G4CascadeCheckBalance::strangeOkay ( ) const

Definition at line 347 of file G4CascadeCheckBalance.cc.

347 {
348 G4bool sokay = (deltaS() == 0); // Must be perfect!
349
350 if (verboseLevel && !sokay)
351 G4cerr << theName << ": Strangeness conservation VIOLATED " << deltaS()
352 << G4endl;
353
354 return sokay;
355}

References deltaS(), G4cerr, G4endl, G4VCascadeCollider::theName, and G4VCascadeCollider::verboseLevel.

Field Documentation

◆ absoluteLimit

G4double G4CascadeCheckBalance::absoluteLimit
private

Definition at line 157 of file G4CascadeCheckBalance.hh.

Referenced by ekinOkay(), energyOkay(), momentumOkay(), and setAbsoluteLimit().

◆ final

G4LorentzVector G4CascadeCheckBalance::final
private

Definition at line 160 of file G4CascadeCheckBalance.hh.

◆ finalBaryon

G4int G4CascadeCheckBalance::finalBaryon
private

Definition at line 163 of file G4CascadeCheckBalance.hh.

Referenced by collide(), and deltaB().

◆ finalCharge

G4int G4CascadeCheckBalance::finalCharge
private

Definition at line 166 of file G4CascadeCheckBalance.hh.

Referenced by collide(), and deltaQ().

◆ finalStrange

G4int G4CascadeCheckBalance::finalStrange
private

Definition at line 169 of file G4CascadeCheckBalance.hh.

Referenced by collide(), and deltaS().

◆ initial

G4LorentzVector G4CascadeCheckBalance::initial
private

◆ initialBaryon

G4int G4CascadeCheckBalance::initialBaryon
private

Definition at line 162 of file G4CascadeCheckBalance.hh.

Referenced by collide(), and deltaB().

◆ initialCharge

G4int G4CascadeCheckBalance::initialCharge
private

Definition at line 165 of file G4CascadeCheckBalance.hh.

Referenced by collide(), and deltaQ().

◆ initialStrange

G4int G4CascadeCheckBalance::initialStrange
private

Definition at line 168 of file G4CascadeCheckBalance.hh.

Referenced by collide(), and deltaS().

◆ relativeLimit

G4double G4CascadeCheckBalance::relativeLimit
private

Definition at line 156 of file G4CascadeCheckBalance.hh.

Referenced by ekinOkay(), energyOkay(), momentumOkay(), and setRelativeLimit().

◆ tempOutput

G4CollisionOutput G4CascadeCheckBalance::tempOutput
private

Definition at line 171 of file G4CascadeCheckBalance.hh.

Referenced by collide().

◆ theName

G4String G4VCascadeCollider::theName
protectedinherited

◆ tolerance

const G4double G4CascadeCheckBalance::tolerance = 1e-6
static

Definition at line 66 of file G4CascadeCheckBalance.hh.

Referenced by relativeE(), relativeKE(), and relativeP().

◆ verboseLevel

G4int G4VCascadeCollider::verboseLevel
protectedinherited

Definition at line 53 of file G4VCascadeCollider.hh.

Referenced by baryonOkay(), chargeOkay(), G4IntraNucleiCascader::collide(), G4InuclCollider::collide(), G4LightTargetCollider::collide(), G4VCascadeDeexcitation::collide(), collide(), G4CascadeRecoilMaker::collide(), G4ElementaryParticleCollider::collide(), G4IntraNucleiCascader::copySecondaries(), G4IntraNucleiCascader::copyWoundedNucleus(), G4IntraNucleiCascader::decayTrappedParticle(), G4CascadeDeexcitation::deExcite(), G4InuclCollider::deexcite(), G4PreCompoundDeexcitation::deExcite(), G4BigBanger::deExcite(), G4EquilibriumEvaporator::deExcite(), G4EvaporationInuclCollider::deExcite(), G4Fissioner::deExcite(), G4NonEquilibriumEvaporator::deExcite(), ekinOkay(), energyOkay(), G4EquilibriumEvaporator::explosion(), G4CascadeDeexciteBase::explosion(), G4CascadeRecoilMaker::fillRecoil(), G4IntraNucleiCascader::finalize(), G4IntraNucleiCascader::finishCascade(), G4VCascadeCollider::G4VCascadeCollider(), G4BigBanger::generateBangInSCM(), G4IntraNucleiCascader::generateCascade(), G4BigBanger::generateMomentumModules(), G4ElementaryParticleCollider::generateMultiplicity(), G4ElementaryParticleCollider::generateSCMfinalState(), G4ElementaryParticleCollider::generateSCMmuonAbsorption(), G4ElementaryParticleCollider::generateSCMpionAbsorption(), G4ElementaryParticleCollider::generateSCMpionNAbsorption(), G4BigBanger::generateX(), G4EquilibriumEvaporator::getAF(), G4Fissioner::getC2(), G4EquilibriumEvaporator::getE0(), G4NonEquilibriumEvaporator::getE0(), G4NonEquilibriumEvaporator::getMatrixElement(), G4NonEquilibriumEvaporator::getParLev(), G4EquilibriumEvaporator::getPARLEVDEN(), G4EquilibriumEvaporator::getQF(), G4Fissioner::getZopt(), G4CascadeRecoilMaker::goodNucleus(), G4EquilibriumEvaporator::goodRemnant(), G4CascadeColliderBase::inelasticInteractionPossible(), G4IntraNucleiCascader::initialize(), G4CascadeDeexciteBase::makeFragment(), G4CascadeRecoilMaker::makeRecoilFragment(), G4CascadeRecoilMaker::makeRecoilNuclei(), G4BigBanger::maxProbability(), momentumOkay(), G4IntraNucleiCascader::newCascade(), G4InuclCollider::photonuclearOkay(), G4ElementaryParticleCollider::pionNucleonAbsorption(), G4Fissioner::potentialMinimization(), G4IntraNucleiCascader::preloadCascade(), G4IntraNucleiCascader::processSecondary(), G4IntraNucleiCascader::processTrappedParticle(), G4IntraNucleiCascader::releaseSecondary(), G4IntraNucleiCascader::rescatter(), G4InuclCollider::rescatter(), G4IntraNucleiCascader::setupCascade(), G4InuclCollider::setVerboseLevel(), G4LightTargetCollider::setVerboseLevel(), G4VCascadeCollider::setVerboseLevel(), strangeOkay(), G4InuclCollider::useCascadeDeexcitation(), G4InuclCollider::usePreCompoundDeexcitation(), G4CascadeDeexciteBase::validateOutput(), G4CascadeColliderBase::validateOutput(), G4CascadeRecoilMaker::wholeEvent(), and G4BigBanger::xProbability().


The documentation for this class was generated from the following files: