53 G4cout<<
"G4QDiscProcessMixer::Constructor is called processName="<<name<<
G4endl;
67 static const G4double maxEn = 1.E8*megaelectronvolt;
68 if(!theDPVector.size())
70 std::pair<G4VDiscreteProcess*, G4double>* QDiscProc =
71 new std::pair<G4VDiscreteProcess*, G4double>(DP, maxEn);
72 theDPVector.push_back( QDiscProc );
76 if(ME < theDPVector[theDPVector.size()-1]->second)
78 std::pair<G4VDiscreteProcess*, G4double>* QDiscProc =
79 new std::pair<G4VDiscreteProcess*, G4double>(DP, ME);
80 theDPVector.push_back( QDiscProc );
88 ed <<
" LastMaxE(" << theDPVector.size()-1 <<
")="
89 << theDPVector[theDPVector.size()-1]->second <<
" <= MaxE=" << ME <<
G4endl;
90 G4Exception(
"G4QDiscProcessMixer::AddDiscreteProcess()",
"HAD_CHPS_0000",
102 if(particle == *DPParticle)
return true;
111 G4int maxDP=theDPVector.size();
112 if(maxDP)
for(
G4int i=maxDP-1; i>-1; i--)
if(kEn < theDPVector[i]->second)
115 G4cout<<
"G4QDPMix::PSGetPIL:"<<i<<
",kEn="<<kEn<<
" < "<<theDPVector[i]->second<<
", PIL="
116 <<theDPVector[i]->first->PostStepGetPhysicalInteractionLength(Track,PrevStSize,F)
119 return theDPVector[i]->first->PostStepGetPhysicalInteractionLength(Track,PrevStSize,F);
134 G4int maxDP=theDPVector.size();
135 if(maxDP)
for(
G4int i=maxDP-1; i>-1; i--)
if(kEn < theDPVector[i]->second)
138 G4cout<<
"G4QDPMix::PSDoIt: i="<<i<<
",kEn="<<kEn<<
" < "<<theDPVector[i]->second<<
G4endl;
142 return theDPVector[i]->first->PostStepDoIt(Track, Step);
#define G4HadronicDeprecate(name)
G4DLLIMPORT std::ostream G4cout
G4double GetKineticEnergy() const
const G4String & GetParticleName() const
G4VParticleChange * PostStepDoIt(const G4Track &aTrack, const G4Step &aStep)
G4bool IsApplicable(const G4ParticleDefinition &particle)
G4double PostStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
G4QDiscProcessMixer(const G4String &processName="Mixed Discrete Process", const G4ParticleDefinition *proj=G4Gamma::Gamma(), G4ProcessType pType=fHadronic)
G4double GetMeanFreePath(const G4Track &aTrack, G4double previousStepSize, G4ForceCondition *condition)
void AddDiscreteProcess(G4VDiscreteProcess *DP, G4double MaxE)
const G4DynamicParticle * GetDynamicParticle() const
virtual G4VParticleChange * PostStepDoIt(const G4Track &, const G4Step &)
const G4String & GetProcessName() const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
std::ostringstream G4ExceptionDescription