95{
96
97 if (verboseLevel > 3)
98 G4cout <<
"Calling G4DNAChampionElasticModel::Initialise()" <<
G4endl;
99
100
101
103 {
104 G4cout <<
"G4DNAChampionElasticModel: low energy limit increased from " <<
107 }
108
110 {
111 G4cout <<
"G4DNAChampionElasticModel: high energy limit decreased from " <<
114 }
115
116
117
119
120 G4String fileElectron(
"dna/sigma_elastic_e_champion");
121
124
125
126
127
128
130
131 tableFile[electron] = fileElectron;
132
135 tableData[electron] = tableE;
136
137
138
139 char *path = getenv("G4LEDATA");
140
141 if (!path)
142 {
143 G4Exception(
"G4ChampionElasticModel::Initialise",
"em0006",
145 return;
146 }
147
148 std::ostringstream eFullFileName;
149 eFullFileName << path << "/dna/sigmadiff_cumulated_elastic_e_champion.dat";
150 std::ifstream eDiffCrossSection(eFullFileName.str().c_str());
151
152 if (!eDiffCrossSection)
153 G4Exception(
"G4DNAChampionElasticModel::Initialise",
"em0003",
154 FatalException,
"Missing data file:/dna/sigmadiff_cumulated_elastic_e_champion.dat");
155
156 eTdummyVec.push_back(0.);
157
158 while(!eDiffCrossSection.eof())
159 {
160 double tDummy;
161 double eDummy;
162 eDiffCrossSection>>tDummy>>eDummy;
163
164
165
166 if (tDummy != eTdummyVec.back())
167 {
168 eTdummyVec.push_back(tDummy);
169 eVecm[tDummy].push_back(0.);
170 }
171
172 eDiffCrossSection>>eDiffCrossSectionData[tDummy][eDummy];
173
174 if (eDummy != eVecm[tDummy].back()) eVecm[tDummy].push_back(eDummy);
175
176 }
177
178
179
180 if (verboseLevel > 2)
181 G4cout <<
"Loaded cross section files for Champion Elastic model" <<
G4endl;
182
183 if( verboseLevel>0 )
184 {
185 G4cout <<
"Champion Elastic model is initialized " <<
G4endl
186 << "Energy range: "
190 }
191
192
194
195 if (isInitialised) { return; }
197 isInitialised = true;
198
199}
virtual G4bool LoadData(const G4String &argFileName)
static G4DNAMolecularMaterial * Instance()
const std::vector< double > * GetNumMolPerVolTableFor(const G4Material *) const
static G4Electron * ElectronDefinition()
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)
G4ParticleChangeForGamma * GetParticleChangeForGamma()
G4double LowEnergyLimit() const
G4double HighEnergyLimit() const