63 G4cout <<
"Sanche Excitation model is constructed "
97 G4cout <<
"Calling G4DNASancheExcitationModel::Initialise()"
106 G4Exception(
"*** WARNING : the G4DNASancheExcitationModel class is not "
107 "validated below 2 eV !",
113 G4cout <<
"G4DNASancheExcitationModel: high energy limit decreased from " <<
119 #ifdef SANCHE_VERBOSE
122 G4cout <<
"Sanche Excitation model is initialized " <<
G4endl
139 char *path = getenv(
"G4LEDATA");
140 std::ostringstream eFullFileName;
141 eFullFileName << path <<
"/dna/sigma_excitationvib_e_sanche.dat";
142 std::ifstream input(eFullFileName.str().c_str());
146 G4Exception(
"G4DNASancheExcitationModel::Initialise",
"em0003",
147 FatalException,
"Missing data file:/dna/sigma_excitationvib_e_sanche.dat");
170 for(
size_t i = 0 ; i < 9 ;++i)
173 levelXS.push_back(xs);
186 #ifdef SANCHE_VERBOSE
194 #ifdef SANCHE_VERBOSE
197 G4cout <<
"Calling CrossSectionPerVolume() of G4DNASancheExcitationModel"
211 #ifdef SANCHE_VERBOSE
214 G4cout <<
"__________________________________" <<
G4endl;
215 G4cout <<
"=== G4DNASancheExcitationModel - XS INFO START" <<
G4endl;
216 G4cout <<
"=== Kinetic energy(eV)=" << ekin/
eV <<
" particle : " << particleDefinition->GetParticleName() <<
G4endl;
217 G4cout <<
"=== Cross section per water molecule (cm^2)=" << sigma/
cm/
cm <<
G4endl;
218 G4cout <<
"=== Cross section per water molecule (cm^-1)=" << sigma*waterDensity/(1./
cm) << G4endl;
219 G4cout <<
"=== G4DNASancheExcitationModel - XS INFO END" <<
G4endl;
223 return sigma*2.*waterDensity;
236 #ifdef SANCHE_VERBOSE
239 G4cout <<
"Calling SampleSecondaries() of G4DNASancheExcitationModel"
247 G4double newEnergy = electronEnergy0 - excitationEnergy;
298 std::vector<G4double>::iterator
t2 = std::upper_bound(
tdummyVec.begin(),
300 std::vector<G4double>::iterator
t1 = t2 - 1;
312 sigma *= conv_factor;
313 if (sigma == 0.) sigma = 1
e-30;
325 std::vector<G4double>::iterator
t2 = std::upper_bound(
tdummyVec.begin(),
327 std::vector<G4double>::iterator
t1 = t2 - 1;
339 sigma *= conv_factor;
340 if (sigma == 0.) sigma = 1
e-30;
348 static G4double energies[9] = { 0.01, 0.024, 0.061, 0.092, 0.204, 0.417, 0.460,
350 return (energies[level] *
eV);
362 std::deque<G4double>
values;
368 values.push_front(partial);
379 if (values[i] > value)
403 return totalCrossSection;