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

#include <G4eAdjointMultipleScattering.hh>

Inheritance diagram for G4eAdjointMultipleScattering:
G4VMultipleScattering G4VContinuousDiscreteProcess G4VProcess

Public Member Functions

void AddEmModel (G4int order, G4VEmModel *, const G4Region *region=nullptr)
 
G4VParticleChange * AlongStepDoIt (const G4Track &, const G4Step &) override
 
G4double AlongStepGetPhysicalInteractionLength (const G4Track &, G4double previousStepSize, G4double currentMinimalStep, G4double &currentSafety, G4GPILSelection *selection) override
 
G4double AlongStepGPIL (const G4Track &track, G4double previousStepSize, G4double currentMinimumStep, G4double &proposedSafety, G4GPILSelection *selection)
 
virtual G4VParticleChange * AtRestDoIt (const G4Track &, const G4Step &)
 
virtual G4double AtRestGetPhysicalInteractionLength (const G4Track &, G4ForceCondition *)
 
G4double AtRestGPIL (const G4Track &track, G4ForceCondition *condition)
 
void BuildPhysicsTable (const G4ParticleDefinition &) override
 
virtual void BuildWorkerPhysicsTable (const G4ParticleDefinition &part)
 
G4double ContinuousStepLimit (const G4Track &track, G4double previousStepSize, G4double currentMinimalStep, G4double &currentSafety)
 
void DumpInfo () const override
 
G4VMscModel * EmModel (size_t index=0) const
 
virtual void EndTracking ()
 
const G4ParticleDefinition * FirstParticle () const
 
 G4eAdjointMultipleScattering (const G4String &processName="msc")
 
 G4eAdjointMultipleScattering (G4eAdjointMultipleScattering &)=delete
 
G4double GeomFactor () const
 
G4double GetCurrentInteractionLength () const
 
const G4VProcess * GetMasterProcess () const
 
G4VMscModel * GetModelByIndex (G4int idx=0, G4bool ver=false) const
 
G4double GetNumberOfInteractionLengthLeft () const
 
const G4String & GetPhysicsTableFileName (const G4ParticleDefinition *, const G4String &directory, const G4String &tableName, G4bool ascii=false)
 
G4double GetPILfactor () const
 
virtual const G4ProcessManager * GetProcessManager ()
 
const G4String & GetProcessName () const
 
G4int GetProcessSubType () const
 
G4ProcessType GetProcessType () const
 
G4double GetTotalNumberOfInteractionLengthTraversed () const
 
G4int GetVerboseLevel () const
 
G4bool isAlongStepDoItIsEnabled () const
 
G4bool IsApplicable (const G4ParticleDefinition &p) override
 
G4bool isAtRestDoItIsEnabled () const
 
G4bool isPostStepDoItIsEnabled () const
 
G4bool LateralDisplasmentFlag () const
 
G4double LowestKinEnergy () const
 
G4int NumberOfModels () const
 
G4bool operator!= (const G4VProcess &right) const
 
G4eAdjointMultipleScattering & operator= (const G4eAdjointMultipleScattering &right)=delete
 
G4bool operator== (const G4VProcess &right) const
 
G4double PolarAngleLimit () const
 
G4VParticleChange * PostStepDoIt (const G4Track &, const G4Step &) override
 
G4double PostStepGetPhysicalInteractionLength (const G4Track &, G4double previousStepSize, G4ForceCondition *condition) override
 
G4double PostStepGPIL (const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
 
void PreparePhysicsTable (const G4ParticleDefinition &) override
 
virtual void PrepareWorkerPhysicsTable (const G4ParticleDefinition &)
 
void ProcessDescription (std::ostream &) const override
 
G4double RangeFactor () const
 
virtual void ResetNumberOfInteractionLengthLeft ()
 
G4bool RetrievePhysicsTable (const G4ParticleDefinition *, const G4String &directory, G4bool ascii) override
 
G4VEmModel * SelectModel (G4double kinEnergy, size_t idx)
 
void SetEmModel (G4VMscModel *, G4int idx=0)
 
void SetIonisation (G4VEnergyLossProcess *)
 
void SetLowestKinEnergy (G4double val)
 
virtual void SetMasterProcess (G4VProcess *masterP)
 
void SetPILfactor (G4double value)
 
virtual void SetProcessManager (const G4ProcessManager *)
 
void SetProcessSubType (G4int)
 
void SetProcessType (G4ProcessType)
 
void SetStepLimitType (G4MscStepLimitType val)
 
void SetVerboseLevel (G4int value)
 
G4double Skin () const
 
void StartTracking (G4Track *) override
 
G4MscStepLimitType StepLimitType () const
 
G4bool StorePhysicsTable (const G4ParticleDefinition *, const G4String &directory, G4bool ascii=false) override
 
void StreamProcessInfo (std::ostream &outFile) const override
 
G4bool UseBaseMaterial () const
 
 ~G4eAdjointMultipleScattering () override
 

Static Public Member Functions

static const G4String & GetProcessTypeName (G4ProcessType)
 

Protected Member Functions

void ClearNumberOfInteractionLengthLeft ()
 
G4double GetContinuousStepLimit (const G4Track &track, G4double previousStepSize, G4double currentMinimalStep, G4double &currentSafety) override
 
G4GPILSelection GetGPILSelection () const
 
G4double GetMeanFreePath (const G4Track &track, G4double, G4ForceCondition *condition) override
 
void InitialiseProcess (const G4ParticleDefinition *) override
 
void SetGPILSelection (G4GPILSelection selection)
 
void SubtractNumberOfInteractionLengthLeft (G4double prevStepSize)
 

Protected Attributes

G4ParticleChange aParticleChange
 
const G4ProcessManager * aProcessManager = nullptr
 
G4double currentInteractionLength = -1.0
 
G4bool enableAlongStepDoIt = true
 
G4bool enableAtRestDoIt = true
 
G4bool enablePostStepDoIt = true
 
G4ParticleChangeForMSC fParticleChange
 
G4VParticleChange * pParticleChange = nullptr
 
G4double theInitialNumberOfInteractionLength = -1.0
 
G4double theNumberOfInteractionLengthLeft = -1.0
 
G4String thePhysicsTableFileName
 
G4double thePILfactor = 1.0
 
G4String theProcessName
 
G4int theProcessSubType = -1
 
G4ProcessType theProcessType = fNotDefined
 
G4int verboseLevel = 0
 

Private Member Functions

void StreamInfo (std::ostream &outFile, const G4ParticleDefinition &, G4bool rst=false) const
 

Private Attributes

G4bool baseMat = false
 
G4VMscModel * currentModel = nullptr
 
const G4ParticleDefinition * currParticle = nullptr
 
G4LossTableManager * emManager
 
G4double facrange = 0.04
 
G4VEnergyLossProcess * fIonisation = nullptr
 
const G4ParticleDefinition * firstParticle = nullptr
 
G4bool fIsInitialized = false
 
G4ThreeVector fNewDirection
 
G4ThreeVector fNewPosition
 
G4bool fPositionChanged = false
 
G4ProcessTable * fProcessTable = nullptr
 
G4double geomMin
 
G4double gPathLength = 0.0
 
G4bool isActive = false
 
G4bool isIon = false
 
G4bool latDisplacement = true
 
G4double lowestKinEnergy
 
G4VProcess * masterProcessShadow = nullptr
 
G4double minDisplacement2
 
G4EmModelManager * modelManager
 
std::vector< G4VMscModel * > mscModels
 
G4int numberOfModels = 0
 
G4double physStepLimit = 0.0
 
G4SafetyHelper * safetyHelper = nullptr
 
G4MscStepLimitType stepLimit = fUseSafety
 
G4EmParameters * theParameters
 
G4double tPathLength = 0.0
 
G4GPILSelection valueGPILSelection = CandidateForSelection
 

Detailed Description

Definition at line 41 of file G4eAdjointMultipleScattering.hh.

Constructor & Destructor Documentation

◆ G4eAdjointMultipleScattering() [1/2]

G4eAdjointMultipleScattering::G4eAdjointMultipleScattering ( const G4String &  processName = "msc")
explicit

Definition at line 45 of file G4eAdjointMultipleScattering.cc.

47 : G4VMultipleScattering(processName)
48{}
G4VMultipleScattering(const G4String &name="msc", G4ProcessType type=fElectromagnetic)

◆ ~G4eAdjointMultipleScattering()

G4eAdjointMultipleScattering::~G4eAdjointMultipleScattering ( )
override

Definition at line 51 of file G4eAdjointMultipleScattering.cc.

51{}

◆ G4eAdjointMultipleScattering() [2/2]

G4eAdjointMultipleScattering::G4eAdjointMultipleScattering ( G4eAdjointMultipleScattering &  )
delete

Member Function Documentation

◆ AddEmModel()

void G4VMultipleScattering::AddEmModel ( G4int  order,
G4VEmModel *  ptr,
const G4Region *  region = nullptr 
)
inherited

◆ AlongStepDoIt()

G4VParticleChange * G4VMultipleScattering::AlongStepDoIt ( const G4Track &  track,
const G4Step &  step 
)
overridevirtualinherited

Reimplemented from G4VContinuousDiscreteProcess.

Definition at line 401 of file G4VMultipleScattering.cc.

402{
407 fPositionChanged = false;
408
409 G4double geomLength = step.GetStepLength();
410
411 // very small step - no msc
412 if(!isActive) {
413 tPathLength = geomLength;
414
415 // sample msc
416 } else {
417 G4double range =
419 track.GetMaterialCutsCouple());
420
422
423 /*
424 if(currParticle->GetPDGMass() > 0.9*GeV)
425 G4cout << "G4VMsc::AlongStepDoIt: GeomLength= "
426 << geomLength
427 << " tPathLength= " << tPathLength
428 << " physStepLimit= " << physStepLimit
429 << " dr= " << range - tPathLength
430 << " ekin= " << track.GetKineticEnergy() << G4endl;
431 */
432 // protection against wrong t->g->t conversion
434
435 // do not sample scattering at the last or at a small step
436 if(tPathLength < range && tPathLength > geomMin) {
437
438 static const G4double minSafety = 1.20*CLHEP::nm;
439 static const G4double sFact = 0.99;
440
442 step.GetPostStepPoint()->GetMomentumDirection(),minSafety);
443
444 G4double r2 = displacement.mag2();
445 //G4cout << " R= " << sqrt(r2) << " Rmin= " << sqrt(minDisplacement2)
446 // << " flag= " << fDispBeyondSafety << G4endl;
447 if(r2 > minDisplacement2) {
448
449 fPositionChanged = true;
450 G4double dispR = std::sqrt(r2);
451 G4double postSafety =
453 //G4cout<<" R= "<< dispR<<" postSafety= "<<postSafety<<G4endl;
454
455 // far away from geometry boundary
456 if(postSafety > 0.0 && dispR <= postSafety) {
457 fNewPosition += displacement;
458
459 //near the boundary
460 } else {
461 // displaced point is definitely within the volume
462 //G4cout<<" R= "<<dispR<<" postSafety= "<<postSafety<<G4endl;
463 if(dispR < postSafety) {
464 fNewPosition += displacement;
465
466 // reduced displacement
467 } else if(postSafety > geomMin) {
468 fNewPosition += displacement*(postSafety/dispR);
469
470 // very small postSafety
471 } else {
472 fPositionChanged = false;
473 }
474 }
475 if(fPositionChanged) {
478 }
479 }
480 }
481 }
483 return &fParticleChange;
484}
double G4double
Definition: G4Types.hh:83
double mag2() const
void ProposeMomentumDirection(const G4ThreeVector &Pfinal)
void ProposePosition(const G4ThreeVector &finalPosition)
G4double ComputeSafety(const G4ThreeVector &pGlobalPoint, G4double maxRadius=DBL_MAX)
void ReLocateWithinVolume(const G4ThreeVector &pGlobalPoint)
const G4ThreeVector & GetPosition() const
const G4ThreeVector & GetMomentumDirection() const
G4double GetStepLength() const
G4StepPoint * GetPostStepPoint() const
G4double GetKineticEnergy() const
const G4MaterialCutsCouple * GetMaterialCutsCouple() const
virtual G4double ComputeTrueStepLength(G4double geomPathLength)=0
G4double GetRange(const G4ParticleDefinition *part, G4double kineticEnergy, const G4MaterialCutsCouple *couple)
Definition: G4VMscModel.cc:189
virtual G4ThreeVector & SampleScattering(const G4ThreeVector &, G4double safety)=0
G4ParticleChangeForMSC fParticleChange
const G4ParticleDefinition * currParticle
void ProposeTrueStepLength(G4double truePathLength)
static constexpr double nm
Definition: SystemOfUnits.h:93
T min(const T t1, const T t2)
brief Return the smallest of the two arguments

