Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G4NuclearStopping.hh
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26// $Id$
27//
28// -----------------------------------------------------------------------------
29//
30// GEANT4 Class header file
31//
32// Author: Vladimir Ivanchenko
33//
34// Creation date: 20 July 2009
35//
36// Modified:
37//
38//------------------------------------------------------------------------------
39//
40
41// class description
42//
43// The class simulates nuclear stopping due to multiple scattering
44//
45// class description - end
46
47//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
48//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
49
50#ifndef G4NuclearStopping_h
51#define G4NuclearStopping_h 1
52
53#include "G4VEmProcess.hh"
54#include "globals.hh"
55#include "G4Track.hh"
56#include "G4Step.hh"
58#include "G4GPILSelection.hh"
60
61//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
62
64
66{
67
68public: // with description
69
70 G4NuclearStopping(const G4String& processName="nuclearStopping");
71
72 virtual ~G4NuclearStopping();
73
74 // returns true for charged particles, false otherwise
76
77 // implementation of pure virtual method
79 G4double previousStepSize,
80 G4double currentMinimumStep,
81 G4double& proposedSafety,
82 G4GPILSelection* selection);
83
84 // implementation of energy loss along step
86 const G4Step& step);
87
88 // Print few lines of informations about the process: validity range,
89 void PrintInfo();
90
91protected:
92
93 // This function initialise process
95
96private:
97
98 // copy constructor and hide assignment operator
100 G4NuclearStopping & operator=(const G4NuclearStopping &right);
101
102 G4ParticleChangeForLoss nParticleChange;
103
104 G4ICRU49NuclearStoppingModel* modelICRU49;
105
106 G4bool isInitialized;
107
108};
109
110//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
111
112#endif
G4GPILSelection
double G4double
Definition: G4Types.hh:64
bool G4bool
Definition: G4Types.hh:67
G4VParticleChange * AlongStepDoIt(const G4Track &track, const G4Step &step)
G4double AlongStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4double currentMinimumStep, G4double &proposedSafety, G4GPILSelection *selection)
G4bool IsApplicable(const G4ParticleDefinition &p)
virtual ~G4NuclearStopping()
void InitialiseProcess(const G4ParticleDefinition *)
Definition: G4Step.hh:78