modified: TrackRecon.C

new folder:   cross_section, this folder allows for cross section calculations for the ANASEN data, a readme and some example files are provided
	modified:   run_tr.sh
This commit is contained in:
Vignesh Sitaraman 2026-10-17 12:38:35 -04:00
parent 8c231120d8
commit d63a422a41
13 changed files with 9085 additions and 25 deletions

View File

@ -24,6 +24,8 @@ Int_t colors[40] = {
#include <TRandom3.h> #include <TRandom3.h>
#include <TSpline.h> #include <TSpline.h>
#include <TSystem.h> // gSystem->mkdir for the pc_calib_raw/ output directory #include <TSystem.h> // gSystem->mkdir for the pc_calib_raw/ output directory
#include <TCutG.h> // p/alpha graphical cuts (classifySiPc)
#include <TFile.h>
#include <cmath> // std::floor/fabs/lround for vertexZSliceTag() #include <cmath> // std::floor/fabs/lround for vertexZSliceTag()
#include <fstream> #include <fstream>
@ -102,29 +104,39 @@ inline bool siPcCoincident(double t_si, double t_pc)
return dt > kSiPcDtMin && dt < kSiPcDtMax; return dt > kSiPcDtMin && dt < kSiPcDtMax;
} }
// PC anode dE gate, gas-region proton/alpha separation for the p(a,a)p elastic
// branches (protonAlphaElastic_core, formerly protonMiscHistograms /
// protonMiscHistograms_sx3). Rough,
// energy-independent threshold read off Calib_dE_AnodeE_vs_QQQE (calibrated
// anode dE, MeV, vs QQQ/SX3 E): proton and alpha loci are well separated below
// ~5-6 MeV Si energy but converge at high Si energy/high dE (the bright
// corner near the top of the plot) -- events there are NOT reliably
// classified by a flat cut. Revisit with a TCutG/polygon if that corner
// matters. anodeE_MeV < 0 means no valid per-wire calibration was available
// for this hit, not "low dE" -- kUnknown must be handled as its own case,
// never silently folded into kProton.
constexpr double kProtonAlphaAnodeDeGate_MeV = 0.045; constexpr double kProtonAlphaAnodeDeGate_MeV = 0.045;
// |Ex| window that counts a p + 4He hit as elastic, for the _exgate vertex-z / theta_cm histograms.
constexpr double kElasticExGate_MeV = 1.0;
enum class SiPcPid enum class SiPcPid
{ {
kUnknown = -1, kUnknown = -1,
kProton = 0, kProton = 0,
kAlpha = 1 kAlpha = 1,
kMaybeProton = 2 // graphical cuts only: the proton band below E_Si 5 MeV
}; };
inline SiPcPid classifyByAnodeDe(double anodeE_MeV) struct PidCuts
{
TCutG *alpha = nullptr;
TCutG *proton = nullptr;
TCutG *maybep = nullptr;
};
PidCuts pidCutsQQQ, pidCutsSX3;
bool pidUseCuts = false; // true once Begin() has found all six pid_* cuts in CUTLIST
inline SiPcPid classifySiPc(double siE_MeV, double anodeE_MeV, bool isQQQ)
{ {
if (anodeE_MeV < 0.0) if (anodeE_MeV < 0.0)
return SiPcPid::kUnknown; return SiPcPid::kUnknown;
return (anodeE_MeV < kProtonAlphaAnodeDeGate_MeV) ? SiPcPid::kProton : SiPcPid::kAlpha; if (!pidUseCuts)
return (anodeE_MeV < kProtonAlphaAnodeDeGate_MeV) ? SiPcPid::kProton : SiPcPid::kAlpha;
const PidCuts &cuts = isQQQ ? pidCutsQQQ : pidCutsSX3;
if (cuts.alpha->IsInside(siE_MeV, anodeE_MeV))
return SiPcPid::kAlpha;
if (cuts.proton->IsInside(siE_MeV, anodeE_MeV))
return SiPcPid::kProton;
if (cuts.maybep->IsInside(siE_MeV, anodeE_MeV))
return SiPcPid::kMaybeProton;
return SiPcPid::kUnknown;
} }
inline TVector3 beamAxisOrigin() inline TVector3 beamAxisOrigin()
@ -588,7 +600,39 @@ void TrackRecon::Begin(TTree * /*tree*/)
std::cerr << "CUTLIST=" << getenv("CUTLIST") std::cerr << "CUTLIST=" << getenv("CUTLIST")
<< " set but no cut named 'simcprfgate2' found in it -- Gate2 Si-MCP/RF gating disabled" << std::endl; << " set but no cut named 'simcprfgate2' found in it -- Gate2 Si-MCP/RF gating disabled" << std::endl;
} }
const char *pidNames[6] = {"pid_alpha_qqq", "pid_proton_qqq", "pid_maybep_qqq",
"pid_alpha_sx3", "pid_proton_sx3", "pid_maybep_sx3"};
TCutG *pidFound[6] = {};
int pidListed = 0;
for (int i = 0; i < 6; ++i)
{
try
{
pidFound[i] = plotter->FindCut(pidNames[i]);
++pidListed;
}
catch (const std::out_of_range &)
{
}
}
if (pidListed > 0)
{
if (pidListed < 6 || std::find(pidFound, pidFound + 6, nullptr) != pidFound + 6)
{
std::cerr << "CUTLIST=" << getenv("CUTLIST") << ": needs all six pid_{alpha,proton,maybep}_{qqq,sx3}, each a "
<< "file with a TCutG named CUTG -- stopping" << std::endl;
gSystem->Exit(1);
}
pidCutsQQQ = {pidFound[0], pidFound[1], pidFound[2]};
pidCutsSX3 = {pidFound[3], pidFound[4], pidFound[5]};
pidUseCuts = true;
}
} }
if (pidUseCuts)
std::cout << "p/alpha PID: graphical cuts pid_{alpha,proton,maybep}_{qqq,sx3} from CUTLIST=" << getenv("CUTLIST") << std::endl;
else
std::cout << "p/alpha PID: flat anode gate " << kProtonAlphaAnodeDeGate_MeV << " MeV (no pid_* cuts in CUTLIST)" << std::endl;
if (getenv("reactiondata")) if (getenv("reactiondata"))
{ {
@ -1084,9 +1128,8 @@ inline void pcEnergyCalibrationAccumulateProton(const std::vector<Event> &PC_Eve
if (!(pcevent.multi1 >= 1 && pcevent.multi2 >= 1)) if (!(pcevent.multi1 >= 1 && pcevent.multi2 >= 1))
return; return;
if (!(pcevent.Energy2 > 1400)) // cathode-tagged alpha; intentionally NOT anode-dE if (!(pcevent.Energy2 > 1400)) // cathode-tagged alpha; intentionally NOT anode-dE
return; // PID (classifyByAnodeDe) -- this function derives the return;
// anode calibration those thresholds depend on, so it
// needs a selection that doesn't presuppose it.
if (TMath::Abs(sievent.pos.DeltaPhi(pcevent.pos)) > phi_win) if (TMath::Abs(sievent.pos.DeltaPhi(pcevent.pos)) > phi_win)
return; return;
@ -4158,7 +4201,9 @@ void protonAlphaElastic_core(HistPlotter *plotter, const std::vector<Event> &Si_
{ {
// const std::string ejtag = (alphaHyp && sievent.Energy1 < 5) ? "_a" : "_p"; // const std::string ejtag = (alphaHyp && sievent.Energy1 < 5) ? "_a" : "_p";
std::string ejtag; std::string ejtag;
if (alphaHyp && sievent.Energy1 < 5) if (pidUseCuts)
ejtag = alphaHyp ? "_a" : (pid == SiPcPid::kMaybeProton ? "_maybep" : "_p");
else if (alphaHyp && sievent.Energy1 < 5)
ejtag = "_a"; ejtag = "_a";
else if (sievent.Energy1 >= 5.0 && sievent.Energy1 < 7.0) else if (sievent.Energy1 >= 5.0 && sievent.Energy1 < 7.0)
ejtag = "_p"; ejtag = "_p";
@ -4185,6 +4230,25 @@ void protonAlphaElastic_core(HistPlotter *plotter, const std::vector<Event> &Si_
plotter->Fill2D(rx + "_Ex_vs_X" + ejtag + sfx, 100, -100, 120, 800, -6, 15, sievent.pos.X(), Ex, pmlabel); plotter->Fill2D(rx + "_Ex_vs_X" + ejtag + sfx, 100, -100, 120, 800, -6, 15, sievent.pos.X(), Ex, pmlabel);
plotter->Fill2D(rx + "_Ex_vs_Y" + ejtag + sfx, 100, -100, 120, 800, -6, 15, sievent.pos.Y(), Ex, pmlabel); plotter->Fill2D(rx + "_Ex_vs_Y" + ejtag + sfx, 100, -100, 120, 800, -6, 15, sievent.pos.Y(), Ex, pmlabel);
{
const double thetaCM = alphaHyp ? 180.0 - 2.0 * theta * 180 / M_PI
: (theta + TMath::ASin(TMath::Sin(theta) * mass_1H / mass_4He)) * 180 / M_PI;
const bool exGate = TMath::Abs(Ex) < kElasticExGate_MeV;
auto fillZTheta = [&](const std::string &variant)
{
plotter->Fill2D(rx + "_VertexZ_vs_ThetaCM" + variant + ejtag + sfx, 800, -400, 400, 180, 0, 180, vertex_z, thetaCM, pmlabel);
};
fillZTheta("");
if (exGate)
fillZTheta("_exgate");
if (hasCathode)
{
fillZTheta("_cath");
if (exGate)
fillZTheta("_cath_exgate");
}
}
if (isQQQ) if (isQQQ)
{ {
const std::string qtag = "_q" + std::to_string(sievent.ch1 / 16); const std::string qtag = "_q" + std::to_string(sievent.ch1 / 16);
@ -4276,10 +4340,23 @@ void protonAlphaElastic_core(HistPlotter *plotter, const std::vector<Event> &Si_
} }
}; };
if (pid != SiPcPid::kAlpha) if (pidUseCuts)
fillHypothesis(false); // proton, or PID unavailable (legacy default) {
if (pid == SiPcPid::kAlpha && sievent.Energy1 < 6.2) // Graphical cuts: each hit as what the cuts call it (p and maybe-p both with proton kinematics, filed apart);
fillHypothesis(true); // kUnknown (in no gate, or no anode calibration) is filled as nothing -- counted in elastic_pidUnknown.
if (pid == SiPcPid::kProton || pid == SiPcPid::kMaybeProton)
fillHypothesis(false);
else if (pid == SiPcPid::kAlpha)
fillHypothesis(true);
}
else
{
// Old flat gate, kept as it was: kUnknown is filled as a proton (legacy default).
if (pid != SiPcPid::kAlpha)
fillHypothesis(false);
if (pid == SiPcPid::kAlpha && sievent.Energy1 < 6.2)
fillHypothesis(true);
}
}; };
// --- a1c1/a1c2 (multi1==1) and a2c1/a2c2 (multi1==2), from PC_Events. The // --- a1c1/a1c2 (multi1==1) and a2c1/a2c2 (multi1==2), from PC_Events. The
@ -4306,7 +4383,7 @@ void protonAlphaElastic_core(HistPlotter *plotter, const std::vector<Event> &Si_
plotter->Fill1D(rx + "_dt_Cathode" + sfx, 600, -2000, 2000, pcevent.Time2 - sievent.Time1, misclabel); plotter->Fill1D(rx + "_dt_Cathode" + sfx, 600, -2000, 2000, pcevent.Time2 - sievent.Time1, misclabel);
double anodeE_MeV = (pcevent.Anodech >= 0 && pcevent.Anodech < 24) ? pcevent.Energy1MeV : -1.0; double anodeE_MeV = (pcevent.Anodech >= 0 && pcevent.Anodech < 24) ? pcevent.Energy1MeV : -1.0;
SiPcPid pid = classifyByAnodeDe(anodeE_MeV); SiPcPid pid = classifySiPc(sievent.Energy1, anodeE_MeV, isQQQ);
if (pid == SiPcPid::kUnknown) if (pid == SiPcPid::kUnknown)
plotter->Fill1D(rx + "_pidUnknown" + sfx, 2, 0, 2, 1.0, misclabel); plotter->Fill1D(rx + "_pidUnknown" + sfx, 2, 0, 2, 1.0, misclabel);
@ -4448,7 +4525,7 @@ void protonAlphaElastic_core(HistPlotter *plotter, const std::vector<Event> &Si_
if (!anyValidWire) if (!anyValidWire)
anodeE_MeV_a0 = -1.0; anodeE_MeV_a0 = -1.0;
SiPcPid pid = classifyByAnodeDe(anodeE_MeV_a0); SiPcPid pid = classifySiPc(sievent.Energy1, anodeE_MeV_a0, isQQQ);
if (pid == SiPcPid::kUnknown) if (pid == SiPcPid::kUnknown)
plotter->Fill1D(rx + "_pidUnknown" + sfx, 2, 0, 2, 1.0, misclabel); plotter->Fill1D(rx + "_pidUnknown" + sfx, 2, 0, 2, 1.0, misclabel);

197
cross_section/README.md Executable file
View File

@ -0,0 +1,197 @@
# Cross-section pipeline (ANASEN active target)
This folder turns data into a cross section for any reaction in the ANASEN active target. There are three steps,
one script each, and one config file per study shared by all three:
```
root -l -b -q 'extract_yields.C+("examples/27Al_ap_runA.toml")' # 1. ROOT -> yields_<det>.csv
~/myenv/bin/python -B geometric_efficiency.py examples/27Al_ap_runA.toml # 2. detectors.py -> eps_<det>.csv ~10 s
~/myenv/bin/python -B cross_section.py examples/27Al_ap_runA.toml # 3. -> xs_<det>.csv, xs.png ~3 s
```
Run them in WSL from this folder (`~/ANASEN_analysis/cross_section`). Step 1 needs ROOT; steps 2 and 3 need
`~/myenv/bin/python`, not ROOT.
| file | what it does |
|---|---|
| `extract_yields.C` | **Step 1, the only step that reads the data.** It reads a TH1/TH2, or fills a histogram from a TTree with a cut, and writes a plain CSV histogram. |
| `geometric_efficiency.py` | Step 2: geometric efficiency per bin, a toy Monte Carlo of the reaction, with every hit rule taken from `detectors.py`. |
| `detectors.py` | **The detectors as they are now** (Run A): QQQ3, the four analysed SX3s, the counter, the beam tube and the PCB hole, plus the hit rules. To change the geometry, edit this file. |
| `cross_section.py` | Step 3: reads only CSVs (the yields and an efficiency) and computes σ(E_cm) or dσ/dΩ(θ_cm). |
| `common.py` | What the three scripts share: the config, the beam track E(z), the bins. |
| `examples/` | One commented config per study: `27Al_ap_runA.toml` and `paap_ta_runs_hist.toml`. |
| `examples/reference/` | Barnard 1964 (EXFOR A1113) for p + ⁴He. |
| `inputs/` | The beam track (`beam_tracks.csv`) and the TALYS states (`talys_27Al_ap.csv`). The p + ⁴He track is read from `../eloss_calculations/`. |
| `out/<study>/` | Each study's outputs: `yields_<det>.csv`, `eps_<det>.csv`, `xs_<det>.csv`, `xs.png`. |
## Starting a new study
1. Copy the closest example in `examples/` (excitation function: `27Al_ap_runA.toml`; angular distribution:
`paap_ta_runs_hist.toml`) and give it its own `out_dir`.
2. Fill in `[extract]` for your histogram or tree, then run step 1 and look at `yields_<det>.csv`.
3. Fill in `[reaction]`, `[beam]` and `[bins]`, then run step 2. Check that `eps_<det>.csv` is non-zero where you
expect events.
4. Fill in `[target]`, `[acceptance]` and any `[[reference]]`, then run step 3.
If the detectors have changed, edit `detectors.py`, not the configs.
![27Al(a,p)](out/27Al_ap/xs.png)
## The formula
| mode | result | formula |
|---|---|---|
| `excitation` | σ(E_cm), mb | Y / (N_b · n · dz · ε) |
| `angular` | dσ/dΩ(θ_cm) in one E_cm (or z) window, mb/sr | Y / (N_b · n · dz · ε · ΔΩ) |
- **Y:** the yield in the bin.
- **N_b:** the number of beam particles.
- **n:** target atoms per cm² per mm of path.
- **dz:** the length of beam path over which the beam's E_cm lies in the bin, read off the beam track E(z).
- **ε:** the efficiency of the bin.
## Step 1: `extract_yields.C`, data to CSV
`[extract] source` says where the events are:
- `"hist"`: a TH1 or TH2 in a ROOT file. A TH2 is projected on the axis that holds `variable`, or kept 2D with
`angle_axis` for the angular mode.
- `"tree"`: a ROOT TTree (`file` may be a glob or a list of runs), filled into `bins` after `cut`.
Cuts use `and` / `or` (the macro turns them into `&&` / `||`) and ROOT's TTree::Draw syntax.
**Histogram paths** are `"folder/name"`.
- **They are case-sensitive.** Production files of different vintages spell the detector differently: the 27Al
outputs use `_m27Alax+misc_qqq/...`, the proton runs' `Output_p/Al_protons.root` uses `elastic+misc_QQQ_a/...`.
Put the spelling in `[det_vars]`:
```toml
dets = ["qqq", "sx3"] # the names detectors.py knows
[det_vars.qqq]
DET = "QQQ"
[det_vars.sx3]
DET = "SX3"
[extract]
hist = "elastic+misc_{DET}_a/elastic_VertexReconZ_a_{DET}"
```
- **A name that itself contains `/`** (e.g. `dE3_E_AnodeQQQR_A1C2_(vertex_fix_z/100)=0.000000`) is found too.
- **If the path doesn't exist,** the macro stops and names the closest histogram paths in the file.
The CSV it writes, `<out_dir>/yields_<det>.csv`, is the hand-off between the steps. `cross_section.py` reads nothing
else, so a yield made any other way works too as long as it is in this format:
```
1D: <var>_lo, <var>_hi, counts, variance
2D: <var>_lo, <var>_hi, theta_cm_lo, theta_cm_hi, counts, variance (angular mode)
```
`<var>` is `z` (vertex z, mm), `e_beam` (MeV) or `ecm` (MeV). The bins may be finer than the analysis bins and need
not line up with them. Step 3 shares each one out by overlap.
It is run like this:
```
root -l -b -q 'extract_yields.C+("examples/27Al_ap_runA.toml")'
root -l -b -q 'extract_yields.C+("examples/27Al_ap_runA.toml", "out/elsewhere")' # optional output folder
```
- **Trees:** it fills the histogram with `TTree::Draw` on a `TChain`, so `file` may be a glob or a list of runs.
- **Cuts:** write them with `and` / `or` (e.g. `"det == 1 and e_si > 0.5"`). The macro turns them into `&&` / `||`.
- **TOML:** the macro has a small reader that handles only what these configs use: strings, numbers, one-line lists
and `{start, stop, step}` tables. It stops with an error on anything else.
- **Errors:** a missing file or tree, or a tree with no entries, stops it with exit code 1 rather than writing zeros.
- **One edge case:** an entry exactly on a tree histogram's last upper edge goes to ROOT's overflow.
## Step 2: `geometric_efficiency.py`, ε from the detector geometry
The toy runs once per bin:
- vertices uniform over the bin's path (angular mode: over the window);
- beam energy at each vertex from the nominal track;
- the residual state drawn from fixed weights, or from TALYS state cross sections at the bin's E_cm;
- isotropic CM emission (angular mode: inside the θ_cm bin);
- relativistic two-body kinematics and straight tracks.
The particle the silicon sees can be the ejectile or the recoil (`detect`). θ_cm is always the ejectile's, so with
`detect = "recoil"` the bins are still in the ejectile's CM angle. For p + ⁴He that is the proton's angle, Barnard's
convention, which TrackRecon's `elastic_VertexZ_vs_ThetaCM` histograms also use. The output has one column per
condition, each times the azimuthal coverage:
| column | the particle... |
|---|---|
| `eps_si` | reaches the analysed silicon (solid angle) |
| `eps_si_thr` | ...and has a vertex energy above the Si threshold. This is the ch5 "solid angle" convention: a kinematic cut, not geometry. |
| `eps_counter` | `eps_si`, and it crosses the guard, anode and cathode radii inside the counter |
| **`eps_geometric`** | `eps_counter`, and it clears the beam tube and the PCB hole. **This is the geometric efficiency.** |
Each column has a Monte Carlo error, `<column>_rel_err`. Gas energy loss, Si thresholds after the gas and the counter's
deposit threshold are **not** included, because they are not geometry. That is why the adopted `eps_tube` of
`../scratch/xs_27Al_lowE_2026-10-15` is lower than `eps_geometric`; to use it instead, see the commented
`[acceptance]` block in the example. The angular distribution is isotropic.
## Step 3: `cross_section.py`
`[acceptance] source` picks ε:
- `"geometric"`: step 2's file; `column` chooses which efficiency.
- `"csv"`: any file, matched on a bin edge or interpolated.
- `"value"`: one number for every bin.
- `"none"`: ε = 1, which gives σ_app.
`[[acceptance.extra]]` multiplies in further factors, such as an intrinsic efficiency. The output `xs_<det>.csv` keeps
every intermediate number: the bins, z ranges, dz, counts, σ_app, ε, σ and its errors (stat, ε, total), and the
references. The header lines record every input. The N_b and n uncertainties are a common scale, so the header gives
them as a percentage and they stay out of the error columns.
## The config (TOML)
Paths are relative to the config file, and `~` is the home folder. `{det}` is replaced by each entry of `dets`, and
so is every key of `[det_vars.<det>]`. Commented templates in `examples/`:
- `27Al_ap_runA.toml`: a TH2 from the merged Run A production file, all three steps.
- `paap_ta_runs_hist.toml`: p + ⁴He elastic **straight from a TrackRecon.C production file**, as for 27Al. It reads
the TH2 `elastic_VertexZ_vs_ThetaCM_cath_exgate_a_<DET>` (vertex z × proton θ_cm). `protonAlphaElastic_core` fills
that histogram since 2026-10-16 in every species folder, in four variants: all, `_cath`, `_exgate`, `_cath_exgate`.
- Input: `~/ANASEN_analysis/Output_p/results_run022.root` (run 22 alone, run_tr.sh block 5 with CUTLIST),
N_b = 1.35 pA × 672.65 s = 5.67 × 10⁹, vertex window z = −170 to −53 mm.
- On 2026-10-16 the merged runs 18–22 agreed with a per-hit route to 2–4% in QQQ3 counts and about 3% in dσ/dΩ.
| section | used by | keys |
|---|---|---|
| top | all | `title`, `mode` (`excitation` / `angular`), `dets` (names in `detectors.py`: `qqq`, `sx3`), `out_dir` |
| `[extract]` histogram | 1 | `source = "hist"`, `file`, `hist`, `variable`, `axis` (the axis holding `variable`), `angle_axis` (keep it 2D), `other_range` |
| `[extract]` tree | 1 | `source = "tree"`, `file` (glob or list), `tree`, `variable`, `branch`, `bins`, `cut`, `weight_branch`, `angle_branch` + `angle_bins` |
| `[reaction]` | 2, 3 | `beam_mass_u`, `target_mass_u`; for step 2 also `ejectile_mass_u`, `recoil_mass_u`, `detect`, and `states` *or* `states_csv`; optional `ecm_per_ebeam` |
| `[beam]` | 2, 3 | track: `track_csv` + `track_e_col` (+ `nominal_e_col`, `track_z_col`), *or* `eloss_table` + `e_entrance_mev` + `z_entrance_mm`. N_b: `n_beam` *or* `charge_c` *or* `current_a` + `time_s`; `charge_state`, `n_beam_rel_err`. For Run A runs, `../runlog/beam_exposure.py` gives `n_beam` for any set of runs from the elog's cup readings |
| `[bins]` | 2, 3 | `ecm_edges` (a list or `{start, stop, step}`); angular: `theta_edges_deg` and `window_ecm` *or* `window_z_mm` |
| `[efficiency]` | 2 | `n_per_bin` (default 400 000), `seed` |
| `[target]` | 3 | `pressure_torr`, `temperature_k`, `mole_fraction`, `atoms_per_molecule`, `rel_err`; *or* `n_per_cm2_per_mm` |
| `[yield]` | 3 | `csv`: only to read yields from somewhere other than step 1's output |
| `[acceptance]` | 3 | `source` and its keys (see above), `[[acceptance.extra]]` |
| `[[reference]]` | 3 | `csv`, `x_col`, `y_col`, `label`, `scale`, `dets` |
| `[plot]` | 3 | `yscale`, `xlim`, `ylim`, `xlabel`, `ylabel` |
## Example: p + ⁴He elastic scattering, Ta run 22 (`examples/paap_ta_runs_hist.toml`)
```
root -l -b -q 'extract_yields.C+("examples/paap_ta_runs_hist.toml")'
~/myenv/bin/python -B geometric_efficiency.py examples/paap_ta_runs_hist.toml
~/myenv/bin/python -B cross_section.py examples/paap_ta_runs_hist.toml
```
dσ/dΩ(θ_cm) from the α recoils (`detect = "recoil"`, bins in the proton's θ_cm, Barnard's convention), against
Barnard, Jones & Weil (1964). Histogram: `elastic_VertexZ_vs_ThetaCM_cath_exgate_a_<DET>` (cathode topologies,
graphical α cut, |E_x| < 1 MeV). The merged runs 18–22 gave QQQ3 0.44–0.54 × Barnard at 132–156°; SX3 is at 1–3%.
Not in `detectors.py`: the Ta holder rod (~28% of the azimuth downstream of each foil) and Si thresholds after the gas.
## Checks (run in the Windows repo, `/mnt/c/Users/sengi/ANASEN_analysis/cross_section`; the scripts are not in this copy)
- 27Al(α,p), Run A: yields, dz and nominal E_cm equal the earlier study's in every bin; ε_si_thr agrees with its
independent toy within the MC errors.
- Synthetic events with a known σ, ε and dσ/dΩ are returned with unit-Gaussian pulls.
- `extract_yields.C` and the Python version gave byte-identical yields on every example.
**Not verified:** the physics inputs are whatever the config and `detectors.py` say. The checks show the arithmetic and
the bookkeeping are right, and that `detectors.py` reproduces the geometry of `anasen_detectability.py`. They cannot
show that the geometry, a track or an N_b is right. In particular:
- The dE/dx scale of a `.dat` table is not written in the file. The live 250 Torr / 3% tables were regenerated on
2026-10-16 and match the 0.962 track to 3 keV.
- `detectors.py` gives QQQ3 0.967 of the azimuth, but TrackRecon drops QQQ pixels without a calibration, which leaves
about 0.675. QQQ3 ε is therefore about 1.4× too high, and its cross sections about 1.4× too low.
- Where only a sliver of solid angle is open, ε is tiny and σ explodes. Example: QQQ3 at E_cm 5.4 MeV, ε = 1.5 × 10⁻⁵,
behind the beam tube. The error bar shows it; no ε cut is applied.

183
cross_section/common.py Executable file
View File

@ -0,0 +1,183 @@
"""Shared by extract_yields.py, geometric_efficiency.py and cross_section.py: the config, the beam track, the bins.
The cross section in this active target:
sigma(E_cm) = Y / (N_b * n * dz * eps) mode = "excitation"
dsigma/dOmega(th) = Y / (N_b * n * dz * eps * dOmega) mode = "angular"
The beam loses energy along z, so a vertex at z means the reaction happened at the beam energy E(z) there.
An E_cm bin is the stretch of beam path dz over which the beam's E_cm lies in the bin.
"""
import os
import tomllib
from pathlib import Path
import numpy as np
import pandas as pd
# ============================================================ config
def read_config(config_file):
"""Read the TOML config. Returns the config and a function that turns paths in it into absolute paths
(relative paths are relative to the config file's folder)."""
config_file = Path(config_file).resolve()
with open(config_file, "rb") as f:
config = tomllib.load(f)
def full_path(p):
p = os.path.expanduser(str(p)) # "~/..." is the home folder, as in a shell
if p.startswith("/") or Path(p).is_absolute():
return p
return str((config_file.parent / p).resolve())
return config, full_path
def config_for_detector(config, det):
"""Copy of the config with "{det}" (and any key of [det_vars.<det>]) replaced in every string.
This lets one config serve several detectors, e.g. hist = "..._{det}"."""
replacements = {"det": det}
replacements.update(config.get("det_vars", {}).get(det, {}))
def replace(value):
if isinstance(value, str):
for key, new in replacements.items():
value = value.replace("{" + key + "}", str(new))
return value
if isinstance(value, dict):
return {k: replace(v) for k, v in value.items()}
if isinstance(value, list):
return [replace(v) for v in value]
return value
return replace(config)
def output_file(config, full_path, kind, det):
"""Where each step writes for one detector: <out_dir>/<kind>_<det>.csv, kind = yields, eps or xs."""
out_dir = Path(full_path(config.get("out_dir", "out")))
out_dir.mkdir(parents=True, exist_ok=True)
return out_dir / (f"{kind}_{det}.csv" if det else f"{kind}.csv")
def make_edges(spec):
"""Bin edges from a list [e0, e1, ...] or from {start = .., stop = .., step = ..} (stop included)."""
if isinstance(spec, dict):
n_bins = int(round((spec["stop"] - spec["start"]) / spec["step"]))
return spec["start"] + spec["step"] * np.arange(n_bins + 1)
return np.array(spec, dtype=float)
def write_csv(table, header_lines, out_file):
with open(out_file, "w", newline="\n") as f:
for line in header_lines:
f.write(f"# {line}\n")
table.to_csv(f, index=False, float_format="%.6g")
# ============================================================ beam track
class BeamTrack:
"""Beam energy (MeV, lab) along z (mm). The energy falls with z and is 0 past the stopping point.
`energy` is the track used to define the bins (the one the data were reconstructed with). `nominal` is an
optional second track (e.g. another stopping-power scale): it gives each bin's nominal E_cm and the beam
energy in the efficiency toy. It defaults to the same track."""
def __init__(self, z, energy, nominal=None, description=""):
self.z = np.asarray(z, dtype=float)
self.energy = np.asarray(energy, dtype=float)
self.nominal = self.energy if nominal is None else np.asarray(nominal, dtype=float)
self.description = description
def energy_at(self, z, nominal=False):
return np.interp(z, self.z, self.nominal if nominal else self.energy)
def z_where_energy_is(self, e):
"""The z where the beam has energy e.
e <= 0 gives the stopping point; e above the entrance energy gives the entrance z."""
if e <= 0:
stopped = np.flatnonzero(self.energy <= 0)
return float(self.z[stopped[0]]) if len(stopped) else float(self.z[-1])
# np.interp needs increasing x: energy decreases along z, so interpolate in -energy
return float(np.interp(-e, -self.energy, self.z))
def load_beam_track(beam, full_path):
"""Either a CSV with columns z and E (e.g. beam_tracks.csv), or an energy-loss table from
eloss_calculations/ plus the beam energy at the entrance."""
if "track_csv" in beam:
table = pd.read_csv(full_path(beam["track_csv"]), comment="#")
z = table[beam.get("track_z_col", "z_mm")]
energy = table[beam["track_e_col"]]
nominal = table[beam["nominal_e_col"]] if "nominal_e_col" in beam else None
text = f"{beam['track_csv']}, column {beam['track_e_col']}"
if nominal is not None:
text += f" (nominal E_cm from {beam['nominal_e_col']})"
return BeamTrack(z, energy, nominal, text)
if "eloss_table" in beam:
# Table columns: energy (MeV), thickness (mg/cm2), distance along the path (cm)
table = np.loadtxt(full_path(beam["eloss_table"]), comments="#")
table_energy, table_cm = table[:, 0], table[:, 2]
e_entrance, z_entrance = float(beam["e_entrance_mev"]), float(beam["z_entrance_mm"])
if e_entrance > table_energy[0]:
raise ValueError(f"e_entrance_mev = {e_entrance} is above the table's start energy {table_energy[0]}")
# Where in the table the beam starts, then walk along it in 0.1 mm steps
start_cm = np.interp(-e_entrance, -table_energy, table_cm)
z = np.arange(z_entrance, beam.get("z_max_mm", 400.0) + 0.05, 0.1)
path_cm = start_cm + (z - z_entrance) / 10.0
energy = np.interp(path_cm, table_cm, table_energy, right=0.0)
return BeamTrack(z, energy, None, f"{beam['eloss_table']}, {e_entrance} MeV at z = {z_entrance} mm")
raise KeyError("[beam] needs either track_csv or eloss_table")
def ecm_per_beam_energy(reaction):
"""E_cm = E_beam x m_target / (m_beam + m_target) (non-relativistic; or give ecm_per_ebeam directly)."""
if "ecm_per_ebeam" in reaction:
return float(reaction["ecm_per_ebeam"])
return reaction["target_mass_u"] / (reaction["beam_mass_u"] + reaction["target_mass_u"])
# ============================================================ bins
def energy_bins(bins, track, k):
"""E_cm bins and, for each, the stretch of beam path [z_up, z_down] where the beam's E_cm is inside it.
The higher energy is upstream, so z_up belongs to the bin's top edge."""
ecm_edges = make_edges(bins["ecm_edges"])
t = pd.DataFrame({"ecm_lo_mev": ecm_edges[:-1], "ecm_hi_mev": ecm_edges[1:]})
t["ecm_c_mev"] = 0.5 * (t["ecm_lo_mev"] + t["ecm_hi_mev"])
t["z_up_mm"] = [track.z_where_energy_is(e / k) for e in t["ecm_hi_mev"]]
t["z_c_mm"] = [track.z_where_energy_is(e / k) for e in t["ecm_c_mev"]]
t["z_down_mm"] = [track.z_where_energy_is(e / k) for e in t["ecm_lo_mev"]]
t["dz_mm"] = t["z_down_mm"] - t["z_up_mm"]
t["ecm_nominal_mev"] = k * track.energy_at(t["z_c_mm"], nominal=True)
# True if the beam enters the chamber already inside this bin (dz then starts at the entrance)
t["partial_top"] = t["ecm_hi_mev"] / k > track.energy[0]
t["d_omega_sr"] = 1.0 # not used in excitation mode
return t
def angle_bins(bins, track, k):
"""theta_cm bins inside one window, given in E_cm (window_ecm) or in vertex z (window_z_mm).
Returns the bins and the window as (ecm_lo, ecm_hi, z_up, z_down)."""
if "window_ecm" in bins:
ecm_lo, ecm_hi = bins["window_ecm"]
z_up, z_down = track.z_where_energy_is(ecm_hi / k), track.z_where_energy_is(ecm_lo / k)
else:
z_up, z_down = bins["window_z_mm"]
ecm_lo, ecm_hi = k * track.energy_at(z_down), k * track.energy_at(z_up)
theta_edges = make_edges(bins["theta_edges_deg"])
t = pd.DataFrame({"theta_lo_deg": theta_edges[:-1], "theta_hi_deg": theta_edges[1:]})
t["theta_c_deg"] = 0.5 * (t["theta_lo_deg"] + t["theta_hi_deg"])
t["d_omega_sr"] = 2 * np.pi * (np.cos(np.radians(t["theta_lo_deg"])) - np.cos(np.radians(t["theta_hi_deg"])))
t["z_up_mm"], t["z_down_mm"] = z_up, z_down
t["dz_mm"] = z_down - z_up
return t, (ecm_lo, ecm_hi, z_up, z_down)
def make_bins(config, track, k):
"""The bins of the config's mode. Returns (table, window or None)."""
if config.get("mode", "excitation") == "excitation":
return energy_bins(config["bins"], track, k), None
return angle_bins(config["bins"], track, k)

332
cross_section/cross_section.py Executable file
View File

@ -0,0 +1,332 @@
"""Step 3: the cross section, from the yields CSV (step 1) and an efficiency (step 2, or any other).
~/myenv/bin/python -B cross_section.py examples/27Al_ap_runA.toml # no ROOT needed; any python with pandas
sigma(E_cm) = Y / (N_b * n * dz * eps) mode = "excitation"
dsigma/dOmega(th) = Y / (N_b * n * dz * eps * dOmega) mode = "angular"
Y yield in the bin, from <out_dir>/yields_<det>.csv (or [yield] csv); see extract_yields.py for the format
N_b number of beam particles [beam]
n target atoms per cm^2 per mm of beam path [target]
dz length of beam path (mm) over which the beam's E_cm lies in the bin, from the beam track E(z)
eps efficiency of the bin [acceptance]
dOmega solid angle of the theta_cm bin (angular mode)
Writes <out_dir>/xs_<det>.csv (every intermediate number; the header records every input) and <out_dir>/xs.png.
WHAT IT DOES, STEP BY STEP (see analyse_detector())
1. beam track: beam energy E at every z
2. normalisation: N_b and n
3. bins: E_cm bins -> their z ranges and dz (or theta_cm bins inside one energy window)
4. yields: share the yield histogram's bins into those bins
5. efficiency: eps for each bin
6. cross section: the formula, with statistical and efficiency errors
"""
import argparse
import datetime
import re
from pathlib import Path
import numpy as np
import pandas as pd
import common
BOLTZMANN = 1.380649e-23 # J/K
PASCAL_PER_TORR = 133.322368
ELEMENTARY_CHARGE = 1.602176634e-19 # C
CM2_PER_MB = 1e-27
YIELD_VARIABLES = ("z", "e_beam", "ecm")
# ============================================================ normalisation
def number_of_beam_particles(beam):
"""N_b from: n_beam directly, or integrated charge, or current x time. Returns (N_b, relative error, text)."""
charge_state = beam.get("charge_state", 1)
if "n_beam" in beam:
n_b, text = beam["n_beam"], "given"
elif "charge_c" in beam:
n_b = beam["charge_c"] / (charge_state * ELEMENTARY_CHARGE)
text = f"{beam['charge_c']} C / ({charge_state} e)"
elif "current_a" in beam:
n_b = beam["current_a"] * beam["time_s"] / (charge_state * ELEMENTARY_CHARGE)
text = f"{beam['current_a']} A x {beam['time_s']} s / ({charge_state} e)"
else:
raise KeyError("[beam] needs n_beam, charge_c, or current_a and time_s")
return float(n_b), float(beam.get("n_beam_rel_err", 0.0)), text
def target_atoms_per_cm2_per_mm(target):
"""n = (gas molecules per cm^3) x (mole fraction of the target molecule) x (target atoms per molecule) x 0.1 cm/mm.
E.g. He in 250 Torr He + 3% CO2 at 293.15 K: mole_fraction 0.97, atoms_per_molecule 1 -> 7.988e17.
Returns (n, relative error, text)."""
if "n_per_cm2_per_mm" in target:
return float(target["n_per_cm2_per_mm"]), float(target.get("rel_err", 0.0)), "given"
pressure_pa = target["pressure_torr"] * PASCAL_PER_TORR
molecules_per_cm3 = pressure_pa / (BOLTZMANN * target["temperature_k"]) * 1e-6
fraction = target.get("mole_fraction", 1.0)
atoms = target.get("atoms_per_molecule", 1)
n = molecules_per_cm3 * fraction * atoms * 0.1
text = f"{target['pressure_torr']} Torr, {target['temperature_k']} K, mole fraction {fraction}, {atoms} atom(s)/molecule"
return n, float(target.get("rel_err", 0.0)), text
# ============================================================ yields
def read_yields(file):
"""The yields CSV of extract_yields.py. Returns (table, variable), variable = z, e_beam or ecm."""
table = pd.read_csv(file, comment="#")
for variable in YIELD_VARIABLES:
if f"{variable}_lo" in table.columns:
return table, variable
raise ValueError(f"{file}: no column z_lo, e_beam_lo or ecm_lo (see extract_yields.py for the format)")
def in_yield_units(variable, k, ecm_range, z_range):
"""Convert a bin, given both as an E_cm range and a z range, into the units of the yield's variable."""
if variable == "ecm":
return ecm_range
if variable == "e_beam":
return ecm_range[0] / k, ecm_range[1] / k
return z_range
def fraction_inside(src_lo, src_hi, lo, hi):
"""Fraction of each yield bin [src_lo, src_hi) that lies inside [lo, hi). Used to share the yield's bins
between the analysis bins when their edges do not line up."""
return np.clip(np.minimum(src_hi, hi) - np.maximum(src_lo, lo), 0, None) / (src_hi - src_lo)
def yields_excitation(table, variable, t, k):
"""Yield and its error in each E_cm bin."""
if "theta_cm_lo" in table.columns: # a 2D yield: add up the theta bins first
table = table.groupby([f"{variable}_lo", f"{variable}_hi"], as_index=False)[["counts", "variance"]].sum()
src_lo, src_hi = table[f"{variable}_lo"].to_numpy(), table[f"{variable}_hi"].to_numpy()
lo, hi = in_yield_units(variable, k, (t["ecm_lo_mev"], t["ecm_hi_mev"]), (t["z_up_mm"], t["z_down_mm"]))
counts, errors = [], []
for a, b in zip(lo, hi):
f = fraction_inside(src_lo, src_hi, a, b)
counts.append(np.sum(f * table["counts"]))
errors.append(np.sqrt(np.sum(f ** 2 * table["variance"])))
return np.array(counts), np.array(errors)
def yields_angular(table, variable, t, window, k):
"""Yield and its error in each theta_cm bin, for the part of the yield inside the energy (or z) window."""
if "theta_cm_lo" not in table.columns:
raise ValueError("angular mode needs a 2D yield (theta_cm_lo/hi columns): set angle_axis or angle_branch in [extract]")
ecm_lo, ecm_hi, z_up, z_down = window
w_lo, w_hi = in_yield_units(variable, k, (ecm_lo, ecm_hi), (z_up, z_down))
in_window = fraction_inside(table[f"{variable}_lo"].to_numpy(), table[f"{variable}_hi"].to_numpy(), w_lo, w_hi)
th_lo, th_hi = table["theta_cm_lo"].to_numpy(), table["theta_cm_hi"].to_numpy()
counts, errors = [], []
for a, b in zip(t["theta_lo_deg"], t["theta_hi_deg"]):
f = in_window * fraction_inside(th_lo, th_hi, a, b)
counts.append(np.sum(f * table["counts"]))
errors.append(np.sqrt(np.sum(f ** 2 * table["variance"])))
return np.array(counts), np.array(errors)
# ============================================================ efficiency
def efficiency(config, det, t, full_path):
"""eps and its relative error for every bin. [acceptance] source =
"geometric": <out_dir>/eps_<det>.csv from geometric_efficiency.py; `column` picks the efficiency
(default eps_geometric), its Monte Carlo error comes with it
"csv": any file: csv, x_col, eps_col, match = "bin" (same bin edge: our column `key` = their x_col)
or "interp" (interpolate at our column `key`; NaN outside the file's range), rel_err_col or rel_err
"value": one number for every bin (value, rel_err)
"none": eps = 1, the apparent cross section (the default)
[[acceptance.extra]] name, value, rel_err: further factors, multiplied in (e.g. an intrinsic efficiency)."""
eff = config.get("acceptance", {})
mode = config.get("mode", "excitation")
source = eff.get("source", "none")
n_bins = len(t)
eps, rel_err = np.ones(n_bins), np.zeros(n_bins)
text = "none (eps = 1: apparent cross section)"
if source == "geometric":
column = eff.get("column", "eps_geometric")
file = common.output_file(config, full_path, "eps", det)
eff = {"csv": str(file), "match": "bin", "eps_col": column, "rel_err_col": f"{column}_rel_err",
"x_col": "ecm_lo_mev" if mode == "excitation" else "theta_lo_deg", "extra": eff.get("extra", [])}
source = "csv"
if source == "csv":
table = pd.read_csv(full_path(eff["csv"]), comment="#")
match = eff.get("match", "interp")
default_key = {("excitation", "bin"): "ecm_lo_mev", ("excitation", "interp"): "ecm_nominal_mev",
("angular", "bin"): "theta_lo_deg", ("angular", "interp"): "theta_c_deg"}[(mode, match)]
key = eff.get("key", default_key)
their_x = table[eff["x_col"]].to_numpy(float)
their_eps = table[eff["eps_col"]].to_numpy(float)
if "rel_err_col" in eff:
their_err = table[eff["rel_err_col"]].to_numpy(float)
else:
their_err = np.full(len(table), eff.get("rel_err", 0.0))
ours = t[key].to_numpy(float)
if match == "bin":
for i, x in enumerate(ours):
same = np.flatnonzero(np.isclose(their_x, x, rtol=1e-6, atol=1e-9))
eps[i] = their_eps[same[0]] if len(same) else np.nan
rel_err[i] = their_err[same[0]] if len(same) else np.nan
else:
order = np.argsort(their_x)
eps = np.interp(ours, their_x[order], their_eps[order], left=np.nan, right=np.nan)
rel_err = np.interp(ours, their_x[order], their_err[order], left=np.nan, right=np.nan)
text = f"{eff['csv']}, column {eff['eps_col']} ({match} on {eff['x_col']} = our {key})"
elif source == "value":
eps = np.full(n_bins, float(eff["value"]))
rel_err = np.full(n_bins, float(eff.get("rel_err", 0.0)))
text = f"constant {eff['value']}"
elif source != "none":
raise ValueError(f"[acceptance] source must be geometric, csv, value or none, not {source!r}")
for extra in eff.get("extra", []):
eps = eps * extra["value"]
rel_err = np.hypot(rel_err, extra.get("rel_err", 0.0))
text += f" x {extra.get('name', 'extra factor')} {extra['value']}"
return eps, rel_err, text
# ============================================================ cross section
def cross_section(t, n_b, n, eps, eps_rel_err, name):
"""The formula. `name` is "sigma_mb" (excitation) or "dsdo_mb_sr" (angular). Adds columns to t:
<name>_app, <name>_app_err apparent cross section (eps = 1), statistical error
<name>, <name>_err_stat divided by eps
<name>_err_eps, <name>_err error from eps; total (stat and eps in quadrature)
The N_b and n uncertainties are a common scale for all bins and are NOT in these columns."""
exposure = n_b * n * t["dz_mm"] * t["d_omega_sr"] * CM2_PER_MB # events per mb (per mb/sr)
exposure = exposure.where(exposure > 0) # dz = 0 (past the stopping point) -> NaN
eps = pd.Series(eps, index=t.index).where(lambda e: e > 0) # eps = 0 -> NaN
t[f"{name}_app"] = t["counts"] / exposure
t[f"{name}_app_err"] = t["stat_err"] / exposure
t["eps"] = eps
t["eps_rel_err"] = eps_rel_err
t[name] = t[f"{name}_app"] / eps
t[f"{name}_err_stat"] = t[f"{name}_app_err"] / eps
t[f"{name}_err_eps"] = t[name] * t["eps_rel_err"]
t[f"{name}_err"] = np.hypot(t[f"{name}_err_stat"], t[f"{name}_err_eps"])
return t
def add_references(t, references, det, x_col, full_path):
"""Reference curves ([[reference]]: csv, x_col, y_col, label, optional scale and dets) interpolated at our x
(NaN outside their range). Returns the curves for the plot."""
curves = []
for ref in references or []:
if "dets" in ref and det not in ref["dets"]:
continue
table = pd.read_csv(full_path(ref["csv"]), comment="#").sort_values(ref["x_col"])
x = table[ref["x_col"]].to_numpy(float)
y = ref.get("scale", 1.0) * table[ref["y_col"]].to_numpy(float)
label = ref.get("label", Path(ref["csv"]).stem)
column = "ref_" + re.sub(r"\W+", "_", label).strip("_").lower()
t[column] = np.interp(t[x_col], x, y, left=np.nan, right=np.nan)
curves.append((label, x, y))
return curves
def analyse_detector(config, det, full_path):
"""Steps 1-6 for one detector. Returns the result table, its header lines, the x column, the cross-section
column name and the reference curves."""
mode = config.get("mode", "excitation")
k = common.ecm_per_beam_energy(config["reaction"])
# 1. beam track
track = common.load_beam_track(config["beam"], full_path)
# 2. normalisation
n_b, n_b_rel_err, n_b_text = number_of_beam_particles(config["beam"])
n, n_rel_err, n_text = target_atoms_per_cm2_per_mm(config["target"])
# 3. bins and 4. yields
yield_file = full_path(config["yield"]["csv"]) if "csv" in config.get("yield", {}) \
else common.output_file(config, full_path, "yields", det)
yields, variable = read_yields(yield_file)
t, window = common.make_bins(config, track, k)
if mode == "excitation":
t["counts"], t["stat_err"] = yields_excitation(yields, variable, t, k)
name, x_col, window_text = "sigma_mb", "ecm_nominal_mev", ""
else:
t["counts"], t["stat_err"] = yields_angular(yields, variable, t, window, k)
name, x_col = "dsdo_mb_sr", "theta_c_deg"
ecm_lo, ecm_hi, z_up, z_down = window
window_text = f"; window E_cm {ecm_lo:.4g} to {ecm_hi:.4g} MeV, z {z_up:.2f} to {z_down:.2f} mm"
# 5. efficiency and 6. cross section
eps, eps_rel_err, eps_text = efficiency(config, det, t, full_path)
t = cross_section(t, n_b, n, eps, eps_rel_err, name)
curves = add_references(t, config.get("reference"), det, x_col, full_path)
header = [
f"{config.get('title', '')} {det.upper()}: {mode} mode{window_text}",
f"yield: {yield_file} (binned in {variable})",
f"beam track: {track.description}; E_cm = {k:.6g} x E_beam",
f"N_b = {n_b:.6g} ({n_b_text}); n = {n:.6g} target atoms per cm2 per mm ({n_text})",
f"eps: {eps_text}",
f"common scale uncertainty from N_b and n: {100 * np.hypot(n_b_rel_err, n_rel_err):.3g} % (not in the error columns)",
f"written by cross_section.py on {datetime.date.today().isoformat()}",
]
return t, header, x_col, name, curves
def make_plot(results, config, out_file):
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
opts = config.get("plot", {})
excitation = config.get("mode", "excitation") == "excitation"
fig, ax = plt.subplots(figsize=opts.get("figsize", (9, 6)))
plotted_refs = set()
for det, (t, x_col, name, curves) in results.items():
ok = np.isfinite(t[name]) & (t[name] > 0)
ax.errorbar(t.loc[ok, x_col], t.loc[ok, name], yerr=t.loc[ok, f"{name}_err"],
fmt="o", ms=4, capsize=2, label=det.upper() or "data")
for label, x, y in curves:
if label not in plotted_refs:
ax.plot(x, y, "-", lw=1.2, label=label)
plotted_refs.add(label)
ax.set_xlabel(opts.get("xlabel", "E$_\\mathrm{cm}$ (MeV)" if excitation else "$\\theta_\\mathrm{cm}$ (deg)"))
ax.set_ylabel(opts.get("ylabel", "$\\sigma$ (mb)" if excitation else "d$\\sigma$/d$\\Omega$ (mb/sr)"))
ax.set_yscale(opts.get("yscale", "log"))
if "xlim" in opts:
ax.set_xlim(*opts["xlim"])
if "ylim" in opts:
ax.set_ylim(*opts["ylim"])
ax.set_title(config.get("title", ""))
ax.legend(fontsize=8)
fig.tight_layout()
fig.savefig(out_file, dpi=110)
plt.close(fig)
def main(argv=None):
parser = argparse.ArgumentParser(description="Step 3: cross section from the yields CSV and an efficiency.")
parser.add_argument("config", help="TOML config file")
args = parser.parse_args(argv)
config, full_path = common.read_config(args.config)
results = {}
for det in config.get("dets", [""]):
print(f"--- {det or 'data'}")
det_config = common.config_for_detector(config, det)
t, header, x_col, name, curves = analyse_detector(det_config, det, full_path)
common.write_csv(t, header, common.output_file(config, full_path, "xs", det))
results[det] = (t, x_col, name, curves)
print("\n".join(header[:-1]))
show = [x_col, "dz_mm" if name == "sigma_mb" else "d_omega_sr", "counts", f"{name}_app", "eps", name,
f"{name}_err"] + [c for c in t.columns if c.startswith("ref_")]
print(t[show].to_string(index=False, float_format=lambda v: f"{v:.4g}"), "\n")
out_png = common.output_file(config, full_path, "xs", "").with_suffix(".png")
make_plot(results, config, out_png)
print(f"written to {out_png.parent}")
return results
if __name__ == "__main__":
main()

80
cross_section/detectors.py Executable file
View File

@ -0,0 +1,80 @@
"""The ANASEN detectors as they are now (Run A, 27Al campaign), for the geometric efficiency.
geometric_efficiency.py reads everything about the detectors from here. Change a number here and every efficiency
computed afterwards follows it.
Sources:
- Si and counter: anasen_detectability.py of ~/TALYS/al027_a_scripts_stoichgas_dedx0962_2026-10-08
("detector geometry as used by TrackRecon.C"; counter radii from ClassPW.h)
- beam tube and PCB hole: the author, 2026-10-15 (../scratch/reaction_efficiency_tube_2026-10-15)
Geometry only: straight tracks from the vertex, no energy loss.
"""
import numpy as np
# ---------------------------------------------------------------- silicon
# QQQ3: the downstream annular detector
QQQ_Z_MM = 105.0 # TrackRecon.C qqq_z
QQQ_R_MM = (50.0, 100.0) # inner and outer active radius (16 rings: rho = 50 + 50/16 (ring + 0.5))
QQQ_PHI_FRACTION = 4 * 87.0 / 360.0 # 4 quadrants x 87 deg of wedges
# SX3: the barrel; only the four detectors TrackRecon.C builds events for, downstream half only
SX3_R_MM = 88.0
SX3_Z_MM = (-3.0, 72.0) # z_local + 75/2 - 3
SX3_IDS = (1, 3, 7, 9)
SX3_HALF_ANGLE = np.arctan(4 * 40.30 / (8.0 * 88.0 * np.cos(np.radians(15.0)))) # outer strip edge, each side
SX3_PHI_FRACTION = len(SX3_IDS) * 2 * SX3_HALF_ANGLE / (2 * np.pi)
PHI_FRACTION = {"qqq": QQQ_PHI_FRACTION, "sx3": SX3_PHI_FRACTION}
# Si energy thresholds (MeV), TrackRecon.C reaction_ax_core si_ecut. Used only for the eps_si_thr column.
SI_THRESHOLD_MEV = {"qqq": 0.45, "sx3": 0.6}
# ---------------------------------------------------------------- proportional counter
COUNTER_HALF_LENGTH_MM = 174.3
COUNTER_RADII_MM = (32.0, 37.0, 42.0) # guard, anode, cathode (ClassPW.h)
# ---------------------------------------------------------------- upstream apertures
# (name, radius mm, z mm of the face that binds). A track from an on-axis vertex only moves away from the axis,
# so an opening binds at its downstream end.
APERTURES = (("beam tube", 16.0, -189.0),
("PCB hole", 18.0, -174.3))
# ---------------------------------------------------------------- hit rules
# z_vertex in mm, theta = lab polar angle of the particle (radians). All return one True/False per track.
def hits_silicon(det, z_vertex, theta):
"""Does the straight track from z_vertex at angle theta reach the active silicon of `det` ("qqq" or "sx3")?
Polar angle only: multiply by PHI_FRACTION[det] for the azimuthal coverage.
A track that reaches the SX3 barrel's z range is counted as SX3, not QQQ."""
s, c = np.sin(theta), np.cos(theta)
with np.errstate(divide="ignore", invalid="ignore"):
z_at_sx3 = z_vertex + SX3_R_MM * c / s # z where the track reaches the barrel radius
on_sx3 = (z_at_sx3 >= SX3_Z_MM[0]) & (z_at_sx3 <= SX3_Z_MM[1])
if det == "sx3":
return on_sx3
r_at_qqq = np.where(c > 0, (QQQ_Z_MM - z_vertex) * s / c, -1.0) # radius where it reaches the QQQ plane
if det == "qqq":
return (QQQ_Z_MM > z_vertex) & (r_at_qqq >= QQQ_R_MM[0]) & (r_at_qqq <= QQQ_R_MM[1]) & ~on_sx3
raise ValueError(f"unknown detector {det!r}: detectors.py defines 'qqq' and 'sx3'")
def crosses_counter(z_vertex, theta):
"""Does the track cross the guard, anode and cathode radii inside the counter's length?"""
with np.errstate(divide="ignore", invalid="ignore"):
cot = np.cos(theta) / np.sin(theta)
ok = np.ones(np.shape(z_vertex), bool)
for r in COUNTER_RADII_MM:
ok &= np.abs(z_vertex + r * cot) <= COUNTER_HALF_LENGTH_MM
return ok
def clears_apertures(z_vertex, theta):
"""Does the track pass the beam tube and the PCB hole? Only vertices upstream of an aperture can be blocked
by it: blocked when the track is farther from the axis than the opening's radius at the opening's z."""
s, c = np.sin(theta), np.cos(theta)
tan_theta = s / np.where(c > 0, c, 1e-9) # backward tracks from upstream never reach the detectors
ok = np.ones(np.shape(z_vertex), bool)
for _name, radius, z_face in APERTURES:
ok &= ~((z_vertex < z_face) & ((z_face - z_vertex) * tan_theta > radius))
return ok

View File

@ -0,0 +1,88 @@
# 27Al(a,p)30Si excitation function, Run A, QQQ3 and SX3. Same inputs as ../../scratch/xs_27Al_lowE_2026-10-15.
#
# ~/myenv/bin/python -B extract_yields.py examples/27Al_ap_runA.toml # 1. ROOT -> out/27Al_ap_runA/yields_<det>.csv
# ~/myenv/bin/python -B geometric_efficiency.py examples/27Al_ap_runA.toml # 2. detectors.py -> eps_<det>.csv
# ~/myenv/bin/python -B cross_section.py examples/27Al_ap_runA.toml # 3. -> xs_<det>.csv, xs.png
#
# Each script reads the sections it needs. Paths are relative to this file's folder.
# "{det}" is replaced by each entry of `dets`.
title = "27Al(a,p)30Si, Run A"
mode = "excitation" # "excitation": sigma(E_cm); "angular": dsigma/dOmega(theta_cm)
dets = ["sx3", "qqq"] # names known to detectors.py
out_dir = "../out/27Al_ap"
# ------------------------------------------------------------- step 1: extract_yields.py
[extract]
# One fill per candidate: x = vertex z, y = tracked beam energy. Projected on y (all z, including overflow).
source = "hist"
file = "~/ANASEN_analysis/Output_27Al_X0_Y0/Output_27Al.root"
hist = "_m27Alax+misc_{det}/m27Alax_BeamEnergy_vs_VertexZ_{det}"
axis = "y"
variable = "e_beam"
# ------------------------------------------------------------- the reaction (steps 2 and 3)
[reaction]
beam_mass_u = 26.981538 # 27Al (atomic masses, as TrackRecon.C)
target_mass_u = 4.002603254 # 4He
ejectile_mass_u = 1.007825032 # p -> Q = 2.372 MeV for the ground state
recoil_mass_u = 29.973770 # 30Si
detect = "ejectile"
ecm_per_ebeam = 0.12918 # the rounded factor of the established analysis (the masses give 0.129182)
# 30Si states weighted by the TALYS (a,p) state cross sections at each bin's E_cm
states_csv = "../inputs/talys_27Al_ap.csv"
# or fixed weights: states = [{ex_mev = 0.0, weight = 1.0}, {ex_mev = 2.235, weight = 0.5}]
[beam]
# Beam energy along z;
# the nominal E_cm of each bin and the beam energy in the efficiency toy come from the 0.962 track.
track_csv = "../inputs/beam_tracks.csv"
track_z_col = "z_mm"
track_e_col = "e_beam_mev_0962"
# Alternative: build the track from an energy-loss table (check which dE/dx scale the table was made with):
# eloss_table = "../../eloss_calculations/aluminum_lookup_80MeV_250torr_3pc.dat"
# e_entrance_mev = 56.16
# z_entrance_mm = -454.0
n_beam = 1.4405e12 # Faraday cup, ch5 ssec:beam_exposure: the 45 runs (2.2096e12)
# For another set of runs: ../../runlog/beam_exposure.py "<runs>" --data-dir ../../Output_27Al_fb
n_beam_rel_err = 0.5
[bins]
ecm_edges = { start = 0.0, stop = 7.25, step = 0.25 }
# ------------------------------------------------------------- step 2: geometric_efficiency.py
[efficiency]
n_per_bin = 400000
seed = 20261016
# ------------------------------------------------------------- step 3: cross_section.py
[target]
# 4He in 250 Torr He + 3% CO2 at 20 C -> 7.988e17 He atoms per cm2 per mm
pressure_torr = 250.0
temperature_k = 293.15
mole_fraction = 0.97
atoms_per_molecule = 1
# [yield] csv = "..." # only to read yields from somewhere other than <out_dir>/yields_<det>.csv
[acceptance]
source = "geometric" # <out_dir>/eps_<det>.csv from step 2
column = "eps_geometric" # or eps_si, eps_si_thr, eps_counter
# To use the adopted efficiency of ../../scratch/xs_27Al_lowE_2026-10-15 instead (includes gas loss and thresholds):
# source = "csv"
# csv = "../../scratch/xs_27Al_lowE_2026-10-15/out/xs_{det}.csv"
# match = "bin"
# x_col = "ecm_lo_mev"
# eps_col = "eps_tube_adopted"
# rel_err_col = "eps_tube_rel_err"
[[reference]]
csv = "../inputs/talys_27Al_ap.csv"
x_col = "ecm_mev"
y_col = "sigma_total_mb"
label = "TALYS (a,p), discrete states"
[plot]
yscale = "log"
xlim = [0, 7.4]
ylim = [1e-3, 3e4]

View File

@ -0,0 +1,87 @@
# p + 4He elastic scattering, dsigma/dOmega(theta_cm), from the alpha recoils of the Run A Ta-foil runs 18-22, straight
# from a TrackRecon.C production file -- the same route as 27Al_ap_runA.toml. The histogram is
# elastic_VertexZ_vs_ThetaCM_<variant>_a_<DET>, filled by protonAlphaElastic_core since 2026-10-16.
# paap_ta_runs.toml is the same measurement from the p-alpha study's per-hit list.
#
# (once) process runs 18-22 with CUTLIST=pid_cuts/pid_cutlist.txt and merge them, e.g.
# bash scratch/paap_hist_2026-10-16/reprocess.sh (or run_tr.sh block 5, then hadd runs 18-22 only)
# ~/myenv/bin/python -B extract_yields.py examples/paap_ta_runs_hist.toml # or, the same in ROOT:
# root -l -b -q 'extract_yields.C+("examples/paap_ta_runs_hist.toml")'
# ~/myenv/bin/python -B geometric_efficiency.py examples/paap_ta_runs_hist.toml
# ~/myenv/bin/python -B cross_section.py examples/paap_ta_runs_hist.toml
#
# Paths are relative to this file's folder.
title = "p + 4He elastic, alpha recoils, Ta runs 18-22 (TrackRecon histograms)"
mode = "angular"
dets = ["qqq", "sx3"]
out_dir = "../out/paap_ta_run22"
[det_vars.qqq] # TrackRecon.C spells the detector in upper case in these folders
DET = "QQQ"
[det_vars.sx3]
DET = "SX3"
# ------------------------------------------------------------- step 1: extract_yields.py / extract_yields.C
[extract]
# The merged output of runs 18-22 (not 17: its foil, at z = -135.7 mm, sits inside the vertex window below).
# Point this at your own merged file to use your own processing.
source = "hist"
file = "~/ANASEN_analysis/Output_p/results_run022.root"
# Folder _a: hits the p/alpha cut (pid_alpha_<det>, CUTLIST) calls alpha. Variant _cath_exgate: cathode topologies
# (a1c1, a1c2, a2c1, a2c2) and |Ex| < 1 MeV under the alpha hypothesis, i.e. elastic. Others: "" (all topologies,
# no Ex gate), "_cath", "_exgate".
hist = "elastic+misc_{DET}_a/elastic_VertexZ_vs_ThetaCM_cath_exgate_a_{DET}"
axis = "x" # x = vertex z (mm)
angle_axis = "y" # y = proton theta_cm (deg)
variable = "z"
# ------------------------------------------------------------- the reaction (steps 2 and 3)
[reaction]
beam_mass_u = 1.007825032 # p
target_mass_u = 4.002603254 # 4He
ejectile_mass_u = 1.007825032 # p
recoil_mass_u = 4.002603254 # 4He
detect = "recoil" # the silicon sees the alpha; theta_cm is the proton's
states = [{ ex_mev = 0.0, weight = 1.0 }]
[beam]
# As paap_ta_runs.toml: 6.89 MeV protons into the gas; N_b = run 17's Ta-foil Rutherford current (1.35 pA) times
# the wall time of runs 18-22. The run log's 13 pA would give 2.6378e11 (../../runlog/beam_exposure.py "18-22").
eloss_table = "../../eloss_calculations/proton_lookup_30MeV_250torr_3pc.dat"
e_entrance_mev = 6.89
z_entrance_mm = -454.0
current_a = 1.35e-12
time_s = 672.65
charge_state = 1
[bins]
window_z_mm = [-170.0, -53.0] # upstream of every run's foil by 25 mm for runs 18-22, inside the counter
theta_edges_deg = { start = 88.0, stop = 168.0, step = 8.0 }
# ------------------------------------------------------------- step 2: geometric_efficiency.py
[efficiency]
n_per_bin = 400000
seed = 20261016
# ------------------------------------------------------------- step 3: cross_section.py
[target]
pressure_torr = 250.0
temperature_k = 293.15
mole_fraction = 0.97
atoms_per_molecule = 1
[acceptance]
source = "geometric"
column = "eps_geometric"
[[reference]]
csv = "reference/barnard1964_A1113003.csv"
x_col = "theta_cm_deg"
y_col = "dsdo_window_mb_sr"
label = "Barnard 1964, at the window's E_p"
[plot]
yscale = "linear"
xlim = [80, 175]
ylim = [0, 130]

View File

@ -0,0 +1,144 @@
# Barnard, Jones & Weil, NP 50, 604 (1964), EXFOR A1113003: p + 4He elastic, dsigma/dOmega_cm (mb/sr)
# Legendre order 6 fits of the 6.016 and 6.977 MeV distributions; dsdo_window: log-linear in E_p at 6.7437 MeV,
# the beam energy at the centre of the vertex window -170.0 to -53.0 mm of paap_ta_runs.toml
# written by make_barnard_reference.py
theta_cm_deg,dsdo_6p016_mb_sr,dsdo_6p977_mb_sr,dsdo_window_mb_sr
26,514.406,470.065,480.465
27,504.693,461.948,471.98
28,494.922,453.754,463.423
29,485.115,445.501,454.81
30,475.295,437.203,446.161
31,465.481,428.878,437.491
32,455.692,420.54,428.816
33,445.946,412.203,420.153
34,436.261,403.88,411.513
35,426.651,395.584,402.912
36,417.132,387.326,394.36
37,407.715,379.117,385.87
38,398.413,370.966,377.45
39,389.235,362.882,369.111
40,380.191,354.874,360.861
41,371.288,346.947,352.705
42,362.532,339.108,344.652
43,353.928,331.362,336.705
44,345.481,323.714,328.869
45,337.192,316.166,321.147
46,329.064,308.722,313.542
47,321.097,301.384,306.056
48,313.29,294.152,298.688
49,305.642,287.028,291.44
50,298.152,280.012,284.312
51,290.816,273.103,277.302
52,283.631,266.301,270.408
53,276.592,259.604,263.63
54,269.697,253.011,256.964
55,262.94,246.52,250.409
56,256.315,240.129,243.962
57,249.819,233.836,237.62
58,243.445,227.639,231.379
59,237.189,221.535,225.238
60,231.045,215.523,219.192
61,225.008,209.599,213.24
62,219.074,203.763,207.379
63,213.237,198.013,201.606
64,207.495,192.345,195.918
65,201.842,186.761,190.315
66,196.276,181.257,184.794
67,190.793,175.833,179.353
68,185.391,170.488,173.993
69,180.069,165.223,168.711
70,174.824,160.037,163.508
71,169.656,154.931,158.384
72,164.564,149.905,153.339
73,159.549,144.961,148.375
74,154.61,140.099,143.492
75,149.75,135.322,138.691
76,144.969,130.63,133.975
77,140.27,126.028,129.346
78,135.655,121.516,124.807
79,131.127,117.097,120.359
80,126.688,112.775,116.005
81,122.342,108.552,111.75
82,118.093,104.431,107.595
83,113.945,100.416,103.545
84,109.9,96.5094,99.6024
85,105.964,92.7147,95.7706
86,102.14,89.0351,92.0532
87,98.4316,85.4736,88.4535
88,94.8431,82.0333,84.9746
89,91.378,78.7172,81.6197
90,88.0401,75.528,78.3918
91,84.8326,72.4683,75.2935
92,81.7586,69.5403,72.3274
93,78.8209,66.7463,69.4959
94,76.0221,64.0881,66.8009
95,73.3644,61.5673,64.2442
96,70.8494,59.1852,61.8272
97,68.4787,56.9427,59.5509
98,66.2533,54.8405,57.4162
99,64.1738,52.8789,55.4235
100,62.2404,51.058,53.5729
101,60.4529,49.3774,51.864
102,58.8107,47.8365,50.2963
103,57.3127,46.4343,48.8688
104,55.9576,45.1696,47.5803
105,54.7435,44.0406,46.4292
106,53.6684,43.0456,45.4134
107,52.7296,42.1824,44.5309
108,51.9245,41.4485,43.7792
109,51.25,40.8414,43.1556
110,50.7026,40.3582,42.657
111,50.279,39.9957,42.2804
112,49.9752,39.7509,42.0224
113,49.7873,39.6202,41.8794
114,49.7114,39.6002,41.8479
115,49.7433,39.6873,41.9241
116,49.8787,39.8777,42.1041
117,50.1134,40.1678,42.3841
118,50.4431,40.5537,42.7601
119,50.8637,41.0316,43.2282
120,51.3709,41.5977,43.7844
121,51.9605,42.2482,44.4248
122,52.6287,42.9794,45.1456
123,53.3713,43.7876,45.9431
124,54.1848,44.6692,46.8133
125,55.0653,45.6205,47.7529
126,56.0094,46.6381,48.7581
127,57.0138,47.7186,49.8256
128,58.0753,48.8588,50.9522
129,59.1907,50.0552,52.1344
130,60.3572,51.305,53.3694
131,61.5722,52.6049,54.654
132,62.8329,53.9521,55.9855
133,64.137,55.3437,57.3609
134,65.4821,56.7769,58.7776
135,66.8659,58.2489,60.2329
136,68.2862,59.757,61.7243
137,69.741,61.2987,63.2493
138,71.2282,62.8712,64.8053
139,72.7458,64.472,66.3899
140,74.2917,66.0985,68.0005
141,75.864,67.7481,69.6349
142,77.4604,69.4181,71.2903
143,79.079,71.1058,72.9644
144,80.7174,72.8086,74.6544
145,82.3734,74.5237,76.3578
146,84.0445,76.2483,78.0719
147,85.7282,77.9794,79.7937
148,87.4218,79.7141,81.5205
149,89.1225,81.4492,83.2491
150,90.8273,83.1817,84.9765
151,92.533,84.9082,86.6995
152,94.2363,86.6253,88.4146
153,95.9337,88.3298,90.1185
154,97.6217,90.0179,91.8076
155,99.2963,91.686,93.4782
156,100.954,93.3306,95.1267
157,102.59,94.9478,96.7491
158,104.2,96.5338,98.3415
159,105.781,98.0847,99.9001
160,107.328,99.5967,101.421
161,108.836,101.066,102.9
162,110.3,102.488,104.333
163,111.718,103.86,105.716
164,113.083,105.178,107.045
1 # Barnard, Jones & Weil, NP 50, 604 (1964), EXFOR A1113003: p + 4He elastic, dsigma/dOmega_cm (mb/sr)
2 # Legendre order 6 fits of the 6.016 and 6.977 MeV distributions; dsdo_window: log-linear in E_p at 6.7437 MeV,
3 # the beam energy at the centre of the vertex window -170.0 to -53.0 mm of paap_ta_runs.toml
4 # written by make_barnard_reference.py
5 theta_cm_deg,dsdo_6p016_mb_sr,dsdo_6p977_mb_sr,dsdo_window_mb_sr
6 26,514.406,470.065,480.465
7 27,504.693,461.948,471.98
8 28,494.922,453.754,463.423
9 29,485.115,445.501,454.81
10 30,475.295,437.203,446.161
11 31,465.481,428.878,437.491
12 32,455.692,420.54,428.816
13 33,445.946,412.203,420.153
14 34,436.261,403.88,411.513
15 35,426.651,395.584,402.912
16 36,417.132,387.326,394.36
17 37,407.715,379.117,385.87
18 38,398.413,370.966,377.45
19 39,389.235,362.882,369.111
20 40,380.191,354.874,360.861
21 41,371.288,346.947,352.705
22 42,362.532,339.108,344.652
23 43,353.928,331.362,336.705
24 44,345.481,323.714,328.869
25 45,337.192,316.166,321.147
26 46,329.064,308.722,313.542
27 47,321.097,301.384,306.056
28 48,313.29,294.152,298.688
29 49,305.642,287.028,291.44
30 50,298.152,280.012,284.312
31 51,290.816,273.103,277.302
32 52,283.631,266.301,270.408
33 53,276.592,259.604,263.63
34 54,269.697,253.011,256.964
35 55,262.94,246.52,250.409
36 56,256.315,240.129,243.962
37 57,249.819,233.836,237.62
38 58,243.445,227.639,231.379
39 59,237.189,221.535,225.238
40 60,231.045,215.523,219.192
41 61,225.008,209.599,213.24
42 62,219.074,203.763,207.379
43 63,213.237,198.013,201.606
44 64,207.495,192.345,195.918
45 65,201.842,186.761,190.315
46 66,196.276,181.257,184.794
47 67,190.793,175.833,179.353
48 68,185.391,170.488,173.993
49 69,180.069,165.223,168.711
50 70,174.824,160.037,163.508
51 71,169.656,154.931,158.384
52 72,164.564,149.905,153.339
53 73,159.549,144.961,148.375
54 74,154.61,140.099,143.492
55 75,149.75,135.322,138.691
56 76,144.969,130.63,133.975
57 77,140.27,126.028,129.346
58 78,135.655,121.516,124.807
59 79,131.127,117.097,120.359
60 80,126.688,112.775,116.005
61 81,122.342,108.552,111.75
62 82,118.093,104.431,107.595
63 83,113.945,100.416,103.545
64 84,109.9,96.5094,99.6024
65 85,105.964,92.7147,95.7706
66 86,102.14,89.0351,92.0532
67 87,98.4316,85.4736,88.4535
68 88,94.8431,82.0333,84.9746
69 89,91.378,78.7172,81.6197
70 90,88.0401,75.528,78.3918
71 91,84.8326,72.4683,75.2935
72 92,81.7586,69.5403,72.3274
73 93,78.8209,66.7463,69.4959
74 94,76.0221,64.0881,66.8009
75 95,73.3644,61.5673,64.2442
76 96,70.8494,59.1852,61.8272
77 97,68.4787,56.9427,59.5509
78 98,66.2533,54.8405,57.4162
79 99,64.1738,52.8789,55.4235
80 100,62.2404,51.058,53.5729
81 101,60.4529,49.3774,51.864
82 102,58.8107,47.8365,50.2963
83 103,57.3127,46.4343,48.8688
84 104,55.9576,45.1696,47.5803
85 105,54.7435,44.0406,46.4292
86 106,53.6684,43.0456,45.4134
87 107,52.7296,42.1824,44.5309
88 108,51.9245,41.4485,43.7792
89 109,51.25,40.8414,43.1556
90 110,50.7026,40.3582,42.657
91 111,50.279,39.9957,42.2804
92 112,49.9752,39.7509,42.0224
93 113,49.7873,39.6202,41.8794
94 114,49.7114,39.6002,41.8479
95 115,49.7433,39.6873,41.9241
96 116,49.8787,39.8777,42.1041
97 117,50.1134,40.1678,42.3841
98 118,50.4431,40.5537,42.7601
99 119,50.8637,41.0316,43.2282
100 120,51.3709,41.5977,43.7844
101 121,51.9605,42.2482,44.4248
102 122,52.6287,42.9794,45.1456
103 123,53.3713,43.7876,45.9431
104 124,54.1848,44.6692,46.8133
105 125,55.0653,45.6205,47.7529
106 126,56.0094,46.6381,48.7581
107 127,57.0138,47.7186,49.8256
108 128,58.0753,48.8588,50.9522
109 129,59.1907,50.0552,52.1344
110 130,60.3572,51.305,53.3694
111 131,61.5722,52.6049,54.654
112 132,62.8329,53.9521,55.9855
113 133,64.137,55.3437,57.3609
114 134,65.4821,56.7769,58.7776
115 135,66.8659,58.2489,60.2329
116 136,68.2862,59.757,61.7243
117 137,69.741,61.2987,63.2493
118 138,71.2282,62.8712,64.8053
119 139,72.7458,64.472,66.3899
120 140,74.2917,66.0985,68.0005
121 141,75.864,67.7481,69.6349
122 142,77.4604,69.4181,71.2903
123 143,79.079,71.1058,72.9644
124 144,80.7174,72.8086,74.6544
125 145,82.3734,74.5237,76.3578
126 146,84.0445,76.2483,78.0719
127 147,85.7282,77.9794,79.7937
128 148,87.4218,79.7141,81.5205
129 149,89.1225,81.4492,83.2491
130 150,90.8273,83.1817,84.9765
131 151,92.533,84.9082,86.6995
132 152,94.2363,86.6253,88.4146
133 153,95.9337,88.3298,90.1185
134 154,97.6217,90.0179,91.8076
135 155,99.2963,91.686,93.4782
136 156,100.954,93.3306,95.1267
137 157,102.59,94.9478,96.7491
138 158,104.2,96.5338,98.3415
139 159,105.781,98.0847,99.9001
140 160,107.328,99.5967,101.421
141 161,108.836,101.066,102.9
142 162,110.3,102.488,104.333
143 163,111.718,103.86,105.716
144 164,113.083,105.178,107.045

378
cross_section/extract_yields.C Executable file
View File

@ -0,0 +1,378 @@
// Step 1 in ROOT: yields out of ROOT, into a plain CSV histogram. The ROOT twin of extract_yields.py:
// same config, same output (<out_dir>/yields_<det>.csv), same format. Use whichever is handier.
//
// root -l -b -q 'extract_yields.C+("examples/27Al_ap_runA.toml")'
// root -l -b -q 'extract_yields.C+("examples/27Al_ap_runA.toml", "out/elsewhere")' // another output folder
// // (relative to where root runs)
// THE CSV FORMAT (cross_section.py reads only this)
// 1D: <var>_lo, <var>_hi, counts, variance
// 2D: <var>_lo, <var>_hi, theta_cm_lo, theta_cm_hi, counts, variance (angular mode)
// <var> is z (mm), e_beam (MeV) or ecm (MeV). One row per bin; under/overflow are not written.
//
// CONFIG: the [extract] section, `dets`, `out_dir`, `title` and [det_vars.<det>] of the study's TOML, exactly as for
// extract_yields.py (keys listed there). Two differences:
// - `cut` is handed to TTree::Draw. Write it with and / or (e.g. "det == 1 and e_si > 0.5"): they become && / ||
// here and stay valid pandas syntax for the Python version.
// - A tree histogram puts an entry exactly on the last upper edge in the overflow (numpy puts it in the last bin).
// The TOML reader below handles only what these configs use: "strings", numbers, one-line [lists] and
// { start = .., stop = .., step = .. } tables. Anything else stops with an error.
#include <TChain.h>
#include <TDirectory.h>
#include <TFile.h>
#include <TKey.h>
#include <TH1.h>
#include <TH2.h>
#include <TROOT.h>
#include <TString.h>
#include <TSystem.h>
#include <cmath>
#include <cstdio>
#include <fstream>
#include <functional>
#include <map>
#include <stdexcept>
#include <string>
#include <vector>
namespace xs {
using Section = std::map<std::string, std::string>; // key -> raw value text
using Config = std::map<std::string, Section>; // section name ("" = top level) -> keys
// ============================================================ minimal TOML reading
std::string Trim(const std::string& s)
{
const auto a = s.find_first_not_of(" \t\r\n");
if (a == std::string::npos) return "";
const auto b = s.find_last_not_of(" \t\r\n");
return s.substr(a, b - a + 1);
}
std::string StripComment(const std::string& line)
{
bool inString = false;
for (size_t i = 0; i < line.size(); ++i) {
if (line[i] == '"') inString = !inString;
if (line[i] == '#' && !inString) return line.substr(0, i);
}
return line;
}
Config ReadToml(const std::string& file)
{
std::ifstream in(file);
if (!in) throw std::runtime_error("cannot open config " + file);
Config config;
std::string section, line;
while (std::getline(in, line)) {
line = Trim(StripComment(line));
if (line.empty()) continue;
if (line.rfind("[[", 0) == 0) { section = line; continue; } // array tables (e.g. [[reference]]): not used here
if (line[0] == '[') { section = Trim(line.substr(1, line.size() - 2)); continue; }
const auto eq = line.find('=');
if (eq == std::string::npos) throw std::runtime_error("cannot read config line: " + line);
const std::string value = Trim(line.substr(eq + 1));
if ((value[0] == '[' && value.back() != ']') || (value[0] == '{' && value.back() != '}'))
throw std::runtime_error("lists and tables must be on one line: " + line);
config[section][Trim(line.substr(0, eq))] = value;
}
return config;
}
std::string Unquote(const std::string& v)
{
if (v.size() >= 2 && v.front() == '"' && v.back() == '"') return v.substr(1, v.size() - 2);
return v;
}
// "[a, b]" or "{ k = v, ... }" -> its items, split on commas outside quotes
std::vector<std::string> SplitItems(const std::string& v)
{
std::vector<std::string> items;
std::string inner = Trim(v.substr(1, v.size() - 2)), item;
bool inString = false;
for (char c : inner) {
if (c == '"') inString = !inString;
if (c == ',' && !inString) { items.push_back(Trim(item)); item.clear(); }
else item += c;
}
if (!Trim(item).empty()) items.push_back(Trim(item));
return items;
}
// Bin edges from [e0, e1, ...] or { start = .., stop = .., step = .. } (stop included), computed as numpy does
std::vector<double> Edges(const std::string& v)
{
std::vector<double> edges;
if (v.front() == '[') {
for (const auto& item : SplitItems(v)) edges.push_back(std::stod(item));
return edges;
}
std::map<std::string, double> table;
for (const auto& item : SplitItems(v)) {
const auto eq = item.find('=');
table[Trim(item.substr(0, eq))] = std::stod(Trim(item.substr(eq + 1)));
}
const double start = table.at("start"), stop = table.at("stop"), step = table.at("step");
const long nBins = std::lround((stop - start) / step);
for (long i = 0; i <= nBins; ++i) edges.push_back(start + step * i);
return edges;
}
// The [extract] section of one detector: every string with {det} and the [det_vars.<det>] keys replaced
Section ExtractSection(const Config& config, const std::string& det)
{
std::map<std::string, std::string> replacements = {{"det", det}};
const auto vars = config.find("det_vars." + det);
if (vars != config.end())
for (const auto& kv : vars->second) replacements[kv.first] = Unquote(kv.second);
const auto ex = config.find("extract");
if (ex == config.end()) throw std::runtime_error("the config has no [extract] section");
Section out;
for (const auto& kv : ex->second) {
TString value = kv.second.c_str();
for (const auto& r : replacements) value.ReplaceAll(("{" + r.first + "}").c_str(), r.second.c_str());
out[kv.first] = value.Data();
}
return out;
}
std::string Get(const Section& s, const std::string& key, const std::string& fallback = "\x01")
{
const auto it = s.find(key);
if (it != s.end()) return Unquote(it->second);
if (fallback == "\x01") throw std::runtime_error("[extract] needs the key " + key);
return fallback;
}
// ============================================================ the yields table
struct Row {
double lo, hi, thetaLo, thetaHi, counts, variance;
};
// Sum of weights squared of a bin (global index); a histogram without Sumw2 counts each entry once
double Variance(const TH1* h, int bin)
{
return h->GetSumw2N() > 0 ? h->GetSumw2()->At(bin) : h->GetBinContent(bin);
}
// The histogram at "folder/name". A name that itself contains '/' (e.g. "dE_(z/100)=1") is not reachable with Get(),
// so each split into an existing folder + a key of that folder is also tried. Not found: the error names the
// histograms whose path matches when case is ignored (e.g. "elastic+misc_qqq_a" for "elastic+misc_QQQ_a").
TH1* FindHistogram(TFile* file, const std::string& path)
{
if (auto* h = dynamic_cast<TH1*>(file->Get(path.c_str()))) return h;
// every split into folder + name: at each '/', from the last one back, and finally no folder at all
std::vector<std::pair<std::string, std::string>> splits;
for (size_t i = path.size(); i-- > 0;)
if (path[i] == '/') splits.emplace_back(path.substr(0, i), path.substr(i + 1));
splits.emplace_back("", path);
for (const auto& [folder, name] : splits) {
TDirectory* dir = folder.empty() ? static_cast<TDirectory*>(file) : file->GetDirectory(folder.c_str());
if (!dir) continue;
if (TKey* key = dir->GetKey(name.c_str()))
if (auto* h = dynamic_cast<TH1*>(key->ReadObj())) return h;
}
std::string close;
TString lower = path.c_str();
lower.ToLower();
std::function<void(TDirectory*, const std::string&)> walk = [&](TDirectory* dir, const std::string& prefix) {
for (auto* obj : *dir->GetListOfKeys()) {
auto* key = static_cast<TKey*>(obj);
const std::string full = prefix + key->GetName();
if (TString(key->GetClassName()).BeginsWith("TDirectory"))
walk(dir->GetDirectory(key->GetName()), full + "/");
else if (TString(full.c_str()).EqualTo(lower, TString::kIgnoreCase))
close += " '" + full + "'";
}
};
walk(file, "");
throw std::runtime_error("no histogram " + path + " in " + file->GetName() + (close.empty() ? "" : "; same path ignoring case:" + close) +
". Paths are case-sensitive; for upper-case names per detector use [det_vars], e.g. DET = \"QQQ\"");
}
std::vector<Row> FromHistogram(const Section& ex, const std::string& path, bool& twoD)
{
TFile* file = TFile::Open(path.c_str());
if (!file || file->IsZombie()) throw std::runtime_error("cannot open " + path);
const std::string name = Get(ex, "hist");
TH1* h = FindHistogram(file, name);
std::vector<Row> rows;
twoD = false;
if (h->GetDimension() == 1) {
for (int i = 1; i <= h->GetNbinsX(); ++i)
rows.push_back({h->GetXaxis()->GetBinLowEdge(i), h->GetXaxis()->GetBinUpEdge(i), 0, 0,
h->GetBinContent(i), Variance(h, i)});
file->Close();
return rows;
}
// TH2: `axis` holds the variable; the other axis is theta_cm (angle_axis given) or is summed
const bool varOnX = Get(ex, "axis", "x") == "x";
TH2* h2 = static_cast<TH2*>(h);
TAxis* varAxis = varOnX ? h2->GetXaxis() : h2->GetYaxis();
TAxis* otherAxis = varOnX ? h2->GetYaxis() : h2->GetXaxis();
const int nVar = varAxis->GetNbins(), nOther = otherAxis->GetNbins();
auto global = [&](int iVar, int iOther) { return varOnX ? h2->GetBin(iVar, iOther) : h2->GetBin(iOther, iVar); };
if (ex.count("angle_axis")) { // keep it 2D: one row per (variable bin, theta bin)
twoD = true;
for (int i = 1; i <= nVar; ++i)
for (int j = 1; j <= nOther; ++j)
rows.push_back({varAxis->GetBinLowEdge(i), varAxis->GetBinUpEdge(i), otherAxis->GetBinLowEdge(j),
otherAxis->GetBinUpEdge(j), h2->GetBinContent(global(i, j)), Variance(h2, global(i, j))});
file->Close();
return rows;
}
// project on the variable: the other axis summed whole (with under/overflow), or the fraction inside other_range
std::vector<double> weight(nOther + 2, 1.0);
if (ex.count("other_range")) {
const auto range = Edges(ex.at("other_range"));
weight.front() = weight.back() = 0.0;
for (int j = 1; j <= nOther; ++j) {
const double lo = otherAxis->GetBinLowEdge(j), hi = otherAxis->GetBinUpEdge(j);
weight[j] = std::max(0.0, std::min(hi, range[1]) - std::max(lo, range[0])) / (hi - lo);
}
}
for (int i = 1; i <= nVar; ++i) {
double counts = 0, variance = 0;
for (int j = 0; j <= nOther + 1; ++j) {
counts += weight[j] * h2->GetBinContent(global(i, j));
variance += weight[j] * weight[j] * Variance(h2, global(i, j));
}
rows.push_back({varAxis->GetBinLowEdge(i), varAxis->GetBinUpEdge(i), 0, 0, counts, variance});
}
file->Close();
return rows;
}
std::vector<Row> FromTree(const Section& ex, const std::vector<std::string>& files, bool& twoD)
{
TChain chain(Get(ex, "tree").c_str());
for (const auto& f : files) chain.Add(f.c_str()); // TChain::Add takes wildcards in the file name
if (chain.GetEntries() <= 0) // a missing tree or file must not become a table of zeros
throw std::runtime_error("no entries in tree " + Get(ex, "tree") + " of " + files.front() + (files.size() > 1 ? " ..." : ""));
// The cut, with and / or as && / ||; a weight branch multiplies it
TString cut = Get(ex, "cut", "").c_str();
cut.ReplaceAll(" and ", " && ").ReplaceAll(" or ", " || ");
if (cut.IsNull()) cut = "1";
TString selection = ex.count("weight_branch") ? TString::Format("(%s)*(%s)", Get(ex, "weight_branch").c_str(), cut.Data())
: cut;
const auto edges = Edges(ex.at("bins"));
const TString branch = Get(ex, "branch").c_str();
gROOT->cd();
std::vector<Row> rows;
twoD = ex.count("angle_branch") > 0;
if (!twoD) {
TH1D h("h_extract_yields", "", edges.size() - 1, edges.data());
h.Sumw2();
const Long64_t n = chain.Draw(branch + ">>h_extract_yields", selection, "goff");
printf(" %d file(s); %lld entries after the cut\n", chain.GetListOfFiles()->GetEntries(), n);
for (int i = 1; i <= h.GetNbinsX(); ++i)
rows.push_back({edges[i - 1], edges[i], 0, 0, h.GetBinContent(i), Variance(&h, i)});
return rows;
}
const auto angleEdges = Edges(ex.at("angle_bins"));
TH2D h("h_extract_yields2", "", edges.size() - 1, edges.data(), angleEdges.size() - 1, angleEdges.data());
h.Sumw2();
const Long64_t n = chain.Draw(TString(Get(ex, "angle_branch").c_str()) + ":" + branch + ">>h_extract_yields2",
selection, "goff"); // "y:x" in TTree::Draw
printf(" %d file(s); %lld entries after the cut\n", chain.GetListOfFiles()->GetEntries(), n);
for (size_t i = 1; i < edges.size(); ++i)
for (size_t j = 1; j < angleEdges.size(); ++j)
rows.push_back({edges[i - 1], edges[i], angleEdges[j - 1], angleEdges[j], h.GetBinContent(h.GetBin(i, j)),
Variance(&h, h.GetBin(i, j))});
return rows;
}
void WriteCsv(const std::vector<Row>& rows, bool twoD, const std::string& var, const std::vector<std::string>& header,
const std::string& outFile)
{
FILE* f = fopen(outFile.c_str(), "w");
if (!f) throw std::runtime_error("cannot write " + outFile);
for (const auto& line : header) fprintf(f, "# %s\n", line.c_str());
fprintf(f, twoD ? "%s_lo,%s_hi,theta_cm_lo,theta_cm_hi,counts,variance\n" : "%s_lo,%s_hi,counts,variance\n",
var.c_str(), var.c_str());
for (const auto& r : rows) {
if (twoD) fprintf(f, "%.6g,%.6g,%.6g,%.6g,%.6g,%.6g\n", r.lo, r.hi, r.thetaLo, r.thetaHi, r.counts, r.variance);
else fprintf(f, "%.6g,%.6g,%.6g,%.6g\n", r.lo, r.hi, r.counts, r.variance);
}
fclose(f);
}
} // namespace xs
void extract_yields(const char* configFile, const char* outDirOverride = "")
{
using namespace xs;
try {
const Config config = ReadToml(configFile);
const std::string configDir = gSystem->GetDirName(configFile).Data();
auto fullPath = [&](const std::string& p) -> std::string {
if (p.rfind("~/", 0) == 0 && getenv("HOME")) return std::string(getenv("HOME")) + p.substr(1); // "~/..." = home
return p.empty() || p[0] == '/' ? p : configDir + "/" + p;
};
const Section& top = config.count("") ? config.at("") : Section();
std::vector<std::string> dets = {""};
if (top.count("dets")) {
dets.clear();
for (const auto& d : SplitItems(top.at("dets"))) dets.push_back(Unquote(d));
}
const std::string outDir = *outDirOverride ? std::string(outDirOverride)
: fullPath(top.count("out_dir") ? Unquote(top.at("out_dir")) : "out");
gSystem->mkdir(outDir.c_str(), kTRUE);
const std::string title = top.count("title") ? Unquote(top.at("title")) : "";
for (const auto& det : dets) {
const Section ex = ExtractSection(config, det);
const std::string source = Get(ex, "source"), var = Get(ex, "variable");
if (source != "hist" && source != "tree")
throw std::runtime_error("[extract] source must be \"hist\" or \"tree\", not " + source +
(source == "csv" ? " (event-list CSVs: use extract_yields.py)" : ""));
std::vector<std::string> files; // `file` may be one path or a list
if (ex.at("file").front() == '[') for (const auto& f : SplitItems(ex.at("file"))) files.push_back(fullPath(Unquote(f)));
else files.push_back(fullPath(Get(ex, "file")));
const std::string fileText = ex.at("file").front() == '[' ? ex.at("file") : Get(ex, "file");
printf("--- %s: %s : %s\n", det.empty() ? "data" : det.c_str(), fileText.c_str(),
Get(ex, source == "hist" ? "hist" : "tree").c_str());
bool twoD = false;
std::vector<Row> rows;
std::string from;
if (source == "hist") {
rows = FromHistogram(ex, files.front(), twoD);
from = "histogram " + Get(ex, "hist");
} else if (source == "tree") {
rows = FromTree(ex, files, twoD);
from = "tree " + Get(ex, "tree") + ", branch " + Get(ex, "branch");
if (!Get(ex, "cut", "").empty()) from += ", cut: " + Get(ex, "cut");
} else {
throw std::runtime_error("[extract] source must be \"hist\" or \"tree\", not " + source +
(source == "csv" ? " (event-list CSVs: use extract_yields.py)" : ""));
}
TString detUpper = det.c_str();
detUpper.ToUpper();
const std::string outFile = outDir + "/" + (det.empty() ? "yields.csv" : "yields_" + det + ".csv");
WriteCsv(rows, twoD, var,
{title + " " + detUpper.Data() + ": yields, binned in " + var, "from " + fileText + " : " + from,
"written by extract_yields.C"},
outFile);
double total = 0;
for (const auto& r : rows) total += r.counts;
printf(" %.0f counts in %zu bins -> %s\n", total, rows.size(), outFile.c_str());
}
} catch (const std::exception& e) {
fprintf(stderr, "extract_yields.C: %s\n", e.what());
gSystem->Exit(1); // a failed extraction must not look like a finished one
}
}

View File

@ -0,0 +1,164 @@
"""Step 2: geometric efficiency of every bin, for the detectors as they are now (detectors.py).
~/myenv/bin/python -B geometric_efficiency.py examples/27Al_ap_runA.toml # ~1 min; numpy and pandas only
A toy Monte Carlo per bin (same bins as the cross section):
- vertices uniform over the bin's stretch of beam path (angular mode: over the window);
- beam energy at each vertex from the nominal beam track;
- the residual nucleus' state drawn from [reaction] states: fixed weights, or state cross sections
from a table (e.g. TALYS) at the bin's nominal E_cm;
- emission isotropic in the CM (angular mode: cos theta_cm uniform inside the theta bin, theta_cm of the ejectile);
- relativistic two-body kinematics, straight tracks from the vertex.
Writes <out_dir>/eps_<det>.csv, one row per bin, with these efficiencies (each times the azimuthal coverage):
eps_si the particle reaches the analysed silicon (solid angle)
eps_si_thr eps_si, and its energy at the vertex is above the Si threshold (the ch5 "solid angle" convention;
a kinematic cut, not geometry)
eps_counter eps_si, and it crosses the guard, anode and cathode radii inside the counter
eps_geometric eps_counter, and it clears the beam tube and the PCB hole <- THE GEOMETRIC EFFICIENCY
and the Monte Carlo relative error of each (<name>_rel_err).
Not included, because they are not geometry: energy loss in the gas, the Si threshold after the gas, the counter's
deposit threshold, intrinsic efficiencies. They are why the adopted eps_tube of ../scratch/xs_27Al_lowE_2026-10-15 is lower.
CONFIG
[reaction] beam_mass_u, target_mass_u, ejectile_mass_u, recoil_mass_u (atomic masses; Q from these)
detect = "ejectile" (default) or "recoil": the particle the silicon sees
states = [{ex_mev = 0.0, weight = 1.0}, ...] fixed state weights, or
states_csv = file with ecm_mev and one column ex_<Ex in MeV> per state (state cross sections)
[efficiency] n_per_bin (default 400000), seed
[beam], [bins], mode, dets as for the cross section.
"""
import argparse
import numpy as np
import pandas as pd
import common
import detectors
U = 931.49410242 # MeV per u
EFFICIENCIES = ("eps_si", "eps_si_thr", "eps_counter", "eps_geometric")
def two_body(t_beam, reaction, ex, cos_cm):
"""Relativistic two-body kinematics, beam on target at rest -> ejectile (at cos_cm in the CM) + recoil (state ex).
Returns the lab kinetic energy (MeV) and polar angle (rad) of the detected particle, and whether the channel is
open at this beam energy."""
m1, m2 = reaction["beam_mass_u"] * U, reaction["target_mass_u"] * U
m3, m4 = reaction["ejectile_mass_u"] * U, reaction["recoil_mass_u"] * U + ex
s = (m1 + m2) ** 2 + 2 * m2 * t_beam # invariant mass squared
sqrt_s = np.sqrt(s)
is_open = sqrt_s > m3 + m4
e_total = t_beam + m1 + m2
beta = np.sqrt(t_beam ** 2 + 2 * t_beam * m1) / e_total # of the CM in the lab
gamma = e_total / sqrt_s
p_cm = np.sqrt(np.clip((s - (m3 + m4) ** 2) * (s - (m3 - m4) ** 2), 0, None)) / (2 * sqrt_s)
sin_cm = np.sqrt(1 - cos_cm ** 2)
# the recoil goes the opposite way in the CM
mass, sign = (m3, 1.0) if reaction.get("detect", "ejectile") == "ejectile" else (m4, -1.0)
e_cm = np.sqrt(p_cm ** 2 + mass ** 2)
p_z = gamma * (sign * p_cm * cos_cm + beta * e_cm)
energy = gamma * (e_cm + beta * sign * p_cm * cos_cm)
theta = np.arctan2(p_cm * sin_cm, p_z)
return np.where(is_open, energy - mass, 0.0), theta, is_open
def q_value_mev(reaction):
return (reaction["beam_mass_u"] + reaction["target_mass_u"]
- reaction["ejectile_mass_u"] - reaction["recoil_mass_u"]) * U
def state_weights(reaction, ecm, states_table):
"""Excitation energies of the residual nucleus and their probabilities at this E_cm. States that are closed
(Ex >= Q + E_cm) get weight 0; if none is open, the ground state alone."""
if states_table is None:
states = reaction.get("states", [{"ex_mev": 0.0, "weight": 1.0}])
ex = np.array([s["ex_mev"] for s in states], float)
w = np.array([s["weight"] for s in states], float)
else:
columns = [c for c in states_table.columns if c.startswith("ex_")]
ex = np.array([float(c[3:]) for c in columns])
# the table row nearest this E_cm, among rows with any cross section (below the first such row, its weights)
rows = states_table[states_table[columns].sum(axis=1) > 0]
row = rows.iloc[np.argmin(np.abs(rows["ecm_mev"].to_numpy() - max(ecm, rows["ecm_mev"].min())))]
w = row[columns].to_numpy(float)
w = np.where(ex < q_value_mev(reaction) + ecm, w, 0.0)
if w.sum() <= 0:
w = (ex == 0).astype(float)
return ex, w / w.sum()
def efficiency_of_bin(det, reaction, track, z_range, cos_range, ecm, states_table, n, rng):
"""Toy for one bin: n reactions with vertices uniform in z_range and cos(theta_cm) uniform in cos_range."""
z = rng.uniform(z_range[0], z_range[1], n)
t_beam = track.energy_at(z, nominal=True)
ex_states, weights = state_weights(reaction, ecm, states_table)
ex = rng.choice(ex_states, size=n, p=weights)
cos_cm = rng.uniform(cos_range[0], cos_range[1], n)
energy, theta, is_open = two_body(t_beam, reaction, ex, cos_cm)
is_open &= t_beam > 0
on_si = is_open & detectors.hits_silicon(det, z, theta)
passed = {"eps_si": on_si,
"eps_si_thr": on_si & (energy > detectors.SI_THRESHOLD_MEV[det]),
"eps_counter": on_si & detectors.crosses_counter(z, theta)}
passed["eps_geometric"] = passed["eps_counter"] & detectors.clears_apertures(z, theta)
phi = detectors.PHI_FRACTION[det]
row = {"ground_state_weight": float(weights[ex_states == 0].sum()), "frac_open": float(is_open.mean())}
for name, ok in passed.items():
p = ok.mean()
row[name] = phi * p
row[f"{name}_rel_err"] = np.sqrt(p * (1 - p) / n) / p if p > 0 else np.nan # binomial
return row
def main(argv=None):
parser = argparse.ArgumentParser(description="Step 2: geometric efficiency per bin (detectors.py).")
parser.add_argument("config", help="TOML config file")
args = parser.parse_args(argv)
config, full_path = common.read_config(args.config)
for det in config.get("dets", [""]):
c = common.config_for_detector(config, det)
reaction, settings = c["reaction"], c.get("efficiency", {})
mode = c.get("mode", "excitation")
k = common.ecm_per_beam_energy(reaction)
track = common.load_beam_track(c["beam"], full_path)
bins, window = common.make_bins(c, track, k)
states_table = pd.read_csv(full_path(reaction["states_csv"]), comment="#") if "states_csv" in reaction else None
rng = np.random.default_rng(settings.get("seed", 20261016))
n = int(settings.get("n_per_bin", 400_000))
rows = []
for _, b in bins.iterrows():
if b["dz_mm"] <= 0: # past the beam's stopping point
rows.append({name: np.nan for name in EFFICIENCIES})
continue
if mode == "excitation":
ecm = b["ecm_nominal_mev"]
cos_range = (-1.0, 1.0)
else:
ecm = k * track.energy_at(0.5 * (b["z_up_mm"] + b["z_down_mm"]), nominal=True)
cos_range = (np.cos(np.radians(b["theta_hi_deg"])), np.cos(np.radians(b["theta_lo_deg"])))
rows.append(efficiency_of_bin(det, reaction, track, (b["z_up_mm"], b["z_down_mm"]), cos_range,
ecm, states_table, n, rng))
table = pd.concat([bins.reset_index(drop=True), pd.DataFrame(rows)], axis=1)
states_text = reaction.get("states_csv", reaction.get("states", "ground state only"))
header = [f"{c.get('title', '')} {det.upper()}: geometric efficiency per bin ({mode} mode), detectors.py",
f"beam track: {track.description}; Q = {q_value_mev(reaction):.4f} MeV; detected: "
f"{reaction.get('detect', 'ejectile')}; states: {states_text}",
f"isotropic CM, straight tracks, {n} reactions per bin; azimuthal coverage {detectors.PHI_FRACTION[det]:.4f}",
"eps_geometric = silicon + counter + apertures; eps_si_thr adds the Si threshold at the vertex energy",
"written by geometric_efficiency.py"]
out = common.output_file(config, full_path, "eps", det)
common.write_csv(table, header, out)
x_col = "ecm_nominal_mev" if mode == "excitation" else "theta_c_deg"
print(f"--- {det}: -> {out}")
print(table[[x_col, *EFFICIENCIES]].to_string(index=False, float_format=lambda v: f"{v:.4g}"))
if __name__ == "__main__":
main()

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,182 @@
# 27Al(a,p)30Si; TALYS 2.2 run /home/vsitaraman/TALYS/runs/al027_a_v3
# E_cm = E_a,lab * 0.870818 (xs_series.py LAB2CM); grid as calculated, no smoothing
# sigma_total_mb = sum of the discrete-state columns ex_<Ex MeV> (fig2 'all levels (sum)')
# group_<label>_mb = states in ch5 tab:level_windows groups; sigma_channel_mb = <prefix>.tot (discrete + continuum)
# written by tools/xs/02_export_talys.py
ecm_mev,e_alpha_lab_mev,sigma_total_mb,ex_0.000,ex_2.235,ex_3.498,ex_3.769,ex_3.788,ex_4.810,ex_4.831,ex_5.231,ex_5.279,ex_5.372,ex_5.487,ex_5.614,ex_5.951,ex_6.503,ex_6.537,ex_6.641,ex_6.693,ex_6.744,ex_6.865,ex_6.915,ex_6.999,ex_7.043,ex_7.079,ex_7.223,ex_7.256,ex_7.441,ex_7.508,ex_7.612,ex_7.624,ex_7.634,ex_7.667,ex_7.810,ex_7.912,ex_8.105,ex_8.156,ex_8.163,ex_8.191,ex_8.194,ex_8.290,ex_8.333,ex_8.441,group_3.498_mb,group_5.279_mb,group_5.951_mb,sigma_channel_mb
0.435409,0.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0.522491,0.6,1.01951e-15,1.00639e-15,1.31186e-17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.00639e-15
0.609572,0.7,1.12487e-13,1.05676e-13,6.8115e-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.12487e-13
0.696654,0.8,5.08499e-12,4.57286e-12,5.12137e-13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5.08499e-12
0.783736,0.9,1.18685e-10,1.01376e-10,1.73085e-11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.18685e-10
0.870818,1,1.69172e-09,1.36621e-09,3.25514e-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.69172e-09
0.957899,1.1,1.65257e-08,1.25813e-08,3.94447e-09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.65258e-08
1.04498,1.2,1.19945e-07,8.59853e-08,3.396e-08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.19945e-07
1.13206,1.3,6.85888e-07,4.63489e-07,2.22398e-07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6.85888e-07
1.21914,1.4,3.21947e-06,2.0543e-06,1.16518e-06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.21947e-06
1.30623,1.5,1.28906e-05,7.79398e-06,5.09659e-06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.28906e-05
1.39331,1.6,4.50568e-05,2.59074e-05,1.91493e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.50568e-05
1.48039,1.7,0.000140276,7.7005e-05,6.32703e-05,9.60429e-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9.60429e-10,0,0,0.000140276
1.56747,1.8,0.000395317,0.000207929,0.000187369,1.85546e-08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.85546e-08,0,0,0.000395317
1.65455,1.9,0.00100986,0.000504273,0.000505387,1.97973e-07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.97973e-07,0,0,0.00100986
1.74164,2,0.00236725,0.0011237,0.00124211,1.43569e-06,1.38796e-09,1.37299e-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.43721e-06,0,0,0.00236725
1.82872,2.1,0.0051701,0.00233611,0.00282613,7.83447e-06,2.24959e-08,2.43913e-09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7.8594e-06,0,0,0.0051701
1.9158,2.2,0.0106344,0.00457886,0.00602048,3.48358e-05,2.13766e-07,2.72104e-08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.50768e-05,0,0,0.0106344
2.00288,2.3,0.0207647,0.00852755,0.012108,0.000127471,1.4281e-06,2.30062e-07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000129129,0,0,0.0207647
2.08996,2.4,0.0387206,0.0151787,0.0231334,0.000399641,7.47807e-06,1.32047e-06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00040844,0,0,0.0387206
2.17704,2.5,0.0692895,0.0259559,0.0421901,0.00110647,3.11076e-05,5.83118e-06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00114341,0,0,0.0692895
2.26413,2.6,0.119413,0.0427635,0.0737589,0.00276209,0.000106983,2.12336e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00289031,0,0,0.119413
2.35121,2.7,0.198845,0.0681058,0.124035,0.00631933,0.000318235,6.65756e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00670414,0,0,0.198845
2.43829,2.8,0.320768,0.105109,0.201228,0.013404,0.000841589,0.000184604,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0144302,0,0,0.320768
2.52537,2.9,0.502444,0.157571,0.315767,0.0266254,0.00201934,0.000461748,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0291065,0,0,0.502444
2.61245,3,0.765736,0.229909,0.480378,0.0499321,0.00445925,0.00105758,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0554489,0,0,0.765736
2.69953,3.1,1.11004,0.317194,0.695971,0.0867457,0.00820774,0.00192171,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0968752,0,0,1.11004
2.78662,3.2,1.57272,0.431474,0.979329,0.143747,0.014709,0.00345723,1.06522e-06,2.23127e-06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.161913,3.29648e-06,0,1.57272
2.8737,3.3,2.1909,0.57762,1.35161,0.229897,0.0256502,0.00609239,1.11277e-05,2.3353e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.261639,3.44807e-05,0,2.1909
2.96078,3.4,3.00185,0.760865,1.83117,0.355774,0.043376,0.0104363,7.03793e-05,0.00015816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.409586,0.000228539,0,3.00185
3.04786,3.5,4.04369,0.985478,2.43514,0.533587,0.0710041,0.0173206,0.000322985,0.00083573,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.621911,0.00115871,0,4.04369
3.13494,3.6,5.35861,1.25591,3.18087,0.77715,0.112529,0.0278308,0.00118171,0.00314733,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.917511,0.00432904,0,5.35861
3.22203,3.7,6.99025,1.57593,4.08392,1.10128,0.172845,0.0433193,0.00360405,0.00933418,1.22557e-05,7.10926e-06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.31744,0.0129576,0,6.99025
3.30911,3.8,8.98163,1.94796,5.15663,1.52126,0.257578,0.0653734,0.00929943,0.02333,0.000113673,7.16291e-05,4.614e-08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.84422,0.0328147,0,8.98163
3.39619,3.9,11.2605,2.33828,6.36246,2.03518,0.360942,0.0902712,0.0209987,0.0511599,0.000619245,0.00061132,5.66807e-07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.48639,0.0733898,0,11.2605
3.48327,4,13.8861,2.77349,7.70183,2.64843,0.490437,0.122493,0.0428006,0.101119,0.00243035,0.00306432,5.22291e-06,2.56323e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.26136,0.149445,0,13.8861
3.57035,4.1,16.9375,3.25536,9.20179,3.3783,0.65475,0.163929,0.0805697,0.184086,0.00757477,0.0108395,2.77358e-05,0.000232322,2.65087e-06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.19698,0.283332,0,16.9375
3.65743,4.2,20.4517,3.7807,10.8581,4.22993,0.859535,0.216354,0.141953,0.313477,0.01989,0.0303904,0.000105791,0.00122841,2.53116e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5.30582,0.507069,0,20.4517
3.74452,4.3,24.4525,4.34191,12.6533,5.20348,1.10873,0.281033,0.236123,0.505023,0.0457533,0.0719858,0.000323547,0.00468001,0.000157784,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6.59325,0.864047,0,24.4525
3.8316,4.4,28.9555,4.93234,14.5645,6.28731,1.40521,0.359169,0.373858,0.774329,0.0931712,0.149863,0.000842725,0.0142052,0.000771644,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8.05169,1.40704,0,28.9555
3.91868,4.5,33.9684,5.54112,16.5594,7.47075,1.74793,0.45086,0.565757,1.13736,0.172597,0.281643,0.00193821,0.0363143,0.00272978,2.85664e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9.66954,2.19834,2.85664e-05,33.9684
4.00576,4.6,39.5017,6.15885,18.6084,8.73141,2.13728,0.55653,0.822059,1.60921,0.296402,0.487675,0.00403241,0.081977,0.00767034,0.000245362,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11.4252,3.30903,0.000245362,39.5017
4.09284,4.7,45.5488,6.77387,20.6718,10.0476,2.56703,0.675313,1.15143,2.20148,0.478034,0.790295,0.00774534,0.164572,0.0182945,0.00131649,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13.29,4.81184,0.00131649,45.5488
4.17992,4.8,50.8447,7.14681,22.2044,11.1008,2.96059,0.787659,1.50946,2.86524,0.717049,1.2011,0.0136308,0.295726,0.0371005,0.00516313,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14.849,6.63931,0.00516313,50.8447
4.26701,4.9,56.746,7.57978,23.7684,12.166,3.37486,0.910479,1.93566,3.63737,1.03117,1.73742,0.0225503,0.496567,0.0691125,0.0166091,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16.4513,8.92985,0.0166091,56.746
4.35409,5,63.1917,8.00751,25.3121,13.2379,3.80855,1.04112,2.43161,4.5223,1.43192,2.41608,0.0354556,0.784622,0.119746,0.0427309,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18.0876,11.7417,0.0427309,63.1917
4.44117,5.1,70.206,8.41949,26.8296,14.3087,4.26005,1.17881,2.99625,5.51564,1.92763,3.24961,0.0533883,1.17766,0.195344,0.093782,9.77982e-06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19.7476,15.1155,0.0937918,70.206
4.52825,5.2,77.7436,8.80616,28.2869,15.3591,4.72292,1.32187,3.62144,6.60355,2.52233,4.2451,0.0773905,1.69082,0.302976,0.182892,0.000107224,1.10189e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21.4039,19.0636,0.183011,77.7436
4.61533,5.3,85.778,9.16185,29.6632,16.3771,5.19074,1.46821,4.30173,7.77328,3.21721,5.40489,0.108416,2.33654,0.448453,0.325447,0.000879255,9.18651e-05,9.8221e-06,1.18644e-08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23.036,23.5905,0.326428,85.778
4.70242,5.4,91.9193,9.28922,30.2081,16.9428,5.55445,1.59768,4.90034,8.68379,3.85235,6.56219,0.146305,3.03111,0.621507,0.524901,0.00401069,0.000442792,7.99369e-05,1.57814e-06,1.34386e-06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24.095,27.7976,0.529434,91.9193
4.7895,5.5,98.793,9.44843,30.8692,17.526,5.92982,1.72979,5.51523,9.631,4.56286,7.84239,0.192083,3.89393,0.835002,0.802077,0.0131859,0.00156384,0.00041184,1.33951e-05,1.17052e-05,2.72147e-07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25.1856,32.4725,0.817238,98.793
4.87658,5.6,106.24,9.59808,31.5394,18.1114,6.30431,1.86132,6.15027,10.6323,5.34994,9.25318,0.245935,4.88686,1.0931,1.17254,0.0347915,0.0044444,0.00156639,6.55556e-05,6.63922e-05,1.37631e-05,2.48926e-06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26.277,37.6115,1.21335,106.24
4.96366,5.7,114.209,9.73544,32.2081,18.6997,6.67511,1.99141,6.79695,11.6616,6.20795,10.7834,0.307858,5.99681,1.39894,1.65078,0.078388,0.0107753,0.00485181,0.000230786,0.000295384,0.000110088,2.08627e-05,2.07923e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27.3662,43.1535,1.74479,114.209
5.05074,5.8,122.496,9.84613,32.8105,19.2618,7.03222,2.11704,7.45069,12.705,7.12131,12.3919,0.377126,7.19478,1.75194,2.24124,0.156324,0.0231257,0.0124861,0.000650593,0.00097809,0.000510004,0.000112567,0.000169864,6.20637e-05,1.23012e-06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28.4111,48.9927,2.43318,122.496
5.13782,5.9,131.021,9.93421,33.3532,19.7958,7.37646,2.23862,8.09208,13.7286,8.06524,14.0609,0.453197,8.45827,2.15109,2.95028,0.283117,0.0443538,0.0274324,0.00155958,0.00258273,0.00170732,0.000465335,0.000881029,0.000500465,1.04132e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,29.4109,55.0093,3.30518,131.021
5.22491,6,138.816,9.93481,33.6069,20.1683,7.66124,2.34521,8.66934,14.614,8.96144,15.6904,0.534136,9.66384,2.57576,3.76531,0.473785,0.0775054,0.052897,0.00329534,0.00577919,0.00454773,0.00148537,0.00343451,0.00233585,5.46315e-05,2.17089e-05,2.85858e-06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30.1748,60.7089,4.3695,138.816
5.31199,6.1,146.175,9.90403,33.7274,20.4327,7.90916,2.44264,9.16506,15.3442,9.77643,17.2458,0.617584,10.9143,3.01177,4.66977,0.743817,0.125838,0.0938128,0.00633076,0.0115253,0.0103013,0.00378044,0.0107403,0.00786599,0.000210338,0.000172255,2.34011e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30.7845,66.0752,5.63324,146.175
5.39907,6.2,153.321,9.82424,33.752,20.6272,8.11605,2.52562,9.60597,16.018,10.5646,18.7611,0.703088,12.1221,3.45936,5.6783,1.10593,0.192595,0.15456,0.0111623,0.0208369,0.0207089,0.00821278,0.0268687,0.021276,0.000660011,0.000801373,0.000119655,2.59675e-07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31.2688,71.2342,7.13139,153.321
5.48615,6.3,160.158,9.71363,33.6635,20.7355,8.27567,2.59326,9.97657,16.6087,11.3039,20.2359,0.78454,13.2833,3.90234,6.77287,1.56962,0.280481,0.239813,0.0182756,0.0350068,0.0379844,0.0158668,0.0574896,0.0489595,0.00168724,0.00270481,0.000450743,2.21167e-06,4.08155e-06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31.6045,76.0952,8.86279,160.158
5.57323,6.4,166.046,9.55747,33.3816,20.714,8.38227,2.64662,10.254,17.0142,11.8983,21.5335,0.863393,14.3039,4.31928,7.90267,2.13546,0.390504,0.352355,0.0282092,0.0552766,0.0638346,0.0279074,0.109304,0.0992962,0.00368043,0.00731524,0.0013921,1.22782e-05,3.3074e-05,8.16426e-06,1.24922e-06,4.72626e-07,0,0,0,0,0,0,0,0,0,0,0,31.7429,80.1865,10.781,166.046
5.66031,6.5,169.068,9.16185,32.3187,20.186,8.26104,2.62444,10.2367,16.9801,12.3273,22.3597,1.0613,15.0766,4.82594,9.1251,2.8287,0.523559,0.495123,0.0450875,0.0871244,0.102089,0.0462332,0.18702,0.180286,0.00751201,0.0167295,0.00347486,7.84005e-05,0.000163035,6.59094e-05,1.04089e-05,4.7371e-06,2.65135e-06,5.5097e-11,2.45516e-16,0,0,0,0,0,0,0,0,31.0715,82.8678,12.9725,169.068
5.7474,6.6,174.328,8.96918,31.9659,20.0955,8.27842,2.64032,10.4049,17.2886,12.6581,23.4294,1.11971,15.9489,5.18425,10.3089,3.60122,0.680385,0.675961,0.0635323,0.12535,0.153367,0.071646,0.302338,0.305392,0.0134406,0.0343851,0.00749384,0.000270729,0.000600413,0.000351045,6.51681e-05,3.76862e-05,2.16825e-05,2.11855e-06,6.77592e-11,1.61457e-16,0,0,0,0,0,0,0,31.0142,86.0339,15.2665,174.328
5.83448,6.7,180.249,8.79354,31.6426,20.0268,8.30163,2.65591,10.5663,17.5868,13.2295,24.4776,1.14959,16.7291,5.60947,11.5894,4.49632,0.86635,0.895422,0.0849886,0.171521,0.220851,0.106151,0.461587,0.48233,0.0224614,0.0641408,0.0144758,0.000745291,0.00178466,0.00143579,0.000290134,0.000174078,0.000106057,2.32074e-05,6.24425e-08,1.81675e-16,0,0,0,0,0,0,0,30.9843,89.3484,17.8475,180.25
5.92156,6.8,186.459,8.64737,31.4018,20.0208,8.35089,2.67789,10.7535,17.9175,13.6043,25.4786,1.26219,17.4496,5.96297,12.8271,5.49137,1.08263,1.15554,0.112831,0.228518,0.304771,0.15148,0.672955,0.720318,0.0355487,0.110113,0.0257437,0.0017441,0.00452971,0.00454423,0.000930442,0.000577041,0.000380338,0.000185424,5.40052e-06,5.7916e-11,1.03429e-16,6.108e-17,5.44935e-17,8.75475e-17,0,0,0,31.0496,92.4288,20.5566,186.459
6.00864,6.9,192.587,8.47653,31.087,19.9705,8.36785,2.68609,10.9058,18.2045,14.1545,26.377,1.27394,18.0212,6.32769,14.0709,6.57562,1.31923,1.44388,0.145072,0.297353,0.408034,0.206017,0.94045,1.02463,0.0533515,0.176518,0.0426383,0.00358939,0.00980429,0.0114901,0.00239241,0.00152539,0.00108947,0.000845446,4.39762e-05,1.59712e-08,3.29076e-11,1.94337e-11,8.66905e-12,1.78524e-16,1.25184e-16,0,0,31.0244,95.2647,23.4096,192.587
6.09572,7,198.875,8.32732,30.8265,19.9539,8.39922,2.69773,11.0654,18.4991,14.4557,27.2094,1.3807,18.5308,6.68246,15.2939,7.68193,1.58565,1.76916,0.17931,0.378291,0.535819,0.275167,1.26909,1.40209,0.0770451,0.268267,0.0668323,0.0060779,0.0185445,0.0248942,0.00528552,0.00346021,0.00265714,0.00276797,0.000207881,2.57189e-06,3.85506e-07,2.17362e-07,1.76614e-11,5.67486e-11,3.97929e-11,1.39382e-16,0,31.0508,97.8234,26.3306,198.875
6.18281,7.1,205.139,8.1764,30.5387,19.9205,8.42545,2.70723,11.2076,18.7571,14.9702,27.9511,1.37826,18.929,7.01204,16.3979,8.81368,1.87273,2.1269,0.220793,0.469746,0.685803,0.354698,1.65644,1.85171,0.10418,0.389041,0.0998504,0.0105262,0.0324339,0.0477167,0.0104047,0.00696838,0.00575342,0.00721043,0.000632513,2.20308e-05,3.87624e-06,3.37034e-06,3.17284e-06,2.39379e-05,1.09372e-08,4.42689e-11,1.85489e-15,31.0532,100.205,29.2112,205.139
6.26989,7.2,211.657,8.02886,30.2453,19.8836,8.45192,2.71654,11.3401,18.9891,15.4324,28.6624,1.48435,19.2362,7.32454,17.5519,9.97086,2.17115,2.50774,0.266806,0.570613,0.857907,0.450093,2.10765,2.37585,0.137629,0.539434,0.141259,0.0146952,0.0535557,0.0841504,0.0187308,0.0126683,0.0106541,0.0161821,0.00174618,0.000111489,3.16155e-05,2.73351e-05,2.55793e-05,0.000191912,5.38688e-06,3.07794e-07,1.80322e-09,31.052,102.469,32.2016,211.657
6.35697,7.3,217.731,7.89304,29.9798,19.8632,8.48696,2.72843,11.477,19.2213,15.6601,29.1836,1.47148,19.4708,7.58753,18.5233,11.1369,2.49335,2.89887,0.317107,0.67989,1.05218,0.559528,2.62099,2.97378,0.181138,0.7249,0.191969,0.0230779,0.083564,0.138276,0.0313229,0.0214283,0.0184284,0.0316693,0.00412191,0.000384128,0.000141533,0.000127314,0.000123002,0.00091989,4.40415e-05,3.71393e-06,2.04603e-07,31.0786,104.072,35.0524,217.731
6.44405,7.4,223.849,7.73728,29.6433,19.7929,8.48882,2.72779,11.5755,19.4029,15.937,29.664,1.49688,19.6303,7.88163,19.581,12.2791,2.81445,3.29871,0.359996,0.783625,1.26441,0.680296,3.18325,3.63019,0.231588,0.948872,0.257571,0.0344279,0.123877,0.213224,0.0493487,0.0341783,0.0302974,0.0576501,0.00859058,0.00110041,0.000468159,0.000423723,0.000431094,0.0032199,0.00021926,3.07134e-05,1.47524e-05,31.0095,105.588,37.9733,223.849
6.53113,7.5,229.097,7.5661,29.2547,19.678,8.4664,2.71806,11.6378,19.5425,16.0172,30.0635,1.58967,19.7077,8.06548,20.3096,13.2723,3.11877,3.68617,0.412555,0.880533,1.48307,0.809709,3.79816,4.34483,0.288709,1.20902,0.335267,0.0492433,0.175913,0.314588,0.0738986,0.0515021,0.0469576,0.097639,0.0158505,0.00231889,0.00124029,0.00113011,0.00121052,0.00905248,0.000787462,0.000130263,0.00014215,30.8625,106.624,40.3868,229.098
6.61821,7.6,234.108,7.37334,28.7566,19.4797,8.40753,2.69803,11.6384,19.5772,16.3064,30.3366,1.54722,19.6686,8.25475,21.1627,14.329,3.41421,4.03554,0.46362,0.990991,1.69664,0.936685,4.44411,5.09579,0.351331,1.49917,0.423901,0.0678402,0.240102,0.443377,0.105465,0.0740731,0.0693129,0.154805,0.0274913,0.00505754,0.00280492,0.00257116,0.00285359,0.0216309,0.00228678,0.000440081,0.000291653,30.5853,107.329,42.9414,234.109
6.7053,7.7,238.296,7.19397,28.2754,19.2825,8.35377,2.6807,11.629,19.5806,16.2315,30.5153,1.63542,19.6282,8.35718,21.6189,15.1329,3.69457,4.41199,0.51562,1.10149,1.92903,1.06149,5.1097,5.88028,0.419513,1.81776,0.523804,0.0905891,0.318318,0.602875,0.144983,0.102797,0.0984806,0.232457,0.0445782,0.00985202,0.00564742,0.00514371,0.00597043,0.0456278,0.00572951,0.00114801,0.00105287,30.3169,107.577,44.8584,238.298
6.79238,7.8,242.643,7.00904,27.7516,19.0515,8.28665,2.65894,11.5933,19.5365,16.4458,30.6088,1.58288,19.5322,8.45841,22.2148,16.0476,3.95645,4.72774,0.565614,1.20862,2.15686,1.21104,5.78417,6.65482,0.482981,2.15664,0.633379,0.110249,0.404921,0.792654,0.192772,0.137766,0.134901,0.3331,0.0683511,0.0175367,0.0103395,0.00945282,0.0112487,0.0856852,0.0122744,0.00264861,0.00316469,29.9971,107.758,46.9466,242.651
6.87946,7.9,246.173,6.80423,27.1762,18.7768,8.18877,2.6258,11.5245,19.4611,16.6025,30.7495,1.66461,19.3562,8.52873,22.515,16.6176,4.19058,5.00433,0.603017,1.29902,2.38344,1.3321,6.46231,7.4443,0.539726,2.50568,0.750382,0.139805,0.500429,1.0093,0.248667,0.176748,0.173592,0.456167,0.0956577,0.0288856,0.0171381,0.0158594,0.0193992,0.147568,0.0234,0.00538428,0.00825113,29.5914,107.887,48.3276,246.193
6.96654,8,247.557,6.56814,26.4188,18.3822,8.0583,2.5851,11.3903,19.3969,16.5266,30.4566,1.59722,18.9374,8.52164,22.6496,16.9596,4.39296,5.214,0.657185,1.38024,2.58692,1.46047,7.07841,8.11554,0.613359,2.83642,0.851298,0.162011,0.607522,1.23597,0.31204,0.221744,0.217978,0.598804,0.134492,0.0448209,0.0271307,0.0251285,0.0311885,0.234169,0.0396126,0.00994278,0.0190417,29.0256,106.827,49.2161,247.604
7.05362,8.1,247.424,6.32006,25.4886,17.8744,7.91193,2.54156,11.1986,19.114,16.5521,29.8584,1.66375,18.4075,8.52404,22.642,17.0677,4.55931,5.38733,0.688573,1.45184,2.76192,1.57828,7.51454,8.63951,0.686466,3.13014,0.962414,0.197685,0.722144,1.45894,0.381394,0.270192,0.272213,0.757675,0.182557,0.0632609,0.0399698,0.0377084,0.0473723,0.347091,0.0634413,0.0170547,0.0398131,28.3279,105.319,49.6563,247.523
7.1407,8.2,246.231,6.09473,24.6393,17.4063,7.77192,2.49797,11.0176,18.7188,16.2785,29.1701,1.66604,17.9778,8.46898,22.1579,17.0357,4.69582,5.53332,0.726165,1.49763,2.92434,1.69102,7.82776,9.16732,0.759641,3.39606,1.0853,0.22407,0.843508,1.70524,0.457012,0.323726,0.332104,0.933233,0.24063,0.0897071,0.0572626,0.0540222,0.0687372,0.494609,0.0966189,0.0273901,0.0767097,27.6762,103.298,49.4228,246.419
7.22779,8.3,245.825,5.88607,23.8801,16.9816,7.62961,2.45165,10.8479,18.0789,15.7184,28.6215,1.65112,17.6255,8.45807,22.1868,17.3223,4.83012,5.65814,0.757494,1.55057,3.05845,1.79333,8.16208,9.66634,0.827814,3.66519,1.20617,0.264355,0.961067,1.97458,0.538308,0.38034,0.397006,1.12995,0.301528,0.116748,0.0789463,0.074462,0.0958801,0.679947,0.139136,0.0397273,0.137901,27.0629,101.001,49.9973,246.16
7.31487,8.4,245.791,5.69687,23.2139,16.6104,7.50218,2.40976,10.6993,17.8151,15.5352,28.2164,1.63729,17.3056,8.40237,21.8409,17.2926,4.92979,5.76657,0.785312,1.59993,3.20138,1.87574,8.50332,10.1527,0.893736,3.93384,1.32673,0.305199,1.09108,2.24976,0.623562,0.439971,0.466874,1.34838,0.378086,0.155721,0.105563,0.0995363,0.128726,0.903892,0.195282,0.0560003,0.0960379,26.5224,99.6112,49.8299,246.351
7.40195,8.5,246.034,5.50666,22.5568,16.2383,7.36668,2.36523,10.5447,17.5599,15.038,27.7599,1.62173,16.9447,8.33904,21.9502,17.5054,5.02004,5.8128,0.810423,1.63582,3.33001,1.97436,8.83964,10.5531,0.955624,4.19328,1.44185,0.347739,1.21345,2.52876,0.709159,0.494717,0.529034,1.58397,0.463895,0.201344,0.136668,0.127805,0.167788,1.16793,0.263774,0.078325,0.155946,25.9702,97.808,50.2884,246.923
7.48903,8.6,246.61,5.32666,21.9386,15.8857,7.23276,2.3214,10.3949,17.5063,15.2736,27.4856,1.55192,16.61,8.29499,21.6744,17.3705,5.093,5.84957,0.825439,1.66578,3.44164,2.03835,9.15964,10.9188,0.995295,4.44036,1.55164,0.362645,1.31465,2.80567,0.799527,0.558094,0.601722,1.80823,0.543968,0.253808,0.17241,0.161172,0.213965,1.46992,0.345616,0.105954,0.245668,25.4399,97.1173,49.9875,247.961
7.57611,8.7,247.648,5.1542,21.3468,15.5456,7.10011,2.2776,10.2468,17.4334,15.4504,27.3016,1.64306,16.3238,8.22075,21.5453,17.3669,5.14686,5.86964,0.85072,1.68695,3.53842,2.10372,9.43316,11.2141,1.04768,4.64694,1.62886,0.404698,1.42973,3.06187,0.883262,0.609756,0.672197,2.07509,0.642887,0.312527,0.209916,0.196984,0.26623,1.80464,0.440837,0.139086,0.375177,24.9233,96.6198,49.9287,249.627
7.6632,8.8,246.687,4.96614,20.7163,15.1674,6.93559,2.22134,10.0679,16.8324,14.8918,26.996,1.61758,15.9722,8.1186,21.4516,17.3064,5.17336,5.83753,0.856229,1.69114,3.6155,2.15479,9.69568,11.4443,1.09173,4.85172,1.71902,0.444511,1.52775,3.32657,0.967583,0.658889,0.717083,2.30648,0.729879,0.37438,0.251048,0.23533,0.323191,2.16131,0.540624,0.176482,0.554038,24.3243,94.4965,49.7689,249.486
7.75028,8.9,246.457,4.79071,20.12,14.8095,6.78428,2.1704,9.90283,16.5853,14.7063,26.7033,1.59505,15.6572,8.08238,21.3149,17.1744,5.1959,5.79371,0.871579,1.68979,3.68339,2.20031,9.9129,11.6115,1.13177,5.03589,1.80233,0.484153,1.61776,3.53284,1.04359,0.702855,0.778192,2.56,0.836999,0.414272,0.291449,0.275865,0.3856,2.54057,0.654905,0.218775,0.793274,23.7642,93.2324,49.4789,250.304
7.83736,9,247.377,4.64069,19.6197,14.5181,6.66394,2.12957,9.77884,16.406,14.5782,26.5008,1.57769,15.3708,8.01977,21.5342,17.2386,5.23035,5.75691,0.878433,1.69126,3.75406,2.24767,10.1388,11.7475,1.1718,5.2189,1.88529,0.521371,1.70172,3.74284,1.12076,0.740733,0.837538,2.82405,0.927273,0.479327,0.337179,0.318688,0.453771,2.93786,0.772629,0.258579,1.10501,23.3116,92.2321,49.7601,252.55
7.92444,9.1,246.207,4.48233,19.067,14.1821,6.52343,2.08346,9.62089,16.1612,14.0426,26.0924,1.5571,15.0407,7.98424,21.2396,16.8776,5.23307,5.69347,0.88588,1.6785,3.79859,2.27906,10.3048,11.8212,1.20335,5.3619,1.95232,0.557677,1.77062,3.91258,1.19253,0.781851,0.891184,3.06389,1.05486,0.535566,0.375984,0.357205,0.519356,3.32396,0.89984,0.308194,1.49529,22.789,90.4992,49.0438,252.984
8.01152,9.2,245.039,4.32192,18.4964,13.8272,6.37284,2.03425,9.44441,16.0846,14.2593,25.7699,1.47364,14.6945,7.87536,21.3296,16.8422,5.22018,5.61208,0.891085,1.66818,3.81854,2.30037,10.4186,11.8183,1.22991,5.47253,2.00853,0.588978,1.82763,4.0491,1.25067,0.807211,0.938694,3.2875,1.14186,0.618846,0.42806,0.403257,0.589138,3.69341,1.01942,0.35169,0.759254,22.2343,89.6017,49.004,253.703
8.0986,9.3,244.233,4.15784,17.9034,13.4488,6.2077,1.98006,9.2459,15.9459,14.3819,25.4796,1.55896,14.3646,7.74602,21.0935,16.5885,5.187,5.52137,0.891581,1.6529,3.82798,2.30311,10.4802,11.7752,1.24745,5.55291,2.04946,0.59635,1.85398,4.15831,1.30283,0.834664,0.978142,3.48702,1.25423,0.667645,0.46243,0.437429,0.655786,4.06217,1.14665,0.39435,1.34878,21.6366,88.723,48.3904,255.049
8.18569,9.4,241.656,3.98834,17.2769,13.038,6.02495,1.91998,9.02046,15.2254,13.7041,24.9939,1.52743,14.014,7.64861,20.7978,16.3149,5.12954,5.40512,0.888635,1.62971,3.82011,2.29907,10.4733,11.6711,1.25902,5.59577,2.07807,0.64311,1.8821,4.22605,1.33813,0.844793,1.00947,3.65483,1.33153,0.750261,0.500992,0.468096,0.714681,4.3779,1.26674,0.445553,2.45805,20.9829,86.1339,47.6473,254.95
8.27277,9.5,238.885,3.84462,16.752,12.6973,5.87267,1.86946,8.83944,14.952,13.486,24.6235,1.501,13.7158,7.52586,20.5855,16.1206,5.09042,5.31363,0.884918,1.61221,3.81986,2.30027,10.5002,11.6085,1.26178,5.6471,2.10466,0.648735,1.91007,4.31982,1.37633,0.85804,1.02114,3.79396,1.39284,0.787959,0.537421,0.505914,0.781272,4.71618,1.3892,0.496323,1.82011,20.4394,84.6436,47.1102,254.969
8.35985,9.6,236.368,3.72149,16.3077,12.4127,5.74477,1.8266,8.69393,14.7395,13.3197,24.3441,1.47868,13.482,7.42931,20.1644,15.8112,5.0625,5.24301,0.886699,1.59722,3.82834,2.30367,10.5357,11.5804,1.27336,5.69558,2.11996,0.673318,1.93514,4.39372,1.40861,0.869983,1.04782,3.95334,1.47408,0.822761,0.566724,0.533353,0.83835,5.01913,1.51161,0.54835,1.16914,19.9841,83.4872,46.2811,255.755
8.44693,9.7,234.395,3.578,15.7659,12.0485,5.57831,1.77155,8.48905,14.4264,12.6902,23.7751,1.44834,13.1677,7.3388,19.9625,15.5719,4.99647,5.13547,0.879357,1.57405,3.80606,2.29,10.4838,11.4574,1.27671,5.70102,2.13115,0.691601,1.94308,4.43415,1.42494,0.868734,1.06554,4.06714,1.54095,0.89406,0.600617,0.562697,0.893641,5.27631,1.59731,0.594483,2.59595,19.3983,81.3356,45.6663,257.135
8.53401,9.8,231.574,3.44388,15.256,11.7038,5.41972,1.71899,8.29282,14.3382,12.9012,23.369,1.35328,12.8752,7.20007,19.9961,15.5654,4.93097,5.03338,0.871968,1.54889,3.78324,2.27398,10.4268,11.3427,1.27713,5.70113,2.13673,0.709852,1.94492,4.46575,1.43991,0.871999,1.07814,4.16563,1.59879,0.911136,0.617596,0.579564,0.935262,5.50215,1.69533,0.617556,1.67939,18.8425,80.3299,45.5258,258.092
8.6211,9.9,231.802,3.32511,14.8056,11.4006,5.27965,1.67241,8.12248,14.2602,13.0806,23.1248,1.44354,12.6565,7.08011,19.7731,15.3989,4.87545,4.94587,0.865888,1.52737,3.76378,2.26219,10.3839,11.2486,1.27926,5.70479,2.14409,0.724779,1.94794,4.4963,1.45021,0.86826,1.09065,4.25524,1.66215,0.985555,0.646836,0.602982,0.978268,5.7041,1.78699,0.679789,3.49716,18.3526,79.7683,44.9933,262.379
8.70818,10,226.825,3.2044,14.3383,11.0798,5.13151,1.62339,7.93706,13.5846,12.4303,22.7082,1.4148,12.4174,7.00258,19.5095,15.2269,4.81254,4.84969,0.858001,1.50372,3.73392,2.24136,10.3123,11.1306,1.27668,5.68954,2.14227,0.739183,1.94185,4.50823,1.45575,0.866462,1.09673,4.3224,1.69672,0.989636,0.657403,0.613391,1.01305,5.88515,1.86537,0.696943,2.31755,17.8347,77.4949,44.3986,261.686
8.79526,10.1,231.684,3.1179,14.1027,10.8967,5.02278,1.58658,7.82605,13.521,12.3738,23.3634,1.3931,12.3711,6.91843,19.9505,15.4362,4.78273,4.80011,0.854227,1.49055,3.73707,2.23233,10.8402,11.8839,1.2795,5.81482,2.14987,0.752028,1.9474,4.60565,1.46335,0.864676,1.10845,4.46481,1.7588,1.06166,0.68164,0.628912,1.04362,6.3781,1.94956,0.733507,4.49638,17.506,77.7668,44.9696,272.875
8.88234,10.2,227.399,3.02247,13.7308,10.6454,4.9077,1.54825,7.68691,13.3079,12.2023,23.0188,1.3705,12.1714,6.81879,19.4333,15.1062,4.74006,4.73943,0.856372,1.47927,3.71976,2.21895,10.7796,11.774,1.27612,5.81194,2.15135,0.754738,1.93706,4.62172,1.46893,0.863158,1.11359,4.50904,1.75802,1.05636,0.689909,0.640522,1.07672,6.53197,2.01696,0.766864,3.0761,17.1014,76.5766,44.019,273.663
8.96942,10.3,222.466,2.91018,13.2769,10.3263,4.7609,1.5001,7.49587,13.228,12.0321,22.4177,1.26978,11.8951,6.73067,19.1862,14.8741,4.66514,4.64538,0.847805,1.46296,3.68309,2.19073,10.6398,11.583,1.26581,5.76237,2.13376,0.765598,1.92084,4.59495,1.45952,0.851017,1.11281,4.54375,1.82699,1.11697,0.696707,0.642154,1.09136,6.59444,2.0639,0.7915,1.60998,16.5873,75.0692,43.3709,273.909
9.0565,10.4,220.83,2.78397,12.7533,9.94919,4.58709,1.44356,7.25839,13.0314,12.1153,21.9051,1.33126,11.5511,6.55184,19.0806,14.7906,4.56113,4.52592,0.83511,1.43449,3.62595,2.15488,10.4286,11.3193,1.24921,5.67341,2.1106,0.772531,1.89397,4.54319,1.43898,0.833199,1.09721,4.5128,1.79405,1.09301,0.697791,0.643842,1.09986,6.59968,2.07543,0.810558,3.87299,15.9798,73.7445,42.9582,276.941
9.14359,10.5,214.529,2.67049,12.2821,9.6094,4.4304,1.39256,7.04485,12.6786,11.8149,21.3294,1.32359,11.2731,6.39096,18.6892,14.5259,4.46847,4.42054,0.823983,1.40961,3.57057,2.12552,10.2492,11.0875,1.23445,5.59504,2.08407,0.780397,1.86906,4.48984,1.42045,0.820908,1.0906,4.49845,1.80253,1.08978,0.693595,0.639351,1.10157,6.60098,2.10862,0.825753,2.17306,15.4323,71.8555,42.1041,275.719
9.23067,10.6,211.139,2.55312,11.7876,9.24805,4.26371,1.33857,6.81243,11.8881,11.0532,20.6943,1.28837,10.9639,6.26849,18.2444,14.2283,4.36556,4.30573,0.810902,1.38214,3.50378,2.08418,10.0425,10.8342,1.22557,5.49622,2.05121,0.779391,1.83978,4.42195,1.39469,0.802394,1.08176,4.4608,1.83927,1.14195,0.694,0.636193,1.10025,6.56023,2.1046,0.837798,4.70879,14.8503,68.9688,41.144,277.11
9.31775,10.7,207.697,2.48931,11.5361,9.07456,4.18355,1.31188,6.71599,11.7422,10.9369,20.4654,1.271,10.8358,6.19768,18.1228,14.1804,4.34063,4.27181,0.810216,1.37425,3.49664,2.07699,10.0202,10.7863,1.2339,5.50346,2.04784,0.782218,1.83306,4.43383,1.39567,0.800718,1.08488,4.49568,1.82526,1.11767,0.696376,0.638154,1.11198,6.63024,2.13957,0.84452,2.84119,14.57,68.165,40.9156,279.766
9.40483,10.8,205.679,2.39911,11.1587,8.79949,4.0566,1.27064,6.54239,11.4601,10.2797,19.8711,1.24365,10.5883,6.06422,17.456,13.749,4.26825,4.19271,0.803743,1.35841,3.45204,2.04862,9.88212,10.6144,1.22356,5.45093,2.03766,0.782269,1.80896,4.39029,1.37841,0.787903,1.08025,4.47703,1.87013,1.17105,0.697234,0.634318,1.10878,6.60489,2.14894,0.854789,5.61266,14.1267,66.0494,39.666,283.253
9.49191,10.9,200.655,2.30521,10.7605,8.50504,3.92057,1.22671,6.35148,11.3789,10.5106,19.3777,1.13819,10.3142,5.96852,17.5328,13.7353,4.18404,4.10378,0.794191,1.34173,3.40095,2.01467,9.71392,10.4114,1.21055,5.37294,2.02443,0.796358,1.78033,4.33157,1.35614,0.773014,1.06733,4.44307,1.82761,1.13253,0.689812,0.628235,1.10351,6.56008,2.14582,0.862854,3.55888,13.6523,65.0395,39.5559,283.263
9.57899,11,199.227,2.20149,10.3128,8.16879,3.76513,1.17682,6.12624,11.2009,10.6108,18.887,1.22853,10.0151,5.79166,17.0852,13.4304,4.07738,3.99462,0.781393,1.31707,3.33384,1.97401,9.49095,10.1509,1.19272,5.26412,1.98958,0.794843,1.74334,4.2467,1.32525,0.754182,1.05041,4.37434,1.86157,1.17855,0.68071,0.616417,1.08682,6.45863,2.12865,0.864373,6.49452,13.1107,63.8602,38.5876,286.581
9.66608,11.1,191.326,2.10861,9.91247,7.86781,3.62577,1.13205,5.92464,10.4362,9.86172,18.3298,1.19687,9.72275,5.63298,16.6866,13.1612,3.98231,3.89886,0.770264,1.2957,3.27219,1.93989,9.30632,9.92677,1.17715,5.16945,1.95901,0.810332,1.7222,4.17265,1.29773,0.737522,1.03552,4.31463,1.79865,1.13433,0.673136,0.608713,1.07414,6.37363,2.10631,0.86722,4.30232,12.6256,61.105,37.7289,283.264
9.75316,11.2,185.215,2.02785,9.56597,7.60782,3.50511,1.09325,5.75139,10.1499,9.61327,17.8563,1.16899,9.4998,5.54887,16.3524,12.9474,3.90396,3.81898,0.761284,1.2783,3.22218,1.90915,9.155,9.74721,1.17048,5.09337,1.93408,0.810667,1.70837,4.12924,1.27632,0.723613,1.02324,4.2678,1.78372,1.12852,0.665063,0.600126,1.06194,6.30902,2.10042,0.869304,2.07545,12.2062,59.5885,37.0228,282.219
9.84024,11.3,183.821,1.94055,9.18555,7.31902,3.37112,1.0504,5.55415,9.81999,9.32447,17.3072,1.138,9.21012,5.39033,15.9521,12.6792,3.80996,3.72531,0.750107,1.25718,3.15855,1.8709,8.96227,9.52146,1.16164,5.00026,1.90218,0.809863,1.67727,4.05324,1.24962,0.713443,1.05646,4.3,1.88256,1.17716,0.657935,0.591019,1.04579,6.20913,2.07277,0.869188,5.0931,11.7405,57.7442,36.1665,285.107
9.92732,11.4,178.857,1.89339,8.99318,7.17816,3.30524,1.02885,5.46739,9.68441,8.77691,16.9587,1.12161,9.09326,5.37221,15.5374,12.3728,3.7834,3.69756,0.749181,1.25322,3.14758,1.86234,8.9379,9.47809,1.16049,4.99686,1.90525,0.812458,1.67057,4.04946,1.24441,0.709267,1.03113,4.27189,1.88684,1.18088,0.657007,0.589495,1.04595,6.22325,2.08078,0.87105,2.77682,11.5123,56.4745,35.3912,286.271
10.0144,11.5,177.665,1.79509,8.55537,6.83976,3.14845,0.979108,5.22801,9.51581,8.92916,16.2984,1.00508,8.73466,5.17692,15.379,12.2448,3.65985,3.57708,0.734222,1.22781,3.06114,1.81063,8.66803,9.17064,1.13935,4.85712,1.87133,0.820355,1.62856,3.93768,1.20514,0.688121,1.01209,4.13752,1.81731,1.16986,0.641815,0.573773,1.01808,6.06124,2.03999,0.864685,6.44189,10.9673,54.888,34.8608,288.217
10.1015,11.6,174.423,1.73698,8.30683,6.65104,3.0605,0.95084,5.10097,9.50965,9.18395,16.0947,1.10895,8.57926,5.07316,15.1447,12.1052,3.60558,3.5237,0.728915,1.21767,3.03037,1.79327,8.57483,9.05148,1.13213,4.80857,1.8559,0.821817,1.61161,3.9011,1.18963,0.679145,1.00498,4.10921,1.80988,1.16864,0.636427,0.56785,1.00891,6.01685,2.02779,0.867919,5.07191,10.6624,54.6507,34.3792,289.586
10.1886,11.7,166.554,1.65,7.91809,6.34908,2.92029,0.906423,4.885,8.70056,8.38512,15.4727,1.0749,8.27944,4.9453,14.6725,11.7623,3.49062,3.41495,0.715304,1.19386,2.95095,1.74705,8.33268,8.77419,1.11284,4.68062,1.81704,0.832298,1.58205,3.79823,1.15344,0.65998,0.987697,4.01618,1.73778,1.12045,0.622373,0.553309,0.98249,5.86553,1.98479,0.857645,3.64826,10.1758,51.743,33.3403,284.43
10.2756,11.8,162.734,1.59565,7.68378,6.16996,2.83646,0.879586,4.76163,8.4963,8.20435,15.1353,1.05311,8.09883,4.84244,14.4345,11.6182,3.43407,3.35982,0.709739,1.18361,2.91701,1.7263,8.23416,8.65322,1.10909,4.62916,1.80084,0.834076,1.57468,3.77102,1.13955,0.662582,1.05567,4.08867,1.85411,1.18269,0.619667,0.546992,0.971907,5.81336,1.9698,0.854903,2.22764,9.886,50.592,32.8466,285.433
10.3627,11.9,163.965,1.54235,7.45272,5.99253,2.75341,0.853061,4.6382,8.29094,8.02195,14.7955,1.03137,7.91683,4.73857,13.7949,11.2065,3.37865,3.30456,0.702033,1.17153,2.88163,1.70486,8.13141,8.52674,1.10622,4.57954,1.7839,0.835556,1.55837,3.73066,1.12318,0.646759,1.02195,4.05847,1.849,1.18288,0.617504,0.544671,0.964368,5.76352,1.95311,0.851705,6.96306,9.599,49.4333,31.6846,290.859
10.4498,12,159.233,1.46835,7.11994,5.73207,2.63232,0.814814,5.05792,8.45843,7.80876,14.189,1.001,7.62797,4.62718,13.4405,10.893,3.27901,3.20912,0.690644,1.15039,2.80941,1.66354,7.91257,8.27719,1.09008,4.46917,1.7553,0.834375,1.52576,3.63882,1.09096,0.630209,0.977992,3.93458,1.82904,1.1761,0.605637,0.532152,0.940603,5.6335,1.93032,0.851661,5.9238,9.1792,48.7703,30.8217,288.125
10.5369,12.1,155.359,1.42267,6.92268,5.57978,2.56101,0.792044,4.34241,8.03207,7.64889,13.8397,0.897928,7.47047,4.53541,13.6162,11.0214,3.23178,3.16407,0.686529,1.14294,2.78024,1.64545,7.8285,8.17181,1.08452,4.42502,1.74896,0.844114,1.51228,3.60601,1.07722,0.622923,0.972806,3.86492,1.77144,1.17685,0.601375,0.527247,0.931759,5.59158,1.9185,0.860214,4.88755,8.93283,46.7669,31.0335,288.088
10.624,12.2,150.053,1.34899,6.58739,5.31534,2.43826,0.753426,4.14718,7.90096,7.78767,13.4062,0.992257,7.19316,4.36891,13.1692,10.7001,3.12484,3.06186,0.673851,1.12139,2.70268,1.60133,7.58752,7.89966,1.06643,4.29728,1.71185,0.851998,1.48285,3.50323,1.04196,0.605033,0.957026,3.76968,1.74614,1.16824,0.588131,0.513411,0.905007,5.43684,1.87458,0.850698,3.80093,8.50703,45.7963,30.056,284.043
10.7111,12.3,145.406,1.30399,6.39049,5.1622,2.36647,0.730625,4.0372,7.2675,7.14211,13.0967,0.971874,7.051,4.31917,12.9436,10.5382,3.06819,3.01237,0.668835,1.11261,2.66905,1.5816,7.48805,7.78004,1.06087,4.24432,1.6966,0.854408,1.47462,3.46754,1.0262,0.59689,0.950781,3.73498,1.68059,1.1199,0.582937,0.507632,0.894114,5.38207,1.8588,0.848608,2.72211,8.2593,43.8855,29.5623,282.789
10.7981,12.4,140.094,1.24007,6.09927,4.93224,2.25949,0.697017,3.86593,6.97112,6.8713,12.5901,0.943438,6.78385,4.17066,12.5475,10.255,2.97025,2.91406,0.655001,1.09385,2.60047,1.54274,7.27395,7.53889,1.04763,4.13333,1.66396,0.854206,1.44436,3.38185,0.996876,0.584893,0.985393,3.7645,1.79414,1.17582,0.575039,0.49657,0.870359,5.24536,1.81986,0.840351,1.60349,7.88875,42.1964,28.6868,279.083
10.8852,12.5,142.091,1.19798,5.91365,4.78709,2.19145,0.675477,3.76004,6.79152,6.70722,12.2882,0.923739,6.62152,4.07657,11.8933,9.82724,2.9189,2.86569,0.647927,1.08107,2.56597,1.52275,7.1704,7.4157,1.04159,4.0816,1.65157,0.856133,1.42966,3.34023,0.98097,0.576986,0.946539,3.68428,1.79006,1.17715,0.570369,0.492223,0.861405,5.1949,1.80797,0.837844,6.92644,7.65401,41.1688,27.5051,283.805
10.9723,12.6,138.925,1.15962,5.74528,4.6554,2.12976,0.65593,3.66393,6.87618,6.63292,11.8967,0.817838,6.47403,4.03439,11.75,9.68261,2.87293,2.82247,0.644219,1.07081,2.53247,1.50507,7.07982,7.30696,1.03647,4.03404,1.63843,0.858138,1.41685,3.30425,0.966934,0.570036,0.941979,3.6557,1.78727,1.17899,0.566443,0.487556,0.852027,5.14759,1.80007,0.842196,5.83116,7.44109,40.3959,27.128,283.006
11.0594,12.7,134.984,1.10245,5.48216,4.44642,2.03283,0.625586,3.50624,6.81138,6.83358,11.5673,0.898178,6.22446,3.89478,11.7776,9.67618,2.78383,2.73787,0.634285,1.05416,2.46411,1.46592,6.87045,7.07361,1.02215,3.92396,1.61222,0.863128,1.3877,3.21546,0.937002,0.555281,0.92958,3.52287,1.70679,1.17383,0.555866,0.476286,0.829349,5.0142,1.76324,0.841677,4.68958,7.10483,39.736,26.9755,279.016
11.1465,12.8,130.871,1.06036,5.29235,4.29645,1.96299,0.603632,3.3942,6.61183,6.6477,11.2366,0.896559,6.07041,3.79338,11.5242,9.50299,2.72443,2.68175,0.628452,1.04431,2.42259,1.4409,6.73808,6.92386,1.01383,3.85495,1.59374,0.871285,1.37392,3.16128,0.917782,0.545836,0.922323,3.47378,1.63151,1.11924,0.549697,0.469441,0.81547,4.93675,1.74202,0.838903,3.54094,6.86307,38.6507,26.4334,276.334
11.2335,12.9,124.936,1.01012,5.06048,4.11213,1.87747,0.576906,3.25406,5.91466,5.93862,10.8123,0.872073,5.86841,3.70935,11.1876,9.22996,2.63129,2.59864,0.619616,1.02953,2.36348,1.40822,6.5465,6.71141,0.999985,3.75517,1.5665,0.872344,1.35317,3.08432,0.890843,0.532629,0.911233,3.39871,1.61169,1.11314,0.54027,0.459376,0.795052,4.81623,1.70886,0.832931,2.3603,6.56651,36.3694,25.6475,270.909
11.3206,13,121.964,0.976932,4.91264,3.99574,1.82305,0.559775,3.16696,5.76483,5.79859,10.5567,0.854701,5.73062,3.6279,10.9941,9.10461,2.58751,2.55062,0.61132,1.02287,2.3332,1.39134,6.45108,6.60065,0.994659,3.70499,1.55351,0.875159,1.34109,3.04976,0.878086,0.528556,0.956143,3.48747,1.7516,1.178,0.538265,0.455887,0.78588,4.7645,1.69478,0.831855,1.17831,6.37857,35.5003,25.2368,270.435
11.4077,13.1,122.264,0.928257,4.68547,3.81453,1.73916,0.533629,3.02781,5.51944,5.10759,9.9846,0.830514,5.50592,3.5017,10.1901,8.54808,2.50651,2.474,0.598517,1.00083,2.27146,1.35742,6.25028,6.38036,0.982311,3.60067,1.5253,0.875589,1.31467,2.96466,0.850035,0.515062,0.907007,3.35728,1.73702,1.17501,0.528857,0.445656,0.765183,4.63938,1.66253,0.825125,6.83595,6.08732,33.4776,23.7187,269.409
11.4948,13.2,120.382,0.897721,4.54848,3.70645,1.6888,0.517806,2.94624,5.6255,5.50792,9.76669,0.724571,5.37529,3.46429,10.472,8.68343,2.46424,2.43453,0.595445,0.989137,2.23593,1.34095,6.15537,6.27182,0.977895,3.55182,1.51431,0.879457,1.30277,2.92665,0.836274,0.508585,0.903096,3.26875,1.66584,1.17776,0.525347,0.441342,0.755831,4.58774,1.65291,0.828103,5.66471,5.91306,33.4105,24.0542,268.826
11.5819,13.3,116.319,0.851962,4.33305,3.53415,1.60927,0.493075,2.81319,5.59996,5.74107,9.49883,0.825384,5.17834,3.34185,10.1392,8.4358,2.38482,2.35935,0.586994,0.975145,2.16995,1.3034,5.95449,6.05327,0.965432,3.44739,1.48707,0.880391,1.27643,2.84105,0.808417,0.495215,0.892239,3.18836,1.64825,1.17421,0.515885,0.431122,0.734529,4.45742,1.61835,0.82679,4.44767,5.63649,32.9986,23.3191,263.454
11.669,13.4,111.678,0.821057,4.19182,3.42215,1.55727,0.476812,2.72758,4.9924,5.11143,9.2388,0.808063,5.03905,3.25979,9.93672,8.25611,2.32817,2.31503,0.582991,0.968501,2.13626,1.28135,5.83516,5.92599,0.959556,3.38925,1.47291,0.886148,1.26435,2.79491,0.792495,0.487695,0.887057,3.14643,1.56739,1.11434,0.511346,0.425843,0.723189,4.39181,1.6016,0.825743,3.2238,5.45624,31.1771,22.836,259.398
11.756,13.5,108.438,0.79308,4.06455,3.32138,1.51044,0.462159,2.65048,4.85753,4.98295,9.00484,0.791959,4.93296,3.22236,9.75518,8.13481,2.2777,2.26569,0.579607,0.96289,2.10645,1.26538,5.73546,5.8126,0.950679,3.33781,1.46059,0.889566,1.25508,2.75817,0.778743,0.481065,0.882644,3.1098,1.55949,1.11423,0.507503,0.421291,0.713304,4.3354,1.58735,0.825222,1.97995,5.29398,30.4431,22.4334,257.486
11.8431,13.6,110.66,0.747333,3.8449,3.14484,1.42924,0.437017,2.51247,4.61038,4.74996,8.56858,0.76787,4.70463,3.09444,9.39548,7.86097,2.19245,2.17519,0.563782,0.946834,2.03886,1.22905,5.50776,5.56871,0.933604,3.21652,1.42944,0.890133,1.22625,2.6603,0.748023,0.467805,0.920503,3.14742,1.69412,1.17316,0.496916,0.409851,0.689183,4.18319,1.54678,0.817776,7.91784,5.0111,29.0083,21.6241,257.54
11.9302,13.7,106.407,0.724444,3.74143,3.0632,1.39129,0.425125,2.44986,4.50099,4.18233,8.23349,0.75386,4.60158,3.06783,8.83186,7.44474,2.15975,2.14501,0.55618,0.933447,2.01543,1.21661,5.42865,5.48023,0.931315,3.17387,1.41706,0.893519,1.21754,2.62901,0.736819,0.462809,0.874642,3.0622,1.69551,1.17796,0.494709,0.406744,0.681817,4.14167,1.53773,0.818047,6.70653,4.87961,27.7899,20.5814,254.226
12.0173,13.8,104.382,0.698689,3.62225,2.96856,1.34752,0.411474,2.37674,4.61742,4.58791,8.03046,0.648061,4.48015,2.99489,9.05525,7.5869,2.11863,2.1067,0.55335,0.919397,1.9759,1.20018,5.32413,5.36592,0.927031,3.12094,1.40244,0.893643,1.20535,2.58612,0.722281,0.456181,0.870749,2.96067,1.61486,1.18099,0.491024,0.402196,0.671537,4.08015,1.52452,0.818948,5.46175,4.72755,27.7356,20.8675,251.85
12.1044,13.9,101.986,0.673079,3.50284,2.87358,1.30366,0.397816,2.30312,4.6959,4.91379,7.94489,0.754379,4.37533,2.92138,8.87413,7.45992,2.07631,2.06722,0.550235,0.914322,1.93635,1.17062,5.20896,5.24729,0.922289,3.06546,1.38999,0.896879,1.19248,2.5409,0.70716,0.44926,0.866442,2.91945,1.60926,1.18343,0.487012,0.397355,0.660673,4.01444,1.5088,0.820899,4.18899,4.57506,27.9088,20.4776,249.46
12.1914,14,95.7918,0.633342,3.30866,2.71704,1.23196,0.375688,2.17985,4.01877,4.21806,7.54896,0.732185,4.18619,2.83906,8.54571,7.15623,1.98592,1.99257,0.541834,0.900559,1.87381,1.13757,4.98635,5.01352,0.909542,2.95359,1.36172,0.896943,1.16398,2.44627,0.677756,0.435378,0.855112,2.82954,1.50666,1.11042,0.476883,0.386442,0.63748,3.86573,1.47051,0.814729,2.86925,4.32469,25.7231,19.6804,240.206
12.2785,14.1,91.6093,0.598616,3.13922,2.58055,1.16944,0.35639,2.07235,3.82475,4.03289,7.20336,0.712173,4.00479,2.73562,8.25976,6.93892,1.90716,1.91555,0.534806,0.889063,1.81974,1.10912,4.79772,4.81006,0.891864,2.85647,1.33754,0.898952,1.14139,2.36477,0.652179,0.435185,0.940924,2.8844,1.64852,1.16754,0.467183,0.377077,0.617432,3.73728,1.43773,0.809855,1.53094,4.10638,24.5859,19.0214,233.573
12.3656,14.2,94.7777,0.57369,3.02,2.48513,1.12561,0.342809,1.99758,3.69067,3.90338,6.96519,0.696582,3.87803,2.66056,7.58535,6.48207,1.86281,1.86179,0.515453,0.86979,1.78491,1.09104,4.67449,4.67836,0.880256,2.78732,1.3228,0.902049,1.12753,2.31275,0.635383,0.41586,0.890624,2.84169,1.64558,1.17081,0.461671,0.370383,0.603917,3.65625,1.41824,0.808273,7.78104,3.95354,23.792,17.792,236.363
12.4527,14.3,91.9185,0.553023,2.92214,2.40726,1.08979,0.331686,1.93674,3.82789,3.8617,6.71038,0.682922,3.77436,2.6305,7.46626,6.35624,1.82787,1.82941,0.513664,0.854003,1.74578,1.07716,4.57788,4.57466,0.877378,2.73318,1.30506,0.905451,1.11716,2.27257,0.622147,0.410038,0.838507,2.73948,1.64549,1.17522,0.458652,0.366409,0.594462,3.59548,1.40177,0.806703,6.50205,3.82874,23.4245,17.4798,232.912
12.5398,14.4,89.1002,0.531743,2.82019,2.3259,1.05246,0.320119,1.87303,3.71042,3.74972,6.44649,0.578266,3.66527,2.56451,7.71452,6.51166,1.79016,1.79432,0.511369,0.850336,1.7054,1.05293,4.47204,4.46177,0.8737,2.68028,1.28747,0.901572,1.10547,2.22794,0.607715,0.403618,0.834966,2.62791,1.55561,1.17875,0.45503,0.361867,0.583881,3.5281,1.38663,0.805961,5.19113,3.69848,22.5877,17.8107,228.987
12.6269,14.5,85.3372,0.49897,2.6562,2.19318,0.991946,0.301521,1.76779,3.72549,4.01251,6.24431,0.677906,3.50168,2.46241,7.42734,6.28721,1.7215,1.72937,0.504574,0.839269,1.65009,1.01533,4.26475,4.25253,0.863162,2.57872,1.26303,0.897371,1.07715,2.14049,0.580959,0.39119,0.825337,2.54462,1.53934,1.17659,0.446055,0.352018,0.562517,3.3872,1.35159,0.801171,3.83281,3.48664,22.3921,17.1654,221.718
12.7139,14.6,60.2212,0.313435,1.67469,1.38436,0.625866,0.190124,1.11689,2.07174,2.40531,4.05994,0.58625,2.40933,1.91683,5.51573,4.60282,1.23934,1.27894,0.440926,0.734699,1.24776,0.801153,2.85698,2.79094,0.755557,1.85254,1.06595,0.875542,0.889363,1.50185,0.395522,0.301661,0.739085,1.91811,1.2813,1.02808,0.369166,0.274413,0.403088,2.30609,1.06347,0.731393,2.20494,2.20034,14.5663,12.6368,155.583
12.801,14.7,61.5763,0.32866,1.76247,1.45862,0.659183,0.20012,1.1779,2.18696,2.50743,4.26991,0.588709,2.50975,1.95871,5.71432,4.7959,1.27813,1.3,0.441274,0.751203,1.295,0.827471,3.01086,2.94774,0.761095,1.9245,1.09218,0.884819,0.913287,1.57233,0.414726,0.310439,0.798854,2.13155,1.47359,1.10333,0.375229,0.282871,0.421819,2.43484,1.10124,0.745012,0.864293,2.31792,15.1994,13.0884,164.174
12.8881,14.8,65.9065,0.320272,1.72374,1.42826,0.645227,0.195762,1.15446,2.1454,2.00242,4.05022,0.580103,2.46645,1.92731,5.16247,4.44198,1.26822,1.29158,0.433559,0.737646,1.28824,0.824883,2.97816,2.91163,0.763652,1.90069,1.08025,0.890081,0.912133,1.55979,0.410139,0.308962,0.747541,2.05134,1.48221,1.11215,0.375884,0.281119,0.41695,2.41049,1.09483,0.74837,7.38194,2.26925,14.3263,12.1643,168.455
12.9752,14.9,66.368,0.324874,1.75473,1.45576,0.657417,0.199338,1.17781,2.433,2.5615,4.15455,0.486277,2.50295,1.96671,5.27767,4.51815,1.2924,1.31599,0.44019,0.733289,1.29646,0.838033,3.04873,2.98247,0.773399,1.94011,1.09489,0.897168,0.924598,1.59441,0.419166,0.314066,0.755685,2.09141,1.50312,1.12651,0.382296,0.286507,0.426344,2.47506,1.1115,0.752761,6.08073,2.31252,15.2828,12.4042,172.552
13.0623,15,66.3536,0.320631,1.73791,1.44366,0.651728,0.197494,1.16914,2.6251,2.98834,4.27112,0.597549,2.50008,1.94805,5.68784,4.80686,1.29274,1.31739,0.443328,0.73858,1.28524,0.829151,3.04736,2.97905,0.777816,1.94204,1.08941,0.891429,0.927325,1.59598,0.418698,0.314531,0.759094,2.01752,1.41692,1.13638,0.384551,0.287784,0.427402,2.48275,1.11742,0.754598,4.73364,2.29288,16.0994,13.1048,174.031
13.1493,15.1,49.1371,0.198151,1.07777,0.896454,0.404568,0.122523,0.7267,1.79702,2.20864,2.76951,0.533671,1.73867,1.55102,4.37265,3.68496,0.972155,1.00916,0.400847,0.668813,1.00816,0.671945,2.05598,1.9626,0.712503,1.43537,0.954699,0.867568,0.792675,1.14731,0.289228,0.252375,0.700206,1.57598,1.20384,1.00639,0.331112,0.233496,0.315096,1.70962,0.914431,0.707279,3.15599,1.42355,11.3252,10.0389,125.002
13.2364,15.2,49.6387,0.217798,1.1887,0.990002,0.446668,0.135192,0.803356,1.49812,1.86589,3.03208,0.538282,1.88066,1.63545,4.6179,3.85143,1.0046,1.05336,0.412573,0.688223,1.06519,0.7036,2.23282,2.14114,0.716708,1.53429,0.986029,0.877979,0.814294,1.22988,0.313458,0.264777,0.715211,1.66495,1.23233,1.02406,0.343775,0.245231,0.337586,1.86365,0.959373,0.723129,1.78894,1.57186,11.2538,10.5273,133.256
13.3235,15.3,55.6067,0.207643,1.13713,0.948286,0.427746,0.129388,0.770308,1.43769,1.80398,2.92084,0.528528,1.81956,1.59543,4.53157,3.79592,0.98679,1.0203,0.401873,0.688471,1.05098,0.697281,2.17077,2.07509,0.704439,1.49167,0.981789,0.883144,0.80967,1.19879,0.303475,0.258318,0.760429,1.78533,1.40487,1.08453,0.335024,0.238562,0.329351,1.81897,0.951077,0.725225,8.39647,1.50542,10.8763,10.3346,138.738
13.4106,15.4,54.0924,0.215881,1.1862,0.990527,0.446703,0.135043,0.805473,1.50455,1.40662,2.89998,0.527832,1.8757,1.61517,4.14059,3.58201,1.01935,1.05276,0.399038,0.682945,1.08081,0.71434,2.26392,2.16952,0.716197,1.53068,0.984871,0.891149,0.825462,1.24335,0.315486,0.264947,0.712245,1.75473,1.42938,1.1009,0.342832,0.245267,0.339368,1.88738,0.967956,0.735576,7.08965,1.57227,10.6353,9.7947,141.101
13.4977,15.5,54.5884,0.218368,1.2038,1.0066,0.453849,0.137124,0.819429,1.76997,1.93981,2.96975,0.433787,1.89554,1.64406,4.64429,3.90959,1.03598,1.06983,0.404613,0.674891,1.0801,0.723905,2.30862,2.21399,0.724324,1.55682,0.982421,0.882082,0.83466,1.26554,0.321112,0.268447,0.718901,1.6967,1.34381,1.1141,0.347796,0.249172,0.345627,1.92915,0.975724,0.735309,5.73886,1.59758,11.4723,10.6597,144.215
13.5848,15.6,53.5791,0.212095,1.17299,0.98222,0.442758,0.133696,0.800454,1.93855,2.34031,3.04564,0.541164,1.87288,1.61647,4.60175,3.8903,1.02788,1.06299,0.406574,0.678248,1.05896,0.709415,2.27709,2.17978,0.726902,1.54335,0.983451,0.887972,0.833619,1.2525,0.316732,0.267064,0.720575,1.68695,1.3491,1.12254,0.348334,0.248693,0.342991,1.90925,0.97473,0.732194,4.33998,1.55867,12.1555,10.5829,142.47
13.6718,15.7,50.1073,0.203829,1.13087,0.948264,0.427372,0.128977,0.773658,1.44858,1.81937,2.95505,0.532258,1.82239,1.58217,4.53463,3.778,0.997032,1.05023,0.407564,0.680005,1.0489,0.693012,2.20377,2.11894,0.727981,1.51999,0.98162,0.879103,0.820341,1.23062,0.309877,0.26445,0.720899,1.66828,1.24229,1.03895,0.347703,0.247085,0.338103,1.87366,0.96942,0.735581,2.90649,1.50461,10.9335,10.3599,138.478
13.7589,15.8,48.1826,0.198247,1.10334,0.926458,0.417484,0.125921,0.756762,1.41805,1.78549,2.89828,0.524735,1.80282,1.58319,4.49695,3.76425,0.974462,1.02613,0.40946,0.68325,1.04502,0.692296,2.17666,2.08189,0.715012,1.50803,0.982722,0.885385,0.811006,1.20664,0.304794,0.263217,0.72247,1.65955,1.24452,1.04455,0.348249,0.246687,0.335745,1.85572,0.968655,0.739952,1.44851,1.46986,10.7693,10.2618,136.799
13.846,15.9,54.7523,0.192133,1.0726,0.901896,0.406366,0.122499,0.737591,1.38318,1.74763,2.83345,0.516995,1.76531,1.55556,4.45153,3.74322,0.966617,1.00139,0.39935,0.685873,1.03934,0.690582,2.14358,2.04597,0.702748,1.47838,0.982795,0.891285,0.810338,1.19284,0.299086,0.257275,0.7685,1.79718,1.42607,1.10376,0.338609,0.240135,0.327499,1.82435,0.966373,0.743772,8.19865,1.43076,10.5397,10.1628,143.453
13.9331,16,51.5757,0.188166,1.05362,0.887182,0.399689,0.12042,0.726455,1.36333,1.27667,2.65583,0.510386,1.74173,1.56097,3.96056,3.40009,0.964546,1.00039,0.390749,0.670871,1.03867,0.691483,2.12876,2.029,0.707001,1.45936,0.968098,0.897289,0.811917,1.18736,0.296896,0.257042,0.709281,1.71103,1.43751,1.11416,0.340284,0.240688,0.326789,1.80859,0.956942,0.748374,6.8375,1.40729,9.83537,9.32559,140.354
14.0202,16.1,51.1251,0.185225,1.04021,0.877145,0.395112,0.118976,0.719125,1.58428,1.76294,2.65107,0.414849,1.72481,1.54372,4.34965,3.67264,0.965122,1.00192,0.394045,0.65762,1.02227,0.693539,2.1225,2.02097,0.711656,1.45915,0.955905,0.884231,0.814466,1.18573,0.295816,0.257313,0.712809,1.62334,1.3385,1.12466,0.342352,0.241671,0.32702,1.80786,0.950542,0.73097,5.44337,1.39123,10.4008,9.98933,140.298
14.1072,16.2,50.115,0.180203,1.01494,0.857069,0.386018,0.116174,0.703545,1.75518,2.16114,2.73489,0.520161,1.70689,1.5194,4.31635,3.66045,0.959297,0.997226,0.396327,0.661509,1.00142,0.665295,2.0832,1.99242,0.714743,1.44853,0.957859,0.872218,0.801913,1.17479,0.292134,0.256292,0.714921,1.61567,1.34461,1.13363,0.343192,0.241465,0.324881,1.79054,0.95047,0.736015,4.01203,1.35926,11.1012,9.93332,139.045
14.1943,16.3,46.2675,0.169919,0.959735,0.811607,0.365504,0.109941,0.667087,1.25474,1.63156,2.6091,0.51019,1.65233,1.50198,4.21766,3.5166,0.92017,0.977108,0.396253,0.661511,0.984407,0.657736,1.9947,1.89624,0.696494,1.4119,0.952621,0.877926,0.783774,1.13255,0.281923,0.252077,0.713733,1.58469,1.22724,1.0425,0.341079,0.238347,0.316847,1.73161,0.939279,0.73806,2.53879,1.28705,9.82699,9.63154,132.869
14.2814,16.4,44.671,0.164107,0.929482,0.787123,0.354455,0.106562,0.647832,1.21942,1.59334,2.5429,0.502552,1.6144,1.47441,4.17145,3.49453,0.894827,0.950206,0.397874,0.664303,0.978546,0.656028,1.95954,1.85821,0.699186,1.39592,0.952794,0.884159,0.783095,1.10958,0.274126,0.260473,0.819543,1.71752,1.40433,1.09412,0.334851,0.237466,0.313448,1.70542,0.936573,0.742086,1.04421,1.24814,9.59486,9.51101,131.03
14.3685,16.5,50.1343,0.159489,0.905781,0.768123,0.345884,0.103931,0.633061,1.19249,1.56305,2.49217,0.495578,1.5843,1.45093,3.64151,3.15571,0.890035,0.927536,0.375437,0.647238,0.975411,0.655717,1.93459,1.83081,0.685959,1.36899,0.954192,0.890331,0.7836,1.09925,0.270634,0.243856,0.760472,1.71633,1.41519,1.1045,0.329717,0.230007,0.30485,1.67722,0.935864,0.74645,7.88816,1.21794,9.41157,8.61479,136.838
14.4556,16.6,48.4395,0.155473,0.88531,0.75182,0.33853,0.10167,0.620485,1.40148,1.59122,2.38858,0.488968,1.55807,1.45374,3.63349,3.13144,0.88669,0.925271,0.378275,0.63162,0.953863,0.656005,1.91449,1.80852,0.689934,1.34572,0.936919,0.896344,0.784585,1.09108,0.26777,0.243311,0.697571,1.62276,1.42617,1.11475,0.331087,0.230233,0.303433,1.65385,0.908782,0.735974,6.50419,1.19202,9.50255,8.5769,134.303
14.5427,16.7,46.9059,0.15117,0.863041,0.733941,0.330458,0.0991963,0.60656,1.3733,1.56185,2.28165,0.394052,1.52955,1.43103,4.00444,3.3868,0.882139,0.921809,0.380836,0.635969,0.932424,0.640758,1.89079,1.78259,0.693476,1.33658,0.920401,0.880688,0.784952,1.08116,0.26444,0.242508,0.700086,1.52201,1.31933,1.1244,0.332158,0.230201,0.30155,1.63748,0.909304,0.726566,5.08426,1.1636,9.17799,9.19519,132.052
14.6297,16.8,45.1625,0.141831,0.811777,0.691316,0.311248,0.093384,0.572124,1.50444,1.91809,2.29532,0.494413,1.4776,1.39038,3.91086,3.32117,0.86186,0.903093,0.381073,0.636479,0.916556,0.619017,1.803,1.70479,0.693414,1.30151,0.915922,0.865442,0.764684,1.04792,0.254631,0.238537,0.699323,1.49217,1.31976,1.13079,0.330289,0.227268,0.293793,1.57921,0.898694,0.72905,3.62031,1.09595,9.65236,8.99698,128.113
14.7168,16.9,42.0663,0.1374,0.788358,0.672287,0.302676,0.0907682,0.557175,1.05258,1.43525,2.24317,0.487457,1.45945,1.39066,3.87762,3.23218,0.838306,0.898413,0.383259,0.640204,0.913533,0.618896,1.76292,1.6586,0.67757,1.29038,0.917689,0.872184,0.751456,1.02714,0.250862,0.237458,0.701308,1.48361,1.20261,1.03772,0.330988,0.226938,0.291422,1.55946,0.898019,0.733869,2.13442,1.06573,8.62575,8.84652,124.675
14.8039,17,40.3849,0.132727,0.763381,0.651867,0.293483,0.0879695,0.541038,1.02283,1.40239,2.18671,0.480421,1.42676,1.36613,3.83999,3.217,0.814676,0.853563,0.372267,0.643506,0.909459,0.618175,1.73337,1.62645,0.662552,1.25961,0.918804,0.8786,0.751612,1.00551,0.243428,0.229603,0.74285,1.62115,1.38326,1.08706,0.316927,0.222094,0.288629,1.53676,0.896418,0.738282,0.61759,1.03332,8.42626,8.72523,122.71
14.891,17.1,45.2355,0.128465,0.740605,0.633264,0.285112,0.0854204,0.526375,0.995817,0.935952,1.99834,0.47365,1.39667,1.34303,3.30551,2.87448,0.809781,0.849801,0.362051,0.625845,0.906137,0.617805,1.707,1.59768,0.666356,1.23156,0.898879,0.884821,0.752031,0.994395,0.239798,0.228731,0.67925,1.52413,1.39407,1.09744,0.318034,0.217729,0.278847,1.49305,0.878786,0.74265,7.51618,1.0038,7.66983,7.83957,126.773
14.9781,17.2,44.1212,0.124605,0.720002,0.616465,0.277548,0.0831168,0.513168,1.19853,1.39703,1.97002,0.379311,1.36918,1.34415,3.29229,2.84746,0.805799,0.846893,0.364784,0.609457,0.883334,0.617789,1.68385,1.5723,0.670189,1.22291,0.901212,0.890853,0.75272,0.984704,0.236587,0.228028,0.682032,1.52062,1.40481,1.10762,0.319233,0.217774,0.277036,1.47641,0.863008,0.729637,6.11877,0.97713,8.17139,7.79244,124.943
15.0651,17.3,43.5636,0.120597,0.698412,0.598768,0.269577,0.0806938,0.499161,1.3663,1.78557,2.05336,0.481045,1.35222,1.32166,3.66429,3.10274,0.801025,0.843187,0.3673,0.613727,0.860967,0.601945,1.65839,1.54462,0.673685,1.21296,0.883147,0.873582,0.752969,0.973887,0.233083,0.227151,0.68451,1.41539,1.29358,1.11728,0.320215,0.217639,0.274922,1.4577,0.863053,0.717718,4.68552,0.94904,8.85932,8.41124,123.567
15.1522,17.4,40.7916,0.112494,0.652914,0.560489,0.252343,0.0755019,0.467934,1.30285,1.72036,1.94246,0.472081,1.29281,1.28406,3.57886,3.04368,0.782903,0.826519,0.367837,0.61472,0.846827,0.580673,1.57536,1.47222,0.674099,1.18075,0.879576,0.856813,0.732401,0.943026,0.224064,0.223577,0.684178,1.38787,1.17048,1.02117,0.318673,0.21502,0.26778,1.40266,0.853505,0.720548,3.20952,0.888334,8.48255,8.23196,117.639
15.2393,17.5,38.0352,0.109465,0.636687,0.547249,0.246388,0.0736883,0.457562,0.868125,1.25484,1.90552,0.465913,1.28183,1.28727,3.55911,2.96512,0.744402,0.80468,0.370489,0.619205,0.846673,0.582087,1.54461,1.43566,0.658292,1.17479,0.882809,0.863783,0.719373,0.925988,0.221621,0.22315,0.686851,1.38381,1.17462,1.02808,0.319951,0.215254,0.266544,1.39045,0.854927,0.725965,1.71235,0.867326,7.52106,8.07331,114.8
15.3264,17.6,44.4689,0.104112,0.606816,0.522223,0.235128,0.0702908,0.437292,0.830265,1.21443,1.83316,0.458521,1.24159,1.25934,3.50707,2.93674,0.73522,0.776392,0.358841,0.62172,0.839498,0.579771,1.50304,1.3911,0.641809,1.13731,0.882436,0.870014,0.718086,0.898009,0.212439,0.214004,0.727079,1.51735,1.35578,1.0747,0.303855,0.204653,0.254011,1.3436,0.850701,0.729789,8.47072,0.827641,7.2746,7.95542,120.785
15.4135,17.7,41.3269,0.101779,0.594425,0.51218,0.230615,0.0689132,0.42953,0.816115,0.768921,1.6711,0.452831,1.22353,1.24263,2.99113,2.61059,0.735422,0.777543,0.349134,0.604912,0.840677,0.58179,1.49245,1.37869,0.646714,1.11674,0.863885,0.876586,0.720629,0.894183,0.210892,0.214144,0.662738,1.42512,1.3686,1.08603,0.305863,0.205461,0.253692,1.32363,0.834824,0.735092,7.10719,0.811709,6.60466,7.11469,117.107
15.5006,17.8,40.6208,0.0984672,0.576228,0.497096,0.223828,0.0668579,0.417505,1.01586,1.22121,1.64526,0.360329,1.19795,1.24374,3.38212,2.8521,0.732167,0.775315,0.351949,0.58832,0.81812,0.582114,1.47084,1.35492,0.6507,1.10897,0.845023,0.857805,0.721616,0.885213,0.207946,0.213576,0.665673,1.32207,1.25858,1.09635,0.307165,0.205603,0.252071,1.30775,0.817679,0.720382,5.70434,0.787782,7.10186,7.74171,115.436
15.5876,17.9,39.683,0.0951348,0.557807,0.481773,0.216933,0.0647724,0.405229,1.18252,1.60365,1.73082,0.45968,1.18311,1.22305,3.35665,2.84566,0.728538,0.772693,0.35461,0.59282,0.796319,0.566515,1.44827,1.33021,0.654442,1.1006,0.848022,0.864436,0.722342,0.875754,0.204887,0.212922,0.668393,1.31596,1.26587,1.10625,0.308331,0.205646,0.25031,1.29096,0.818337,0.706794,4.26596,0.763478,7.78806,7.70355,113.053
15.6747,18,36.1762,0.0890006,0.522819,0.452076,0.203567,0.0607579,0.380808,0.725114,1.11729,1.64261,0.451792,1.13532,1.19168,3.29117,2.7242,0.696711,0.760773,0.355832,0.594934,0.786447,0.547228,1.36505,1.26384,0.655937,1.07611,0.846608,0.846863,0.703059,0.851774,0.197872,0.210328,0.66906,1.29527,1.14172,1.00859,0.307664,0.203895,0.244926,1.24766,0.812015,0.710484,2.78731,0.716401,6.64461,7.47286,107.386
1 # 27Al(a,p)30Si; TALYS 2.2 run /home/vsitaraman/TALYS/runs/al027_a_v3
2 # E_cm = E_a,lab * 0.870818 (xs_series.py LAB2CM); grid as calculated, no smoothing
3 # sigma_total_mb = sum of the discrete-state columns ex_<Ex MeV> (fig2 'all levels (sum)')
4 # group_<label>_mb = states in ch5 tab:level_windows groups; sigma_channel_mb = <prefix>.tot (discrete + continuum)
5 # written by tools/xs/02_export_talys.py
6 ecm_mev,e_alpha_lab_mev,sigma_total_mb,ex_0.000,ex_2.235,ex_3.498,ex_3.769,ex_3.788,ex_4.810,ex_4.831,ex_5.231,ex_5.279,ex_5.372,ex_5.487,ex_5.614,ex_5.951,ex_6.503,ex_6.537,ex_6.641,ex_6.693,ex_6.744,ex_6.865,ex_6.915,ex_6.999,ex_7.043,ex_7.079,ex_7.223,ex_7.256,ex_7.441,ex_7.508,ex_7.612,ex_7.624,ex_7.634,ex_7.667,ex_7.810,ex_7.912,ex_8.105,ex_8.156,ex_8.163,ex_8.191,ex_8.194,ex_8.290,ex_8.333,ex_8.441,group_3.498_mb,group_5.279_mb,group_5.951_mb,sigma_channel_mb
7 0.435409,0.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
8 0.522491,0.6,1.01951e-15,1.00639e-15,1.31186e-17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.00639e-15
9 0.609572,0.7,1.12487e-13,1.05676e-13,6.8115e-15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.12487e-13
10 0.696654,0.8,5.08499e-12,4.57286e-12,5.12137e-13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5.08499e-12
11 0.783736,0.9,1.18685e-10,1.01376e-10,1.73085e-11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.18685e-10
12 0.870818,1,1.69172e-09,1.36621e-09,3.25514e-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.69172e-09
13 0.957899,1.1,1.65257e-08,1.25813e-08,3.94447e-09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.65258e-08
14 1.04498,1.2,1.19945e-07,8.59853e-08,3.396e-08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.19945e-07
15 1.13206,1.3,6.85888e-07,4.63489e-07,2.22398e-07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6.85888e-07
16 1.21914,1.4,3.21947e-06,2.0543e-06,1.16518e-06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.21947e-06
17 1.30623,1.5,1.28906e-05,7.79398e-06,5.09659e-06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.28906e-05
18 1.39331,1.6,4.50568e-05,2.59074e-05,1.91493e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.50568e-05
19 1.48039,1.7,0.000140276,7.7005e-05,6.32703e-05,9.60429e-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9.60429e-10,0,0,0.000140276
20 1.56747,1.8,0.000395317,0.000207929,0.000187369,1.85546e-08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.85546e-08,0,0,0.000395317
21 1.65455,1.9,0.00100986,0.000504273,0.000505387,1.97973e-07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.97973e-07,0,0,0.00100986
22 1.74164,2,0.00236725,0.0011237,0.00124211,1.43569e-06,1.38796e-09,1.37299e-10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.43721e-06,0,0,0.00236725
23 1.82872,2.1,0.0051701,0.00233611,0.00282613,7.83447e-06,2.24959e-08,2.43913e-09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7.8594e-06,0,0,0.0051701
24 1.9158,2.2,0.0106344,0.00457886,0.00602048,3.48358e-05,2.13766e-07,2.72104e-08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.50768e-05,0,0,0.0106344
25 2.00288,2.3,0.0207647,0.00852755,0.012108,0.000127471,1.4281e-06,2.30062e-07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000129129,0,0,0.0207647
26 2.08996,2.4,0.0387206,0.0151787,0.0231334,0.000399641,7.47807e-06,1.32047e-06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00040844,0,0,0.0387206
27 2.17704,2.5,0.0692895,0.0259559,0.0421901,0.00110647,3.11076e-05,5.83118e-06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00114341,0,0,0.0692895
28 2.26413,2.6,0.119413,0.0427635,0.0737589,0.00276209,0.000106983,2.12336e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00289031,0,0,0.119413
29 2.35121,2.7,0.198845,0.0681058,0.124035,0.00631933,0.000318235,6.65756e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00670414,0,0,0.198845
30 2.43829,2.8,0.320768,0.105109,0.201228,0.013404,0.000841589,0.000184604,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0144302,0,0,0.320768
31 2.52537,2.9,0.502444,0.157571,0.315767,0.0266254,0.00201934,0.000461748,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0291065,0,0,0.502444
32 2.61245,3,0.765736,0.229909,0.480378,0.0499321,0.00445925,0.00105758,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0554489,0,0,0.765736
33 2.69953,3.1,1.11004,0.317194,0.695971,0.0867457,0.00820774,0.00192171,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0968752,0,0,1.11004
34 2.78662,3.2,1.57272,0.431474,0.979329,0.143747,0.014709,0.00345723,1.06522e-06,2.23127e-06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.161913,3.29648e-06,0,1.57272
35 2.8737,3.3,2.1909,0.57762,1.35161,0.229897,0.0256502,0.00609239,1.11277e-05,2.3353e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.261639,3.44807e-05,0,2.1909
36 2.96078,3.4,3.00185,0.760865,1.83117,0.355774,0.043376,0.0104363,7.03793e-05,0.00015816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.409586,0.000228539,0,3.00185
37 3.04786,3.5,4.04369,0.985478,2.43514,0.533587,0.0710041,0.0173206,0.000322985,0.00083573,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.621911,0.00115871,0,4.04369
38 3.13494,3.6,5.35861,1.25591,3.18087,0.77715,0.112529,0.0278308,0.00118171,0.00314733,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.917511,0.00432904,0,5.35861
39 3.22203,3.7,6.99025,1.57593,4.08392,1.10128,0.172845,0.0433193,0.00360405,0.00933418,1.22557e-05,7.10926e-06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.31744,0.0129576,0,6.99025
40 3.30911,3.8,8.98163,1.94796,5.15663,1.52126,0.257578,0.0653734,0.00929943,0.02333,0.000113673,7.16291e-05,4.614e-08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.84422,0.0328147,0,8.98163
41 3.39619,3.9,11.2605,2.33828,6.36246,2.03518,0.360942,0.0902712,0.0209987,0.0511599,0.000619245,0.00061132,5.66807e-07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.48639,0.0733898,0,11.2605
42 3.48327,4,13.8861,2.77349,7.70183,2.64843,0.490437,0.122493,0.0428006,0.101119,0.00243035,0.00306432,5.22291e-06,2.56323e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.26136,0.149445,0,13.8861
43 3.57035,4.1,16.9375,3.25536,9.20179,3.3783,0.65475,0.163929,0.0805697,0.184086,0.00757477,0.0108395,2.77358e-05,0.000232322,2.65087e-06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4.19698,0.283332,0,16.9375
44 3.65743,4.2,20.4517,3.7807,10.8581,4.22993,0.859535,0.216354,0.141953,0.313477,0.01989,0.0303904,0.000105791,0.00122841,2.53116e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5.30582,0.507069,0,20.4517
45 3.74452,4.3,24.4525,4.34191,12.6533,5.20348,1.10873,0.281033,0.236123,0.505023,0.0457533,0.0719858,0.000323547,0.00468001,0.000157784,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6.59325,0.864047,0,24.4525
46 3.8316,4.4,28.9555,4.93234,14.5645,6.28731,1.40521,0.359169,0.373858,0.774329,0.0931712,0.149863,0.000842725,0.0142052,0.000771644,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8.05169,1.40704,0,28.9555
47 3.91868,4.5,33.9684,5.54112,16.5594,7.47075,1.74793,0.45086,0.565757,1.13736,0.172597,0.281643,0.00193821,0.0363143,0.00272978,2.85664e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9.66954,2.19834,2.85664e-05,33.9684
48 4.00576,4.6,39.5017,6.15885,18.6084,8.73141,2.13728,0.55653,0.822059,1.60921,0.296402,0.487675,0.00403241,0.081977,0.00767034,0.000245362,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11.4252,3.30903,0.000245362,39.5017
49 4.09284,4.7,45.5488,6.77387,20.6718,10.0476,2.56703,0.675313,1.15143,2.20148,0.478034,0.790295,0.00774534,0.164572,0.0182945,0.00131649,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13.29,4.81184,0.00131649,45.5488
50 4.17992,4.8,50.8447,7.14681,22.2044,11.1008,2.96059,0.787659,1.50946,2.86524,0.717049,1.2011,0.0136308,0.295726,0.0371005,0.00516313,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14.849,6.63931,0.00516313,50.8447
51 4.26701,4.9,56.746,7.57978,23.7684,12.166,3.37486,0.910479,1.93566,3.63737,1.03117,1.73742,0.0225503,0.496567,0.0691125,0.0166091,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16.4513,8.92985,0.0166091,56.746
52 4.35409,5,63.1917,8.00751,25.3121,13.2379,3.80855,1.04112,2.43161,4.5223,1.43192,2.41608,0.0354556,0.784622,0.119746,0.0427309,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18.0876,11.7417,0.0427309,63.1917
53 4.44117,5.1,70.206,8.41949,26.8296,14.3087,4.26005,1.17881,2.99625,5.51564,1.92763,3.24961,0.0533883,1.17766,0.195344,0.093782,9.77982e-06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19.7476,15.1155,0.0937918,70.206
54 4.52825,5.2,77.7436,8.80616,28.2869,15.3591,4.72292,1.32187,3.62144,6.60355,2.52233,4.2451,0.0773905,1.69082,0.302976,0.182892,0.000107224,1.10189e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21.4039,19.0636,0.183011,77.7436
55 4.61533,5.3,85.778,9.16185,29.6632,16.3771,5.19074,1.46821,4.30173,7.77328,3.21721,5.40489,0.108416,2.33654,0.448453,0.325447,0.000879255,9.18651e-05,9.8221e-06,1.18644e-08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23.036,23.5905,0.326428,85.778
56 4.70242,5.4,91.9193,9.28922,30.2081,16.9428,5.55445,1.59768,4.90034,8.68379,3.85235,6.56219,0.146305,3.03111,0.621507,0.524901,0.00401069,0.000442792,7.99369e-05,1.57814e-06,1.34386e-06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24.095,27.7976,0.529434,91.9193
57 4.7895,5.5,98.793,9.44843,30.8692,17.526,5.92982,1.72979,5.51523,9.631,4.56286,7.84239,0.192083,3.89393,0.835002,0.802077,0.0131859,0.00156384,0.00041184,1.33951e-05,1.17052e-05,2.72147e-07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25.1856,32.4725,0.817238,98.793
58 4.87658,5.6,106.24,9.59808,31.5394,18.1114,6.30431,1.86132,6.15027,10.6323,5.34994,9.25318,0.245935,4.88686,1.0931,1.17254,0.0347915,0.0044444,0.00156639,6.55556e-05,6.63922e-05,1.37631e-05,2.48926e-06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26.277,37.6115,1.21335,106.24
59 4.96366,5.7,114.209,9.73544,32.2081,18.6997,6.67511,1.99141,6.79695,11.6616,6.20795,10.7834,0.307858,5.99681,1.39894,1.65078,0.078388,0.0107753,0.00485181,0.000230786,0.000295384,0.000110088,2.08627e-05,2.07923e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27.3662,43.1535,1.74479,114.209
60 5.05074,5.8,122.496,9.84613,32.8105,19.2618,7.03222,2.11704,7.45069,12.705,7.12131,12.3919,0.377126,7.19478,1.75194,2.24124,0.156324,0.0231257,0.0124861,0.000650593,0.00097809,0.000510004,0.000112567,0.000169864,6.20637e-05,1.23012e-06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28.4111,48.9927,2.43318,122.496
61 5.13782,5.9,131.021,9.93421,33.3532,19.7958,7.37646,2.23862,8.09208,13.7286,8.06524,14.0609,0.453197,8.45827,2.15109,2.95028,0.283117,0.0443538,0.0274324,0.00155958,0.00258273,0.00170732,0.000465335,0.000881029,0.000500465,1.04132e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,29.4109,55.0093,3.30518,131.021
62 5.22491,6,138.816,9.93481,33.6069,20.1683,7.66124,2.34521,8.66934,14.614,8.96144,15.6904,0.534136,9.66384,2.57576,3.76531,0.473785,0.0775054,0.052897,0.00329534,0.00577919,0.00454773,0.00148537,0.00343451,0.00233585,5.46315e-05,2.17089e-05,2.85858e-06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30.1748,60.7089,4.3695,138.816
63 5.31199,6.1,146.175,9.90403,33.7274,20.4327,7.90916,2.44264,9.16506,15.3442,9.77643,17.2458,0.617584,10.9143,3.01177,4.66977,0.743817,0.125838,0.0938128,0.00633076,0.0115253,0.0103013,0.00378044,0.0107403,0.00786599,0.000210338,0.000172255,2.34011e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30.7845,66.0752,5.63324,146.175
64 5.39907,6.2,153.321,9.82424,33.752,20.6272,8.11605,2.52562,9.60597,16.018,10.5646,18.7611,0.703088,12.1221,3.45936,5.6783,1.10593,0.192595,0.15456,0.0111623,0.0208369,0.0207089,0.00821278,0.0268687,0.021276,0.000660011,0.000801373,0.000119655,2.59675e-07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31.2688,71.2342,7.13139,153.321
65 5.48615,6.3,160.158,9.71363,33.6635,20.7355,8.27567,2.59326,9.97657,16.6087,11.3039,20.2359,0.78454,13.2833,3.90234,6.77287,1.56962,0.280481,0.239813,0.0182756,0.0350068,0.0379844,0.0158668,0.0574896,0.0489595,0.00168724,0.00270481,0.000450743,2.21167e-06,4.08155e-06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31.6045,76.0952,8.86279,160.158
66 5.57323,6.4,166.046,9.55747,33.3816,20.714,8.38227,2.64662,10.254,17.0142,11.8983,21.5335,0.863393,14.3039,4.31928,7.90267,2.13546,0.390504,0.352355,0.0282092,0.0552766,0.0638346,0.0279074,0.109304,0.0992962,0.00368043,0.00731524,0.0013921,1.22782e-05,3.3074e-05,8.16426e-06,1.24922e-06,4.72626e-07,0,0,0,0,0,0,0,0,0,0,0,31.7429,80.1865,10.781,166.046
67 5.66031,6.5,169.068,9.16185,32.3187,20.186,8.26104,2.62444,10.2367,16.9801,12.3273,22.3597,1.0613,15.0766,4.82594,9.1251,2.8287,0.523559,0.495123,0.0450875,0.0871244,0.102089,0.0462332,0.18702,0.180286,0.00751201,0.0167295,0.00347486,7.84005e-05,0.000163035,6.59094e-05,1.04089e-05,4.7371e-06,2.65135e-06,5.5097e-11,2.45516e-16,0,0,0,0,0,0,0,0,31.0715,82.8678,12.9725,169.068
68 5.7474,6.6,174.328,8.96918,31.9659,20.0955,8.27842,2.64032,10.4049,17.2886,12.6581,23.4294,1.11971,15.9489,5.18425,10.3089,3.60122,0.680385,0.675961,0.0635323,0.12535,0.153367,0.071646,0.302338,0.305392,0.0134406,0.0343851,0.00749384,0.000270729,0.000600413,0.000351045,6.51681e-05,3.76862e-05,2.16825e-05,2.11855e-06,6.77592e-11,1.61457e-16,0,0,0,0,0,0,0,31.0142,86.0339,15.2665,174.328
69 5.83448,6.7,180.249,8.79354,31.6426,20.0268,8.30163,2.65591,10.5663,17.5868,13.2295,24.4776,1.14959,16.7291,5.60947,11.5894,4.49632,0.86635,0.895422,0.0849886,0.171521,0.220851,0.106151,0.461587,0.48233,0.0224614,0.0641408,0.0144758,0.000745291,0.00178466,0.00143579,0.000290134,0.000174078,0.000106057,2.32074e-05,6.24425e-08,1.81675e-16,0,0,0,0,0,0,0,30.9843,89.3484,17.8475,180.25
70 5.92156,6.8,186.459,8.64737,31.4018,20.0208,8.35089,2.67789,10.7535,17.9175,13.6043,25.4786,1.26219,17.4496,5.96297,12.8271,5.49137,1.08263,1.15554,0.112831,0.228518,0.304771,0.15148,0.672955,0.720318,0.0355487,0.110113,0.0257437,0.0017441,0.00452971,0.00454423,0.000930442,0.000577041,0.000380338,0.000185424,5.40052e-06,5.7916e-11,1.03429e-16,6.108e-17,5.44935e-17,8.75475e-17,0,0,0,31.0496,92.4288,20.5566,186.459
71 6.00864,6.9,192.587,8.47653,31.087,19.9705,8.36785,2.68609,10.9058,18.2045,14.1545,26.377,1.27394,18.0212,6.32769,14.0709,6.57562,1.31923,1.44388,0.145072,0.297353,0.408034,0.206017,0.94045,1.02463,0.0533515,0.176518,0.0426383,0.00358939,0.00980429,0.0114901,0.00239241,0.00152539,0.00108947,0.000845446,4.39762e-05,1.59712e-08,3.29076e-11,1.94337e-11,8.66905e-12,1.78524e-16,1.25184e-16,0,0,31.0244,95.2647,23.4096,192.587
72 6.09572,7,198.875,8.32732,30.8265,19.9539,8.39922,2.69773,11.0654,18.4991,14.4557,27.2094,1.3807,18.5308,6.68246,15.2939,7.68193,1.58565,1.76916,0.17931,0.378291,0.535819,0.275167,1.26909,1.40209,0.0770451,0.268267,0.0668323,0.0060779,0.0185445,0.0248942,0.00528552,0.00346021,0.00265714,0.00276797,0.000207881,2.57189e-06,3.85506e-07,2.17362e-07,1.76614e-11,5.67486e-11,3.97929e-11,1.39382e-16,0,31.0508,97.8234,26.3306,198.875
73 6.18281,7.1,205.139,8.1764,30.5387,19.9205,8.42545,2.70723,11.2076,18.7571,14.9702,27.9511,1.37826,18.929,7.01204,16.3979,8.81368,1.87273,2.1269,0.220793,0.469746,0.685803,0.354698,1.65644,1.85171,0.10418,0.389041,0.0998504,0.0105262,0.0324339,0.0477167,0.0104047,0.00696838,0.00575342,0.00721043,0.000632513,2.20308e-05,3.87624e-06,3.37034e-06,3.17284e-06,2.39379e-05,1.09372e-08,4.42689e-11,1.85489e-15,31.0532,100.205,29.2112,205.139
74 6.26989,7.2,211.657,8.02886,30.2453,19.8836,8.45192,2.71654,11.3401,18.9891,15.4324,28.6624,1.48435,19.2362,7.32454,17.5519,9.97086,2.17115,2.50774,0.266806,0.570613,0.857907,0.450093,2.10765,2.37585,0.137629,0.539434,0.141259,0.0146952,0.0535557,0.0841504,0.0187308,0.0126683,0.0106541,0.0161821,0.00174618,0.000111489,3.16155e-05,2.73351e-05,2.55793e-05,0.000191912,5.38688e-06,3.07794e-07,1.80322e-09,31.052,102.469,32.2016,211.657
75 6.35697,7.3,217.731,7.89304,29.9798,19.8632,8.48696,2.72843,11.477,19.2213,15.6601,29.1836,1.47148,19.4708,7.58753,18.5233,11.1369,2.49335,2.89887,0.317107,0.67989,1.05218,0.559528,2.62099,2.97378,0.181138,0.7249,0.191969,0.0230779,0.083564,0.138276,0.0313229,0.0214283,0.0184284,0.0316693,0.00412191,0.000384128,0.000141533,0.000127314,0.000123002,0.00091989,4.40415e-05,3.71393e-06,2.04603e-07,31.0786,104.072,35.0524,217.731
76 6.44405,7.4,223.849,7.73728,29.6433,19.7929,8.48882,2.72779,11.5755,19.4029,15.937,29.664,1.49688,19.6303,7.88163,19.581,12.2791,2.81445,3.29871,0.359996,0.783625,1.26441,0.680296,3.18325,3.63019,0.231588,0.948872,0.257571,0.0344279,0.123877,0.213224,0.0493487,0.0341783,0.0302974,0.0576501,0.00859058,0.00110041,0.000468159,0.000423723,0.000431094,0.0032199,0.00021926,3.07134e-05,1.47524e-05,31.0095,105.588,37.9733,223.849
77 6.53113,7.5,229.097,7.5661,29.2547,19.678,8.4664,2.71806,11.6378,19.5425,16.0172,30.0635,1.58967,19.7077,8.06548,20.3096,13.2723,3.11877,3.68617,0.412555,0.880533,1.48307,0.809709,3.79816,4.34483,0.288709,1.20902,0.335267,0.0492433,0.175913,0.314588,0.0738986,0.0515021,0.0469576,0.097639,0.0158505,0.00231889,0.00124029,0.00113011,0.00121052,0.00905248,0.000787462,0.000130263,0.00014215,30.8625,106.624,40.3868,229.098
78 6.61821,7.6,234.108,7.37334,28.7566,19.4797,8.40753,2.69803,11.6384,19.5772,16.3064,30.3366,1.54722,19.6686,8.25475,21.1627,14.329,3.41421,4.03554,0.46362,0.990991,1.69664,0.936685,4.44411,5.09579,0.351331,1.49917,0.423901,0.0678402,0.240102,0.443377,0.105465,0.0740731,0.0693129,0.154805,0.0274913,0.00505754,0.00280492,0.00257116,0.00285359,0.0216309,0.00228678,0.000440081,0.000291653,30.5853,107.329,42.9414,234.109
79 6.7053,7.7,238.296,7.19397,28.2754,19.2825,8.35377,2.6807,11.629,19.5806,16.2315,30.5153,1.63542,19.6282,8.35718,21.6189,15.1329,3.69457,4.41199,0.51562,1.10149,1.92903,1.06149,5.1097,5.88028,0.419513,1.81776,0.523804,0.0905891,0.318318,0.602875,0.144983,0.102797,0.0984806,0.232457,0.0445782,0.00985202,0.00564742,0.00514371,0.00597043,0.0456278,0.00572951,0.00114801,0.00105287,30.3169,107.577,44.8584,238.298
80 6.79238,7.8,242.643,7.00904,27.7516,19.0515,8.28665,2.65894,11.5933,19.5365,16.4458,30.6088,1.58288,19.5322,8.45841,22.2148,16.0476,3.95645,4.72774,0.565614,1.20862,2.15686,1.21104,5.78417,6.65482,0.482981,2.15664,0.633379,0.110249,0.404921,0.792654,0.192772,0.137766,0.134901,0.3331,0.0683511,0.0175367,0.0103395,0.00945282,0.0112487,0.0856852,0.0122744,0.00264861,0.00316469,29.9971,107.758,46.9466,242.651
81 6.87946,7.9,246.173,6.80423,27.1762,18.7768,8.18877,2.6258,11.5245,19.4611,16.6025,30.7495,1.66461,19.3562,8.52873,22.515,16.6176,4.19058,5.00433,0.603017,1.29902,2.38344,1.3321,6.46231,7.4443,0.539726,2.50568,0.750382,0.139805,0.500429,1.0093,0.248667,0.176748,0.173592,0.456167,0.0956577,0.0288856,0.0171381,0.0158594,0.0193992,0.147568,0.0234,0.00538428,0.00825113,29.5914,107.887,48.3276,246.193
82 6.96654,8,247.557,6.56814,26.4188,18.3822,8.0583,2.5851,11.3903,19.3969,16.5266,30.4566,1.59722,18.9374,8.52164,22.6496,16.9596,4.39296,5.214,0.657185,1.38024,2.58692,1.46047,7.07841,8.11554,0.613359,2.83642,0.851298,0.162011,0.607522,1.23597,0.31204,0.221744,0.217978,0.598804,0.134492,0.0448209,0.0271307,0.0251285,0.0311885,0.234169,0.0396126,0.00994278,0.0190417,29.0256,106.827,49.2161,247.604
83 7.05362,8.1,247.424,6.32006,25.4886,17.8744,7.91193,2.54156,11.1986,19.114,16.5521,29.8584,1.66375,18.4075,8.52404,22.642,17.0677,4.55931,5.38733,0.688573,1.45184,2.76192,1.57828,7.51454,8.63951,0.686466,3.13014,0.962414,0.197685,0.722144,1.45894,0.381394,0.270192,0.272213,0.757675,0.182557,0.0632609,0.0399698,0.0377084,0.0473723,0.347091,0.0634413,0.0170547,0.0398131,28.3279,105.319,49.6563,247.523
84 7.1407,8.2,246.231,6.09473,24.6393,17.4063,7.77192,2.49797,11.0176,18.7188,16.2785,29.1701,1.66604,17.9778,8.46898,22.1579,17.0357,4.69582,5.53332,0.726165,1.49763,2.92434,1.69102,7.82776,9.16732,0.759641,3.39606,1.0853,0.22407,0.843508,1.70524,0.457012,0.323726,0.332104,0.933233,0.24063,0.0897071,0.0572626,0.0540222,0.0687372,0.494609,0.0966189,0.0273901,0.0767097,27.6762,103.298,49.4228,246.419
85 7.22779,8.3,245.825,5.88607,23.8801,16.9816,7.62961,2.45165,10.8479,18.0789,15.7184,28.6215,1.65112,17.6255,8.45807,22.1868,17.3223,4.83012,5.65814,0.757494,1.55057,3.05845,1.79333,8.16208,9.66634,0.827814,3.66519,1.20617,0.264355,0.961067,1.97458,0.538308,0.38034,0.397006,1.12995,0.301528,0.116748,0.0789463,0.074462,0.0958801,0.679947,0.139136,0.0397273,0.137901,27.0629,101.001,49.9973,246.16
86 7.31487,8.4,245.791,5.69687,23.2139,16.6104,7.50218,2.40976,10.6993,17.8151,15.5352,28.2164,1.63729,17.3056,8.40237,21.8409,17.2926,4.92979,5.76657,0.785312,1.59993,3.20138,1.87574,8.50332,10.1527,0.893736,3.93384,1.32673,0.305199,1.09108,2.24976,0.623562,0.439971,0.466874,1.34838,0.378086,0.155721,0.105563,0.0995363,0.128726,0.903892,0.195282,0.0560003,0.0960379,26.5224,99.6112,49.8299,246.351
87 7.40195,8.5,246.034,5.50666,22.5568,16.2383,7.36668,2.36523,10.5447,17.5599,15.038,27.7599,1.62173,16.9447,8.33904,21.9502,17.5054,5.02004,5.8128,0.810423,1.63582,3.33001,1.97436,8.83964,10.5531,0.955624,4.19328,1.44185,0.347739,1.21345,2.52876,0.709159,0.494717,0.529034,1.58397,0.463895,0.201344,0.136668,0.127805,0.167788,1.16793,0.263774,0.078325,0.155946,25.9702,97.808,50.2884,246.923
88 7.48903,8.6,246.61,5.32666,21.9386,15.8857,7.23276,2.3214,10.3949,17.5063,15.2736,27.4856,1.55192,16.61,8.29499,21.6744,17.3705,5.093,5.84957,0.825439,1.66578,3.44164,2.03835,9.15964,10.9188,0.995295,4.44036,1.55164,0.362645,1.31465,2.80567,0.799527,0.558094,0.601722,1.80823,0.543968,0.253808,0.17241,0.161172,0.213965,1.46992,0.345616,0.105954,0.245668,25.4399,97.1173,49.9875,247.961
89 7.57611,8.7,247.648,5.1542,21.3468,15.5456,7.10011,2.2776,10.2468,17.4334,15.4504,27.3016,1.64306,16.3238,8.22075,21.5453,17.3669,5.14686,5.86964,0.85072,1.68695,3.53842,2.10372,9.43316,11.2141,1.04768,4.64694,1.62886,0.404698,1.42973,3.06187,0.883262,0.609756,0.672197,2.07509,0.642887,0.312527,0.209916,0.196984,0.26623,1.80464,0.440837,0.139086,0.375177,24.9233,96.6198,49.9287,249.627
90 7.6632,8.8,246.687,4.96614,20.7163,15.1674,6.93559,2.22134,10.0679,16.8324,14.8918,26.996,1.61758,15.9722,8.1186,21.4516,17.3064,5.17336,5.83753,0.856229,1.69114,3.6155,2.15479,9.69568,11.4443,1.09173,4.85172,1.71902,0.444511,1.52775,3.32657,0.967583,0.658889,0.717083,2.30648,0.729879,0.37438,0.251048,0.23533,0.323191,2.16131,0.540624,0.176482,0.554038,24.3243,94.4965,49.7689,249.486
91 7.75028,8.9,246.457,4.79071,20.12,14.8095,6.78428,2.1704,9.90283,16.5853,14.7063,26.7033,1.59505,15.6572,8.08238,21.3149,17.1744,5.1959,5.79371,0.871579,1.68979,3.68339,2.20031,9.9129,11.6115,1.13177,5.03589,1.80233,0.484153,1.61776,3.53284,1.04359,0.702855,0.778192,2.56,0.836999,0.414272,0.291449,0.275865,0.3856,2.54057,0.654905,0.218775,0.793274,23.7642,93.2324,49.4789,250.304
92 7.83736,9,247.377,4.64069,19.6197,14.5181,6.66394,2.12957,9.77884,16.406,14.5782,26.5008,1.57769,15.3708,8.01977,21.5342,17.2386,5.23035,5.75691,0.878433,1.69126,3.75406,2.24767,10.1388,11.7475,1.1718,5.2189,1.88529,0.521371,1.70172,3.74284,1.12076,0.740733,0.837538,2.82405,0.927273,0.479327,0.337179,0.318688,0.453771,2.93786,0.772629,0.258579,1.10501,23.3116,92.2321,49.7601,252.55
93 7.92444,9.1,246.207,4.48233,19.067,14.1821,6.52343,2.08346,9.62089,16.1612,14.0426,26.0924,1.5571,15.0407,7.98424,21.2396,16.8776,5.23307,5.69347,0.88588,1.6785,3.79859,2.27906,10.3048,11.8212,1.20335,5.3619,1.95232,0.557677,1.77062,3.91258,1.19253,0.781851,0.891184,3.06389,1.05486,0.535566,0.375984,0.357205,0.519356,3.32396,0.89984,0.308194,1.49529,22.789,90.4992,49.0438,252.984
94 8.01152,9.2,245.039,4.32192,18.4964,13.8272,6.37284,2.03425,9.44441,16.0846,14.2593,25.7699,1.47364,14.6945,7.87536,21.3296,16.8422,5.22018,5.61208,0.891085,1.66818,3.81854,2.30037,10.4186,11.8183,1.22991,5.47253,2.00853,0.588978,1.82763,4.0491,1.25067,0.807211,0.938694,3.2875,1.14186,0.618846,0.42806,0.403257,0.589138,3.69341,1.01942,0.35169,0.759254,22.2343,89.6017,49.004,253.703
95 8.0986,9.3,244.233,4.15784,17.9034,13.4488,6.2077,1.98006,9.2459,15.9459,14.3819,25.4796,1.55896,14.3646,7.74602,21.0935,16.5885,5.187,5.52137,0.891581,1.6529,3.82798,2.30311,10.4802,11.7752,1.24745,5.55291,2.04946,0.59635,1.85398,4.15831,1.30283,0.834664,0.978142,3.48702,1.25423,0.667645,0.46243,0.437429,0.655786,4.06217,1.14665,0.39435,1.34878,21.6366,88.723,48.3904,255.049
96 8.18569,9.4,241.656,3.98834,17.2769,13.038,6.02495,1.91998,9.02046,15.2254,13.7041,24.9939,1.52743,14.014,7.64861,20.7978,16.3149,5.12954,5.40512,0.888635,1.62971,3.82011,2.29907,10.4733,11.6711,1.25902,5.59577,2.07807,0.64311,1.8821,4.22605,1.33813,0.844793,1.00947,3.65483,1.33153,0.750261,0.500992,0.468096,0.714681,4.3779,1.26674,0.445553,2.45805,20.9829,86.1339,47.6473,254.95
97 8.27277,9.5,238.885,3.84462,16.752,12.6973,5.87267,1.86946,8.83944,14.952,13.486,24.6235,1.501,13.7158,7.52586,20.5855,16.1206,5.09042,5.31363,0.884918,1.61221,3.81986,2.30027,10.5002,11.6085,1.26178,5.6471,2.10466,0.648735,1.91007,4.31982,1.37633,0.85804,1.02114,3.79396,1.39284,0.787959,0.537421,0.505914,0.781272,4.71618,1.3892,0.496323,1.82011,20.4394,84.6436,47.1102,254.969
98 8.35985,9.6,236.368,3.72149,16.3077,12.4127,5.74477,1.8266,8.69393,14.7395,13.3197,24.3441,1.47868,13.482,7.42931,20.1644,15.8112,5.0625,5.24301,0.886699,1.59722,3.82834,2.30367,10.5357,11.5804,1.27336,5.69558,2.11996,0.673318,1.93514,4.39372,1.40861,0.869983,1.04782,3.95334,1.47408,0.822761,0.566724,0.533353,0.83835,5.01913,1.51161,0.54835,1.16914,19.9841,83.4872,46.2811,255.755
99 8.44693,9.7,234.395,3.578,15.7659,12.0485,5.57831,1.77155,8.48905,14.4264,12.6902,23.7751,1.44834,13.1677,7.3388,19.9625,15.5719,4.99647,5.13547,0.879357,1.57405,3.80606,2.29,10.4838,11.4574,1.27671,5.70102,2.13115,0.691601,1.94308,4.43415,1.42494,0.868734,1.06554,4.06714,1.54095,0.89406,0.600617,0.562697,0.893641,5.27631,1.59731,0.594483,2.59595,19.3983,81.3356,45.6663,257.135
100 8.53401,9.8,231.574,3.44388,15.256,11.7038,5.41972,1.71899,8.29282,14.3382,12.9012,23.369,1.35328,12.8752,7.20007,19.9961,15.5654,4.93097,5.03338,0.871968,1.54889,3.78324,2.27398,10.4268,11.3427,1.27713,5.70113,2.13673,0.709852,1.94492,4.46575,1.43991,0.871999,1.07814,4.16563,1.59879,0.911136,0.617596,0.579564,0.935262,5.50215,1.69533,0.617556,1.67939,18.8425,80.3299,45.5258,258.092
101 8.6211,9.9,231.802,3.32511,14.8056,11.4006,5.27965,1.67241,8.12248,14.2602,13.0806,23.1248,1.44354,12.6565,7.08011,19.7731,15.3989,4.87545,4.94587,0.865888,1.52737,3.76378,2.26219,10.3839,11.2486,1.27926,5.70479,2.14409,0.724779,1.94794,4.4963,1.45021,0.86826,1.09065,4.25524,1.66215,0.985555,0.646836,0.602982,0.978268,5.7041,1.78699,0.679789,3.49716,18.3526,79.7683,44.9933,262.379
102 8.70818,10,226.825,3.2044,14.3383,11.0798,5.13151,1.62339,7.93706,13.5846,12.4303,22.7082,1.4148,12.4174,7.00258,19.5095,15.2269,4.81254,4.84969,0.858001,1.50372,3.73392,2.24136,10.3123,11.1306,1.27668,5.68954,2.14227,0.739183,1.94185,4.50823,1.45575,0.866462,1.09673,4.3224,1.69672,0.989636,0.657403,0.613391,1.01305,5.88515,1.86537,0.696943,2.31755,17.8347,77.4949,44.3986,261.686
103 8.79526,10.1,231.684,3.1179,14.1027,10.8967,5.02278,1.58658,7.82605,13.521,12.3738,23.3634,1.3931,12.3711,6.91843,19.9505,15.4362,4.78273,4.80011,0.854227,1.49055,3.73707,2.23233,10.8402,11.8839,1.2795,5.81482,2.14987,0.752028,1.9474,4.60565,1.46335,0.864676,1.10845,4.46481,1.7588,1.06166,0.68164,0.628912,1.04362,6.3781,1.94956,0.733507,4.49638,17.506,77.7668,44.9696,272.875
104 8.88234,10.2,227.399,3.02247,13.7308,10.6454,4.9077,1.54825,7.68691,13.3079,12.2023,23.0188,1.3705,12.1714,6.81879,19.4333,15.1062,4.74006,4.73943,0.856372,1.47927,3.71976,2.21895,10.7796,11.774,1.27612,5.81194,2.15135,0.754738,1.93706,4.62172,1.46893,0.863158,1.11359,4.50904,1.75802,1.05636,0.689909,0.640522,1.07672,6.53197,2.01696,0.766864,3.0761,17.1014,76.5766,44.019,273.663
105 8.96942,10.3,222.466,2.91018,13.2769,10.3263,4.7609,1.5001,7.49587,13.228,12.0321,22.4177,1.26978,11.8951,6.73067,19.1862,14.8741,4.66514,4.64538,0.847805,1.46296,3.68309,2.19073,10.6398,11.583,1.26581,5.76237,2.13376,0.765598,1.92084,4.59495,1.45952,0.851017,1.11281,4.54375,1.82699,1.11697,0.696707,0.642154,1.09136,6.59444,2.0639,0.7915,1.60998,16.5873,75.0692,43.3709,273.909
106 9.0565,10.4,220.83,2.78397,12.7533,9.94919,4.58709,1.44356,7.25839,13.0314,12.1153,21.9051,1.33126,11.5511,6.55184,19.0806,14.7906,4.56113,4.52592,0.83511,1.43449,3.62595,2.15488,10.4286,11.3193,1.24921,5.67341,2.1106,0.772531,1.89397,4.54319,1.43898,0.833199,1.09721,4.5128,1.79405,1.09301,0.697791,0.643842,1.09986,6.59968,2.07543,0.810558,3.87299,15.9798,73.7445,42.9582,276.941
107 9.14359,10.5,214.529,2.67049,12.2821,9.6094,4.4304,1.39256,7.04485,12.6786,11.8149,21.3294,1.32359,11.2731,6.39096,18.6892,14.5259,4.46847,4.42054,0.823983,1.40961,3.57057,2.12552,10.2492,11.0875,1.23445,5.59504,2.08407,0.780397,1.86906,4.48984,1.42045,0.820908,1.0906,4.49845,1.80253,1.08978,0.693595,0.639351,1.10157,6.60098,2.10862,0.825753,2.17306,15.4323,71.8555,42.1041,275.719
108 9.23067,10.6,211.139,2.55312,11.7876,9.24805,4.26371,1.33857,6.81243,11.8881,11.0532,20.6943,1.28837,10.9639,6.26849,18.2444,14.2283,4.36556,4.30573,0.810902,1.38214,3.50378,2.08418,10.0425,10.8342,1.22557,5.49622,2.05121,0.779391,1.83978,4.42195,1.39469,0.802394,1.08176,4.4608,1.83927,1.14195,0.694,0.636193,1.10025,6.56023,2.1046,0.837798,4.70879,14.8503,68.9688,41.144,277.11
109 9.31775,10.7,207.697,2.48931,11.5361,9.07456,4.18355,1.31188,6.71599,11.7422,10.9369,20.4654,1.271,10.8358,6.19768,18.1228,14.1804,4.34063,4.27181,0.810216,1.37425,3.49664,2.07699,10.0202,10.7863,1.2339,5.50346,2.04784,0.782218,1.83306,4.43383,1.39567,0.800718,1.08488,4.49568,1.82526,1.11767,0.696376,0.638154,1.11198,6.63024,2.13957,0.84452,2.84119,14.57,68.165,40.9156,279.766
110 9.40483,10.8,205.679,2.39911,11.1587,8.79949,4.0566,1.27064,6.54239,11.4601,10.2797,19.8711,1.24365,10.5883,6.06422,17.456,13.749,4.26825,4.19271,0.803743,1.35841,3.45204,2.04862,9.88212,10.6144,1.22356,5.45093,2.03766,0.782269,1.80896,4.39029,1.37841,0.787903,1.08025,4.47703,1.87013,1.17105,0.697234,0.634318,1.10878,6.60489,2.14894,0.854789,5.61266,14.1267,66.0494,39.666,283.253
111 9.49191,10.9,200.655,2.30521,10.7605,8.50504,3.92057,1.22671,6.35148,11.3789,10.5106,19.3777,1.13819,10.3142,5.96852,17.5328,13.7353,4.18404,4.10378,0.794191,1.34173,3.40095,2.01467,9.71392,10.4114,1.21055,5.37294,2.02443,0.796358,1.78033,4.33157,1.35614,0.773014,1.06733,4.44307,1.82761,1.13253,0.689812,0.628235,1.10351,6.56008,2.14582,0.862854,3.55888,13.6523,65.0395,39.5559,283.263
112 9.57899,11,199.227,2.20149,10.3128,8.16879,3.76513,1.17682,6.12624,11.2009,10.6108,18.887,1.22853,10.0151,5.79166,17.0852,13.4304,4.07738,3.99462,0.781393,1.31707,3.33384,1.97401,9.49095,10.1509,1.19272,5.26412,1.98958,0.794843,1.74334,4.2467,1.32525,0.754182,1.05041,4.37434,1.86157,1.17855,0.68071,0.616417,1.08682,6.45863,2.12865,0.864373,6.49452,13.1107,63.8602,38.5876,286.581
113 9.66608,11.1,191.326,2.10861,9.91247,7.86781,3.62577,1.13205,5.92464,10.4362,9.86172,18.3298,1.19687,9.72275,5.63298,16.6866,13.1612,3.98231,3.89886,0.770264,1.2957,3.27219,1.93989,9.30632,9.92677,1.17715,5.16945,1.95901,0.810332,1.7222,4.17265,1.29773,0.737522,1.03552,4.31463,1.79865,1.13433,0.673136,0.608713,1.07414,6.37363,2.10631,0.86722,4.30232,12.6256,61.105,37.7289,283.264
114 9.75316,11.2,185.215,2.02785,9.56597,7.60782,3.50511,1.09325,5.75139,10.1499,9.61327,17.8563,1.16899,9.4998,5.54887,16.3524,12.9474,3.90396,3.81898,0.761284,1.2783,3.22218,1.90915,9.155,9.74721,1.17048,5.09337,1.93408,0.810667,1.70837,4.12924,1.27632,0.723613,1.02324,4.2678,1.78372,1.12852,0.665063,0.600126,1.06194,6.30902,2.10042,0.869304,2.07545,12.2062,59.5885,37.0228,282.219
115 9.84024,11.3,183.821,1.94055,9.18555,7.31902,3.37112,1.0504,5.55415,9.81999,9.32447,17.3072,1.138,9.21012,5.39033,15.9521,12.6792,3.80996,3.72531,0.750107,1.25718,3.15855,1.8709,8.96227,9.52146,1.16164,5.00026,1.90218,0.809863,1.67727,4.05324,1.24962,0.713443,1.05646,4.3,1.88256,1.17716,0.657935,0.591019,1.04579,6.20913,2.07277,0.869188,5.0931,11.7405,57.7442,36.1665,285.107
116 9.92732,11.4,178.857,1.89339,8.99318,7.17816,3.30524,1.02885,5.46739,9.68441,8.77691,16.9587,1.12161,9.09326,5.37221,15.5374,12.3728,3.7834,3.69756,0.749181,1.25322,3.14758,1.86234,8.9379,9.47809,1.16049,4.99686,1.90525,0.812458,1.67057,4.04946,1.24441,0.709267,1.03113,4.27189,1.88684,1.18088,0.657007,0.589495,1.04595,6.22325,2.08078,0.87105,2.77682,11.5123,56.4745,35.3912,286.271
117 10.0144,11.5,177.665,1.79509,8.55537,6.83976,3.14845,0.979108,5.22801,9.51581,8.92916,16.2984,1.00508,8.73466,5.17692,15.379,12.2448,3.65985,3.57708,0.734222,1.22781,3.06114,1.81063,8.66803,9.17064,1.13935,4.85712,1.87133,0.820355,1.62856,3.93768,1.20514,0.688121,1.01209,4.13752,1.81731,1.16986,0.641815,0.573773,1.01808,6.06124,2.03999,0.864685,6.44189,10.9673,54.888,34.8608,288.217
118 10.1015,11.6,174.423,1.73698,8.30683,6.65104,3.0605,0.95084,5.10097,9.50965,9.18395,16.0947,1.10895,8.57926,5.07316,15.1447,12.1052,3.60558,3.5237,0.728915,1.21767,3.03037,1.79327,8.57483,9.05148,1.13213,4.80857,1.8559,0.821817,1.61161,3.9011,1.18963,0.679145,1.00498,4.10921,1.80988,1.16864,0.636427,0.56785,1.00891,6.01685,2.02779,0.867919,5.07191,10.6624,54.6507,34.3792,289.586
119 10.1886,11.7,166.554,1.65,7.91809,6.34908,2.92029,0.906423,4.885,8.70056,8.38512,15.4727,1.0749,8.27944,4.9453,14.6725,11.7623,3.49062,3.41495,0.715304,1.19386,2.95095,1.74705,8.33268,8.77419,1.11284,4.68062,1.81704,0.832298,1.58205,3.79823,1.15344,0.65998,0.987697,4.01618,1.73778,1.12045,0.622373,0.553309,0.98249,5.86553,1.98479,0.857645,3.64826,10.1758,51.743,33.3403,284.43
120 10.2756,11.8,162.734,1.59565,7.68378,6.16996,2.83646,0.879586,4.76163,8.4963,8.20435,15.1353,1.05311,8.09883,4.84244,14.4345,11.6182,3.43407,3.35982,0.709739,1.18361,2.91701,1.7263,8.23416,8.65322,1.10909,4.62916,1.80084,0.834076,1.57468,3.77102,1.13955,0.662582,1.05567,4.08867,1.85411,1.18269,0.619667,0.546992,0.971907,5.81336,1.9698,0.854903,2.22764,9.886,50.592,32.8466,285.433
121 10.3627,11.9,163.965,1.54235,7.45272,5.99253,2.75341,0.853061,4.6382,8.29094,8.02195,14.7955,1.03137,7.91683,4.73857,13.7949,11.2065,3.37865,3.30456,0.702033,1.17153,2.88163,1.70486,8.13141,8.52674,1.10622,4.57954,1.7839,0.835556,1.55837,3.73066,1.12318,0.646759,1.02195,4.05847,1.849,1.18288,0.617504,0.544671,0.964368,5.76352,1.95311,0.851705,6.96306,9.599,49.4333,31.6846,290.859
122 10.4498,12,159.233,1.46835,7.11994,5.73207,2.63232,0.814814,5.05792,8.45843,7.80876,14.189,1.001,7.62797,4.62718,13.4405,10.893,3.27901,3.20912,0.690644,1.15039,2.80941,1.66354,7.91257,8.27719,1.09008,4.46917,1.7553,0.834375,1.52576,3.63882,1.09096,0.630209,0.977992,3.93458,1.82904,1.1761,0.605637,0.532152,0.940603,5.6335,1.93032,0.851661,5.9238,9.1792,48.7703,30.8217,288.125
123 10.5369,12.1,155.359,1.42267,6.92268,5.57978,2.56101,0.792044,4.34241,8.03207,7.64889,13.8397,0.897928,7.47047,4.53541,13.6162,11.0214,3.23178,3.16407,0.686529,1.14294,2.78024,1.64545,7.8285,8.17181,1.08452,4.42502,1.74896,0.844114,1.51228,3.60601,1.07722,0.622923,0.972806,3.86492,1.77144,1.17685,0.601375,0.527247,0.931759,5.59158,1.9185,0.860214,4.88755,8.93283,46.7669,31.0335,288.088
124 10.624,12.2,150.053,1.34899,6.58739,5.31534,2.43826,0.753426,4.14718,7.90096,7.78767,13.4062,0.992257,7.19316,4.36891,13.1692,10.7001,3.12484,3.06186,0.673851,1.12139,2.70268,1.60133,7.58752,7.89966,1.06643,4.29728,1.71185,0.851998,1.48285,3.50323,1.04196,0.605033,0.957026,3.76968,1.74614,1.16824,0.588131,0.513411,0.905007,5.43684,1.87458,0.850698,3.80093,8.50703,45.7963,30.056,284.043
125 10.7111,12.3,145.406,1.30399,6.39049,5.1622,2.36647,0.730625,4.0372,7.2675,7.14211,13.0967,0.971874,7.051,4.31917,12.9436,10.5382,3.06819,3.01237,0.668835,1.11261,2.66905,1.5816,7.48805,7.78004,1.06087,4.24432,1.6966,0.854408,1.47462,3.46754,1.0262,0.59689,0.950781,3.73498,1.68059,1.1199,0.582937,0.507632,0.894114,5.38207,1.8588,0.848608,2.72211,8.2593,43.8855,29.5623,282.789
126 10.7981,12.4,140.094,1.24007,6.09927,4.93224,2.25949,0.697017,3.86593,6.97112,6.8713,12.5901,0.943438,6.78385,4.17066,12.5475,10.255,2.97025,2.91406,0.655001,1.09385,2.60047,1.54274,7.27395,7.53889,1.04763,4.13333,1.66396,0.854206,1.44436,3.38185,0.996876,0.584893,0.985393,3.7645,1.79414,1.17582,0.575039,0.49657,0.870359,5.24536,1.81986,0.840351,1.60349,7.88875,42.1964,28.6868,279.083
127 10.8852,12.5,142.091,1.19798,5.91365,4.78709,2.19145,0.675477,3.76004,6.79152,6.70722,12.2882,0.923739,6.62152,4.07657,11.8933,9.82724,2.9189,2.86569,0.647927,1.08107,2.56597,1.52275,7.1704,7.4157,1.04159,4.0816,1.65157,0.856133,1.42966,3.34023,0.98097,0.576986,0.946539,3.68428,1.79006,1.17715,0.570369,0.492223,0.861405,5.1949,1.80797,0.837844,6.92644,7.65401,41.1688,27.5051,283.805
128 10.9723,12.6,138.925,1.15962,5.74528,4.6554,2.12976,0.65593,3.66393,6.87618,6.63292,11.8967,0.817838,6.47403,4.03439,11.75,9.68261,2.87293,2.82247,0.644219,1.07081,2.53247,1.50507,7.07982,7.30696,1.03647,4.03404,1.63843,0.858138,1.41685,3.30425,0.966934,0.570036,0.941979,3.6557,1.78727,1.17899,0.566443,0.487556,0.852027,5.14759,1.80007,0.842196,5.83116,7.44109,40.3959,27.128,283.006
129 11.0594,12.7,134.984,1.10245,5.48216,4.44642,2.03283,0.625586,3.50624,6.81138,6.83358,11.5673,0.898178,6.22446,3.89478,11.7776,9.67618,2.78383,2.73787,0.634285,1.05416,2.46411,1.46592,6.87045,7.07361,1.02215,3.92396,1.61222,0.863128,1.3877,3.21546,0.937002,0.555281,0.92958,3.52287,1.70679,1.17383,0.555866,0.476286,0.829349,5.0142,1.76324,0.841677,4.68958,7.10483,39.736,26.9755,279.016
130 11.1465,12.8,130.871,1.06036,5.29235,4.29645,1.96299,0.603632,3.3942,6.61183,6.6477,11.2366,0.896559,6.07041,3.79338,11.5242,9.50299,2.72443,2.68175,0.628452,1.04431,2.42259,1.4409,6.73808,6.92386,1.01383,3.85495,1.59374,0.871285,1.37392,3.16128,0.917782,0.545836,0.922323,3.47378,1.63151,1.11924,0.549697,0.469441,0.81547,4.93675,1.74202,0.838903,3.54094,6.86307,38.6507,26.4334,276.334
131 11.2335,12.9,124.936,1.01012,5.06048,4.11213,1.87747,0.576906,3.25406,5.91466,5.93862,10.8123,0.872073,5.86841,3.70935,11.1876,9.22996,2.63129,2.59864,0.619616,1.02953,2.36348,1.40822,6.5465,6.71141,0.999985,3.75517,1.5665,0.872344,1.35317,3.08432,0.890843,0.532629,0.911233,3.39871,1.61169,1.11314,0.54027,0.459376,0.795052,4.81623,1.70886,0.832931,2.3603,6.56651,36.3694,25.6475,270.909
132 11.3206,13,121.964,0.976932,4.91264,3.99574,1.82305,0.559775,3.16696,5.76483,5.79859,10.5567,0.854701,5.73062,3.6279,10.9941,9.10461,2.58751,2.55062,0.61132,1.02287,2.3332,1.39134,6.45108,6.60065,0.994659,3.70499,1.55351,0.875159,1.34109,3.04976,0.878086,0.528556,0.956143,3.48747,1.7516,1.178,0.538265,0.455887,0.78588,4.7645,1.69478,0.831855,1.17831,6.37857,35.5003,25.2368,270.435
133 11.4077,13.1,122.264,0.928257,4.68547,3.81453,1.73916,0.533629,3.02781,5.51944,5.10759,9.9846,0.830514,5.50592,3.5017,10.1901,8.54808,2.50651,2.474,0.598517,1.00083,2.27146,1.35742,6.25028,6.38036,0.982311,3.60067,1.5253,0.875589,1.31467,2.96466,0.850035,0.515062,0.907007,3.35728,1.73702,1.17501,0.528857,0.445656,0.765183,4.63938,1.66253,0.825125,6.83595,6.08732,33.4776,23.7187,269.409
134 11.4948,13.2,120.382,0.897721,4.54848,3.70645,1.6888,0.517806,2.94624,5.6255,5.50792,9.76669,0.724571,5.37529,3.46429,10.472,8.68343,2.46424,2.43453,0.595445,0.989137,2.23593,1.34095,6.15537,6.27182,0.977895,3.55182,1.51431,0.879457,1.30277,2.92665,0.836274,0.508585,0.903096,3.26875,1.66584,1.17776,0.525347,0.441342,0.755831,4.58774,1.65291,0.828103,5.66471,5.91306,33.4105,24.0542,268.826
135 11.5819,13.3,116.319,0.851962,4.33305,3.53415,1.60927,0.493075,2.81319,5.59996,5.74107,9.49883,0.825384,5.17834,3.34185,10.1392,8.4358,2.38482,2.35935,0.586994,0.975145,2.16995,1.3034,5.95449,6.05327,0.965432,3.44739,1.48707,0.880391,1.27643,2.84105,0.808417,0.495215,0.892239,3.18836,1.64825,1.17421,0.515885,0.431122,0.734529,4.45742,1.61835,0.82679,4.44767,5.63649,32.9986,23.3191,263.454
136 11.669,13.4,111.678,0.821057,4.19182,3.42215,1.55727,0.476812,2.72758,4.9924,5.11143,9.2388,0.808063,5.03905,3.25979,9.93672,8.25611,2.32817,2.31503,0.582991,0.968501,2.13626,1.28135,5.83516,5.92599,0.959556,3.38925,1.47291,0.886148,1.26435,2.79491,0.792495,0.487695,0.887057,3.14643,1.56739,1.11434,0.511346,0.425843,0.723189,4.39181,1.6016,0.825743,3.2238,5.45624,31.1771,22.836,259.398
137 11.756,13.5,108.438,0.79308,4.06455,3.32138,1.51044,0.462159,2.65048,4.85753,4.98295,9.00484,0.791959,4.93296,3.22236,9.75518,8.13481,2.2777,2.26569,0.579607,0.96289,2.10645,1.26538,5.73546,5.8126,0.950679,3.33781,1.46059,0.889566,1.25508,2.75817,0.778743,0.481065,0.882644,3.1098,1.55949,1.11423,0.507503,0.421291,0.713304,4.3354,1.58735,0.825222,1.97995,5.29398,30.4431,22.4334,257.486
138 11.8431,13.6,110.66,0.747333,3.8449,3.14484,1.42924,0.437017,2.51247,4.61038,4.74996,8.56858,0.76787,4.70463,3.09444,9.39548,7.86097,2.19245,2.17519,0.563782,0.946834,2.03886,1.22905,5.50776,5.56871,0.933604,3.21652,1.42944,0.890133,1.22625,2.6603,0.748023,0.467805,0.920503,3.14742,1.69412,1.17316,0.496916,0.409851,0.689183,4.18319,1.54678,0.817776,7.91784,5.0111,29.0083,21.6241,257.54
139 11.9302,13.7,106.407,0.724444,3.74143,3.0632,1.39129,0.425125,2.44986,4.50099,4.18233,8.23349,0.75386,4.60158,3.06783,8.83186,7.44474,2.15975,2.14501,0.55618,0.933447,2.01543,1.21661,5.42865,5.48023,0.931315,3.17387,1.41706,0.893519,1.21754,2.62901,0.736819,0.462809,0.874642,3.0622,1.69551,1.17796,0.494709,0.406744,0.681817,4.14167,1.53773,0.818047,6.70653,4.87961,27.7899,20.5814,254.226
140 12.0173,13.8,104.382,0.698689,3.62225,2.96856,1.34752,0.411474,2.37674,4.61742,4.58791,8.03046,0.648061,4.48015,2.99489,9.05525,7.5869,2.11863,2.1067,0.55335,0.919397,1.9759,1.20018,5.32413,5.36592,0.927031,3.12094,1.40244,0.893643,1.20535,2.58612,0.722281,0.456181,0.870749,2.96067,1.61486,1.18099,0.491024,0.402196,0.671537,4.08015,1.52452,0.818948,5.46175,4.72755,27.7356,20.8675,251.85
141 12.1044,13.9,101.986,0.673079,3.50284,2.87358,1.30366,0.397816,2.30312,4.6959,4.91379,7.94489,0.754379,4.37533,2.92138,8.87413,7.45992,2.07631,2.06722,0.550235,0.914322,1.93635,1.17062,5.20896,5.24729,0.922289,3.06546,1.38999,0.896879,1.19248,2.5409,0.70716,0.44926,0.866442,2.91945,1.60926,1.18343,0.487012,0.397355,0.660673,4.01444,1.5088,0.820899,4.18899,4.57506,27.9088,20.4776,249.46
142 12.1914,14,95.7918,0.633342,3.30866,2.71704,1.23196,0.375688,2.17985,4.01877,4.21806,7.54896,0.732185,4.18619,2.83906,8.54571,7.15623,1.98592,1.99257,0.541834,0.900559,1.87381,1.13757,4.98635,5.01352,0.909542,2.95359,1.36172,0.896943,1.16398,2.44627,0.677756,0.435378,0.855112,2.82954,1.50666,1.11042,0.476883,0.386442,0.63748,3.86573,1.47051,0.814729,2.86925,4.32469,25.7231,19.6804,240.206
143 12.2785,14.1,91.6093,0.598616,3.13922,2.58055,1.16944,0.35639,2.07235,3.82475,4.03289,7.20336,0.712173,4.00479,2.73562,8.25976,6.93892,1.90716,1.91555,0.534806,0.889063,1.81974,1.10912,4.79772,4.81006,0.891864,2.85647,1.33754,0.898952,1.14139,2.36477,0.652179,0.435185,0.940924,2.8844,1.64852,1.16754,0.467183,0.377077,0.617432,3.73728,1.43773,0.809855,1.53094,4.10638,24.5859,19.0214,233.573
144 12.3656,14.2,94.7777,0.57369,3.02,2.48513,1.12561,0.342809,1.99758,3.69067,3.90338,6.96519,0.696582,3.87803,2.66056,7.58535,6.48207,1.86281,1.86179,0.515453,0.86979,1.78491,1.09104,4.67449,4.67836,0.880256,2.78732,1.3228,0.902049,1.12753,2.31275,0.635383,0.41586,0.890624,2.84169,1.64558,1.17081,0.461671,0.370383,0.603917,3.65625,1.41824,0.808273,7.78104,3.95354,23.792,17.792,236.363
145 12.4527,14.3,91.9185,0.553023,2.92214,2.40726,1.08979,0.331686,1.93674,3.82789,3.8617,6.71038,0.682922,3.77436,2.6305,7.46626,6.35624,1.82787,1.82941,0.513664,0.854003,1.74578,1.07716,4.57788,4.57466,0.877378,2.73318,1.30506,0.905451,1.11716,2.27257,0.622147,0.410038,0.838507,2.73948,1.64549,1.17522,0.458652,0.366409,0.594462,3.59548,1.40177,0.806703,6.50205,3.82874,23.4245,17.4798,232.912
146 12.5398,14.4,89.1002,0.531743,2.82019,2.3259,1.05246,0.320119,1.87303,3.71042,3.74972,6.44649,0.578266,3.66527,2.56451,7.71452,6.51166,1.79016,1.79432,0.511369,0.850336,1.7054,1.05293,4.47204,4.46177,0.8737,2.68028,1.28747,0.901572,1.10547,2.22794,0.607715,0.403618,0.834966,2.62791,1.55561,1.17875,0.45503,0.361867,0.583881,3.5281,1.38663,0.805961,5.19113,3.69848,22.5877,17.8107,228.987
147 12.6269,14.5,85.3372,0.49897,2.6562,2.19318,0.991946,0.301521,1.76779,3.72549,4.01251,6.24431,0.677906,3.50168,2.46241,7.42734,6.28721,1.7215,1.72937,0.504574,0.839269,1.65009,1.01533,4.26475,4.25253,0.863162,2.57872,1.26303,0.897371,1.07715,2.14049,0.580959,0.39119,0.825337,2.54462,1.53934,1.17659,0.446055,0.352018,0.562517,3.3872,1.35159,0.801171,3.83281,3.48664,22.3921,17.1654,221.718
148 12.7139,14.6,60.2212,0.313435,1.67469,1.38436,0.625866,0.190124,1.11689,2.07174,2.40531,4.05994,0.58625,2.40933,1.91683,5.51573,4.60282,1.23934,1.27894,0.440926,0.734699,1.24776,0.801153,2.85698,2.79094,0.755557,1.85254,1.06595,0.875542,0.889363,1.50185,0.395522,0.301661,0.739085,1.91811,1.2813,1.02808,0.369166,0.274413,0.403088,2.30609,1.06347,0.731393,2.20494,2.20034,14.5663,12.6368,155.583
149 12.801,14.7,61.5763,0.32866,1.76247,1.45862,0.659183,0.20012,1.1779,2.18696,2.50743,4.26991,0.588709,2.50975,1.95871,5.71432,4.7959,1.27813,1.3,0.441274,0.751203,1.295,0.827471,3.01086,2.94774,0.761095,1.9245,1.09218,0.884819,0.913287,1.57233,0.414726,0.310439,0.798854,2.13155,1.47359,1.10333,0.375229,0.282871,0.421819,2.43484,1.10124,0.745012,0.864293,2.31792,15.1994,13.0884,164.174
150 12.8881,14.8,65.9065,0.320272,1.72374,1.42826,0.645227,0.195762,1.15446,2.1454,2.00242,4.05022,0.580103,2.46645,1.92731,5.16247,4.44198,1.26822,1.29158,0.433559,0.737646,1.28824,0.824883,2.97816,2.91163,0.763652,1.90069,1.08025,0.890081,0.912133,1.55979,0.410139,0.308962,0.747541,2.05134,1.48221,1.11215,0.375884,0.281119,0.41695,2.41049,1.09483,0.74837,7.38194,2.26925,14.3263,12.1643,168.455
151 12.9752,14.9,66.368,0.324874,1.75473,1.45576,0.657417,0.199338,1.17781,2.433,2.5615,4.15455,0.486277,2.50295,1.96671,5.27767,4.51815,1.2924,1.31599,0.44019,0.733289,1.29646,0.838033,3.04873,2.98247,0.773399,1.94011,1.09489,0.897168,0.924598,1.59441,0.419166,0.314066,0.755685,2.09141,1.50312,1.12651,0.382296,0.286507,0.426344,2.47506,1.1115,0.752761,6.08073,2.31252,15.2828,12.4042,172.552
152 13.0623,15,66.3536,0.320631,1.73791,1.44366,0.651728,0.197494,1.16914,2.6251,2.98834,4.27112,0.597549,2.50008,1.94805,5.68784,4.80686,1.29274,1.31739,0.443328,0.73858,1.28524,0.829151,3.04736,2.97905,0.777816,1.94204,1.08941,0.891429,0.927325,1.59598,0.418698,0.314531,0.759094,2.01752,1.41692,1.13638,0.384551,0.287784,0.427402,2.48275,1.11742,0.754598,4.73364,2.29288,16.0994,13.1048,174.031
153 13.1493,15.1,49.1371,0.198151,1.07777,0.896454,0.404568,0.122523,0.7267,1.79702,2.20864,2.76951,0.533671,1.73867,1.55102,4.37265,3.68496,0.972155,1.00916,0.400847,0.668813,1.00816,0.671945,2.05598,1.9626,0.712503,1.43537,0.954699,0.867568,0.792675,1.14731,0.289228,0.252375,0.700206,1.57598,1.20384,1.00639,0.331112,0.233496,0.315096,1.70962,0.914431,0.707279,3.15599,1.42355,11.3252,10.0389,125.002
154 13.2364,15.2,49.6387,0.217798,1.1887,0.990002,0.446668,0.135192,0.803356,1.49812,1.86589,3.03208,0.538282,1.88066,1.63545,4.6179,3.85143,1.0046,1.05336,0.412573,0.688223,1.06519,0.7036,2.23282,2.14114,0.716708,1.53429,0.986029,0.877979,0.814294,1.22988,0.313458,0.264777,0.715211,1.66495,1.23233,1.02406,0.343775,0.245231,0.337586,1.86365,0.959373,0.723129,1.78894,1.57186,11.2538,10.5273,133.256
155 13.3235,15.3,55.6067,0.207643,1.13713,0.948286,0.427746,0.129388,0.770308,1.43769,1.80398,2.92084,0.528528,1.81956,1.59543,4.53157,3.79592,0.98679,1.0203,0.401873,0.688471,1.05098,0.697281,2.17077,2.07509,0.704439,1.49167,0.981789,0.883144,0.80967,1.19879,0.303475,0.258318,0.760429,1.78533,1.40487,1.08453,0.335024,0.238562,0.329351,1.81897,0.951077,0.725225,8.39647,1.50542,10.8763,10.3346,138.738
156 13.4106,15.4,54.0924,0.215881,1.1862,0.990527,0.446703,0.135043,0.805473,1.50455,1.40662,2.89998,0.527832,1.8757,1.61517,4.14059,3.58201,1.01935,1.05276,0.399038,0.682945,1.08081,0.71434,2.26392,2.16952,0.716197,1.53068,0.984871,0.891149,0.825462,1.24335,0.315486,0.264947,0.712245,1.75473,1.42938,1.1009,0.342832,0.245267,0.339368,1.88738,0.967956,0.735576,7.08965,1.57227,10.6353,9.7947,141.101
157 13.4977,15.5,54.5884,0.218368,1.2038,1.0066,0.453849,0.137124,0.819429,1.76997,1.93981,2.96975,0.433787,1.89554,1.64406,4.64429,3.90959,1.03598,1.06983,0.404613,0.674891,1.0801,0.723905,2.30862,2.21399,0.724324,1.55682,0.982421,0.882082,0.83466,1.26554,0.321112,0.268447,0.718901,1.6967,1.34381,1.1141,0.347796,0.249172,0.345627,1.92915,0.975724,0.735309,5.73886,1.59758,11.4723,10.6597,144.215
158 13.5848,15.6,53.5791,0.212095,1.17299,0.98222,0.442758,0.133696,0.800454,1.93855,2.34031,3.04564,0.541164,1.87288,1.61647,4.60175,3.8903,1.02788,1.06299,0.406574,0.678248,1.05896,0.709415,2.27709,2.17978,0.726902,1.54335,0.983451,0.887972,0.833619,1.2525,0.316732,0.267064,0.720575,1.68695,1.3491,1.12254,0.348334,0.248693,0.342991,1.90925,0.97473,0.732194,4.33998,1.55867,12.1555,10.5829,142.47
159 13.6718,15.7,50.1073,0.203829,1.13087,0.948264,0.427372,0.128977,0.773658,1.44858,1.81937,2.95505,0.532258,1.82239,1.58217,4.53463,3.778,0.997032,1.05023,0.407564,0.680005,1.0489,0.693012,2.20377,2.11894,0.727981,1.51999,0.98162,0.879103,0.820341,1.23062,0.309877,0.26445,0.720899,1.66828,1.24229,1.03895,0.347703,0.247085,0.338103,1.87366,0.96942,0.735581,2.90649,1.50461,10.9335,10.3599,138.478
160 13.7589,15.8,48.1826,0.198247,1.10334,0.926458,0.417484,0.125921,0.756762,1.41805,1.78549,2.89828,0.524735,1.80282,1.58319,4.49695,3.76425,0.974462,1.02613,0.40946,0.68325,1.04502,0.692296,2.17666,2.08189,0.715012,1.50803,0.982722,0.885385,0.811006,1.20664,0.304794,0.263217,0.72247,1.65955,1.24452,1.04455,0.348249,0.246687,0.335745,1.85572,0.968655,0.739952,1.44851,1.46986,10.7693,10.2618,136.799
161 13.846,15.9,54.7523,0.192133,1.0726,0.901896,0.406366,0.122499,0.737591,1.38318,1.74763,2.83345,0.516995,1.76531,1.55556,4.45153,3.74322,0.966617,1.00139,0.39935,0.685873,1.03934,0.690582,2.14358,2.04597,0.702748,1.47838,0.982795,0.891285,0.810338,1.19284,0.299086,0.257275,0.7685,1.79718,1.42607,1.10376,0.338609,0.240135,0.327499,1.82435,0.966373,0.743772,8.19865,1.43076,10.5397,10.1628,143.453
162 13.9331,16,51.5757,0.188166,1.05362,0.887182,0.399689,0.12042,0.726455,1.36333,1.27667,2.65583,0.510386,1.74173,1.56097,3.96056,3.40009,0.964546,1.00039,0.390749,0.670871,1.03867,0.691483,2.12876,2.029,0.707001,1.45936,0.968098,0.897289,0.811917,1.18736,0.296896,0.257042,0.709281,1.71103,1.43751,1.11416,0.340284,0.240688,0.326789,1.80859,0.956942,0.748374,6.8375,1.40729,9.83537,9.32559,140.354
163 14.0202,16.1,51.1251,0.185225,1.04021,0.877145,0.395112,0.118976,0.719125,1.58428,1.76294,2.65107,0.414849,1.72481,1.54372,4.34965,3.67264,0.965122,1.00192,0.394045,0.65762,1.02227,0.693539,2.1225,2.02097,0.711656,1.45915,0.955905,0.884231,0.814466,1.18573,0.295816,0.257313,0.712809,1.62334,1.3385,1.12466,0.342352,0.241671,0.32702,1.80786,0.950542,0.73097,5.44337,1.39123,10.4008,9.98933,140.298
164 14.1072,16.2,50.115,0.180203,1.01494,0.857069,0.386018,0.116174,0.703545,1.75518,2.16114,2.73489,0.520161,1.70689,1.5194,4.31635,3.66045,0.959297,0.997226,0.396327,0.661509,1.00142,0.665295,2.0832,1.99242,0.714743,1.44853,0.957859,0.872218,0.801913,1.17479,0.292134,0.256292,0.714921,1.61567,1.34461,1.13363,0.343192,0.241465,0.324881,1.79054,0.95047,0.736015,4.01203,1.35926,11.1012,9.93332,139.045
165 14.1943,16.3,46.2675,0.169919,0.959735,0.811607,0.365504,0.109941,0.667087,1.25474,1.63156,2.6091,0.51019,1.65233,1.50198,4.21766,3.5166,0.92017,0.977108,0.396253,0.661511,0.984407,0.657736,1.9947,1.89624,0.696494,1.4119,0.952621,0.877926,0.783774,1.13255,0.281923,0.252077,0.713733,1.58469,1.22724,1.0425,0.341079,0.238347,0.316847,1.73161,0.939279,0.73806,2.53879,1.28705,9.82699,9.63154,132.869
166 14.2814,16.4,44.671,0.164107,0.929482,0.787123,0.354455,0.106562,0.647832,1.21942,1.59334,2.5429,0.502552,1.6144,1.47441,4.17145,3.49453,0.894827,0.950206,0.397874,0.664303,0.978546,0.656028,1.95954,1.85821,0.699186,1.39592,0.952794,0.884159,0.783095,1.10958,0.274126,0.260473,0.819543,1.71752,1.40433,1.09412,0.334851,0.237466,0.313448,1.70542,0.936573,0.742086,1.04421,1.24814,9.59486,9.51101,131.03
167 14.3685,16.5,50.1343,0.159489,0.905781,0.768123,0.345884,0.103931,0.633061,1.19249,1.56305,2.49217,0.495578,1.5843,1.45093,3.64151,3.15571,0.890035,0.927536,0.375437,0.647238,0.975411,0.655717,1.93459,1.83081,0.685959,1.36899,0.954192,0.890331,0.7836,1.09925,0.270634,0.243856,0.760472,1.71633,1.41519,1.1045,0.329717,0.230007,0.30485,1.67722,0.935864,0.74645,7.88816,1.21794,9.41157,8.61479,136.838
168 14.4556,16.6,48.4395,0.155473,0.88531,0.75182,0.33853,0.10167,0.620485,1.40148,1.59122,2.38858,0.488968,1.55807,1.45374,3.63349,3.13144,0.88669,0.925271,0.378275,0.63162,0.953863,0.656005,1.91449,1.80852,0.689934,1.34572,0.936919,0.896344,0.784585,1.09108,0.26777,0.243311,0.697571,1.62276,1.42617,1.11475,0.331087,0.230233,0.303433,1.65385,0.908782,0.735974,6.50419,1.19202,9.50255,8.5769,134.303
169 14.5427,16.7,46.9059,0.15117,0.863041,0.733941,0.330458,0.0991963,0.60656,1.3733,1.56185,2.28165,0.394052,1.52955,1.43103,4.00444,3.3868,0.882139,0.921809,0.380836,0.635969,0.932424,0.640758,1.89079,1.78259,0.693476,1.33658,0.920401,0.880688,0.784952,1.08116,0.26444,0.242508,0.700086,1.52201,1.31933,1.1244,0.332158,0.230201,0.30155,1.63748,0.909304,0.726566,5.08426,1.1636,9.17799,9.19519,132.052
170 14.6297,16.8,45.1625,0.141831,0.811777,0.691316,0.311248,0.093384,0.572124,1.50444,1.91809,2.29532,0.494413,1.4776,1.39038,3.91086,3.32117,0.86186,0.903093,0.381073,0.636479,0.916556,0.619017,1.803,1.70479,0.693414,1.30151,0.915922,0.865442,0.764684,1.04792,0.254631,0.238537,0.699323,1.49217,1.31976,1.13079,0.330289,0.227268,0.293793,1.57921,0.898694,0.72905,3.62031,1.09595,9.65236,8.99698,128.113
171 14.7168,16.9,42.0663,0.1374,0.788358,0.672287,0.302676,0.0907682,0.557175,1.05258,1.43525,2.24317,0.487457,1.45945,1.39066,3.87762,3.23218,0.838306,0.898413,0.383259,0.640204,0.913533,0.618896,1.76292,1.6586,0.67757,1.29038,0.917689,0.872184,0.751456,1.02714,0.250862,0.237458,0.701308,1.48361,1.20261,1.03772,0.330988,0.226938,0.291422,1.55946,0.898019,0.733869,2.13442,1.06573,8.62575,8.84652,124.675
172 14.8039,17,40.3849,0.132727,0.763381,0.651867,0.293483,0.0879695,0.541038,1.02283,1.40239,2.18671,0.480421,1.42676,1.36613,3.83999,3.217,0.814676,0.853563,0.372267,0.643506,0.909459,0.618175,1.73337,1.62645,0.662552,1.25961,0.918804,0.8786,0.751612,1.00551,0.243428,0.229603,0.74285,1.62115,1.38326,1.08706,0.316927,0.222094,0.288629,1.53676,0.896418,0.738282,0.61759,1.03332,8.42626,8.72523,122.71
173 14.891,17.1,45.2355,0.128465,0.740605,0.633264,0.285112,0.0854204,0.526375,0.995817,0.935952,1.99834,0.47365,1.39667,1.34303,3.30551,2.87448,0.809781,0.849801,0.362051,0.625845,0.906137,0.617805,1.707,1.59768,0.666356,1.23156,0.898879,0.884821,0.752031,0.994395,0.239798,0.228731,0.67925,1.52413,1.39407,1.09744,0.318034,0.217729,0.278847,1.49305,0.878786,0.74265,7.51618,1.0038,7.66983,7.83957,126.773
174 14.9781,17.2,44.1212,0.124605,0.720002,0.616465,0.277548,0.0831168,0.513168,1.19853,1.39703,1.97002,0.379311,1.36918,1.34415,3.29229,2.84746,0.805799,0.846893,0.364784,0.609457,0.883334,0.617789,1.68385,1.5723,0.670189,1.22291,0.901212,0.890853,0.75272,0.984704,0.236587,0.228028,0.682032,1.52062,1.40481,1.10762,0.319233,0.217774,0.277036,1.47641,0.863008,0.729637,6.11877,0.97713,8.17139,7.79244,124.943
175 15.0651,17.3,43.5636,0.120597,0.698412,0.598768,0.269577,0.0806938,0.499161,1.3663,1.78557,2.05336,0.481045,1.35222,1.32166,3.66429,3.10274,0.801025,0.843187,0.3673,0.613727,0.860967,0.601945,1.65839,1.54462,0.673685,1.21296,0.883147,0.873582,0.752969,0.973887,0.233083,0.227151,0.68451,1.41539,1.29358,1.11728,0.320215,0.217639,0.274922,1.4577,0.863053,0.717718,4.68552,0.94904,8.85932,8.41124,123.567
176 15.1522,17.4,40.7916,0.112494,0.652914,0.560489,0.252343,0.0755019,0.467934,1.30285,1.72036,1.94246,0.472081,1.29281,1.28406,3.57886,3.04368,0.782903,0.826519,0.367837,0.61472,0.846827,0.580673,1.57536,1.47222,0.674099,1.18075,0.879576,0.856813,0.732401,0.943026,0.224064,0.223577,0.684178,1.38787,1.17048,1.02117,0.318673,0.21502,0.26778,1.40266,0.853505,0.720548,3.20952,0.888334,8.48255,8.23196,117.639
177 15.2393,17.5,38.0352,0.109465,0.636687,0.547249,0.246388,0.0736883,0.457562,0.868125,1.25484,1.90552,0.465913,1.28183,1.28727,3.55911,2.96512,0.744402,0.80468,0.370489,0.619205,0.846673,0.582087,1.54461,1.43566,0.658292,1.17479,0.882809,0.863783,0.719373,0.925988,0.221621,0.22315,0.686851,1.38381,1.17462,1.02808,0.319951,0.215254,0.266544,1.39045,0.854927,0.725965,1.71235,0.867326,7.52106,8.07331,114.8
178 15.3264,17.6,44.4689,0.104112,0.606816,0.522223,0.235128,0.0702908,0.437292,0.830265,1.21443,1.83316,0.458521,1.24159,1.25934,3.50707,2.93674,0.73522,0.776392,0.358841,0.62172,0.839498,0.579771,1.50304,1.3911,0.641809,1.13731,0.882436,0.870014,0.718086,0.898009,0.212439,0.214004,0.727079,1.51735,1.35578,1.0747,0.303855,0.204653,0.254011,1.3436,0.850701,0.729789,8.47072,0.827641,7.2746,7.95542,120.785
179 15.4135,17.7,41.3269,0.101779,0.594425,0.51218,0.230615,0.0689132,0.42953,0.816115,0.768921,1.6711,0.452831,1.22353,1.24263,2.99113,2.61059,0.735422,0.777543,0.349134,0.604912,0.840677,0.58179,1.49245,1.37869,0.646714,1.11674,0.863885,0.876586,0.720629,0.894183,0.210892,0.214144,0.662738,1.42512,1.3686,1.08603,0.305863,0.205461,0.253692,1.32363,0.834824,0.735092,7.10719,0.811709,6.60466,7.11469,117.107
180 15.5006,17.8,40.6208,0.0984672,0.576228,0.497096,0.223828,0.0668579,0.417505,1.01586,1.22121,1.64526,0.360329,1.19795,1.24374,3.38212,2.8521,0.732167,0.775315,0.351949,0.58832,0.81812,0.582114,1.47084,1.35492,0.6507,1.10897,0.845023,0.857805,0.721616,0.885213,0.207946,0.213576,0.665673,1.32207,1.25858,1.09635,0.307165,0.205603,0.252071,1.30775,0.817679,0.720382,5.70434,0.787782,7.10186,7.74171,115.436
181 15.5876,17.9,39.683,0.0951348,0.557807,0.481773,0.216933,0.0647724,0.405229,1.18252,1.60365,1.73082,0.45968,1.18311,1.22305,3.35665,2.84566,0.728538,0.772693,0.35461,0.59282,0.796319,0.566515,1.44827,1.33021,0.654442,1.1006,0.848022,0.864436,0.722342,0.875754,0.204887,0.212922,0.668393,1.31596,1.26587,1.10625,0.308331,0.205646,0.25031,1.29096,0.818337,0.706794,4.26596,0.763478,7.78806,7.70355,113.053
182 15.6747,18,36.1762,0.0890006,0.522819,0.452076,0.203567,0.0607579,0.380808,0.725114,1.11729,1.64261,0.451792,1.13532,1.19168,3.29117,2.7242,0.696711,0.760773,0.355832,0.594934,0.786447,0.547228,1.36505,1.26384,0.655937,1.07611,0.846608,0.846863,0.703059,0.851774,0.197872,0.210328,0.66906,1.29527,1.14172,1.00859,0.307664,0.203895,0.244926,1.24766,0.812015,0.710484,2.78731,0.716401,6.64461,7.47286,107.386

View File

@ -99,6 +99,7 @@ if [[ 1 -eq 1 ]]; then
export DATASET="27Al" export DATASET="27Al"
export PREFIX="Run_" export PREFIX="Run_"
export OUT_DIR="Output_p" export OUT_DIR="Output_p"
export CUTLIST=pid_cuts/pid_cutlist.txt
export CATHODE_GAIN=3.0 export CATHODE_GAIN=3.0
rm -f ${OUT_DIR}/*.root rm -f ${OUT_DIR}/*.root
export source_vertex=-200.0 # Source on the entrance window export source_vertex=-200.0 # Source on the entrance window
@ -109,6 +110,7 @@ if [[ 1 -eq 1 ]]; then
parallel --bar -j 8 process_run ::: {17..22} parallel --bar -j 8 process_run ::: {17..22}
hadd -j 4 -k ${OUT_DIR}/Al_protons.root ${OUT_DIR}/results_run0{15..22}.root hadd -j 4 -k ${OUT_DIR}/Al_protons.root ${OUT_DIR}/results_run0{15..22}.root
unset CATHODE_GAIN unset CATHODE_GAIN
unset CUTLIST
# exit # exit
fi fi