References G4SafetyHelper::ComputeSafety(), G4VMscModel::ComputeTrueStepLength(), G4VMultipleScattering::currentModel, G4VMultipleScattering::currParticle, G4VMultipleScattering::fNewPosition, G4VMultipleScattering::fParticleChange, G4VMultipleScattering::fPositionChanged, G4VMultipleScattering::geomMin, G4Track::GetKineticEnergy(), G4Track::GetMaterialCutsCouple(), G4StepPoint::GetMomentumDirection(), G4StepPoint::GetPosition(), G4Step::GetPostStepPoint(), G4VMscModel::GetRange(), G4Step::GetStepLength(), G4VMultipleScattering::isActive, CLHEP::Hep3Vector::mag2(), G4INCL::Math::min(), G4VMultipleScattering::minDisplacement2, CLHEP::nm, G4VMultipleScattering::physStepLimit, G4ParticleChangeForMSC::ProposeMomentumDirection(), G4ParticleChangeForMSC::ProposePosition(), G4VParticleChange::ProposeTrueStepLength(), G4SafetyHelper::ReLocateWithinVolume(), G4VMultipleScattering::safetyHelper, G4VMscModel::SampleScattering(), and G4VMultipleScattering::tPathLength.

◆ AlongStepGetPhysicalInteractionLength()

G4double G4VMultipleScattering::AlongStepGetPhysicalInteractionLength ( const G4Track &  track,
G4double  previousStepSize,
G4double  currentMinimalStep,
G4double &  currentSafety,
G4GPILSelection *  selection 
)
overridevirtualinherited

Reimplemented from G4VContinuousDiscreteProcess.

Definition at line 334 of file G4VMultipleScattering.cc.

340{
341 // get Step limit proposed by the process
342 *selection = NotCandidateForSelection;
343 physStepLimit = gPathLength = tPathLength = currentMinimalStep;
344
345 G4double ekin = track.GetKineticEnergy();
346 /*
347 G4cout << "MSC::AlongStepGPIL: Ekin= " << ekin
348 << " " << currParticle->GetParticleName()
349 << " currMod " << currentModel
350 << G4endl;
351 */
352 // isIon flag is used only to select a model
353 if(isIon) {
355 }
356 const G4MaterialCutsCouple* couple = track.GetMaterialCutsCouple();
357
358 // select new model
359 if(1 < numberOfModels) {
360 currentModel = static_cast<G4VMscModel*>(SelectModel(ekin,couple->GetIndex()));
361 }
363 // msc is active is model is active, energy above the limit,
364 // and step size is above the limit;
365 // if it is active msc may limit the step
367 && ekin >= lowestKinEnergy) {
368 isActive = true;
369 tPathLength =
371 if (tPathLength < physStepLimit) {
372 *selection = CandidateForSelection;
373 }
374 } else { isActive = false; }
375
376 //if(currParticle->GetPDGMass() > GeV)
377 /*
378 G4cout << "MSC::AlongStepGPIL: Ekin= " << ekin
379 << " " << currParticle->GetParticleName()
380 << " gPathLength= " << gPathLength
381 << " tPathLength= " << tPathLength
382 << " currentMinimalStep= " << currentMinimalStep
383 << " isActive " << isActive << G4endl;
384 */
385 return gPathLength;
386}
@ CandidateForSelection
@ NotCandidateForSelection
const G4ParticleDefinition * GetParticleDefinition() const
void SetCurrentCouple(const G4MaterialCutsCouple *)
Definition: G4VEmModel.hh:472
G4bool IsActive(G4double kinEnergy) const
Definition: G4VEmModel.hh:795
virtual G4double ComputeTruePathLengthLimit(const G4Track &track, G4double &stepLimit)=0
G4VEmModel * SelectModel(G4double kinEnergy, size_t idx)
float proton_mass_c2
Definition: hepunit.py:274

References CandidateForSelection, G4VMscModel::ComputeTruePathLengthLimit(), G4VMultipleScattering::currentModel, G4VMultipleScattering::geomMin, G4MaterialCutsCouple::GetIndex(), G4Track::GetKineticEnergy(), G4Track::GetMaterialCutsCouple(), G4Track::GetParticleDefinition(), G4ParticleDefinition::GetPDGMass(), G4VMultipleScattering::gPathLength, G4VEmModel::IsActive(), G4VMultipleScattering::isActive, G4VMultipleScattering::isIon, G4VMultipleScattering::lowestKinEnergy, NotCandidateForSelection, G4VMultipleScattering::numberOfModels, G4VMultipleScattering::physStepLimit, source.hepunit::proton_mass_c2, G4VMultipleScattering::SelectModel(), G4VEmModel::SetCurrentCouple(), and G4VMultipleScattering::tPathLength.

Referenced by G4VMultipleScattering::GetContinuousStepLimit().

◆ AlongStepGPIL()

G4double G4VProcess::AlongStepGPIL ( const G4Track &  track,
G4double  previousStepSize,
G4double  currentMinimumStep,
G4double &  proposedSafety,
G4GPILSelection *  selection 
)
inlineinherited

Definition at line 461 of file G4VProcess.hh.

466{
467 return AlongStepGetPhysicalInteractionLength(track, previousStepSize,
468 currentMinimumStep, proposedSafety, selection);
469}
virtual G4double AlongStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4double currentMinimumStep, G4double &proposedSafety, G4GPILSelection *selection)=0

References G4VProcess::AlongStepGetPhysicalInteractionLength().

Referenced by G4SteppingManager::DefinePhysicalStepLength(), and G4ITStepProcessor::DoDefinePhysicalStepLength().

◆ AtRestDoIt()

virtual G4VParticleChange * G4VContinuousDiscreteProcess::AtRestDoIt ( const G4Track &  ,
const G4Step &   
)
inlinevirtualinherited

Implements G4VProcess.

Definition at line 87 of file G4VContinuousDiscreteProcess.hh.

90 { return 0; }

◆ AtRestGetPhysicalInteractionLength()

virtual G4double G4VContinuousDiscreteProcess::AtRestGetPhysicalInteractionLength ( const G4Track &  ,
G4ForceCondition *   
)
inlinevirtualinherited

Implements G4VProcess.

Definition at line 81 of file G4VContinuousDiscreteProcess.hh.

84 { return -1.0; }

◆ AtRestGPIL()

G4double G4VProcess::AtRestGPIL ( const G4Track &  track,
G4ForceCondition *  condition 
)
inlineinherited

Definition at line 472 of file G4VProcess.hh.

474{
476}
G4double condition(const G4ErrorSymMatrix &m)
G4double thePILfactor
Definition: G4VProcess.hh:352
virtual G4double AtRestGetPhysicalInteractionLength(const G4Track &track, G4ForceCondition *condition)=0

References G4VProcess::AtRestGetPhysicalInteractionLength(), condition(), and G4VProcess::thePILfactor.

Referenced by G4ITStepProcessor::GetAtRestIL(), and G4SteppingManager::InvokeAtRestDoItProcs().

◆ BuildPhysicsTable()

void G4VMultipleScattering::BuildPhysicsTable ( const G4ParticleDefinition &  part)
overridevirtualinherited

Reimplemented from G4VProcess.

Definition at line 223 of file G4VMultipleScattering.cc.

224{
225 const G4String& num = part.GetParticleName();
226 G4bool master = emManager->IsMaster();
227 if(1 < verboseLevel) {
228 G4cout << "### G4VMultipleScattering::BuildPhysicsTable() for "
229 << GetProcessName()
230 << " and particle " << num << " isIon: " << isIon
231 << " IsMaster: " << master << G4endl;
232 }
233 const G4VMultipleScattering* masterProcess =
234 static_cast<const G4VMultipleScattering*>(GetMasterProcess());
235
236 if(firstParticle == &part) {
237 /*
238 std::cout << "### G4VMultipleScattering::BuildPhysicsTable() for "
239 << GetProcessName() << " and particle " << num
240 << " IsMaster= " << G4LossTableManager::Instance()->IsMaster()
241 << " " << this << std::endl;
242 */
244
245 if(!master) {
246 // initialisation of models
247 /*
248 std::cout << "### G4VMultipleScattering::BuildPhysicsTable() for "
249 << GetProcessName() << " and particle " << num
250 << " Nmod= " << mscModels.size() << " NOT master" << std::endl;
251 */
252 baseMat = masterProcess->UseBaseMaterial();
253 for(G4int i=0; i<numberOfModels; ++i) {
255 if(nullptr == msc) { continue; }
256 G4VMscModel* msc0 = masterProcess->GetModelByIndex(i);
258 msc->SetCrossSectionTable(msc0->GetCrossSectionTable(), false);
259 msc->InitialiseLocal(firstParticle, msc0);
260 }
261 }
262 }
263 // protection against double printout
264 if(theParameters->IsPrintLocked()) { return; }
265
266 // explicitly defined printout by particle name
267 if(1 < verboseLevel ||
268 (0 < verboseLevel && (num == "e-" ||
269 num == "e+" || num == "mu+" ||
270 num == "mu-" || num == "proton"||
271 num == "pi+" || num == "pi-" ||
272 num == "kaon+" || num == "kaon-" ||
273 num == "alpha" || num == "anti_proton" ||
274 num == "GenericIon" || num == "alpha+" ||
275 num == "alpha++" )))
276 {
277 StreamInfo(G4cout, part);
278 }
279
280 if(1 < verboseLevel) {
281 G4cout << "### G4VMultipleScattering::BuildPhysicsTable() done for "
282 << GetProcessName()
283 << " and particle " << num << G4endl;
284 }
285}
bool G4bool
Definition: G4Types.hh:86
int G4int
Definition: G4Types.hh:85
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
G4bool IsPrintLocked() const
void BuildPhysicsTable(const G4ParticleDefinition *aParticle)
const G4String & GetParticleName() const
void SetCrossSectionTable(G4PhysicsTable *, G4bool isLocal)
Definition: G4VEmModel.cc:455
G4PhysicsTable * GetCrossSectionTable()
Definition: G4VEmModel.hh:870
void SetUseBaseMaterials(G4bool val)
Definition: G4VEmModel.hh:753
virtual void InitialiseLocal(const G4ParticleDefinition *, G4VEmModel *masterModel)
Definition: G4VEmModel.cc:204
G4LossTableManager * emManager
G4VMscModel * GetModelByIndex(G4int idx=0, G4bool ver=false) const
const G4ParticleDefinition * firstParticle
void StreamInfo(std::ostream &outFile, const G4ParticleDefinition &, G4bool rst=false) const
const G4VProcess * GetMasterProcess() const
Definition: G4VProcess.hh:518
G4int verboseLevel
Definition: G4VProcess.hh:356
const G4String & GetProcessName() const
Definition: G4VProcess.hh:382

References G4VMultipleScattering::baseMat, G4LossTableManager::BuildPhysicsTable(), G4VMultipleScattering::emManager, G4VMultipleScattering::firstParticle, G4cout, G4endl, G4VEmModel::GetCrossSectionTable(), G4VProcess::GetMasterProcess(), G4VMultipleScattering::GetModelByIndex(), G4ParticleDefinition::GetParticleName(), G4VProcess::GetProcessName(), G4VEmModel::InitialiseLocal(), G4VMultipleScattering::isIon, G4LossTableManager::IsMaster(), G4EmParameters::IsPrintLocked(), G4VMultipleScattering::numberOfModels, G4VEmModel::SetCrossSectionTable(), G4VEmModel::SetUseBaseMaterials(), G4VMultipleScattering::StreamInfo(), G4VMultipleScattering::theParameters, G4VMultipleScattering::UseBaseMaterial(), and G4VProcess::verboseLevel.

