Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/electromagnetic/muons/include/G4EnergyLossForExtrapolator.hh

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /processes/electromagnetic/muons/include/G4EnergyLossForExtrapolator.hh (Version 11.3.0) and /processes/electromagnetic/muons/include/G4EnergyLossForExtrapolator.hh (Version 10.0.p1)


  1 //                                                  1 //
  2 // *******************************************      2 // ********************************************************************
  3 // * License and Disclaimer                         3 // * License and Disclaimer                                           *
  4 // *                                                4 // *                                                                  *
  5 // * The  Geant4 software  is  copyright of th      5 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
  6 // * the Geant4 Collaboration.  It is provided      6 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
  7 // * conditions of the Geant4 Software License      7 // * conditions of the Geant4 Software License,  included in the file *
  8 // * LICENSE and available at  http://cern.ch/      8 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
  9 // * include a list of copyright holders.           9 // * include a list of copyright holders.                             *
 10 // *                                               10 // *                                                                  *
 11 // * Neither the authors of this software syst     11 // * Neither the authors of this software system, nor their employing *
 12 // * institutes,nor the agencies providing fin     12 // * institutes,nor the agencies providing financial support for this *
 13 // * work  make  any representation or  warran     13 // * work  make  any representation or  warranty, express or implied, *
 14 // * regarding  this  software system or assum     14 // * regarding  this  software system or assume any liability for its *
 15 // * use.  Please see the license in the file      15 // * use.  Please see the license in the file  LICENSE  and URL above *
 16 // * for the full disclaimer and the limitatio     16 // * for the full disclaimer and the limitation of liability.         *
 17 // *                                               17 // *                                                                  *
 18 // * This  code  implementation is the result      18 // * This  code  implementation is the result of  the  scientific and *
 19 // * technical work of the GEANT4 collaboratio     19 // * technical work of the GEANT4 collaboration.                      *
 20 // * By using,  copying,  modifying or  distri     20 // * By using,  copying,  modifying or  distributing the software (or *
 21 // * any work based  on the software)  you  ag     21 // * any work based  on the software)  you  agree  to acknowledge its *
 22 // * use  in  resulting  scientific  publicati     22 // * use  in  resulting  scientific  publications,  and indicate your *
 23 // * acceptance of all terms of the Geant4 Sof     23 // * acceptance of all terms of the Geant4 Software license.          *
 24 // *******************************************     24 // ********************************************************************
 25 //                                                 25 //
                                                   >>  26 // $Id: G4EnergyLossForExtrapolator.hh 74310 2013-10-03 06:44:36Z gcosmo $
 26 //                                                 27 //
 27 //--------------------------------------------     28 //---------------------------------------------------------------------------
 28 //                                                 29 //
 29 // ClassName:    G4EnergyLossForExtrapolator       30 // ClassName:    G4EnergyLossForExtrapolator
 30 //                                                 31 //  
 31 // Description:  This class provide calculatio     32 // Description:  This class provide calculation of energy loss, fluctuation, 
 32 //               and msc angle                     33 //               and msc angle
 33 //                                                 34 //
 34 // Author:       09.12.04 V.Ivanchenko             35 // Author:       09.12.04 V.Ivanchenko 
 35 //                                                 36 //
 36 // Modification:                                   37 // Modification: 
 37 // 08-04-05 Rename Propogator -> Extrapolator      38 // 08-04-05 Rename Propogator -> Extrapolator
 38 // 16-03-06 Add muon tables                        39 // 16-03-06 Add muon tables
 39 // 21-03-06 Add verbosity defined in the const     40 // 21-03-06 Add verbosity defined in the constructor and Initialisation
 40 //          start only when first public metho     41 //          start only when first public method is called (V.Ivanchenko)
 41 // 03-05-06 Remove unused pointer G4Material*      42 // 03-05-06 Remove unused pointer G4Material* from number of methods (VI)
 42 // 28-07-07 Add maxEnergyTransfer for computat     43 // 28-07-07 Add maxEnergyTransfer for computation of energy loss (VI)
 43 //                                                 44 //
 44 //--------------------------------------------     45 //----------------------------------------------------------------------------
 45 //                                                 46 //
 46                                                    47 
 47 //....oooOO0OOooo........oooOO0OOooo........oo     48 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
 48                                                    49 
 49 #ifndef G4EnergyLossForExtrapolator_h              50 #ifndef G4EnergyLossForExtrapolator_h
 50 #define G4EnergyLossForExtrapolator_h 1            51 #define G4EnergyLossForExtrapolator_h 1
 51                                                    52 
 52 #include <vector>                                  53 #include <vector>
 53 #include <CLHEP/Units/PhysicalConstants.h>         54 #include <CLHEP/Units/PhysicalConstants.h>
 54                                                    55 
 55 #include "globals.hh"                              56 #include "globals.hh"
 56 #include "G4PhysicsTable.hh"                       57 #include "G4PhysicsTable.hh"
 57 #include "G4TablesForExtrapolator.hh"          <<  58 #include "G4DataVector.hh"
 58 #include "G4Log.hh"                                59 #include "G4Log.hh"
 59 #include "G4Threading.hh"                      << 
 60                                                    60 
 61 class G4ParticleDefinition;                        61 class G4ParticleDefinition;
 62 class G4Material;                                  62 class G4Material;
 63 class G4MaterialCutsCouple;                        63 class G4MaterialCutsCouple;
                                                   >>  64 class G4ProductionCuts;
 64                                                    65 
 65 //....oooOO0OOooo........oooOO0OOooo........oo     66 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
 66                                                    67 
 67 class G4EnergyLossForExtrapolator                  68 class G4EnergyLossForExtrapolator 
 68 {                                                  69 {
 69 public:                                            70 public:
 70                                                    71 
 71   explicit G4EnergyLossForExtrapolator(G4int v <<  72   G4EnergyLossForExtrapolator(G4int verb = 1);
 72                                                    73 
 73   ~G4EnergyLossForExtrapolator();                  74   ~G4EnergyLossForExtrapolator();
 74                                                    75 
 75   void Initialisation();                       <<  76   G4double ComputeDEDX(G4double kinEnergy, const G4ParticleDefinition*);
 76                                                << 
 77   G4double ComputeDEDX(G4double kinEnergy, con << 
 78                        const G4Material*);     << 
 79                                                    77 
 80   G4double ComputeRange(G4double kinEnergy, co <<  78   G4double ComputeRange(G4double kinEnergy, const G4ParticleDefinition*);
 81                        const G4Material*);     << 
 82                                                    79 
 83   G4double ComputeEnergy(G4double range, const <<  80   G4double ComputeEnergy(G4double range, const G4ParticleDefinition*);
 84                        const G4Material*);     << 
 85                                                    81 
 86   G4double EnergyAfterStep(G4double kinEnergy,     82   G4double EnergyAfterStep(G4double kinEnergy, G4double step, 
 87          const G4Material*, const G4ParticleDe     83          const G4Material*, const G4ParticleDefinition*);
 88                                                    84 
 89   G4double EnergyBeforeStep(G4double kinEnergy     85   G4double EnergyBeforeStep(G4double kinEnergy, G4double step, 
 90                 const G4Material*, const G4Par     86                 const G4Material*, const G4ParticleDefinition*);
 91                                                    87 
 92   G4double TrueStepLength(G4double kinEnergy,      88   G4double TrueStepLength(G4double kinEnergy, G4double step,
 93         const G4Material*, const G4ParticleDef     89         const G4Material*, const G4ParticleDefinition* part);
 94                                                    90 
 95   inline G4double EnergyAfterStep(G4double kin     91   inline G4double EnergyAfterStep(G4double kinEnergy, G4double step, 
 96           const G4Material*,                   <<  92           const G4Material*, const G4String& particleName);
 97                                   const G4Stri << 
 98                                                    93 
 99   inline G4double EnergyBeforeStep(G4double ki     94   inline G4double EnergyBeforeStep(G4double kinEnergy, G4double step, 
100            const G4Material*,                  <<  95            const G4Material*, const G4String& particleName);
101                                    const G4Str << 
102                                                    96 
103   G4double AverageScatteringAngle(G4double kin <<  97   inline G4double AverageScatteringAngle(G4double kinEnergy, G4double step, 
104           const G4Material*,                   <<  98            const G4Material*, 
105           const G4ParticleDefinition* part);   <<  99            const G4ParticleDefinition* part);
106                                                   100 
107   inline G4double AverageScatteringAngle(G4dou    101   inline G4double AverageScatteringAngle(G4double kinEnergy, G4double step, 
108            const G4Material*,                     102            const G4Material*, 
109            const G4String& particleName);         103            const G4String& particleName);
110                                                   104 
111   inline G4double ComputeTrueStep(const G4Mate    105   inline G4double ComputeTrueStep(const G4Material*, 
112           const G4ParticleDefinition* part,       106           const G4ParticleDefinition* part, 
113           G4double kinEnergy, G4double stepLen    107           G4double kinEnergy, G4double stepLength);
114                                                   108 
115   G4double EnergyDispersion(G4double kinEnergy << 109   inline G4double EnergyDispersion(G4double kinEnergy, G4double step, 
116           const G4Material*,                   << 110            const G4Material*, const G4ParticleDefinition*);
117           const G4ParticleDefinition*);        << 
118                                                   111 
119   inline G4double EnergyDispersion(G4double ki    112   inline G4double EnergyDispersion(G4double kinEnergy, G4double step, 
120            const G4Material*,                  << 113            const G4Material*, const G4String& particleName);
121                                    const G4Str << 
122                                                   114 
123   inline void SetVerbose(G4int val);              115   inline void SetVerbose(G4int val);
124                                                   116 
125   inline void SetMinKinEnergy(G4double);          117   inline void SetMinKinEnergy(G4double);
126                                                   118 
127   inline void SetMaxKinEnergy(G4double);          119   inline void SetMaxKinEnergy(G4double);
128                                                   120 
129   inline void SetMaxEnergyTransfer(G4double);     121   inline void SetMaxEnergyTransfer(G4double);
130                                                << 
131   // hide assignment operator                  << 
132   G4EnergyLossForExtrapolator & operator=      << 
133   (const G4EnergyLossForExtrapolator &right) = << 
134   G4EnergyLossForExtrapolator(const G4EnergyLo << 
135                                                   122    
136 private:                                          123 private:
137                                                   124 
                                                   >> 125   void Initialisation();
                                                   >> 126 
138   G4bool SetupKinematics(const G4ParticleDefin    127   G4bool SetupKinematics(const G4ParticleDefinition*, const G4Material*, 
139        G4double kinEnergy);                       128        G4double kinEnergy);
140                                                   129 
                                                   >> 130   G4PhysicsTable* PrepareTable();
                                                   >> 131 
141   const G4ParticleDefinition* FindParticle(con    132   const G4ParticleDefinition* FindParticle(const G4String& name);
142                                                   133 
143   inline G4double ComputeValue(G4double x, con << 134   void ComputeElectronDEDX(const G4ParticleDefinition* part, 
144              size_t idxMat);                   << 135          G4PhysicsTable* table); 
145                                                   136 
146   inline const G4PhysicsTable* GetPhysicsTable << 137   void ComputeMuonDEDX(const G4ParticleDefinition* part, 
                                                   >> 138            G4PhysicsTable* table); 
147                                                   139 
148 #ifdef G4MULTITHREADED                         << 140   void ComputeProtonDEDX(const G4ParticleDefinition* part, 
149   static G4Mutex extrMutex;                    << 141        G4PhysicsTable* table); 
150 #endif                                         << 
151   static G4TablesForExtrapolator* tables;      << 
152                                                << 
153   const G4ParticleDefinition* currentParticle  << 
154   const G4ParticleDefinition* electron = nullp << 
155   const G4ParticleDefinition* positron = nullp << 
156   const G4ParticleDefinition* muonPlus = nullp << 
157   const G4ParticleDefinition* muonMinus= nullp << 
158   const G4ParticleDefinition* proton = nullptr << 
159   const G4Material* currentMaterial = nullptr; << 
160                                                << 
161   G4double electronDensity = 0.0;              << 
162   G4double radLength = 0.0;                    << 
163   G4double charge2 = 0.0;                      << 
164   G4double kineticEnergy = 0.0;                << 
165   G4double gam = 1.0;                          << 
166   G4double bg2 = 0.0;                          << 
167   G4double beta2 = 0.0;                        << 
168   G4double tmax = 0.0;                         << 
169                                                << 
170   G4double linLossLimit = 0.01;                << 
171   G4double emin = 0.0;                         << 
172   G4double emax = 0.0;                         << 
173   G4double maxEnergyTransfer = 0.0;            << 
174                                                << 
175   size_t index = 0;                            << 
176   size_t  nmat = 0;                            << 
177   G4int  nbins = 80;                           << 
178   G4int  verbose = 0;                          << 
179                                                   142 
180   G4bool isMaster = false;                     << 143   void ComputeTrasportXS(const G4ParticleDefinition* part, 
181 };                                             << 144        G4PhysicsTable* table);
182                                                   145 
183 //....oooOO0OOooo........oooOO0OOooo........oo << 146   inline G4double ComputeValue(G4double x, const G4PhysicsTable* table);
184                                                   147 
185 inline const G4PhysicsTable*                   << 148   // hide assignment operator
186 G4EnergyLossForExtrapolator::GetPhysicsTable(E << 149   G4EnergyLossForExtrapolator & operator=(const G4EnergyLossForExtrapolator &right);
187 {                                              << 150   G4EnergyLossForExtrapolator(const G4EnergyLossForExtrapolator&);
188   return tables->GetPhysicsTable(type);        << 151 
189 }                                              << 152   const G4ParticleDefinition* currentParticle;
                                                   >> 153   const G4ParticleDefinition* electron;
                                                   >> 154   const G4ParticleDefinition* positron;
                                                   >> 155   const G4ParticleDefinition* muonPlus;
                                                   >> 156   const G4ParticleDefinition* muonMinus;
                                                   >> 157   const G4ParticleDefinition* proton;
                                                   >> 158 
                                                   >> 159   G4DataVector             cuts;
                                                   >> 160 
                                                   >> 161   G4ProductionCuts*        pcuts;
                                                   >> 162   std::vector<const G4MaterialCutsCouple*> couples;
                                                   >> 163 
                                                   >> 164   G4String currentParticleName;
                                                   >> 165 
                                                   >> 166   G4PhysicsTable*          dedxElectron;
                                                   >> 167   G4PhysicsTable*          dedxPositron;
                                                   >> 168   G4PhysicsTable*          dedxMuon;
                                                   >> 169   G4PhysicsTable*          dedxProton;
                                                   >> 170   G4PhysicsTable*          rangeElectron;
                                                   >> 171   G4PhysicsTable*          rangePositron;
                                                   >> 172   G4PhysicsTable*          rangeMuon;
                                                   >> 173   G4PhysicsTable*          rangeProton;
                                                   >> 174   G4PhysicsTable*          invRangeElectron;
                                                   >> 175   G4PhysicsTable*          invRangePositron;
                                                   >> 176   G4PhysicsTable*          invRangeMuon;
                                                   >> 177   G4PhysicsTable*          invRangeProton;
                                                   >> 178   G4PhysicsTable*          mscElectron;
                                                   >> 179 
                                                   >> 180   const G4Material* currentMaterial;
                                                   >> 181   G4int       index;
                                                   >> 182   G4double    electronDensity;
                                                   >> 183   G4double    radLength;
                                                   >> 184   G4double    mass;
                                                   >> 185   G4double    charge2;
                                                   >> 186   G4double    kineticEnergy;
                                                   >> 187   G4double    gam;
                                                   >> 188   G4double    bg2;
                                                   >> 189   G4double    beta2;
                                                   >> 190   G4double    tmax;
                                                   >> 191 
                                                   >> 192   G4double    linLossLimit;
                                                   >> 193   G4double    emin;
                                                   >> 194   G4double    emax;
                                                   >> 195   G4double    maxEnergyTransfer;
                                                   >> 196 
                                                   >> 197   G4int       nbins;
                                                   >> 198   G4int       nmat;
                                                   >> 199   G4int       verbose;
                                                   >> 200   G4bool      isInitialised;
                                                   >> 201 };
190                                                   202 
191 //....oooOO0OOooo........oooOO0OOooo........oo    203 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
192                                                   204 
193 inline G4double                                   205 inline G4double 
194 G4EnergyLossForExtrapolator::EnergyAfterStep(G    206 G4EnergyLossForExtrapolator::EnergyAfterStep(G4double kinEnergy, 
195                G4double step,                     207                G4double step, 
196                const G4Material* mat,             208                const G4Material* mat, 
197                const G4String& name)              209                const G4String& name)
198 {                                                 210 {
199   return EnergyAfterStep(kinEnergy,step,mat,Fi    211   return EnergyAfterStep(kinEnergy,step,mat,FindParticle(name));
200 }                                                 212 }
201                                                   213 
202 //....oooOO0OOooo........oooOO0OOooo........oo    214 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
203                                                   215 
204 inline G4double                                   216 inline G4double 
205 G4EnergyLossForExtrapolator::EnergyBeforeStep(    217 G4EnergyLossForExtrapolator::EnergyBeforeStep(G4double kinEnergy, 
206                 G4double step,                    218                 G4double step, 
207                 const G4Material* mat,            219                 const G4Material* mat, 
208                 const G4String& name)             220                 const G4String& name)
209 {                                                 221 {
210   return EnergyBeforeStep(kinEnergy,step,mat,F    222   return EnergyBeforeStep(kinEnergy,step,mat,FindParticle(name));
211 }                                                 223 }
212                                                   224 
213 //....oooOO0OOooo........oooOO0OOooo........oo    225 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
214                                                   226 
215 inline G4double                                   227 inline G4double 
216 G4EnergyLossForExtrapolator::AverageScattering    228 G4EnergyLossForExtrapolator::AverageScatteringAngle(G4double kinEnergy, 
217                 G4double step,                    229                 G4double step, 
218                 const G4Material* mat,            230                 const G4Material* mat, 
219                 const G4String& name)             231                 const G4String& name)
220 {                                                 232 {
221   return AverageScatteringAngle(kinEnergy,step    233   return AverageScatteringAngle(kinEnergy,step,mat,FindParticle(name));
222 }                                                 234 }
223                                                   235 
224 //....oooOO0OOooo........oooOO0OOooo........oo    236 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
225                                                   237 
226 inline G4double                                   238 inline G4double 
227 G4EnergyLossForExtrapolator::EnergyDispersion(    239 G4EnergyLossForExtrapolator::EnergyDispersion(G4double kinEnergy, 
228                 G4double step,                    240                 G4double step, 
229                 const G4Material* mat,            241                 const G4Material* mat, 
230                 const G4String& name)             242                 const G4String& name)
231 {                                                 243 {
232   return EnergyDispersion(kinEnergy,step,mat,F    244   return EnergyDispersion(kinEnergy,step,mat,FindParticle(name));
233 }                                                 245 }
234                                                   246 
235 //....oooOO0OOooo........oooOO0OOooo........oo    247 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
236                                                   248 
237 inline G4double                                   249 inline G4double 
                                                   >> 250 G4EnergyLossForExtrapolator::AverageScatteringAngle(G4double kinEnergy, 
                                                   >> 251                 G4double stepLength, 
                                                   >> 252                 const G4Material* mat, 
                                                   >> 253                 const G4ParticleDefinition* part)
                                                   >> 254 {
                                                   >> 255   G4double theta = 0.0;
                                                   >> 256   if(SetupKinematics(part, mat, kinEnergy)) {
                                                   >> 257     G4double t = stepLength/radLength;
                                                   >> 258     G4double y = std::max(0.001, t); 
                                                   >> 259     theta = 19.23*CLHEP::MeV*std::sqrt(charge2*t)*(1.0 + 0.038*G4Log(y))
                                                   >> 260       /(beta2*gam*mass);
                                                   >> 261   }
                                                   >> 262   return theta;
                                                   >> 263 }
                                                   >> 264 
                                                   >> 265 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
                                                   >> 266 
                                                   >> 267 inline G4double 
238 G4EnergyLossForExtrapolator::ComputeTrueStep(c    268 G4EnergyLossForExtrapolator::ComputeTrueStep(const G4Material* mat, 
239                const G4ParticleDefinition* par    269                const G4ParticleDefinition* part,
240                G4double kinEnergy,                270                G4double kinEnergy, 
241                G4double stepLength)               271                G4double stepLength)
242 {                                                 272 {
243   G4double theta = AverageScatteringAngle(kinE    273   G4double theta = AverageScatteringAngle(kinEnergy,stepLength,mat,part);
244   return stepLength*std::sqrt(1.0 + 0.625*thet    274   return stepLength*std::sqrt(1.0 + 0.625*theta*theta);
245 }                                                 275 } 
246                                                   276 
247 //....oooOO0OOooo........oooOO0OOooo........oo    277 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
                                                   >> 278   
                                                   >> 279 inline G4double 
                                                   >> 280 G4EnergyLossForExtrapolator::EnergyDispersion(G4double kinEnergy, 
                                                   >> 281                 G4double stepLength, 
                                                   >> 282                 const G4Material* mat, 
                                                   >> 283                 const G4ParticleDefinition* part)
                                                   >> 284 {
                                                   >> 285   G4double sig2 = 0.0;
                                                   >> 286   if(SetupKinematics(part, mat, kinEnergy)) {
                                                   >> 287     G4double step = ComputeTrueStep(mat,part,kinEnergy,stepLength);
                                                   >> 288     sig2 = (1.0/beta2 - 0.5)*CLHEP::twopi_mc2_rcl2*tmax*step*electronDensity*charge2;
                                                   >> 289   }
                                                   >> 290   return sig2;
                                                   >> 291 }
                                                   >> 292 
                                                   >> 293 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
248                                                   294 
249 inline G4double                                   295 inline G4double 
250 G4EnergyLossForExtrapolator::ComputeValue(G4do    296 G4EnergyLossForExtrapolator::ComputeValue(G4double x, 
251             const G4PhysicsTable* table,       << 297             const G4PhysicsTable* table)
252             size_t idxMat)                     << 
253 {                                                 298 {
254   return (nullptr != table) ? ((*table)[idxMat << 299   G4double res = 0.0;
                                                   >> 300   G4bool b;
                                                   >> 301   if(table) res = ((*table)[index])->GetValue(x, b);
                                                   >> 302   return res;
255 }                                                 303 }
256                                                   304 
257 //....oooOO0OOooo........oooOO0OOooo........oo    305 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
258                                                   306 
259 inline void G4EnergyLossForExtrapolator::SetVe    307 inline void G4EnergyLossForExtrapolator::SetVerbose(G4int val) 
260 {                                                 308 {
261   verbose = val;                                  309   verbose = val;
262 }                                                 310 }
263                                                   311 
264 //....oooOO0OOooo........oooOO0OOooo........oo    312 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
265                                                   313 
266 inline void G4EnergyLossForExtrapolator::SetMi    314 inline void G4EnergyLossForExtrapolator::SetMinKinEnergy(G4double val)
267 {                                                 315 {
268   emin = val;                                     316   emin = val;
269 }                                                 317 }
270                                                   318 
271 //....oooOO0OOooo........oooOO0OOooo........oo    319 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
272                                                   320 
273 inline void G4EnergyLossForExtrapolator::SetMa    321 inline void G4EnergyLossForExtrapolator::SetMaxKinEnergy(G4double val)
274 {                                                 322 {
275   emax = val;                                     323   emax = val;
276 }                                                 324 }
277                                                   325 
278 //....oooOO0OOooo........oooOO0OOooo........oo    326 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
279                                                   327 
280 inline void G4EnergyLossForExtrapolator::SetMa    328 inline void G4EnergyLossForExtrapolator::SetMaxEnergyTransfer(G4double val)
281 {                                                 329 {
282   maxEnergyTransfer = val;                        330   maxEnergyTransfer = val;
283 }                                                 331 }
284                                                   332 
285 //....oooOO0OOooo........oooOO0OOooo........oo    333 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
286                                                   334 
287 #endif                                            335 #endif
288                                                   336 
289                                                   337