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
G4UniversalFluctuation.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//
33// File name: G4UniversalFluctuation
34//
35// Author: V.Ivanchenko make a class with the Laszlo Urban model
36//
37// Creation date: 03.01.2002
38//
39// Modifications:
40//
41// 09-12-02 remove warnings (V.Ivanchenko)
42// 28-12-02 add method Dispersion (V.Ivanchenko)
43// 07-02-03 change signature (V.Ivanchenko)
44// 13-02-03 Add name (V.Ivanchenko)
45// 16-10-03 Changed interface to Initialisation (V.Ivanchenko)
46// 07-02-05 define problim = 5.e-3 (mma)
47//
48// Class Description:
49//
50// Implementation of energy loss fluctuations
51
52// -------------------------------------------------------------------
53//
54
55#ifndef G4UniversalFluctuation_h
56#define G4UniversalFluctuation_h 1
57
58
61
63{
64
65public:
66
67 G4UniversalFluctuation(const G4String& nam = "UniFluc");
68
70
72 const G4DynamicParticle*,
73 G4double&,
74 G4double&,
75 G4double&);
76
77 virtual G4double Dispersion( const G4Material*,
78 const G4DynamicParticle*,
79 G4double&,
80 G4double&);
81
82 virtual void InitialiseMe(const G4ParticleDefinition*);
83
84 // Initialisation prestep
85 virtual void SetParticleAndCharge(const G4ParticleDefinition*, G4double q2);
86
87private:
88
89 // hide assignment operator
90 G4UniversalFluctuation & operator=(const G4UniversalFluctuation &right);
92
93 const G4ParticleDefinition* particle;
94 const G4Material* lastMaterial;
95
96 G4double particleMass;
97 G4double chargeSquare;
98
99 // data members to speed up the fluctuation calculation
100 G4double ipotFluct;
101 G4double electronDensity;
102
103 G4double f1Fluct;
104 G4double f2Fluct;
105 G4double e1Fluct;
106 G4double e2Fluct;
107 G4double e1LogFluct;
108 G4double e2LogFluct;
109 G4double ipotLogFluct;
110 G4double e0;
111 G4double esmall;
112
113 G4double e1,e2;
114
115 G4double minNumberInteractionsBohr;
116 G4double theBohrBeta2;
117 G4double minLoss;
118 G4double nmaxCont;
119 G4double rate,fw;
120
121
122};
123
124//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
125
126#endif
127
double G4double
Definition: G4Types.hh:64
virtual G4double Dispersion(const G4Material *, const G4DynamicParticle *, G4double &, G4double &)
virtual void SetParticleAndCharge(const G4ParticleDefinition *, G4double q2)
virtual void InitialiseMe(const G4ParticleDefinition *)
virtual G4double SampleFluctuations(const G4Material *, const G4DynamicParticle *, G4double &, G4double &, G4double &)