◆ BuildWorkerPhysicsTable()

void G4VProcess::BuildWorkerPhysicsTable ( const G4ParticleDefinition &  part)
virtualinherited

Reimplemented in G4BiasingProcessInterface.

Definition at line 200 of file G4VProcess.cc.

201{
202 BuildPhysicsTable(part);
203}
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
Definition: G4VProcess.hh:187

References G4VProcess::BuildPhysicsTable().

Referenced by G4BiasingProcessInterface::BuildWorkerPhysicsTable().

◆ ClearNumberOfInteractionLengthLeft()

void G4VProcess::ClearNumberOfInteractionLengthLeft ( )
inlineprotectedinherited

◆ ContinuousStepLimit()

G4double G4VMultipleScattering::ContinuousStepLimit ( const G4Track &  track,
G4double  previousStepSize,
G4double  currentMinimalStep,
G4double &  currentSafety 
)
inherited

Definition at line 513 of file G4VMultipleScattering.cc.

518{
519 return GetContinuousStepLimit(track,previousStepSize,currentMinimalStep,
520 currentSafety);
521}
G4double GetContinuousStepLimit(const G4Track &track, G4double previousStepSize, G4double currentMinimalStep, G4double &currentSafety) override

References G4VMultipleScattering::GetContinuousStepLimit().

◆ DumpInfo()

void G4eAdjointMultipleScattering::DumpInfo ( ) const
inlineoverridevirtual

Reimplemented from G4VProcess.

Definition at line 55 of file G4eAdjointMultipleScattering.hh.

void ProcessDescription(std::ostream &) const override

References G4cout, and ProcessDescription().

◆ EmModel()

G4VMscModel * G4VMultipleScattering::EmModel ( size_t  index = 0) const
inlineinherited

◆ EndTracking()

void G4VProcess::EndTracking ( )
virtualinherited

◆ FirstParticle()

const G4ParticleDefinition * G4VMultipleScattering::FirstParticle ( ) const
inlineinherited

Definition at line 366 of file G4VMultipleScattering.hh.

367{
368 return firstParticle;
369}

References G4VMultipleScattering::firstParticle.

◆ GeomFactor()

G4double G4VMultipleScattering::GeomFactor ( ) const
inlineinherited

◆ GetContinuousStepLimit()

G4double G4VMultipleScattering::GetContinuousStepLimit ( const G4Track &  track,
G4double  previousStepSize,
G4double  currentMinimalStep,
G4double &  currentSafety 
)
overrideprotectedvirtualinherited

Implements G4VContinuousDiscreteProcess.

Definition at line 497 of file G4VMultipleScattering.cc.

502{
504 G4double x = AlongStepGetPhysicalInteractionLength(track,previousStepSize,
505 currentMinimalStep,
506 currentSafety,
507 &selection);
508 return x;
509}
G4GPILSelection
G4double AlongStepGetPhysicalInteractionLength(const G4Track &, G4double previousStepSize, G4double currentMinimalStep, G4double &currentSafety, G4GPILSelection *selection) override

References G4VMultipleScattering::AlongStepGetPhysicalInteractionLength(), and NotCandidateForSelection.

Referenced by G4VMultipleScattering::ContinuousStepLimit().

◆ GetCurrentInteractionLength()

G4double G4VProcess::GetCurrentInteractionLength ( ) const
inlineinherited

◆ GetGPILSelection()

G4GPILSelection G4VContinuousDiscreteProcess::GetGPILSelection ( ) const
inlineprotectedinherited

◆ GetMasterProcess()

const G4VProcess * G4VProcess::GetMasterProcess ( ) const
inlineinherited

◆ GetMeanFreePath()

G4double G4VMultipleScattering::GetMeanFreePath ( const G4Track &  track,
G4double  ,
G4ForceCondition *  condition 
)
overrideprotectedvirtualinherited

Implements G4VContinuousDiscreteProcess.

Definition at line 525 of file G4VMultipleScattering.cc.

527{
528 *condition = Forced;
529 return DBL_MAX;
530}
@ Forced
#define DBL_MAX
Definition: templates.hh:62

References condition(), DBL_MAX, and Forced.

◆ GetModelByIndex()

G4VMscModel * G4VMultipleScattering::GetModelByIndex ( G4int  idx = 0,
G4bool  ver = false 
) const
inlineinherited

◆ GetNumberOfInteractionLengthLeft()

G4double G4VProcess::GetNumberOfInteractionLengthLeft ( ) const
inlineinherited

Definition at line 431 of file G4VProcess.hh.

432{
434}

References G4VProcess::theNumberOfInteractionLengthLeft.

◆ GetPhysicsTableFileName()

const G4String & G4VProcess::GetPhysicsTableFileName ( const G4ParticleDefinition *  particle,
const G4String &  directory,
const G4String &  tableName,
G4bool  ascii = false 
)
inherited

Definition at line 181 of file G4VProcess.cc.

186{
187 G4String thePhysicsTableFileExt;
188 if (ascii) thePhysicsTableFileExt = ".asc";
189 else thePhysicsTableFileExt = ".dat";
190
191 thePhysicsTableFileName = directory + "/";
192 thePhysicsTableFileName += tableName + "." + theProcessName + ".";
194 + thePhysicsTableFileExt;
195
197}
G4String thePhysicsTableFileName
Definition: G4VProcess.hh:344

References G4ParticleDefinition::GetParticleName(), G4VProcess::thePhysicsTableFileName, and G4VProcess::theProcessName.

Referenced by export_G4VProcess(), G4GammaGeneralProcess::RetrievePhysicsTable(), G4VEmProcess::RetrievePhysicsTable(), G4VEnergyLossProcess::RetrieveTable(), G4GammaGeneralProcess::StorePhysicsTable(), G4VEmProcess::StorePhysicsTable(), G4VMultipleScattering::StorePhysicsTable(), and G4VEnergyLossProcess::StoreTable().

◆ GetPILfactor()

G4double G4VProcess::GetPILfactor ( ) const
inlineinherited

Definition at line 455 of file G4VProcess.hh.

456{
457 return thePILfactor;
458}

References G4VProcess::thePILfactor.

Referenced by export_G4VProcess().

◆ GetProcessManager()

const G4ProcessManager * G4VProcess::GetProcessManager ( )
inlinevirtualinherited

Reimplemented in G4BiasingProcessInterface, and G4WrapperProcess.

Definition at line 494 of file G4VProcess.hh.

495{
496 return aProcessManager;
497}
const G4ProcessManager * aProcessManager
Definition: G4VProcess.hh:319

References G4VProcess::aProcessManager.

Referenced by G4BiasingProcessInterface::GetProcessManager(), and G4WrapperProcess::GetProcessManager().

◆ GetProcessName()

const G4String & G4VProcess::GetProcessName ( ) const
inlineinherited

Definition at line 382 of file G4VProcess.hh.

383{
384 return theProcessName;
385}

References G4VProcess::theProcessName.

