Basic COMPAS data analysis

Most of the post-processing material presented here is written in python, and makes extensive use of the numpy package for rapid computation on large data arrays. Here we show two important basics of python/numpy in the context of investigating your COMPAS simulation.

Material

1) Inspecting the data

Look at the data to see which parameters are available and check that it matches expectations.

2) Slicing the data

Select specific systems and their parameters using seeds.

3) Visualizing the data

Binning and visualising your data.

[ ]:

For the following sections, you will need to have the following packages installed.

numpy, h5py, time, matplotlib

[1]:
#python libraries
import os, sys
import numpy as np               # for handling arrays
import h5py as h5                # for reading the COMPAS data
import time                      # for finding computation time
import matplotlib.pyplot as plt  #for plotting

# Import COMPAS specific scripts
compas_root_dir = os.environ['COMPAS_ROOT_DIR']
sys.path.append(compas_root_dir + 'compas_python_utils')
from debugging_utils import print_compas_details_dataframe, get_event_history, get_event_strings

# Choose an output hdf5 file to work with
path_to_data = 'COMPAS_Tutorial_Output.h5'

# This is known as an ipython magic command, and allows plots to be produced within the notebook
%matplotlib inline
[ ]:

1. Inspecting the data

Often the first thing you want to do with new data is simply to look at it! Getting familiar with the data, including available parameters, size of the data file, etc. will help to inform how best to proceed with the analysis. We provide several useful functions for inspecting the data, print_compas_details_dataframe, get_event_history, and get_event_strings.

–

If you want to create an alternative COMPAS_Output.h5, see Section 1 Working With HDF5, or download some data from our Zenodo database.

Note: These cells may take a long time if you test them on large datasets.

[2]:
data  = h5.File(path_to_data)
print(list(data.keys()))
['BSE_Common_Envelopes', 'BSE_Double_Compact_Objects', 'BSE_RLOF', 'BSE_Supernovae', 'BSE_System_Parameters', 'Run_Details']

The output above represents the event categories available from the particular run. If you used the output produced in the previous tutorial, you should see ['BSE_Common_Envelopes', 'BSE_Double_Compact_Objects', 'BSE_RLOF', 'BSE_Supernovae', 'BSE_System_Parameters', 'Run_Details']. Note that for smaller runs which do not produce any of a particular type of output, the output category will not be created.

Brief description of the categories:

  • ‘BSE_System_Parameters’: Initial state of the binary

  • ‘BSE_RLOF’: Any mass transfer events that occurred within the binary

  • ‘BSE_Common_Envelopes’: If any of the mass transfer events were unstable, details will be included here.

  • ‘BSE_Supernovae’: Parameters and outcome of any supernovae that occurred in the binary

  • ‘BSE_Double_Compact_Objects’: Includes key information of all binaries which end their lives as an intact pair of compact obects (either neutron stars or black holes)

  • ‘Run_Details’: Information on the input settings supplied to the Compas run

To extract the data from these categories, we use the following syntax

[3]:
SPs = data['BSE_System_Parameters']
MTs = data['BSE_RLOF']
CEs = data['BSE_Common_Envelopes']
SNe = data['BSE_Supernovae']
DCs = data['BSE_Double_Compact_Objects']

Each of these is a dictionary mapping parameter names (keys) to an array of values

[4]:
print(SPs.keys())
<KeysViewHDF5 ['CH_on_MS(1)', 'CH_on_MS(2)', 'Eccentricity@ZAMS', 'Equilibrated_At_Birth', 'Error', 'Evolution_Status', 'Mass@ZAMS(1)', 'Mass@ZAMS(2)', 'Merger', 'Merger_At_Birth', 'Metallicity@ZAMS(1)', 'Metallicity@ZAMS(2)', 'Omega@ZAMS(1)', 'Omega@ZAMS(2)', 'PO_Add_Options_To_SysParms', 'PO_Allow_Immediate_RLOF>CE_To_Survive_CE', 'PO_Allow_MS_To_Survive_CE', 'PO_Allow_Non_Stripped_ECSN', 'PO_Allow_RLOF@Birth', 'PO_Allow_Radiative_Envelope_To_Survive_CE', 'PO_Allow_Touching@Birth', 'PO_BB_Mass_xFer_Stblty_Prscrptn', 'PO_BH_Kicks_Mode', 'PO_CE_Alpha', 'PO_CE_Alpha_Thermal', 'PO_CE_Formalism', 'PO_CE_Lambda', 'PO_CE_Lambda_Multiplier', 'PO_CE_Lambda_Prscrptn', 'PO_CE_Mass_Accr_Constant', 'PO_CE_Mass_Accr_Max', 'PO_CE_Mass_Accr_Min', 'PO_CE_Mass_Accr_Prscrptn', 'PO_CE_Recomb_Enrgy_Dnsty', 'PO_CE_Second_Stage_Beta', 'PO_CE_Second_Stage_Gamma_Prescription', 'PO_CE_Slope_Kruckow', 'PO_CHE_Mode', 'PO_Check_Photon_Tiring_Limit', 'PO_Circularise@MT', 'PO_Conserve_AngMom@Circ', 'PO_Cool_WindMassLoss_Multipl', 'PO_Eccentricity', 'PO_Eccentricity_Dstrbtn', 'PO_Eccentricity_Dstrbtn_Max', 'PO_Eccentricity_Dstrbtn_Min', 'PO_Eddington_Accr_Factor', 'PO_Enable_Rotationally_Enhanced_Mass_Loss', 'PO_Enhance_CHE_lifetimes_luminosities', 'PO_Envelope_State_Prscrptn', 'PO_Evolution_Mode', 'PO_FP_Error_Mode', 'PO_Fryer22_crit_COcore_Mass', 'PO_Fryer22_mixing_fraction', 'PO_Fryer_SN_Engine', 'PO_Initial_Mass', 'PO_Initial_Mass(1)', 'PO_Initial_Mass(2)', 'PO_Initial_Mass_Func_Max', 'PO_Initial_Mass_Func_Min', 'PO_Initial_Mass_Func_Power', 'PO_Initial_Mass_Function', 'PO_Kick_Direction_Dstrbtn', 'PO_Kick_Direction_Power', 'PO_Kick_Magnitude', 'PO_Kick_Magnitude(1)', 'PO_Kick_Magnitude(2)', 'PO_Kick_Magnitude_Dstrbtn', 'PO_Kick_Magnitude_Dstrbtn_Max', 'PO_Kick_Magnitude_Random', 'PO_Kick_Magnitude_Random(1)', 'PO_Kick_Magnitude_Random(2)', 'PO_Kick_Mean_Anomaly(1)', 'PO_Kick_Mean_Anomaly(2)', 'PO_Kick_Phi(1)', 'PO_Kick_Phi(2)', 'PO_Kick_Scaling_Factor', 'PO_Kick_Theta(1)', 'PO_Kick_Theta(2)', 'PO_LBV_Factor', 'PO_LBV_Mass_Loss_Prscrptn', 'PO_MCBUR1', 'PO_MM_Kick_Multiplier_BH', 'PO_MM_Kick_Multiplier_NS', 'PO_MM_Sigma_Kick_BH', 'PO_MM_Sigma_Kick_NS', 'PO_MT_Acc_Efficiency_Prscrptn', 'PO_MT_AngMom_Loss_Prscrptn', 'PO_MT_Crit_MR_Giant_Deg_Acc', 'PO_MT_Crit_MR_Giant_NonDeg_Acc', 'PO_MT_Crit_MR_HE_Giant_Deg_Acc', 'PO_MT_Crit_MR_HE_Giant_NonDeg_Acc', 'PO_MT_Crit_MR_HE_HG_Deg_Acc', 'PO_MT_Crit_MR_HE_HG_NonDeg_Acc', 'PO_MT_Crit_MR_HE_MS_Deg_Acc', 'PO_MT_Crit_MR_HE_MS_NonDeg_Acc', 'PO_MT_Crit_MR_HG_Deg_Acc', 'PO_MT_Crit_MR_HG_NonDeg_Acc', 'PO_MT_Crit_MR_MS_High_Mass_Deg_Acc', 'PO_MT_Crit_MR_MS_High_Mass_NonDeg_Acc', 'PO_MT_Crit_MR_MS_Low_Mass_Deg_Acc', 'PO_MT_Crit_MR_MS_Low_Mass_NonDeg_Acc', 'PO_MT_Crit_MR_WD_Deg_Acc', 'PO_MT_Crit_MR_WD_NonDeg_Acc', 'PO_MT_Fraction_Accreted', 'PO_MT_JLoss', 'PO_MT_JLoss_Linear_Frac_Degen', 'PO_MT_JLoss_Linear_Frac_Non_Degen', 'PO_MT_Rejuvenation_Prscrptn', 'PO_MT_Thermal_Limit_C', 'PO_MT_Thermally_Lmtd_Variation', 'PO_Maltsev_Fallback', 'PO_Maltsev_Mode', 'PO_Mass_Loss_Prscrptn', 'PO_Mass_Ratio', 'PO_Mass_Ratio_Dstrbtn', 'PO_Mass_Ratio_Dstrbtn_Max', 'PO_Mass_Ratio_Dstrbtn_Min', 'PO_Max_Donor_Mass', 'PO_Max_Evolution_Time', 'PO_Max_NS_Mass', 'PO_Max_Timesteps', 'PO_Metallicity', 'PO_Metallicity_Dstrbtn', 'PO_Metallicity_Dstrbtn_Max', 'PO_Metallicity_Dstrbtn_Min', 'PO_Min_Sampled_Secondary_Mass', 'PO_NS_ACCRETION_IN_CE', 'PO_NS_EOS', 'PO_Neutrino_Mass_Loss_Assmptn', 'PO_Neutrino_Mass_Loss_Value', 'PO_Orbital_Period', 'PO_Orbital_Period_Dstrbtn', 'PO_Orbital_Period_Max', 'PO_Orbital_Period_Min', 'PO_Overall_WindMassLoss_Multipl', 'PO_PISN_Lower_Limit', 'PO_PISN_Upper_Limit', 'PO_PPI_CO_CORE_SHIFT_HENDRIKS', 'PO_PPI_Lower_Limit', 'PO_PPI_Prscrptn', 'PO_PPI_Upper_Limit', 'PO_Pulsar_Mag_Field_Decay_mScale', 'PO_Pulsar_Mag_Field_Decay_tScale', 'PO_Pulsar_Mag_Field_Dstrbtn', 'PO_Pulsar_Mag_Field_Dstrbtn_Max', 'PO_Pulsar_Mag_Field_Dstrbtn_Min', 'PO_Pulsar_Minimum_Mag_Field', 'PO_Pulsar_Spin_Period_Dstrbtn', 'PO_Pulsar_Spin_Period_Dstrbtn_Max', 'PO_Pulsar_Spin_Period_Dstrbtn_Min', 'PO_Remnant_Mass_Prscrptn', 'PO_Response_To_Spin_Up', 'PO_Rocket_Kick_Magnitude(1)', 'PO_Rocket_Kick_Magnitude(2)', 'PO_Rocket_Kick_Phi(1)', 'PO_Rocket_Kick_Phi(2)', 'PO_Rocket_Kick_Theta(1)', 'PO_Rocket_Kick_Theta(2)', 'PO_Rotational_Frequency', 'PO_Rotational_Frequency(1)', 'PO_Rotational_Frequency(2)', 'PO_Rotational_Velocity_Dstrbtn', 'PO_SEED(CMDLINE)', 'PO_SEED(OPTION)', 'PO_Scale_CHE_Mass_Loss_Surf_He_Abundance', 'PO_Scale_Terminal_Wind_Vel_Metallicity_Power', 'PO_Semi-Major_Axis', 'PO_Semi-Major_Axis_Dstrbtn', 'PO_Semi-Major_Axis_Dstrbtn_Max', 'PO_Semi-Major_Axis_Dstrbtn_Min', 'PO_Sigma_Kick_CCSN_BH', 'PO_Sigma_Kick_CCSN_NS', 'PO_Sigma_Kick_ECSN', 'PO_Sigma_Kick_USSN', 'PO_Stellar_Zeta_Prscrptn', 'PO_Tides_Prscrptn', 'PO_USSN_Kicks_Override_Mandel_Muller', 'PO_WR_Factor', 'PO_Zeta_Adiabatic_Arbitrary', 'PO_Zeta_Main_Sequence', 'PO_Zeta_Radiative_Envelope_Giant', 'PO_qCrit_Prescription', 'Record_Type', 'SEED', 'SN_Kick_Magnitude_Random_Number(1)', 'SN_Kick_Magnitude_Random_Number(2)', 'SemiMajorAxis@ZAMS', 'Stellar_Type(1)', 'Stellar_Type(2)', 'Stellar_Type@ZAMS(1)', 'Stellar_Type@ZAMS(2)', 'Unbound']>

One of the most important parameters in the COMPAS output is the system seed. The seed represents the unique identifier to a specific system in a simulation. It is also used as the seed value in random number generation, which is useful when trying to reproduce a given system identically.

If we want to view the random seeds in the system parameters file, we run

[5]:
seeds_SP = SPs['SEED'][()]
print(seeds_SP)
[  47   50   57   66   78   99  120  166  167  211  291  312  332  347
  351  386  390  418  429  435  451  483  504  567  610  635  655  673
  688  702  725  750  799  826  893  897  902  910  931  935  958  987
  993  994 1036 1050 1053 1080 1090 1095 1099 1124 1126 1135 1183 1187
 1206 1207 1216 1217 1268 1269 1282 1297 1309 1310 1341 1347 1374 1375
 1377 1385 1406 1410 1441 1449 1486 1491 1492 1506 1509 1511 1537 1543
 1596 1599 1628 1638 1657 1663 1672 1677 1690 1691 1724 1744 1766 1774
 1847 1867 1875 1918 1944 1966 1989 1993 2009 2029 2047 2050 2064 2075
 2085 2102 2111 2112 2122 2132 2146 2178 2180 2184 2208 2216 2218 2224
 2231 2244 2270 2288 2291 2310 2315 2333 2350 2355 2384 2395 2426 2446
 2451 2457 2465 2562 2633 2638 2659 2695 2710 2734 2743 2746 2748 2795
 2827 2835 2850 2891 2913 2915 2960 2981 2984 2987 3044 3050 3058 3078
 3090 3093 3103 3110 3156 3220 3221 3255 3272 3301 3338 3354 3356 3404
 3419 3422 3436 3449 3550 3581 3594 3599 3616 3639 3651 3656 3674 3706
 3777 3778 3788 3877 3885 3888 3907 3933 3963 4010 4052 4055 4077 4172
 4175 4196 4209 4227 4235 4240 4279 4291 4326 4328 4339 4364 4370 4376
 4396 4409 4410 4434 4494 4512 4531 4613 4618 4660 4669 4672 4706 4727
 4741 4834 4845 4849 4856 4878 4889 4929 4948 4980 5016 5043 5045 5047
 5103 5104 5193 5210 5215 5229 5259 5286 5298 5301 5312 5324 5362 5405
 5424 5428 5444 5474 5494 5518 5523 5531 5549 5564 5569 5573 5575 5581
 5599 5614 5692 5719 5797 5839 5842 5847 5848 5854 5871 5893 5918 5945
 5994 6020 6023 6026 6072 6119 6225 6249 6271 6286 6303 6358 6361 6363
 6376 6383 6409 6456 6489 6516 6535 6550 6557 6633 6639 6640 6694 6712
 6749 6760 6869 6870 6871 6884 6958 7012 7025 7069 7129 7165 7169 7229
 7263 7293 7326 7340 7384 7393 7407 7441 7448 7507 7565 7585 7587 7639
 7679 7687 7702 7726 7730 7761 7778 7808 7828 7892 7906 7912 7917 7919
 7931 8009 8063 8077 8110 8117 8129 8148 8192 8256 8269 8290 8323 8333
 8346 8397 8408 8442 8490 8504 8577 8591 8598 8609 8623 8667 8684 8690
 8753 8778 8779 8823 8841 8844 8847 8856 8875 8896 8917 8928 8951 8976
 8987 9052 9086 9123 9151 9167 9169 9176 9193 9248 9261 9317 9325 9335
 9340 9358 9368 9391 9393 9405 9410 9423 9424 9428 9455 9473 9487 9506
 9512 9526 9528 9543 9547 9555 9580 9608 9647 9709 9730 9736 9762 9768
 9782 9803 9810 9876 9984 9991]

