86 std::vector<G4AugerTransition> dataSet = (*element).second;
87 n = (
G4int) dataSet[vacancyIndex].FinalShellId();
110 std::vector<G4AugerTransition> dataSet = (*element).second;
111 n = (
G4int)dataSet[vacancyIndex].TransitionOriginatingShellIds()->size();
132 std::vector<G4AugerTransition> dataSet = (*element).second;
133 const std::vector<G4int>* temp = dataSet[initIndex].AugerOriginatingShellIds(vacancyId);
155 std::vector<G4AugerTransition> dataSet = (*element).second;
156 n = dataSet[vacancyIndex].AugerOriginatingShellId(augerIndex,transId);
178 std::vector<G4AugerTransition> dataSet = (*element).second;
179 n = dataSet[vacancyIndex].TransitionOriginatingShellId(transitionShellIndex);
201 std::vector<G4AugerTransition> dataSet = (*element).second;
202 energy = dataSet[vacancyIndex].AugerTransitionEnergy(augerIndex,transitionId);
225 std::vector<G4AugerTransition> dataSet = (*element).second;
226 prob = dataSet[vacancyIndex].AugerTransitionProbability(augerIndex, transitionId);
236 std::ostringstream ost;
238 ost <<
"au-tr-pr-"<<
Z <<
".dat";
241 ost <<
"au-tr-pr-"<<
".dat";
245 char* path = std::getenv(
"G4LEDATA");
248 G4String excep =
"G4AugerData::LoadData";
250 std::vector<G4AugerTransition> a;
256 std::ifstream
file(dirFile);
257 std::filebuf* lsdp =
file.rdbuf();
259 if (! (lsdp->is_open()) )
261 G4String excep =
"G4AugerData::LoadData";
271 std::vector<G4int>* initIds =
new std::vector<G4int>;
272 std::vector<G4int>* newIds =
new std::vector<G4int>;
275 std::vector<G4AugerTransition> augerTransitionVector;
276 std::map<G4int,std::vector<G4int>,std::less<G4int> >* newIdMap =
277 new std::map<G4int,std::vector<G4int>,std::less<G4int> >;
278 std::map<G4int,G4DataVector,std::less<G4int> >* newEnergyMap =
279 new std::map<G4int,G4DataVector,std::less<G4int> >;
280 std::map<G4int,G4DataVector,std::less<G4int> >* newProbabilityMap =
281 new std::map<G4int,G4DataVector,std::less<G4int> >;
291 std::vector<G4int>::iterator vectorIndex = initIds->begin();
293 vacId = *vectorIndex;
294 std::vector<G4int> identifiers;
295 for (vectorIndex = initIds->begin()+1 ; vectorIndex != initIds->end(); ++vectorIndex){
296 identifiers.push_back(*vectorIndex);
298 vectorIndex = (initIds->end())-1;
299 G4int augerShellId = *(vectorIndex);
301 (*newIdMap)[augerShellId] = *newIds;
302 (*newEnergyMap)[augerShellId] = *transEnergies;
303 (*newProbabilityMap)[augerShellId] = *transProbabilities;
306 newIdMap, newEnergyMap, newProbabilityMap));
310 delete newProbabilityMap;
312 G4int n = initIds->size();
317 delete transEnergies;
318 delete transProbabilities;
319 initIds =
new std::vector<G4int>;
320 newIds =
new std::vector<G4int>;
323 newIdMap =
new std::map<G4int,std::vector<G4int>,std::less<G4int> >;
324 newEnergyMap =
new std::map<G4int,G4DataVector,std::less<G4int> >;
325 newProbabilityMap =
new std::map<G4int,G4DataVector,std::less<G4int> >;
328 if (sLocal == nColumns)
336 if (k%nColumns == 3){
338 transProbabilities->push_back(a);
341 else if(k%nColumns == 2){
344 newIds->push_back(l);
347 else if (k%nColumns == 1)
350 if(initIds->size() == 0) {
353 initIds->push_back((
G4int)a);
361 if((
G4int)a != initIds->back()){
362 if((initIds->size()) == 1) {
363 initIds->push_back((
G4int)a);
368 G4int augerShellId = 0;
369 augerShellId = initIds->back();
371 (*newIdMap)[augerShellId] = *newIds;
372 (*newEnergyMap)[augerShellId] = *transEnergies;
373 (*newProbabilityMap)[augerShellId] = *transProbabilities;
375 delete transEnergies;
376 delete transProbabilities;
377 newIds =
new std::vector<G4int>;
380 initIds->push_back((
G4int)a);
386 else if (k%nColumns == 0)
389 transEnergies->push_back(e);
398 delete transEnergies;
399 delete transProbabilities;
402 delete newProbabilityMap;
403 return augerTransitionVector;
410 for (
G4int element = 6; element < 100; ++element)
422 G4cout <<
"---- TransitionData for the vacancy nb "
424 <<
" of the atomic number elemnt "
438 G4cout <<
" Auger Originatig Shell Id :"<< augerId <<
G4endl;
439 G4cout <<
" - Transition energy = " << e <<
" MeV "<<
G4endl;
443 G4cout <<
"-------------------------------------------------"
453 std::vector<G4AugerTransition>::iterator vectorIndex = dataSet->begin() + vacancyShellIndex;
456 return augerTransition;
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
static constexpr double MeV
G4GLOB_DLL std::ostream G4cout
void BuildAugerTransitionTable()
trans_Table augerTransitionTable
std::vector< G4AugerTransition > LoadData(G4int Z)
size_t NumberOfTransitions(G4int Z, G4int vacancyIndex) const
size_t NumberOfAuger(G4int Z, G4int initIndex, G4int vacancyId) const
std::vector< G4AugerTransition > * GetAugerTransitions(G4int Z)
Given the atomic number returns a vector of possible AugerTransition objects.
G4int StartShellId(G4int Z, G4int initialVacancyIndex, G4int transitionShellIndex) const
size_t AugerShellId(G4int Z, G4int vacancyIndex, G4int transId, G4int augerIndex) const
G4AugerTransition * GetAugerTransition(G4int Z, G4int vacancyShellIndex)
std::vector< G4int > numberOfVacancies
G4double StartShellProb(G4int Z, G4int vacancyIndex, G4int transitionId, G4int augerIndex) const
size_t NumberOfVacancies(G4int Z) const
G4double StartShellEnergy(G4int Z, G4int vacancyIndex, G4int transitionId, G4int augerIndex) const
G4int VacancyId(G4int Z, G4int vacancyIndex) const
Given the index of the vacancy (and the atomic number Z) returns its identity.
std::vector< G4int > nInitShells
G4double energy(const ThreeVector &p, const G4double m)
const char * name(G4int ptype)