G4VDiscreteProcess Class Reference

#include <G4VDiscreteProcess.hh>

Inheritance diagram for G4VDiscreteProcess:

G4VProcess G4AnnihiToMuPair G4ErrorTrackLengthTarget G4GammaConversionToMuons G4HadronicProcess G4NeutronKiller G4OpAbsorption G4OpBoundaryProcess G4OpMieHG G4OpRayleigh G4OpWLS G4QAtomicElectronScattering G4QCoherentChargeExchange G4QDiffraction G4QDiscProcessMixer G4QElastic G4QInelastic G4QIonIonElastic G4QLowEnergy G4QNGamma G4QSynchRad G4SynchrotronRadiation G4SynchrotronRadiationInMat G4TransitionRadiation G4UnknownDecay G4VAdjointReverseReaction G4VEmProcess G4VErrorLimitProcess G4VLowEnergyTestableDiscreteProcess G4VTransitionRadiation G4VXTRenergyLoss

Public Member Functions

 G4VDiscreteProcess (const G4String &, G4ProcessType aType=fNotDefined)
 G4VDiscreteProcess (G4VDiscreteProcess &)
virtual ~G4VDiscreteProcess ()
virtual G4double PostStepGetPhysicalInteractionLength (const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
virtual G4VParticleChangePostStepDoIt (const G4Track &, const G4Step &)
virtual G4double AlongStepGetPhysicalInteractionLength (const G4Track &, G4double, G4double, G4double &, G4GPILSelection *)
virtual G4double AtRestGetPhysicalInteractionLength (const G4Track &, G4ForceCondition *)
virtual G4VParticleChangeAtRestDoIt (const G4Track &, const G4Step &)
virtual G4VParticleChangeAlongStepDoIt (const G4Track &, const G4Step &)

Protected Member Functions

virtual G4double GetMeanFreePath (const G4Track &aTrack, G4double previousStepSize, G4ForceCondition *condition)=0

Detailed Description

Definition at line 58 of file G4VDiscreteProcess.hh.


Constructor & Destructor Documentation

G4VDiscreteProcess::G4VDiscreteProcess ( const G4String ,
G4ProcessType  aType = fNotDefined 
)

Definition at line 54 of file G4VDiscreteProcess.cc.

References G4VProcess::enableAlongStepDoIt, G4VProcess::enableAtRestDoIt, and G4VDiscreteProcess().

Referenced by G4VDiscreteProcess().

00055                   : G4VProcess(aName, aType)
00056 {
00057   enableAtRestDoIt = false;
00058   enableAlongStepDoIt = false;
00059 
00060 }

G4VDiscreteProcess::G4VDiscreteProcess ( G4VDiscreteProcess  ) 

Definition at line 66 of file G4VDiscreteProcess.cc.

References G4VDiscreteProcess().

00067                   : G4VProcess(right)
00068 {
00069 }

G4VDiscreteProcess::~G4VDiscreteProcess (  )  [virtual]

Definition at line 62 of file G4VDiscreteProcess.cc.

00063 {
00064 }


Member Function Documentation

virtual G4VParticleChange* G4VDiscreteProcess::AlongStepDoIt ( const G4Track ,
const G4Step  
) [inline, virtual]

Implements G4VProcess.

Reimplemented in G4NuclearStopping.

Definition at line 102 of file G4VDiscreteProcess.hh.

00105                               {return 0;};

virtual G4double G4VDiscreteProcess::AlongStepGetPhysicalInteractionLength ( const G4Track ,
G4double  ,
G4double  ,
G4double ,
G4GPILSelection  
) [inline, virtual]

Implements G4VProcess.

Reimplemented in G4NuclearStopping.

Definition at line 83 of file G4VDiscreteProcess.hh.

00089                              { return -1.0; };

virtual G4VParticleChange* G4VDiscreteProcess::AtRestDoIt ( const G4Track ,
const G4Step  
) [inline, virtual]

Implements G4VProcess.

Reimplemented in G4eplusPolarizedAnnihilation, G4eplusAnnihilation, and G4HadronStoppingProcess.

Definition at line 97 of file G4VDiscreteProcess.hh.

00100                               {return 0;};

virtual G4double G4VDiscreteProcess::AtRestGetPhysicalInteractionLength ( const G4Track ,
G4ForceCondition  
) [inline, virtual]

Implements G4VProcess.

Reimplemented in G4eplusPolarizedAnnihilation, G4eplusAnnihilation, and G4HadronStoppingProcess.

Definition at line 91 of file G4VDiscreteProcess.hh.

00094                               { return -1.0; };

virtual G4double G4VDiscreteProcess::GetMeanFreePath ( const G4Track aTrack,
G4double  previousStepSize,
G4ForceCondition condition 
) [protected, pure virtual]

Implemented in G4UnknownDecay, G4VAdjointReverseReaction, G4AnnihiToMuPair, G4GammaConversionToMuons, G4VLowEnergyDiscretePhotonProcess, G4eplusPolarizedAnnihilation, G4PolarizedCompton, G4VEmProcess, G4ForwardXrayTR, G4SynchrotronRadiation, G4SynchrotronRadiationInMat, G4TransitionRadiation, G4VTransitionRadiation, G4VXTRenergyLoss, G4HadronicProcess, G4QAtomicElectronScattering, G4QCoherentChargeExchange, G4QDiffraction, G4QDiscProcessMixer, G4QElastic, G4QInelastic, G4QIonIonElastic, G4QLowEnergy, G4QNGamma, G4QSynchRad, G4OpAbsorption, G4OpBoundaryProcess, G4OpMieHG, G4OpRayleigh, G4OpWLS, and G4NeutronKiller.

Referenced by G4VLowEnergyTestableDiscreteProcess::DumpMeanFreePath(), and PostStepGetPhysicalInteractionLength().

G4VParticleChange * G4VDiscreteProcess::PostStepDoIt ( const G4Track ,
const G4Step  
) [virtual]

Implements G4VProcess.

Reimplemented in G4ErrorTrackLengthTarget, G4VErrorLimitProcess, G4UnknownDecay, G4VAdjointReverseReaction, G4AnnihiToMuPair, G4GammaConversionToMuons, G4VEmProcess, G4ForwardXrayTR, G4SynchrotronRadiation, G4SynchrotronRadiationInMat, G4TransitionRadiation, G4VTransitionRadiation, G4VXTRenergyLoss, G4HadronicProcess, G4QAtomicElectronScattering, G4QCoherentChargeExchange, G4QDiffraction, G4QDiscProcessMixer, G4QElastic, G4QInelastic, G4QIonIonElastic, G4QLowEnergy, G4QNGamma, G4QSynchRad, G4HadronElasticProcess, G4WHadronElasticProcess, G4OpAbsorption, G4OpBoundaryProcess, G4OpMieHG, G4OpRayleigh, G4OpWLS, and G4NeutronKiller.

Definition at line 112 of file G4VDiscreteProcess.cc.

References G4VProcess::ClearNumberOfInteractionLengthLeft(), and G4VProcess::pParticleChange.

Referenced by G4VXTRenergyLoss::PostStepDoIt(), G4SynchrotronRadiationInMat::PostStepDoIt(), G4SynchrotronRadiation::PostStepDoIt(), G4QSynchRad::PostStepDoIt(), G4QNGamma::PostStepDoIt(), G4QLowEnergy::PostStepDoIt(), G4QIonIonElastic::PostStepDoIt(), G4QInelastic::PostStepDoIt(), G4QElastic::PostStepDoIt(), G4QDiscProcessMixer::PostStepDoIt(), G4QDiffraction::PostStepDoIt(), G4QCoherentChargeExchange::PostStepDoIt(), G4QAtomicElectronScattering::PostStepDoIt(), G4OpWLS::PostStepDoIt(), G4OpRayleigh::PostStepDoIt(), G4OpMieHG::PostStepDoIt(), G4OpBoundaryProcess::PostStepDoIt(), G4OpAbsorption::PostStepDoIt(), G4GammaConversionToMuons::PostStepDoIt(), G4ForwardXrayTR::PostStepDoIt(), and G4AnnihiToMuPair::PostStepDoIt().

00116 { 
00117 //  clear NumberOfInteractionLengthLeft
00118     ClearNumberOfInteractionLengthLeft();
00119 
00120     return pParticleChange;
00121 }

G4double G4VDiscreteProcess::PostStepGetPhysicalInteractionLength ( const G4Track track,
G4double  previousStepSize,
G4ForceCondition condition 
) [virtual]

Implements G4VProcess.

Reimplemented in G4ErrorMagFieldLimitProcess, G4ErrorStepLengthLimitProcess, G4ErrorTrackLengthTarget, G4VErrorLimitProcess, G4UnknownDecay, G4eplusPolarizedAnnihilation, G4PolarizedCompton, G4VEmProcess, G4QDiscProcessMixer, G4HadronStoppingProcess, and G4NeutronKiller.

Definition at line 71 of file G4VDiscreteProcess.cc.

References G4VProcess::currentInteractionLength, DBL_MAX, G4DynamicParticle::DumpInfo(), G4cout, G4endl, G4Track::GetDynamicParticle(), G4Track::GetMaterial(), GetMeanFreePath(), G4Material::GetName(), G4VProcess::GetProcessName(), NotForced, G4VProcess::ResetNumberOfInteractionLengthLeft(), G4VProcess::SubtractNumberOfInteractionLengthLeft(), G4VProcess::theNumberOfInteractionLengthLeft, and G4VProcess::verboseLevel.

00076 {
00077   if ( (previousStepSize < 0.0) || (theNumberOfInteractionLengthLeft<=0.0)) {
00078     // beggining of tracking (or just after DoIt of this process)
00079     ResetNumberOfInteractionLengthLeft();
00080   } else if ( previousStepSize > 0.0) {
00081     // subtract NumberOfInteractionLengthLeft 
00082     SubtractNumberOfInteractionLengthLeft(previousStepSize);
00083   } else {
00084     // zero step
00085     //  DO NOTHING
00086   }
00087 
00088   // condition is set to "Not Forced"
00089   *condition = NotForced;
00090 
00091   // get mean free path
00092   currentInteractionLength = GetMeanFreePath(track, previousStepSize, condition);
00093 
00094   G4double value;
00095   if (currentInteractionLength <DBL_MAX) {
00096     value = theNumberOfInteractionLengthLeft * currentInteractionLength;
00097   } else {
00098     value = DBL_MAX;
00099   }
00100 #ifdef G4VERBOSE
00101   if (verboseLevel>1){
00102     G4cout << "G4VDiscreteProcess::PostStepGetPhysicalInteractionLength ";
00103     G4cout << "[ " << GetProcessName() << "]" <<G4endl;
00104     track.GetDynamicParticle()->DumpInfo();
00105     G4cout << " in Material  " <<  track.GetMaterial()->GetName() <<G4endl;
00106     G4cout << "InteractionLength= " << value/cm <<"[cm] " <<G4endl;
00107   }
00108 #endif
00109   return value;
00110 }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:53:40 2013 for Geant4 by  doxygen 1.4.7