Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4SPSEneDistribution Class Reference

#include <G4SPSEneDistribution.hh>

Public Member Functions

 G4SPSEneDistribution ()
 
 ~G4SPSEneDistribution ()
 
void SetEnergyDisType (G4String)
 
G4String GetEnergyDisType ()
 
void SetEmin (G4double)
 
G4double GetEmin ()
 
G4double GetArbEmin ()
 
void SetEmax (G4double)
 
G4double GetEmax ()
 
G4double GetArbEmax ()
 
void SetMonoEnergy (G4double)
 
void SetAlpha (G4double)
 
void SetBiasAlpha (G4double)
 
void SetTemp (G4double)
 
void SetBeamSigmaInE (G4double)
 
void SetEzero (G4double)
 
void SetGradient (G4double)
 
void SetInterCept (G4double)
 
void UserEnergyHisto (G4ThreeVector)
 
void ArbEnergyHisto (G4ThreeVector)
 
void ArbEnergyHistoFile (G4String)
 
void EpnEnergyHisto (G4ThreeVector)
 
void InputEnergySpectra (G4bool)
 
void InputDifferentialSpectra (G4bool)
 
void ArbInterpolate (G4String)
 
G4String GetIntType ()
 
void Calculate ()
 
void SetBiasRndm (G4SPSRandomGenerator *a)
 
void ReSetHist (G4String)
 
void SetVerbosity (G4int a)
 
G4double GetWeight ()
 
G4double GetMonoEnergy ()
 
G4double GetSE ()
 
G4double Getalpha ()
 
G4double GetEzero ()
 
G4double GetTemp ()
 
G4double Getgrad ()
 
G4double Getcept ()
 
G4PhysicsOrderedFreeVector GetUserDefinedEnergyHisto ()
 
G4PhysicsOrderedFreeVector GetArbEnergyHisto ()
 
G4double GenerateOne (G4ParticleDefinition *)
 
G4double GetProbability (G4double)
 

Detailed Description

Andrea Dotti Feb 2015 Important: This is a shared class between threads. Only one thread should use the set-methods here. Note that this is exactly what is achieved using UI commands. If you use the set methods to set defaults in your application take care that only one thread is executing them. In addition take care of calling these methods before the run is started Do not use these setters during the event loop

Definition at line 171 of file G4SPSEneDistribution.hh.

Constructor & Destructor Documentation

G4SPSEneDistribution::G4SPSEneDistribution ( )

Definition at line 61 of file G4SPSEneDistribution.cc.

61  : Epnflag(false),eneRndm(0),Splinetemp(0)
62 {
64  //
65  // Initialise all variables
66  particle_energy = 1.0 * MeV;
67  EnergyDisType = "Mono";
68  weight=1.;
69  MonoEnergy = 1 * MeV;
70  Emin = 0.;
71  Emax = 1.e30;
72  alpha = 0.;
73  biasalpha = 0.;
74  prob_norm = 1.0;
75  Ezero = 0.;
76  SE = 0.;
77  Temp = 0.;
78  grad = 0.;
79  cept = 0.;
80  Biased = false; // not biased
81  EnergySpec = true; // true - energy spectra, false - momentum spectra
82  DiffSpec = true; // true - differential spec, false integral spec
83  IntType = "NULL"; // Interpolation type
84  IPDFEnergyExist = false;
85  IPDFArbExist = false;
86 
87  ArbEmin = 0.;
88  ArbEmax = 1.e30;
89 
90  verbosityLevel = 0;
91 
92  //AG: Set these pointers to NULL so we know if they were used...
93  Arb_grad = NULL;
94  Arb_cept = NULL;
95  Arb_alpha = NULL;
96  Arb_Const = NULL;
97  Arb_ezero = NULL;
98  Arb_grad_cept_flag = false;
99  Arb_alpha_Const_flag = false;
100  Arb_ezero_flag = false;
101  histInit = false;
102  histCalcd = false;
103 
104  BBHist = NULL;
105  Bbody_x = NULL;
106 
107  threadLocal_t& data = threadLocalData.Get();
108  data.Emax = Emax;
109  data.Emin = Emin;
110  data.alpha =alpha;
111  data.cept = cept;
112  data.Ezero = Ezero;
113  data.grad = grad;
114  data.particle_energy = 0;
115  data.particle_definition = NULL;
116  data.weight = weight;
117 }
value_type & Get() const
Definition: G4Cache.hh:282
#define G4MUTEXINIT(mutex)
Definition: G4Threading.hh:177
const XML_Char const XML_Char * data
Definition: expat.h:268
static constexpr double MeV
Definition: G4SIunits.hh:214

