Import Geant4 10.2.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-10 14:11:04 +02:00
parent c9b32a6c0a
commit d4af681f38
4886 changed files with 420149 additions and 1023309 deletions
@@ -99,17 +99,16 @@ G4EMDataSet::G4EMDataSet(G4int argZ,
pdf(0),
randomSet(random)
{
if (algorithm == 0) {
if (!algorithm || !energies || !data) {
G4Exception("G4EMDataSet::G4EMDataSet",
"em1012",FatalException,"interpolation == 0");
} else if ((energies == 0) ^ (data == 0)) {
G4Exception("G4EMDataSet::G4EMDataSet",
"em1012",FatalException,"different size for energies and data (zero case)");
} else if (energies->size() != data->size()) {
G4Exception("G4EMDataSet::G4EMDataSet",
"em1012",FatalException,"different size for energies and data");
} else if (randomSet) {
BuildPdf();
} else {
if (energies->size() != data->size()) {
G4Exception("G4EMDataSet::G4EMDataSet",
"em1012",FatalException,"different size for energies and data");
} else if (randomSet) {
BuildPdf();
}
}
}
@@ -133,27 +132,21 @@ G4EMDataSet::G4EMDataSet(G4int argZ,
pdf(0),
randomSet(random)
{
if (algorithm == 0) {
if (!algorithm || !energies || !data || !log_energies || !log_data) {
G4Exception("G4EMDataSet::G4EMDataSet",
"em1012",FatalException,"interpolation == 0");
} else if ((energies == 0) ^ (data == 0)) {
G4Exception("G4EMDataSet::G4EMDataSet",
"em1012",FatalException,"different size for energies and data (zero case)");
} else if (energies->size() != data->size()) {
G4Exception("G4EMDataSet::G4EMDataSet",
"em1012",FatalException,"different size for energies and data");
} else if ((log_energies == 0) ^ (log_data == 0)) {
G4Exception("G4EMDataSet::G4EMDataSet",
"em1012",FatalException,"different size for log energies and log data (zero case)");
} else if (log_energies->size() != log_data->size()) {
G4Exception("G4EMDataSet::G4EMDataSet",
"em1012",FatalException,"different size for log energies and log data");
} else if (randomSet) {
BuildPdf();
} else {
if ((energies->size() != data->size()) ||
(energies->size() != log_energies->size()) ||
(energies->size() != log_data->size())) {
G4Exception("G4EMDataSet::G4EMDataSet",
"em1012",FatalException,"different size for energies and data");
} else if (randomSet) {
BuildPdf();
}
}
}
G4EMDataSet::~G4EMDataSet()
{
delete algorithm;
@@ -164,16 +157,9 @@ G4EMDataSet::~G4EMDataSet()
delete log_data;
}
G4double G4EMDataSet::FindValue(G4double energy, G4int /* componentId */) const
{
if (!energies) {
G4Exception("G4EMDataSet::FindValue",
"em1012",FatalException,"energies == 0");
return 0.0;
} else if (energies->empty()) {
return 0.0;
} else if (energy <= (*energies)[0]) {
if (energy <= (*energies)[0]) {
return (*data)[0];
}
size_t i = energies->size()-1;
@@ -189,48 +175,40 @@ G4double G4EMDataSet::FindValue(G4double energy, G4int /* componentId */) const
return algorithm->Calculate(energy, FindLowerBound(energy), *energies, *data);
}
void G4EMDataSet::PrintData(void) const
{
if (!energies)
size_t size = energies->size();
for (size_t i(0); i<size; i++)
{
G4cout << "Data not available." << G4endl;
}
else
{
size_t size = energies->size();
for (size_t i(0); i<size; i++)
{
G4cout << "Point: " << ((*energies)[i]/unitEnergies)
<< " - Data value: " << ((*data)[i]/unitData);
if (pdf != 0) G4cout << " - PDF : " << (*pdf)[i];
G4cout << G4endl;
}
G4cout << "Point: " << ((*energies)[i]/unitEnergies)
<< " - Data value: " << ((*data)[i]/unitData);
if (pdf != 0) G4cout << " - PDF : " << (*pdf)[i];
G4cout << G4endl;
}
}
void G4EMDataSet::SetEnergiesData(G4DataVector* dataX,
G4DataVector* dataY,
G4int /* componentId */)
{
if (energies) { delete energies; }
energies = dataX;
if (data) { delete data; }
data = dataY;
if ((energies == 0) ^ (data==0)) {
if(!dataX || !dataY) {
G4Exception("G4EMDataSet::SetEnergiesData",
"em1012",FatalException,"different size for energies and data (zero case)");
return;
} else if (energies == 0) { return; }
"em1012",FatalException,"new interpolation == 0");
} else {
if (dataX->size() != dataY->size()) {
G4Exception("G4EMDataSet::SetEnergiesData",
"em1012",FatalException,"different size for energies and data");
} else {
//G4cout << "Size of energies: " << energies->size() << G4endl << "Size of data: " << data->size() << G4endl;
if (energies->size() != data->size()) {
G4Exception("G4EMDataSet::SetEnergiesData",
"em1012",FatalException,"different size for energies and data");
}
delete energies;
energies = dataX;
delete data;
data = dataY;
//G4cout << "Size of energies: " << energies->size() << G4endl
//<< "Size of data: " << data->size() << G4endl;
}
}
}
void G4EMDataSet::SetLogEnergiesData(G4DataVector* dataX,
@@ -239,54 +217,32 @@ void G4EMDataSet::SetLogEnergiesData(G4DataVector* dataX,
G4DataVector* data_logY,
G4int /* componentId */)
{
//Load of the actual energy and data values
if (energies) { delete energies; }
energies = dataX;
if (data) { delete data; }
data = dataY;
//Load of the logarithmic energy and data values
if (log_energies) { delete log_energies; }
log_energies = data_logX;
if (log_data) { delete log_data; }
log_data = data_logY;
//Check if data loaded properly from data files
if ( !energies ) {
if(data || log_energies || log_data ) {
G4Exception("G4EMDataSet::SetLogEnergiesData",
"em1012",FatalException,"inconsistent data");
}
return;
if(!dataX || !dataY || !data_logX || !data_logY) {
G4Exception("G4EMDataSet::SetEnergiesData",
"em1012",FatalException,"new interpolation == 0");
} else {
if ( !data ) {
G4Exception("G4EMDataSet::SetLogEnergiesData",
"em1012",FatalException,"only energy, no data");
return;
} else if (energies->size() != data->size()) {
G4Exception("G4EMDataSet::SetLogEnergiesData",
"em1012",FatalException,"different size for energies and data");
return;
}
//G4cout << "Size of energies: " << energies->size() << G4endl << "Size of data: " << data->size() << G4endl << G4endl;
//Check if logarithmic data loaded properly from data files
if ( !log_energies ) {
if(log_data) {
G4Exception("G4EMDataSet::SetLogEnergiesData",
"em1012",FatalException,"inconsistence of log_data");
}
return;
if (dataX->size() != dataY->size() ||
dataX->size() != data_logX->size() ||
dataX->size() != data_logY->size()) {
G4Exception("G4EMDataSet::SetEnergiesData",
"em1012",FatalException,"different size for energies and data");
} else {
if ( !log_data ) {
G4Exception("G4EMDataSet::SetLogEnergiesData",
"em1012",FatalException,"only log_energies, no data");
} else if ((log_energies->size() != log_data->size()) || (log_energies->size() != data->size())) {
G4Exception("G4EMDataSet::SetLogEnergiesData",
"em1012",FatalException,"different size for log energies and data");
}
delete energies;
energies = dataX;
delete data;
data = dataY;
delete log_energies;
log_energies = data_logX;
delete log_data;
log_data = data_logY;
//G4cout << "Size of energies: " << energies->size() << G4endl
//<< "Size of data: " << data->size() << G4endl;
}
}
//G4cout << "Size of log energies: " << log_energies->size() << G4endl << "Size of log data: " << log_data->size() << G4endl;
}
}
G4bool G4EMDataSet::LoadData(const G4String& fileName)