48 #include "G4VParticleChange.hh" 88 *condition = NotForced;
92 aTrack.GetVolume()->GetLogicalVolume()->GetUserLimits();
97 G4double Ekine = aTrack.GetKineticEnergy();
98 if(Ekine <= pUserLimits->GetUserMinEkine(aTrack)) {
return 0.; }
103 - aTrack.GetTrackLength());
104 if (ProposedStep < 0.) {
return 0.; }
110 G4double beta = (aTrack.GetDynamicParticle()->GetTotalMomentum())
111 /(aTrack.GetTotalEnergy());
112 G4double dTime = (tlimit - aTrack.GetGlobalTime());
114 if (temp < 0.) {
return 0.; }
115 if (ProposedStep > temp) { ProposedStep = temp; }
129 if (temp < 0.) {
return 0.; }
130 if (ProposedStep > temp) { ProposedStep = temp; }
G4double condition(const G4ErrorSymMatrix &m)
G4UserSpecialCuts(const G4String &processName="UserSpecialCut")
virtual ~G4UserSpecialCuts()
static G4LossTableManager * Instance()
virtual G4VParticleChange * PostStepDoIt(const G4Track &, const G4Step &)
G4LossTableManager * theLossTableManager
virtual G4double GetUserMaxTrackLength(const G4Track &)
virtual G4double PostStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
const G4String & GetProcessName() const
G4GLOB_DLL std::ostream G4cout
virtual G4double GetUserMaxTime(const G4Track &)
void SetProcessSubType(G4int)
G4double GetPDGMass() const
G4ParticleChange aParticleChange
virtual G4double GetUserMinRange(const G4Track &)
G4double GetRange(const G4ParticleDefinition *aParticle, G4double kineticEnergy, const G4MaterialCutsCouple *couple)
G4double GetPDGCharge() const