Here is the call graph for this function:

G4SPSEneDistribution::~G4SPSEneDistribution ( )

Definition at line 119 of file G4SPSEneDistribution.cc.

120 {
122  if(Arb_grad_cept_flag)
123  {
124  delete[] Arb_grad;
125  delete[] Arb_cept;
126  }
127 
128  if(Arb_alpha_Const_flag)
129  {
130  delete[] Arb_alpha;
131  delete[] Arb_Const;
132  }
133 
134  if(Arb_ezero_flag)
135  {
136  delete[] Arb_ezero;
137  }
138  delete Bbody_x;
139  delete BBHist;
140  for ( std::vector<G4DataInterpolation*>::iterator it = SplineInt.begin() ; it!=SplineInt.end() ; ++it)
141  {
142  delete *it;
143  *it = 0;
144  }
145  SplineInt.clear();
146 }
#define G4MUTEXDESTROY(mutex)
Definition: G4Threading.hh:178

Member Function Documentation

void G4SPSEneDistribution::ArbEnergyHisto ( G4ThreeVector  input)

Definition at line 341 of file G4SPSEneDistribution.cc.

342 {
343  G4AutoLock l(&mutex);
344  G4double ehi, val;
345  ehi = input.x();
346  val = input.y();
347  if (verbosityLevel > 1)
348  {
349  G4cout << "In ArbEnergyHisto" << G4endl;
350  G4cout << " " << ehi << " " << val << G4endl;
351  }
352  ArbEnergyH.InsertValues(ehi, val);
353 }
double x() const
void InsertValues(G4double energy, G4double value)
G4GLOB_DLL std::ostream G4cout
double y() const
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:

Here is the caller graph for this function:

void G4SPSEneDistribution::ArbEnergyHistoFile ( G4String  filename)

Definition at line 355 of file G4SPSEneDistribution.cc.

356 {
357  G4AutoLock l(&mutex);
358  std::ifstream infile(filename, std::ios::in);
359  if (!infile)
360  {
361  G4Exception("G4SPSEneDistribution::ArbEnergyHistoFile","Event0301",FatalException,"Unable to open the histo ASCII file");
362  }
363  G4double ehi, val;
364  while (infile >> ehi >> val)
365  {
366  ArbEnergyH.InsertValues(ehi, val);
367  }
368 }
void InsertValues(G4double energy, G4double value)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:

Here is the caller graph for this function:

void G4SPSEneDistribution::ArbInterpolate ( G4String  IType)

Definition at line 519 of file G4SPSEneDistribution.cc.

519  {
520  G4AutoLock l(&mutex);
521  if (EnergyDisType != "Arb")
522  G4Exception("G4SPSEneDistribution::ArbInterpolate",
523  "Event0302",FatalException,
524  "Error: this is for arbitrary distributions");
525  IntType = IType;
526  ArbEmax = ArbEnergyH.GetMaxLowEdgeEnergy();
527  ArbEmin = ArbEnergyH.GetMinLowEdgeEnergy();
528 
529  // Now interpolate points
530  if (IntType == "Lin")
531  LinearInterpolation();
532  if (IntType == "Log")
533  LogInterpolation();
534  if (IntType == "Exp")
535  ExpInterpolation();
536  if (IntType == "Spline")
537  SplineInterpolation();
538 }
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41

Here is the call graph for this function:

Here is the caller graph for this function:

void G4SPSEneDistribution::Calculate ( )

Definition at line 387 of file G4SPSEneDistribution.cc.

388 {
389  G4AutoLock l(&mutex);
390  if (EnergyDisType == "Cdg")
391  {
392  CalculateCdgSpectrum();
393  }
394  else if (EnergyDisType == "Bbody")
395  {
396  if(!histInit)
397  {
398  InitHists();
399  }
400  CalculateBbodySpectrum();
401  }
402 }

Here is the caller graph for this function:

void G4SPSEneDistribution::EpnEnergyHisto ( G4ThreeVector  input)

Definition at line 370 of file G4SPSEneDistribution.cc.