Referenced by G4VEnergyLossProcess::ActivateForcedInteraction(), G4VEmProcess::ActivateForcedInteraction(), G4ProcessManager::ActivateProcess(), G4VEmProcess::ActivateSecondaryBiasing(), G4VEnergyLossProcess::ActivateSecondaryBiasing(), G4ParallelGeometriesLimiterProcess::AddParallelWorld(), G4IonQMDPhysics::AddProcess(), G4IonINCLXXPhysics::AddProcess(), G4ProcessManager::AddProcess(), G4ProcessPlacer::AddProcessAs(), G4ITSteppingVerbose::AlongStepDoItAllDone(), G4SteppingVerbose::AlongStepDoItAllDone(), G4SteppingVerboseWithUnits::AlongStepDoItAllDone(), G4ITSteppingVerbose::AlongStepDoItOneByOne(), G4SteppingVerbose::AlongStepDoItOneByOne(), G4SteppingVerboseWithUnits::AlongStepDoItOneByOne(), G4VContinuousDiscreteProcess::AlongStepGetPhysicalInteractionLength(), G4ParallelWorldProcess::AlongStepGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::AlongStepGetPhysicalInteractionLength(), G4VRestContinuousProcess::AlongStepGetPhysicalInteractionLength(), G4VContinuousProcess::AlongStepGetPhysicalInteractionLength(), G4BOptnLeadingParticle::ApplyFinalStateBiasing(), G4ITSteppingVerbose::AtRestDoItInvoked(), G4SteppingVerbose::AtRestDoItInvoked(), G4SteppingVerboseWithUnits::AtRestDoItInvoked(), G4ITSteppingVerbose::AtRestDoItOneByOne(), G4VRestContinuousDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VRestContinuousProcess::AtRestGetPhysicalInteractionLength(), G4VRestDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VITRestDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VITRestProcess::AtRestGetPhysicalInteractionLength(), G4VRestProcess::AtRestGetPhysicalInteractionLength(), G4HadronicProcess::BiasCrossSectionByFactor(), G4VXTRenergyLoss::BuildAngleForEnergyBank(), G4VEnergyLossProcess::BuildDEDXTable(), G4VUserPhysicsList::BuildIntegralPhysicsTable(), G4VEmProcess::BuildLambdaTable(), G4VEnergyLossProcess::BuildLambdaTable(), G4DNABrownianTransportation::BuildPhysicsTable(), G4GammaGeneralProcess::BuildPhysicsTable(), G4VEmProcess::BuildPhysicsTable(), G4VEnergyLossProcess::BuildPhysicsTable(), G4VMultipleScattering::BuildPhysicsTable(), G4LossTableManager::BuildPhysicsTable(), G4LossTableManager::BuildTables(), G4HadronicProcess::CheckEnergyMomentumConservation(), G4ProcessManager::CheckOrderingParameters(), G4HadronicProcess::CheckResult(), G4StackChecker::ClassifyNewTrack(), G4BOptrForceCollision::ConfigureForWorker(), G4RunManagerKernel::ConfirmCoupledTransportation(), G4FastSimulationPhysics::ConstructProcess(), G4GenericBiasingPhysics::ConstructProcess(), G4IonElasticPhysics::ConstructProcess(), G4LossTableManager::CopyTables(), G4RichTrajectory::CreateAttValues(), G4RichTrajectoryPoint::CreateAttValues(), G4VPhononProcess::CreateSecondary(), G4EmExtraParameters::DefineRegParamForEM(), G4EmExtraParameters::DefineRegParamForLoss(), G4HadronicProcessStore::DeRegisterExtraProcess(), G4ITSteppingVerbose::DPSLAlongStep(), G4SteppingVerbose::DPSLAlongStep(), G4SteppingVerboseWithUnits::DPSLAlongStep(), G4ITSteppingVerbose::DPSLPostStep(), G4SteppingVerbose::DPSLPostStep(), G4SteppingVerboseWithUnits::DPSLPostStep(), G4HadronicProcessStore::Dump(), G4HadronicProcess::DumpState(), G4MuonicAtomDecay::DumpState(), G4ExceptionHandler::DumpTrackInfo(), export_G4VProcess(), G4EmCalculator::FindEmModel(), G4VEmProcess::FindLambdaMax(), G4BiasingProcessInterface::G4BiasingProcessInterface(), G4Cerenkov::G4Cerenkov(), G4ErrorEnergyLoss::G4ErrorEnergyLoss(), G4ErrorTrackLengthTarget::G4ErrorTrackLengthTarget(), G4FastSimulationManagerProcess::G4FastSimulationManagerProcess(), G4ImportanceProcess::G4ImportanceProcess(), G4MaxTimeCuts::G4MaxTimeCuts(), G4MicroElecSurface::G4MicroElecSurface(), G4MinEkineCuts::G4MinEkineCuts(), G4OpAbsorption::G4OpAbsorption(), G4OpBoundaryProcess::G4OpBoundaryProcess(), G4OpMieHG::G4OpMieHG(), G4OpRayleigh::G4OpRayleigh(), G4OpWLS::G4OpWLS(), G4OpWLS2::G4OpWLS2(), G4ParallelWorldProcess::G4ParallelWorldProcess(), G4ParallelWorldScoringProcess::G4ParallelWorldScoringProcess(), G4Scintillation::G4Scintillation(), G4ScoreSplittingProcess::G4ScoreSplittingProcess(), G4SpecialCuts::G4SpecialCuts(), G4StepLimiter::G4StepLimiter(), G4UCNAbsorption::G4UCNAbsorption(), G4UCNBoundaryProcess::G4UCNBoundaryProcess(), G4UCNLoss::G4UCNLoss(), G4UCNMultiScattering::G4UCNMultiScattering(), G4UserSpecialCuts::G4UserSpecialCuts(), G4WeightCutOffProcess::G4WeightCutOffProcess(), G4WeightWindowProcess::G4WeightWindowProcess(), G4HadronicProcess::GetElementCrossSection(), G4VEmProcess::GetEmProcess(), G4GammaGeneralProcess::GetEmProcess(), G4WeightWindowProcess::GetName(), G4ProcessManager::GetProcess(), G4ProcessManager::GetProcessVectorIndex(), G4GammaGeneralProcess::GetSubProcessName(), G4ProcessManager::InActivateProcess(), G4hhIonisation::InitialiseEnergyLossProcess(), G4ProcessTable::Insert(), G4ITStepProcessor::InvokeAlongStepDoItProcs(), G4SteppingManager::InvokeAlongStepDoItProcs(), G4SteppingManager::InvokeAtRestDoItProcs(), G4SteppingManager::InvokePSDIP(), G4LossTableManager::LocalPhysicsTables(), G4ErrorPropagator::MakeOneStep(), G4VEmProcess::PostStepDoIt(), G4ITSteppingVerbose::PostStepDoItAllDone(), G4SteppingVerbose::PostStepDoItAllDone(), G4SteppingVerboseWithUnits::PostStepDoItAllDone(), G4ITSteppingVerbose::PostStepDoItOneByOne(), G4SteppingVerbose::PostStepDoItOneByOne(), G4SteppingVerboseWithUnits::PostStepDoItOneByOne(), G4VITDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4DNASecondOrderReaction::PostStepGetPhysicalInteractionLength(), G4VContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VITRestDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VEnergyLossProcess::PostStepGetPhysicalInteractionLength(), G4ITSteppingVerbose::PostStepVerbose(), G4EmConfigurator::PrepareModels(), G4HadronStoppingProcess::PreparePhysicsTable(), G4GammaGeneralProcess::PreparePhysicsTable(), G4VEmProcess::PreparePhysicsTable(), G4VEnergyLossProcess::PreparePhysicsTable(), G4VMultipleScattering::PreparePhysicsTable(), G4LossTableManager::PreparePhysicsTable(), G4HadronicProcessStore::Print(), G4HadronicProcessStore::PrintHtml(), G4AnnihiToMuPair::PrintInfoDefinition(), G4GammaConversionToMuons::PrintInfoDefinition(), G4hImpactIonisation::PrintInfoDefinition(), G4ProcessPlacer::PrintProcVec(), G4VEnergyLossProcess::PrintWarning(), G4VEmProcess::PrintWarning(), G4SynchrotronRadiation::ProcessDescription(), G4Decay::ProcessDescription(), G4DecayWithSpin::ProcessDescription(), G4PionDecayMakeSpin::ProcessDescription(), G4UnknownDecay::ProcessDescription(), G4ChannelingOptrChangeCrossSection::ProposeOccurenceBiasingOperation(), G4StackManager::PushOneTrack(), G4HadronicProcessStore::Register(), G4LossTableManager::Register(), G4LossTableManager::RegisterExtraParticle(), G4HadronicProcessStore::RegisterExtraProcess(), G4HadronicProcessStore::RegisterParticle(), G4WrapperProcess::RegisterProcess(), G4PhysicsListHelper::RegisterProcess(), G4ProcessTable::Remove(), G4ParallelGeometriesLimiterProcess::RemoveParallelWorld(), G4ProcessManager::RemoveProcess(), G4ProcessPlacer::RemoveProcess(), G4GammaGeneralProcess::RetrievePhysicsTable(), G4VEmProcess::RetrievePhysicsTable(), G4VEnergyLossProcess::RetrievePhysicsTable(), G4VEmProcess::SetCrossSectionBiasingFactor(), G4VEnergyLossProcess::SetCrossSectionBiasingFactor(), G4VEnergyLossProcess::SetCSDARangeTable(), G4VEnergyLossProcess::SetInverseRangeTable(), G4VEnergyLossProcess::SetLambdaTable(), G4ProcessTableMessenger::SetNewValue(), G4ProcessTable::SetProcessActivation(), G4ProcessManager::SetProcessOrdering(), G4ProcessManager::SetProcessOrderingToFirst(), G4ProcessManager::SetProcessOrderingToLast(), G4ProcessManager::SetProcessOrderingToSecond(), G4VEnergyLossProcess::SetRangeTableForLoss(), G4VEnergyLossProcess::SetSecondaryRangeTable(), G4FastSimulationManagerProcess::SetWorldVolume(), G4ITSteppingVerbose::ShowStep(), G4SteppingVerbose::ShowStep(), G4SteppingVerboseWithUnits::ShowStep(), G4ChannelingOptrChangeCrossSection::StartRun(), G4ITSteppingVerbose::StepInfo(), G4SteppingVerbose::StepInfo(), G4SteppingVerboseWithUnits::StepInfo(), G4ITSteppingVerbose::StepInfoForLeadingTrack(), G4VEmProcess::StorePhysicsTable(), G4VMultipleScattering::StorePhysicsTable(), G4VEnergyLossProcess::StreamInfo(), G4VEmProcess::StreamInfo(), G4VMultipleScattering::StreamInfo(), G4EmCalculator::UpdateParticle(), G4ParallelWorldScoringProcess::Verbose(), G4ScoreSplittingProcess::Verbose(), G4ITSteppingVerbose::VerboseTrack(), G4SteppingVerbose::VerboseTrack(), and G4SteppingVerboseWithUnits::VerboseTrack().

◆ GetProcessSubType()

G4int G4VProcess::GetProcessSubType ( ) const
inlineinherited

◆ GetProcessType()

G4ProcessType G4VProcess::GetProcessType ( ) const
inlineinherited

◆ GetProcessTypeName()

const G4String & G4VProcess::GetProcessTypeName ( G4ProcessType  aType)
staticinherited

Definition at line 134 of file G4VProcess.cc.

135{
136 switch (aType)
137 {
138 case fNotDefined: return typeNotDefined; break;
139 case fTransportation: return typeTransportation; break;
140 case fElectromagnetic: return typeElectromagnetic; break;
141 case fOptical: return typeOptical; break;
142 case fHadronic: return typeHadronic; break;
144 case fDecay: return typeDecay; break;
145 case fGeneral: return typeGeneral; break;
146 case fParameterisation: return typeParameterisation; break;
147 case fUserDefined: return typeUserDefined; break;
148 case fPhonon: return typePhonon; break;
149 default: ;
150 }
151 return noType;
152}
@ fOptical
@ fPhonon
@ fParameterisation
@ fGeneral
@ fDecay
@ fElectromagnetic
@ fHadronic
@ fUserDefined
@ fTransportation
@ fPhotolepton_hadron
@ fNotDefined
static const G4String typeNotDefined
Definition: G4VProcess.cc:119
static const G4String typeParameterisation
Definition: G4VProcess.cc:127
static const G4String typePhotolepton_hadron
Definition: G4VProcess.cc:124
static const G4String typeElectromagnetic
Definition: G4VProcess.cc:121
static const G4String noType
Definition: G4VProcess.cc:130
static const G4String typeUserDefined
Definition: G4VProcess.cc:128
static const G4String typeDecay
Definition: G4VProcess.cc:125
static const G4String typeTransportation
Definition: G4VProcess.cc:120
static const G4String typeHadronic
Definition: G4VProcess.cc:123
static const G4String typeOptical
Definition: G4VProcess.cc:122
static const G4String typeGeneral
Definition: G4VProcess.cc:126
static const G4String typePhonon
Definition: G4VProcess.cc:129

References fDecay, fElectromagnetic, fGeneral, fHadronic, fNotDefined, fOptical, fParameterisation, fPhonon, fPhotolepton_hadron, fTransportation, fUserDefined, anonymous_namespace{G4VProcess.cc}::noType, anonymous_namespace{G4VProcess.cc}::typeDecay, anonymous_namespace{G4VProcess.cc}::typeElectromagnetic, anonymous_namespace{G4VProcess.cc}::typeGeneral, anonymous_namespace{G4VProcess.cc}::typeHadronic, anonymous_namespace{G4VProcess.cc}::typeNotDefined, anonymous_namespace{G4VProcess.cc}::typeOptical, anonymous_namespace{G4VProcess.cc}::typeParameterisation, anonymous_namespace{G4VProcess.cc}::typePhonon, anonymous_namespace{G4VProcess.cc}::typePhotolepton_hadron, anonymous_namespace{G4VProcess.cc}::typeTransportation, and anonymous_namespace{G4VProcess.cc}::typeUserDefined.

Referenced by G4RichTrajectory::CreateAttValues(), G4RichTrajectoryPoint::CreateAttValues(), G4ProcessManager::DumpInfo(), G4VProcess::DumpInfo(), G4ProcessTableMessenger::G4ProcessTableMessenger(), G4ProcessTableMessenger::GetProcessType(), G4ProcessTableMessenger::GetProcessTypeName(), and G4ProcessTableMessenger::SetNumberOfProcessType().

◆ GetTotalNumberOfInteractionLengthTraversed()

G4double G4VProcess::GetTotalNumberOfInteractionLengthTraversed ( ) const
inlineinherited

◆ GetVerboseLevel()

G4int G4VProcess::GetVerboseLevel ( ) const
inlineinherited

◆ InitialiseProcess()

void G4eAdjointMultipleScattering::InitialiseProcess ( const G4ParticleDefinition *  )
overrideprotectedvirtual

Implements G4VMultipleScattering.

Definition at line 67 of file G4eAdjointMultipleScattering.cc.

69{
71 {
72 return;
73 }
74 if(EmModel(0) == nullptr)
75 {
77 }
78 AddEmModel(1, EmModel(0));
79 fIsInitialized = true;
80}
void AddEmModel(G4int order, G4VEmModel *, const G4Region *region=nullptr)
void SetEmModel(G4VMscModel *, G4int idx=0)
G4VMscModel * EmModel(size_t index=0) const

References G4VMultipleScattering::AddEmModel(), G4VMultipleScattering::EmModel(), fIsInitialized, and G4VMultipleScattering::SetEmModel().

◆ isAlongStepDoItIsEnabled()

G4bool G4VProcess::isAlongStepDoItIsEnabled ( ) const
inlineinherited

Definition at line 506 of file G4VProcess.hh.

507{
508 return enableAlongStepDoIt;
509}
G4bool enableAlongStepDoIt
Definition: G4VProcess.hh:360

References G4VProcess::enableAlongStepDoIt.

Referenced by G4ProcessManager::CheckOrderingParameters().

◆ IsApplicable()

G4bool G4eAdjointMultipleScattering::IsApplicable ( const G4ParticleDefinition &  p)
overridevirtual

Reimplemented from G4VProcess.

Definition at line 61 of file G4eAdjointMultipleScattering.cc.

62{
63 return (p.GetPDGCharge() != 0.0 && !p.IsShortLived());
64}
G4double GetPDGCharge() const

References G4ParticleDefinition::GetPDGCharge(), and G4ParticleDefinition::IsShortLived().

◆ isAtRestDoItIsEnabled()

G4bool G4VProcess::isAtRestDoItIsEnabled ( ) const
inlineinherited

Definition at line 500 of file G4VProcess.hh.

501{
502 return enableAtRestDoIt;
503}
G4bool enableAtRestDoIt
Definition: G4VProcess.hh:359

References G4VProcess::enableAtRestDoIt.

Referenced by G4ProcessManager::CheckOrderingParameters().

◆ isPostStepDoItIsEnabled()

G4bool G4VProcess::isPostStepDoItIsEnabled ( ) const
inlineinherited