get_event_history

Often, it is useful to quickly retrieve an overview of the event history of a binary, including all mass transfer, common envelope, and supernova events. For this, we use get_event_history

[8]:
seeds, events = get_event_history(data)

for ii, seed in enumerate(seeds):
    print(seed, events[ii])
47 [('RL', np.float64(5.442672204520002), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.111786820668005), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(8.414270420852006), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(9.100571087687992), np.int32(8), np.int32(14), np.int32(2), np.False_)]
50 [('SN', np.float64(5.24260824687508), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(10.932511437218478), np.int32(5), np.int32(13), np.int32(2), np.True_)]
57 [('RL', np.float64(5.300483657137001), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.9586986865870095), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(7.104724160179012), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(7.744986160922015), np.int32(8), np.int32(14), np.int32(2), np.False_)]
66 [('SN', np.float64(6.533072656149967), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(8.268662783841004), np.int32(5), np.int32(14), np.int32(2), np.False_)]
78 [('SN', np.float64(3.9899834465580963), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.138407509183093), np.int32(8), np.int32(14), np.int32(2), np.False_)]
99 [('SN', np.float64(4.515892799583036), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(9.983957091485077), np.int32(5), np.int32(13), np.int32(2), np.True_)]
120 [('SN', np.float64(5.117105524383119), np.int32(8), np.int32(14), np.int32(1), np.True_), ('SN', np.float64(5.143241434294118), np.int32(8), np.int32(14), np.int32(2), np.True_)]
166 [('RL', np.float64(6.340173663787001), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(7.107423543279999), np.int32(8), np.int32(13), np.int32(1), np.True_), ('SN', np.float64(11.743237897131719), np.int32(5), np.int32(14), np.int32(2), np.True_)]
167 [('RL', np.float64(4.308531192974001), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.894489709983005), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(7.0998284393970055), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(7.755782432163009), np.int32(8), np.int32(14), np.int32(2), np.False_)]
211 [('SN', np.float64(5.246325678025075), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.328888836647077), np.int32(8), np.int32(14), np.int32(2), np.False_)]
291 [('SN', np.float64(3.9342556711960492), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.401434404555958), np.int32(8), np.int32(14), np.int32(2), np.False_)]
312 [('SN', np.float64(4.522151016340026), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.991990659663077), np.int32(5), np.int32(14), np.int32(2), np.False_)]
332 [('SN', np.float64(4.704609838698078), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.1032481584710805), np.int32(8), np.int32(14), np.int32(2), np.False_)]
347 [('RL', np.float64(4.7422397996689964), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.362808037282998), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(7.737045365946003), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(8.366815952157), np.int32(8), np.int32(14), np.int32(2), np.False_)]
351 [('SN', np.float64(4.182218230401081), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.54422699393108), np.int32(8), np.int32(14), np.int32(2), np.False_)]
386 [('SN', np.float64(4.759868082875033), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(8.41133552608683), np.int32(5), np.int32(14), np.int32(2), np.False_)]
390 [('SN', np.float64(4.649419909237049), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(9.348674369888057), np.int32(5), np.int32(14), np.int32(2), np.True_)]
418 [('SN', np.float64(4.453643660548076), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.531645520513075), np.int32(8), np.int32(14), np.int32(2), np.False_)]
429 [('SN', np.float64(4.680758914304062), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.183662000877114), np.int32(8), np.int32(14), np.int32(2), np.False_)]
435 [('RL', np.float64(5.790194168828002), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.489552970023003), np.int32(8), np.int32(14), np.int32(1), np.False_), ('MG', np.float64(7.790354031938007), np.int32(14), np.int32(2), np.False_, np.True_, np.True_, np.True_)]
451 [('RL', np.float64(3.409076623562001), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(3.888811922865), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.147173579168058), np.int32(8), np.int32(14), np.int32(2), np.False_)]
483 [('RL', np.float64(5.900343810342999), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.612259941222999), np.int32(8), np.int32(14), np.int32(1), np.False_), ('CE', np.float64(13.09299071204003), np.int32(14), np.int32(4), np.False_, np.True_, np.True_, np.False_), ('RL', np.float64(14.373294719852026), np.int32(14), np.int32(8), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(14.376990169208026), np.int32(8), np.int32(14), np.int32(2), np.False_)]
504 [('SN', np.float64(4.690567119331096), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.136948239502094), np.int32(8), np.int32(14), np.int32(2), np.False_)]
567 [('SN', np.float64(4.402523440596079), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.600656963248079), np.int32(8), np.int32(14), np.int32(2), np.False_)]
610 [('SN', np.float64(4.79398190540103), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(10.879752394910003), np.int32(5), np.int32(13), np.int32(2), np.True_)]
635 [('RL', np.float64(3.5755757581410115), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.077722462347005), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.173141340440046), np.int32(8), np.int32(14), np.int32(2), np.False_)]
655 [('SN', np.float64(4.393084577846087), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.497590180106091), np.int32(8), np.int32(14), np.int32(2), np.False_)]
673 [('RL', np.float64(5.721414675887001), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.410180221191002), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(43.287226595358995), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(53.11022628171803), np.int32(9), np.int32(13), np.int32(2), np.False_)]
688 [('SN', np.float64(4.236858765773082), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.364531815720085), np.int32(8), np.int32(14), np.int32(2), np.False_)]
702 [('SN', np.float64(3.885607787408042), np.int32(8), np.int32(14), np.int32(1), np.False_), ('CE', np.float64(7.2586055993480425), np.int32(14), np.int32(4), np.False_, np.True_, np.True_, np.False_), ('SN', np.float64(8.117545193506043), np.int32(8), np.int32(13), np.int32(2), np.True_)]
725 [('SN', np.float64(6.241891392575866), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.81658913608402), np.int32(5), np.int32(14), np.int32(2), np.False_)]
750 [('RL', np.float64(30.512847549409006), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('RL', np.float64(36.45397551030501), np.int32(9), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(36.47548352396699), np.int32(9), np.int32(13), np.int32(1), np.False_), ('CE', np.float64(37.57444025811911), np.int32(13), np.int32(4), np.False_, np.True_, np.True_, np.False_), ('RL', np.float64(38.87056739815612), np.int32(13), np.int32(8), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(38.872798936256125), np.int32(8), np.int32(14), np.int32(2), np.False_)]
799 [('RL', np.float64(4.728308141666002), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.346707086428003), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(8.573407459396003), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(9.457418661954001), np.int32(8), np.int32(14), np.int32(2), np.False_)]
826 [('SN', np.float64(5.364626544464028), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.51067822072915), np.int32(5), np.int32(14), np.int32(2), np.False_)]
893 [('SN', np.float64(4.4548017797200385), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.787298229758092), np.int32(5), np.int32(14), np.int32(2), np.False_)]
897 [('RL', np.float64(7.896861935976004), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(8.867678586134005), np.int32(8), np.int32(13), np.int32(1), np.True_), ('SN', np.float64(10.737533669358573), np.int32(5), np.int32(14), np.int32(2), np.True_)]
902 [('RL', np.float64(5.756536627030002), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.4505988058330015), np.int32(8), np.int32(14), np.int32(1), np.True_), ('SN', np.float64(7.903984184434105), np.int32(5), np.int32(14), np.int32(2), np.True_)]
910 [('SN', np.float64(4.428850531814036), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(8.157502717297028), np.int32(5), np.int32(14), np.int32(2), np.False_)]
931 [('RL', np.float64(3.799188311529999), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.332425587976999), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.1517034196950275), np.int32(8), np.int32(14), np.int32(2), np.False_)]
935 [('SN', np.float64(7.593703516045062), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(8.734780431909135), np.int32(5), np.int32(14), np.int32(2), np.True_)]
958 [('RL', np.float64(5.968455777760998), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.683464928694999), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(8.39455000079803), np.int32(5), np.int32(14), np.int32(2), np.True_)]
987 [('RL', np.float64(5.104062095392997), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.7469494052689996), np.int32(8), np.int32(14), np.int32(1), np.True_), ('SN', np.float64(6.4161514809560725), np.int32(5), np.int32(14), np.int32(2), np.True_)]
993 [('SN', np.float64(6.729678295542852), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(10.227428137032522), np.int32(5), np.int32(14), np.int32(2), np.False_)]
994 [('RL', np.float64(4.914597376226), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.546859804926002), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.557360592527056), np.int32(8), np.int32(14), np.int32(2), np.False_)]
1036 [('SN', np.float64(4.75993600146712), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.108496585763119), np.int32(8), np.int32(14), np.int32(2), np.False_)]
1050 [('SN', np.float64(4.188804958714083), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.563118030613076), np.int32(8), np.int32(14), np.int32(2), np.False_)]
1053 [('SN', np.float64(9.976678315589709), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(17.637632987749594), np.int32(5), np.int32(13), np.int32(2), np.True_)]
1080 [('RL', np.float64(4.789826554868005), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.409295175198006), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(8.50087203529482), np.int32(5), np.int32(14), np.int32(2), np.True_)]
1090 [('SN', np.float64(4.155458474372082), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.2337717250480855), np.int32(8), np.int32(14), np.int32(2), np.False_)]
1095 [('SN', np.float64(5.1027101730470354), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(10.243863850653199), np.int32(5), np.int32(14), np.int32(2), np.True_)]
1099 [('RL', np.float64(6.573384425263996), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(7.369305282963995), np.int32(8), np.int32(13), np.int32(1), np.True_), ('SN', np.float64(8.902499662220059), np.int32(5), np.int32(14), np.int32(2), np.True_)]
1124 [('SN', np.float64(3.9388540162810837), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.0891060441080835), np.int32(8), np.int32(14), np.int32(2), np.False_)]
1126 [('RL', np.float64(10.23415080704102), np.int32(4), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(11.286644069901019), np.int32(8), np.int32(13), np.int32(1), np.True_), ('SN', np.float64(12.872196907971862), np.int32(5), np.int32(14), np.int32(2), np.True_)]
1135 [('RL', np.float64(5.449452001423), np.int32(1), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('RL', np.float64(5.537412777651001), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.215892599097005), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(8.260080061038995), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(8.865685675548), np.int32(8), np.int32(14), np.int32(2), np.False_)]
1183 [('RL', np.float64(5.857462483789001), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.560059831292999), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.305142231166182), np.int32(5), np.int32(14), np.int32(2), np.False_)]
1187 [('RL', np.float64(3.420889739613998), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(3.902420278327997), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(6.701947921306001), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(7.3714974048099995), np.int32(8), np.int32(14), np.int32(2), np.False_)]
1206 [('SN', np.float64(4.678813886328043), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.376616686224865), np.int32(5), np.int32(14), np.int32(2), np.False_)]
1207 [('SN', np.float64(8.138616973464133), np.int32(5), np.int32(14), np.int32(1), np.True_), ('SN', np.float64(8.258714673867114), np.int32(5), np.int32(14), np.int32(2), np.True_)]
1216 [('RL', np.float64(4.9842190816280025), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.619146402229002), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.582228206529048), np.int32(8), np.int32(14), np.int32(2), np.False_)]
1217 [('RL', np.float64(4.231686528207999), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.809216966675999), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.95143488170704), np.int32(8), np.int32(14), np.int32(2), np.False_)]
1268 [('SN', np.float64(5.287184414692054), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.754940489003172), np.int32(5), np.int32(14), np.int32(2), np.False_)]
1269 [('RL', np.float64(5.383446652428997), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.046559886489998), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(25.645435368617985), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(30.15885169871698), np.int32(8), np.int32(13), np.int32(2), np.False_)]
1282 [('SN', np.float64(6.53497378448919), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(8.851874661331214), np.int32(5), np.int32(14), np.int32(2), np.False_)]
1297 [('SN', np.float64(3.8847791022440807), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.030690066216079), np.int32(8), np.int32(14), np.int32(2), np.False_)]
1309 [('SN', np.float64(4.428451626412033), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(9.073995914114638), np.int32(5), np.int32(14), np.int32(2), np.False_)]
1310 [('SN', np.float64(6.728999915264999), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.7606286342730035), np.int32(5), np.int32(14), np.int32(2), np.False_)]
1341 [('SN', np.float64(4.155312081823083), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.242835215099082), np.int32(8), np.int32(14), np.int32(2), np.False_)]
1347 [('RL', np.float64(4.576058145399998), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.182051997220999), np.int32(8), np.int32(14), np.int32(1), np.False_), ('CE', np.float64(11.114744884266027), np.int32(14), np.int32(4), np.False_, np.True_, np.True_, np.False_), ('RL', np.float64(12.202103950365021), np.int32(14), np.int32(8), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(12.204617024293022), np.int32(8), np.int32(13), np.int32(2), np.True_)]
1374 [('SN', np.float64(4.018034290116088), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.376387164716097), np.int32(8), np.int32(14), np.int32(2), np.False_)]
1375 [('SN', np.float64(3.9846493370950404), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(5.3277590838360425), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(5.986077589445043), np.int32(8), np.int32(14), np.int32(2), np.False_)]
1377 [('RL', np.float64(5.095454450390999), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.7382564857770095), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.686856799405037), np.int32(5), np.int32(14), np.int32(2), np.False_)]
1385 [('SN', np.float64(4.6040941042860295), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.410815329244941), np.int32(8), np.int32(14), np.int32(2), np.False_)]
1406 [('RL', np.float64(4.843610080099004), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.470904652201001), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(7.361087170081005), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(8.084420746243003), np.int32(8), np.int32(14), np.int32(2), np.False_)]
1410 [('SN', np.float64(6.131330685380973), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.807650086832799), np.int32(5), np.int32(14), np.int32(2), np.False_)]
1441 [('SN', np.float64(4.233857526644038), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.095074411150082), np.int32(8), np.int32(14), np.int32(2), np.False_)]
1449 [('SN', np.float64(10.408744258525134), np.int32(5), np.int32(13), np.int32(1), np.True_), ('SN', np.float64(10.48613895470914), np.int32(5), np.int32(14), np.int32(2), np.True_)]
1486 [('RL', np.float64(4.112006648615996), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.681828253222994), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.125861860272041), np.int32(8), np.int32(14), np.int32(2), np.False_)]
1491 [('RL', np.float64(4.836954920268002), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.462427697546), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(7.552899688244004), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(8.258735680631), np.int32(8), np.int32(14), np.int32(2), np.False_)]
1492 [('SN', np.float64(3.957574725354085), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(3.9759609449620847), np.int32(8), np.int32(14), np.int32(2), np.False_)]
1506 [('SN', np.float64(5.282852906003105), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.304362368246109), np.int32(8), np.int32(14), np.int32(2), np.False_)]
1509 [('RL', np.float64(5.558404669992997), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.237050101994999), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(9.196002403524), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(9.949386382531003), np.int32(8), np.int32(14), np.int32(2), np.False_)]
1511 [('SN', np.float64(4.898061126254039), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(8.324976406184073), np.int32(5), np.int32(14), np.int32(2), np.False_)]
1537 [('SN', np.float64(5.405307807461215), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.662892225892203), np.int32(5), np.int32(14), np.int32(2), np.False_)]
1543 [('SN', np.float64(5.312973890592149), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.5622914500503144), np.int32(5), np.int32(14), np.int32(2), np.False_)]
1596 [('SN', np.float64(4.307969276995072), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.802207140640068), np.int32(8), np.int32(14), np.int32(2), np.False_)]
1599 [('RL', np.float64(4.851958158650999), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.478882520154993), np.int32(8), np.int32(14), np.int32(1), np.False_), ('CE', np.float64(15.634228161270036), np.int32(14), np.int32(4), np.False_, np.True_, np.True_, np.False_), ('RL', np.float64(17.49375343960805), np.int32(14), np.int32(8), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(17.49990601906805), np.int32(8), np.int32(13), np.int32(2), np.False_)]
1628 [('SN', np.float64(5.541143580744198), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.709302720452266), np.int32(5), np.int32(14), np.int32(2), np.False_)]
1638 [('SN', np.float64(4.487491004393076), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.690813888364075), np.int32(8), np.int32(14), np.int32(2), np.False_)]
1657 [('SN', np.float64(5.876613628827177), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.098653385929317), np.int32(5), np.int32(14), np.int32(2), np.False_)]
1663 [('SN', np.float64(6.122012233238102), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.446421188664204), np.int32(5), np.int32(14), np.int32(2), np.False_)]
1672 [('SN', np.float64(4.735568715410075), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.808492098352076), np.int32(8), np.int32(14), np.int32(2), np.False_)]
1677 [('SN', np.float64(7.487115226562047), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(19.524968552650957), np.int32(5), np.int32(13), np.int32(2), np.True_)]
1690 [('SN', np.float64(4.9032729795210415), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.774899928844105), np.int32(5), np.int32(14), np.int32(2), np.False_)]
1691 [('RL', np.float64(6.102745390197998), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.841658871318), np.int32(8), np.int32(13), np.int32(1), np.True_), ('SN', np.float64(9.290307079163046), np.int32(8), np.int32(14), np.int32(2), np.True_)]
1724 [('RL', np.float64(12.119273107306999), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(13.734051685313993), np.int32(8), np.int32(13), np.int32(1), np.True_), ('SN', np.float64(29.58476494476429), np.int32(5), np.int32(13), np.int32(2), np.True_)]
1744 [('SN', np.float64(4.557375115931081), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.78901155216908), np.int32(8), np.int32(14), np.int32(2), np.False_)]
1766 [('RL', np.float64(4.712805585020998), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.328940157290992), np.int32(8), np.int32(14), np.int32(1), np.False_), ('CE', np.float64(10.891730691185971), np.int32(14), np.int32(4), np.False_, np.True_, np.True_, np.False_), ('SN', np.float64(11.94454903634697), np.int32(8), np.int32(13), np.int32(2), np.True_)]
1774 [('RL', np.float64(4.310007056749003), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.894922226577005), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(5.9599975028460035), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(6.567564336968003), np.int32(8), np.int32(14), np.int32(2), np.False_)]
1847 [('SN', np.float64(3.9116546548550812), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(3.9272467500530808), np.int32(8), np.int32(14), np.int32(2), np.False_)]
1867 [('RL', np.float64(6.743287835754), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(7.5611643080450035), np.int32(8), np.int32(13), np.int32(1), np.True_), ('SN', np.float64(9.220616485313727), np.int32(5), np.int32(14), np.int32(2), np.True_)]
1875 [('SN', np.float64(7.179181141754181), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(8.263682718503146), np.int32(5), np.int32(14), np.int32(2), np.False_)]
1918 [('RL', np.float64(4.568166744772014), np.int32(4), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.123556168160015), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.25448840295702), np.int32(5), np.int32(14), np.int32(2), np.False_)]
1944 [('RL', np.float64(6.648952151398999), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(7.457763166945998), np.int32(8), np.int32(13), np.int32(1), np.True_), ('SN', np.float64(10.89391243743311), np.int32(5), np.int32(14), np.int32(2), np.True_)]
1966 [('RL', np.float64(3.430757194908997), np.int32(1), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('RL', np.float64(3.465655020281997), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(3.929136133947991), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.454438087806017), np.int32(8), np.int32(14), np.int32(2), np.False_)]
1989 [('SN', np.float64(5.486141491510178), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.243420956454394), np.int32(5), np.int32(14), np.int32(2), np.False_)]
1993 [('SN', np.float64(4.576197236474032), np.int32(8), np.int32(14), np.int32(1), np.False_), ('CE', np.float64(5.985064586338978), np.int32(14), np.int32(4), np.False_, np.True_, np.True_, np.False_), ('SN', np.float64(6.4190751893949765), np.int32(8), np.int32(14), np.int32(2), np.False_)]
2009 [('SN', np.float64(4.608077386478078), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.720974962679078), np.int32(8), np.int32(14), np.int32(2), np.False_)]
2029 [('RL', np.float64(4.949564550039003), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.581220684955013), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.37288723894804), np.int32(5), np.int32(14), np.int32(2), np.False_)]
2047 [('SN', np.float64(6.96003797804816), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.293336069433194), np.int32(5), np.int32(14), np.int32(2), np.False_)]
2050 [('RL', np.float64(5.706750729689002), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.394769424252002), np.int32(8), np.int32(14), np.int32(1), np.False_), ('CE', np.float64(14.915803344689262), np.int32(14), np.int32(5), np.False_, np.True_, np.True_, np.False_), ('SN', np.float64(14.949575223719261), np.int32(8), np.int32(13), np.int32(2), np.True_)]
2064 [('SN', np.float64(3.9657608665430812), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.072181250433082), np.int32(8), np.int32(14), np.int32(2), np.False_)]
2075 [('RL', np.float64(5.373916359683995), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.036555479314992), np.int32(8), np.int32(14), np.int32(1), np.True_), ('SN', np.float64(7.330574520997031), np.int32(8), np.int32(14), np.int32(2), np.True_)]
2085 [('SN', np.float64(4.197208556032092), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.346434996901088), np.int32(8), np.int32(14), np.int32(2), np.False_)]
2102 [('RL', np.float64(5.098368881811002), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.742247489904006), np.int32(8), np.int32(14), np.int32(1), np.False_), ('CE', np.float64(16.204279004486057), np.int32(14), np.int32(4), np.False_, np.True_, np.True_, np.False_), ('RL', np.float64(18.138668483762068), np.int32(14), np.int32(8), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(18.142944303630067), np.int32(8), np.int32(13), np.int32(2), np.False_)]
2111 [('SN', np.float64(4.076721824732092), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.402045327745092), np.int32(8), np.int32(14), np.int32(2), np.False_)]
2112 [('RL', np.float64(3.4728046114270072), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(3.958714936204012), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.796669070271053), np.int32(8), np.int32(14), np.int32(2), np.False_)]
2122 [('RL', np.float64(5.360770860961001), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.024530763343997), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(8.093856913365), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(8.720673702555), np.int32(8), np.int32(14), np.int32(2), np.False_)]
2132 [('SN', np.float64(4.22158238909209), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.284369635037089), np.int32(8), np.int32(14), np.int32(2), np.False_)]
2146 [('SN', np.float64(4.799003046646996), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.230900605694978), np.int32(8), np.int32(14), np.int32(2), np.False_)]
2178 [('SN', np.float64(4.914758365203096), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.078189088715095), np.int32(8), np.int32(14), np.int32(2), np.False_)]
2180 [('RL', np.float64(6.3827604904849995), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(7.149949037271999), np.int32(8), np.int32(13), np.int32(1), np.True_), ('SN', np.float64(8.079012843818173), np.int32(5), np.int32(14), np.int32(2), np.True_)]
2184 [('SN', np.float64(4.31767914074908), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.371094586916081), np.int32(8), np.int32(14), np.int32(2), np.False_)]
2208 [('RL', np.float64(4.938384290306999), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.571802005287009), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.449779700540044), np.int32(8), np.int32(14), np.int32(2), np.False_)]
2216 [('RL', np.float64(5.6174969433649995), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.300261038755998), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(25.36522849861901), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(29.76257161220103), np.int32(8), np.int32(13), np.int32(2), np.False_)]
2218 [('SN', np.float64(8.48818911851811), np.int32(5), np.int32(14), np.int32(1), np.True_), ('SN', np.float64(8.835153721855047), np.int32(5), np.int32(14), np.int32(2), np.True_)]
2224 [('SN', np.float64(5.868045902342239), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.3275611398942), np.int32(5), np.int32(14), np.int32(2), np.False_)]
2231 [('SN', np.float64(5.000689458799027), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.4204290472230126), np.int32(5), np.int32(14), np.int32(2), np.False_)]
2244 [('SN', np.float64(4.237594748419033), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.048925410224051), np.int32(5), np.int32(14), np.int32(2), np.False_)]
2270 [('SN', np.float64(5.541339256752856), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.706976799653867), np.int32(5), np.int32(14), np.int32(2), np.False_)]
2288 [('RL', np.float64(5.684702351526001), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.371582732922002), np.int32(8), np.int32(14), np.int32(1), np.False_), ('CE', np.float64(8.814802260800231), np.int32(14), np.int32(4), np.False_, np.True_, np.True_, np.False_), ('SN', np.float64(9.052938073538233), np.int32(8), np.int32(14), np.int32(2), np.False_)]
2291 [('SN', np.float64(9.05367943956795), np.int32(5), np.int32(14), np.int32(1), np.True_), ('SN', np.float64(9.90632750882122), np.int32(5), np.int32(14), np.int32(2), np.True_)]
2310 [('SN', np.float64(4.51052846434408), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.717860221713083), np.int32(8), np.int32(14), np.int32(2), np.False_)]
2315 [('SN', np.float64(5.023180529136033), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.519027865665021), np.int32(5), np.int32(14), np.int32(2), np.False_)]
2333 [('RL', np.float64(3.499189297103999), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(3.9898243537849987), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(6.254291217393), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(6.853820925733996), np.int32(8), np.int32(14), np.int32(2), np.False_)]
2350 [('RL', np.float64(6.074370670650998), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.8085197259429995), np.int32(8), np.int32(13), np.int32(1), np.True_), ('SN', np.float64(8.536129734400031), np.int32(8), np.int32(14), np.int32(2), np.True_)]
2355 [('SN', np.float64(4.687877671598064), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.749010611357065), np.int32(8), np.int32(14), np.int32(2), np.False_)]
2384 [('SN', np.float64(12.475131875506328), np.int32(5), np.int32(13), np.int32(1), np.True_), ('SN', np.float64(14.091010332896309), np.int32(5), np.int32(13), np.int32(2), np.True_)]
2395 [('SN', np.float64(5.634209213627218), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(8.236908400130115), np.int32(5), np.int32(14), np.int32(2), np.False_)]
2426 [('SN', np.float64(4.214654565492085), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.4992235387670885), np.int32(8), np.int32(14), np.int32(2), np.False_)]
2446 [('SN', np.float64(3.8956111934800473), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.84619234887608), np.int32(8), np.int32(14), np.int32(2), np.False_)]
2451 [('RL', np.float64(6.773888403109978), np.int32(5), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.7764644433259775), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(8.918682715923827), np.int32(5), np.int32(14), np.int32(2), np.False_)]
2457 [('SN', np.float64(3.9538505827670445), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.728373829685107), np.int32(5), np.int32(14), np.int32(2), np.False_)]
2465 [('RL', np.float64(6.794043384858997), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(7.627118943415997), np.int32(8), np.int32(13), np.int32(1), np.True_), ('SN', np.float64(11.09505012057696), np.int32(8), np.int32(14), np.int32(2), np.True_)]
2562 [('SN', np.float64(4.041090091326046), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.109085759085101), np.int32(8), np.int32(14), np.int32(2), np.False_)]
2633 [('SN', np.float64(6.153760311295836), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(20.062853282348254), np.int32(5), np.int32(13), np.int32(2), np.True_)]
2638 [('RL', np.float64(3.6572990954389994), np.int32(1), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('RL', np.float64(3.701892674003999), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.192072334287001), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.998306414762034), np.int32(8), np.int32(14), np.int32(2), np.False_)]
2659 [('SN', np.float64(4.268851848131044), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.059014765707909), np.int32(5), np.int32(14), np.int32(2), np.False_)]
2695 [('SN', np.float64(6.98369363712902), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.107878371146015), np.int32(5), np.int32(14), np.int32(2), np.False_)]
2710 [('SN', np.float64(8.180086098219073), np.int32(5), np.int32(14), np.int32(1), np.True_), ('SN', np.float64(8.283427915848112), np.int32(5), np.int32(14), np.int32(2), np.True_)]
2734 [('SN', np.float64(4.483061637783087), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.772516771215088), np.int32(8), np.int32(14), np.int32(2), np.False_)]
2743 [('SN', np.float64(4.083790081050045), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.2968800579139845), np.int32(8), np.int32(14), np.int32(2), np.False_)]
2746 [('SN', np.float64(6.01964027539401), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(10.95542077064393), np.int32(5), np.int32(14), np.int32(2), np.False_)]
2748 [('SN', np.float64(4.510728495570037), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.268832903132064), np.int32(8), np.int32(14), np.int32(2), np.False_)]
2795 [('SN', np.float64(6.483993074400892), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(8.2036330153419), np.int32(5), np.int32(14), np.int32(2), np.False_)]
2827 [('SN', np.float64(6.400657858824852), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.955821410348818), np.int32(5), np.int32(14), np.int32(2), np.False_)]
2835 [('RL', np.float64(3.776004478503), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.306095222878996), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(6.278307752168994), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(6.867028274031), np.int32(8), np.int32(14), np.int32(2), np.False_)]
2850 [('RL', np.float64(5.8244159953409955), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.529104746835997), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(8.684879586520994), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(9.358162429178995), np.int32(8), np.int32(14), np.int32(2), np.False_)]
2891 [('SN', np.float64(4.623648032707082), np.int32(8), np.int32(14), np.int32(1), np.True_), ('SN', np.float64(4.631369391341082), np.int32(8), np.int32(14), np.int32(2), np.True_)]
2913 [('RL', np.float64(5.742939448974), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.438068958164004), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(8.569990767320059), np.int32(8), np.int32(14), np.int32(2), np.False_)]
2915 [('SN', np.float64(3.889729737339087), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.246771400417087), np.int32(8), np.int32(14), np.int32(2), np.False_)]
2960 [('SN', np.float64(5.58037315049889), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.362422618710096), np.int32(5), np.int32(14), np.int32(2), np.False_)]
2981 [('RL', np.float64(5.016049230497998), np.int32(4), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.652503589884995), np.int32(8), np.int32(14), np.int32(1), np.True_), ('SN', np.float64(6.34859188586084), np.int32(5), np.int32(14), np.int32(2), np.True_)]
2984 [('RL', np.float64(4.283602782475), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.867320010173004), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.541728699799046), np.int32(8), np.int32(14), np.int32(2), np.False_)]
2987 [('SN', np.float64(4.676988355078108), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.040461428053099), np.int32(8), np.int32(14), np.int32(2), np.False_)]
3044 [('SN', np.float64(4.534163991515097), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.843532779799093), np.int32(8), np.int32(14), np.int32(2), np.False_)]
3050 [('SN', np.float64(4.28125852488904), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(8.279390659443925), np.int32(5), np.int32(14), np.int32(2), np.False_)]
3058 [('SN', np.float64(4.609325653749054), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(6.397716876448052), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(7.167627529989052), np.int32(8), np.int32(14), np.int32(2), np.False_)]
3078 [('SN', np.float64(7.76454073827206), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(9.767932395321909), np.int32(5), np.int32(14), np.int32(2), np.True_)]
3090 [('RL', np.float64(5.6508093036819975), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.337423759913993), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(8.741151334867995), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(9.43777244982799), np.int32(8), np.int32(14), np.int32(2), np.False_)]
3093 [('SN', np.float64(5.730205615053149), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(8.135903329329293), np.int32(5), np.int32(14), np.int32(2), np.False_)]
3103 [('SN', np.float64(4.125979473415082), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.5010871006740825), np.int32(8), np.int32(14), np.int32(2), np.False_)]
3110 [('RL', np.float64(26.52788425905101), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(31.28872036228701), np.int32(9), np.int32(13), np.int32(1), np.False_), ('SN', np.float64(44.51479369961518), np.int32(5), np.int32(13), np.int32(2), np.False_)]
3156 [('SN', np.float64(6.044389142470097), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.501306550831244), np.int32(5), np.int32(14), np.int32(2), np.False_)]
3220 [('CE', np.float64(4.991098505366001), np.int32(4), np.int32(4), np.True_, np.False_, np.True_, np.False_), ('SN', np.float64(5.271351173651995), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.281245042448995), np.int32(8), np.int32(14), np.int32(2), np.False_)]
3221 [('RL', np.float64(6.484550095823), np.int32(1), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('RL', np.float64(6.608444982764002), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(7.411837224285002), np.int32(8), np.int32(13), np.int32(1), np.True_), ('SN', np.float64(11.766357148974997), np.int32(8), np.int32(14), np.int32(2), np.True_)]
3255 [('SN', np.float64(5.412389495848124), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.215984977891998), np.int32(5), np.int32(14), np.int32(2), np.False_)]
3272 [('RL', np.float64(5.061088905575999), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.701514269320998), np.int32(8), np.int32(14), np.int32(1), np.False_), ('CE', np.float64(16.063808174693985), np.int32(14), np.int32(4), np.False_, np.True_, np.True_, np.False_), ('RL', np.float64(17.961649358624978), np.int32(14), np.int32(8), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(17.96471355659898), np.int32(8), np.int32(13), np.int32(2), np.False_)]
3301 [('RL', np.float64(3.5931514146280006), np.int32(1), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('RL', np.float64(3.634374776730003), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.096772907591004), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.121984517993056), np.int32(8), np.int32(14), np.int32(2), np.False_)]
3338 [('SN', np.float64(4.021869940453044), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.861846457412084), np.int32(8), np.int32(14), np.int32(2), np.False_)]
3354 [('SN', np.float64(4.089296767632044), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.59541581506799), np.int32(5), np.int32(14), np.int32(2), np.False_)]
3356 [('SN', np.float64(5.7897321098468515), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.688549383907986), np.int32(5), np.int32(14), np.int32(2), np.False_)]
3404 [('SN', np.float64(5.314017859363848), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(11.945352368502045), np.int32(5), np.int32(14), np.int32(2), np.True_)]
3419 [('SN', np.float64(4.491681504279069), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.561853612160069), np.int32(8), np.int32(14), np.int32(2), np.False_)]
3422 [('SN', np.float64(4.342393522475036), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.040047529544079), np.int32(8), np.int32(14), np.int32(2), np.True_)]
3436 [('SN', np.float64(4.65537481188907), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.773299499910074), np.int32(8), np.int32(14), np.int32(2), np.False_)]
3449 [('SN', np.float64(3.968061428307049), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.068524947896092), np.int32(8), np.int32(14), np.int32(2), np.True_)]
3550 [('RL', np.float64(5.0721260870229985), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.715255597674001), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.7382670846960275), np.int32(8), np.int32(14), np.int32(2), np.False_)]
3581 [('SN', np.float64(3.9784938240140937), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.0247622999270956), np.int32(8), np.int32(14), np.int32(2), np.False_)]
3594 [('SN', np.float64(6.113780105441978), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.501845528624139), np.int32(5), np.int32(14), np.int32(2), np.False_)]
3599 [('RL', np.float64(5.676871427244998), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.365824372847997), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(8.07991997536004), np.int32(8), np.int32(14), np.int32(2), np.False_)]
3616 [('RL', np.float64(4.779740787231), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.400379365101994), np.int32(8), np.int32(14), np.int32(1), np.False_), ('CE', np.float64(16.52358540135607), np.int32(14), np.int32(4), np.False_, np.True_, np.True_, np.False_), ('RL', np.float64(18.528875646878056), np.int32(14), np.int32(8), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(18.532633916849054), np.int32(8), np.int32(13), np.int32(2), np.False_)]
3639 [('SN', np.float64(5.264266640414091), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.534646895707985), np.int32(5), np.int32(14), np.int32(2), np.False_)]
3651 [('RL', np.float64(4.054170971064997), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.614714967071007), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.152263111754061), np.int32(8), np.int32(14), np.int32(2), np.False_)]
3656 [('SN', np.float64(3.925613292025049), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.480563207061096), np.int32(8), np.int32(14), np.int32(2), np.False_)]
3674 [('SN', np.float64(5.489881038398186), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(8.861484754879116), np.int32(5), np.int32(14), np.int32(2), np.True_)]
3706 [('RL', np.float64(5.171119407333999), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.821407990030003), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(8.127259612705007), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(8.832059501680007), np.int32(8), np.int32(14), np.int32(2), np.False_)]
3777 [('RL', np.float64(4.652275518018003), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.265113429846006), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.170583147850049), np.int32(8), np.int32(14), np.int32(2), np.False_)]
3778 [('SN', np.float64(4.013119669515084), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.497413501096088), np.int32(8), np.int32(14), np.int32(2), np.False_)]
3788 [('RL', np.float64(5.083726743462002), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.726247777990999), np.int32(8), np.int32(14), np.int32(1), np.True_), ('SN', np.float64(6.94133346374406), np.int32(8), np.int32(14), np.int32(2), np.True_)]
3877 [('SN', np.float64(3.9636975963960492), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.308961511229213), np.int32(8), np.int32(14), np.int32(2), np.False_)]
3885 [('RL', np.float64(6.7790633038009025), np.int32(5), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.782004733598903), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(8.354286446345762), np.int32(5), np.int32(14), np.int32(2), np.False_)]
3888 [('RL', np.float64(7.545505300398002), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(8.465999906798), np.int32(8), np.int32(13), np.int32(1), np.True_), ('SN', np.float64(9.577501078563571), np.int32(5), np.int32(14), np.int32(2), np.True_)]
3907 [('SN', np.float64(5.037900379826053), np.int32(8), np.int32(14), np.int32(1), np.False_), ('CE', np.float64(5.074389796169052), np.int32(14), np.int32(4), np.False_, np.True_, np.True_, np.False_), ('SN', np.float64(5.71493694034605), np.int32(8), np.int32(14), np.int32(2), np.False_)]
3933 [('SN', np.float64(5.814846026216816), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.741596990374835), np.int32(5), np.int32(14), np.int32(2), np.False_)]
3963 [('SN', np.float64(4.476863663844045), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.223621444507104), np.int32(8), np.int32(14), np.int32(2), np.False_)]
4010 [('SN', np.float64(5.0973375514790495), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.470435972679993), np.int32(5), np.int32(14), np.int32(2), np.False_)]
4052 [('RL', np.float64(5.506400380874), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.179823275637004), np.int32(8), np.int32(14), np.int32(1), np.False_), ('CE', np.float64(15.9516819168), np.int32(14), np.int32(4), np.False_, np.True_, np.True_, np.False_), ('RL', np.float64(17.805312133904987), np.int32(14), np.int32(8), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(17.81210707688599), np.int32(8), np.int32(13), np.int32(2), np.False_)]
4055 [('RL', np.float64(5.200472803258), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.850368598829006), np.int32(8), np.int32(14), np.int32(1), np.False_), ('CE', np.float64(17.655452233193003), np.int32(14), np.int32(3), np.False_, np.True_, np.True_, np.False_), ('RL', np.float64(20.245943984163997), np.int32(14), np.int32(8), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(20.248837266733), np.int32(8), np.int32(13), np.int32(2), np.False_)]
4077 [('SN', np.float64(4.60595547228809), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.646540646559089), np.int32(8), np.int32(14), np.int32(2), np.False_)]
4172 [('SN', np.float64(4.5140160510750835), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.993526151428084), np.int32(8), np.int32(14), np.int32(2), np.False_)]
4175 [('SN', np.float64(4.0039139865080395), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.714153378851283), np.int32(5), np.int32(14), np.int32(2), np.False_)]
4196 [('SN', np.float64(4.359781466707041), np.int32(8), np.int32(14), np.int32(1), np.False_), ('CE', np.float64(8.915583006401079), np.int32(14), np.int32(4), np.False_, np.True_, np.True_, np.False_), ('SN', np.float64(9.838172546525087), np.int32(8), np.int32(14), np.int32(2), np.False_)]
4209 [('RL', np.float64(3.813185278307), np.int32(1), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('RL', np.float64(3.85337627652), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.381493089582), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.699965757021835), np.int32(8), np.int32(14), np.int32(2), np.False_)]
4227 [('SN', np.float64(4.423711505243044), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.836286999320007), np.int32(5), np.int32(14), np.int32(2), np.False_)]
4235 [('RL', np.float64(4.924865644636002), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.558301523253006), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(9.765276915373006), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(10.836318233085006), np.int32(8), np.int32(14), np.int32(2), np.False_)]
4240 [('SN', np.float64(4.027486788094046), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.522434279422052), np.int32(5), np.int32(14), np.int32(2), np.False_)]
4279 [('SN', np.float64(7.460946911581106), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(9.832453510011971), np.int32(5), np.int32(13), np.int32(2), np.True_)]
4291 [('SN', np.float64(3.964488237259094), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.0502474862990985), np.int32(8), np.int32(14), np.int32(2), np.False_)]
4326 [('RL', np.float64(6.037317240197001), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.760859500146999), np.int32(8), np.int32(13), np.int32(1), np.True_), ('SN', np.float64(7.4708483474128915), np.int32(5), np.int32(14), np.int32(2), np.True_)]
4328 [('SN', np.float64(5.141980196949036), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(13.722131084560925), np.int32(5), np.int32(13), np.int32(2), np.True_)]
4339 [('SN', np.float64(4.663661608828025), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.40001903812111), np.int32(5), np.int32(14), np.int32(2), np.False_)]
4364 [('SN', np.float64(5.636100104133179), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.15891030252212), np.int32(5), np.int32(14), np.int32(2), np.False_)]
4370 [('SN', np.float64(3.9810529758800453), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.562957398054076), np.int32(8), np.int32(14), np.int32(2), np.False_)]
4376 [('SN', np.float64(4.5046273956610365), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(5.84174361874504), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(6.543327835692043), np.int32(8), np.int32(14), np.int32(2), np.False_)]
4396 [('RL', np.float64(5.652376996377), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.334874984403999), np.int32(8), np.int32(14), np.int32(1), np.False_), ('CE', np.float64(18.28194303065599), np.int32(14), np.int32(3), np.False_, np.True_, np.True_, np.False_), ('RL', np.float64(20.980745708815984), np.int32(14), np.int32(8), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(20.984579863093984), np.int32(8), np.int32(13), np.int32(2), np.False_)]
4409 [('SN', np.float64(4.75974218969904), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(9.31583413593509), np.int32(5), np.int32(14), np.int32(2), np.False_)]
4410 [('SN', np.float64(5.36817950705802), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.3920141907442085), np.int32(5), np.int32(14), np.int32(2), np.False_)]
4434 [('RL', np.float64(4.057824979343002), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.621695133582008), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(6.904876773768006), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(7.523897700847005), np.int32(8), np.int32(14), np.int32(2), np.False_)]
4494 [('SN', np.float64(5.438595727729225), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.951910643596049), np.int32(5), np.int32(14), np.int32(2), np.False_)]
4512 [('SN', np.float64(4.649927135914039), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(9.162618411137903), np.int32(5), np.int32(14), np.int32(2), np.False_)]
4531 [('SN', np.float64(4.753603242840046), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.496360610859146), np.int32(5), np.int32(14), np.int32(2), np.False_)]
4613 [('RL', np.float64(5.534841891468919), np.int32(4), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.820708062485914), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.261285730479697), np.int32(5), np.int32(14), np.int32(2), np.False_)]
4618 [('RL', np.float64(4.136623304520001), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.7075560638209994), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.222619840914046), np.int32(8), np.int32(14), np.int32(2), np.False_)]
4660 [('SN', np.float64(5.697314696949919), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.969324923573084), np.int32(5), np.int32(14), np.int32(2), np.False_)]
4669 [('SN', np.float64(4.583149980723031), np.int32(8), np.int32(14), np.int32(1), np.False_), ('CE', np.float64(9.177940995656076), np.int32(14), np.int32(4), np.False_, np.True_, np.True_, np.False_), ('SN', np.float64(10.11043848084107), np.int32(8), np.int32(14), np.int32(2), np.False_)]
4672 [('RL', np.float64(4.4494101989609955), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.046645207455978), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(7.314178533485978), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(7.962884957765981), np.int32(8), np.int32(14), np.int32(2), np.False_)]
4706 [('SN', np.float64(4.12479973620909), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.646400166261087), np.int32(8), np.int32(14), np.int32(2), np.False_)]
4727 [('SN', np.float64(5.758111549403036), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.6252073867969035), np.int32(5), np.int32(14), np.int32(2), np.False_)]
4741 [('RL', np.float64(3.994275866856001), np.int32(1), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('RL', np.float64(4.020333118860002), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.5786055549280045), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.4701274118330545), np.int32(8), np.int32(14), np.int32(2), np.False_)]
4834 [('SN', np.float64(4.19782155141809), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.208952747979089), np.int32(8), np.int32(14), np.int32(2), np.False_)]
4845 [('SN', np.float64(4.160186884792083), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.677641745380094), np.int32(8), np.int32(14), np.int32(2), np.False_)]
4849 [('SN', np.float64(7.362639427349151), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.878596239831131), np.int32(5), np.int32(14), np.int32(2), np.False_)]
4856 [('SN', np.float64(6.921319430564886), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(9.059618933833603), np.int32(5), np.int32(14), np.int32(2), np.False_)]
4878 [('SN', np.float64(7.860345644008147), np.int32(5), np.int32(14), np.int32(1), np.True_), ('SN', np.float64(7.861759591736147), np.int32(5), np.int32(14), np.int32(2), np.True_)]
4889 [('SN', np.float64(5.234149667635068), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.7877305753249715), np.int32(5), np.int32(14), np.int32(2), np.False_)]
4929 [('SN', np.float64(9.802795489710372), np.int32(5), np.int32(13), np.int32(1), np.True_), ('SN', np.float64(11.840252548873805), np.int32(5), np.int32(13), np.int32(2), np.True_)]
4948 [('SN', np.float64(3.8863955412970816), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.415047982019079), np.int32(8), np.int32(14), np.int32(2), np.False_)]
4980 [('SN', np.float64(5.893009230492053), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.4454861168888735), np.int32(5), np.int32(14), np.int32(2), np.False_)]
5016 [('SN', np.float64(7.606815789771066), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.9413761447630895), np.int32(5), np.int32(14), np.int32(2), np.False_)]
5043 [('RL', np.float64(6.3178496127210035), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(7.081059950424003), np.int32(8), np.int32(13), np.int32(1), np.True_), ('SN', np.float64(15.44474825358538), np.int32(5), np.int32(13), np.int32(2), np.True_)]
5045 [('SN', np.float64(4.435730249290072), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.917163662639072), np.int32(8), np.int32(14), np.int32(2), np.False_)]
5047 [('RL', np.float64(4.571697685719998), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.178301452377985), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.489939855295151), np.int32(5), np.int32(14), np.int32(2), np.False_)]
5103 [('SN', np.float64(4.94140202834604), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.990861542084831), np.int32(5), np.int32(14), np.int32(2), np.False_)]
5104 [('RL', np.float64(5.234063633531997), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.887292182228), np.int32(8), np.int32(14), np.int32(1), np.False_), ('MG', np.float64(6.690739452612998), np.int32(14), np.int32(2), np.False_, np.True_, np.True_, np.True_)]
5193 [('SN', np.float64(5.160286489041036), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.602422285599858), np.int32(5), np.int32(14), np.int32(2), np.False_)]
5210 [('RL', np.float64(5.1384076709030015), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.785962392825001), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(7.641776822267), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(8.328534212422001), np.int32(8), np.int32(14), np.int32(2), np.False_)]
5215 [('RL', np.float64(4.907266075779005), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.538117460411009), np.int32(8), np.int32(14), np.int32(1), np.False_), ('CE', np.float64(8.200891309686904), np.int32(14), np.int32(4), np.False_, np.True_, np.True_, np.False_), ('SN', np.float64(8.781758316939897), np.int32(8), np.int32(14), np.int32(2), np.False_)]
5229 [('RL', np.float64(3.650833248831002), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.163231089658997), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.77123967547203), np.int32(8), np.int32(14), np.int32(2), np.False_)]
5259 [('RL', np.float64(6.3290109562220005), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(7.093455007375002), np.int32(8), np.int32(13), np.int32(1), np.True_), ('SN', np.float64(8.797318559266802), np.int32(5), np.int32(14), np.int32(2), np.True_)]
5286 [('SN', np.float64(4.112892959392042), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.965821481499878), np.int32(5), np.int32(14), np.int32(2), np.False_)]
5298 [('RL', np.float64(3.4670288032600016), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(3.952601633472002), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.311677084956054), np.int32(8), np.int32(14), np.int32(2), np.False_)]
5301 [('RL', np.float64(4.6128105976199985), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.221882029225004), np.int32(8), np.int32(14), np.int32(1), np.False_), ('CE', np.float64(11.122914354532929), np.int32(14), np.int32(4), np.False_, np.True_, np.True_, np.False_), ('SN', np.float64(12.200536526607925), np.int32(8), np.int32(13), np.int32(2), np.False_)]
5312 [('SN', np.float64(7.041577321946984), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(19.043202911746555), np.int32(5), np.int32(13), np.int32(2), np.True_)]
5324 [('SN', np.float64(5.07962566052805), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.982275698589976), np.int32(5), np.int32(14), np.int32(2), np.True_)]
5362 [('SN', np.float64(4.153322006631036), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.260685078289894), np.int32(5), np.int32(14), np.int32(2), np.False_)]
5405 [('RL', np.float64(4.677098008848), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.293258486365003), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(7.406762795361008), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(7.999752719518005), np.int32(8), np.int32(14), np.int32(2), np.False_)]
5424 [('SN', np.float64(4.448809089961098), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.617954386381095), np.int32(8), np.int32(14), np.int32(2), np.False_)]
5428 [('SN', np.float64(5.023455548345039), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.795741725224979), np.int32(5), np.int32(14), np.int32(2), np.False_)]
5444 [('SN', np.float64(4.57548089073908), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.921017228357076), np.int32(8), np.int32(14), np.int32(2), np.False_)]
5474 [('SN', np.float64(6.584266726615823), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.323725257164611), np.int32(5), np.int32(14), np.int32(2), np.False_)]
5494 [('SN', np.float64(4.418685268585079), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.6004201602360775), np.int32(8), np.int32(14), np.int32(2), np.False_)]
5518 [('SN', np.float64(4.672452363035032), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.488153538184197), np.int32(5), np.int32(14), np.int32(2), np.False_)]
5523 [('SN', np.float64(6.914192812020957), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.01275790468697), np.int32(5), np.int32(14), np.int32(2), np.False_)]
5531 [('SN', np.float64(4.190458057081048), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.75186614798597), np.int32(5), np.int32(14), np.int32(2), np.False_)]
5549 [('SN', np.float64(6.001835146436165), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.401500946908139), np.int32(5), np.int32(14), np.int32(2), np.False_)]
5564 [('RL', np.float64(5.142896511509003), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.789312750264004), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.172680503990079), np.int32(5), np.int32(14), np.int32(2), np.False_)]
5569 [('RL', np.float64(5.219671516722), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.870840182518003), np.int32(8), np.int32(14), np.int32(1), np.False_), ('MG', np.float64(6.038988160456), np.int32(14), np.int32(2), np.False_, np.True_, np.True_, np.True_)]
5573 [('SN', np.float64(4.41255572297009), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.545975850513091), np.int32(8), np.int32(14), np.int32(2), np.False_)]
5575 [('SN', np.float64(4.6422034887870876), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.922596087263086), np.int32(8), np.int32(14), np.int32(2), np.True_)]
5581 [('SN', np.float64(5.410694883355943), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(10.014969053883293), np.int32(5), np.int32(14), np.int32(2), np.False_)]
5599 [('SN', np.float64(5.2168209356700785), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.205048695245865), np.int32(5), np.int32(14), np.int32(2), np.False_)]
5614 [('SN', np.float64(4.103869574855038), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.691271145708163), np.int32(5), np.int32(14), np.int32(2), np.False_)]
5692 [('SN', np.float64(6.6777879718609485), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(9.78613558427581), np.int32(5), np.int32(14), np.int32(2), np.False_)]
5719 [('SN', np.float64(7.169856896785907), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(9.490961885667003), np.int32(5), np.int32(14), np.int32(2), np.False_)]
5797 [('RL', np.float64(6.086025712656002), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.817324675813006), np.int32(8), np.int32(14), np.int32(1), np.False_), ('CE', np.float64(20.815445408476005), np.int32(14), np.int32(3), np.False_, np.True_, np.True_, np.False_), ('RL', np.float64(24.044046237709), np.int32(14), np.int32(8), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(24.047736533866), np.int32(8), np.int32(13), np.int32(2), np.False_)]
5839 [('SN', np.float64(3.960181938535043), np.int32(8), np.int32(14), np.int32(1), np.False_), ('CE', np.float64(4.895963247201041), np.int32(14), np.int32(4), np.False_, np.True_, np.True_, np.False_), ('SN', np.float64(5.523582820403034), np.int32(8), np.int32(14), np.int32(2), np.False_)]
5842 [('SN', np.float64(4.242122063547087), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.245468623571087), np.int32(8), np.int32(14), np.int32(2), np.False_)]
5847 [('RL', np.float64(3.392493997522001), np.int32(1), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('RL', np.float64(3.427186537692002), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(3.8868365898190054), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.575937979317048), np.int32(8), np.int32(14), np.int32(2), np.False_)]
5848 [('SN', np.float64(3.898797429022091), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.401169026279093), np.int32(8), np.int32(14), np.int32(2), np.False_)]
5854 [('SN', np.float64(4.8007011201000385), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.6643672315930145), np.int32(5), np.int32(14), np.int32(2), np.False_)]
5871 [('RL', np.float64(4.849522928141997), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.475281827484993), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.897675378777998), np.int32(5), np.int32(14), np.int32(2), np.False_)]
5893 [('SN', np.float64(3.9137672064780484), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.262435022618035), np.int32(8), np.int32(14), np.int32(2), np.False_)]
5918 [('SN', np.float64(5.096727238461966), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.407047854316911), np.int32(8), np.int32(14), np.int32(2), np.False_)]
5945 [('RL', np.float64(5.300071908711999), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.960278472049005), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.560591668922916), np.int32(8), np.int32(14), np.int32(2), np.False_)]
5994 [('SN', np.float64(5.0100982512960375), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.559169993430946), np.int32(5), np.int32(14), np.int32(2), np.False_)]
6020 [('SN', np.float64(5.694606085282909), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.409304168548897), np.int32(5), np.int32(14), np.int32(2), np.False_)]
6023 [('RL', np.float64(5.0563479693270015), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.6991423401159995), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.2505347955280515), np.int32(8), np.int32(14), np.int32(2), np.False_)]
6026 [('SN', np.float64(4.148951881378085), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.385940732464087), np.int32(8), np.int32(14), np.int32(2), np.False_)]
6072 [('SN', np.float64(4.222665356902087), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.399346974930086), np.int32(8), np.int32(14), np.int32(2), np.False_)]
6119 [('SN', np.float64(5.223337997974105), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.164585317373136), np.int32(5), np.int32(14), np.int32(2), np.False_)]
6225 [('RL', np.float64(4.71386443007), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.329739338020005), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.766362718462194), np.int32(5), np.int32(14), np.int32(2), np.False_)]
6249 [('SN', np.float64(4.65177446204704), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.249267330590188), np.int32(8), np.int32(14), np.int32(2), np.False_)]
6271 [('SN', np.float64(7.3227748041271035), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.475937686135072), np.int32(5), np.int32(14), np.int32(2), np.False_)]
6286 [('SN', np.float64(4.222417395557086), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.452890156071082), np.int32(8), np.int32(14), np.int32(2), np.False_)]
6303 [('SN', np.float64(3.9350812248350535), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.131425257223183), np.int32(5), np.int32(14), np.int32(2), np.False_)]
6358 [('SN', np.float64(4.5778313484960425), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.578320461178873), np.int32(5), np.int32(14), np.int32(2), np.False_)]
6361 [('SN', np.float64(4.336525811611045), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.731146624019156), np.int32(5), np.int32(14), np.int32(2), np.False_)]
6363 [('SN', np.float64(6.785531328879065), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(8.127472831642992), np.int32(5), np.int32(14), np.int32(2), np.False_)]
6376 [('RL', np.float64(4.491225433242001), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.092530209679004), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(7.367678135291004), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(7.970342996638005), np.int32(8), np.int32(14), np.int32(2), np.False_)]
6383 [('SN', np.float64(4.2892363026140385), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.23593756943384), np.int32(5), np.int32(14), np.int32(2), np.False_)]
6409 [('SN', np.float64(3.907650487565037), np.int32(8), np.int32(14), np.int32(1), np.False_), ('CE', np.float64(12.359710948900009), np.int32(14), np.int32(4), np.False_, np.True_, np.True_, np.False_), ('RL', np.float64(13.633909291983011), np.int32(14), np.int32(8), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(13.635989699693011), np.int32(8), np.int32(13), np.int32(2), np.True_)]
6456 [('RL', np.float64(4.769141050987002), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.3880524323080055), np.int32(8), np.int32(14), np.int32(1), np.False_), ('CE', np.float64(15.985251185168982), np.int32(14), np.int32(4), np.False_, np.True_, np.True_, np.False_), ('RL', np.float64(17.87948955657099), np.int32(14), np.int32(8), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(17.88331278484399), np.int32(8), np.int32(13), np.int32(2), np.False_)]
6489 [('SN', np.float64(4.50475461298708), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.7910699718300815), np.int32(8), np.int32(14), np.int32(2), np.True_)]
6516 [('CE', np.float64(8.923986271534988), np.int32(14), np.int32(4), np.False_, np.True_, np.True_, np.False_), ('SN', np.float64(8.923986271534988), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(9.423156869627979), np.int32(8), np.int32(14), np.int32(2), np.False_)]
6535 [('SN', np.float64(3.966064105048042), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.031105390492086), np.int32(8), np.int32(14), np.int32(2), np.False_)]
6550 [('RL', np.float64(4.919632450628001), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.549354500981), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.560530578846061), np.int32(5), np.int32(14), np.int32(2), np.False_)]
6557 [('RL', np.float64(6.714252402709004), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(7.529909681376002), np.int32(8), np.int32(13), np.int32(1), np.True_), ('SN', np.float64(11.715579409672221), np.int32(5), np.int32(14), np.int32(2), np.True_)]
6633 [('SN', np.float64(4.499768134791039), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.782176677970114), np.int32(5), np.int32(14), np.int32(2), np.False_)]
6639 [('SN', np.float64(4.173311623514046), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.365106609355911), np.int32(8), np.int32(14), np.int32(2), np.False_)]
6640 [('RL', np.float64(4.026494336262002), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.5861911827410005), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(7.436214240938999), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(8.092718162523003), np.int32(8), np.int32(14), np.int32(2), np.False_)]
6694 [('SN', np.float64(4.327911585314045), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(11.730024007815054), np.int32(5), np.int32(13), np.int32(2), np.True_)]
6712 [('RL', np.float64(4.768579531180001), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.388548353121001), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(7.532767517277002), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(8.259669019605), np.int32(8), np.int32(14), np.int32(2), np.False_)]
6749 [('SN', np.float64(3.8892396195420407), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(6.231401101893041), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(6.981438434886041), np.int32(8), np.int32(14), np.int32(2), np.False_)]
6760 [('SN', np.float64(3.9561434438840917), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.400055305823092), np.int32(8), np.int32(14), np.int32(2), np.False_)]
6869 [('SN', np.float64(5.151217496787021), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.842500430219896), np.int32(5), np.int32(14), np.int32(2), np.False_)]
6870 [('SN', np.float64(5.146142886137999), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.834736001812189), np.int32(5), np.int32(14), np.int32(2), np.False_)]
6871 [('RL', np.float64(3.700219338632004), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.219044330707005), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(6.854343437710007), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(7.509925465850007), np.int32(8), np.int32(14), np.int32(2), np.False_)]
6884 [('SN', np.float64(7.151218937108859), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.853739691724928), np.int32(5), np.int32(14), np.int32(2), np.False_)]
6958 [('SN', np.float64(4.93399984491503), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.646967291198238), np.int32(5), np.int32(14), np.int32(2), np.False_)]
7012 [('RL', np.float64(6.943496815663), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(7.7851940046329995), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(10.469834658126167), np.int32(5), np.int32(14), np.int32(2), np.False_)]
7025 [('SN', np.float64(4.185509329686088), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.251886119702085), np.int32(8), np.int32(14), np.int32(2), np.False_)]
7069 [('SN', np.float64(3.9052980350820934), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(3.9306100571430944), np.int32(8), np.int32(14), np.int32(2), np.False_)]
7129 [('SN', np.float64(5.853015650625071), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.5776445339062555), np.int32(5), np.int32(14), np.int32(2), np.False_)]
7165 [('RL', np.float64(7.108179147083), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(7.9825715637119945), np.int32(8), np.int32(13), np.int32(1), np.True_), ('SN', np.float64(28.4255554226149), np.int32(5), np.int32(13), np.int32(2), np.True_)]
7169 [('SN', np.float64(4.020313324638046), np.int32(8), np.int32(14), np.int32(1), np.False_), ('CE', np.float64(8.671303261518233), np.int32(14), np.int32(5), np.False_, np.True_, np.True_, np.False_), ('SN', np.float64(8.672965744137233), np.int32(8), np.int32(14), np.int32(2), np.False_)]
7229 [('SN', np.float64(6.970178650259176), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(20.666124822163315), np.int32(5), np.int32(14), np.int32(2), np.False_)]
7263 [('SN', np.float64(4.651902445457062), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.868990233112061), np.int32(8), np.int32(14), np.int32(2), np.False_)]
7293 [('RL', np.float64(6.440647664812999), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(7.2175131472609975), np.int32(8), np.int32(13), np.int32(1), np.True_), ('SN', np.float64(16.80159832707161), np.int32(5), np.int32(13), np.int32(2), np.True_)]
7326 [('SN', np.float64(5.106258996425039), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.610787884337098), np.int32(5), np.int32(14), np.int32(2), np.False_)]
7340 [('SN', np.float64(4.0907512222960865), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.468442175184087), np.int32(8), np.int32(14), np.int32(2), np.False_)]
7384 [('SN', np.float64(5.095870453365025), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.0342210632559805), np.int32(5), np.int32(14), np.int32(2), np.False_)]
7393 [('SN', np.float64(7.24972215522495), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(22.43370995447951), np.int32(5), np.int32(13), np.int32(2), np.True_)]
7407 [('RL', np.float64(4.936881159667002), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.569923858161004), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.1177687148190465), np.int32(8), np.int32(14), np.int32(2), np.False_)]
7441 [('SN', np.float64(4.316424980012056), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.797833702445056), np.int32(8), np.int32(14), np.int32(2), np.False_)]
7448 [('SN', np.float64(4.252693277799087), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.512571904265089), np.int32(8), np.int32(14), np.int32(2), np.False_)]
7507 [('SN', np.float64(3.9978563972270416), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.884756402813965), np.int32(5), np.int32(14), np.int32(2), np.False_)]
7565 [('SN', np.float64(5.981619364625215), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.630071349987314), np.int32(5), np.int32(14), np.int32(2), np.False_)]
7585 [('SN', np.float64(4.943485162972037), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(10.843074003393172), np.int32(5), np.int32(14), np.int32(2), np.True_)]
7587 [('SN', np.float64(4.389183721128063), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.641205034883064), np.int32(8), np.int32(14), np.int32(2), np.False_)]
7639 [('RL', np.float64(4.493334947951003), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.09385277320901), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(11.027507786233016), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(12.293391166617013), np.int32(8), np.int32(13), np.int32(2), np.True_)]
7679 [('RL', np.float64(4.539328838732), np.int32(1), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('RL', np.float64(4.579457319646), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.189621654115995), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.96352139004082), np.int32(8), np.int32(14), np.int32(2), np.False_)]
7687 [('RL', np.float64(3.7595071327859975), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.286153548845006), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.0204882224650405), np.int32(8), np.int32(14), np.int32(2), np.False_)]
7702 [('SN', np.float64(4.08019763711509), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.22156933069109), np.int32(8), np.int32(14), np.int32(2), np.False_)]
7726 [('SN', np.float64(5.855451502958815), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.944689793418652), np.int32(5), np.int32(14), np.int32(2), np.False_)]
7730 [('RL', np.float64(4.5888016921669985), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.1957148634729995), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.06866489368385), np.int32(5), np.int32(14), np.int32(2), np.False_)]
7761 [('SN', np.float64(4.499250856346047), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(23.09927701477983), np.int32(5), np.int32(13), np.int32(2), np.True_)]
7778 [('RL', np.float64(3.449835003018), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(3.932802599084001), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.287495842869043), np.int32(8), np.int32(14), np.int32(2), np.False_)]
7808 [('SN', np.float64(4.062106090762085), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.4628485030430936), np.int32(8), np.int32(14), np.int32(2), np.False_)]
7828 [('RL', np.float64(6.104014906259001), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.839337826023002), np.int32(8), np.int32(13), np.int32(1), np.True_), ('SN', np.float64(8.914211392263613), np.int32(5), np.int32(14), np.int32(2), np.True_)]
7892 [('SN', np.float64(4.201095304241047), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.45756414022994), np.int32(5), np.int32(14), np.int32(2), np.False_)]
7906 [('SN', np.float64(4.558294331427033), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.466910277020068), np.int32(5), np.int32(14), np.int32(2), np.False_)]
7912 [('RL', np.float64(4.157380759965001), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.729362533445013), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.25931828678405), np.int32(8), np.int32(14), np.int32(2), np.False_)]
7917 [('RL', np.float64(5.210036153663003), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.861976668531001), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.462149129154047), np.int32(8), np.int32(14), np.int32(2), np.False_)]
7919 [('RL', np.float64(3.9316945641650003), np.int32(1), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('RL', np.float64(3.981722902620001), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.516638832264996), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.5002428913720385), np.int32(8), np.int32(14), np.int32(2), np.False_)]
7931 [('RL', np.float64(3.475316356710999), np.int32(1), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('RL', np.float64(3.5099388735279997), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(3.9840452213769995), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.0736881571710395), np.int32(8), np.int32(14), np.int32(2), np.False_)]
8009 [('RL', np.float64(6.301983644145001), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(7.059345128567997), np.int32(8), np.int32(13), np.int32(1), np.True_), ('SN', np.float64(12.006972185578224), np.int32(5), np.int32(13), np.int32(2), np.True_)]
8063 [('SN', np.float64(5.068933618172047), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.81618538411897), np.int32(5), np.int32(14), np.int32(2), np.False_)]
8077 [('RL', np.float64(3.6587489894420004), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.17319454469), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(7.210020895567999), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(7.908387403623003), np.int32(8), np.int32(13), np.int32(2), np.True_)]
8110 [('SN', np.float64(4.607991747668086), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.752392988766085), np.int32(8), np.int32(14), np.int32(2), np.False_)]
8117 [('SN', np.float64(3.8871391127330726), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(3.8879004193590725), np.int32(8), np.int32(14), np.int32(2), np.False_)]
8129 [('RL', np.float64(5.9827661144020015), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.702218276643003), np.int32(8), np.int32(13), np.int32(1), np.True_), ('SN', np.float64(8.22590120963782), np.int32(5), np.int32(14), np.int32(2), np.True_)]
8148 [('SN', np.float64(4.439267462902046), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.574020721131126), np.int32(5), np.int32(14), np.int32(2), np.False_)]
8192 [('SN', np.float64(8.34416834849383), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(14.964007911131274), np.int32(5), np.int32(14), np.int32(2), np.True_)]
8256 [('RL', np.float64(3.667276633769001), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.1826576921769965), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.539821806495063), np.int32(8), np.int32(14), np.int32(2), np.False_)]
8269 [('SN', np.float64(6.600448222567027), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.638264562593021), np.int32(5), np.int32(14), np.int32(2), np.False_)]
8290 [('SN', np.float64(4.384088495593088), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.7138419125250905), np.int32(8), np.int32(14), np.int32(2), np.False_)]
8323 [('SN', np.float64(6.9555690933701975), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.290247028416281), np.int32(5), np.int32(14), np.int32(2), np.False_)]
8333 [('SN', np.float64(6.4727728882908835), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(8.902639965377887), np.int32(5), np.int32(14), np.int32(2), np.False_)]
8346 [('SN', np.float64(3.9309068194980434), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.187765260608102), np.int32(8), np.int32(14), np.int32(2), np.False_)]
8397 [('SN', np.float64(8.250201014118018), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(10.16401465956645), np.int32(5), np.int32(13), np.int32(2), np.True_)]
8408 [('SN', np.float64(5.4435464106931), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.824023002481278), np.int32(5), np.int32(14), np.int32(2), np.False_)]
8442 [('SN', np.float64(4.003041594813041), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.00936649459209), np.int32(5), np.int32(14), np.int32(2), np.False_)]
8490 [('SN', np.float64(4.386926584236084), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.746336781261091), np.int32(8), np.int32(14), np.int32(2), np.False_)]
8504 [('SN', np.float64(5.197990504601012), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(8.643877600439225), np.int32(5), np.int32(14), np.int32(2), np.False_)]
8577 [('SN', np.float64(4.445581523803088), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.45990418931409), np.int32(8), np.int32(14), np.int32(2), np.False_)]
8591 [('RL', np.float64(4.994448116447006), np.int32(1), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('RL', np.float64(5.068575132593007), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.707467971551009), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.583191204991878), np.int32(8), np.int32(14), np.int32(2), np.False_)]
8598 [('RL', np.float64(4.683230136681001), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.299125444127999), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.309936609055035), np.int32(8), np.int32(14), np.int32(2), np.False_)]
8609 [('SN', np.float64(4.168691321487088), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.248526353486087), np.int32(8), np.int32(14), np.int32(2), np.False_)]
8623 [('SN', np.float64(4.146765910310042), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(5.081183315609044), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(5.723139001244048), np.int32(8), np.int32(14), np.int32(2), np.False_)]
8667 [('SN', np.float64(6.564100736598102), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(11.557360025802462), np.int32(5), np.int32(13), np.int32(2), np.True_)]
8684 [('SN', np.float64(3.9445921724280506), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.888739872661079), np.int32(8), np.int32(14), np.int32(2), np.True_)]
8690 [('RL', np.float64(6.077221413316), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.811641851208997), np.int32(8), np.int32(13), np.int32(1), np.True_), ('SN', np.float64(9.083194284315054), np.int32(5), np.int32(14), np.int32(2), np.True_)]
8753 [('SN', np.float64(5.0449910813778285), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(5.525240909015829), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(6.197058508828825), np.int32(8), np.int32(14), np.int32(2), np.False_)]
8778 [('SN', np.float64(6.805262716918985), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(10.264502064138023), np.int32(5), np.int32(14), np.int32(2), np.True_)]
8779 [('RL', np.float64(4.022234612071), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.5802958979859945), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.972752966196037), np.int32(8), np.int32(14), np.int32(2), np.False_)]
8823 [('RL', np.float64(5.753625618873001), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.446187253647002), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(11.554276985566213), np.int32(5), np.int32(13), np.int32(2), np.True_)]
8841 [('RL', np.float64(5.199481768986001), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.849170007027001), np.int32(8), np.int32(14), np.int32(1), np.True_), ('SN', np.float64(6.58086986659081), np.int32(5), np.int32(14), np.int32(2), np.True_)]
8844 [('SN', np.float64(9.837918095094384), np.int32(5), np.int32(13), np.int32(1), np.True_), ('SN', np.float64(17.927417507832047), np.int32(5), np.int32(13), np.int32(2), np.True_)]
8847 [('SN', np.float64(6.5006759335348585), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.5942367424118435), np.int32(5), np.int32(14), np.int32(2), np.False_)]
8856 [('SN', np.float64(5.0049351023040245), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.616931887833164), np.int32(5), np.int32(14), np.int32(2), np.False_)]
8875 [('RL', np.float64(4.083016144271998), np.int32(1), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('RL', np.float64(4.129563784504996), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.694697006274997), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.015363827179049), np.int32(8), np.int32(14), np.int32(2), np.False_)]
8896 [('SN', np.float64(4.995402987277027), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.505269402982877), np.int32(5), np.int32(14), np.int32(2), np.False_)]
8917 [('RL', np.float64(5.899054141749003), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.611297890009004), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(8.592016712207053), np.int32(8), np.int32(14), np.int32(2), np.False_)]
8928 [('SN', np.float64(3.9979333403940855), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.302030653228086), np.int32(8), np.int32(14), np.int32(2), np.False_)]
8951 [('SN', np.float64(3.9848603598960843), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.266273601507084), np.int32(8), np.int32(14), np.int32(2), np.False_)]
8976 [('SN', np.float64(4.671815660741087), np.int32(8), np.int32(14), np.int32(1), np.True_), ('SN', np.float64(4.7048535676000895), np.int32(8), np.int32(14), np.int32(2), np.True_)]
8987 [('SN', np.float64(5.874344177198862), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(8.169306773321834), np.int32(5), np.int32(14), np.int32(2), np.False_)]
9052 [('RL', np.float64(30.097427646394006), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(35.89182216947803), np.int32(9), np.int32(13), np.int32(1), np.False_), ('CE', np.float64(37.34900904654608), np.int32(13), np.int32(4), np.False_, np.True_, np.True_, np.False_), ('RL', np.float64(39.1293310345261), np.int32(13), np.int32(8), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(39.1324261530021), np.int32(8), np.int32(13), np.int32(2), np.False_)]
9086 [('RL', np.float64(19.586242997369002), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(22.67902817969999), np.int32(8), np.int32(13), np.int32(1), np.False_), ('CE', np.float64(26.05155957609008), np.int32(13), np.int32(4), np.False_, np.True_, np.True_, np.False_), ('RL', np.float64(27.523525623615093), np.int32(13), np.int32(8), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(27.526049639036092), np.int32(8), np.int32(13), np.int32(2), np.True_)]
9123 [('RL', np.float64(4.423012082511002), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.020201537907991), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(8.19688062708199), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(8.964093556098993), np.int32(8), np.int32(14), np.int32(2), np.False_)]
9151 [('RL', np.float64(4.053942476798995), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.6157567735209915), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.103145478605036), np.int32(8), np.int32(14), np.int32(2), np.False_)]
9167 [('SN', np.float64(4.134087041216043), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.537064811650945), np.int32(5), np.int32(14), np.int32(2), np.False_)]
9169 [('SN', np.float64(4.50370971302709), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.589721629105089), np.int32(8), np.int32(14), np.int32(2), np.False_)]
9176 [('SN', np.float64(3.989825868770089), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.28141507792509), np.int32(8), np.int32(14), np.int32(2), np.False_)]
9193 [('CE', np.float64(7.41250780419531), np.int32(5), np.int32(1), np.True_, np.False_, np.True_, np.False_), ('SN', np.float64(7.41412044922131), np.int32(8), np.int32(14), np.int32(1), np.False_), ('CE', np.float64(12.349473468641282), np.int32(14), np.int32(4), np.False_, np.True_, np.True_, np.False_), ('RL', np.float64(13.786870600414279), np.int32(14), np.int32(8), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(13.790836256196279), np.int32(8), np.int32(13), np.int32(2), np.False_)]
9248 [('RL', np.float64(6.1923163630910025), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.936442327077003), np.int32(8), np.int32(13), np.int32(1), np.True_), ('SN', np.float64(7.931255419396078), np.int32(5), np.int32(14), np.int32(2), np.True_)]
9261 [('RL', np.float64(3.674223047613), np.int32(1), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('RL', np.float64(3.7236373262829994), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.211931834411999), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.189640709404834), np.int32(8), np.int32(14), np.int32(2), np.False_)]
9317 [('RL', np.float64(4.0294509152710045), np.int32(1), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('RL', np.float64(4.081887503334004), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.635007811659008), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.967231480606056), np.int32(8), np.int32(14), np.int32(2), np.False_)]
9325 [('RL', np.float64(7.824716785061), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(8.792121516882997), np.int32(8), np.int32(13), np.int32(1), np.True_), ('SN', np.float64(21.942481764788624), np.int32(5), np.int32(13), np.int32(2), np.True_)]
9335 [('RL', np.float64(4.199646568018001), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.777263643597995), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.6359928908260475), np.int32(8), np.int32(14), np.int32(2), np.False_)]
9340 [('SN', np.float64(7.51310046885909), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.872452742551054), np.int32(5), np.int32(14), np.int32(2), np.False_)]
9358 [('SN', np.float64(4.149420281301091), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.2655786595730945), np.int32(8), np.int32(14), np.int32(2), np.False_)]
9368 [('RL', np.float64(3.5192403596029957), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.011719717727002), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.342188296305046), np.int32(8), np.int32(14), np.int32(2), np.False_)]
9391 [('SN', np.float64(4.8184242403640445), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.076229429221965), np.int32(5), np.int32(14), np.int32(2), np.False_)]
9393 [('RL', np.float64(4.896713812576002), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.527851949801005), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.2695755843870495), np.int32(8), np.int32(14), np.int32(2), np.False_)]
9405 [('RL', np.float64(4.985520923840001), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.621222368281005), np.int32(8), np.int32(14), np.int32(1), np.True_), ('SN', np.float64(7.020591150861034), np.int32(8), np.int32(14), np.int32(2), np.True_)]
9410 [('SN', np.float64(5.476047666484932), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.564282642600739), np.int32(5), np.int32(14), np.int32(2), np.False_)]
9423 [('SN', np.float64(4.499033217089029), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.361725344748248), np.int32(8), np.int32(14), np.int32(2), np.False_)]
9424 [('RL', np.float64(4.780401932483001), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.401118597350007), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.354357217950989), np.int32(5), np.int32(14), np.int32(2), np.False_)]
9428 [('RL', np.float64(5.738042747667), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.429936124325), np.int32(8), np.int32(14), np.int32(1), np.False_), ('MG', np.float64(7.127987560065003), np.int32(14), np.int32(2), np.False_, np.True_, np.True_, np.True_)]
9455 [('SN', np.float64(4.279749039682084), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.686461650782085), np.int32(8), np.int32(14), np.int32(2), np.False_)]
9473 [('SN', np.float64(4.603678167310098), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.858488683644097), np.int32(8), np.int32(14), np.int32(2), np.False_)]
9487 [('RL', np.float64(6.4877575887639995), np.int32(4), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(7.268775059924001), np.int32(8), np.int32(13), np.int32(1), np.True_), ('SN', np.float64(8.819156710777902), np.int32(5), np.int32(14), np.int32(2), np.True_)]
9506 [('RL', np.float64(5.412610274340002), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(6.080022201043007), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(8.293672219785005), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(8.934722329619001), np.int32(8), np.int32(14), np.int32(2), np.False_)]
9512 [('SN', np.float64(4.08828660920809), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.15281042058609), np.int32(8), np.int32(14), np.int32(2), np.False_)]
9526 [('RL', np.float64(3.5567611861949975), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.055668716085995), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.322203358856048), np.int32(8), np.int32(14), np.int32(2), np.False_)]
9528 [('SN', np.float64(5.868236097938105), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.427557452541068), np.int32(5), np.int32(14), np.int32(2), np.False_)]
9543 [('SN', np.float64(4.443681193399048), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.171737498241095), np.int32(5), np.int32(14), np.int32(2), np.False_)]
9547 [('SN', np.float64(4.146068731501076), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.266980369331074), np.int32(8), np.int32(14), np.int32(2), np.False_)]
9555 [('RL', np.float64(4.528015217703001), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.130316815433995), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(6.521786602713027), np.int32(8), np.int32(14), np.int32(2), np.False_)]
9580 [('SN', np.float64(4.38437910254908), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.557943483297081), np.int32(8), np.int32(14), np.int32(2), np.False_)]
9608 [('SN', np.float64(4.032421100458091), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.397984373812095), np.int32(8), np.int32(14), np.int32(2), np.False_)]
9647 [('RL', np.float64(7.048995736858999), np.int32(1), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('RL', np.float64(7.176650012457), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(8.064751106939), np.int32(8), np.int32(13), np.int32(1), np.True_), ('SN', np.float64(11.749746895568999), np.int32(8), np.int32(14), np.int32(2), np.True_)]
9709 [('RL', np.float64(4.005095923955002), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.563378488014), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(6.747147094334001), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(7.331074404766004), np.int32(8), np.int32(14), np.int32(2), np.False_)]
9730 [('SN', np.float64(3.959732694307092), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.356871099466083), np.int32(8), np.int32(14), np.int32(2), np.False_)]
9736 [('SN', np.float64(3.8879014432750534), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.805739580541092), np.int32(8), np.int32(14), np.int32(2), np.False_)]
9762 [('RL', np.float64(3.8109693200640016), np.int32(1), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('RL', np.float64(3.854099601754002), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(4.378070666741996), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(5.689538854847053), np.int32(8), np.int32(14), np.int32(2), np.False_)]
9768 [('SN', np.float64(4.035037576614088), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.05884374877309), np.int32(8), np.int32(14), np.int32(2), np.False_)]
9782 [('SN', np.float64(6.292219479512138), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(10.673118922652483), np.int32(5), np.int32(13), np.int32(2), np.True_)]
9803 [('SN', np.float64(4.5461390412960725), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.87650106624207), np.int32(8), np.int32(14), np.int32(2), np.False_)]
9810 [('SN', np.float64(4.3825305585670735), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(4.762084838211069), np.int32(8), np.int32(14), np.int32(2), np.True_)]
9876 [('SN', np.float64(4.7154846381340345), np.int32(8), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.383363108224897), np.int32(5), np.int32(14), np.int32(2), np.False_)]
9984 [('SN', np.float64(6.321644657084858), np.int32(5), np.int32(14), np.int32(1), np.False_), ('SN', np.float64(7.819375293335021), np.int32(5), np.int32(14), np.int32(2), np.False_)]
9991 [('RL', np.float64(5.290004256528997), np.int32(2), np.int32(1), np.True_, np.False_, np.False_, np.False_), ('SN', np.float64(5.948282600108996), np.int32(8), np.int32(14), np.int32(1), np.False_), ('RL', np.float64(7.615672741096991), np.int32(14), np.int32(2), np.False_, np.True_, np.False_, np.False_), ('SN', np.float64(8.25192937011999), np.int32(8), np.int32(14), np.int32(2), np.False_)]