371 {
372  G4AutoLock l(&mutex);
373  G4double ehi, val;
374  ehi = input.x();
375  val = input.y();
376  if (verbosityLevel > 1)
377  {
378  G4cout << "In EpnEnergyHisto" << G4endl;
379  G4cout << " " << ehi << " " << val << G4endl;
380  }
381  EpnEnergyH.InsertValues(ehi, val);
382  Emax = ehi;
383  threadLocalData.Get().Emax = Emax;
384  Epnflag = true;
385 }
double x() const
value_type & Get() const
Definition: G4Cache.hh:282
void InsertValues(G4double energy, G4double value)
G4GLOB_DLL std::ostream G4cout
double y() const
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:

Here is the caller graph for this function:

G4double G4SPSEneDistribution::GenerateOne ( G4ParticleDefinition a)

Definition at line 1723 of file G4SPSEneDistribution.cc.

1724 {
1725  //Copy global shared status to thread-local one
1726  threadLocal_t& params = threadLocalData.Get();
1727  params.particle_definition=a;
1728  params.particle_energy=-1;
1729  params.Emax = Emax;
1730  params.Emin = Emin;
1731  params.alpha = alpha;
1732  params.Ezero = Ezero;
1733  params.grad = grad;
1734  params.cept = cept;
1735  params.weight = weight;
1736  //particle_energy = -1.;
1737  while ((EnergyDisType == "Arb") ? (params.particle_energy < ArbEmin || params.particle_energy > ArbEmax) : (params.particle_energy < params.Emin|| params.particle_energy > params.Emax))
1738  {
1739  if (Biased)
1740  {
1741  GenerateBiasPowEnergies();
1742  }
1743  else
1744  {
1745  if (EnergyDisType == "Mono")
1746  {
1747  GenerateMonoEnergetic();
1748  }
1749  else if (EnergyDisType == "Lin")
1750  {
1751  GenerateLinearEnergies(false);
1752  }
1753  else if (EnergyDisType == "Pow")
1754  {
1755  GeneratePowEnergies(false);
1756  }
1757  else if (EnergyDisType == "Exp")
1758  {
1759  GenerateExpEnergies(false);
1760  }
1761  else if (EnergyDisType == "Gauss")
1762  {
1763  GenerateGaussEnergies();
1764  }
1765  else if (EnergyDisType == "Brem")
1766  {
1767  GenerateBremEnergies();
1768  }
1769  else if (EnergyDisType == "Bbody")
1770  {
1771  GenerateBbodyEnergies();
1772  }
1773  else if (EnergyDisType == "Cdg")
1774  {
1775  GenerateCdgEnergies();
1776  }
1777  else if (EnergyDisType == "User")
1778  {
1779  GenUserHistEnergies();
1780  }
1781  else if (EnergyDisType == "Arb")
1782  {
1783  GenArbPointEnergies();
1784  }
1785  else if (EnergyDisType == "Epn")
1786  {
1787  GenEpnHistEnergies();
1788  }
1789  else
1790  {
1791  G4cout << "Error: EnergyDisType has unusual value" << G4endl;
1792  }
1793  }
1794  }
1795  return params.particle_energy;
1796 }
value_type & Get() const
Definition: G4Cache.hh:282
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61

Here is the call graph for this function:

Here is the caller graph for this function:

G4double G4SPSEneDistribution::Getalpha ( )

Definition at line 289 of file G4SPSEneDistribution.cc.

290 {
291  return threadLocalData.Get().alpha;
292 }
value_type & Get() const
Definition: G4Cache.hh:282

Here is the call graph for this function:

G4double G4SPSEneDistribution::GetArbEmax ( )

Definition at line 192 of file G4SPSEneDistribution.cc.

193 {
194  G4AutoLock l(&mutex);
195  return ArbEmax;
196 }
G4double G4SPSEneDistribution::GetArbEmin ( )

Definition at line 186 of file G4SPSEneDistribution.cc.

187 {
188  G4AutoLock l(&mutex);
189  return ArbEmin;
190 }
G4PhysicsOrderedFreeVector G4SPSEneDistribution::GetArbEnergyHisto ( )

Definition at line 321 of file G4SPSEneDistribution.cc.

322 {
323  G4AutoLock l(&mutex);
324  return ArbEnergyH;
325 }
G4double G4SPSEneDistribution::Getcept ( )

Definition at line 310 of file G4SPSEneDistribution.cc.

311 {
312  return threadLocalData.Get().cept;
313 }
value_type & Get() const
Definition: G4Cache.hh:282

Here is the call graph for this function:

G4double G4SPSEneDistribution::GetEmax ( )

Definition at line 204 of file G4SPSEneDistribution.cc.

205 {
206  return threadLocalData.Get().Emax;
207 }
value_type & Get() const
Definition: G4Cache.hh:282