Definition at line 512 of file G4VProcess.hh.

513{
514 return enablePostStepDoIt;
515}
G4bool enablePostStepDoIt
Definition: G4VProcess.hh:361

References G4VProcess::enablePostStepDoIt.

Referenced by G4ProcessManager::CheckOrderingParameters().

◆ LateralDisplasmentFlag()

G4bool G4VMultipleScattering::LateralDisplasmentFlag ( ) const
inlineinherited

◆ LowestKinEnergy()

G4double G4VMultipleScattering::LowestKinEnergy ( ) const
inlineinherited

Definition at line 352 of file G4VMultipleScattering.hh.

353{
354 return lowestKinEnergy;
355}

References G4VMultipleScattering::lowestKinEnergy.

◆ NumberOfModels()

G4int G4VMultipleScattering::NumberOfModels ( ) const
inlineinherited

Definition at line 380 of file G4VMultipleScattering.hh.

381{
382 return numberOfModels;
383}

References G4VMultipleScattering::numberOfModels.

◆ operator!=()

G4bool G4VProcess::operator!= ( const G4VProcess &  right) const
inherited

Definition at line 161 of file G4VProcess.cc.

162{
163 return (this != &right);
164}

◆ operator=()

G4eAdjointMultipleScattering & G4eAdjointMultipleScattering::operator= ( const G4eAdjointMultipleScattering &  right)
delete

◆ operator==()

G4bool G4VProcess::operator== ( const G4VProcess &  right) const
inherited

Definition at line 155 of file G4VProcess.cc.

156{
157 return (this == &right);
158}

◆ PolarAngleLimit()

G4double G4VMultipleScattering::PolarAngleLimit ( ) const
inlineinherited

◆ PostStepDoIt()

G4VParticleChange * G4VMultipleScattering::PostStepDoIt ( const G4Track &  track,
const G4Step &   
)
overridevirtualinherited

Reimplemented from G4VContinuousDiscreteProcess.

Definition at line 489 of file G4VMultipleScattering.cc.

490{
492 return &fParticleChange;
493}
virtual void Initialize(const G4Track &)

References G4VMultipleScattering::fParticleChange, and G4ParticleChangeForMSC::Initialize().

◆ PostStepGetPhysicalInteractionLength()

G4double G4VMultipleScattering::PostStepGetPhysicalInteractionLength ( const G4Track &  ,
G4double  previousStepSize,
G4ForceCondition *  condition 
)
overridevirtualinherited

Reimplemented from G4VContinuousDiscreteProcess.

Definition at line 391 of file G4VMultipleScattering.cc.

393{
395 return DBL_MAX;
396}
@ NotForced

References condition(), DBL_MAX, and NotForced.

◆ PostStepGPIL()

G4double G4VProcess::PostStepGPIL ( const G4Track &  track,
G4double  previousStepSize,
G4ForceCondition *  condition 
)
inlineinherited

Definition at line 479 of file G4VProcess.hh.

482{
483 return thePILfactor *
484 PostStepGetPhysicalInteractionLength(track, previousStepSize, condition);
485}
virtual G4double PostStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)=0

References condition(), G4VProcess::PostStepGetPhysicalInteractionLength(), and G4VProcess::thePILfactor.

Referenced by G4SteppingManager::DefinePhysicalStepLength(), and G4ITStepProcessor::DoDefinePhysicalStepLength().

◆ PreparePhysicsTable()

void G4VMultipleScattering::PreparePhysicsTable ( const G4ParticleDefinition &  part)
overridevirtualinherited

Reimplemented from G4VProcess.

Definition at line 140 of file G4VMultipleScattering.cc.

141{
142 if(1 < verboseLevel) {
143 G4cout << "### G4VMultipleScattering::PrepearPhysicsTable() for "
144 << GetProcessName()
145 << " and particle " << part.GetParticleName()
146 << G4endl;
147 }
148 G4bool master = emManager->IsMaster();
149
150 if(nullptr == firstParticle) { firstParticle = &part; }
151 if(part.GetPDGMass() > CLHEP::GeV) {
152 // flag declears that mass scaling is applied
153 isIon = true;
154 }
155
156 emManager->PreparePhysicsTable(&part, this, master);
157 currParticle = nullptr;
158
159 if(1 < verboseLevel) {
160 G4cout << "### G4VMultipleScattering::PrepearPhysicsTable() for "
161 << GetProcessName()
162 << " and particle " << part.GetParticleName()
163 << " local particle " << firstParticle->GetParticleName()
164 << " isIon: " << isIon << " isMaster: " << master
165 << G4endl;
166 }
167
168 if(firstParticle == &part) {
169
170 // initialise process
172
173 // heavy particles
174 if(part.GetPDGMass() > CLHEP::MeV) {
178 } else {
182 }
183 if(master) { SetVerboseLevel(theParameters->Verbose()); }
185
186 // initialisation of models
188 /*
189 std::cout << "### G4VMultipleScattering::PreparePhysicsTable() for "
190 << GetProcessName()
191 << " and particle " << part.GetParticleName()
192 << " Nmodels= " << mscModels.size() << " " << this << std::endl;
193 */
196
197 for(G4int i=0; i<numberOfModels; ++i) {
199 if(nullptr == msc) { continue; }
200 if(nullptr == currentModel) { currentModel = msc; }
201 msc->SetIonisation(nullptr, firstParticle);
202 msc->SetMasterThread(master);
204 G4double emax =
208 }
209
211 1.0, verboseLevel);
212
213 if(nullptr == safetyHelper) {
215 ->GetSafetyHelper();
217 }
218 }
219}
static const G4double emax
static G4Electron * Electron()
Definition: G4Electron.cc:93
G4int NumberOfModels() const
const G4DataVector * Initialise(const G4ParticleDefinition *part, const G4ParticleDefinition *secPart, G4double, G4int verb)
G4double MscMuHadRangeFactor() const
G4MscStepLimitType MscMuHadStepLimitType() const
G4int Verbose() const
G4int WorkerVerbose() const
G4MscStepLimitType MscStepLimitType() const
G4double MaxKinEnergy() const
G4bool LateralDisplacement() const
G4bool MuHadLateralDisplacement() const
G4double MscRangeFactor() const
G4LossTableBuilder * GetTableBuilder()
void PreparePhysicsTable(const G4ParticleDefinition *aParticle, G4VEnergyLossProcess *p, G4bool theMaster)
void InitialiseHelper()
static G4TransportationManager * GetTransportationManager()
G4SafetyHelper * GetSafetyHelper() const
void SetPolarAngleLimit(G4double)
Definition: G4VEmModel.hh:802
void SetHighEnergyLimit(G4double)
Definition: G4VEmModel.hh:767
void SetMasterThread(G4bool val)
Definition: G4VEmModel.hh:739
G4double HighEnergyLimit() const
Definition: G4VEmModel.hh:655
void SetIonisation(G4VEnergyLossProcess *, const G4ParticleDefinition *part)
Definition: G4VMscModel.hh:309
virtual void InitialiseProcess(const G4ParticleDefinition *)=0
G4MscStepLimitType stepLimit
void SetVerboseLevel(G4int value)
Definition: G4VProcess.hh:412
static constexpr double GeV
static constexpr double MeV

References G4VMultipleScattering::baseMat, G4VMultipleScattering::currentModel, G4VMultipleScattering::currParticle, G4Electron::Electron(), emax, G4VMultipleScattering::emManager, G4VMultipleScattering::facrange, G4VMultipleScattering::firstParticle, G4cout, G4endl, G4LossTableBuilder::GetBaseMaterialFlag(), G4VMultipleScattering::GetModelByIndex(), G4ParticleDefinition::GetParticleName(), G4ParticleDefinition::GetPDGMass(), G4VProcess::GetProcessName(), G4TransportationManager::GetSafetyHelper(), G4LossTableManager::GetTableBuilder(), G4TransportationManager::GetTransportationManager(), CLHEP::GeV, G4VEmModel::HighEnergyLimit(), G4EmModelManager::Initialise(), G4SafetyHelper::InitialiseHelper(), G4VMultipleScattering::InitialiseProcess(), G4VMultipleScattering::isIon, G4LossTableManager::IsMaster(), G4VMultipleScattering::latDisplacement, G4EmParameters::LateralDisplacement(), G4EmParameters::MaxKinEnergy(), CLHEP::MeV, G4INCL::Math::min(), G4VMultipleScattering::modelManager, G4EmParameters::MscMuHadRangeFactor(), G4EmParameters::MscMuHadStepLimitType(), G4EmParameters::MscRangeFactor(), G4EmParameters::MscStepLimitType(), G4EmParameters::MscThetaLimit(), G4EmParameters::MuHadLateralDisplacement(), G4EmModelManager::NumberOfModels(), G4VMultipleScattering::numberOfModels, G4LossTableManager::PreparePhysicsTable(), G4VMultipleScattering::safetyHelper, G4VEmModel::SetHighEnergyLimit(), G4VMscModel::SetIonisation(), G4VEmModel::SetMasterThread(), G4VEmModel::SetPolarAngleLimit(), G4VEmModel::SetUseBaseMaterials(), G4VProcess::SetVerboseLevel(), G4VMultipleScattering::stepLimit, G4VMultipleScattering::theParameters, G4EmParameters::Verbose(), G4VProcess::verboseLevel, and G4EmParameters::WorkerVerbose().

◆ PrepareWorkerPhysicsTable()

void G4VProcess::PrepareWorkerPhysicsTable ( const G4ParticleDefinition &  part)
virtualinherited

Reimplemented in G4BiasingProcessInterface.

Definition at line 206 of file G4VProcess.cc.

207{
209}
virtual void PreparePhysicsTable(const G4ParticleDefinition &)
Definition: G4VProcess.hh:194

References G4VProcess::PreparePhysicsTable().

Referenced by G4BiasingProcessInterface::PrepareWorkerPhysicsTable().

◆ ProcessDescription()

void G4eAdjointMultipleScattering::ProcessDescription ( std::ostream &  out) const
overridevirtual

Reimplemented from G4VProcess.

Definition at line 54 of file G4eAdjointMultipleScattering.cc.

55{
56 out << "Inverse multiple scattering for e-.\n";
58}
void StreamProcessInfo(std::ostream &outFile) const override

References StreamProcessInfo().

Referenced by DumpInfo().

◆ RangeFactor()

G4double G4VMultipleScattering::RangeFactor ( ) const
inlineinherited

◆ ResetNumberOfInteractionLengthLeft()

void G4VProcess::ResetNumberOfInteractionLengthLeft ( )
virtualinherited

Reimplemented in G4BiasingProcessInterface, G4VITProcess, G4WrapperProcess, and G4AdjointProcessEquivalentToDirectProcess.

Definition at line 80 of file G4VProcess.cc.

81{
84}
G4double G4Log(G4double x)
Definition: G4Log.hh:226
#define G4UniformRand()
Definition: Randomize.hh:52

References G4Log(), G4UniformRand, G4VProcess::theInitialNumberOfInteractionLength, and G4VProcess::theNumberOfInteractionLengthLeft.

Referenced by G4MuonicAtomDecay::AtRestGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VRestContinuousProcess::AtRestGetPhysicalInteractionLength(), G4VRestDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VRestProcess::AtRestGetPhysicalInteractionLength(), G4BiasingProcessInterface::InvokeWrappedProcessPostStepGPIL(), G4BiasingProcessInterface::PostStepGetPhysicalInteractionLength(), G4VContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4BiasingProcessInterface::ResetNumberOfInteractionLengthLeft(), G4WrapperProcess::ResetNumberOfInteractionLengthLeft(), G4AdjointProcessEquivalentToDirectProcess::ResetNumberOfInteractionLengthLeft(), and G4Decay::StartTracking().

◆ RetrievePhysicsTable()

G4bool G4VMultipleScattering::RetrievePhysicsTable ( const G4ParticleDefinition *  ,
const G4String &  directory,
G4bool  ascii 
)
overridevirtualinherited

Reimplemented from G4VProcess.

Definition at line 580 of file G4VMultipleScattering.cc.

583{
584 return true;
585}

◆ SelectModel()

