107 |
map< string, vector<double> > pcs; |
map< string, vector<double> > pcs; |
108 |
map< string, vector<double> > errortable; |
map< string, vector<double> > errortable; |
109 |
|
|
110 |
// this is a loop over the first index |
// this is a loop over the first index |
111 |
for( map< string, map< string,details > >::iterator it1 = DataTable.begin(); it1 != DataTable.end(); ++it1 ) |
for( map< string, map< string,details > >::iterator it1 = DataTable.begin(); it1 != DataTable.end(); ++it1 ) |
112 |
{ |
{ |
113 |
vector<long> nHi; |
vector<long> nHi; |
114 |
vector<double> flu, nu, energy, y, x; |
vector<double> flu, nu, energy, y, x; |
115 |
double energy_thresh_lo = ionization_energy - (*it1).second.begin()->second.Elow; |
double energy_thresh_lo = ionization_energy - (*it1).second.begin()->second.Elow; |
116 |
|
|
117 |
const bool lgIgnoreDeltaNZero = true; |
const bool lgIgnoreDeltaNZero = true; |
118 |
|
|
119 |
// this is a loop over the second index |
// this is a loop over the second index |
120 |
for( map< string,details >::iterator it2 = (*it1).second.begin(); it2 != (*it1).second.end(); ++it2 ) |
for( map< string,details >::iterator it2 = (*it1).second.begin(); it2 != (*it1).second.end(); ++it2 ) |
121 |
{ |
{ |
122 |
if( lgIgnoreDeltaNZero && it2->second.nLo >= it2->second.nHi-1 ) |
// skip delta N = zero transitions |
123 |
|
if( lgIgnoreDeltaNZero && it2->second.nLo >= it2->second.nHi ) |
124 |
|
continue; |
125 |
|
|
126 |
|
// skip transitions with low (highly non-hydrogenic) nHi |
127 |
|
if( it2->second.nHi <= 3 ) |
128 |
continue; |
continue; |
129 |
|
|
130 |
flu.push_back( it2->second.flu ); |
flu.push_back( it2->second.flu ); |
131 |
nHi.push_back( it2->second.nHi ); |
nHi.push_back( it2->second.nHi ); |
132 |
double energy_thresh_hi = ionization_energy - it2->second.Eup; |
double energy_thresh_hi = ionization_energy - it2->second.Eup; |
133 |
double n_eff = sqrt( 0.999862926*109737.315/ energy_thresh_hi ); |
double n_eff = sqrt( 0.999862926*109737.315/ energy_thresh_hi ); |
134 |
nu.push_back( n_eff ); |
nu.push_back( n_eff ); |
135 |
energy.push_back( it2->second.Eup - it2->second.Elow ); |
energy.push_back( it2->second.Eup - it2->second.Elow ); |
136 |
y.push_back( log( flu.back() * n_eff * n_eff * n_eff ) ); |
y.push_back( log( flu.back() * n_eff * n_eff * n_eff ) ); |
137 |
x.push_back( log( energy_thresh_lo/energy.back() ) ); |
x.push_back( log( energy_thresh_lo/energy.back() ) ); |
138 |
} |
} |
139 |
|
|
140 |
string confLo = (*it1).second.begin()->second.configLo; |
string confLo = (*it1).second.begin()->second.configLo; |
141 |
long nLo = (*it1).second.begin()->second.nLo; |
long nLo = (*it1).second.begin()->second.nLo; |
142 |
|
|