Here is the call graph for this function:

G4double G4SPSEneDistribution::GetEmin ( )

Definition at line 181 of file G4SPSEneDistribution.cc.

182 {
183  return threadLocalData.Get().Emin;
184 }
value_type & Get() const
Definition: G4Cache.hh:282

Here is the call graph for this function:

G4String G4SPSEneDistribution::GetEnergyDisType ( )

Definition at line 169 of file G4SPSEneDistribution.cc.

170 {
171  G4AutoLock l(&mutex);
172  return EnergyDisType;
173 }

Here is the caller graph for this function:

G4double G4SPSEneDistribution::GetEzero ( )

Definition at line 294 of file G4SPSEneDistribution.cc.

295 {
296  return threadLocalData.Get().Ezero;
297 }
value_type & Get() const
Definition: G4Cache.hh:282

Here is the call graph for this function:

G4double G4SPSEneDistribution::Getgrad ( )

Definition at line 305 of file G4SPSEneDistribution.cc.

306 {
307  return threadLocalData.Get().grad;
308 }
value_type & Get() const
Definition: G4Cache.hh:282

Here is the call graph for this function:

G4String G4SPSEneDistribution::GetIntType ( )

Definition at line 254 of file G4SPSEneDistribution.cc.

255 {
256  G4AutoLock l(&mutex);
257  return IntType;
258 }
G4double G4SPSEneDistribution::GetMonoEnergy ( )

Definition at line 277 of file G4SPSEneDistribution.cc.

278 {
279  G4AutoLock l(&mutex);
280  return MonoEnergy;
281 }
G4double G4SPSEneDistribution::GetProbability ( G4double  ene)

Definition at line 1798 of file G4SPSEneDistribution.cc.

1799 {
1800  G4double prob = 1.;
1801 
1802  threadLocal_t& params = threadLocalData.Get();
1803  if (EnergyDisType == "Lin")
1804  {
1805  if (prob_norm == 1.)
1806  {
1807  prob_norm = 0.5*params.grad*params.Emax*params.Emax + params.cept*params.Emax - 0.5*params.grad*params.Emin*params.Emin - params.cept*params.Emin;
1808  }
1809  prob = params.cept + params.grad * ene;
1810  prob /= prob_norm;
1811  }
1812  else if (EnergyDisType == "Pow")
1813  {
1814  if (prob_norm == 1.)
1815  {
1816  if (alpha != -1.)
1817  {
1818  G4double emina = std::pow(params.Emin, params.alpha + 1);
1819  G4double emaxa = std::pow(params.Emax, params.alpha + 1);
1820  prob_norm = 1./(1.+alpha) * (emaxa - emina);
1821  }
1822  else
1823  {
1824  prob_norm = std::log(params.Emax) - std::log(params.Emin) ;
1825  }
1826  }
1827  prob = std::pow(ene, params.alpha)/prob_norm;
1828  }
1829  else if (EnergyDisType == "Exp")
1830  {
1831  if (prob_norm == 1.)
1832  {
1833  prob_norm = -params.Ezero*(std::exp(-params.Emax/params.Ezero) - std::exp(params.Emin/params.Ezero));
1834  }
1835  prob = std::exp(-ene / params.Ezero);
1836  prob /= prob_norm;
1837  }
1838  else if (EnergyDisType == "Arb")
1839  {
1840  prob = ArbEnergyH.Value(ene);
1841  // prob = ArbEInt->CubicSplineInterpolation(ene);
1842  //G4double deltaY;
1843  //prob = ArbEInt->PolynomInterpolation(ene, deltaY);
1844  if (prob <= 0.)
1845  {
1846  //G4cout << " Warning:G4SPSEneDistribution::GetProbability: prob<= 0. "<<prob <<" "<<ene << " " <<deltaY<< G4endl;
1847  G4cout << " Warning:G4SPSEneDistribution::GetProbability: prob<= 0. "<<prob <<" "<<ene << G4endl;
1848  prob = 1e-30;
1849  }
1850  // already normalised
1851  }
1852  else
1853  {
1854  G4cout << "Error: EnergyDisType not supported" << G4endl;
1855  }
1856 
1857  return prob;
1858 }
value_type & Get() const
Definition: G4Cache.hh:282
G4GLOB_DLL std::ostream G4cout
G4double Value(G4double theEnergy, size_t &lastidx) const
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:

G4double G4SPSEneDistribution::GetSE ( )

Definition at line 283 of file G4SPSEneDistribution.cc.