get_event_history takes the h5file as input, and returns an array of the seeds processed as well as the major events for that seed. The format for events depends on the event type. Currently, we only include supernova and mass transfer events, but mass transfer events include a flag for whether the system underwent CEE.

  • For MT events, it is (‘RL|CE|MG’, time, stellar_type_primary, stellar_type_secondary, is_rlof1, is_rlof2, is_cee, is_merger)

  • For SN events, it is (‘SN’, time, stellar_type_progenitor, stellar_type_remnant, which_star_is_progenitor, is_binary_unbound)

There is also an optional argument exclude_null which defaults to False. If True, it will skip systems which undergo no events of interest (which may speed up large runs).

A useful function that builds off of get_event_history is get_event_strings, which collects the event information into a succinct string, which may be easier to read (once you get used to the syntax).

The syntax for the event strings takes the following convention:

  • For MT events:

    • P>S, P<S, P=S, or P&S

    • where P is primary type, S is secondary type, and >, < is RLOF (1->2 or 1<-2), = is a (successful) CEE, and & is a merger.

  • For SN events:

    • P*SR for star1 the SN progenitor, or

    • R*SP for star2 the SN progenitor,

    • where P is progenitor type, R is remnant type, S is state (i for intact, u for unbound)

    • Note that the companion type is not reported in this truncated syntax.

