82 std::vector<double>* aLogSecondEnergyVector,
83 std::vector<double>* aLogProbVector,
94 std::vector<size_t>* aLogProbVectorIndex =
nullptr;
96 if(n_pro_decade > 0 && !aLogProbVector->empty())
98 aLogProbVectorIndex =
new std::vector<size_t>();
99 G4double dlog = std::log(10.) / n_pro_decade;
101 int(
std::min((*aLogProbVector)[0], aLogProbVector->back()) / dlog) * dlog;
107 aLogProbVectorIndex->push_back(
108 theInterpolator->
FindPosition(log_val, (*aLogProbVector)));
124 std::vector<double>*& aLogSecondEnergyVector,
125 std::vector<double>*& aLogProbVector,
126 std::vector<size_t>*& aLogProbVectorIndex)
142 std::fstream FileOutput(file_name, std::ios::out);
143 FileOutput << std::setiosflags(std::ios::scientific);
144 FileOutput << std::setprecision(6);
188 std::fstream FileOutput(file_name, std::ios::in);
196 for(
size_t i = 0; i < n1; ++i)
199 FileOutput >> E >> CS;
206 for(
size_t j = 0; j < n2; ++j)
213 for(
size_t j = 0; j < n2; ++j)
static constexpr double MeV
std::vector< std::vector< size_t > * > fLogProbMatrixIndex
std::vector< double > fLogCrossSectionVector
std::vector< std::vector< double > * > fLogSecondEnergyMatrix
void Write(G4String file_name)
std::vector< std::vector< double > * > fLogProbMatrix
G4bool GetData(unsigned int i, G4double &aPrimEnergy, G4double &aCS, G4double &log0, std::vector< double > *&aLogSecondEnergyVector, std::vector< double > *&aLogProbVector, std::vector< size_t > *&aLogProbVectorIndex)
std::vector< double > fLog0Vector
void AddData(G4double aPrimEnergy, G4double aCS, std::vector< double > *aLogSecondEnergyVector, std::vector< double > *aLogProbVector, size_t n_pro_decade=0)
G4AdjointCSMatrix(G4bool aBool)
std::vector< double > fLogPrimEnergyVector
void Read(G4String file_name)
static G4AdjointInterpolator * GetInstance()
size_t FindPosition(G4double &x, std::vector< G4double > &x_vec, size_t ind_min=0, size_t ind_max=0)
T min(const T t1, const T t2)
brief Return the smallest of the two arguments