284 {
285  G4AutoLock l(&mutex);
286  return SE;
287 }
G4double G4SPSEneDistribution::GetTemp ( )

Definition at line 299 of file G4SPSEneDistribution.cc.

300 {
301  G4AutoLock l(&mutex);
302  return Temp;
303 }
G4PhysicsOrderedFreeVector G4SPSEneDistribution::GetUserDefinedEnergyHisto ( )

Definition at line 315 of file G4SPSEneDistribution.cc.

316 {
317  G4AutoLock l(&mutex);
318  return UDefEnergyH;
319 }
G4double G4SPSEneDistribution::GetWeight ( )

Definition at line 272 of file G4SPSEneDistribution.cc.

273 {
274  return threadLocalData.Get().weight;
275 }
value_type & Get() const
Definition: G4Cache.hh:282

Here is the call graph for this function:

Here is the caller graph for this function:

void G4SPSEneDistribution::InputDifferentialSpectra ( G4bool  value)

Definition at line 511 of file G4SPSEneDistribution.cc.

511  {
512  G4AutoLock l(&mutex);
513  // Allows user to specify integral or differential spectra
514  DiffSpec = value; // true = differential, false = integral
515  if (verbosityLevel > 1)
516  G4cout << "Diffspec has value " << DiffSpec << G4endl;
517 }
G4GLOB_DLL std::ostream G4cout
const XML_Char int const XML_Char * value
Definition: expat.h:331
#define G4endl
Definition: G4ios.hh:61

Here is the caller graph for this function:

void G4SPSEneDistribution::InputEnergySpectra ( G4bool  value)

Definition at line 503 of file G4SPSEneDistribution.cc.

503  {
504  G4AutoLock l(&mutex);
505  // Allows user to specifiy spectrum is momentum
506  EnergySpec = value; // false if momentum
507  if (verbosityLevel > 1)
508  G4cout << "EnergySpec has value " << EnergySpec << G4endl;
509 }
G4GLOB_DLL std::ostream G4cout
const XML_Char int const XML_Char * value
Definition: expat.h:331
#define G4endl
Definition: G4ios.hh:61

Here is the caller graph for this function:

void G4SPSEneDistribution::ReSetHist ( G4String  atype)

Definition at line 1696 of file G4SPSEneDistribution.cc.

1697 {
1698  G4AutoLock l(&mutex);
1699  if (atype == "energy")
1700  {
1701  UDefEnergyH = IPDFEnergyH = ZeroPhysVector;
1702  IPDFEnergyExist = false;
1703  Emin = 0.;
1704  Emax = 1e30;
1705  }
1706  else if (atype == "arb")
1707  {
1708  ArbEnergyH = IPDFArbEnergyH = ZeroPhysVector;
1709  IPDFArbExist = false;
1710  }
1711  else if (atype == "epn")
1712  {
1713  UDefEnergyH = IPDFEnergyH = ZeroPhysVector;
1714  IPDFEnergyExist = false;
1715  EpnEnergyH = ZeroPhysVector;
1716  }
1717  else
1718  {
1719  G4cout << "Error, histtype not accepted " << G4endl;
1720  }
1721 }
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61

Here is the caller graph for this function:

void G4SPSEneDistribution::SetAlpha ( G4double  alp)

Definition at line 219 of file G4SPSEneDistribution.cc.

219  {
220  G4AutoLock l(&mutex);
221  alpha = alp;
222  threadLocalData.Get().alpha = alpha;
223 }
value_type & Get() const
Definition: G4Cache.hh:282

Here is the call graph for this function:

Here is the caller graph for this function:

void G4SPSEneDistribution::SetBeamSigmaInE ( G4double  e)

Definition at line 215 of file G4SPSEneDistribution.cc.

215  {
216  G4AutoLock l(&mutex);
217  SE = e;
218 }

Here is the caller graph for this function:

void G4SPSEneDistribution::SetBiasAlpha ( G4double  alp)

Definition at line 225 of file G4SPSEneDistribution.cc.

225  {
226  G4AutoLock l(&mutex);
227  biasalpha = alp;
228  Biased = true;
229 }

Here is the caller graph for this function:

void G4SPSEneDistribution::SetBiasRndm ( G4SPSRandomGenerator a)

Definition at line 260 of file G4SPSEneDistribution.cc.

261 {
262  G4AutoLock l(&mutex);
263  eneRndm = a;
264 }

Here is the caller graph for this function:

void G4SPSEneDistribution::SetEmax ( G4double  ema)

Definition at line 198 of file G4SPSEneDistribution.cc.

198  {
199  G4AutoLock l(&mutex);
200  Emax = ema;
201  threadLocalData.Get().Emax = Emax;
202 }
value_type & Get() const
Definition: G4Cache.hh:282

Here is the call graph for this function:

Here is the caller graph for this function:

void G4SPSEneDistribution::SetEmin ( G4double  emi)

Definition at line 175 of file G4SPSEneDistribution.cc.

175  {
176  G4AutoLock l(&mutex);
177  Emin = emi;
178  threadLocalData.Get().Emin = Emin;
179 }
value_type & Get() const
Definition: G4Cache.hh:282

Here is the call graph for this function:

Here is the caller graph for this function:

void G4SPSEneDistribution::SetEnergyDisType ( G4String  DisType)

Definition at line 148 of file G4SPSEneDistribution.cc.

148  {
149  G4AutoLock l(&mutex);
150  EnergyDisType = DisType;
151  if (EnergyDisType == "User")
152  {
153  UDefEnergyH = IPDFEnergyH = ZeroPhysVector;
154  IPDFEnergyExist = false;
155  }
156  else if (EnergyDisType == "Arb")
157  {
158  ArbEnergyH = IPDFArbEnergyH = ZeroPhysVector;
159  IPDFArbExist = false;
160  }
161  else if (EnergyDisType == "Epn")
162  {
163  UDefEnergyH = IPDFEnergyH = ZeroPhysVector;
164  IPDFEnergyExist = false;
165  EpnEnergyH = ZeroPhysVector;
166  }
167 }

Here is the caller graph for this function:

void G4SPSEneDistribution::SetEzero ( G4double  eze)

Definition at line 236 of file G4SPSEneDistribution.cc.

236  {
237  G4AutoLock l(&mutex);
238  Ezero = eze;
239  threadLocalData.Get().Ezero = Ezero;
240 }
value_type & Get() const
Definition: G4Cache.hh:282

Here is the call graph for this function:

Here is the caller graph for this function:

void G4SPSEneDistribution::SetGradient ( G4double  gr)

Definition at line 242 of file G4SPSEneDistribution.cc.

242  {
243  G4AutoLock l(&mutex);
244  grad = gr;
245  threadLocalData.Get().grad = grad;
246 }
value_type & Get() const
Definition: G4Cache.hh:282

Here is the call graph for this function:

Here is the caller graph for this function:

void G4SPSEneDistribution::SetInterCept ( G4double  c)

Definition at line 248 of file G4SPSEneDistribution.cc.

248  {
249  G4AutoLock l(&mutex);
250  cept = c;
251  threadLocalData.Get().cept = cept;
252 }
value_type & Get() const
Definition: G4Cache.hh:282

Here is the call graph for this function:

Here is the caller graph for this function:

void G4SPSEneDistribution::SetMonoEnergy ( G4double  menergy)

Definition at line 210 of file G4SPSEneDistribution.cc.

210  {
211  G4AutoLock l(&mutex);
212  MonoEnergy = menergy;
213 }

Here is the caller graph for this function:

void G4SPSEneDistribution::SetTemp ( G4double  tem)

Definition at line 231 of file G4SPSEneDistribution.cc.

231  {
232  G4AutoLock l(&mutex);
233  Temp = tem;
234 }

Here is the caller graph for this function:

void G4SPSEneDistribution::SetVerbosity ( G4int  a)

Definition at line 266 of file G4SPSEneDistribution.cc.

267 {
268  G4AutoLock l(&mutex);
269  verbosityLevel = a;
270 }

Here is the caller graph for this function:

void G4SPSEneDistribution::UserEnergyHisto ( G4ThreeVector  input)

Definition at line 327 of file G4SPSEneDistribution.cc.

327  {
328  G4AutoLock l(&mutex);
329  G4double ehi, val;
330  ehi = input.x();
331  val = input.y();
332  if (verbosityLevel > 1) {
333  G4cout << "In UserEnergyHisto" << G4endl;
334  G4cout << " " << ehi << " " << val << G4endl;
335  }
336  UDefEnergyH.InsertValues(ehi, val);
337  Emax = ehi;
338  threadLocalData.Get().Emax = Emax;
339 }
double x() const
value_type & Get() const
Definition: G4Cache.hh:282
void InsertValues(G4double energy, G4double value)
G4GLOB_DLL std::ostream G4cout
double y() const
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:

Here is the caller graph for this function:


The documentation for this class was generated from the following files: