102 std::vector<Point_t> data_in;
139 auto exp10 = [](
G4double x){
return std::exp( M_LN10*x); };
140 for(
G4double log_currEnergy = log_min; log_currEnergy < log_max; log_currEnergy += log_step){
141 currEnergy = exp10(log_currEnergy) - shift;
146 if (xs > max_xs) max_xs = xs;
147 data_in.push_back({currEnergy,xs});
151 data_in.push_back({max-shift,xs});
154 std::vector<Point_t> decimated_data;
155 simplify_function(tol, data_in, decimated_data);
156 std::vector<Point_t> debiased_data;
157 RemoveBias( data_in, decimated_data, debiased_data);
160 G4int physicsVectorIndex = 0;
161 for(
size_t i = 0; i < decimated_data.size(); i++){
const G4FastPathHadronicCrossSection::controlFlag & GetFastPathControlFlags() const
void PutValue(size_t index, G4double energy, G4double dataValue)
const G4ParticleDefinition *const particle
const G4double min_cutoff
const G4Material *const material
const G4FastPathHadronicCrossSection::fastPathParameters & GetFastPathParameters() const
G4bool useFastPathIfAvailable
G4PhysicsFreeVector XSParam
G4double GetCrossSection(const G4DynamicParticle *, const G4Material *)
void SetKineticEnergy(G4double aEnergy)
T max(const T t1, const T t2)
brief Return the largest of the two arguments
T min(const T t1, const T t2)
brief Return the smallest of the two arguments
G4bool initializationPhase