- Timestamp:
- Apr 17, 2009, 12:17:14 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/processes/electromagnetic/utils/include/G4VMscModel.hh
r966 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4VMscModel.hh,v 1. 8 2009/02/24 09:56:03vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4VMscModel.hh,v 1.4 2008/03/10 10:39:28 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 54 54 #include "G4MscStepLimitType.hh" 55 55 #include "globals.hh" 56 #include "G4ThreeVector.hh"57 #include "G4Track.hh"58 #include "G4SafetyHelper.hh"59 60 class G4ParticleChangeForMSC;61 56 62 57 class G4VMscModel : public G4VEmModel … … 69 64 virtual ~G4VMscModel(); 70 65 71 // empty72 virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,73 const G4MaterialCutsCouple*,74 const G4DynamicParticle*,75 G4double tmin,76 G4double tmax);77 78 //================================================================79 // Set parameters of multiple scattering models80 //================================================================81 82 66 inline void SetStepLimitType(G4MscStepLimitType); 83 67 … … 90 74 inline void SetSkin(G4double); 91 75 92 inline void SetSampleZ(G4bool);93 94 protected:95 96 // initialisation of interface with geometry97 void InitialiseSafetyHelper();98 99 // shift point of the track PostStep100 void ComputeDisplacement(G4ParticleChangeForMSC*,101 const G4ThreeVector& displDir,102 G4double displacement,103 G4double postsafety);104 105 // compute safety106 inline G4double ComputeSafety(const G4ThreeVector& position, G4double limit);107 108 // compute linear distance to a geometry boundary109 inline G4double ComputeGeomLimit(const G4Track& position, G4double& presafety,110 G4double limit);111 112 76 private: 113 77 … … 115 79 G4VMscModel & operator=(const G4VMscModel &right); 116 80 G4VMscModel(const G4VMscModel&); 117 118 G4SafetyHelper* safetyHelper;119 81 120 82 protected: … … 126 88 G4double dtrl; 127 89 G4double lambdalimit; 128 G4double geommax;129 90 130 91 G4MscStepLimitType steppingAlgorithm; … … 173 134 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 174 135 175 inline void G4VMscModel::SetSampleZ(G4bool val)176 {177 samplez = val;178 }179 180 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......181 182 inline G4double G4VMscModel::ComputeSafety(const G4ThreeVector& position,183 G4double)184 {185 return safetyHelper->ComputeSafety(position);186 }187 188 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......189 190 inline G4double G4VMscModel::ComputeGeomLimit(const G4Track& track,191 G4double& presafety,192 G4double limit)193 {194 G4double res = geommax;195 if(track.GetVolume() != safetyHelper->GetWorldVolume()) {196 res = safetyHelper->CheckNextStep(197 track.GetStep()->GetPreStepPoint()->GetPosition(),198 track.GetMomentumDirection(),199 limit, presafety);200 }201 return res;202 }203 204 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......205 206 136 #endif 207 137
Note: See TracChangeset
for help on using the changeset viewer.