75std::vector<G4VEMDataSet*>*
85 std::vector<G4VEMDataSet*>* matCrossSections =
new std::vector<G4VEMDataSet*>;
91 std::size_t nOfBins = energyVector.size();
94 for (
G4int mLocal=0; mLocal<numOfCouples; ++mLocal)
106 for (
G4int i=0; i<nElements; ++i) {
109 G4double density = nAtomsPerVolume[i];
117 for (std::size_t bin=0; bin<nOfBins; ++bin)
120 energies->push_back(e);
122 log_energies->push_back(std::log10(e));
124 data->push_back(cross);
125 if (cross==0.) cross=1e-300;
126 log_data->push_back(std::log10(cross));
135 matCrossSections->push_back(setForMat);
137 delete interpolationAlgo;
138 return matCrossSections;
std::vector< const G4Element * > G4ElementVector
std::vector< G4VEMDataSet * > * BuildCrossSectionsForMaterials(const G4DataVector &energyVector, const G4DataVector *energyCuts=0) override
const G4Material * GetMaterial() const
const G4ElementVector * GetElementVector() const
size_t GetNumberOfElements() const
const G4double * GetAtomicNumDensityVector() const
const G4MaterialCutsCouple * GetMaterialCutsCouple(G4int i) const
std::size_t GetTableSize() const
static G4ProductionCutsTable * GetProductionCutsTable()
G4double FindValue(G4int Z, G4double e) const
virtual G4VDataSetAlgorithm * CreateInterpolation()
virtual G4VDataSetAlgorithm * Clone() const =0
virtual void AddComponent(G4VEMDataSet *dataSet)=0