// This code implementation is the intellectual property of // the RD44 GEANT4 collaboration. // // By copying, distributing or modifying the Program (or any work // based on the Program) you indicate your acceptance of this statement, // and all its terms. // // $Id: G4MuIonisation.icc,v 2.2 1998/10/27 12:24:39 urban Exp $ // GEANT4 tag $Name: geant4-00 $ // // // --------------------------------------------------------------- // GEANT 4 class inlined methods file // // For information related to this code contact: // CERN, CN Division, ASD group // History: first implementation, based on object model of // 2nd December 1995, G.Cosmo // ------------ G4MuIonisation physics process ------------- // by Laszlo Urban, September 1997 // --------------------------------------------------------------- // It is the implementation of the NEW IONISATION PROCESS. // It calculates the ionisation of muons. // *************************************************************** // 24/11/97: correction on MeanFreePath for KinEnergy > HighestLimit // --------------------------------------------------------------- inline G4double G4MuIonisation::GetMeanFreePath(const G4Track& trackData, G4double previousStepSize, G4ForceCondition* condition) { const G4DynamicParticle* aParticle ; G4Material* aMaterial ; G4double KineticEnergy,MeanFreePath; G4bool isOutRange ; *condition = NotForced ; aParticle = trackData.GetDynamicParticle() ; aMaterial = trackData.GetMaterial() ; KineticEnergy = aParticle->GetKineticEnergy() ; if( KineticEnergy < LowestKineticEnergy ) MeanFreePath = DBL_MAX ; else { if(KineticEnergy > HighestKineticEnergy) KineticEnergy = HighestKineticEnergy; MeanFreePath = ((*theMeanFreePathTable)(aMaterial->GetIndex()))-> GetValue(KineticEnergy,isOutRange) ; } return MeanFreePath ; } inline G4bool G4MuIonisation::IsApplicable( const G4ParticleDefinition& particle) { return ( (&particle == (const G4ParticleDefinition *)theMuonPlus) ||(&particle == (const G4ParticleDefinition *)theMuonMinus) ); }