67std::vector<G4double> G4WentzelVIRelModel::effMass;
96 ComputeEffectiveMass();
127 G4Exception(
"G4WentzelVIRelModel::ComputeCrossSectionPerAtom",
"em0011",
133 G4double tmass = (1 == iz) ? CLHEP::proton_mass_c2
153void G4WentzelVIRelModel::ComputeEffectiveMass()
158#ifdef G4MULTITHREADED
159 G4MUTEXLOCK(&G4WentzelVIRelModel::WentzelVIRelModelMutex);
160 if(ncouples != effMass.size()) {
162 effMass.resize(ncouples, 0.0);
163 for(
size_t i=0; i<ncouples; ++i) {
170 for(
G4int j=0; j<nelm; ++j) {
171 G4int Z = (*elmVector)[j]->GetZasInt();
177 effMass[i] = sum/norm;
179#ifdef G4MULTITHREADED
std::vector< G4Element * > G4ElementVector
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
#define G4MUTEX_INITIALIZER
#define G4MUTEXLOCK(mutex)
#define G4MUTEXUNLOCK(mutex)
const G4Material * GetMaterial() const
const G4ElementVector * GetElementVector() const
size_t GetNumberOfElements() const
static G4NistManager * Instance()
G4double GetAtomicMassAmu(const G4String &symb) const
const G4MaterialCutsCouple * GetMaterialCutsCouple(G4int i) const
std::size_t GetTableSize() const
static G4ProductionCutsTable * GetProductionCutsTable()
void SetCurrentCouple(const G4MaterialCutsCouple *)
const G4MaterialCutsCouple * CurrentCouple() const
G4double SetupTarget(G4int Z, G4double cut)
void SetTargetMass(G4double value)
G4double ComputeTransportCrossSectionPerAtom(G4double CosThetaMax)
G4double SetupKinematic(G4double kinEnergy, const G4Material *mat)
const G4MaterialCutsCouple * currentCouple
G4int currentMaterialIndex
virtual void Initialise(const G4ParticleDefinition *, const G4DataVector &) override
void SetWVICrossSection(G4WentzelOKandVIxSection *)
G4WentzelOKandVIxSection * GetWVICrossSection()
const G4ParticleDefinition * particle
const G4Material * currentMaterial
void SetupParticle(const G4ParticleDefinition *)
G4WentzelOKandVIxSection * wokvi
virtual void DefineMaterial(const G4MaterialCutsCouple *cup)
virtual G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition *, G4double KineticEnergy, G4double AtomicNumber, G4double AtomicWeight=0., G4double cut=DBL_MAX, G4double emax=DBL_MAX) override
virtual ~G4WentzelVIRelModel()
virtual void Initialise(const G4ParticleDefinition *, const G4DataVector &) override