G4VEmModel * G4VMultipleScattering::SelectModel ( G4double  kinEnergy,
size_t  idx 
)
inlineinherited

◆ SetEmModel()

void G4VMultipleScattering::SetEmModel ( G4VMscModel *  ptr,
G4int  idx = 0 
)
inherited

◆ SetGPILSelection()

void G4VContinuousDiscreteProcess::SetGPILSelection ( G4GPILSelection  selection)
inlineprotectedinherited

◆ SetIonisation()

void G4VMultipleScattering::SetIonisation ( G4VEnergyLossProcess *  p)
inherited

Definition at line 589 of file G4VMultipleScattering.cc.

590{
591 for(auto & msc : mscModels) {
592 if(nullptr != msc) { msc->SetIonisation(p, firstParticle); }
593 }
594}

References G4VMultipleScattering::firstParticle, and G4VMultipleScattering::mscModels.

◆ SetLowestKinEnergy()

void G4VMultipleScattering::SetLowestKinEnergy ( G4double  val)
inlineinherited

Definition at line 359 of file G4VMultipleScattering.hh.

360{
361 lowestKinEnergy = val;
362}

References G4VMultipleScattering::lowestKinEnergy.

◆ SetMasterProcess()

void G4VProcess::SetMasterProcess ( G4VProcess *  masterP)
virtualinherited

◆ SetPILfactor()

void G4VProcess::SetPILfactor ( G4double  value)
inlineinherited

Definition at line 449 of file G4VProcess.hh.

450{
451 if (value>0.) { thePILfactor = value; }
452}

References G4VProcess::thePILfactor.

Referenced by export_G4VProcess().

◆ SetProcessManager()

void G4VProcess::SetProcessManager ( const G4ProcessManager *  procMan)
inlinevirtualinherited

◆ SetProcessSubType()

void G4VProcess::SetProcessSubType ( G4int  value)
inlineinherited

Definition at line 406 of file G4VProcess.hh.

407{
408 theProcessSubType = value;
409}

References G4VProcess::theProcessSubType.

Referenced by G4DNAElectronHoleRecombination::Create(), G4DNASecondOrderReaction::Create(), G4AnnihiToMuPair::G4AnnihiToMuPair(), G4BiasingProcessInterface::G4BiasingProcessInterface(), G4Cerenkov::G4Cerenkov(), G4ComptonScattering::G4ComptonScattering(), G4CoulombScattering::G4CoulombScattering(), G4CoupledTransportation::G4CoupledTransportation(), G4Decay::G4Decay(), G4DecayWithSpin::G4DecayWithSpin(), G4DNAAttachment::G4DNAAttachment(), G4DNABrownianTransportation::G4DNABrownianTransportation(), G4DNAChargeDecrease::G4DNAChargeDecrease(), G4DNAChargeIncrease::G4DNAChargeIncrease(), G4DNAElastic::G4DNAElastic(), G4DNAElectronSolvation::G4DNAElectronSolvation(), G4DNAExcitation::G4DNAExcitation(), G4DNAIonisation::G4DNAIonisation(), G4DNAMolecularDissociation::G4DNAMolecularDissociation(), G4DNAScavengerProcess::G4DNAScavengerProcess(), G4DNAVibExcitation::G4DNAVibExcitation(), G4eBremsstrahlung::G4eBremsstrahlung(), G4eeToHadrons::G4eeToHadrons(), G4eIonisation::G4eIonisation(), G4ePairProduction::G4ePairProduction(), G4eplusAnnihilation::G4eplusAnnihilation(), G4FastSimulationManagerProcess::G4FastSimulationManagerProcess(), G4GammaConversion::G4GammaConversion(), G4GammaConversionToMuons::G4GammaConversionToMuons(), G4GammaGeneralProcess::G4GammaGeneralProcess(), G4HadronicProcess::G4HadronicProcess(), G4hhIonisation::G4hhIonisation(), G4hIonisation::G4hIonisation(), G4ionIonisation::G4ionIonisation(), G4ITTransportation::G4ITTransportation(), G4JAEAElasticScattering::G4JAEAElasticScattering(), G4MicroElecElastic::G4MicroElecElastic(), G4MicroElecInelastic::G4MicroElecInelastic(), G4MicroElecLOPhononScattering::G4MicroElecLOPhononScattering(), G4MicroElecSurface::G4MicroElecSurface(), G4mplIonisation::G4mplIonisation(), G4MuBremsstrahlung::G4MuBremsstrahlung(), G4MuIonisation::G4MuIonisation(), G4MuonMinusAtomicCapture::G4MuonMinusAtomicCapture(), G4MuPairProduction::G4MuPairProduction(), G4NeutronKiller::G4NeutronKiller(), G4NuclearStopping::G4NuclearStopping(), G4OpAbsorption::G4OpAbsorption(), G4OpBoundaryProcess::G4OpBoundaryProcess(), G4OpMieHG::G4OpMieHG(), G4OpRayleigh::G4OpRayleigh(), G4OpWLS::G4OpWLS(), G4OpWLS2::G4OpWLS2(), G4ParallelWorldProcess::G4ParallelWorldProcess(), G4PhotoElectricEffect::G4PhotoElectricEffect(), G4PionDecayMakeSpin::G4PionDecayMakeSpin(), G4PolarizedCompton::G4PolarizedCompton(), G4PolarizedGammaConversion::G4PolarizedGammaConversion(), G4PolarizedIonisation::G4PolarizedIonisation(), G4PolarizedPhotoElectric::G4PolarizedPhotoElectric(), G4RadioactiveDecay::G4RadioactiveDecay(), G4RayleighScattering::G4RayleighScattering(), G4Scintillation::G4Scintillation(), G4StepLimiter::G4StepLimiter(), G4SynchrotronRadiation::G4SynchrotronRadiation(), G4SynchrotronRadiationInMat::G4SynchrotronRadiationInMat(), G4TransitionRadiation::G4TransitionRadiation(), G4Transportation::G4Transportation(), G4UCNAbsorption::G4UCNAbsorption(), G4UCNBoundaryProcess::G4UCNBoundaryProcess(), G4UCNLoss::G4UCNLoss(), G4UCNMultiScattering::G4UCNMultiScattering(), G4UnknownDecay::G4UnknownDecay(), G4UserSpecialCuts::G4UserSpecialCuts(), G4VMultipleScattering::G4VMultipleScattering(), G4VTransitionRadiation::G4VTransitionRadiation(), G4VXTRenergyLoss::G4VXTRenergyLoss(), and G4Decay::SetExtDecayer().

◆ SetProcessType()

void G4VProcess::SetProcessType ( G4ProcessType  aType)
inlineinherited

Definition at line 394 of file G4VProcess.hh.

395{
396 theProcessType = aType;
397}

References G4VProcess::theProcessType.

Referenced by G4MaxTimeCuts::G4MaxTimeCuts(), and G4MinEkineCuts::G4MinEkineCuts().

◆ SetStepLimitType()

void G4VMultipleScattering::SetStepLimitType ( G4MscStepLimitType  val)
inlineinherited

◆ SetVerboseLevel()

void G4VProcess::SetVerboseLevel ( G4int  value)
inlineinherited

◆ Skin()

G4double G4VMultipleScattering::Skin ( ) const
inlineinherited

◆ StartTracking()

void G4eAdjointMultipleScattering::StartTracking ( G4Track *  )
overridevirtual

Reimplemented from G4VProcess.

Definition at line 96 of file G4eAdjointMultipleScattering.cc.

97{
99 G4Electron::Electron(), G4ThreeVector(0., 0., 1.), 1.);
100 G4Track* tempTrack = new G4Track(aDynPart, 0., G4ThreeVector(0., 0., 0.));
102 delete tempTrack;
103}
CLHEP::Hep3Vector G4ThreeVector
void StartTracking(G4Track *) override

References G4Electron::Electron(), and G4VMultipleScattering::StartTracking().

◆ StepLimitType()

G4MscStepLimitType G4VMultipleScattering::StepLimitType ( ) const
inlineinherited

◆ StorePhysicsTable()

G4bool G4VMultipleScattering::StorePhysicsTable ( const G4ParticleDefinition *  part,
const G4String &  directory,
G4bool  ascii = false 
)
overridevirtualinherited

Reimplemented from G4VProcess.

Definition at line 535 of file G4VMultipleScattering.cc.

538{
539 G4bool yes = true;
540 if(part != firstParticle) { return yes; }
541 const G4VMultipleScattering* masterProcess =
542 static_cast<const G4VMultipleScattering*>(GetMasterProcess());
543 if(nullptr != masterProcess && masterProcess != this) { return yes; }
544
546 static const G4String ss[4] = {"1","2","3","4"};
547 for(G4int i=0; i<nmod; ++i) {
549 if(nullptr == msc) { continue; }
550 yes = true;
551 G4PhysicsTable* table = msc->GetCrossSectionTable();
552 if (nullptr != table) {
553 G4int j = std::min(i,3);
554 G4String name =
555 GetPhysicsTableFileName(part,directory,"LambdaMod"+ss[j],ascii);
556 yes = table->StorePhysicsTable(name,ascii);
557
558 if ( yes ) {
559 if ( verboseLevel>0 ) {
560 G4cout << "Physics table are stored for "
561 << part->GetParticleName()
562 << " and process " << GetProcessName()
563 << " with a name <" << name << "> " << G4endl;
564 }
565 } else {
566 G4cout << "Fail to store Physics Table for "
567 << part->GetParticleName()
568 << " and process " << GetProcessName()
569 << " in the directory <" << directory
570 << "> " << G4endl;
571 }
572 }
573 }
574 return yes;
575}
G4bool StorePhysicsTable(const G4String &filename, G4bool ascii=false)
const G4String & GetPhysicsTableFileName(const G4ParticleDefinition *, const G4String &directory, const G4String &tableName, G4bool ascii=false)
Definition: G4VProcess.cc:182
const char * name(G4int ptype)

References G4VMultipleScattering::firstParticle, G4cout, G4endl, G4VEmModel::GetCrossSectionTable(), G4VProcess::GetMasterProcess(), G4EmModelManager::GetModel(), G4ParticleDefinition::GetParticleName(), G4VProcess::GetPhysicsTableFileName(), G4VProcess::GetProcessName(), G4INCL::Math::min(), G4VMultipleScattering::modelManager, G4InuclParticleNames::name(), G4EmModelManager::NumberOfModels(), G4PhysicsTable::StorePhysicsTable(), and G4VProcess::verboseLevel.

◆ StreamInfo()

void G4VMultipleScattering::StreamInfo ( std::ostream &  outFile,
const G4ParticleDefinition &  part,
G4bool  rst = false 
) const
privateinherited

Definition at line 289 of file G4VMultipleScattering.cc.

291{
292 G4String indent = (rst ? " " : "");
293 outFile << G4endl << indent << GetProcessName() << ": ";
294 if (!rst) outFile << " for " << part.GetParticleName();
295 outFile << " SubType= " << GetProcessSubType() << G4endl;
297}
void DumpModelList(std::ostream &out, G4int verb)
G4int GetProcessSubType() const
Definition: G4VProcess.hh:400

References G4EmModelManager::DumpModelList(), G4endl, G4ParticleDefinition::GetParticleName(), G4VProcess::GetProcessName(), G4VProcess::GetProcessSubType(), G4VMultipleScattering::modelManager, and G4VProcess::verboseLevel.

Referenced by G4VMultipleScattering::BuildPhysicsTable(), and G4VMultipleScattering::ProcessDescription().

◆ StreamProcessInfo()

void G4eAdjointMultipleScattering::StreamProcessInfo ( std::ostream &  outFile) const
overridevirtual

Reimplemented from G4VMultipleScattering.

Definition at line 83 of file G4eAdjointMultipleScattering.cc.

84{
85 out << " RangeFactor= " << RangeFactor()
86 << ", stepLimType: " << StepLimitType()
87 << ", latDisp: " << LateralDisplasmentFlag();
89 {
90 out << ", skin= " << Skin() << ", geomFactor= " << GeomFactor();
91 }
92 out << "\n";
93}
@ fUseDistanceToBoundary
G4bool LateralDisplasmentFlag() const
G4MscStepLimitType StepLimitType() const