Event strings for the same seed are ordered chronologically and separated by the undesrcore character _

[9]:
event_strings = get_event_strings(all_events=events)
for ii in range(5):
    print(seeds[ii], event_strings[ii])
47 HG>MS_HE*iBH_BH<HG_BH*iHE
50 HE*iBH_NS*uGB
57 HG>MS_HE*iBH_BH<HG_BH*iHE
66 GB*iBH_BH*iGB
78 HE*iBH_BH*iHE
[ ]:

2. Slicing the data

Since the random seed is unique and constant for a given binary, the properties and events of the binary system can be recovered by looking at its seed across different output categories.

Here we introduce the basics of manipulating the data using the seeds. We provide an example on how we get the initial parameters of systems that ended up forming double compact objects.

Naively, we might try to use For Loops with Conditions to extract systems of interest to a list. However, this can potentially be computationally expensive.

Here we present a method to more efficiently ‘slice’ the data using numpy and boolean masks. These are slightly more involved but are computationally quick and use intuitive logic.

Question: What were the initial total masses of the double compact objects?

[10]:
def calculate_total_masses_naive(path_data=None):
    data  = h5.File(path_to_data)

    total_masses = []

    # Retrieve the categories
    SPs = data['BSE_System_Parameters']
    DCs = data['BSE_Double_Compact_Objects']

    # For syntax see section 1

    # Extract parameters of interest
    seeds_DC       = DCs['SEED'][()]
    seeds_SP       = SPs['SEED'][()]
    m1_zams        = SPs['Mass@ZAMS(1)'][()]
    m2_zams        = SPs['Mass@ZAMS(2)'][()]

    for dc_seed in seeds_DC:
        for seed_index in range(len(seeds_SP)):
            sp_seed = seeds_SP[seed_index]
            if sp_seed == dc_seed:
                m1 = m1_zams[seed_index]
                m2 = m2_zams[seed_index]
                m_tot = m1 + m2
                total_masses.append(m_tot)

    data.close()
    return total_masses
[11]:
# calculate function run time
start   = time.time()
m_tot_old = calculate_total_masses_naive(path_data=path_to_data)
end     = time.time()
time_diff_naive = end-start

print('%s seconds, using for loops.' %(time_diff_naive))
0.015687942504882812 seconds, using for loops.

I) Optimizing the above loop

a - Use built-in numpy routines

Numpy arrays can make use of a powerful library of optimization tools which allow the user to bypass computationally heavy for-loops.

For example, we can speed up the calculation of the element-wise sum of two arrays with:

[12]:
SPs = data['BSE_System_Parameters']

m1_zams  = SPs['Mass@ZAMS(1)'][()]
m2_zams  = SPs['Mass@ZAMS(2)'][()]

m_total_all_systems  = np.add(m1_zams, m2_zams)

b - Use boolean masks in a single file

Where previously we put the condition in an if statement nested within a for loop, now we again make use of boolean masks to filter out the undesired elements.

The boolean array must have the same length as the input array.

[13]:
# Create a boolean array from the total mass array which is True
# if the total mass of the corresponding system is less than 40.

mask_m_tot_less_than_40 = (m_total_all_systems <= 40)

Crucially, you can apply this mask to all other columns in the same file because, by construction, they all have the same length.

[14]:
# seeds of systems with total mass below 40
seeds_m_tot_below_40 = seeds_SP[mask_m_tot_less_than_40]

Note that this works because the order of the two columns (seeds and total masses) are the same.

For example, the total mass of the system at index 2 corresponds to the seed at index 2.

II) Use seeds as masks between files

Example 1

Before we continue it is useful to understand how the COMPAS-popsynth printing works.

Each simulated system will be initialized only once and so will have only one line in the BSE_System_Parameters file. However, lines in BSE_RLOF are created whenever a system goes through a mass transfer event, which might happen multiple times for a single system, or potentially not at all. Similarly, in the BSE_Supernovae file, you will find at most two lines per system, but possibly none. BSE_Double_Compact_Objects lines are printed only when the final system is intact and composed of either Neutron Stars or Black Holes, which is a rare event that happens at most once per system.

For this reason, it is generally not the case that the system on line \(n\) of one file corresponds to the system on line \(n\) of another file.

In order to match systems across files, we need to extract the seeds of desired systems from one file, and apply them as a mask in the other file.

[15]:
# Example: calculate the primary ZAMS mass of systems which become DCOs (Double Compact Objects)
seeds_SP = SPs['SEED'][()]
seeds_DC = DCs['SEED'][()]
m1_zams  = SPs['Mass@ZAMS(1)'][()]

# Calculate mask for which elements of seeds_SP are found in seeds_DC
# - see numpy.isin documentation for details
mask = np.isin(seeds_SP, seeds_DC)

print("The occurrence rate of DCOs is {}/{}".format(sum(mask), len(mask)))
The occurence rate of DCOs is 362/454
[16]:
seeds_DC = DCs['SEED'][()]
print_compas_details_dataframe(DCs, seeds_DC[:3])
[16]:
SEED (units) 47 57 66
Coalescence_Time Myr 1.951190e+07 4.110489e+08 7.946301e+20
Eccentricity@DCO - 0.000000e+00 2.220446e-16 2.994669e-01
Mass(1) Msol 9.283292e+00 9.376022e+00 1.205103e+01
Mass(2) Msol 9.136705e+00 9.536828e+00 8.856926e+00
Merges_Hubble_Time State 0.000000e+00 0.000000e+00 0.000000e+00
Record_Type - 1.000000e+00 1.000000e+00 1.000000e+00
Recycled_NS(1) Event 0.000000e+00 0.000000e+00 0.000000e+00
Recycled_NS(2) Event 0.000000e+00 0.000000e+00 0.000000e+00
SemiMajorAxis@DCO AU 5.549064e-01 1.212601e+00 1.663798e+03
Stellar_Type(1) - 1.400000e+01 1.400000e+01 1.400000e+01
Stellar_Type(2) - 1.400000e+01 1.400000e+01 1.400000e+01
Time Myr 9.100571e+00 7.744986e+00 8.268663e+00

Optimized loop

[17]:
def calculate_total_masses_optimized(path_data=None):
    data  = h5.File(path_to_data)

    total_masses = []

    # Retrieve the categories
    SPs = data['BSE_System_Parameters']
    DCs = data['BSE_Double_Compact_Objects']

    # For syntax see section 1

    # Extract parameters of interest
    seeds_DC       = DCs['SEED'][()]
    seeds_SP       = SPs['SEED'][()]
    m1_zams        = SPs['Mass@ZAMS(1)'][()]
    m2_zams        = SPs['Mass@ZAMS(2)'][()]

    m_zams_tot             = np.add(m1_zams, m2_zams)
    mask_seeds_became_DCO  = np.isin(seeds_SP, seeds_DC)
    m_zams_tot_of_DCOs     = m_zams_tot[mask_seeds_became_DCO]

    data.close()
    return m_zams_tot_of_DCOs
[18]:
# calculate function run time
start   = time.time()
m_tot_new = calculate_total_masses_optimized(path_data=path_to_data)
end     = time.time()
time_diff_optimized = end-start

# calculate number of Double Compact Objects
n_DCos = len(seeds_DC)

print('Compare')
print('%s seconds, using For Loops.'     %(time_diff_naive))
print('%s seconds, using Optimizations.' %(time_diff_optimized))
print('Using %s DCO systems'             %(n_DCos))
Compare
0.015687942504882812 seconds, using For Loops.
0.0034928321838378906 seconds, using Optimizations.
Using 362 DCO systems

Note: The time difference will depend heavily on the number of systems under investigation, as well as the number of bypassed For Loops. If you used the path to the pre-generated tutorial data set, you should see very little improvement.

[19]:
# Test that the two arrays are in fact identical
print(np.array_equal(m_tot_old, m_tot_new))
True

Note: the above loop can easily be expanded with more conditions.

If you do not want all the DCO initial total masses but only of the binary black holes, then you just need to apply another mask to the seeds_DC.

[20]:
def calculate_total_masses_bbh(path_to_data=None):
    data  = h5.File(path_to_data)

    total_masses = []

    SPs = data['BSE_System_Parameters']
    DCs = data['BSE_Double_Compact_Objects']

    seeds_DC = DCs['SEED'][()]
    stype1  = DCs['Stellar_Type(1)'][()]
    stype2  = DCs['Stellar_Type(2)'][()]

    dc_mask_bbh     = (stype1 == 14) & (stype2 == 14)
    seeds_bbh      = seeds_DC[dc_mask_bbh]

    # Get info from ZAMS
    seeds_SP  = SPs['SEED'][()]
    m1_zams   = SPs['Mass@ZAMS(1)'][()]
    m2_zams   = SPs['Mass@ZAMS(2)'][()]

    m_zams_tot = np.add(m1_zams, m2_zams)

    sp_mask_bbh    = np.isin(seeds_SP, seeds_bbh)
    m_zams_tot_bbh = m_zams_tot[sp_mask_bbh]

    data.close()
    return m_zams_tot_bbh
[21]:
# calculate function run time
start   = time.time()
m_tot_bbh = calculate_total_masses_bbh(path_to_data=path_to_data)
end     = time.time()
time_diff_bbh = end-start

# calculate number of BBH systems
n_bbh = len(m_tot_bbh)

print('%s seconds for all %s BBH systems.' %(time_diff_bbh, n_bbh))
0.0020630359649658203 seconds for all 345 BBH systems.

Note that the print_compas_details_dataframe function can also optionally take a mask as argument. The mask array must have the same length as the data arrays for the given category.

[22]:
mask_merges_hubble_time = DCs['Merges_Hubble_Time'][()] == 1 # Booleans are stored as 0 or 1, so need the final == 1 to get a boolean array
print_compas_details_dataframe(DCs, mask=mask_merges_hubble_time)
[22]:
SEED (units) 483 750 1135 1599 1993 2102 2288 3220 3616 3907 4055 4196 4669 5215 5301 5839 6516 9052 9193
Coalescence_Time Myr 2427.739980 151.543821 7.625490e+02 1340.881255 154.372689 9308.496991 763.479452 8.431807e+02 1.875938 416.314744 745.587709 774.915488 2.521770e+02 284.928977 0.007486 181.740006 1639.261712 25.425817 341.056347
Eccentricity@DCO - 0.000000 0.039545 2.220446e-16 0.267581 0.000000 0.333133 0.156826 5.551115e-16 0.943208 0.189632 0.901320 0.163765 2.220446e-16 0.111294 0.978115 0.000000 0.451772 0.585915 0.599274
Mass(1) Msol 8.886323 1.260014 9.206978e+00 9.664539 10.498680 9.503789 9.131510 1.137973e+01 9.726748 10.004278 9.449522 10.857872 1.049581e+01 9.625391 9.847217 11.860337 4.614384 1.260021 10.120364
Mass(2) Msol 2.827555 2.674648 9.884907e+00 1.472283 9.418174 1.458286 5.545968 1.126004e+01 1.232478 5.954653 1.196934 2.828736 5.649188e+00 5.758862 1.471904 9.657618 3.251259 1.475561 1.735346
Merges_Hubble_Time State 1.000000 1.000000 1.000000e+00 1.000000 1.000000 1.000000 1.000000 1.000000e+00 1.000000 1.000000 1.000000 1.000000 1.000000e+00 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000
Record_Type - 1.000000 1.000000 1.000000e+00 1.000000 1.000000 1.000000 1.000000 1.000000e+00 1.000000 1.000000 1.000000 1.000000 1.000000e+00 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000
Recycled_NS(1) Event 0.000000 1.000000 0.000000e+00 0.000000 0.000000 0.000000 0.000000 0.000000e+00 0.000000 0.000000 0.000000 0.000000 0.000000e+00 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000
Recycled_NS(2) Event 0.000000 0.000000 0.000000e+00 0.000000 0.000000 0.000000 0.000000 0.000000e+00 0.000000 0.000000 0.000000 0.000000 0.000000e+00 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
SemiMajorAxis@DCO AU 0.038611 0.008904 4.505584e-02 0.030427 0.031183 0.050761 0.037252 5.251890e-02 0.034209 0.034394 0.096260 0.032490 2.943648e-02 0.029808 0.019875 0.034356 0.034007 0.006468 0.031984
Stellar_Type(1) - 14.000000 13.000000 1.400000e+01 14.000000 14.000000 14.000000 14.000000 1.400000e+01 14.000000 14.000000 14.000000 14.000000 1.400000e+01 14.000000 14.000000 14.000000 14.000000 13.000000 14.000000
Stellar_Type(2) - 14.000000 14.000000 1.400000e+01 13.000000 14.000000 13.000000 14.000000 1.400000e+01 13.000000 14.000000 13.000000 14.000000 1.400000e+01 14.000000 13.000000 14.000000 14.000000 13.000000 13.000000
Time Myr 14.376990 38.872799 8.865686e+00 17.499906 6.419075 18.142944 9.052938 5.281245e+00 18.532634 5.714937 20.248837 9.838173 1.011044e+01 8.781758 12.200537 5.523583 9.423157 39.132426 13.790836

Example 2

The previous example uses the fact that both BSE_System_Parameters and BSE_Double_Compact_Objects only print at most one line per system. However, as mentioned above, events such as supernovae or mass transfer might happen multiple times to a given system, and as a result there would be multiple occurrences of a given seed in the relevant file.

[23]:
# Example: Want to investigate CEE events for a given system.
#
# To illustrate the point, we find the seed of the system with the most mass transfer events, one of which is a CEE.

seeds_CE = CEs['SEED'][()]
uniq_seeds, uniq_counts = np.unique(seeds_MT[np.isin(seeds_MT, seeds_CE)], return_counts=True)
best_seed = uniq_seeds[np.argmax(uniq_counts)]
print_compas_details_dataframe(MTs, best_seed)
[23]:
SEED (units) 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750
Beta - 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 2.973655e-07 0.000010
CEE>MT State 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000e+00 0.000000
Eccentricity<MT - 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 5.288952e-01 0.000000
Eccentricity>MT - 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000e+00 0.000000
MT_Event_Counter Count 1.000000 2.000000 3.000000 4.000000 5.000000 6.000000 7.000000 8.000000 9.000000 10.000000 11.000000 12.000000 13.000000 14.000000 15.000000 16.000000 17.000000 1.800000e+01 19.000000
Mass(1)<MT Msol 8.901404 1.844969 1.843588 1.819225 1.790843 1.762225 1.734096 1.706577 1.679672 1.653364 1.627633 1.602458 1.577821 1.553704 1.530090 1.506813 1.464966 1.260000e+00 1.260000
Mass(1)>MT Msol 1.861151 1.843588 1.819225 1.790843 1.762225 1.734096 1.706577 1.679672 1.653364 1.627633 1.602458 1.577821 1.553704 1.530090 1.506963 1.465436 1.386744 1.260000e+00 1.260014
Mass(2)<MT Msol 8.388764 15.350242 15.351623 15.375986 15.404369 15.432987 15.461116 15.488635 15.515539 15.541847 15.567579 15.592754 15.617391 15.641507 15.665121 15.688210 15.729477 1.472633e+01 4.191322
Mass(2)>MT Msol 15.429018 15.351623 15.375986 15.404369 15.432987 15.461116 15.488635 15.515539 15.541847 15.567579 15.592754 15.617391 15.641507 15.665121 15.688249 15.729587 15.807699 4.258924e+00 2.866378
MassTransferRateDonor Msol/Myr 1473.780504 0.410549 7.390832 8.785992 9.039808 9.066502 9.050887 9.029533 9.009440 8.991827 8.976813 8.964315 8.954223 8.946416 8.940813 16.655511 34.137175 1.797693e+308 1717.201908
MassTransferTimescale - 2.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 3.000000e+00 2.000000
Merger Event 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000e+00 0.000000
RLOF(1)<MT Event 0.000000 0.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0.000000 0.000000 0.000000e+00 0.000000
RLOF(1)>MT State 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0.000000e+00 0.000000
RLOF(2)<MT Event 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000e+00 0.000000
RLOF(2)>MT State 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000e+00 1.000000
Radius(1)<MT Rsol 46.381638 152.762058 155.682951 158.659693 161.693352 164.785015 167.935794 171.146816 174.419236 177.754225 181.152982 184.616724 188.000373 189.932713 191.695335 196.340553 204.519077 1.437401e-05 0.000014
Radius(1)>MT Rsol 0.319143 152.762058 155.682951 158.659693 161.693352 164.785015 167.935794 171.146816 174.419236 177.754225 181.152982 184.616724 186.787134 188.572205 190.154725 192.761027 190.745115 1.437401e-05 0.000014
Radius(1)|RL<step - 1.002665 1.001077 1.019338 1.022963 1.023603 1.023646 1.023575 1.023484 1.023392 1.023303 1.023217 1.023133 1.022257 1.013310 1.003452 1.008427 1.014333 1.304135e-07 0.000010
Radius(1)|RL>step - 0.002113 1.000213 1.003770 1.004398 1.004441 1.004371 1.004282 1.004192 1.004104 1.004019 1.003937 1.003858 0.996528 0.987104 0.976643 0.955973 0.882089 9.713698e-06 0.000025
Radius(2)<MT Rsol 7.109590 12.675678 12.684187 12.645381 12.599034 12.552987 12.508645 12.466167 12.425487 12.386501 12.349108 12.313213 12.278729 12.245573 12.213672 12.190597 12.151721 3.346089e+02 2.672983
Radius(2)>MT Rsol 6.474720 12.672834 12.634347 12.588328 12.542599 12.498563 12.456379 12.415981 12.377267 12.340135 12.304491 12.270248 12.237326 12.205650 12.175151 12.122975 12.028238 5.716229e-01 0.000014
Radius(2)|RL<step - 0.157915 0.032150 0.032132 0.031343 0.030430 0.029522 0.028642 0.027793 0.026975 0.026187 0.025426 0.024692 0.023983 0.023298 0.022636 0.022010 0.020909 1.015943e+00 1.029609
Radius(2)|RL>step - 0.016616 0.032104 0.031315 0.030404 0.029497 0.028619 0.027771 0.026955 0.026167 0.025407 0.024674 0.023966 0.023282 0.022621 0.021982 0.020862 0.018813 2.222681e-01 0.000017
Record_Type - 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000e+00 1.000000
SemiMajorAxis<MT Rsol 120.443769 699.774234 700.547479 714.464753 731.359600 749.181230 767.516155 786.288336 805.490645 825.129915 845.215893 865.759059 886.770217 908.260411 930.240889 952.737064 995.553058 1.184242e+03 5.350612
SemiMajorAxis>MT Rsol 691.971236 700.547479 714.464753 731.359600 749.181230 767.516155 786.288336 805.490645 825.129915 845.215893 865.759059 886.770217 908.260411 930.240889 952.723185 995.508738 1086.572340 5.285069e+00 1.845087
Stellar_Type(1)<MT - 2.000000 9.000000 9.000000 9.000000 9.000000 9.000000 9.000000 9.000000 9.000000 9.000000 9.000000 9.000000 9.000000 9.000000 9.000000 9.000000 9.000000 1.300000e+01 13.000000
Stellar_Type(1)>MT - 7.000000 9.000000 9.000000 9.000000 9.000000 9.000000 9.000000 9.000000 9.000000 9.000000 9.000000 9.000000 9.000000 9.000000 9.000000 9.000000 9.000000 1.300000e+01 13.000000
Stellar_Type(2)<MT - 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 4.000000e+00 8.000000
Stellar_Type(2)>MT - 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 7.000000e+00 8.000000
Time<MT Myr 30.512848 36.400365 36.403728 36.407025 36.410255 36.413421 36.416524 36.419564 36.422544 36.425464 36.428325 36.431130 36.433878 36.436571 36.439211 36.444333 36.453976 3.757444e+01 38.870567
Time>MT Myr 30.514337 36.403728 36.407025 36.410255 36.413421 36.416524 36.419564 36.422544 36.425464 36.428325 36.431130 36.433878 36.436571 36.439211 36.441798 36.446817 36.456267 3.757571e+01 38.871702
Zeta_Hurley(1) - -0.293793 -0.063643 -0.041524 -0.013910 0.017325 0.052014 0.090389 0.132798 0.179640 0.231361 0.288448 0.351437 0.420916 0.497529 0.581983 0.765476 1.250496 0.000000e+00 0.000000
Zeta_Hurley(2) - -0.293793 -0.293793 -0.293793 -0.293793 -0.293793 -0.293793 -0.293793 -0.293793 -0.293793 -0.293793 -0.293793 -0.293793 -0.293793 -0.293793 -0.293793 -0.293793 -0.293793 -2.937928e-01 0.000000
Zeta_Hurley_He(1) - 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000e+00 0.000000
Zeta_Hurley_He(2) - -0.293793 -0.293793 -0.293793 -0.293793 -0.293793 -0.293793 -0.293793 -0.293793 -0.293793 -0.293793 -0.293793 -0.293793 -0.293793 -0.293793 -0.293793 -0.293793 -0.293793 0.000000e+00 0.000000
Zeta_Soberman(1) - -0.333333 1.162122 1.231293 1.317277 1.414603 1.523436 1.645504 1.783324 1.940192 2.120413 2.329697 2.575776 2.869392 3.225908 3.668107 4.877547 12.526001 0.000000e+00 0.000000
Zeta_Soberman(2) - -0.333333 -0.333333 -0.333333 -0.333333 -0.333333 -0.333333 -0.333333 -0.333333 -0.333333 -0.333333 -0.333333 -0.333333 -0.333333 -0.333333 -0.333333 -0.333333 -0.333333 -3.333333e-01 0.000000
Zeta_Soberman_He(1) - 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000e+00 0.000000
Zeta_Soberman_He(2) - -0.333333 -0.333333 -0.333333 -0.333333 -0.333333 -0.333333 -0.333333 -0.333333 -0.333333 -0.333333 -0.333333 -0.333333 -0.333333 -0.333333 -0.333333 -0.333333 -0.333333 0.000000e+00 0.000000

There is too much information here to be useful in this case, so we additionally apply a mask to filter out events we’re not interested in

[24]:
mask_cee = MTs['CEE>MT'][()] == 1 # true for mass transfer events which undergo Common Envelope Evolution
print_compas_details_dataframe(MTs, best_seed, mask=mask_cee)
[24]:
SEED (units) 750
Beta - 2.973655e-07
CEE>MT State 1.000000e+00
Eccentricity<MT - 5.288952e-01
Eccentricity>MT - 0.000000e+00
MT_Event_Counter Count 1.800000e+01
Mass(1)<MT Msol 1.260000e+00
Mass(1)>MT Msol 1.260000e+00
Mass(2)<MT Msol 1.472633e+01
Mass(2)>MT Msol 4.258924e+00
MassTransferRateDonor Msol/Myr 1.797693e+308
MassTransferTimescale - 3.000000e+00
Merger Event 0.000000e+00
RLOF(1)<MT Event 0.000000e+00
RLOF(1)>MT State 0.000000e+00
RLOF(2)<MT Event 0.000000e+00
RLOF(2)>MT State 1.000000e+00
Radius(1)<MT Rsol 1.437401e-05
Radius(1)>MT Rsol 1.437401e-05
Radius(1)|RL<step - 1.304135e-07
Radius(1)|RL>step - 9.713698e-06
Radius(2)<MT Rsol 3.346089e+02
Radius(2)>MT Rsol 5.716229e-01
Radius(2)|RL<step - 1.015943e+00
Radius(2)|RL>step - 2.222681e-01
Record_Type - 1.000000e+00
SemiMajorAxis<MT Rsol 1.184242e+03
SemiMajorAxis>MT Rsol 5.285069e+00
Stellar_Type(1)<MT - 1.300000e+01
Stellar_Type(1)>MT - 1.300000e+01
Stellar_Type(2)<MT - 4.000000e+00
Stellar_Type(2)>MT - 7.000000e+00
Time<MT Myr 3.757444e+01
Time>MT Myr 3.757571e+01
Zeta_Hurley(1) - 0.000000e+00
Zeta_Hurley(2) - -2.937928e-01
Zeta_Hurley_He(1) - 0.000000e+00
Zeta_Hurley_He(2) - 0.000000e+00
Zeta_Soberman(1) - 0.000000e+00
Zeta_Soberman(2) - -3.333333e-01
Zeta_Soberman_He(1) - 0.000000e+00
Zeta_Soberman_He(2) - 0.000000e+00

Example 3

Combining masks on the seeds and other data can provide a lot of flexibility to help explore your science case. Imagine you want the primary masses of systems that experienced two core collapse supernovae (CCSNe) and resulted in a double compact object that will merge in a Hubble time. We’ll reuse our mock data, with additional information about the types of SN which occurred in each star.

[25]:
# Example: get the primary ZAMS masses of systems which experience 2 CCSNe before becoming a DCO

seeds_SP = SPs['SEED'][()]
seeds_SN = SNe['SEED'][()]
seeds_DC = DCs['SEED'][()]

sn_type  = SNe['SN_Type(SN)'][()]
m1_zams  = SPs['Mass@ZAMS(1)'][()]
merges_hubble_time = DCs['Merges_Hubble_Time'][()] == 1

# Note: the SN_Type(SN) parameter maps integers to SN types - see documentation for details
sn_type_dict = {
    1: 'CCSN',
    2: 'ECSN',
    4: 'PISN',
    8: 'PPISN',
    16: 'USSN',
} # this dictionary is illustrative, but not explicitly used here


# Determine which seeds experienced 2 CCSNe
mask_ccsn = sn_type == 1
seeds_ccsn, counts_ccsn = np.unique(seeds_SN[mask_ccsn], return_counts=True)
seeds_double_ccsn = seeds_ccsn[counts_ccsn == 2]                              # Seeds with 2 CCSNe will have a counts_ccsn value of 2
mask_SP_double_ccsn = np.isin(seeds_SP, seeds_double_ccsn)

# Determine which systems end up as merging DCOs
mask_merges_hubble_time = DCs['Merges_Hubble_Time'][()] == 1
mask_SP_hubble_time_mergers = np.isin(seeds_SP, seeds_DC[mask_merges_hubble_time])

# Combine the 2 masks to get only the correct subset of systems
combined_mask = mask_SP_double_ccsn & mask_SP_hubble_time_mergers
m1_zams_masked = m1_zams[combined_mask]

print(f"Primary ZAMS masses for the {np.sum(combined_mask)} system(s) which experience 2 CCSNe before becoming a merging DCO:\n {m1_zams_masked}")
Primary ZAMS masses for the 11 system(s) which experience 2 CCSNe before becoming a merging DCO:
 [ 36.61179366  64.30993342  33.46802479  44.93436946  50.60505145
  74.54126066  64.0097593   41.89914417  46.89959648 116.48994565
  22.58024203]
[26]:
# Always remember to close your data file
data.close()

3. Visualizing the data

Although math is the fundamental basis of physics and astrophysics, we cannot always easily convert numbers and equations into a coherent picture. Plotting is therefore a vital tool in bridging the gap between raw data and a deeper scientific understanding.

Disclaimer:

There are many ways to make the same plot in matplotlib and there are many ways to bin your data. Often, there is no “best” way to display data in a plot, and the message conveyed can be heavily dependent on the context of the data as well as aesthetic plotting decisions.

For example, in histograms, as we discuss below, the relatively subjective choice of bin size can significantly affect the interpretation of the results. It is important to be aware of when and how we make these choices and to try to reduce any unintended bias.

Example: inspect the chirp mass and component masses of Double Compact Objects

In the example below, we use the following conventions:

1 - We deliberately choose to use the matplotlib.pyplot.subplots routine even when creating a single figure (as opposed to using pyplot.plot). This is because many online forums (e.g Stackoverflow) use this syntax. Furthermore, this means you do not have to learn two different types of syntax when creating either a single or multiple panel figure.

2 - We choose to do the binning within the numpy/array environment instead of with inbuilt functions such as plt.hist / axes.hist. The reason is that you have more control over what you do, such as custom normalization (using rates, weights, pdf, etc.). It also forces you to have a deeper understanding of what you are calculating, and allows you to check intermediate steps with print statements. Once you know how to bin your data this way you can also easily expand these routines for more complicated plots (2D binning).

Note: for this exercise, we recommend running your own simulation of at least 100,000 binaries in order to have a sufficient number of DCOs to have an interesting plot. We use the default tutorial data here for illustrative purposes, and because such a file is too large to store on github.

Get some data to plot

[27]:
path_to_data = 'COMPAS_Tutorial_Output.h5'

data  = h5.File(path_to_data)
print(list(data.keys()))

DCs = data['BSE_Double_Compact_Objects']

m1 = DCs['Mass(1)'][()]
m2 = DCs['Mass(2)'][()]
def calculate_chirp_mass(m1, m2):
    m_chirp = (m1 * m2)**(3/5) / (m1 + m2)**(1/5)
    return m_chirp
m_chirp = calculate_chirp_mass(m1, m2)

data.close()
['BSE_Common_Envelopes', 'BSE_Double_Compact_Objects', 'BSE_RLOF', 'BSE_Supernovae', 'BSE_System_Parameters', 'Run_Details']

Plot histogram and CDF of data on left, and component mass scatter plot on the right

[28]:
fig, axes = plt.subplots(ncols=2, figsize=(12,5), constrained_layout=True)
fs_title = 30
fs_label= 20
fs_tick = 15
plt.rcParams.update({
    "text.usetex": True,
    "font.family": "serif",
    "font.sans-serif": "Times New Roman",
})

# Histogram
ax = axes[0]
bins = np.linspace(0, max(m_chirp), 21) # use 20 bins, up to the maximum chirp mass
ax.hist(m_chirp, bins=bins, color='black', alpha=0.3)
ax.set_ylabel('Histogram counts', fontsize=fs_label)
ax.set_xlabel(r'$\mathcal{M} \; [M_\odot$]', fontsize=fs_label)
ax.set_title('Chirp mass distribution', fontsize=fs_title)
ax.tick_params(axis='both', which='major', labelsize=fs_tick)

# CDF
ax = ax.twinx()
cdf_x_values = np.sort(m_chirp)
cdf_y_values = np.cumsum(cdf_x_values)
cdf_y_values /= cdf_x_values[-1]
np.insert(cdf_x_values, 0, 0) # insert a 0 at the front of the array
cdf_y_values = np.linspace(0, ax.get_ylim()[1], len(cdf_x_values))
ax.plot(cdf_x_values, cdf_y_values, 'r')
ax.set_ylabel('CDF values', rotation=270, labelpad=25, fontsize=fs_label, color='red')
ax.set_ylim(0, 1)
ax.tick_params(axis='y', which='major', labelsize=fs_tick, labelcolor='red')
ax.grid(False)

# Scatter plot
ax = axes[1]
ax.scatter(m1, m2, color='black')
ax.set_title('Component Masses', fontsize=fs_title)
ax.set_xlabel(r'$M_1 \; [M_\odot$]', fontsize=fs_label)
ax.set_ylabel(r'$M_2 \; [M_\odot$]', fontsize=fs_label)
ax.tick_params(axis='both', which='major', labelsize=fs_tick)
../../../../_images/pages_User_guide_Post-processing_notebooks_DataAnalysis_65_0.png
[ ]:

[ ]: