Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions
G4PhysicsOrderedFreeVector Class Reference

#include <G4PhysicsOrderedFreeVector.hh>

Inheritance diagram for G4PhysicsOrderedFreeVector:
G4PhysicsVector

Public Member Functions

 G4PhysicsOrderedFreeVector ()
 
 G4PhysicsOrderedFreeVector (G4double *Energies, G4double *Values, size_t VectorLength)
 
virtual ~G4PhysicsOrderedFreeVector ()
 
void InsertValues (G4double energy, G4double value)
 
G4double GetMaxValue ()
 
G4double GetMinValue ()
 
G4double GetEnergy (G4double aValue)
 
G4double GetMaxLowEdgeEnergy ()
 
G4double GetMinLowEdgeEnergy ()
 
void DumpValues ()
 
- Public Member Functions inherited from G4PhysicsVector
 G4PhysicsVector (G4bool spline=false)
 
 G4PhysicsVector (const G4PhysicsVector &)
 
G4PhysicsVectoroperator= (const G4PhysicsVector &)
 
virtual ~G4PhysicsVector ()
 
voidoperator new (size_t)
 
void operator delete (void *)
 
G4double Value (G4double theEnergy, size_t &lastidx) const
 
G4double Value (G4double theEnergy) const
 
G4double GetValue (G4double theEnergy, G4bool &isOutRange) const
 
G4int operator== (const G4PhysicsVector &right) const
 
G4int operator!= (const G4PhysicsVector &right) const
 
G4double operator[] (const size_t binNumber) const
 
G4double operator() (const size_t binNumber) const
 
void PutValue (size_t index, G4double theValue)
 
virtual void ScaleVector (G4double factorE, G4double factorV)
 
G4double Energy (size_t index) const
 
G4double GetMaxEnergy () const
 
G4double GetLowEdgeEnergy (size_t binNumber) const
 
size_t GetVectorLength () const
 
size_t FindBin (G4double energy, size_t idx) const
 
void FillSecondDerivatives ()
 
void ComputeSecDerivatives ()
 
void ComputeSecondDerivatives (G4double firstPointDerivative, G4double endPointDerivative)
 
G4double FindLinearEnergy (G4double rand) const
 
G4bool IsFilledVectorExist () const
 
G4PhysicsVectorType GetType () const
 
void SetSpline (G4bool)
 
virtual G4bool Store (std::ofstream &fOut, G4bool ascii=false)
 
virtual G4bool Retrieve (std::ifstream &fIn, G4bool ascii=false)
 
void SetVerboseLevel (G4int value)
 
G4int GetVerboseLevel (G4int)
 

Additional Inherited Members

- Protected Member Functions inherited from G4PhysicsVector
void DeleteData ()
 
void CopyData (const G4PhysicsVector &vec)
 
- Protected Attributes inherited from G4PhysicsVector
G4PhysicsVectorType type
 
G4double edgeMin
 
G4double edgeMax
 
size_t numberOfNodes
 
G4PVDataVector dataVector
 
G4PVDataVector binVector
 
G4PVDataVector secDerivative
 
G4double dBin
 
G4double baseBin
 
G4int verboseLevel
 

Detailed Description

Definition at line 67 of file G4PhysicsOrderedFreeVector.hh.

Constructor & Destructor Documentation

G4PhysicsOrderedFreeVector::G4PhysicsOrderedFreeVector ( )
G4PhysicsOrderedFreeVector::G4PhysicsOrderedFreeVector ( G4double Energies,
G4double Values,
size_t  VectorLength 
)

Definition at line 62 of file G4PhysicsOrderedFreeVector.cc.

References InsertValues(), T_G4PhysicsOrderedFreeVector, and G4PhysicsVector::type.

65  : G4PhysicsVector()
66 {
68 
69  for (size_t i = 0 ; i < VectorLength ; i++)
70  {
71  InsertValues(Energies[i], Values[i]);
72  }
73 }
G4PhysicsVector(G4bool spline=false)
void InsertValues(G4double energy, G4double value)
G4PhysicsVectorType type
G4PhysicsOrderedFreeVector::~G4PhysicsOrderedFreeVector ( )
virtual

Definition at line 85 of file G4PhysicsOrderedFreeVector.cc.

85 {}

Member Function Documentation

void G4PhysicsOrderedFreeVector::DumpValues ( )
G4double G4PhysicsOrderedFreeVector::GetEnergy ( G4double  aValue)

Definition at line 108 of file G4PhysicsOrderedFreeVector.cc.

References GetMaxLowEdgeEnergy(), GetMaxValue(), GetMinLowEdgeEnergy(), and GetMinValue().

Referenced by WLSPrimaryGeneratorAction::GeneratePrimaries(), G4SPSRandomGenerator::GenRandEnergy(), G4SPSRandomGenerator::GenRandPhi(), G4SPSRandomGenerator::GenRandPosPhi(), G4SPSRandomGenerator::GenRandPosTheta(), G4SPSRandomGenerator::GenRandTheta(), G4SPSRandomGenerator::GenRandX(), G4SPSRandomGenerator::GenRandY(), G4SPSRandomGenerator::GenRandZ(), G4OpWLS::PostStepDoIt(), and G4Scintillation::PostStepDoIt().

109 {
110 
111  if (aValue <= GetMinValue()) {
112  return GetMinLowEdgeEnergy();
113  } else if (aValue >= GetMaxValue()) {
114  return GetMaxLowEdgeEnergy();
115  } else {
116  size_t closestBin = FindValueBinLocation(aValue);
117  G4double theEnergy = LinearInterpolationOfEnergy(aValue, closestBin);
118 
119  return theEnergy;
120  }
121 }
double G4double
Definition: G4Types.hh:76
G4double G4PhysicsOrderedFreeVector::GetMaxLowEdgeEnergy ( )
G4double G4PhysicsOrderedFreeVector::GetMaxValue ( )
G4double G4PhysicsOrderedFreeVector::GetMinLowEdgeEnergy ( )
G4double G4PhysicsOrderedFreeVector::GetMinValue ( )

Referenced by GetEnergy().

void G4PhysicsOrderedFreeVector::InsertValues ( G4double  energy,
G4double  value 
)

Definition at line 91 of file G4PhysicsOrderedFreeVector.cc.

References G4PhysicsVector::binVector, G4PhysicsVector::dataVector, G4PhysicsVector::edgeMax, G4PhysicsVector::edgeMin, energy(), and G4PhysicsVector::numberOfNodes.

Referenced by G4SPSEneDistribution::ArbEnergyHisto(), G4SPSEneDistribution::ArbEnergyHistoFile(), G4SPSEneDistribution::EpnEnergyHisto(), G4PhysicsOrderedFreeVector(), G4SPSRandomGenerator::GenRandEnergy(), G4SPSRandomGenerator::GenRandPhi(), G4SPSRandomGenerator::GenRandPosPhi(), G4SPSRandomGenerator::GenRandPosTheta(), G4SPSRandomGenerator::GenRandTheta(), G4SPSRandomGenerator::GenRandX(), G4SPSRandomGenerator::GenRandY(), G4SPSRandomGenerator::GenRandZ(), G4GDMLReadMaterials::PropertyRead(), G4SPSRandomGenerator::SetEnergyBias(), G4SPSRandomGenerator::SetPhiBias(), G4SPSRandomGenerator::SetPosPhiBias(), G4SPSRandomGenerator::SetPosThetaBias(), G4SPSRandomGenerator::SetThetaBias(), G4SPSRandomGenerator::SetXBias(), G4SPSRandomGenerator::SetYBias(), G4SPSRandomGenerator::SetZBias(), G4SPSAngDistribution::UserDefAngPhi(), G4SPSAngDistribution::UserDefAngTheta(), and G4SPSEneDistribution::UserEnergyHisto().

92 {
93  std::vector<G4double>::iterator binLoc =
94  std::lower_bound(binVector.begin(), binVector.end(), energy);
95 
96  size_t binIdx = binLoc - binVector.begin(); // Iterator difference!
97 
98  std::vector<G4double>::iterator dataLoc = dataVector.begin() + binIdx;
99 
100  binVector.insert(binLoc, energy);
101  dataVector.insert(dataLoc, value);
102 
103  numberOfNodes++;
104  edgeMin = binVector.front();
105  edgeMax = binVector.back();
106 }
G4PVDataVector dataVector
G4PVDataVector binVector
double precision function energy(A, Z)
Definition: dpm25nuc6.f:4106
const XML_Char int const XML_Char * value

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