References fUseDistanceToBoundary, G4VMultipleScattering::GeomFactor(), G4VMultipleScattering::LateralDisplasmentFlag(), G4VMultipleScattering::RangeFactor(), G4VMultipleScattering::Skin(), and G4VMultipleScattering::StepLimitType().

Referenced by ProcessDescription().

◆ SubtractNumberOfInteractionLengthLeft()

void G4VProcess::SubtractNumberOfInteractionLengthLeft ( G4double  prevStepSize)
inlineprotectedinherited

Definition at line 524 of file G4VProcess.hh.

525{
527 {
530 {
532 }
533 }
534 else
535 {
536#ifdef G4VERBOSE
537 if (verboseLevel>0)
538 {
539 G4cerr << "G4VProcess::SubtractNumberOfInteractionLengthLeft()";
540 G4cerr << " [" << theProcessName << "]" <<G4endl;
541 G4cerr << " currentInteractionLength = "
542 << currentInteractionLength << " [mm]";
543 G4cerr << " previousStepSize = " << prevStepSize << " [mm]";
544 G4cerr << G4endl;
545 }
546#endif
547 G4String msg = "Negative currentInteractionLength for ";
548 msg += theProcessName;
549 G4Exception("G4VProcess::SubtractNumberOfInteractionLengthLeft()",
550 "ProcMan201", EventMustBeAborted, msg);
551 }
552}
@ EventMustBeAborted
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
G4GLOB_DLL std::ostream G4cerr
static constexpr double perMillion

References G4VProcess::currentInteractionLength, EventMustBeAborted, G4cerr, G4endl, G4Exception(), CLHEP::perMillion, G4VProcess::theNumberOfInteractionLengthLeft, G4VProcess::theProcessName, and G4VProcess::verboseLevel.

Referenced by G4VContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestDiscreteProcess::PostStepGetPhysicalInteractionLength(), and G4Decay::PostStepGetPhysicalInteractionLength().

◆ UseBaseMaterial()

G4bool G4VMultipleScattering::UseBaseMaterial ( ) const
inlineinherited

Definition at line 395 of file G4VMultipleScattering.hh.

396{
397 return baseMat;
398}

References G4VMultipleScattering::baseMat.

Referenced by G4VMultipleScattering::BuildPhysicsTable().

Field Documentation

◆ aParticleChange

G4ParticleChange G4VProcess::aParticleChange
protectedinherited

◆ aProcessManager

const G4ProcessManager* G4VProcess::aProcessManager = nullptr
protectedinherited

Definition at line 319 of file G4VProcess.hh.

Referenced by G4VProcess::GetProcessManager(), and G4VProcess::SetProcessManager().

◆ baseMat

G4bool G4VMultipleScattering::baseMat = false
privateinherited

◆ currentInteractionLength

G4double G4VProcess::currentInteractionLength = -1.0
protectedinherited

◆ currentModel

G4VMscModel* G4VMultipleScattering::currentModel = nullptr
privateinherited

◆ currParticle

const G4ParticleDefinition* G4VMultipleScattering::currParticle = nullptr
privateinherited

◆ emManager

G4LossTableManager* G4VMultipleScattering::emManager
privateinherited

◆ enableAlongStepDoIt

G4bool G4VProcess::enableAlongStepDoIt = true
protectedinherited

◆ enableAtRestDoIt

G4bool G4VProcess::enableAtRestDoIt = true
protectedinherited

◆ enablePostStepDoIt

G4bool G4VProcess::enablePostStepDoIt = true
protectedinherited

◆ facrange

G4double G4VMultipleScattering::facrange = 0.04
privateinherited

◆ fIonisation

G4VEnergyLossProcess* G4VMultipleScattering::fIonisation = nullptr
privateinherited

Definition at line 273 of file G4VMultipleScattering.hh.

Referenced by G4VMultipleScattering::StartTracking().

◆ firstParticle

const G4ParticleDefinition* G4VMultipleScattering::firstParticle = nullptr
privateinherited

◆ fIsInitialized

G4bool G4eAdjointMultipleScattering::fIsInitialized = false
private

Definition at line 66 of file G4eAdjointMultipleScattering.hh.

Referenced by InitialiseProcess().

◆ fNewDirection

G4ThreeVector G4VMultipleScattering::fNewDirection
privateinherited

Definition at line 270 of file G4VMultipleScattering.hh.

◆ fNewPosition

G4ThreeVector G4VMultipleScattering::fNewPosition
privateinherited

Definition at line 269 of file G4VMultipleScattering.hh.

Referenced by G4VMultipleScattering::AlongStepDoIt().

◆ fParticleChange

G4ParticleChangeForMSC G4VMultipleScattering::fParticleChange
protectedinherited

◆ fPositionChanged

G4bool G4VMultipleScattering::fPositionChanged = false
privateinherited

Definition at line 286 of file G4VMultipleScattering.hh.

Referenced by G4VMultipleScattering::AlongStepDoIt().

◆ fProcessTable

G4ProcessTable* G4VProcess::fProcessTable = nullptr
privateinherited

Definition at line 374 of file G4VProcess.hh.

Referenced by G4VProcess::G4VProcess(), and G4VProcess::~G4VProcess().

◆ geomMin

G4double G4VMultipleScattering::geomMin
privateinherited

◆ gPathLength

G4double G4VMultipleScattering::gPathLength = 0.0
privateinherited

◆ isActive

G4bool G4VMultipleScattering::isActive = false
privateinherited

◆ isIon

G4bool G4VMultipleScattering::isIon = false
privateinherited

◆ latDisplacement

G4bool G4VMultipleScattering::latDisplacement = true
privateinherited

◆ lowestKinEnergy

G4double G4VMultipleScattering::lowestKinEnergy
privateinherited

◆ masterProcessShadow

G4VProcess* G4VProcess::masterProcessShadow = nullptr
privateinherited

Definition at line 370 of file G4VProcess.hh.

Referenced by G4VProcess::GetMasterProcess(), and G4VProcess::SetMasterProcess().

◆ minDisplacement2

G4double G4VMultipleScattering::minDisplacement2
privateinherited

◆ modelManager

G4EmModelManager* G4VMultipleScattering::modelManager
privateinherited

◆ mscModels

std::vector<G4VMscModel*> G4VMultipleScattering::mscModels
privateinherited

◆ numberOfModels

G4int G4VMultipleScattering::numberOfModels = 0
privateinherited

◆ physStepLimit

G4double G4VMultipleScattering::physStepLimit = 0.0
privateinherited

◆ pParticleChange

G4VParticleChange* G4VProcess::pParticleChange = nullptr
protectedinherited

Definition at line 321 of file G4VProcess.hh.

Referenced by G4VMultipleScattering::AddEmModel(), G4VEmProcess::AddEmModel(), G4VEnergyLossProcess::AddEmModel(), G4ImportanceProcess::AlongStepDoIt(), G4WeightCutOffProcess::AlongStepDoIt(), G4WeightWindowProcess::AlongStepDoIt(), G4VContinuousDiscreteProcess::AlongStepDoIt(), G4VContinuousProcess::AlongStepDoIt(), G4VRestContinuousDiscreteProcess::AlongStepDoIt(), G4VRestContinuousProcess::AlongStepDoIt(), G4ParallelWorldProcess::AlongStepDoIt(), G4ParallelWorldScoringProcess::AlongStepDoIt(), G4VITRestProcess::AtRestDoIt(), G4VRestContinuousDiscreteProcess::AtRestDoIt(), G4VRestContinuousProcess::AtRestDoIt(), G4VRestDiscreteProcess::AtRestDoIt(), G4VRestProcess::AtRestDoIt(), G4ParallelWorldProcess::AtRestDoIt(), G4ParallelWorldScoringProcess::AtRestDoIt(), G4ScoreSplittingProcess::AtRestDoIt(), G4VITRestDiscreteProcess::AtRestDoIt(), G4eplusAnnihilation::AtRestDoIt(), G4DNAElectronHoleRecombination::Create(), G4DNASecondOrderReaction::Create(), G4VEnergyLossProcess::FillSecondariesAlongStep(), G4Decay::G4Decay(), G4DNAMolecularDissociation::G4DNAMolecularDissociation(), G4DNAScavengerProcess::G4DNAScavengerProcess(), G4ImportanceProcess::G4ImportanceProcess(), G4ITTransportation::G4ITTransportation(), G4ParallelWorldProcess::G4ParallelWorldProcess(), G4ParallelWorldScoringProcess::G4ParallelWorldScoringProcess(), G4RadioactiveDecay::G4RadioactiveDecay(), G4ScoreSplittingProcess::G4ScoreSplittingProcess(), G4Transportation::G4Transportation(), G4UnknownDecay::G4UnknownDecay(), G4VEmProcess::G4VEmProcess(), G4VEnergyLossProcess::G4VEnergyLossProcess(), G4VMultipleScattering::G4VMultipleScattering(), G4VProcess::G4VProcess(), G4VXTRenergyLoss::G4VXTRenergyLoss(), G4WeightCutOffProcess::G4WeightCutOffProcess(), G4WeightWindowProcess::G4WeightWindowProcess(), G4VITDiscreteProcess::PostStepDoIt(), G4VContinuousDiscreteProcess::PostStepDoIt(), G4VDiscreteProcess::PostStepDoIt(), G4VRestContinuousDiscreteProcess::PostStepDoIt(), G4VRestDiscreteProcess::PostStepDoIt(), G4ParallelWorldProcess::PostStepDoIt(), G4ParallelWorldScoringProcess::PostStepDoIt(), G4ScoreSplittingProcess::PostStepDoIt(), G4NeutronKiller::PostStepDoIt(), G4VITRestDiscreteProcess::PostStepDoIt(), G4LowECapture::PostStepDoIt(), G4VEmProcess::PostStepDoIt(), G4VEnergyLossProcess::PostStepDoIt(), G4Cerenkov::PostStepDoIt(), and G4VTransitionRadiation::PostStepDoIt().

◆ safetyHelper

G4SafetyHelper* G4VMultipleScattering::safetyHelper = nullptr
privateinherited

◆ stepLimit

G4MscStepLimitType G4VMultipleScattering::stepLimit = fUseSafety
privateinherited

◆ theInitialNumberOfInteractionLength

G4double G4VProcess::theInitialNumberOfInteractionLength = -1.0
protectedinherited

◆ theNumberOfInteractionLengthLeft

G4double G4VProcess::theNumberOfInteractionLengthLeft = -1.0
protectedinherited

Definition at line 331 of file G4VProcess.hh.

Referenced by G4AdjointForcedInteractionForGamma::AlongStepDoIt(), G4MuonicAtomDecay::AtRestGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VRestContinuousProcess::AtRestGetPhysicalInteractionLength(), G4VRestDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VRestProcess::AtRestGetPhysicalInteractionLength(), G4Decay::AtRestGetPhysicalInteractionLength(), G4VProcess::ClearNumberOfInteractionLengthLeft(), G4MuonicAtomDecay::DecayIt(), G4VProcess::EndTracking(), G4VProcess::GetNumberOfInteractionLengthLeft(), G4VProcess::GetTotalNumberOfInteractionLengthTraversed(), G4GammaGeneralProcess::PostStepDoIt(), G4VEmProcess::PostStepDoIt(), G4VEnergyLossProcess::PostStepDoIt(), G4VContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4GammaGeneralProcess::PostStepGetPhysicalInteractionLength(), G4Decay::PostStepGetPhysicalInteractionLength(), G4AdjointForcedInteractionForGamma::PostStepGetPhysicalInteractionLength(), G4PolarizedAnnihilation::PostStepGetPhysicalInteractionLength(), G4PolarizedCompton::PostStepGetPhysicalInteractionLength(), G4PolarizedIonisation::PostStepGetPhysicalInteractionLength(), G4VEmProcess::PostStepGetPhysicalInteractionLength(), G4VEnergyLossProcess::PostStepGetPhysicalInteractionLength(), G4VProcess::ResetNumberOfInteractionLengthLeft(), G4VProcess::StartTracking(), G4GammaGeneralProcess::StartTracking(), G4VEmProcess::StartTracking(), G4VEnergyLossProcess::StartTracking(), and G4VProcess::SubtractNumberOfInteractionLengthLeft().

◆ theParameters

G4EmParameters* G4VMultipleScattering::theParameters
privateinherited

◆ thePhysicsTableFileName

G4String G4VProcess::thePhysicsTableFileName
protectedinherited

Definition at line 344 of file G4VProcess.hh.

Referenced by G4VProcess::GetPhysicsTableFileName().

◆ thePILfactor

G4double G4VProcess::thePILfactor = 1.0
protectedinherited

◆ theProcessName

G4String G4VProcess::theProcessName
protectedinherited

◆ theProcessSubType

G4int G4VProcess::theProcessSubType = -1
protectedinherited

◆ theProcessType

G4ProcessType G4VProcess::theProcessType = fNotDefined
protectedinherited

◆ tPathLength

G4double G4VMultipleScattering::tPathLength = 0.0
privateinherited

◆ valueGPILSelection

G4GPILSelection G4VContinuousDiscreteProcess::valueGPILSelection = CandidateForSelection
privateinherited

◆ verboseLevel

G4int G4VProcess::verboseLevel = 0
protectedinherited

Definition at line 356 of file G4VProcess.hh.

Referenced by G4VEnergyLossProcess::ActivateForcedInteraction(), G4VEmProcess::ActivateForcedInteraction(), G4VEmProcess::ActivateSecondaryBiasing(), G4VEnergyLossProcess::ActivateSecondaryBiasing(), G4LowECapture::AddRegion(), G4CoupledTransportation::AlongStepDoIt(), G4Transportation::AlongStepDoIt(), G4VContinuousDiscreteProcess::AlongStepGetPhysicalInteractionLength(), G4ParallelWorldProcess::AlongStepGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::AlongStepGetPhysicalInteractionLength(), G4VRestContinuousProcess::AlongStepGetPhysicalInteractionLength(), G4CoupledTransportation::AlongStepGetPhysicalInteractionLength(), G4Transportation::AlongStepGetPhysicalInteractionLength(), G4VContinuousProcess::AlongStepGetPhysicalInteractionLength(), G4hImpactIonisation::AntiProtonParametrisedDEDX(), G4ParallelWorldScoringProcess::AtRestDoIt(), G4VRestContinuousDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VRestContinuousProcess::AtRestGetPhysicalInteractionLength(), G4VRestDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VITRestDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VITRestProcess::AtRestGetPhysicalInteractionLength(), G4VRestProcess::AtRestGetPhysicalInteractionLength(), G4VXTRenergyLoss::BuildAngleForEnergyBank(), G4VXTRenergyLoss::BuildAngleTable(), G4VEnergyLossProcess::BuildDEDXTable(), G4VXTRenergyLoss::BuildEnergyTable(), G4VXTRenergyLoss::BuildGlobalAngleTable(), G4VEmProcess::BuildLambdaTable(), G4hImpactIonisation::BuildLambdaTable(), G4VEnergyLossProcess::BuildLambdaTable(), G4hImpactIonisation::BuildLossTable(), G4DNABrownianTransportation::BuildPhysicsTable(), G4GammaGeneralProcess::BuildPhysicsTable(), G4LowECapture::BuildPhysicsTable(), G4VEmProcess::BuildPhysicsTable(), G4VEnergyLossProcess::BuildPhysicsTable(), G4VMultipleScattering::BuildPhysicsTable(), G4SynchrotronRadiation::BuildPhysicsTable(), G4VXTRenergyLoss::BuildPhysicsTable(), G4hImpactIonisation::BuildPhysicsTable(), G4ChargeExchangeProcess::BuildPhysicsTable(), G4OpRayleigh::CalculateRayleighMeanFreePaths(), G4PolarizedAnnihilation::ComputeSaturationFactor(), G4PolarizedCompton::ComputeSaturationFactor(), G4PolarizedIonisation::ComputeSaturationFactor(), G4DNAElectronHoleRecombination::Create(), G4DNASecondOrderReaction::Create(), G4VPhononProcess::CreateSecondary(), G4VProcess::EndTracking(), G4VEmProcess::FindLambdaMax(), G4Cerenkov::G4Cerenkov(), G4ChargeExchangeProcess::G4ChargeExchangeProcess(), G4CoupledTransportation::G4CoupledTransportation(), G4DNAMolecularDissociation::G4DNAMolecularDissociation(), G4DNAScavengerProcess::G4DNAScavengerProcess(), G4ErrorEnergyLoss::G4ErrorEnergyLoss(), G4FastSimulationManagerProcess::G4FastSimulationManagerProcess(), G4GaussXTRadiator::G4GaussXTRadiator(), G4ImportanceProcess::G4ImportanceProcess(), G4MaxTimeCuts::G4MaxTimeCuts(), G4MicroElecSurface::G4MicroElecSurface(), G4MinEkineCuts::G4MinEkineCuts(), G4OpAbsorption::G4OpAbsorption(), G4OpBoundaryProcess::G4OpBoundaryProcess(), G4OpMieHG::G4OpMieHG(), G4OpRayleigh::G4OpRayleigh(), G4OpWLS::G4OpWLS(), G4OpWLS2::G4OpWLS2(), G4ParallelWorldProcess::G4ParallelWorldProcess(), G4ParallelWorldScoringProcess::G4ParallelWorldScoringProcess(), G4PolarizedIonisation::G4PolarizedIonisation(), G4Scintillation::G4Scintillation(), G4ScoreSplittingProcess::G4ScoreSplittingProcess(), G4SpecialCuts::G4SpecialCuts(), G4StepLimiter::G4StepLimiter(), G4StrawTubeXTRadiator::G4StrawTubeXTRadiator(), G4SynchrotronRadiation::G4SynchrotronRadiation(), G4TransparentRegXTRadiator::G4TransparentRegXTRadiator(), G4Transportation::G4Transportation(), G4UCNAbsorption::G4UCNAbsorption(), G4UCNBoundaryProcess::G4UCNBoundaryProcess(), G4UCNLoss::G4UCNLoss(), G4UCNMultiScattering::G4UCNMultiScattering(), G4UserSpecialCuts::G4UserSpecialCuts(), G4VXTRenergyLoss::G4VXTRenergyLoss(), G4WeightCutOffProcess::G4WeightCutOffProcess(), G4WeightWindowProcess::G4WeightWindowProcess(), G4VXTRenergyLoss::GetAngleVector(), G4ChargeExchangeProcess::GetElementCrossSection(), G4VXTRenergyLoss::GetGasZmuProduct(), G4PhononDownconversion::GetMeanFreePath(), G4PhononScattering::GetMeanFreePath(), G4PolarizedCompton::GetMeanFreePath(), G4VXTRenergyLoss::GetMeanFreePath(), G4UCNAbsorption::GetMeanFreePath(), G4PolarizedAnnihilation::GetMeanFreePath(), G4PolarizedIonisation::GetMeanFreePath(), G4SynchrotronRadiation::GetMeanFreePath(), G4VXTRenergyLoss::GetNumberOfPhotons(), G4VXTRenergyLoss::GetPlateZmuProduct(), G4SynchrotronRadiation::GetRandomEnergySR(), G4VProcess::GetVerboseLevel(), G4hhIonisation::InitialiseEnergyLossProcess(), G4eeToHadrons::InitialiseProcess(), G4hImpactIonisation::InitializeMe(), G4UCNBoundaryProcess::MRreflect(), G4UCNBoundaryProcess::MRreflectHigh(), G4DNASecondOrderReaction::PostStepDoIt(), G4ParallelWorldScoringProcess::PostStepDoIt(), G4ScoreSplittingProcess::PostStepDoIt(), G4DNAScavengerProcess::PostStepDoIt(), G4VEmProcess::PostStepDoIt(), G4NeutrinoElectronProcess::PostStepDoIt(), G4UCNAbsorption::PostStepDoIt(), G4UCNBoundaryProcess::PostStepDoIt(), G4UCNLoss::PostStepDoIt(), G4UCNMultiScattering::PostStepDoIt(), G4MicroElecSurface::PostStepDoIt(), G4Cerenkov::PostStepDoIt(), G4Scintillation::PostStepDoIt(), G4VXTRenergyLoss::PostStepDoIt(), G4ElNeutrinoNucleusProcess::PostStepDoIt(), G4HadronElasticProcess::PostStepDoIt(), G4MuNeutrinoNucleusProcess::PostStepDoIt(), G4OpAbsorption::PostStepDoIt(), G4OpBoundaryProcess::PostStepDoIt(), G4OpMieHG::PostStepDoIt(), G4OpRayleigh::PostStepDoIt(), G4OpWLS::PostStepDoIt(), G4OpWLS2::PostStepDoIt(), G4CoupledTransportation::PostStepDoIt(), G4VITDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4DNASecondOrderReaction::PostStepGetPhysicalInteractionLength(), G4VContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VITRestDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4DNAScavengerProcess::PostStepGetPhysicalInteractionLength(), G4PolarizedAnnihilation::PostStepGetPhysicalInteractionLength(), G4PolarizedCompton::PostStepGetPhysicalInteractionLength(), G4PolarizedIonisation::PostStepGetPhysicalInteractionLength(), G4VEnergyLossProcess::PostStepGetPhysicalInteractionLength(), G4GammaGeneralProcess::PreparePhysicsTable(), G4VEmProcess::PreparePhysicsTable(), G4VEnergyLossProcess::PreparePhysicsTable(), G4VMultipleScattering::PreparePhysicsTable(), G4hImpactIonisation::ProtonParametrisedDEDX(), G4UCNBoundaryProcess::Reflect(), G4CoupledTransportation::ReportInexactEnergy(), G4CoupledTransportation::ReportMissingLogger(), G4GammaGeneralProcess::RetrievePhysicsTable(), G4VEmProcess::RetrievePhysicsTable(), G4VEnergyLossProcess::RetrievePhysicsTable(), G4VEnergyLossProcess::RetrieveTable(), G4VEmProcess::SetCrossSectionBiasingFactor(), G4VEnergyLossProcess::SetCrossSectionBiasingFactor(), G4VEnergyLossProcess::SetCSDARangeTable(), G4CoupledTransportation::SetHighLooperThresholds(), G4Transportation::SetHighLooperThresholds(), G4VEnergyLossProcess::SetInverseRangeTable(), G4LowECapture::SetKinEnergyLimit(), G4NeutronKiller::SetKinEnergyLimit(), G4VEnergyLossProcess::SetLambdaTable(), G4CoupledTransportation::SetLowLooperThresholds(), G4Transportation::SetLowLooperThresholds(), G4VEnergyLossProcess::SetRangeTableForLoss(), G4VEnergyLossProcess::SetSecondaryRangeTable(), G4NeutronKiller::SetTimeLimit(), G4VProcess::SetVerboseLevel(), G4Cerenkov::SetVerboseLevel(), G4Scintillation::SetVerboseLevel(), G4OpAbsorption::SetVerboseLevel(), G4OpBoundaryProcess::SetVerboseLevel(), G4OpMieHG::SetVerboseLevel(), G4OpRayleigh::SetVerboseLevel(), G4OpWLS::SetVerboseLevel(), G4OpWLS2::SetVerboseLevel(), G4FastSimulationManagerProcess::SetWorldVolume(), G4GaussXTRadiator::SpectralXTRdEdx(), G4RegularXTRadiator::SpectralXTRdEdx(), G4TransparentRegXTRadiator::SpectralXTRdEdx(), G4XTRRegularRadModel::SpectralXTRdEdx(), G4VProcess::StartTracking(), G4CoupledTransportation::StartTracking(), G4VEmProcess::StorePhysicsTable(), G4VMultipleScattering::StorePhysicsTable(), G4VEnergyLossProcess::StoreTable(), G4VEnergyLossProcess::StreamInfo(), G4VEmProcess::StreamInfo(), G4VMultipleScattering::StreamInfo(), G4VITProcess::SubtractNumberOfInteractionLengthLeft(), and G4VProcess::SubtractNumberOfInteractionLengthLeft().


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