diff --git a/.DS_Store b/.DS_Store index 43325880..1627516c 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/.gitignore b/.gitignore index 779b76f9..b7b8fb89 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ /workspaces/* !/workspaces/public_datasets +!workspaces/ATLAS_Workspace !workspaces/CMS_project_v1/CMS_project_v1/config/CMS_project_v1_config.py !workspaces/CFD_workspace/CFD_project_animation/config/CFD_project_animation_config.py diff --git a/README.md b/README.md index ed9fcfa9..bd66662e 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,56 @@ Baler is a tool used to test the feasibility of compressing different types of s 3. Decompress the file using the model at a later time 4. Plot the performance of the compression/decompression +# Recent Major Contributions + +## Physics-Informed Autoencoder Models for High-Energy Physics Data (Carter Capetz) + +### Overview +Significant enhancements have been made to Baler to support physics-informed machine learning for high-energy physics data compression, particularly focused on ATLAS experiment diphoton data analysis. + +### Key Contributions + +#### 1. Enhanced Autoencoder Architecture +- **Physics-Informed Loss Functions**: Implemented specialized loss functions that preserve physical quantities during compression/decompression +- **Diphoton Invariant Mass Preservation**: Added `mse_loss_myy_l1` function that maintains the invariant mass of diphoton systems +- **Enhanced Model Architectures**: Extended the models module with physics-aware autoencoder variants + +#### 2. ATLAS Workspace Integration +- **Complete ATLAS Data Pipeline**: Full integration with ATLAS Open Data Portal for GamGam (diphoton) analysis +- **Data Preprocessing**: Comprehensive notebooks for processing ATLAS 2015-2016 data with physics-based cuts +- **Physics Validation**: Tools for validating compressed data against physical constraints +- **Multi-Period Analysis**: Support for analyzing data across multiple ATLAS data-taking periods + +#### 3. Advanced Data Processing +- **ROOT File Integration**: Seamless integration with CERN ROOT files via uproot +- **Physics-Based Filtering**: Implementation of ATLAS photon selection criteria: + - Photon reconstruction quality cuts + - Transverse momentum requirements (leading > 50 GeV, sub-leading > 30 GeV) + - Calorimeter isolation cuts (< 5.5%) + - Pseudorapidity transition region exclusions + - Invariant mass-based isolation requirements + +#### 4. Enhanced Core Modules +- **Models Module**: Extended with physics-aware autoencoder architectures +- **Utils Module**: Added physics calculation functions and specialized loss functions +- **Helper Module**: Enhanced with improved data handling and validation +- **Training Module**: Optimized for physics data with custom loss functions + +#### 5. Scientific Validation +- **Invariant Mass Preservation**: Ensures compressed data maintains physical meaning +- **Performance Metrics**: Comprehensive evaluation of compression quality vs. physics preservation +- **Visualization Tools**: Enhanced plotting capabilities for physics analysis results + +### Use Cases +- **ATLAS Diphoton Analysis**: Full pipeline from raw ROOT data to compressed representations +- **Physics Data Compression**: General framework for compressing scientific data while preserving physical constraints +- **High-Energy Physics**: Specialized tools for particle physics data analysis + +### Technical Details +- **Data Format**: Support for .npz compressed data with physics metadata +- **Model Architecture**: Flexible autoencoder designs with physics-informed loss functions +- **Validation**: Comprehensive testing of compressed data against physical constraints +- **Scalability**: Designed to handle large-scale physics datasets # Getting Started # **NOTE:** For the same performance and version as presented in our [Arxiv](https://arxiv.org/abs/2305.02283) paper, please use release [v1.0.0](https://github.com/baler-collaboration/baler/tree/v1.0.0) and the setup instructions given there. v1.0.0 also has a working docker implementation. We are currently experiencing some performance issues on the main branch compared. @@ -18,8 +68,6 @@ In the links below we offer instructions on how to set up Baler and working tuto * [Python](docs/setup/python_setup.md) * [Docker/Singularity/Apptainer](docs/setup/docker_setup.md) - - # Contributing If you wish to contribute, please see the [contribution guidelines](https://github.com/baler-collaboration/baler/blob/main/docs/CONTRIBUTING.md). diff --git a/baler/modules/data_processing.py b/baler/modules/data_processing.py index d14d9958..0713c723 100644 --- a/baler/modules/data_processing.py +++ b/baler/modules/data_processing.py @@ -131,25 +131,21 @@ def find_minmax(data): def normalize(data, custom_norm: bool): - """This function scales the data to be in the range [0,1], based on the Min Max normalization method. It finds - the minimum and maximum values of each column and computes the values according to: x_norm = (x - x_min) / (x_max - - x_min). - - Args: data (ndarray): A dataset of type `ndarray`. custom_norm (boolean): If you want to do Min Max normalization - or any custom normalization. Custom normalization is not supported at the moment. - - Returns: ndarray: If not custom_norm: Input data where every column is scaled to be in the range [0, - 1]. Otherwise, the input data is returned + """This function scales the data to be in the range [0,1], based on the Min Max normalization method. """ - data = np.array(data) + # Convert to float32 first to avoid uint8 division issues + data = np.array(data, dtype=np.float32) + if custom_norm: pass elif not custom_norm: true_min = np.min(data) true_max = np.max(data) feature_range = true_max - true_min - data = [((i - true_min) / feature_range) for i in data] - data = np.array(data) + # Avoid division by zero + if feature_range == 0: + return data - true_min + data = (data - true_min) / feature_range return data diff --git a/baler/modules/helper.py b/baler/modules/helper.py index dcacdc21..ddf1823f 100644 --- a/baler/modules/helper.py +++ b/baler/modules/helper.py @@ -433,6 +433,9 @@ def get_device(): if torch.cuda.is_available(): dev = "cuda:0" device = torch.device(dev) + # elif torch.backends.mps.is_available(): + # dev = "mps" + # device = torch.device(dev) else: dev = "cpu" device = torch.device(dev) @@ -584,6 +587,9 @@ def compress(model_path, config): for idx, data_batch in enumerate(tqdm(data_dl)): data_batch = data_batch.to(device) + #float32 + data_batch = data_batch.to(torch.float32) + compressed_output = model.encode(data_batch) if config.save_error_bounded_deltas: diff --git a/baler/modules/mnist_plotting.py b/baler/modules/mnist_plotting.py new file mode 100644 index 00000000..cab6ba16 --- /dev/null +++ b/baler/modules/mnist_plotting.py @@ -0,0 +1,47 @@ +# import matplotlib.pyplot as plt +# import numpy as np +# from tqdm import trange + +# def plot_mnist_results(project_path, config): +# """Plots MNIST results in a grid showing original, reconstructed, and difference.""" +# print("=== Plotting MNIST Results ===") + +# # Load data +# data = np.load(config.input_path)["data"] +# data_decompressed = np.load(project_path + "/decompressed_output/decompressed.npz")["data"] + +# # Determine number of samples to plot +# n_samples = min(getattr(config, 'max_plot_samples', 100), len(data)) +# n_rows = min(10, n_samples) +# n_cols = 3 # Original, Reconstructed, Difference + +# # Create figure +# fig, axes = plt.subplots(n_rows, n_cols, figsize=(15, 1.5*n_rows)) +# fig.suptitle('MNIST Autoencoder Results', fontsize=16) + +# # Plot images +# for i in range(n_rows): +# # Original +# axes[i,0].imshow(data[i].reshape(28,28), cmap='gray') +# axes[i,0].axis('off') +# if i == 0: +# axes[i,0].set_title('Original') + +# # Reconstructed +# axes[i,1].imshow(data_decompressed[i].reshape(28,28), cmap='gray') +# axes[i,1].axis('off') +# if i == 0: +# axes[i,1].set_title('Reconstructed') + +# # Difference +# diff = data[i] - data_decompressed[i] +# axes[i,2].imshow(diff.reshape(28,28), cmap='RdBu', center=0) +# axes[i,2].axis('off') +# if i == 0: +# axes[i,2].set_title('Difference') + +# plt.tight_layout() +# plt.savefig(project_path + "/plotting/mnist_results.png", bbox_inches='tight', dpi=150) +# plt.close() + +# print(f"Results saved to {project_path}/plotting/mnist_results.png") \ No newline at end of file diff --git a/baler/modules/models.py b/baler/modules/models.py index 62075b92..f547bd2c 100644 --- a/baler/modules/models.py +++ b/baler/modules/models.py @@ -125,15 +125,28 @@ def __init__(self, n_features, z_dim, *args, **kwargs): self.activations = {} # encoder - self.en1 = nn.Linear(n_features, 200, dtype=torch.float64) - self.en2 = nn.Linear(200, 100, dtype=torch.float64) - self.en3 = nn.Linear(100, 50, dtype=torch.float64) - self.en4 = nn.Linear(50, z_dim, dtype=torch.float64) + self.en1 = nn.Linear(n_features, 200, dtype=torch.float32) + self.en2 = nn.Linear(200, 100, dtype=torch.float32) + self.en3 = nn.Linear(100, 50, dtype=torch.float32) + self.en4 = nn.Linear(50, z_dim, dtype=torch.float32) + + # Initialize weights properly + nn.init.xavier_uniform_(self.en1.weight) + nn.init.xavier_uniform_(self.en2.weight) + nn.init.xavier_uniform_(self.en3.weight) + nn.init.xavier_uniform_(self.en4.weight) + # decoder - self.de1 = nn.Linear(z_dim, 50, dtype=torch.float64) - self.de2 = nn.Linear(50, 100, dtype=torch.float64) - self.de3 = nn.Linear(100, 200, dtype=torch.float64) - self.de4 = nn.Linear(200, n_features, dtype=torch.float64) + self.de1 = nn.Linear(z_dim, 50, dtype=torch.float32) + self.de2 = nn.Linear(50, 100, dtype=torch.float32) + self.de3 = nn.Linear(100, 200, dtype=torch.float32) + self.de4 = nn.Linear(200, n_features, dtype=torch.float32) + + # Initialize weights properly + nn.init.xavier_uniform_(self.de1.weight) + nn.init.xavier_uniform_(self.de2.weight) + nn.init.xavier_uniform_(self.de3.weight) + nn.init.xavier_uniform_(self.de4.weight) self.n_features = n_features self.z_dim = z_dim @@ -412,18 +425,18 @@ def __init__(self, n_features, z_dim, *args, **kwargs): super(FPGA_prototype_model, self).__init__(*args, **kwargs) # encoder - self.en1 = nn.Linear(n_features, 20, dtype=torch.float64) + self.en1 = nn.Linear(n_features, 20, dtype=torch.float32) self.en_act1 = nn.ReLU() - self.en2 = nn.Linear(20, 10, dtype=torch.float64) + self.en2 = nn.Linear(20, 10, dtype=torch.float32) self.en_act2 = nn.ReLU() - self.en3 = nn.Linear(10, z_dim, dtype=torch.float64) + self.en3 = nn.Linear(10, z_dim, dtype=torch.float32) # decoder - self.de1 = nn.Linear(z_dim, 10, dtype=torch.float64) + self.de1 = nn.Linear(z_dim, 10, dtype=torch.float32) self.de_act1 = nn.ReLU() - self.de2 = nn.Linear(10, 20, dtype=torch.float64) + self.de2 = nn.Linear(10, 20, dtype=torch.float32) self.de_act2 = nn.ReLU() - self.de3 = nn.Linear(20, n_features, dtype=torch.float64) + self.de3 = nn.Linear(20, n_features, dtype=torch.float32) self.n_features = n_features self.z_dim = z_dim diff --git a/baler/modules/plotting.py b/baler/modules/plotting.py index aa59656f..3b3f310c 100644 --- a/baler/modules/plotting.py +++ b/baler/modules/plotting.py @@ -19,6 +19,7 @@ from matplotlib.backends.backend_pdf import PdfPages from tqdm import tqdm from tqdm import trange +from . import mnist_plotting def loss_plot(path_to_loss_data, output_path, config): @@ -409,8 +410,14 @@ def plot_2D(project_path, config): # tile_data_decompressed = data_decompressed[ind][0] # elif config.model_type == "dense": # tile_data_decompressed = data_decompressed[ind][0] - tile_data = data[ind] - tile_data_decompressed = data_decompressed[ind] + for ind in trange(num_tiles): + # For MNIST data, we need to handle the extra dimension + if config.model_type == "convolutional": + tile_data = data[ind].squeeze() # Remove the extra dimension + tile_data_decompressed = data_decompressed[ind].squeeze() # Remove the extra dimension + else: + tile_data = data[ind] + tile_data_decompressed = data_decompressed[ind] diff = tile_data - tile_data_decompressed @@ -438,12 +445,7 @@ def plot_2D(project_path, config): def plot(output_path, config): - """Runs the appropriate plotting function based on the data dimension 1D or 2D - - Args: - output_path (path): The path to the project directory - config (dataclass): The config class containing attributes set in the config file - """ + """Runs the appropriate plotting function based on the data dimension 1D or 2D""" if config.data_dimension == 1: plot_1D(output_path, config) elif config.data_dimension == 2: diff --git a/baler/modules/training.py b/baler/modules/training.py index ca189def..66ae7757 100644 --- a/baler/modules/training.py +++ b/baler/modules/training.py @@ -12,6 +12,20 @@ # See the License for the specific language governing permissions and # limitations under the License. +""" +Training loop for Baler autoencoder models. + +This module is responsible for: +- Training the autoencoder on scientific data +- Computing reconstruction loss +- Performing optimization steps + +Note: +This file handles training only. +Compression and evaluation are handled in separate modules. +""" + + import os import random import time @@ -64,12 +78,23 @@ def fit( for idx, inputs in enumerate(tqdm(train_dl)): inputs = inputs.to(device) + # Sanity check: input batch should not be empty + assert inputs.numel() > 0,"Empty batch encountered during trainng" + # Set the gradients to zero optimizer.zero_grad() + # ============================ + # Forward Pass + # ============================ + # Compute the predicted outputs from the input data reconstructions = model(inputs) + # ============================ + # Loss Computation + # ============================ + if ( hasattr(config, "custom_loss_function") and config.custom_loss_function == "loss_function_swae" @@ -85,10 +110,16 @@ def fit( true_data=inputs, reconstructed_data=reconstructions, reg_param=regular_param, - validate=True, + #originally true, trying false + validate=False, ) - # Compute the loss-gradient with + # ============================ + # Backpropagation + # ============================ + + # Sanity check: loss should be finite + assert not torch.isnan(loss), "Loss became NaN during training" loss.backward() # Update the optimizer @@ -121,14 +152,24 @@ def validate(model, test_dl, model_children, reg_param): with torch.no_grad(): for idx, inputs in enumerate(tqdm(test_dl)): inputs = inputs.to(device) + + # ============================ + # Forward Pass (Validation) + # ============================ + reconstructions = model(inputs) + # ============================ + # Loss Computation (Validation) + # ============================ + loss, _, _ = utils.mse_sum_loss_l1( model_children=model_children, true_data=inputs, reconstructed_data=reconstructions, reg_param=reg_param, - validate=True, + #originally true, trying false + validate=False, ) running_loss += loss.item() @@ -227,8 +268,8 @@ def train(model, variables, train_data, test_data, project_path, config): train_data.shape[0], 1, train_data.shape[1], train_data.shape[2] ) elif config.data_dimension == 1: - train_ds = torch.tensor(train_data, dtype=torch.float64, device=device) - valid_ds = torch.tensor(test_data, dtype=torch.float64, device=device) + train_ds = torch.tensor(train_data, dtype=torch.float32, device=device) + valid_ds = torch.tensor(test_data, dtype=torch.float32, device=device) # Pushing input data into the torch-DataLoader object and combines into one DataLoader object (a basic wrapper # around several DataLoader objects). @@ -265,6 +306,10 @@ def train(model, variables, train_data, test_data, project_path, config): # Select Optimizer optimizer = torch.optim.Adam(model.parameters(), lr=learning_rate) + # ============================ + # Optimizer and Training Utilities + # ============================ + # Activate early stopping if config.early_stopping: early_stopping = utils.EarlyStopping( @@ -286,6 +331,10 @@ def train(model, variables, train_data, test_data, project_path, config): if config.activation_extraction: hooks = model.store_hooks() + # ============================ + # Training and Validation Loop + # ============================ + for epoch in range(epochs): print(f"Epoch {epoch + 1} of {epochs}") @@ -322,7 +371,10 @@ def train(model, variables, train_data, test_data, project_path, config): if early_stopping.early_stop: break - ## Implementation to save models & values after every N epochs, where N is stored in 'intermittent_saving_patience': + # ============================ + # Intermittent Model Saving + # ============================ + if intermittent_model_saving: if epoch % intermittent_saving_patience == 0: path = os.path.join(project_path, f"model_{epoch}.pt") diff --git a/baler/modules/utils.py b/baler/modules/utils.py index 23b63687..02c54d9e 100644 --- a/baler/modules/utils.py +++ b/baler/modules/utils.py @@ -172,6 +172,57 @@ def mse_loss_l1(model_children, true_data, reconstructed_data, reg_param, valida else: return mse_loss, 0, 0 +def calc_myy_torch(photon_pt,photon_eta,photon_phi,photon_E): + # first photon is [0], 2nd photon is [1] etc + px_0 = photon_pt[0]*torch.cos(photon_phi[0]) # x-component of photon[0] momentum + py_0 = photon_pt[0]*torch.sin(photon_phi[0]) # y-component of photon[0] momentum + pz_0 = photon_pt[0]*torch.sinh(photon_eta[0]) # z-component of photon[0] momentum + px_1 = photon_pt[1]*torch.cos(photon_phi[1]) # x-component of photon[1] momentum + py_1 = photon_pt[1]*torch.sin(photon_phi[1]) # y-component of photon[1] momentum + pz_1 = photon_pt[1]*torch.sinh(photon_eta[1]) # z-component of photon[1] momentum + sumpx = px_0 + px_1 # x-component of diphoton momentum + sumpy = py_0 + py_1 # y-component of diphoton momentum + sumpz = pz_0 + pz_1 # z-component of diphoton momentum + sump = torch.sqrt(sumpx**2 + sumpy**2 + sumpz**2) # magnitude of diphoton momentum + sumE = photon_E[0] + photon_E[1] # energy of diphoton system + return torch.sqrt(sumE**2 - sump**2)/1000 #/1000 to go from MeV to GeV + +def mse_loss_myy_l1(model_children, true_data, reconstructed_data, reg_param, myy_loss_weight, validate): + + """ + modification of mse_loss_l1 to include diphoton invariant mass + """ + mse = nn.MSELoss() + mse_loss = mse(reconstructed_data, true_data) + # Assuming data format: [pt1, eta1, phi1, E1, pt2, eta2, phi2, E2] + true_pt = true_data[:, [0, 4]] # [batch_size, 2] + true_eta = true_data[:, [1, 5]] # [batch_size, 2] + true_phi = true_data[:, [2, 6]] # [batch_size, 2] + true_E = true_data[:, [3, 7]] # [batch_size, 2] + + recon_pt = reconstructed_data[:, [0, 4]] # [batch_size, 2] + recon_eta = reconstructed_data[:, [1, 5]] # [batch_size, 2] + recon_phi = reconstructed_data[:, [2, 6]] # [batch_size, 2] + recon_E = reconstructed_data[:, [3, 7]] # [batch_size, 2] + + # Calculate myy for true and reconstructed data + true_myy = calc_myy_torch(true_pt, true_eta, true_phi, true_E) + recon_myy = calc_myy_torch(recon_pt, recon_eta, recon_phi, recon_E) + + # Myy-based loss (MSE between invariant masses) + myy_loss = mse(recon_myy, true_myy) + + l1_loss = torch.Tensor(0) + values = true_data + if not validate: + for i in range(len(model_children)): + values = functional.relu(model_children[i](values)) + l1_loss += torch.mean(torch.abs(values)) + + loss = myy_loss_weight*myy_loss + mse_loss + reg_param * l1_loss + return loss, myy_loss, l1_loss + else: + return myy_loss def mse_sum_loss_l1(model_children, true_data, reconstructed_data, reg_param, validate): """ diff --git a/notebooks-collection-opendata b/notebooks-collection-opendata deleted file mode 160000 index 65998477..00000000 --- a/notebooks-collection-opendata +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 65998477161005630d0fd388515e19bb0ac2fc82 diff --git a/poetry.lock b/poetry.lock index 7b949e57..d650f7e1 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.1.1 and should not be changed by hand. [[package]] name = "absl-py" @@ -6,17 +6,50 @@ version = "1.4.0" description = "Abseil Python Common Libraries, see https://github.com/abseil/abseil-py." optional = true python-versions = ">=3.6" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "absl-py-1.4.0.tar.gz", hash = "sha256:d2c244d01048ba476e7c080bd2c6df5e141d211de80223460d5b3b8a2a58433d"}, {file = "absl_py-1.4.0-py3-none-any.whl", hash = "sha256:0d3fe606adfa4f7db64792dd4c7aee4ee0c38ab75dfd353b7a83ed3e957fcb47"}, ] +[[package]] +name = "appnope" +version = "0.1.4" +description = "Disable App Nap on macOS >= 10.9" +optional = false +python-versions = ">=3.6" +groups = ["dev"] +markers = "platform_system == \"Darwin\" or sys_platform == \"darwin\" and python_version <= \"3.9\"" +files = [ + {file = "appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c"}, + {file = "appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee"}, +] + +[[package]] +name = "asttokens" +version = "3.0.0" +description = "Annotate AST trees with source code positions" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +files = [ + {file = "asttokens-3.0.0-py3-none-any.whl", hash = "sha256:e3078351a059199dd5138cb1c706e6430c05eff2ff136af5eb4790f9d28932e2"}, + {file = "asttokens-3.0.0.tar.gz", hash = "sha256:0dcd8baa8d62b0c1d118b399b2ddba3c4aff271d0d7a9e0d4c1681c79035bbc7"}, +] + +[package.extras] +astroid = ["astroid (>=2,<4)"] +test = ["astroid (>=2,<4)", "pytest", "pytest-cov", "pytest-xdist"] + [[package]] name = "astunparse" version = "1.6.3" description = "An AST unparser for Python" optional = true python-versions = "*" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "astunparse-1.6.3-py2.py3-none-any.whl", hash = "sha256:c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8"}, {file = "astunparse-1.6.3.tar.gz", hash = "sha256:5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872"}, @@ -26,12 +59,26 @@ files = [ six = ">=1.6.1,<2.0" wheel = ">=0.23.0,<1.0" +[[package]] +name = "backcall" +version = "0.2.0" +description = "Specifications for callback functions passed in to an API" +optional = false +python-versions = "*" +groups = ["dev"] +markers = "python_version <= \"3.9\"" +files = [ + {file = "backcall-0.2.0-py2.py3-none-any.whl", hash = "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255"}, + {file = "backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"}, +] + [[package]] name = "black" version = "23.12.1" description = "The uncompromising code formatter." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "black-23.12.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e0aaf6041986767a5e0ce663c7a2f0e9eaf21e6ff87a5f95cbf3675bfd4c41d2"}, {file = "black-23.12.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c88b3711d12905b74206227109272673edce0cb29f27e1385f33b0163c414bba"}, @@ -68,7 +115,7 @@ typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} [package.extras] colorama = ["colorama (>=0.4.3)"] -d = ["aiohttp (>=3.7.4)", "aiohttp (>=3.7.4,!=3.9.0)"] +d = ["aiohttp (>=3.7.4) ; sys_platform != \"win32\" or implementation_name != \"pypy\"", "aiohttp (>=3.7.4,!=3.9.0) ; sys_platform == \"win32\" and implementation_name == \"pypy\""] jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] uvloop = ["uvloop (>=0.15.2)"] @@ -78,6 +125,8 @@ version = "5.3.3" description = "Extensible memoizing collections and decorators" optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "cachetools-5.3.3-py3-none-any.whl", hash = "sha256:0abad1021d3f8325b2fc1d2e9c8b9c9d57b04c3932657a72465447332c24d945"}, {file = "cachetools-5.3.3.tar.gz", hash = "sha256:ba29e2dfa0b8b556606f097407ed1aa62080ee108ab0dc5ec9d6a723a007d105"}, @@ -89,6 +138,8 @@ version = "1.3.1" description = "Various parsers for ECMA standards." optional = true python-versions = "*" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "calmjs.parse-1.3.1-py2-none-any.whl", hash = "sha256:9d3cec13fcc914f635c4940d2bfe007800093435b4ad4ef7d4e91d81dda66c80"}, {file = "calmjs.parse-1.3.1-py3-none-any.whl", hash = "sha256:34e087b2a7a3117264df416d7d6793000bc59773e182ffef7da2dd7820f88028"}, @@ -105,17 +156,102 @@ version = "2024.2.2" description = "Python package for providing Mozilla's CA Bundle." optional = true python-versions = ">=3.6" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"}, {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"}, ] +[[package]] +name = "cffi" +version = "1.17.1" +description = "Foreign Function Interface for Python calling C code." +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "implementation_name == \"pypy\"" +files = [ + {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, + {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"}, + {file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"}, + {file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"}, + {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"}, + {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"}, + {file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"}, + {file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"}, + {file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"}, + {file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"}, + {file = "cffi-1.17.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1"}, + {file = "cffi-1.17.1-cp38-cp38-win32.whl", hash = "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8"}, + {file = "cffi-1.17.1-cp38-cp38-win_amd64.whl", hash = "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"}, + {file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"}, + {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, + {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, +] + +[package.dependencies] +pycparser = "*" + [[package]] name = "charset-normalizer" version = "3.3.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = true python-versions = ">=3.7.0" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, @@ -215,6 +351,7 @@ version = "8.1.7" description = "Composable command line interface toolkit" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, @@ -229,10 +366,30 @@ version = "0.4.6" description = "Cross-platform colored terminal text." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +groups = ["main", "dev"] files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] +markers = {main = "platform_system == \"Windows\"", dev = "sys_platform == \"win32\" or platform_system == \"Windows\""} + +[[package]] +name = "comm" +version = "0.2.2" +description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." +optional = false +python-versions = ">=3.8" +groups = ["dev"] +files = [ + {file = "comm-0.2.2-py3-none-any.whl", hash = "sha256:e6fb86cb70ff661ee8c9c14e7d36d6de3b4066f1441be4063df9c5009f0a64d3"}, + {file = "comm-0.2.2.tar.gz", hash = "sha256:3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e"}, +] + +[package.dependencies] +traitlets = ">=4" + +[package.extras] +test = ["pytest"] [[package]] name = "contourpy" @@ -240,6 +397,7 @@ version = "1.1.1" description = "Python library for calculating contours of 2D quadrilateral grids" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "contourpy-1.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:46e24f5412c948d81736509377e255f6040e94216bf1a9b5ea1eaa9d29f6ec1b"}, {file = "contourpy-1.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e48694d6a9c5a26ee85b10130c77a011a4fedf50a7279fa0bdaf44bafb4299d"}, @@ -311,6 +469,7 @@ version = "0.12.1" description = "Composable style cycles" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30"}, {file = "cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c"}, @@ -320,12 +479,62 @@ files = [ docs = ["ipython", "matplotlib", "numpydoc", "sphinx"] tests = ["pytest", "pytest-cov", "pytest-xdist"] +[[package]] +name = "debugpy" +version = "1.8.14" +description = "An implementation of the Debug Adapter Protocol for Python" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +files = [ + {file = "debugpy-1.8.14-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:93fee753097e85623cab1c0e6a68c76308cd9f13ffdf44127e6fab4fbf024339"}, + {file = "debugpy-1.8.14-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d937d93ae4fa51cdc94d3e865f535f185d5f9748efb41d0d49e33bf3365bd79"}, + {file = "debugpy-1.8.14-cp310-cp310-win32.whl", hash = "sha256:c442f20577b38cc7a9aafecffe1094f78f07fb8423c3dddb384e6b8f49fd2987"}, + {file = "debugpy-1.8.14-cp310-cp310-win_amd64.whl", hash = "sha256:f117dedda6d969c5c9483e23f573b38f4e39412845c7bc487b6f2648df30fe84"}, + {file = "debugpy-1.8.14-cp311-cp311-macosx_14_0_universal2.whl", hash = "sha256:1b2ac8c13b2645e0b1eaf30e816404990fbdb168e193322be8f545e8c01644a9"}, + {file = "debugpy-1.8.14-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf431c343a99384ac7eab2f763980724834f933a271e90496944195318c619e2"}, + {file = "debugpy-1.8.14-cp311-cp311-win32.whl", hash = "sha256:c99295c76161ad8d507b413cd33422d7c542889fbb73035889420ac1fad354f2"}, + {file = "debugpy-1.8.14-cp311-cp311-win_amd64.whl", hash = "sha256:7816acea4a46d7e4e50ad8d09d963a680ecc814ae31cdef3622eb05ccacf7b01"}, + {file = "debugpy-1.8.14-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:8899c17920d089cfa23e6005ad9f22582fd86f144b23acb9feeda59e84405b84"}, + {file = "debugpy-1.8.14-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6bb5c0dcf80ad5dbc7b7d6eac484e2af34bdacdf81df09b6a3e62792b722826"}, + {file = "debugpy-1.8.14-cp312-cp312-win32.whl", hash = "sha256:281d44d248a0e1791ad0eafdbbd2912ff0de9eec48022a5bfbc332957487ed3f"}, + {file = "debugpy-1.8.14-cp312-cp312-win_amd64.whl", hash = "sha256:5aa56ef8538893e4502a7d79047fe39b1dae08d9ae257074c6464a7b290b806f"}, + {file = "debugpy-1.8.14-cp313-cp313-macosx_14_0_universal2.whl", hash = "sha256:329a15d0660ee09fec6786acdb6e0443d595f64f5d096fc3e3ccf09a4259033f"}, + {file = "debugpy-1.8.14-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f920c7f9af409d90f5fd26e313e119d908b0dd2952c2393cd3247a462331f15"}, + {file = "debugpy-1.8.14-cp313-cp313-win32.whl", hash = "sha256:3784ec6e8600c66cbdd4ca2726c72d8ca781e94bce2f396cc606d458146f8f4e"}, + {file = "debugpy-1.8.14-cp313-cp313-win_amd64.whl", hash = "sha256:684eaf43c95a3ec39a96f1f5195a7ff3d4144e4a18d69bb66beeb1a6de605d6e"}, + {file = "debugpy-1.8.14-cp38-cp38-macosx_14_0_x86_64.whl", hash = "sha256:d5582bcbe42917bc6bbe5c12db1bffdf21f6bfc28d4554b738bf08d50dc0c8c3"}, + {file = "debugpy-1.8.14-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5349b7c3735b766a281873fbe32ca9cca343d4cc11ba4a743f84cb854339ff35"}, + {file = "debugpy-1.8.14-cp38-cp38-win32.whl", hash = "sha256:7118d462fe9724c887d355eef395fae68bc764fd862cdca94e70dcb9ade8a23d"}, + {file = "debugpy-1.8.14-cp38-cp38-win_amd64.whl", hash = "sha256:d235e4fa78af2de4e5609073972700523e372cf5601742449970110d565ca28c"}, + {file = "debugpy-1.8.14-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:413512d35ff52c2fb0fd2d65e69f373ffd24f0ecb1fac514c04a668599c5ce7f"}, + {file = "debugpy-1.8.14-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c9156f7524a0d70b7a7e22b2e311d8ba76a15496fb00730e46dcdeedb9e1eea"}, + {file = "debugpy-1.8.14-cp39-cp39-win32.whl", hash = "sha256:b44985f97cc3dd9d52c42eb59ee9d7ee0c4e7ecd62bca704891f997de4cef23d"}, + {file = "debugpy-1.8.14-cp39-cp39-win_amd64.whl", hash = "sha256:b1528cfee6c1b1c698eb10b6b096c598738a8238822d218173d21c3086de8123"}, + {file = "debugpy-1.8.14-py2.py3-none-any.whl", hash = "sha256:5cd9a579d553b6cb9759a7908a41988ee6280b961f24f63336835d9418216a20"}, + {file = "debugpy-1.8.14.tar.gz", hash = "sha256:7cd287184318416850aa8b60ac90105837bb1e59531898c07569d197d2ed5322"}, +] + +[[package]] +name = "decorator" +version = "5.2.1" +description = "Decorators for Humans" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +files = [ + {file = "decorator-5.2.1-py3-none-any.whl", hash = "sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a"}, + {file = "decorator-5.2.1.tar.gz", hash = "sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360"}, +] + [[package]] name = "dm-tree" version = "0.1.8" description = "Tree is a library for working with nested data structures." optional = true python-versions = "*" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "dm-tree-0.1.8.tar.gz", hash = "sha256:0fcaabbb14e7980377439e7140bd05552739ca5e515ecb3119f234acee4b9430"}, {file = "dm_tree-0.1.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:35cc164a79336bfcfafb47e5f297898359123bbd3330c1967f0c4994f9cf9f60"}, @@ -381,6 +590,8 @@ version = "1.2.0" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" +groups = ["dev"] +markers = "python_version <= \"3.10\"" files = [ {file = "exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14"}, {file = "exceptiongroup-1.2.0.tar.gz", hash = "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68"}, @@ -389,12 +600,28 @@ files = [ [package.extras] test = ["pytest (>=6)"] +[[package]] +name = "executing" +version = "2.2.0" +description = "Get the currently executing AST node of a frame, and other information" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +files = [ + {file = "executing-2.2.0-py2.py3-none-any.whl", hash = "sha256:11387150cad388d62750327a53d3339fad4888b39a6fe233c3afbb54ecffd3aa"}, + {file = "executing-2.2.0.tar.gz", hash = "sha256:5d108c028108fe2551d1a7b2e8b713341e2cb4fc0aa7dcf966fa4327a5226755"}, +] + +[package.extras] +tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich ; python_version >= \"3.11\""] + [[package]] name = "filelock" version = "3.13.1" description = "A platform independent file lock." optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "filelock-3.13.1-py3-none-any.whl", hash = "sha256:57dbda9b35157b05fb3e58ee91448612eb674172fab98ee235ccb0b5bee19a1c"}, {file = "filelock-3.13.1.tar.gz", hash = "sha256:521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e"}, @@ -403,7 +630,7 @@ files = [ [package.extras] docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.24)"] testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)"] -typing = ["typing-extensions (>=4.8)"] +typing = ["typing-extensions (>=4.8) ; python_version < \"3.11\""] [[package]] name = "flatbuffers" @@ -411,6 +638,8 @@ version = "23.5.26" description = "The FlatBuffers serialization format for Python" optional = true python-versions = "*" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "flatbuffers-23.5.26-py2.py3-none-any.whl", hash = "sha256:c0ff356da363087b915fde4b8b45bdda73432fc17cddb3c8157472eab1422ad1"}, {file = "flatbuffers-23.5.26.tar.gz", hash = "sha256:9ea1144cac05ce5d86e2859f431c6cd5e66cd9c78c558317c7955fb8d4c78d89"}, @@ -422,6 +651,7 @@ version = "4.49.0" description = "Tools to manipulate font files" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "fonttools-4.49.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d970ecca0aac90d399e458f0b7a8a597e08f95de021f17785fb68e2dc0b99717"}, {file = "fonttools-4.49.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ac9a745b7609f489faa65e1dc842168c18530874a5f5b742ac3dd79e26bca8bc"}, @@ -468,18 +698,18 @@ files = [ ] [package.extras] -all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "pycairo", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0)", "xattr", "zopfli (>=0.1.4)"] +all = ["brotli (>=1.0.1) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\"", "fs (>=2.2.0,<3)", "lxml (>=4.0)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres ; platform_python_implementation == \"PyPy\"", "pycairo", "scipy ; platform_python_implementation != \"PyPy\"", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=15.1.0) ; python_version <= \"3.12\"", "xattr ; sys_platform == \"darwin\"", "zopfli (>=0.1.4)"] graphite = ["lz4 (>=1.7.4.2)"] -interpolatable = ["munkres", "pycairo", "scipy"] +interpolatable = ["munkres ; platform_python_implementation == \"PyPy\"", "pycairo", "scipy ; platform_python_implementation != \"PyPy\""] lxml = ["lxml (>=4.0)"] pathops = ["skia-pathops (>=0.5.0)"] plot = ["matplotlib"] repacker = ["uharfbuzz (>=0.23.0)"] symfont = ["sympy"] -type1 = ["xattr"] +type1 = ["xattr ; sys_platform == \"darwin\""] ufo = ["fs (>=2.2.0,<3)"] -unicode = ["unicodedata2 (>=15.1.0)"] -woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] +unicode = ["unicodedata2 (>=15.1.0) ; python_version <= \"3.12\""] +woff = ["brotli (>=1.0.1) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\"", "zopfli (>=0.1.4)"] [[package]] name = "fsspec" @@ -487,6 +717,7 @@ version = "2024.2.0" description = "File-system specification" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "fsspec-2024.2.0-py3-none-any.whl", hash = "sha256:817f969556fa5916bc682e02ca2045f96ff7f586d45110fcb76022063ad2c7d8"}, {file = "fsspec-2024.2.0.tar.gz", hash = "sha256:b6ad1a679f760dda52b1168c859d01b7b80648ea6f7f7c7f5a8a91dc3f3ecb84"}, @@ -522,6 +753,8 @@ version = "0.4.0" description = "Python AST that abstracts the underlying Python version" optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "gast-0.4.0-py3-none-any.whl", hash = "sha256:b7adcdd5adbebf1adf17378da5ba3f543684dbec47b1cda1f3997e573cd542c4"}, {file = "gast-0.4.0.tar.gz", hash = "sha256:40feb7b8b8434785585ab224d1568b857edb18297e5a3047f1ba012bc83b42c1"}, @@ -533,6 +766,8 @@ version = "2.28.1" description = "Google Authentication Library" optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "google-auth-2.28.1.tar.gz", hash = "sha256:34fc3046c257cedcf1622fc4b31fc2be7923d9b4d44973d481125ecc50d83885"}, {file = "google_auth-2.28.1-py2.py3-none-any.whl", hash = "sha256:25141e2d7a14bfcba945f5e9827f98092716e99482562f15306e5b026e21aa72"}, @@ -556,6 +791,8 @@ version = "1.0.0" description = "Google Authentication Library" optional = true python-versions = ">=3.6" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "google-auth-oauthlib-1.0.0.tar.gz", hash = "sha256:e375064964820b47221a7e1b7ee1fd77051b6323c3f9e3e19785f78ab67ecfc5"}, {file = "google_auth_oauthlib-1.0.0-py2.py3-none-any.whl", hash = "sha256:95880ca704928c300f48194d1770cf5b1462835b6e49db61445a520f793fd5fb"}, @@ -574,6 +811,8 @@ version = "0.2.0" description = "pasta is an AST-based Python refactoring library" optional = true python-versions = "*" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "google-pasta-0.2.0.tar.gz", hash = "sha256:c9f2c8dfc8f96d0d5808299920721be30c9eec37f2389f28904f454565c8a16e"}, {file = "google_pasta-0.2.0-py2-none-any.whl", hash = "sha256:4612951da876b1a10fe3960d7226f0c7682cf901e16ac06e473b267a5afa8954"}, @@ -589,6 +828,8 @@ version = "1.62.0" description = "HTTP/2-based RPC framework" optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "grpcio-1.62.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:136ffd79791b1eddda8d827b607a6285474ff8a1a5735c4947b58c481e5e4271"}, {file = "grpcio-1.62.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:d6a56ba703be6b6267bf19423d888600c3f574ac7c2cc5e6220af90662a4d6b0"}, @@ -655,6 +896,8 @@ version = "3.10.0" description = "Read and write HDF5 files from Python" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "h5py-3.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b963fb772964fc1d1563c57e4e2e874022ce11f75ddc6df1a626f42bd49ab99f"}, {file = "h5py-3.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:012ab448590e3c4f5a8dd0f3533255bc57f80629bf7c5054cf4c87b30085063c"}, @@ -692,6 +935,8 @@ version = "0.7.1" description = "Machine learning in FPGAs using HLS" optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "hls4ml-0.7.1-py3-none-any.whl", hash = "sha256:086c578c192908c12e1e579632faeb97635aeb0a31cd844ca8e7978cd0069df7"}, {file = "hls4ml-0.7.1.tar.gz", hash = "sha256:a2ef3754243987f0295c3c123207405e96834541373aed4e4a4369f002199097"}, @@ -717,6 +962,8 @@ version = "3.6" description = "Internationalized Domain Names in Applications (IDNA)" optional = true python-versions = ">=3.5" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"}, {file = "idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca"}, @@ -726,12 +973,14 @@ files = [ name = "importlib-metadata" version = "7.0.1" description = "Read metadata from Python packages" -optional = true +optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "importlib_metadata-7.0.1-py3-none-any.whl", hash = "sha256:4805911c3a4ec7c3966410053e9ec6a1fecd629117df5adee56dfc9432a1081e"}, {file = "importlib_metadata-7.0.1.tar.gz", hash = "sha256:f238736bb06590ae52ac1fab06a3a9ef1d8dce2b7a35b5ab329371d6c8f5d2cc"}, ] +markers = {main = "extra == \"hls4ml\" and python_version <= \"3.9\"", dev = "python_version <= \"3.9\""} [package.dependencies] zipp = ">=0.5" @@ -739,7 +988,7 @@ zipp = ">=0.5" [package.extras] docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] perf = ["ipython"] -testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)", "pytest-ruff"] +testing = ["flufl.flake8", "importlib-resources (>=1.3) ; python_version < \"3.9\"", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7) ; platform_python_implementation != \"PyPy\"", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1) ; platform_python_implementation != \"PyPy\"", "pytest-perf (>=0.9.2)", "pytest-ruff"] [[package]] name = "importlib-resources" @@ -747,6 +996,8 @@ version = "6.1.2" description = "Read resources from Python packages" optional = false python-versions = ">=3.8" +groups = ["main"] +markers = "python_version <= \"3.9\"" files = [ {file = "importlib_resources-6.1.2-py3-none-any.whl", hash = "sha256:9a0a862501dc38b68adebc82970140c9e4209fc99601782925178f8386339938"}, {file = "importlib_resources-6.1.2.tar.gz", hash = "sha256:308abf8474e2dba5f867d279237cd4076482c3de7104a40b41426370e891549b"}, @@ -757,7 +1008,7 @@ zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} [package.extras] docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)", "zipp (>=3.17)"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy ; platform_python_implementation != \"PyPy\"", "pytest-ruff (>=0.2.1)", "zipp (>=3.17)"] [[package]] name = "iniconfig" @@ -765,17 +1016,185 @@ version = "2.0.0" description = "brain-dead simple config-ini parsing" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, ] +[[package]] +name = "ipykernel" +version = "6.29.5" +description = "IPython Kernel for Jupyter" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +files = [ + {file = "ipykernel-6.29.5-py3-none-any.whl", hash = "sha256:afdb66ba5aa354b09b91379bac28ae4afebbb30e8b39510c9690afb7a10421b5"}, + {file = "ipykernel-6.29.5.tar.gz", hash = "sha256:f093a22c4a40f8828f8e330a9c297cb93dcab13bd9678ded6de8e5cf81c56215"}, +] + +[package.dependencies] +appnope = {version = "*", markers = "platform_system == \"Darwin\""} +comm = ">=0.1.1" +debugpy = ">=1.6.5" +ipython = ">=7.23.1" +jupyter-client = ">=6.1.12" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +matplotlib-inline = ">=0.1" +nest-asyncio = "*" +packaging = "*" +psutil = "*" +pyzmq = ">=24" +tornado = ">=6.1" +traitlets = ">=5.4.0" + +[package.extras] +cov = ["coverage[toml]", "curio", "matplotlib", "pytest-cov", "trio"] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "trio"] +pyqt5 = ["pyqt5"] +pyside6 = ["pyside6"] +test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.23.5)", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "ipython" +version = "8.12.3" +description = "IPython: Productive Interactive Computing" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.9\"" +files = [ + {file = "ipython-8.12.3-py3-none-any.whl", hash = "sha256:b0340d46a933d27c657b211a329d0be23793c36595acf9e6ef4164bc01a1804c"}, + {file = "ipython-8.12.3.tar.gz", hash = "sha256:3910c4b54543c2ad73d06579aa771041b7d5707b033bd488669b4cf544e3b363"}, +] + +[package.dependencies] +appnope = {version = "*", markers = "sys_platform == \"darwin\""} +backcall = "*" +colorama = {version = "*", markers = "sys_platform == \"win32\""} +decorator = "*" +jedi = ">=0.16" +matplotlib-inline = "*" +pexpect = {version = ">4.3", markers = "sys_platform != \"win32\""} +pickleshare = "*" +prompt-toolkit = ">=3.0.30,<3.0.37 || >3.0.37,<3.1.0" +pygments = ">=2.4.0" +stack-data = "*" +traitlets = ">=5" +typing-extensions = {version = "*", markers = "python_version < \"3.10\""} + +[package.extras] +all = ["black", "curio", "docrepr", "ipykernel", "ipyparallel", "ipywidgets", "matplotlib", "matplotlib (!=3.2.0)", "nbconvert", "nbformat", "notebook", "numpy (>=1.21)", "pandas", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio", "qtconsole", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "trio", "typing-extensions"] +black = ["black"] +doc = ["docrepr", "ipykernel", "matplotlib", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "typing-extensions"] +kernel = ["ipykernel"] +nbconvert = ["nbconvert"] +nbformat = ["nbformat"] +notebook = ["ipywidgets", "notebook"] +parallel = ["ipyparallel"] +qtconsole = ["qtconsole"] +test = ["pytest (<7.1)", "pytest-asyncio", "testpath"] +test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.21)", "pandas", "pytest (<7.1)", "pytest-asyncio", "testpath", "trio"] + +[[package]] +name = "ipython" +version = "8.37.0" +description = "IPython: Productive Interactive Computing" +optional = false +python-versions = ">=3.10" +groups = ["dev"] +markers = "python_version > \"3.9\" and python_version <= \"3.10\"" +files = [ + {file = "ipython-8.37.0-py3-none-any.whl", hash = "sha256:ed87326596b878932dbcb171e3e698845434d8c61b8d8cd474bf663041a9dcf2"}, + {file = "ipython-8.37.0.tar.gz", hash = "sha256:ca815841e1a41a1e6b73a0b08f3038af9b2252564d01fc405356d34033012216"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +decorator = "*" +exceptiongroup = {version = "*", markers = "python_version < \"3.11\""} +jedi = ">=0.16" +matplotlib-inline = "*" +pexpect = {version = ">4.3", markers = "sys_platform != \"win32\" and sys_platform != \"emscripten\""} +prompt_toolkit = ">=3.0.41,<3.1.0" +pygments = ">=2.4.0" +stack_data = "*" +traitlets = ">=5.13.0" +typing_extensions = {version = ">=4.6", markers = "python_version < \"3.12\""} + +[package.extras] +all = ["ipython[black,doc,kernel,matplotlib,nbconvert,nbformat,notebook,parallel,qtconsole]", "ipython[test,test-extra]"] +black = ["black"] +doc = ["docrepr", "exceptiongroup", "intersphinx_registry", "ipykernel", "ipython[test]", "matplotlib", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "sphinxcontrib-jquery", "tomli ; python_version < \"3.11\"", "typing_extensions"] +kernel = ["ipykernel"] +matplotlib = ["matplotlib"] +nbconvert = ["nbconvert"] +nbformat = ["nbformat"] +notebook = ["ipywidgets", "notebook"] +parallel = ["ipyparallel"] +qtconsole = ["qtconsole"] +test = ["packaging", "pickleshare", "pytest", "pytest-asyncio (<0.22)", "testpath"] +test-extra = ["curio", "ipython[test]", "jupyter_ai", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.23)", "pandas", "trio"] + +[[package]] +name = "ipython" +version = "9.3.0" +description = "IPython: Productive Interactive Computing" +optional = false +python-versions = ">=3.11" +groups = ["dev"] +markers = "python_version > \"3.10\"" +files = [ + {file = "ipython-9.3.0-py3-none-any.whl", hash = "sha256:1a0b6dd9221a1f5dddf725b57ac0cb6fddc7b5f470576231ae9162b9b3455a04"}, + {file = "ipython-9.3.0.tar.gz", hash = "sha256:79eb896f9f23f50ad16c3bc205f686f6e030ad246cc309c6279a242b14afe9d8"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +decorator = "*" +ipython-pygments-lexers = "*" +jedi = ">=0.16" +matplotlib-inline = "*" +pexpect = {version = ">4.3", markers = "sys_platform != \"win32\" and sys_platform != \"emscripten\""} +prompt_toolkit = ">=3.0.41,<3.1.0" +pygments = ">=2.4.0" +stack_data = "*" +traitlets = ">=5.13.0" +typing_extensions = {version = ">=4.6", markers = "python_version < \"3.12\""} + +[package.extras] +all = ["ipython[doc,matplotlib,test,test-extra]"] +black = ["black"] +doc = ["docrepr", "exceptiongroup", "intersphinx_registry", "ipykernel", "ipython[test]", "matplotlib", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "sphinx_toml (==0.0.4)", "typing_extensions"] +matplotlib = ["matplotlib"] +test = ["packaging", "pytest", "pytest-asyncio (<0.22)", "testpath"] +test-extra = ["curio", "ipykernel", "ipython[test]", "jupyter_ai", "matplotlib (!=3.2.0)", "nbclient", "nbformat", "numpy (>=1.23)", "pandas", "trio"] + +[[package]] +name = "ipython-pygments-lexers" +version = "1.1.1" +description = "Defines a variety of Pygments lexers for highlighting IPython code." +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version > \"3.10\"" +files = [ + {file = "ipython_pygments_lexers-1.1.1-py3-none-any.whl", hash = "sha256:a9462224a505ade19a605f71f8fa63c2048833ce50abc86768a0d81d876dc81c"}, + {file = "ipython_pygments_lexers-1.1.1.tar.gz", hash = "sha256:09c0138009e56b6854f9535736f4171d855c8c08a563a0dcd8022f78355c7e81"}, +] + +[package.dependencies] +pygments = "*" + [[package]] name = "jax" version = "0.4.13" description = "Differentiate, compile, and transform Numpy code." optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "jax-0.4.13.tar.gz", hash = "sha256:03bfe6749dfe647f16f15f6616638adae6c4a7ca7167c75c21961ecfd3a3baaa"}, ] @@ -800,12 +1219,33 @@ cuda12-pip = ["jaxlib (==0.4.13+cuda12.cudnn89)", "nvidia-cublas-cu12", "nvidia- minimum-jaxlib = ["jaxlib (==0.4.11)"] tpu = ["jaxlib (==0.4.13)", "libtpu-nightly (==0.1.dev20230622)"] +[[package]] +name = "jedi" +version = "0.19.2" +description = "An autocompletion tool for Python that can be used for text editors." +optional = false +python-versions = ">=3.6" +groups = ["dev"] +files = [ + {file = "jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9"}, + {file = "jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0"}, +] + +[package.dependencies] +parso = ">=0.8.4,<0.9.0" + +[package.extras] +docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx (==1.8.5)", "sphinx-rtd-theme (==0.4.3)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"] +qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] +testing = ["Django", "attrs", "colorama", "docopt", "pytest (<9.0.0)"] + [[package]] name = "jinja2" version = "3.1.3" description = "A very fast and expressive template engine." optional = false python-versions = ">=3.7" +groups = ["main"] files = [ {file = "Jinja2-3.1.3-py3-none-any.whl", hash = "sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa"}, {file = "Jinja2-3.1.3.tar.gz", hash = "sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90"}, @@ -823,17 +1263,65 @@ version = "1.3.2" description = "Lightweight pipelining with Python functions" optional = false python-versions = ">=3.7" +groups = ["main"] files = [ {file = "joblib-1.3.2-py3-none-any.whl", hash = "sha256:ef4331c65f239985f3f2220ecc87db222f08fd22097a3dd5698f693875f8cbb9"}, {file = "joblib-1.3.2.tar.gz", hash = "sha256:92f865e621e17784e7955080b6d042489e3b8e294949cc44c6eac304f59772b1"}, ] +[[package]] +name = "jupyter-client" +version = "8.6.3" +description = "Jupyter protocol implementation and client libraries" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +files = [ + {file = "jupyter_client-8.6.3-py3-none-any.whl", hash = "sha256:e8a19cc986cc45905ac3362915f410f3af85424b4c0905e94fa5f2cb08e8f23f"}, + {file = "jupyter_client-8.6.3.tar.gz", hash = "sha256:35b3a0947c4a6e9d589eb97d7d4cd5e90f910ee73101611f01283732bd6d9419"}, +] + +[package.dependencies] +importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +python-dateutil = ">=2.8.2" +pyzmq = ">=23.0" +tornado = ">=6.2" +traitlets = ">=5.3" + +[package.extras] +docs = ["ipykernel", "myst-parser", "pydata-sphinx-theme", "sphinx (>=4)", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko ; sys_platform == \"win32\"", "pre-commit", "pytest (<8.2.0)", "pytest-cov", "pytest-jupyter[client] (>=0.4.1)", "pytest-timeout"] + +[[package]] +name = "jupyter-core" +version = "5.8.1" +description = "Jupyter core package. A base package on which Jupyter projects rely." +optional = false +python-versions = ">=3.8" +groups = ["dev"] +files = [ + {file = "jupyter_core-5.8.1-py3-none-any.whl", hash = "sha256:c28d268fc90fb53f1338ded2eb410704c5449a358406e8a948b75706e24863d0"}, + {file = "jupyter_core-5.8.1.tar.gz", hash = "sha256:0a5f9706f70e64786b75acba995988915ebd4601c8a52e534a40b51c95f59941"}, +] + +[package.dependencies] +platformdirs = ">=2.5" +pywin32 = {version = ">=300", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""} +traitlets = ">=5.3" + +[package.extras] +docs = ["intersphinx-registry", "myst-parser", "pydata-sphinx-theme", "sphinx-autodoc-typehints", "sphinxcontrib-spelling", "traitlets"] +test = ["ipykernel", "pre-commit", "pytest (<9)", "pytest-cov", "pytest-timeout"] + [[package]] name = "keras" version = "2.12.0" description = "Deep learning for humans." optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "keras-2.12.0-py2.py3-none-any.whl", hash = "sha256:35c39534011e909645fb93515452e98e1a0ce23727b55d4918b9c58b2308c15e"}, ] @@ -844,6 +1332,8 @@ version = "1.4.7" description = "A Hyperparameter Tuning Library for Keras" optional = true python-versions = "*" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "keras-tuner-1.4.7.tar.gz", hash = "sha256:6befd25ee81476e6207d8ca7ed7dc674b8194437cfa0b127294cd00da905ff22"}, {file = "keras_tuner-1.4.7-py3-none-any.whl", hash = "sha256:0bcf0220eccc74e7a6a9bd7c8e58531a1af8515019e6bc2dc495833155c07fe2"}, @@ -868,6 +1358,7 @@ version = "1.4.5" description = "A fast implementation of the Cassowary constraint solver" optional = false python-versions = ">=3.7" +groups = ["main"] files = [ {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:05703cf211d585109fcd72207a31bb170a0f22144d68298dc5e61b3c946518af"}, {file = "kiwisolver-1.4.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:146d14bebb7f1dc4d5fbf74f8a6cb15ac42baadee8912eb84ac0b3b2a3dc6ac3"}, @@ -981,6 +1472,8 @@ version = "1.0.5" description = "Legacy import names for Keras Tuner" optional = true python-versions = "*" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "kt-legacy-1.0.5.tar.gz", hash = "sha256:dbbade58f12c6a6da6062f4b045a6395a8d4195815e3e064bc3e609b69c8a26c"}, {file = "kt_legacy-1.0.5-py3-none-any.whl", hash = "sha256:8d5c5b3dccf348367fe9ca5b006e7ad2d1babcce62976cfc199e831ea699dcd3"}, @@ -992,6 +1485,8 @@ version = "16.0.6" description = "Clang Python Bindings, mirrored from the official LLVM repo: https://github.com/llvm/llvm-project/tree/main/clang/bindings/python, to make the installation process easier." optional = true python-versions = "*" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "libclang-16.0.6-1-py2.py3-none-manylinux2014_aarch64.whl", hash = "sha256:88bc7e7b393c32e41e03ba77ef02fdd647da1f764c2cd028e69e0837080b79f6"}, {file = "libclang-16.0.6-1-py2.py3-none-manylinux2014_armv7l.whl", hash = "sha256:d80ed5827736ed5ec2bcedf536720476fd9d4fa4c79ef0cb24aea4c59332f361"}, @@ -1012,6 +1507,8 @@ version = "3.5.2" description = "Python implementation of John Gruber's Markdown." optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "Markdown-3.5.2-py3-none-any.whl", hash = "sha256:d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd"}, {file = "Markdown-3.5.2.tar.gz", hash = "sha256:e1ac7b3dc550ee80e602e71c1d168002f062e49f1b11e26a36264dafd4df2ef8"}, @@ -1030,6 +1527,7 @@ version = "2.1.5" description = "Safely add untrusted strings to HTML/XML markup." optional = false python-versions = ">=3.7" +groups = ["main"] files = [ {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, @@ -1099,6 +1597,7 @@ version = "3.7.5" description = "Python plotting package" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "matplotlib-3.7.5-cp310-cp310-macosx_10_12_universal2.whl", hash = "sha256:4a87b69cb1cb20943010f63feb0b2901c17a3b435f75349fd9865713bfa63925"}, {file = "matplotlib-3.7.5-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:d3ce45010fefb028359accebb852ca0c21bd77ec0f281952831d235228f15810"}, @@ -1161,12 +1660,29 @@ pillow = ">=6.2.0" pyparsing = ">=2.3.1" python-dateutil = ">=2.7" +[[package]] +name = "matplotlib-inline" +version = "0.1.7" +description = "Inline Matplotlib backend for Jupyter" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +files = [ + {file = "matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca"}, + {file = "matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90"}, +] + +[package.dependencies] +traitlets = "*" + [[package]] name = "ml-dtypes" version = "0.2.0" description = "" optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "ml_dtypes-0.2.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:df6a76e1c8adf484feb138ed323f9f40a7b6c21788f120f7c78bec20ac37ee81"}, {file = "ml_dtypes-0.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc29a0524ef5e23a7fbb8d881bdecabeb3fc1d19d9db61785d077a86cb94fab2"}, @@ -1203,6 +1719,7 @@ version = "1.3.0" description = "Python library for arbitrary-precision floating-point arithmetic" optional = false python-versions = "*" +groups = ["main"] files = [ {file = "mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c"}, {file = "mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f"}, @@ -1211,7 +1728,7 @@ files = [ [package.extras] develop = ["codecov", "pycodestyle", "pytest (>=4.6)", "pytest-cov", "wheel"] docs = ["sphinx"] -gmpy = ["gmpy2 (>=2.1.0a4)"] +gmpy = ["gmpy2 (>=2.1.0a4) ; platform_python_implementation != \"PyPy\""] tests = ["pytest (>=4.6)"] [[package]] @@ -1220,17 +1737,31 @@ version = "1.0.0" description = "Type system extensions for programs checked with the mypy type checker." optional = false python-versions = ">=3.5" +groups = ["dev"] files = [ {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, ] +[[package]] +name = "nest-asyncio" +version = "1.6.0" +description = "Patch asyncio to allow nested event loops" +optional = false +python-versions = ">=3.5" +groups = ["dev"] +files = [ + {file = "nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c"}, + {file = "nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe"}, +] + [[package]] name = "networkx" version = "3.1" description = "Python package for creating and manipulating graphs and networks" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "networkx-3.1-py3-none-any.whl", hash = "sha256:4f33f68cb2afcf86f28a45f43efc27a9386b535d567d2127f8f61d51dec58d36"}, {file = "networkx-3.1.tar.gz", hash = "sha256:de346335408f84de0eada6ff9fafafff9bcda11f0a0dfaa931133debb146ab61"}, @@ -1249,6 +1780,7 @@ version = "1.23.5" description = "NumPy is the fundamental package for array computing with Python." optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "numpy-1.23.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9c88793f78fca17da0145455f0d7826bcb9f37da4764af27ac945488116efe63"}, {file = "numpy-1.23.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e9f4c4e51567b616be64e05d517c79a8a22f3606499941d97bb76f2ca59f982d"}, @@ -1286,6 +1818,8 @@ version = "12.1.3.1" description = "CUBLAS native runtime libraries" optional = false python-versions = ">=3" +groups = ["main"] +markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\"" files = [ {file = "nvidia_cublas_cu12-12.1.3.1-py3-none-manylinux1_x86_64.whl", hash = "sha256:ee53ccca76a6fc08fb9701aa95b6ceb242cdaab118c3bb152af4e579af792728"}, {file = "nvidia_cublas_cu12-12.1.3.1-py3-none-win_amd64.whl", hash = "sha256:2b964d60e8cf11b5e1073d179d85fa340c120e99b3067558f3cf98dd69d02906"}, @@ -1297,6 +1831,8 @@ version = "12.1.105" description = "CUDA profiling tools runtime libs." optional = false python-versions = ">=3" +groups = ["main"] +markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\"" files = [ {file = "nvidia_cuda_cupti_cu12-12.1.105-py3-none-manylinux1_x86_64.whl", hash = "sha256:e54fde3983165c624cb79254ae9818a456eb6e87a7fd4d56a2352c24ee542d7e"}, {file = "nvidia_cuda_cupti_cu12-12.1.105-py3-none-win_amd64.whl", hash = "sha256:bea8236d13a0ac7190bd2919c3e8e6ce1e402104276e6f9694479e48bb0eb2a4"}, @@ -1308,6 +1844,8 @@ version = "12.1.105" description = "NVRTC native runtime libraries" optional = false python-versions = ">=3" +groups = ["main"] +markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\"" files = [ {file = "nvidia_cuda_nvrtc_cu12-12.1.105-py3-none-manylinux1_x86_64.whl", hash = "sha256:339b385f50c309763ca65456ec75e17bbefcbbf2893f462cb8b90584cd27a1c2"}, {file = "nvidia_cuda_nvrtc_cu12-12.1.105-py3-none-win_amd64.whl", hash = "sha256:0a98a522d9ff138b96c010a65e145dc1b4850e9ecb75a0172371793752fd46ed"}, @@ -1319,6 +1857,8 @@ version = "12.1.105" description = "CUDA Runtime native Libraries" optional = false python-versions = ">=3" +groups = ["main"] +markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\"" files = [ {file = "nvidia_cuda_runtime_cu12-12.1.105-py3-none-manylinux1_x86_64.whl", hash = "sha256:6e258468ddf5796e25f1dc591a31029fa317d97a0a94ed93468fc86301d61e40"}, {file = "nvidia_cuda_runtime_cu12-12.1.105-py3-none-win_amd64.whl", hash = "sha256:dfb46ef84d73fababab44cf03e3b83f80700d27ca300e537f85f636fac474344"}, @@ -1330,6 +1870,8 @@ version = "8.9.2.26" description = "cuDNN runtime libraries" optional = false python-versions = ">=3" +groups = ["main"] +markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\"" files = [ {file = "nvidia_cudnn_cu12-8.9.2.26-py3-none-manylinux1_x86_64.whl", hash = "sha256:5ccb288774fdfb07a7e7025ffec286971c06d8d7b4fb162525334616d7629ff9"}, ] @@ -1343,6 +1885,8 @@ version = "11.0.2.54" description = "CUFFT native runtime libraries" optional = false python-versions = ">=3" +groups = ["main"] +markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\"" files = [ {file = "nvidia_cufft_cu12-11.0.2.54-py3-none-manylinux1_x86_64.whl", hash = "sha256:794e3948a1aa71fd817c3775866943936774d1c14e7628c74f6f7417224cdf56"}, {file = "nvidia_cufft_cu12-11.0.2.54-py3-none-win_amd64.whl", hash = "sha256:d9ac353f78ff89951da4af698f80870b1534ed69993f10a4cf1d96f21357e253"}, @@ -1354,6 +1898,8 @@ version = "10.3.2.106" description = "CURAND native runtime libraries" optional = false python-versions = ">=3" +groups = ["main"] +markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\"" files = [ {file = "nvidia_curand_cu12-10.3.2.106-py3-none-manylinux1_x86_64.whl", hash = "sha256:9d264c5036dde4e64f1de8c50ae753237c12e0b1348738169cd0f8a536c0e1e0"}, {file = "nvidia_curand_cu12-10.3.2.106-py3-none-win_amd64.whl", hash = "sha256:75b6b0c574c0037839121317e17fd01f8a69fd2ef8e25853d826fec30bdba74a"}, @@ -1365,6 +1911,8 @@ version = "11.4.5.107" description = "CUDA solver native runtime libraries" optional = false python-versions = ">=3" +groups = ["main"] +markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\"" files = [ {file = "nvidia_cusolver_cu12-11.4.5.107-py3-none-manylinux1_x86_64.whl", hash = "sha256:8a7ec542f0412294b15072fa7dab71d31334014a69f953004ea7a118206fe0dd"}, {file = "nvidia_cusolver_cu12-11.4.5.107-py3-none-win_amd64.whl", hash = "sha256:74e0c3a24c78612192a74fcd90dd117f1cf21dea4822e66d89e8ea80e3cd2da5"}, @@ -1381,6 +1929,8 @@ version = "12.1.0.106" description = "CUSPARSE native runtime libraries" optional = false python-versions = ">=3" +groups = ["main"] +markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\"" files = [ {file = "nvidia_cusparse_cu12-12.1.0.106-py3-none-manylinux1_x86_64.whl", hash = "sha256:f3b50f42cf363f86ab21f720998517a659a48131e8d538dc02f8768237bd884c"}, {file = "nvidia_cusparse_cu12-12.1.0.106-py3-none-win_amd64.whl", hash = "sha256:b798237e81b9719373e8fae8d4f091b70a0cf09d9d85c95a557e11df2d8e9a5a"}, @@ -1395,6 +1945,8 @@ version = "2.19.3" description = "NVIDIA Collective Communication Library (NCCL) Runtime" optional = false python-versions = ">=3" +groups = ["main"] +markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\"" files = [ {file = "nvidia_nccl_cu12-2.19.3-py3-none-manylinux1_x86_64.whl", hash = "sha256:a9734707a2c96443331c1e48c717024aa6678a0e2a4cb66b2c364d18cee6b48d"}, ] @@ -1405,7 +1957,10 @@ version = "12.4.99" description = "Nvidia JIT LTO Library" optional = false python-versions = ">=3" +groups = ["main"] +markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\"" files = [ + {file = "nvidia_nvjitlink_cu12-12.4.99-py3-none-manylinux2014_aarch64.whl", hash = "sha256:75d6498c96d9adb9435f2bbdbddb479805ddfb97b5c1b32395c694185c20ca57"}, {file = "nvidia_nvjitlink_cu12-12.4.99-py3-none-manylinux2014_x86_64.whl", hash = "sha256:c6428836d20fe7e327191c175791d38570e10762edc588fb46749217cd444c74"}, {file = "nvidia_nvjitlink_cu12-12.4.99-py3-none-win_amd64.whl", hash = "sha256:991905ffa2144cb603d8ca7962d75c35334ae82bf92820b6ba78157277da1ad2"}, ] @@ -1416,6 +1971,8 @@ version = "12.1.105" description = "NVIDIA Tools Extension" optional = false python-versions = ">=3" +groups = ["main"] +markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\"" files = [ {file = "nvidia_nvtx_cu12-12.1.105-py3-none-manylinux1_x86_64.whl", hash = "sha256:dc21cf308ca5691e7c04d962e213f8a4aa9bbfa23d95412f452254c2caeb09e5"}, {file = "nvidia_nvtx_cu12-12.1.105-py3-none-win_amd64.whl", hash = "sha256:65f4d98982b31b60026e0e6de73fbdfc09d08a96f4656dd3665ca616a11e1e82"}, @@ -1427,6 +1984,8 @@ version = "3.2.2" description = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic" optional = true python-versions = ">=3.6" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "oauthlib-3.2.2-py3-none-any.whl", hash = "sha256:8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca"}, {file = "oauthlib-3.2.2.tar.gz", hash = "sha256:9859c40929662bec5d64f34d01c99e093149682a3f38915dc0655d5a633dd918"}, @@ -1443,6 +2002,8 @@ version = "1.15.0" description = "Open Neural Network Exchange" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "onnx-1.15.0-cp310-cp310-macosx_10_12_universal2.whl", hash = "sha256:51cacb6aafba308aaf462252ced562111f6991cdc7bc57a6c554c3519453a8ff"}, {file = "onnx-1.15.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:0aee26b6f7f7da7e840de75ad9195a77a147d0662c94eaa6483be13ba468ffc1"}, @@ -1484,6 +2045,8 @@ version = "3.3.0" description = "Optimizing numpys einsum function" optional = true python-versions = ">=3.5" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "opt_einsum-3.3.0-py3-none-any.whl", hash = "sha256:2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147"}, {file = "opt_einsum-3.3.0.tar.gz", hash = "sha256:59f6475f77bbc37dcf7cd748519c0ec60722e91e63ca114e68821c0c54a46549"}, @@ -1502,6 +2065,7 @@ version = "23.2" description = "Core utilities for Python packages" optional = false python-versions = ">=3.7" +groups = ["main", "dev"] files = [ {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, @@ -1513,27 +2077,76 @@ version = "1.6.5" description = "parse() is the opposite of format()" optional = true python-versions = "*" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "parse-1.6.5.tar.gz", hash = "sha256:c9545154ba6b0ede5b52c2877443a463dfc02f14fe43525d15255311939c3a72"}, ] +[[package]] +name = "parso" +version = "0.8.4" +description = "A Python Parser" +optional = false +python-versions = ">=3.6" +groups = ["dev"] +files = [ + {file = "parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18"}, + {file = "parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d"}, +] + +[package.extras] +qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] +testing = ["docopt", "pytest"] + [[package]] name = "pathspec" version = "0.12.1" description = "Utility library for gitignore style pattern matching of file paths." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, ] +[[package]] +name = "pexpect" +version = "4.9.0" +description = "Pexpect allows easy control of interactive console applications." +optional = false +python-versions = "*" +groups = ["dev"] +markers = "sys_platform != \"win32\" and sys_platform != \"emscripten\" or sys_platform != \"win32\" and python_version <= \"3.9\"" +files = [ + {file = "pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523"}, + {file = "pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"}, +] + +[package.dependencies] +ptyprocess = ">=0.5" + +[[package]] +name = "pickleshare" +version = "0.7.5" +description = "Tiny 'shelve'-like database with concurrency support" +optional = false +python-versions = "*" +groups = ["dev"] +markers = "python_version <= \"3.9\"" +files = [ + {file = "pickleshare-0.7.5-py2.py3-none-any.whl", hash = "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56"}, + {file = "pickleshare-0.7.5.tar.gz", hash = "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca"}, +] + [[package]] name = "pillow" version = "10.2.0" description = "Python Imaging Library (Fork)" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "pillow-10.2.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:7823bdd049099efa16e4246bdf15e5a13dbb18a51b68fa06d6c1d4d8b99a796e"}, {file = "pillow-10.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:83b2021f2ade7d1ed556bc50a399127d7fb245e725aa0113ebd05cfe88aaf588"}, @@ -1610,7 +2223,7 @@ docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline fpx = ["olefile"] mic = ["olefile"] tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] -typing = ["typing-extensions"] +typing = ["typing-extensions ; python_version < \"3.10\""] xmp = ["defusedxml"] [[package]] @@ -1619,6 +2232,7 @@ version = "4.2.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "platformdirs-4.2.0-py3-none-any.whl", hash = "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068"}, {file = "platformdirs-4.2.0.tar.gz", hash = "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768"}, @@ -1634,6 +2248,7 @@ version = "1.4.0" description = "plugin and hook calling mechanisms for python" optional = false python-versions = ">=3.8" +groups = ["dev"] files = [ {file = "pluggy-1.4.0-py3-none-any.whl", hash = "sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981"}, {file = "pluggy-1.4.0.tar.gz", hash = "sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be"}, @@ -1649,17 +2264,36 @@ version = "3.11" description = "Python Lex & Yacc" optional = true python-versions = "*" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "ply-3.11-py2.py3-none-any.whl", hash = "sha256:096f9b8350b65ebd2fd1346b12452efe5b9607f7482813ffca50c22722a807ce"}, {file = "ply-3.11.tar.gz", hash = "sha256:00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3"}, ] +[[package]] +name = "prompt-toolkit" +version = "3.0.51" +description = "Library for building powerful interactive command lines in Python" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +files = [ + {file = "prompt_toolkit-3.0.51-py3-none-any.whl", hash = "sha256:52742911fde84e2d423e2f9a4cf1de7d7ac4e51958f648d9540e0fb8db077b07"}, + {file = "prompt_toolkit-3.0.51.tar.gz", hash = "sha256:931a162e3b27fc90c86f1b48bb1fb2c528c2761475e57c9c06de13311c7b54ed"}, +] + +[package.dependencies] +wcwidth = "*" + [[package]] name = "protobuf" version = "4.25.3" description = "" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "protobuf-4.25.3-cp310-abi3-win32.whl", hash = "sha256:d4198877797a83cbfe9bffa3803602bbe1625dc30d8a097365dbc762e5790faa"}, {file = "protobuf-4.25.3-cp310-abi3-win_amd64.whl", hash = "sha256:209ba4cc916bab46f64e56b85b090607a676f66b473e6b762e6f1d9d591eb2e8"}, @@ -1674,12 +2308,66 @@ files = [ {file = "protobuf-4.25.3.tar.gz", hash = "sha256:25b5d0b42fd000320bd7830b349e3b696435f3b329810427a6bcce6a5492cc5c"}, ] +[[package]] +name = "psutil" +version = "7.0.0" +description = "Cross-platform lib for process and system monitoring in Python. NOTE: the syntax of this script MUST be kept compatible with Python 2.7." +optional = false +python-versions = ">=3.6" +groups = ["dev"] +files = [ + {file = "psutil-7.0.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:101d71dc322e3cffd7cea0650b09b3d08b8e7c4109dd6809fe452dfd00e58b25"}, + {file = "psutil-7.0.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:39db632f6bb862eeccf56660871433e111b6ea58f2caea825571951d4b6aa3da"}, + {file = "psutil-7.0.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1fcee592b4c6f146991ca55919ea3d1f8926497a713ed7faaf8225e174581e91"}, + {file = "psutil-7.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b1388a4f6875d7e2aff5c4ca1cc16c545ed41dd8bb596cefea80111db353a34"}, + {file = "psutil-7.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5f098451abc2828f7dc6b58d44b532b22f2088f4999a937557b603ce72b1993"}, + {file = "psutil-7.0.0-cp36-cp36m-win32.whl", hash = "sha256:84df4eb63e16849689f76b1ffcb36db7b8de703d1bc1fe41773db487621b6c17"}, + {file = "psutil-7.0.0-cp36-cp36m-win_amd64.whl", hash = "sha256:1e744154a6580bc968a0195fd25e80432d3afec619daf145b9e5ba16cc1d688e"}, + {file = "psutil-7.0.0-cp37-abi3-win32.whl", hash = "sha256:ba3fcef7523064a6c9da440fc4d6bd07da93ac726b5733c29027d7dc95b39d99"}, + {file = "psutil-7.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:4cf3d4eb1aa9b348dec30105c55cd9b7d4629285735a102beb4441e38db90553"}, + {file = "psutil-7.0.0.tar.gz", hash = "sha256:7be9c3eba38beccb6495ea33afd982a44074b78f28c434a1f51cc07fd315c456"}, +] + +[package.extras] +dev = ["abi3audit", "black (==24.10.0)", "check-manifest", "coverage", "packaging", "pylint", "pyperf", "pypinfo", "pytest", "pytest-cov", "pytest-xdist", "requests", "rstcheck", "ruff", "setuptools", "sphinx", "sphinx_rtd_theme", "toml-sort", "twine", "virtualenv", "vulture", "wheel"] +test = ["pytest", "pytest-xdist", "setuptools"] + +[[package]] +name = "ptyprocess" +version = "0.7.0" +description = "Run a subprocess in a pseudo terminal" +optional = false +python-versions = "*" +groups = ["dev"] +markers = "sys_platform != \"win32\" and sys_platform != \"emscripten\" or sys_platform != \"win32\" and python_version <= \"3.9\"" +files = [ + {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, + {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, +] + +[[package]] +name = "pure-eval" +version = "0.2.3" +description = "Safely evaluate AST nodes without side effects" +optional = false +python-versions = "*" +groups = ["dev"] +files = [ + {file = "pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0"}, + {file = "pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42"}, +] + +[package.extras] +tests = ["pytest"] + [[package]] name = "pyasn1" version = "0.5.1" description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)" optional = true python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "pyasn1-0.5.1-py2.py3-none-any.whl", hash = "sha256:4439847c58d40b1d0a573d07e3856e95333f1976294494c325775aeca506eb58"}, {file = "pyasn1-0.5.1.tar.gz", hash = "sha256:6d391a96e59b23130a5cfa74d6fd7f388dbbe26cc8f1edf39fdddf08d9d6676c"}, @@ -1691,6 +2379,8 @@ version = "0.3.0" description = "A collection of ASN.1-based protocols modules" optional = true python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "pyasn1_modules-0.3.0-py2.py3-none-any.whl", hash = "sha256:d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d"}, {file = "pyasn1_modules-0.3.0.tar.gz", hash = "sha256:5bd01446b736eb9d31512a30d46c1ac3395d676c6f3cafa4c03eb54b9925631c"}, @@ -1699,23 +2389,55 @@ files = [ [package.dependencies] pyasn1 = ">=0.4.6,<0.6.0" +[[package]] +name = "pycparser" +version = "2.22" +description = "C parser in Python" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "implementation_name == \"pypy\"" +files = [ + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, +] + [[package]] name = "pydigitalwavetools" version = "1.1" description = "Library for operations with VCD and other digital wave files" optional = true python-versions = "*" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "pyDigitalWaveTools-1.1-py3-none-any.whl", hash = "sha256:aa1c3b2447786afab3412baa4d86bb4d1df9723a8df7076a1d9976ebdda1874c"}, {file = "pyDigitalWaveTools-1.1.tar.gz", hash = "sha256:c7f0e06f7ed543a2f5f7110a4a8f2aae9e3ae328bb67ebd5b2a6db862efe7d33"}, ] +[[package]] +name = "pygments" +version = "2.19.1" +description = "Pygments is a syntax highlighting package written in Python." +optional = false +python-versions = ">=3.8" +groups = ["dev"] +files = [ + {file = "pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"}, + {file = "pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f"}, +] + +[package.extras] +windows-terminal = ["colorama (>=0.4.6)"] + [[package]] name = "pyparser" version = "1.0" description = "pyparser is a collection of classes to make it easier to parse text data in a pythonic way." optional = true python-versions = "*" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "pyparser-1.0.tar.gz", hash = "sha256:d1b76e2dabdd2952cadfd545229cc144afee6130bf171a031d5bf53f11b912f5"}, ] @@ -1729,6 +2451,7 @@ version = "3.1.2" description = "pyparsing module - Classes and methods to define and execute parsing grammars" optional = false python-versions = ">=3.6.8" +groups = ["main"] files = [ {file = "pyparsing-3.1.2-py3-none-any.whl", hash = "sha256:f9db75911801ed778fe61bb643079ff86601aca99fcae6345aa67292038fb742"}, {file = "pyparsing-3.1.2.tar.gz", hash = "sha256:a1bac0ce561155ecc3ed78ca94d3c9378656ad4c94c1270de543f621420f94ad"}, @@ -1743,6 +2466,7 @@ version = "7.4.4" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.7" +groups = ["dev"] files = [ {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, @@ -1765,6 +2489,7 @@ version = "2.9.0.post0" description = "Extensions to the standard Python datetime module" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +groups = ["main", "dev"] files = [ {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, @@ -1773,12 +2498,41 @@ files = [ [package.dependencies] six = ">=1.5" +[[package]] +name = "pywin32" +version = "310" +description = "Python for Window Extensions" +optional = false +python-versions = "*" +groups = ["dev"] +markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\"" +files = [ + {file = "pywin32-310-cp310-cp310-win32.whl", hash = "sha256:6dd97011efc8bf51d6793a82292419eba2c71cf8e7250cfac03bba284454abc1"}, + {file = "pywin32-310-cp310-cp310-win_amd64.whl", hash = "sha256:c3e78706e4229b915a0821941a84e7ef420bf2b77e08c9dae3c76fd03fd2ae3d"}, + {file = "pywin32-310-cp310-cp310-win_arm64.whl", hash = "sha256:33babed0cf0c92a6f94cc6cc13546ab24ee13e3e800e61ed87609ab91e4c8213"}, + {file = "pywin32-310-cp311-cp311-win32.whl", hash = "sha256:1e765f9564e83011a63321bb9d27ec456a0ed90d3732c4b2e312b855365ed8bd"}, + {file = "pywin32-310-cp311-cp311-win_amd64.whl", hash = "sha256:126298077a9d7c95c53823934f000599f66ec9296b09167810eb24875f32689c"}, + {file = "pywin32-310-cp311-cp311-win_arm64.whl", hash = "sha256:19ec5fc9b1d51c4350be7bb00760ffce46e6c95eaf2f0b2f1150657b1a43c582"}, + {file = "pywin32-310-cp312-cp312-win32.whl", hash = "sha256:8a75a5cc3893e83a108c05d82198880704c44bbaee4d06e442e471d3c9ea4f3d"}, + {file = "pywin32-310-cp312-cp312-win_amd64.whl", hash = "sha256:bf5c397c9a9a19a6f62f3fb821fbf36cac08f03770056711f765ec1503972060"}, + {file = "pywin32-310-cp312-cp312-win_arm64.whl", hash = "sha256:2349cc906eae872d0663d4d6290d13b90621eaf78964bb1578632ff20e152966"}, + {file = "pywin32-310-cp313-cp313-win32.whl", hash = "sha256:5d241a659c496ada3253cd01cfaa779b048e90ce4b2b38cd44168ad555ce74ab"}, + {file = "pywin32-310-cp313-cp313-win_amd64.whl", hash = "sha256:667827eb3a90208ddbdcc9e860c81bde63a135710e21e4cb3348968e4bd5249e"}, + {file = "pywin32-310-cp313-cp313-win_arm64.whl", hash = "sha256:e308f831de771482b7cf692a1f308f8fca701b2d8f9dde6cc440c7da17e47b33"}, + {file = "pywin32-310-cp38-cp38-win32.whl", hash = "sha256:0867beb8addefa2e3979d4084352e4ac6e991ca45373390775f7084cc0209b9c"}, + {file = "pywin32-310-cp38-cp38-win_amd64.whl", hash = "sha256:30f0a9b3138fb5e07eb4973b7077e1883f558e40c578c6925acc7a94c34eaa36"}, + {file = "pywin32-310-cp39-cp39-win32.whl", hash = "sha256:851c8d927af0d879221e616ae1f66145253537bbdd321a77e8ef701b443a9a1a"}, + {file = "pywin32-310-cp39-cp39-win_amd64.whl", hash = "sha256:96867217335559ac619f00ad70e513c0fcf84b8a3af9fc2bba3b59b97da70475"}, +] + [[package]] name = "pyyaml" version = "6.0.1" description = "YAML parser and emitter for Python" optional = true python-versions = ">=3.6" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, @@ -1833,12 +2587,106 @@ files = [ {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, ] +[[package]] +name = "pyzmq" +version = "27.0.0" +description = "Python bindings for 0MQ" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +files = [ + {file = "pyzmq-27.0.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:b973ee650e8f442ce482c1d99ca7ab537c69098d53a3d046676a484fd710c87a"}, + {file = "pyzmq-27.0.0-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:661942bc7cd0223d569d808f2e5696d9cc120acc73bf3e88a1f1be7ab648a7e4"}, + {file = "pyzmq-27.0.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:50360fb2a056ffd16e5f4177eee67f1dd1017332ea53fb095fe7b5bf29c70246"}, + {file = "pyzmq-27.0.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cf209a6dc4b420ed32a7093642843cbf8703ed0a7d86c16c0b98af46762ebefb"}, + {file = "pyzmq-27.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c2dace4a7041cca2fba5357a2d7c97c5effdf52f63a1ef252cfa496875a3762d"}, + {file = "pyzmq-27.0.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:63af72b2955fc77caf0a77444baa2431fcabb4370219da38e1a9f8d12aaebe28"}, + {file = "pyzmq-27.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e8c4adce8e37e75c4215297d7745551b8dcfa5f728f23ce09bf4e678a9399413"}, + {file = "pyzmq-27.0.0-cp310-cp310-win32.whl", hash = "sha256:5d5ef4718ecab24f785794e0e7536436698b459bfbc19a1650ef55280119d93b"}, + {file = "pyzmq-27.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:e40609380480b3d12c30f841323f42451c755b8fece84235236f5fe5ffca8c1c"}, + {file = "pyzmq-27.0.0-cp310-cp310-win_arm64.whl", hash = "sha256:6b0397b0be277b46762956f576e04dc06ced265759e8c2ff41a0ee1aa0064198"}, + {file = "pyzmq-27.0.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:21457825249b2a53834fa969c69713f8b5a79583689387a5e7aed880963ac564"}, + {file = "pyzmq-27.0.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1958947983fef513e6e98eff9cb487b60bf14f588dc0e6bf35fa13751d2c8251"}, + {file = "pyzmq-27.0.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c0dc628b5493f9a8cd9844b8bee9732ef587ab00002157c9329e4fc0ef4d3afa"}, + {file = "pyzmq-27.0.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f7bbe9e1ed2c8d3da736a15694d87c12493e54cc9dc9790796f0321794bbc91f"}, + {file = "pyzmq-27.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:dc1091f59143b471d19eb64f54bae4f54bcf2a466ffb66fe45d94d8d734eb495"}, + {file = "pyzmq-27.0.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7011ade88c8e535cf140f8d1a59428676fbbce7c6e54fefce58bf117aefb6667"}, + {file = "pyzmq-27.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2c386339d7e3f064213aede5d03d054b237937fbca6dd2197ac8cf3b25a6b14e"}, + {file = "pyzmq-27.0.0-cp311-cp311-win32.whl", hash = "sha256:0546a720c1f407b2172cb04b6b094a78773491497e3644863cf5c96c42df8cff"}, + {file = "pyzmq-27.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:15f39d50bd6c9091c67315ceb878a4f531957b121d2a05ebd077eb35ddc5efed"}, + {file = "pyzmq-27.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:c5817641eebb391a2268c27fecd4162448e03538387093cdbd8bf3510c316b38"}, + {file = "pyzmq-27.0.0-cp312-abi3-macosx_10_15_universal2.whl", hash = "sha256:cbabc59dcfaac66655c040dfcb8118f133fb5dde185e5fc152628354c1598e52"}, + {file = "pyzmq-27.0.0-cp312-abi3-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:cb0ac5179cba4b2f94f1aa208fbb77b62c4c9bf24dd446278b8b602cf85fcda3"}, + {file = "pyzmq-27.0.0-cp312-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:53a48f0228eab6cbf69fde3aa3c03cbe04e50e623ef92ae395fce47ef8a76152"}, + {file = "pyzmq-27.0.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:111db5f395e09f7e775f759d598f43cb815fc58e0147623c4816486e1a39dc22"}, + {file = "pyzmq-27.0.0-cp312-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:c8878011653dcdc27cc2c57e04ff96f0471e797f5c19ac3d7813a245bcb24371"}, + {file = "pyzmq-27.0.0-cp312-abi3-musllinux_1_2_i686.whl", hash = "sha256:c0ed2c1f335ba55b5fdc964622254917d6b782311c50e138863eda409fbb3b6d"}, + {file = "pyzmq-27.0.0-cp312-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:e918d70862d4cfd4b1c187310015646a14e1f5917922ab45b29f28f345eeb6be"}, + {file = "pyzmq-27.0.0-cp312-abi3-win32.whl", hash = "sha256:88b4e43cab04c3c0f0d55df3b1eef62df2b629a1a369b5289a58f6fa8b07c4f4"}, + {file = "pyzmq-27.0.0-cp312-abi3-win_amd64.whl", hash = "sha256:dce4199bf5f648a902ce37e7b3afa286f305cd2ef7a8b6ec907470ccb6c8b371"}, + {file = "pyzmq-27.0.0-cp312-abi3-win_arm64.whl", hash = "sha256:56e46bbb85d52c1072b3f809cc1ce77251d560bc036d3a312b96db1afe76db2e"}, + {file = "pyzmq-27.0.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:c36ad534c0c29b4afa088dc53543c525b23c0797e01b69fef59b1a9c0e38b688"}, + {file = "pyzmq-27.0.0-cp313-cp313t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:67855c14173aec36395d7777aaba3cc527b393821f30143fd20b98e1ff31fd38"}, + {file = "pyzmq-27.0.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8617c7d43cd8ccdb62aebe984bfed77ca8f036e6c3e46dd3dddda64b10f0ab7a"}, + {file = "pyzmq-27.0.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:67bfbcbd0a04c575e8103a6061d03e393d9f80ffdb9beb3189261e9e9bc5d5e9"}, + {file = "pyzmq-27.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:5cd11d46d7b7e5958121b3eaf4cd8638eff3a720ec527692132f05a57f14341d"}, + {file = "pyzmq-27.0.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:b801c2e40c5aa6072c2f4876de8dccd100af6d9918d4d0d7aa54a1d982fd4f44"}, + {file = "pyzmq-27.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:20d5cb29e8c5f76a127c75b6e7a77e846bc4b655c373baa098c26a61b7ecd0ef"}, + {file = "pyzmq-27.0.0-cp313-cp313t-win32.whl", hash = "sha256:a20528da85c7ac7a19b7384e8c3f8fa707841fd85afc4ed56eda59d93e3d98ad"}, + {file = "pyzmq-27.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:d8229f2efece6a660ee211d74d91dbc2a76b95544d46c74c615e491900dc107f"}, + {file = "pyzmq-27.0.0-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:f4162dbbd9c5c84fb930a36f290b08c93e35fce020d768a16fc8891a2f72bab8"}, + {file = "pyzmq-27.0.0-cp38-cp38-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:4e7d0a8d460fba526cc047333bdcbf172a159b8bd6be8c3eb63a416ff9ba1477"}, + {file = "pyzmq-27.0.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:29f44e3c26b9783816ba9ce274110435d8f5b19bbd82f7a6c7612bb1452a3597"}, + {file = "pyzmq-27.0.0-cp38-cp38-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6e435540fa1da54667f0026cf1e8407fe6d8a11f1010b7f06b0b17214ebfcf5e"}, + {file = "pyzmq-27.0.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:51f5726de3532b8222e569990c8aa34664faa97038304644679a51d906e60c6e"}, + {file = "pyzmq-27.0.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:42c7555123679637c99205b1aa9e8f7d90fe29d4c243c719e347d4852545216c"}, + {file = "pyzmq-27.0.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:a979b7cf9e33d86c4949df527a3018767e5f53bc3b02adf14d4d8db1db63ccc0"}, + {file = "pyzmq-27.0.0-cp38-cp38-win32.whl", hash = "sha256:26b72c5ae20bf59061c3570db835edb81d1e0706ff141747055591c4b41193f8"}, + {file = "pyzmq-27.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:55a0155b148fe0428285a30922f7213539aa84329a5ad828bca4bbbc665c70a4"}, + {file = "pyzmq-27.0.0-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:100f6e5052ba42b2533011d34a018a5ace34f8cac67cb03cfa37c8bdae0ca617"}, + {file = "pyzmq-27.0.0-cp39-cp39-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:bf6c6b061efd00404b9750e2cfbd9507492c8d4b3721ded76cb03786131be2ed"}, + {file = "pyzmq-27.0.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ee05728c0b0b2484a9fc20466fa776fffb65d95f7317a3419985b8c908563861"}, + {file = "pyzmq-27.0.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7cdf07fe0a557b131366f80727ec8ccc4b70d89f1e3f920d94a594d598d754f0"}, + {file = "pyzmq-27.0.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:90252fa2ff3a104219db1f5ced7032a7b5fc82d7c8d2fec2b9a3e6fd4e25576b"}, + {file = "pyzmq-27.0.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ea6d441c513bf18c578c73c323acf7b4184507fc244762193aa3a871333c9045"}, + {file = "pyzmq-27.0.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ae2b34bcfaae20c064948a4113bf8709eee89fd08317eb293ae4ebd69b4d9740"}, + {file = "pyzmq-27.0.0-cp39-cp39-win32.whl", hash = "sha256:5b10bd6f008937705cf6e7bf8b6ece5ca055991e3eb130bca8023e20b86aa9a3"}, + {file = "pyzmq-27.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:00387d12a8af4b24883895f7e6b9495dc20a66027b696536edac35cb988c38f3"}, + {file = "pyzmq-27.0.0-cp39-cp39-win_arm64.whl", hash = "sha256:4c19d39c04c29a6619adfeb19e3735c421b3bfee082f320662f52e59c47202ba"}, + {file = "pyzmq-27.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:656c1866505a5735d0660b7da6d7147174bbf59d4975fc2b7f09f43c9bc25745"}, + {file = "pyzmq-27.0.0-pp310-pypy310_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:74175b9e12779382432dd1d1f5960ebe7465d36649b98a06c6b26be24d173fab"}, + {file = "pyzmq-27.0.0-pp310-pypy310_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d8c6de908465697a8708e4d6843a1e884f567962fc61eb1706856545141d0cbb"}, + {file = "pyzmq-27.0.0-pp310-pypy310_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c644aaacc01d0df5c7072826df45e67301f191c55f68d7b2916d83a9ddc1b551"}, + {file = "pyzmq-27.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:10f70c1d9a446a85013a36871a296007f6fe4232b530aa254baf9da3f8328bc0"}, + {file = "pyzmq-27.0.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:cd1dc59763effd1576f8368047c9c31468fce0af89d76b5067641137506792ae"}, + {file = "pyzmq-27.0.0-pp311-pypy311_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:60e8cc82d968174650c1860d7b716366caab9973787a1c060cf8043130f7d0f7"}, + {file = "pyzmq-27.0.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:14fe7aaac86e4e93ea779a821967360c781d7ac5115b3f1a171ced77065a0174"}, + {file = "pyzmq-27.0.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6ad0562d4e6abb785be3e4dd68599c41be821b521da38c402bc9ab2a8e7ebc7e"}, + {file = "pyzmq-27.0.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:9df43a2459cd3a3563404c1456b2c4c69564daa7dbaf15724c09821a3329ce46"}, + {file = "pyzmq-27.0.0-pp38-pypy38_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8c86ea8fe85e2eb0ffa00b53192c401477d5252f6dd1db2e2ed21c1c30d17e5e"}, + {file = "pyzmq-27.0.0-pp38-pypy38_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:c45fee3968834cd291a13da5fac128b696c9592a9493a0f7ce0b47fa03cc574d"}, + {file = "pyzmq-27.0.0-pp38-pypy38_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:cae73bb6898c4e045fbed5024cb587e4110fddb66f6163bcab5f81f9d4b9c496"}, + {file = "pyzmq-27.0.0-pp38-pypy38_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:26d542258c7a1f35a9cff3d887687d3235006134b0ac1c62a6fe1ad3ac10440e"}, + {file = "pyzmq-27.0.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:04cd50ef3b28e35ced65740fb9956a5b3f77a6ff32fcd887e3210433f437dd0f"}, + {file = "pyzmq-27.0.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:39ddd3ba0a641f01d8f13a3cfd4c4924eb58e660d8afe87e9061d6e8ca6f7ac3"}, + {file = "pyzmq-27.0.0-pp39-pypy39_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:8ca7e6a0388dd9e1180b14728051068f4efe83e0d2de058b5ff92c63f399a73f"}, + {file = "pyzmq-27.0.0-pp39-pypy39_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2524c40891be6a3106885a3935d58452dd83eb7a5742a33cc780a1ad4c49dec0"}, + {file = "pyzmq-27.0.0-pp39-pypy39_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6a56e3e5bd2d62a01744fd2f1ce21d760c7c65f030e9522738d75932a14ab62a"}, + {file = "pyzmq-27.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:096af9e133fec3a72108ddefba1e42985cb3639e9de52cfd336b6fc23aa083e9"}, + {file = "pyzmq-27.0.0.tar.gz", hash = "sha256:b1f08eeb9ce1510e6939b6e5dcd46a17765e2333daae78ecf4606808442e52cf"}, +] + +[package.dependencies] +cffi = {version = "*", markers = "implementation_name == \"pypy\""} + [[package]] name = "qkeras" version = "0.9.0" description = "Quantization package for Keras" optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "QKeras-0.9.0-py3-none-any.whl", hash = "sha256:087d9973725c285e4be69ba71b0aa92b5c5dab36c41ad8e8f1480b9a0d6397c8"}, {file = "QKeras-0.9.0.tar.gz", hash = "sha256:b30f751420fa9172e53bab59ed65275ff9ec4085124491f3f5c89b7563d00b2a"}, @@ -1861,6 +2709,8 @@ version = "2.31.0" description = "Python HTTP for Humans." optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, @@ -1882,6 +2732,8 @@ version = "1.3.1" description = "OAuthlib authentication support for Requests." optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "requests-oauthlib-1.3.1.tar.gz", hash = "sha256:75beac4a47881eeb94d5ea5d6ad31ef88856affe2332b9aafb52c6452ccf0d7a"}, {file = "requests_oauthlib-1.3.1-py2.py3-none-any.whl", hash = "sha256:2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5"}, @@ -1900,6 +2752,8 @@ version = "4.9" description = "Pure-Python RSA implementation" optional = true python-versions = ">=3.6,<4" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "rsa-4.9-py3-none-any.whl", hash = "sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7"}, {file = "rsa-4.9.tar.gz", hash = "sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21"}, @@ -1914,6 +2768,7 @@ version = "1.3.2" description = "A set of python modules for machine learning and data mining" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "scikit-learn-1.3.2.tar.gz", hash = "sha256:a2f54c76accc15a34bfb9066e6c7a56c1e7235dda5762b990792330b52ccfb05"}, {file = "scikit_learn-1.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e326c0eb5cf4d6ba40f93776a20e9a7a69524c4db0757e7ce24ba222471ee8a1"}, @@ -1961,6 +2816,7 @@ version = "1.10.1" description = "Fundamental algorithms for scientific computing in Python" optional = false python-versions = "<3.12,>=3.8" +groups = ["main"] files = [ {file = "scipy-1.10.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e7354fd7527a4b0377ce55f286805b34e8c54b91be865bac273f527e1b839019"}, {file = "scipy-1.10.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:4b3f429188c66603a1a5c549fb414e4d3bdc2a24792e061ffbd607d3d75fd84e"}, @@ -1999,6 +2855,8 @@ version = "69.1.1" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "setuptools-69.1.1-py3-none-any.whl", hash = "sha256:02fa291a0471b3a18b2b2481ed902af520c69e8ae0919c13da936542754b4c56"}, {file = "setuptools-69.1.1.tar.gz", hash = "sha256:5c0806c7d9af348e6dd3777b4f4dbb42c7ad85b190104837488eab9a7c945cf8"}, @@ -2006,7 +2864,7 @@ files = [ [package.extras] docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.2)", "pip (>=19.1)", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff (>=0.2.1)", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21) ; python_version >= \"3.9\" and sys_platform != \"cygwin\"", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.2)", "pip (>=19.1)", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov ; platform_python_implementation != \"PyPy\"", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy (>=0.9.1) ; platform_python_implementation != \"PyPy\"", "pytest-perf ; sys_platform != \"cygwin\"", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\"", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.2)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] [[package]] @@ -2015,17 +2873,39 @@ version = "1.16.0" description = "Python 2 and 3 compatibility utilities" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +groups = ["main", "dev"] files = [ {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, ] +[[package]] +name = "stack-data" +version = "0.6.3" +description = "Extract data from python stack frames and tracebacks for informative displays" +optional = false +python-versions = "*" +groups = ["dev"] +files = [ + {file = "stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"}, + {file = "stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"}, +] + +[package.dependencies] +asttokens = ">=2.1.0" +executing = ">=1.2.0" +pure-eval = "*" + +[package.extras] +tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] + [[package]] name = "sympy" version = "1.12" description = "Computer algebra system (CAS) in Python" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "sympy-1.12-py3-none-any.whl", hash = "sha256:c3588cd4295d0c0f603d0f2ae780587e64e2efeedb3521e46b9bb1d08d184fa5"}, {file = "sympy-1.12.tar.gz", hash = "sha256:ebf595c8dac3e0fdc4152c51878b498396ec7f30e7a914d6071e674d49420fb8"}, @@ -2040,6 +2920,8 @@ version = "0.9.0" description = "Pretty-print tabular data" optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "tabulate-0.9.0-py3-none-any.whl", hash = "sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f"}, {file = "tabulate-0.9.0.tar.gz", hash = "sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c"}, @@ -2054,6 +2936,8 @@ version = "2.12.3" description = "TensorBoard lets you watch Tensors Flow" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "tensorboard-2.12.3-py3-none-any.whl", hash = "sha256:b4a69366784bc347e02fbe7d847e01896a649ca52f8948a11005e205dcf724fb"}, ] @@ -2078,6 +2962,8 @@ version = "0.7.2" description = "Fast data loading for TensorBoard" optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "tensorboard_data_server-0.7.2-py3-none-any.whl", hash = "sha256:7e0610d205889588983836ec05dc098e80f97b7e7bbff7e994ebb78f578d0ddb"}, {file = "tensorboard_data_server-0.7.2-py3-none-macosx_10_9_x86_64.whl", hash = "sha256:9fe5d24221b29625dbc7328b0436ca7fc1c23de4acf4d272f1180856e32f9f60"}, @@ -2090,6 +2976,8 @@ version = "2.12.0" description = "TensorFlow is an open source machine learning framework for everyone." optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "tensorflow-2.12.0-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:be4ac0dfcc7a16f6df2bc19bd322e312235ab3f7b0c7297f96c92c44bb14d2a1"}, {file = "tensorflow-2.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5193ddb3bb5120cb445279beb08ed9e74a85a4eeb2485550d6fb707a89d9a88"}, @@ -2139,6 +3027,8 @@ version = "2.12.0" description = "TensorFlow Estimator." optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "tensorflow_estimator-2.12.0-py2.py3-none-any.whl", hash = "sha256:59b191bead4883822de3d63ac02ace11a83bfe6c10d64d0c4dfde75a50e60ca1"}, ] @@ -2149,6 +3039,8 @@ version = "0.36.0" description = "TensorFlow IO" optional = true python-versions = ">=3.7, <3.12" +groups = ["main"] +markers = "(platform_machine != \"arm64\" or platform_system != \"Darwin\") and extra == \"hls4ml\"" files = [ {file = "tensorflow_io_gcs_filesystem-0.36.0-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:702c6df62b38095ff613c433546d9424d4f33902a5ab26b00fd26457e27a99fa"}, {file = "tensorflow_io_gcs_filesystem-0.36.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:e9b8aaca2789af356c42afda0f52380f82e5abb2f3c0b85087833fcfe03875d8"}, @@ -2178,6 +3070,8 @@ version = "0.8.0" description = "A suite of tools that users, both novice and advanced can use to optimize machine learning models for deployment and execution." optional = true python-versions = ">=3" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "tensorflow_model_optimization-0.8.0-py2.py3-none-any.whl", hash = "sha256:50303e6ed6d07c1a7801215f5cc854dad388ea8de319e46746ca35789e4ee7b3"}, ] @@ -2194,6 +3088,8 @@ version = "2.4.0" description = "ANSI color formatting for output in terminal" optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "termcolor-2.4.0-py3-none-any.whl", hash = "sha256:9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63"}, {file = "termcolor-2.4.0.tar.gz", hash = "sha256:aab9e56047c8ac41ed798fa36d892a37aca6b3e9159f3e0c24bc64a9b3ac7b7a"}, @@ -2208,6 +3104,7 @@ version = "3.3.0" description = "threadpoolctl" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "threadpoolctl-3.3.0-py3-none-any.whl", hash = "sha256:6155be1f4a39f31a18ea70f94a77e0ccd57dced08122ea61109e7da89883781e"}, {file = "threadpoolctl-3.3.0.tar.gz", hash = "sha256:5dac632b4fa2d43f42130267929af3ba01399ef4bd1882918e92dbc30365d30c"}, @@ -2219,6 +3116,8 @@ version = "2.0.1" description = "A lil' TOML parser" optional = false python-versions = ">=3.7" +groups = ["dev"] +markers = "python_version <= \"3.10\"" files = [ {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, @@ -2230,6 +3129,7 @@ version = "2.2.1" description = "Tensors and Dynamic neural networks in Python with strong GPU acceleration" optional = false python-versions = ">=3.8.0" +groups = ["main"] files = [ {file = "torch-2.2.1-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:8d3bad336dd2c93c6bcb3268e8e9876185bda50ebde325ef211fb565c7d15273"}, {file = "torch-2.2.1-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:5297f13370fdaca05959134b26a06a7f232ae254bf2e11a50eddec62525c9006"}, @@ -2282,12 +3182,58 @@ typing-extensions = ">=4.8.0" opt-einsum = ["opt-einsum (>=3.3)"] optree = ["optree (>=0.9.1)"] +[[package]] +name = "tornado" +version = "6.4.2" +description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." +optional = false +python-versions = ">=3.8" +groups = ["dev"] +markers = "python_version <= \"3.9\"" +files = [ + {file = "tornado-6.4.2-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e828cce1123e9e44ae2a50a9de3055497ab1d0aeb440c5ac23064d9e44880da1"}, + {file = "tornado-6.4.2-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:072ce12ada169c5b00b7d92a99ba089447ccc993ea2143c9ede887e0937aa803"}, + {file = "tornado-6.4.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a017d239bd1bb0919f72af256a970624241f070496635784d9bf0db640d3fec"}, + {file = "tornado-6.4.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c36e62ce8f63409301537222faffcef7dfc5284f27eec227389f2ad11b09d946"}, + {file = "tornado-6.4.2-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bca9eb02196e789c9cb5c3c7c0f04fb447dc2adffd95265b2c7223a8a615ccbf"}, + {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:304463bd0772442ff4d0f5149c6f1c2135a1fae045adf070821c6cdc76980634"}, + {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:c82c46813ba483a385ab2a99caeaedf92585a1f90defb5693351fa7e4ea0bf73"}, + {file = "tornado-6.4.2-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:932d195ca9015956fa502c6b56af9eb06106140d844a335590c1ec7f5277d10c"}, + {file = "tornado-6.4.2-cp38-abi3-win32.whl", hash = "sha256:2876cef82e6c5978fde1e0d5b1f919d756968d5b4282418f3146b79b58556482"}, + {file = "tornado-6.4.2-cp38-abi3-win_amd64.whl", hash = "sha256:908b71bf3ff37d81073356a5fadcc660eb10c1476ee6e2725588626ce7e5ca38"}, + {file = "tornado-6.4.2.tar.gz", hash = "sha256:92bad5b4746e9879fd7bf1eb21dce4e3fc5128d71601f80005afa39237ad620b"}, +] + +[[package]] +name = "tornado" +version = "6.5.1" +description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." +optional = false +python-versions = ">=3.9" +groups = ["dev"] +markers = "python_version > \"3.9\"" +files = [ + {file = "tornado-6.5.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:d50065ba7fd11d3bd41bcad0825227cc9a95154bad83239357094c36708001f7"}, + {file = "tornado-6.5.1-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:9e9ca370f717997cb85606d074b0e5b247282cf5e2e1611568b8821afe0342d6"}, + {file = "tornado-6.5.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b77e9dfa7ed69754a54c89d82ef746398be82f749df69c4d3abe75c4d1ff4888"}, + {file = "tornado-6.5.1-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:253b76040ee3bab8bcf7ba9feb136436a3787208717a1fb9f2c16b744fba7331"}, + {file = "tornado-6.5.1-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:308473f4cc5a76227157cdf904de33ac268af770b2c5f05ca6c1161d82fdd95e"}, + {file = "tornado-6.5.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:caec6314ce8a81cf69bd89909f4b633b9f523834dc1a352021775d45e51d9401"}, + {file = "tornado-6.5.1-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:13ce6e3396c24e2808774741331638ee6c2f50b114b97a55c5b442df65fd9692"}, + {file = "tornado-6.5.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:5cae6145f4cdf5ab24744526cc0f55a17d76f02c98f4cff9daa08ae9a217448a"}, + {file = "tornado-6.5.1-cp39-abi3-win32.whl", hash = "sha256:e0a36e1bc684dca10b1aa75a31df8bdfed656831489bc1e6a6ebed05dc1ec365"}, + {file = "tornado-6.5.1-cp39-abi3-win_amd64.whl", hash = "sha256:908e7d64567cecd4c2b458075589a775063453aeb1d2a1853eedb806922f568b"}, + {file = "tornado-6.5.1-cp39-abi3-win_arm64.whl", hash = "sha256:02420a0eb7bf617257b9935e2b754d1b63897525d8a289c9d65690d580b4dcf7"}, + {file = "tornado-6.5.1.tar.gz", hash = "sha256:84ceece391e8eb9b2b95578db65e920d2a61070260594819589609ba9bc6308c"}, +] + [[package]] name = "tqdm" version = "4.66.2" description = "Fast, Extensible Progress Meter" optional = false python-versions = ">=3.7" +groups = ["main"] files = [ {file = "tqdm-4.66.2-py3-none-any.whl", hash = "sha256:1ee4f8a893eb9bef51c6e35730cebf234d5d0b6bd112b0271e10ed7c24a02bd9"}, {file = "tqdm-4.66.2.tar.gz", hash = "sha256:6cd52cdf0fef0e0f543299cfc96fec90d7b8a7e88745f411ec33eb44d5ed3531"}, @@ -2302,12 +3248,30 @@ notebook = ["ipywidgets (>=6)"] slack = ["slack-sdk"] telegram = ["requests"] +[[package]] +name = "traitlets" +version = "5.14.3" +description = "Traitlets Python configuration system" +optional = false +python-versions = ">=3.8" +groups = ["dev"] +files = [ + {file = "traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f"}, + {file = "traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7"}, +] + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] +test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<8.2)", "pytest-mock", "pytest-mypy-testing"] + [[package]] name = "triton" version = "2.2.0" description = "A language and compiler for custom Deep Learning operations" optional = false python-versions = "*" +groups = ["main"] +markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\"" files = [ {file = "triton-2.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2294514340cfe4e8f4f9e5c66c702744c4a117d25e618bd08469d0bfed1e2e5"}, {file = "triton-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da58a152bddb62cafa9a857dd2bc1f886dbf9f9c90a2b5da82157cd2b34392b0"}, @@ -2331,6 +3295,7 @@ version = "4.10.0" description = "Backported and Experimental Type Hints for Python 3.8+" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] files = [ {file = "typing_extensions-4.10.0-py3-none-any.whl", hash = "sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475"}, {file = "typing_extensions-4.10.0.tar.gz", hash = "sha256:b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb"}, @@ -2342,23 +3307,39 @@ version = "2.2.1" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"}, {file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"}, ] [package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +brotli = ["brotli (>=1.0.9) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\""] h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] +[[package]] +name = "wcwidth" +version = "0.2.13" +description = "Measures the displayed width of unicode strings in a terminal" +optional = false +python-versions = "*" +groups = ["dev"] +files = [ + {file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"}, + {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"}, +] + [[package]] name = "werkzeug" version = "3.0.1" description = "The comprehensive WSGI web application library." optional = true python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "werkzeug-3.0.1-py3-none-any.whl", hash = "sha256:90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10"}, {file = "werkzeug-3.0.1.tar.gz", hash = "sha256:507e811ecea72b18a404947aded4b3390e1db8f826b494d76550ef45bb3b1dcc"}, @@ -2376,6 +3357,8 @@ version = "0.42.0" description = "A built-package format for Python" optional = true python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "wheel-0.42.0-py3-none-any.whl", hash = "sha256:177f9c9b0d45c47873b619f5b650346d632cdc35fb5e4d25058e09c9e581433d"}, {file = "wheel-0.42.0.tar.gz", hash = "sha256:c45be39f7882c9d34243236f2d63cbd58039e360f85d0913425fbd7ceea617a8"}, @@ -2390,6 +3373,8 @@ version = "1.14.1" description = "Module for decorators, wrappers and monkey patching." optional = true python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +groups = ["main"] +markers = "extra == \"hls4ml\"" files = [ {file = "wrapt-1.14.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:1b376b3f4896e7930f1f772ac4b064ac12598d1c38d04907e696cc4d794b43d3"}, {file = "wrapt-1.14.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:903500616422a40a98a5a3c4ff4ed9d0066f3b4c951fa286018ecdf0750194ef"}, @@ -2473,6 +3458,8 @@ version = "3.17.0" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.8" +groups = ["main", "dev"] +markers = "python_version <= \"3.9\"" files = [ {file = "zipp-3.17.0-py3-none-any.whl", hash = "sha256:0e923e726174922dce09c53c59ad483ff7bbb8e572e00c7f7c46b88556409f31"}, {file = "zipp-3.17.0.tar.gz", hash = "sha256:84e64a1c28cf7e91ed2078bb8cc8c259cb19b76942096c8d7b84947690cabaf0"}, @@ -2480,12 +3467,12 @@ files = [ [package.extras] docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy (>=0.9.1)", "pytest-ruff"] +testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7) ; platform_python_implementation != \"PyPy\"", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy (>=0.9.1) ; platform_python_implementation != \"PyPy\"", "pytest-ruff"] [extras] hls4ml = ["hls4ml", "tensorflow"] [metadata] -lock-version = "2.0" +lock-version = "2.1" python-versions = ">=3.8, <3.11.10" -content-hash = "0b0cf4871b8e171e15c6001e9f68266ef3585ecf750d1aee374b68f94ee3cf72" +content-hash = "fe06f75f8ce053fef7270eef5b6d20777f2142f373359dbc48874d3d83d1fd4c" diff --git a/pyproject.toml b/pyproject.toml index 193d2759..2dfcc2e0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,6 +21,7 @@ numpy = "1.23.5" [tool.poetry.group.dev.dependencies] pytest = "^7.2.1" black = "^23.1.0" +ipykernel = "^6.29.5" [tool.poetry.extras] hls4ml = [ "hls4ml", "tensorflow" ] diff --git a/workspaces/ATLAS_Workspace/.DS_Store b/workspaces/ATLAS_Workspace/.DS_Store new file mode 100644 index 00000000..399d1e85 Binary files /dev/null and b/workspaces/ATLAS_Workspace/.DS_Store differ diff --git a/workspaces/ATLAS_Workspace/ATLAS_Project/.DS_Store b/workspaces/ATLAS_Workspace/ATLAS_Project/.DS_Store new file mode 100644 index 00000000..85fd0460 Binary files /dev/null and b/workspaces/ATLAS_Workspace/ATLAS_Project/.DS_Store differ diff --git a/workspaces/ATLAS_Workspace/ATLAS_Project/config/ATLAS_Project_config.py b/workspaces/ATLAS_Workspace/ATLAS_Project/config/ATLAS_Project_config.py new file mode 100644 index 00000000..1ed33af5 --- /dev/null +++ b/workspaces/ATLAS_Workspace/ATLAS_Project/config/ATLAS_Project_config.py @@ -0,0 +1,68 @@ +# === Configuration options === + + +def set_config(c): + c.input_path = "workspaces/ATLAS_Workspace/data/processed_diphoton_data_all_periods.npz" + c.data_dimension = 1 + c.compression_ratio = 1.6 + c.apply_normalization = True + c.model_name = "AE" + c.epochs = 25 + c.lr = 0.001 + c.batch_size = 512 + c.early_stopping = True + c.lr_scheduler = True + c.save_error_bounded_deltas = False + c.error_bounded_requirement = 10 + c.custom_loss_function = "mse_loss_myy_l1" + + # === Additional configuration options === + + c.early_stopping_patience = 100 + c.min_delta = 0 + c.lr_scheduler_patience = 50 + c.custom_norm = False + c.reg_param = 0.001 + #new + c.myy_loss_weight = 0.5 + c.RHO = 0.05 + c.test_size = 0 + # c.number_of_columns = 24 + # c.latent_space_size = 15 + c.extra_compression = False + c.intermittent_model_saving = False + c.intermittent_saving_patience = 100 + c.mse_avg = False + c.mse_sum = True + c.emd = False + c.l1 = True + c.activation_extraction = True + c.deterministic_algorithm = False + c.type_list = [ + "float64", + "float64", + "float64", + "float64", + "float64", + "float64", + "float64", + "float64", + "float64", + "float64", + "float64", + "float64", + "int", + "int", + "int", + "int", + "int", + "int", + "int", + "float64", + "float64", + "float64", + "int", + "int", + ] + c.convert_to_blocks = False + c.separate_model_saving = False diff --git a/workspaces/ATLAS_Workspace/ATLAS_Project/config/Hyy_data_preprocessing_all_periods_fixed.ipynb b/workspaces/ATLAS_Workspace/ATLAS_Project/config/Hyy_data_preprocessing_all_periods_fixed.ipynb new file mode 100644 index 00000000..1f9647b5 --- /dev/null +++ b/workspaces/ATLAS_Workspace/ATLAS_Project/config/Hyy_data_preprocessing_all_periods_fixed.ipynb @@ -0,0 +1,644 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: uproot in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (5.6.3)\n", + "Collecting uproot\n", + " Downloading uproot-5.6.4-py3-none-any.whl.metadata (34 kB)\n", + "Requirement already satisfied: awkward>=2.4.6 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (2.8.4)\n", + "Requirement already satisfied: cramjam>=2.5.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (2.10.0)\n", + "Requirement already satisfied: fsspec!=2025.7.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (2024.2.0)\n", + "Requirement already satisfied: numpy in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (1.23.5)\n", + "Requirement already satisfied: packaging in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (23.2)\n", + "Requirement already satisfied: typing-extensions>=4.1.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (4.10.0)\n", + "Requirement already satisfied: xxhash in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (3.5.0)\n", + "Requirement already satisfied: awkward-cpp==46 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.4.6->uproot) (46)\n", + "Requirement already satisfied: importlib-metadata>=4.13.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.4.6->uproot) (7.0.1)\n", + "Requirement already satisfied: zipp>=0.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from importlib-metadata>=4.13.0->awkward>=2.4.6->uproot) (3.17.0)\n", + "Downloading uproot-5.6.4-py3-none-any.whl (383 kB)\n", + "Installing collected packages: uproot\n", + " Attempting uninstall: uproot\n", + " Found existing installation: uproot 5.6.3\n", + " Uninstalling uproot-5.6.3:\n", + " Successfully uninstalled uproot-5.6.3\n", + "Successfully installed uproot-5.6.4\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.2\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", + "Requirement already satisfied: pandas in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (2.3.1)\n", + "Requirement already satisfied: numpy>=1.22.4 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas) (1.23.5)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas) (2.9.0.post0)\n", + "Requirement already satisfied: pytz>=2020.1 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas) (2025.2)\n", + "Requirement already satisfied: tzdata>=2022.7 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas) (2025.2)\n", + "Requirement already satisfied: six>=1.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from python-dateutil>=2.8.2->pandas) (1.16.0)\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.2\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", + "Requirement already satisfied: requests in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (2.32.4)\n", + "Requirement already satisfied: aiohttp in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (3.12.13)\n", + "Requirement already satisfied: charset_normalizer<4,>=2 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from requests) (3.4.2)\n", + "Requirement already satisfied: idna<4,>=2.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from requests) (3.10)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from requests) (2.5.0)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from requests) (2025.6.15)\n", + "Requirement already satisfied: aiohappyeyeballs>=2.5.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (2.6.1)\n", + "Requirement already satisfied: aiosignal>=1.1.2 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (1.3.2)\n", + "Requirement already satisfied: async-timeout<6.0,>=4.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (5.0.1)\n", + "Requirement already satisfied: attrs>=17.3.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (25.3.0)\n", + "Requirement already satisfied: frozenlist>=1.1.1 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (1.7.0)\n", + "Requirement already satisfied: multidict<7.0,>=4.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (6.5.0)\n", + "Requirement already satisfied: propcache>=0.2.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (0.3.2)\n", + "Requirement already satisfied: yarl<2.0,>=1.17.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (1.20.1)\n", + "Requirement already satisfied: typing-extensions>=4.1.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from multidict<7.0,>=4.5->aiohttp) (4.10.0)\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.2\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", + "Requirement already satisfied: awkward-pandas in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (2023.8.0)\n", + "Requirement already satisfied: awkward>=2.0.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward-pandas) (2.8.4)\n", + "Requirement already satisfied: pandas>=1.2 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward-pandas) (2.3.1)\n", + "Requirement already satisfied: awkward-cpp==46 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (46)\n", + "Requirement already satisfied: fsspec>=2022.11.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (2024.2.0)\n", + "Requirement already satisfied: importlib-metadata>=4.13.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (7.0.1)\n", + "Requirement already satisfied: numpy>=1.18.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (1.23.5)\n", + "Requirement already satisfied: packaging in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (23.2)\n", + "Requirement already satisfied: typing-extensions>=4.1.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (4.10.0)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas>=1.2->awkward-pandas) (2.9.0.post0)\n", + "Requirement already satisfied: pytz>=2020.1 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas>=1.2->awkward-pandas) (2025.2)\n", + "Requirement already satisfied: tzdata>=2022.7 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas>=1.2->awkward-pandas) (2025.2)\n", + "Requirement already satisfied: zipp>=0.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from importlib-metadata>=4.13.0->awkward>=2.0.0->awkward-pandas) (3.17.0)\n", + "Requirement already satisfied: six>=1.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from python-dateutil>=2.8.2->pandas>=1.2->awkward-pandas) (1.16.0)\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.2\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", + "Requirement already satisfied: vector in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (1.6.2)\n", + "Requirement already satisfied: numpy>=1.13.3 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from vector) (1.23.5)\n", + "Requirement already satisfied: packaging>=19 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from vector) (23.2)\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.2\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n" + ] + } + ], + "source": [ + "import sys\n", + "!{sys.executable} -m pip install --upgrade uproot\n", + "!{sys.executable} -m pip install --upgrade pandas\n", + "!{sys.executable} -m pip install requests aiohttp\n", + "!{sys.executable} -m pip install awkward-pandas\n", + "!{sys.executable} -m pip install vector " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "ename": "ClientConnectorDNSError", + "evalue": "Cannot connect to host atlas-opendata.web.cern.ch:443 ssl:default [nodename nor servname provided, or not known]", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mgaierror\u001b[0m Traceback (most recent call last)", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages/aiohttp/connector.py:1512\u001b[0m, in \u001b[0;36mTCPConnector._create_direct_connection\u001b[0;34m(self, req, traces, timeout, client_error)\u001b[0m\n\u001b[1;32m 1508\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 1509\u001b[0m \u001b[38;5;66;03m# Cancelling this lookup should not cancel the underlying lookup\u001b[39;00m\n\u001b[1;32m 1510\u001b[0m \u001b[38;5;66;03m# or else the cancel event will get broadcast to all the waiters\u001b[39;00m\n\u001b[1;32m 1511\u001b[0m \u001b[38;5;66;03m# across all connections.\u001b[39;00m\n\u001b[0;32m-> 1512\u001b[0m hosts \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mawait\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_resolve_host(host, port, traces\u001b[38;5;241m=\u001b[39mtraces)\n\u001b[1;32m 1513\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mOSError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m exc:\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages/aiohttp/connector.py:1128\u001b[0m, in \u001b[0;36mTCPConnector._resolve_host\u001b[0;34m(self, host, port, traces)\u001b[0m\n\u001b[1;32m 1127\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 1128\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m asyncio\u001b[38;5;241m.\u001b[39mshield(resolved_host_task)\n\u001b[1;32m 1129\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m asyncio\u001b[38;5;241m.\u001b[39mCancelledError:\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages/aiohttp/connector.py:1159\u001b[0m, in \u001b[0;36mTCPConnector._resolve_host_with_throttle\u001b[0;34m(self, key, host, port, futures, traces)\u001b[0m\n\u001b[1;32m 1157\u001b[0m \u001b[38;5;28;01mawait\u001b[39;00m trace\u001b[38;5;241m.\u001b[39msend_dns_resolvehost_start(host)\n\u001b[0;32m-> 1159\u001b[0m addrs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mawait\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_resolver\u001b[38;5;241m.\u001b[39mresolve(host, port, family\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_family)\n\u001b[1;32m 1160\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m traces:\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages/aiohttp/resolver.py:40\u001b[0m, in \u001b[0;36mThreadedResolver.resolve\u001b[0;34m(self, host, port, family)\u001b[0m\n\u001b[1;32m 37\u001b[0m \u001b[38;5;28;01masync\u001b[39;00m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mresolve\u001b[39m(\n\u001b[1;32m 38\u001b[0m \u001b[38;5;28mself\u001b[39m, host: \u001b[38;5;28mstr\u001b[39m, port: \u001b[38;5;28mint\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m0\u001b[39m, family: socket\u001b[38;5;241m.\u001b[39mAddressFamily \u001b[38;5;241m=\u001b[39m socket\u001b[38;5;241m.\u001b[39mAF_INET\n\u001b[1;32m 39\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m List[ResolveResult]:\n\u001b[0;32m---> 40\u001b[0m infos \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mawait\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_loop\u001b[38;5;241m.\u001b[39mgetaddrinfo(\n\u001b[1;32m 41\u001b[0m host,\n\u001b[1;32m 42\u001b[0m port,\n\u001b[1;32m 43\u001b[0m \u001b[38;5;28mtype\u001b[39m\u001b[38;5;241m=\u001b[39msocket\u001b[38;5;241m.\u001b[39mSOCK_STREAM,\n\u001b[1;32m 44\u001b[0m family\u001b[38;5;241m=\u001b[39mfamily,\n\u001b[1;32m 45\u001b[0m flags\u001b[38;5;241m=\u001b[39m_AI_ADDRCONFIG,\n\u001b[1;32m 46\u001b[0m )\n\u001b[1;32m 48\u001b[0m hosts: List[ResolveResult] \u001b[38;5;241m=\u001b[39m []\n", + "File \u001b[0;32m~/.pyenv/versions/3.9.21/lib/python3.9/asyncio/base_events.py:861\u001b[0m, in \u001b[0;36mBaseEventLoop.getaddrinfo\u001b[0;34m(self, host, port, family, type, proto, flags)\u001b[0m\n\u001b[1;32m 859\u001b[0m getaddr_func \u001b[38;5;241m=\u001b[39m socket\u001b[38;5;241m.\u001b[39mgetaddrinfo\n\u001b[0;32m--> 861\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mrun_in_executor(\n\u001b[1;32m 862\u001b[0m \u001b[38;5;28;01mNone\u001b[39;00m, getaddr_func, host, port, family, \u001b[38;5;28mtype\u001b[39m, proto, flags)\n", + "File \u001b[0;32m~/.pyenv/versions/3.9.21/lib/python3.9/concurrent/futures/thread.py:58\u001b[0m, in \u001b[0;36m_WorkItem.run\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 57\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m---> 58\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 59\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m exc:\n", + "File \u001b[0;32m~/.pyenv/versions/3.9.21/lib/python3.9/socket.py:966\u001b[0m, in \u001b[0;36mgetaddrinfo\u001b[0;34m(host, port, family, type, proto, flags)\u001b[0m\n\u001b[1;32m 965\u001b[0m addrlist \u001b[38;5;241m=\u001b[39m []\n\u001b[0;32m--> 966\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m res \u001b[38;5;129;01min\u001b[39;00m \u001b[43m_socket\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mgetaddrinfo\u001b[49m\u001b[43m(\u001b[49m\u001b[43mhost\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mport\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfamily\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mtype\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mproto\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mflags\u001b[49m\u001b[43m)\u001b[49m:\n\u001b[1;32m 967\u001b[0m af, socktype, proto, canonname, sa \u001b[38;5;241m=\u001b[39m res\n", + "\u001b[0;31mgaierror\u001b[0m: [Errno 8] nodename nor servname provided, or not known", + "\nThe above exception was the direct cause of the following exception:\n", + "\u001b[0;31mClientConnectorDNSError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[2], line 15\u001b[0m\n\u001b[1;32m 12\u001b[0m test_path \u001b[38;5;241m=\u001b[39m path \u001b[38;5;241m+\u001b[39m samples_list[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m.root\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 14\u001b[0m \u001b[38;5;66;03m# Inspect the file to find available trees\u001b[39;00m\n\u001b[0;32m---> 15\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[43muproot\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mopen\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtest_path\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mas\u001b[39;00m file:\n\u001b[1;32m 16\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mKeys in ROOT file:\u001b[39m\u001b[38;5;124m\"\u001b[39m, file\u001b[38;5;241m.\u001b[39mkeys())\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages/uproot/reading.py:142\u001b[0m, in \u001b[0;36mopen\u001b[0;34m(path, object_cache, array_cache, custom_classes, decompression_executor, interpretation_executor, **options)\u001b[0m\n\u001b[1;32m 133\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(file_path, \u001b[38;5;28mstr\u001b[39m) \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\n\u001b[1;32m 134\u001b[0m \u001b[38;5;28mhasattr\u001b[39m(file_path, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mread\u001b[39m\u001b[38;5;124m\"\u001b[39m) \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28mhasattr\u001b[39m(file_path, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mseek\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 135\u001b[0m ):\n\u001b[1;32m 136\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[1;32m 137\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mpath\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m must be a string, pathlib.Path, an object with \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mread\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m and \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 138\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mseek\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m methods, or a length-1 dict of \u001b[39m\u001b[38;5;124m{\u001b[39m\u001b[38;5;124mfile_path: object_path}, \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 139\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mnot \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mpath\u001b[38;5;132;01m!r}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 140\u001b[0m )\n\u001b[0;32m--> 142\u001b[0m file \u001b[38;5;241m=\u001b[39m \u001b[43mReadOnlyFile\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 143\u001b[0m \u001b[43m \u001b[49m\u001b[43mfile_path\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 144\u001b[0m \u001b[43m \u001b[49m\u001b[43mobject_cache\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mobject_cache\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 145\u001b[0m \u001b[43m \u001b[49m\u001b[43marray_cache\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43marray_cache\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 146\u001b[0m \u001b[43m \u001b[49m\u001b[43mcustom_classes\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcustom_classes\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 147\u001b[0m \u001b[43m \u001b[49m\u001b[43mdecompression_executor\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdecompression_executor\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 148\u001b[0m \u001b[43m \u001b[49m\u001b[43minterpretation_executor\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43minterpretation_executor\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 149\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 150\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 152\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m object_path \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 153\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m file\u001b[38;5;241m.\u001b[39mroot_directory\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages/uproot/reading.py:573\u001b[0m, in \u001b[0;36mReadOnlyFile.__init__\u001b[0;34m(self, file_path, object_cache, array_cache, custom_classes, decompression_executor, interpretation_executor, **options)\u001b[0m\n\u001b[1;32m 565\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_options[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mbegin_chunk_size\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m<\u001b[39m _file_header_fields_big\u001b[38;5;241m.\u001b[39msize:\n\u001b[1;32m 566\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[1;32m 567\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mbegin_chunk_size=\u001b[39m\u001b[38;5;132;01m{}\u001b[39;00m\u001b[38;5;124m is not enough to read the TFile header (\u001b[39m\u001b[38;5;132;01m{}\u001b[39;00m\u001b[38;5;124m)\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m.\u001b[39mformat(\n\u001b[1;32m 568\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_options[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mbegin_chunk_size\u001b[39m\u001b[38;5;124m\"\u001b[39m],\n\u001b[1;32m 569\u001b[0m _file_header_fields_big\u001b[38;5;241m.\u001b[39msize,\n\u001b[1;32m 570\u001b[0m )\n\u001b[1;32m 571\u001b[0m )\n\u001b[0;32m--> 573\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_begin_chunk \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_source\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mchunk\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 574\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_options\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mbegin_chunk_size\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\n\u001b[1;32m 575\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39mdetach_memmap()\n\u001b[1;32m 577\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhook_before_interpret()\n\u001b[1;32m 579\u001b[0m (\n\u001b[1;32m 580\u001b[0m magic,\n\u001b[1;32m 581\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_fVersion,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 595\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_begin_chunk, _file_header_fields_small, {}\n\u001b[1;32m 596\u001b[0m )\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages/uproot/source/fsspec.py:95\u001b[0m, in \u001b[0;36mFSSpecSource.chunk\u001b[0;34m(self, start, stop)\u001b[0m\n\u001b[1;32m 93\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_num_requested_chunks \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1\u001b[39m\n\u001b[1;32m 94\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_num_requested_bytes \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m stop \u001b[38;5;241m-\u001b[39m start\n\u001b[0;32m---> 95\u001b[0m data \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_fs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcat_file\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_file_path\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mstart\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstart\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mend\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstop\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 96\u001b[0m future \u001b[38;5;241m=\u001b[39m uproot\u001b[38;5;241m.\u001b[39msource\u001b[38;5;241m.\u001b[39mfutures\u001b[38;5;241m.\u001b[39mTrivialFuture(data)\n\u001b[1;32m 97\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m uproot\u001b[38;5;241m.\u001b[39msource\u001b[38;5;241m.\u001b[39mchunk\u001b[38;5;241m.\u001b[39mChunk(\u001b[38;5;28mself\u001b[39m, start, stop, future)\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages/fsspec/asyn.py:118\u001b[0m, in \u001b[0;36msync_wrapper..wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 115\u001b[0m \u001b[38;5;129m@functools\u001b[39m\u001b[38;5;241m.\u001b[39mwraps(func)\n\u001b[1;32m 116\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mwrapper\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 117\u001b[0m \u001b[38;5;28mself\u001b[39m \u001b[38;5;241m=\u001b[39m obj \u001b[38;5;129;01mor\u001b[39;00m args[\u001b[38;5;241m0\u001b[39m]\n\u001b[0;32m--> 118\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43msync\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mloop\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfunc\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages/fsspec/asyn.py:103\u001b[0m, in \u001b[0;36msync\u001b[0;34m(loop, func, timeout, *args, **kwargs)\u001b[0m\n\u001b[1;32m 101\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m FSTimeoutError \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mreturn_result\u001b[39;00m\n\u001b[1;32m 102\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(return_result, \u001b[38;5;167;01mBaseException\u001b[39;00m):\n\u001b[0;32m--> 103\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m return_result\n\u001b[1;32m 104\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 105\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m return_result\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages/fsspec/asyn.py:56\u001b[0m, in \u001b[0;36m_runner\u001b[0;34m(event, coro, result, timeout)\u001b[0m\n\u001b[1;32m 54\u001b[0m coro \u001b[38;5;241m=\u001b[39m asyncio\u001b[38;5;241m.\u001b[39mwait_for(coro, timeout\u001b[38;5;241m=\u001b[39mtimeout)\n\u001b[1;32m 55\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m---> 56\u001b[0m result[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mawait\u001b[39;00m coro\n\u001b[1;32m 57\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m ex:\n\u001b[1;32m 58\u001b[0m result[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;241m=\u001b[39m ex\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages/fsspec/implementations/http.py:231\u001b[0m, in \u001b[0;36mHTTPFileSystem._cat_file\u001b[0;34m(self, url, start, end, **kwargs)\u001b[0m\n\u001b[1;32m 229\u001b[0m kw[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mheaders\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m headers\n\u001b[1;32m 230\u001b[0m session \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mawait\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mset_session()\n\u001b[0;32m--> 231\u001b[0m \u001b[38;5;28;01masync\u001b[39;00m \u001b[38;5;28;01mwith\u001b[39;00m session\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mencode_url(url), \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkw) \u001b[38;5;28;01mas\u001b[39;00m r:\n\u001b[1;32m 232\u001b[0m out \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mawait\u001b[39;00m r\u001b[38;5;241m.\u001b[39mread()\n\u001b[1;32m 233\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_raise_not_found_for_status(r, url)\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages/aiohttp/client.py:1482\u001b[0m, in \u001b[0;36m_BaseRequestContextManager.__aenter__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1481\u001b[0m \u001b[38;5;28;01masync\u001b[39;00m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21m__aenter__\u001b[39m(\u001b[38;5;28mself\u001b[39m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m _RetType:\n\u001b[0;32m-> 1482\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_resp: _RetType \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mawait\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_coro\n\u001b[1;32m 1483\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mawait\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_resp\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__aenter__\u001b[39m()\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages/aiohttp/client.py:770\u001b[0m, in \u001b[0;36mClientSession._request\u001b[0;34m(self, method, str_or_url, params, data, json, cookies, headers, skip_auto_headers, auth, allow_redirects, max_redirects, compress, chunked, expect100, raise_for_status, read_until_eof, proxy, proxy_auth, timeout, verify_ssl, fingerprint, ssl_context, ssl, server_hostname, proxy_headers, trace_request_ctx, read_bufsize, auto_decompress, max_line_size, max_field_size, middlewares)\u001b[0m\n\u001b[1;32m 767\u001b[0m handler \u001b[38;5;241m=\u001b[39m _connect_and_send_request\n\u001b[1;32m 769\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 770\u001b[0m resp \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mawait\u001b[39;00m handler(req)\n\u001b[1;32m 771\u001b[0m \u001b[38;5;66;03m# Client connector errors should not be retried\u001b[39;00m\n\u001b[1;32m 772\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m (\n\u001b[1;32m 773\u001b[0m ConnectionTimeoutError,\n\u001b[1;32m 774\u001b[0m ClientConnectorError,\n\u001b[1;32m 775\u001b[0m ClientConnectorCertificateError,\n\u001b[1;32m 776\u001b[0m ClientConnectorSSLError,\n\u001b[1;32m 777\u001b[0m ):\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages/aiohttp/client.py:725\u001b[0m, in \u001b[0;36mClientSession._request.._connect_and_send_request\u001b[0;34m(req)\u001b[0m\n\u001b[1;32m 723\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_connector \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 724\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 725\u001b[0m conn \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mawait\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_connector\u001b[38;5;241m.\u001b[39mconnect(\n\u001b[1;32m 726\u001b[0m req, traces\u001b[38;5;241m=\u001b[39mtraces, timeout\u001b[38;5;241m=\u001b[39mreal_timeout\n\u001b[1;32m 727\u001b[0m )\n\u001b[1;32m 728\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m asyncio\u001b[38;5;241m.\u001b[39mTimeoutError \u001b[38;5;28;01mas\u001b[39;00m exc:\n\u001b[1;32m 729\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m ConnectionTimeoutError(\n\u001b[1;32m 730\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mConnection timeout to host \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mreq\u001b[38;5;241m.\u001b[39murl\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 731\u001b[0m ) \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mexc\u001b[39;00m\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages/aiohttp/connector.py:622\u001b[0m, in \u001b[0;36mBaseConnector.connect\u001b[0;34m(self, req, traces, timeout)\u001b[0m\n\u001b[1;32m 620\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m trace \u001b[38;5;129;01min\u001b[39;00m traces:\n\u001b[1;32m 621\u001b[0m \u001b[38;5;28;01mawait\u001b[39;00m trace\u001b[38;5;241m.\u001b[39msend_connection_create_start()\n\u001b[0;32m--> 622\u001b[0m proto \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mawait\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_create_connection(req, traces, timeout)\n\u001b[1;32m 623\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m traces:\n\u001b[1;32m 624\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m trace \u001b[38;5;129;01min\u001b[39;00m traces:\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages/aiohttp/connector.py:1189\u001b[0m, in \u001b[0;36mTCPConnector._create_connection\u001b[0;34m(self, req, traces, timeout)\u001b[0m\n\u001b[1;32m 1187\u001b[0m _, proto \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mawait\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_create_proxy_connection(req, traces, timeout)\n\u001b[1;32m 1188\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1189\u001b[0m _, proto \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mawait\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_create_direct_connection(req, traces, timeout)\n\u001b[1;32m 1191\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m proto\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages/aiohttp/connector.py:1518\u001b[0m, in \u001b[0;36mTCPConnector._create_direct_connection\u001b[0;34m(self, req, traces, timeout, client_error)\u001b[0m\n\u001b[1;32m 1515\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m\n\u001b[1;32m 1516\u001b[0m \u001b[38;5;66;03m# in case of proxy it is not ClientProxyConnectionError\u001b[39;00m\n\u001b[1;32m 1517\u001b[0m \u001b[38;5;66;03m# it is problem of resolving proxy ip itself\u001b[39;00m\n\u001b[0;32m-> 1518\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m ClientConnectorDNSError(req\u001b[38;5;241m.\u001b[39mconnection_key, exc) \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mexc\u001b[39;00m\n\u001b[1;32m 1520\u001b[0m last_exc: Optional[\u001b[38;5;167;01mException\u001b[39;00m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 1521\u001b[0m addr_infos \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_convert_hosts_to_addr_infos(hosts)\n", + "\u001b[0;31mClientConnectorDNSError\u001b[0m: Cannot connect to host atlas-opendata.web.cern.ch:443 ssl:default [nodename nor servname provided, or not known]" + ] + } + ], + "source": [ + "import uproot\n", + "import pandas as pd\n", + "import numpy as np\n", + "import vector\n", + "import awkward as ak\n", + "\n", + "path = \"https://atlas-opendata.web.cern.ch/atlas-opendata/13TeV/GamGam/Data/\"\n", + "\n", + "samples_list = ['data15_periodD','data15_periodE','data15_periodF','data15_periodG','data15_periodH','data15_periodJ','data16_periodA','data16_periodB','data16_periodC','data16_periodD','data16_periodE','data16_periodF','data16_periodG','data16_periodK','data16_periodL']\n", + "\n", + "# Test with first sample to verify file structure\n", + "test_path = path + samples_list[0] + \".root\"\n", + "\n", + "# Inspect the file to find available trees\n", + "with uproot.open(test_path) as file:\n", + " print(\"Keys in ROOT file:\", file.keys())" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The number of entries in the tree are: 11371\n", + "The information stored in the tree is: ['num_events', 'sum_of_weights', 'sum_of_weights_squared', 'corrected_xsec', 'dsid', 'category', 'sig_ph', 'n_sig_ph', 'ScaleFactor_PILEUP', 'mcWeight', 'xsec', 'filteff', 'kfac', 'channelNumber', 'eventNumber', 'runNumber', 'trigP', 'trigDT', 'trigT', 'trigE', 'trigM', 'trigMET', 'ScaleFactor_BTAG', 'jet_n', 'jet_pt', 'jet_eta', 'jet_phi', 'jet_e', 'jet_btag_quantile', 'jet_jvt', 'largeRJet_n', 'largeRJet_pt', 'largeRJet_eta', 'largeRJet_phi', 'largeRJet_e', 'largeRJet_m', 'largeRJet_D2', 'ScaleFactor_ELE', 'ScaleFactor_MUON', 'scaleFactor_LepTRIGGER', 'lep_n', 'lep_type', 'lep_pt', 'lep_eta', 'lep_phi', 'lep_e', 'lep_charge', 'lep_ptvarcone30', 'lep_topoetcone20', 'lep_z0', 'lep_d0', 'lep_d0sig', 'lep_isTightID', 'lep_isMediumID', 'lep_isLooseID', 'lep_isTightIso', 'lep_isLooseIso', 'ScaleFactor_PHOTON', 'photon_n', 'photon_pt', 'photon_eta', 'photon_phi', 'photon_e', 'photon_ptcone20', 'photon_topoetcone40', 'photon_isLooseID', 'photon_isTightID', 'photon_isLooseIso', 'photon_isTightIso', 'ScaleFactor_TAU', 'ScaleFactor_TauTRIGGER', 'ScaleFactor_DiTauTRIGGER', 'tau_n', 'tau_pt', 'tau_eta', 'tau_phi', 'tau_e', 'tau_charge', 'tau_nTracks', 'tau_isTight', 'tau_RNNJetScore', 'tau_RNNEleScore', 'met', 'met_phi', 'met_mpx', 'met_mpy']\n" + ] + } + ], + "source": [ + "# Accessing the file from the online database (\":analysis\" opens the tree in a desired manner)\n", + "with uproot.open(test_path + \":analysis\") as t:\n", + " tree = t\n", + "\n", + "# The number of entries in the tree can be viewed\n", + "print(\"The number of entries in the tree are:\", tree.num_entries)\n", + "\n", + "# All the information stored in the tree can be viewed using the .keys() method.\n", + "print(\"The information stored in the tree is:\", tree.keys())" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[{photon_e: [90.1, 37.6, 12.6, 2.88]}, {...}, ..., {photon_e: [140, ..., 2.14]}]\n" + ] + } + ], + "source": [ + "print(tree[\"photon_e\"].arrays())\n", + "\n", + "variables = [\"photon_pt\",\"photon_eta\",\"photon_phi\",\"photon_e\",\n", + " \"photon_isTightID\",\"photon_ptcone20\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The reconstruction quality of the two photons: [True] [False]\n", + "Apply cut based on reconstruction quality requirements?[True]\n", + "The transverse momentum of the two photons: [84] [27.7]\n", + "Apply cut based on the transverse momentum requirements?[True]\n", + "The calorimeter isolation of the two photons: [0] [2.27]\n", + "Apply cut based on the calorimeter isolation requirements?[True]\n", + "The eta of the two photons: [-0.379] [0.823]\n", + "Apply cut based on the eta requirements?[False]\n", + "The invariant mass of the 2-photon state is: [114] GeV\n", + "The invariant mass based isolation of the two photons: [0.735] [0.242]\n", + "Apply cut based on the invariant mass based isolation requirements?[True]\n" + ] + } + ], + "source": [ + "# This selects the first entry of the tree\n", + "entry = tree.arrays(library=\"ak\")[:1]\n", + "\n", + "# Cut on the photon reconstruction quality\n", + "photon_reconstruction = entry['photon_isTightID']\n", + "# isTightID==True means a photon identified as being well reconstructed, only the events which have True for both photons are kept\n", + "photon_reconstruction_cut_bool = (photon_reconstruction[:, 0] == False) | (photon_reconstruction[:, 1]==False) # [:, i] selects the i-th lepton in each event\n", + "print(\"The reconstruction quality of the two photons:\", photon_reconstruction[:,0], photon_reconstruction[:,1])\n", + "print(f\"Apply cut based on reconstruction quality requirements?{photon_reconstruction_cut_bool}\")\n", + " \n", + "# Cut on the transverse momentum\n", + "photon_pt = entry['photon_pt']\n", + "# Only the events where the leading photon has transverse momentum (pt) > 50 GeV and the sub-leading photon has pt > 30 GeV are kept\n", + "# Since the two photons for each entry are ordered, the first photon is the leading one and the second one is the sub-leading one\n", + "photon_pt_cut_bool = (photon_pt[:,0] < 50) | (photon_pt[:,1] < 30)\n", + "print(\"The transverse momentum of the two photons:\", photon_pt[:,0], photon_pt[:,1])\n", + "print(f\"Apply cut based on the transverse momentum requirements?{photon_pt_cut_bool}\")\n", + "\n", + "# Cut on the calorimeter isolation\n", + "photon_ptcone20 = entry['photon_ptcone20']\n", + "# Only the events where the invidivual photon calorimeter isolation is less than 5.5% are kept\n", + "photon_caloiso_cut_bool = (((photon_ptcone20[:,0]/photon_pt[:,0]) > 0.055) | ((photon_ptcone20[:,1]/photon_pt[:,1]) > 0.055))\n", + "print(\"The calorimeter isolation of the two photons:\", (photon_ptcone20[:,0]/photon_pt[:,0]), (photon_ptcone20[:,1]/photon_pt[:,1]))\n", + "print(f\"Apply cut based on the calorimeter isolation requirements?{photon_caloiso_cut_bool}\")\n", + "\n", + "# Cut on the pseudorapidity in the barrel/end-cap transition region\n", + "photon_eta = entry['photon_eta']\n", + "# Only the events where modulus of photon_eta is outside the range 1.37 to 1.52 are kept\n", + "condition_0 = (np.abs(photon_eta[:, 0]) < 1.52) & (np.abs(photon_eta[:, 0]) > 1.37)\n", + "condition_1 = (np.abs(photon_eta[:, 1]) < 1.52) & (np.abs(photon_eta[:, 1]) > 1.37)\n", + "photon_eta_cut_bool = (condition_0 | condition_1)\n", + "print(\"The eta of the two photons:\", photon_eta[:,0], photon_eta[:,1])\n", + "print(f\"Apply cut based on the eta requirements?{photon_eta_cut_bool}\")\n", + "\n", + "# This calculates the invariant mass of the 2-photon state\n", + "p4 = vector.zip({\"pt\": entry['photon_pt'], \"eta\": entry['photon_eta'], \"phi\": entry['photon_phi'], \"e\": entry['photon_e']})\n", + "invariant_mass = (p4[:, 0] + p4[:, 1]).M # .M calculates the invariant mass\n", + "print(f\"The invariant mass of the 2-photon state is: {invariant_mass} GeV\")\n", + "\n", + "# Cut on the invariant mass based isolation\n", + "# Only the events where the invididual photon invariant mass based isolation is larger than 35% are kept\n", + "photon_massiso_cut_bool = ((photon_pt[:,0]/invariant_mass) < 0.35) | ((photon_pt[:,1]/invariant_mass) < 0.35)\n", + "print(\"The invariant mass based isolation of the two photons:\", (photon_pt[:,0]/invariant_mass), (photon_pt[:,1]/invariant_mass))\n", + "print(f\"Apply cut based on the invariant mass based isolation requirements?{photon_massiso_cut_bool}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "# Cut on the photon reconstruction quality\n", + "def cut_photon_reconstruction(photon_isTightID):\n", + " # Only the events which have True for both photons are kept\n", + " return (photon_isTightID[:,0]==False) | (photon_isTightID[:,1]==False) \n", + "\n", + "# Cut on the transverse momentum\n", + "def cut_photon_pt(photon_pt):\n", + "# Only the events where photon_pt[0] > 50 GeV and photon_pt[1] > 30 GeV are kept\n", + " return (photon_pt[:,0] < 50) | (photon_pt[:,1] < 30)\n", + "\n", + "# Cut on the energy isolation\n", + "def cut_isolation_pt(photon_ptcone20, photon_pt):\n", + "# Only the events where the calorimeter isolation is less than 5.5% are kept\n", + " return ((photon_ptcone20[:,0]/photon_pt[:,0]) > 0.055) | ((photon_ptcone20[:,1]/photon_pt[:,1]) > 0.055)\n", + "\n", + "# Cut on the pseudorapidity in barrel/end-cap transition region\n", + "def cut_photon_eta_transition(photon_eta):\n", + "# Only the events where modulus of photon_eta is outside the range 1.37 to 1.52 are kept\n", + " condition_0 = (np.abs(photon_eta[:, 0]) < 1.52) & (np.abs(photon_eta[:, 0]) > 1.37)\n", + " condition_1 = (np.abs(photon_eta[:, 1]) < 1.52) & (np.abs(photon_eta[:, 1]) > 1.37)\n", + " return condition_0 | condition_1\n", + "\n", + "# This function calculates the invariant mass of the 2-photon state\n", + "def calc_mass(photon_pt, photon_eta, photon_phi, photon_e):\n", + " p4 = vector.zip({\"pt\": photon_pt, \"eta\": photon_eta, \"phi\": photon_phi, \"e\": photon_e})\n", + " invariant_mass = (p4[:, 0] + p4[:, 1]).M # .M calculates the invariant mass\n", + " return invariant_mass\n", + "\n", + "# Cut on null diphoton invariant mass\n", + "def cut_mass(invariant_mass):\n", + " return (invariant_mass == 0)\n", + "\n", + "# Cut on diphoton invariant mass based isolation \n", + "# Only the events where the invididual photon invariant mass based isolation is larger than 35% are kept\n", + "def cut_iso_mass(photon_pt, invariant_mass):\n", + " return ((photon_pt[:,0]/invariant_mass) < 0.35) | ((photon_pt[:,1]/invariant_mass) < 0.35)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Processing data15_periodD...\n", + " data15_periodD: 131 events after cuts\n", + "Processing data15_periodE...\n", + " data15_periodE: 1198 events after cuts\n", + "Processing data15_periodF...\n", + " data15_periodF: 899 events after cuts\n", + "Processing data15_periodG...\n", + " data15_periodG: 2088 events after cuts\n", + "Processing data15_periodH...\n", + " data15_periodH: 743 events after cuts\n", + "Processing data15_periodJ...\n", + " data15_periodJ: 4009 events after cuts\n", + "Processing data16_periodA...\n", + " data16_periodA: 1440 events after cuts\n", + "Processing data16_periodB...\n", + " data16_periodB: 3120 events after cuts\n", + "Processing data16_periodC...\n", + " data16_periodC: 5142 events after cuts\n", + "Processing data16_periodD...\n", + " data16_periodD: 7986 events after cuts\n", + "Processing data16_periodE...\n", + " data16_periodE: 2457 events after cuts\n", + "Processing data16_periodF...\n", + " data16_periodF: 5527 events after cuts\n", + "Processing data16_periodG...\n", + " data16_periodG: 6601 events after cuts\n", + "Processing data16_periodK...\n", + " data16_periodK: 3722 events after cuts\n", + "Processing data16_periodL...\n", + " data16_periodL: 10340 events after cuts\n", + "\n", + "Total events across all samples: 55403\n" + ] + } + ], + "source": [ + "# Define empty list to hold all data for all samples\n", + "all_samples_data = []\n", + "\n", + "# Process each sample in the samples_list\n", + "for sample_name in samples_list:\n", + " print(f\"Processing {sample_name}...\")\n", + " \n", + " # Construct the file path for this sample\n", + " sample_path = path + sample_name + \".root\"\n", + " \n", + " # Define empty list to hold all data for this sample\n", + " sample_data = []\n", + " \n", + " try:\n", + " # Perform the cuts for each data entry in the tree\n", + " with uproot.open(sample_path + \":analysis\") as tree:\n", + " for data in tree.iterate(variables, library=\"ak\"):\n", + " \n", + " # data[~boolean] is used to remove entries from the data set\n", + " photon_isTightID = data['photon_isTightID']\n", + " data = data[~cut_photon_reconstruction(photon_isTightID)]\n", + "\n", + " photon_pt = data['photon_pt']\n", + " data = data[~cut_photon_pt(photon_pt)]\n", + "\n", + " data = data[~cut_isolation_pt(data['photon_ptcone20'],data['photon_pt'])]\n", + "\n", + " photon_eta = data['photon_eta']\n", + " data = data[~cut_photon_eta_transition(photon_eta)]\n", + " \n", + " data['mass'] = calc_mass(data['photon_pt'], data['photon_eta'], data['photon_phi'], data['photon_e'])\n", + " \n", + " data = data[~cut_mass(data['mass'])]\n", + " \n", + " data = data[~cut_iso_mass(data['photon_pt'], data['mass'])]\n", + " \n", + " # Append data to the sample data list\n", + " sample_data.append(data)\n", + " \n", + " # turn sample_data back into an awkward array\n", + " if sample_data:\n", + " processed_sample = ak.concatenate(sample_data)\n", + " # Add sample identifier\n", + " processed_sample['sample'] = sample_name\n", + " all_samples_data.append(processed_sample)\n", + " print(f\" {sample_name}: {len(processed_sample)} events after cuts\")\n", + " else:\n", + " print(f\" {sample_name}: No events passed cuts\")\n", + " \n", + " except Exception as e:\n", + " print(f\" Error processing {sample_name}: {e}\")\n", + " continue\n", + "\n", + "# Combine all samples into one dataset\n", + "if all_samples_data:\n", + " all_data = ak.concatenate(all_samples_data)\n", + " print(f\"\\nTotal events across all samples: {len(all_data)}\")\n", + "else:\n", + " print(\"\\nNo data was successfully processed from any sample.\")\n", + " all_data = None" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " photon_pt photon_eta photon_phi photon_e \\\n", + "entry subentry \n", + "0 0 83.005539 1.693584 -0.613051 233.361725 \n", + " 1 73.862511 1.159767 0.796867 129.360947 \n", + "1 0 129.382782 0.716575 2.482590 164.046448 \n", + " 1 104.054314 0.481084 -0.747131 116.329597 \n", + " 2 2.080437 -0.029949 -2.290774 2.081371 \n", + "\n", + " photon_isTightID photon_ptcone20 mass sample \n", + "entry subentry \n", + "0 0 True 0.0 109.939896 data15_periodD \n", + " 1 True 0.0 109.939896 data15_periodD \n", + "1 0 True 0.0 233.445709 data15_periodD \n", + " 1 True 0.0 233.445709 data15_periodD \n", + " 2 False 0.0 233.445709 data15_periodD \n", + "Saved as processed_photon_data_all_periods.csv\n", + "Saved as processed_photon_data_all_periods.npz in baler-compatible format\n", + "\n", + "Processed data summary:\n", + "Number of events after cuts: 55403\n", + "Data shape for baler: (55403, 7)\n", + "Features included: ['photon_pt', 'photon_eta', 'photon_phi', 'photon_e', 'photon_isTightID', 'photon_ptcone20', 'mass']\n", + "\n", + "Breakdown by sample:\n", + " data15_periodD: 452 events\n", + " data15_periodE: 3893 events\n", + " data15_periodF: 2931 events\n", + " data15_periodG: 7032 events\n", + " data15_periodH: 2505 events\n", + " data15_periodJ: 13168 events\n", + " data16_periodA: 5163 events\n", + " data16_periodB: 11999 events\n", + " data16_periodC: 19312 events\n", + " data16_periodD: 31454 events\n", + " data16_periodE: 9416 events\n", + " data16_periodF: 22912 events\n", + " data16_periodG: 27496 events\n", + " data16_periodK: 15772 events\n", + " data16_periodL: 44897 events\n" + ] + } + ], + "source": [ + "# Convert processed data (with cuts applied) to dataframe\n", + "if all_data is not None:\n", + " processed_df = ak.to_dataframe(all_data)\n", + " print(processed_df.head())\n", + " \n", + " # # Save processed data to CSV\n", + " # processed_df.to_csv(\"processed_photon_data_all_periods.csv\", index=False)\n", + " # print(\"Saved as processed_photon_data_all_periods.csv\")\n", + " \n", + " # Convert to the format baler expects using the pandas dataframe\n", + " # Extract the main features (excluding sample identifier for now)\n", + " feature_columns = ['photon_pt', 'photon_eta', 'photon_phi', 'photon_e', \n", + " 'photon_isTightID', 'photon_ptcone20', 'mass']\n", + " \n", + " # Use the pandas dataframe which is already properly structured\n", + " # Group by entry (event) and take the first photon's data for each event\n", + " event_data = []\n", + " \n", + " # Get unique event indices\n", + " unique_events = processed_df.index.get_level_values('entry').unique()\n", + " \n", + " for event_idx in unique_events:\n", + " event_df = processed_df.loc[event_idx]\n", + " \n", + " # If it's a single row (Series), convert to DataFrame\n", + " if isinstance(event_df, pd.Series):\n", + " event_df = event_df.to_frame().T\n", + " \n", + " # Take the first photon's data for each feature\n", + " event_row = []\n", + " for col in feature_columns:\n", + " if col in event_df.columns:\n", + " # Get the first value for this feature in this event\n", + " first_value = event_df[col].iloc[0]\n", + " event_row.append(float(first_value))\n", + " else:\n", + " event_row.append(0.0)\n", + " \n", + " event_data.append(event_row)\n", + " \n", + " # Convert to numpy array\n", + " data_array = np.array(event_data)\n", + " \n", + " # Create column names\n", + " column_names = np.array(feature_columns)\n", + " \n", + " # Save in baler-compatible format\n", + " np.savez('original.npz', \n", + " data=data_array,\n", + " names=column_names)\n", + " print(\"Saved as original.npz in baler-compatible format\")\n", + " \n", + " # Print summary of processed data\n", + " print(f\"\\nProcessed data summary:\")\n", + " print(f\"Number of events after cuts: {len(unique_events)}\")\n", + " print(f\"Data shape for baler: {data_array.shape}\")\n", + " print(f\"Features included: {list(column_names)}\")\n", + " \n", + " # Show breakdown by sample\n", + " print(f\"\\nBreakdown by sample:\")\n", + " sample_counts = processed_df.groupby('sample').size()\n", + " for sample, count in sample_counts.items():\n", + " print(f\" {sample}: {count} events\")\n", + "else:\n", + " print(\"No data to save.\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'all_data' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[3], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m# Generate scale files for normalization (similar to generate_data.py)\u001b[39;00m\n\u001b[0;32m----> 2\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[43mall_data\u001b[49m \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mdata_array\u001b[39m\u001b[38;5;124m'\u001b[39m \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mlocals\u001b[39m():\n\u001b[1;32m 3\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124mGenerating scale files for normalization...\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 5\u001b[0m \u001b[38;5;66;03m# Define normalization functions (same as in generate_data.py)\u001b[39;00m\n", + "\u001b[0;31mNameError\u001b[0m: name 'all_data' is not defined" + ] + } + ], + "source": [ + "# Generate scale files for normalization (similar to generate_data.py)\n", + "if all_data is not None and 'data_array' in locals():\n", + " print(\"\\nGenerating scale files for normalization...\")\n", + " \n", + " # Define normalization functions (same as in generate_data.py)\n", + " def minmax(arr):\n", + " return (arr-min(arr))/(max(arr)-min(arr)), (np.astype(min(arr), np.float32), np.astype(max(arr), np.float32))\n", + " \n", + " def log_minmax(arr):\n", + " return ((np.log10(arr)-np.log10(min(arr)))/(np.log10(max(arr))-np.log10(min(arr))),\n", + " (np.astype(np.log10(min(arr)), np.float32),\n", + " np.astype(np.log10(max(arr)), np.float32)))\n", + " \n", + " # Apply normalization to each feature\n", + " # For photon_pt, photon_e, and mass: use log_minmax (logarithmic scaling)\n", + " # For photon_eta, photon_phi, photon_isTightID, photon_ptcone20: use minmax (linear scaling)\n", + " \n", + " # Initialize normalized data array\n", + " normalized_data = np.empty_like(data_array, dtype=np.float32)\n", + " scales = []\n", + " \n", + " # Normalize each feature\n", + " for i, col_name in enumerate(feature_columns):\n", + " if col_name in ['photon_pt', 'photon_e', 'mass']:\n", + " # Use logarithmic scaling for energy/momentum/mass quantities\n", + " normalized_feature, scale = log_minmax(data_array[:, i])\n", + " normalized_data[:, i] = normalized_feature\n", + " scales.append(scale)\n", + " print(f\" {col_name}: log_minmax scaling applied\")\n", + " else:\n", + " # Use linear scaling for angular and categorical quantities\n", + " normalized_feature, scale = minmax(data_array[:, i])\n", + " normalized_data[:, i] = normalized_feature\n", + " scales.append(scale)\n", + " print(f\" {col_name}: minmax scaling applied\")\n", + " \n", + " # Convert scales to numpy array format\n", + " scales_array = np.array(scales, dtype=np.float32)\n", + " \n", + " # Save normalized data and scales\n", + " np.savez('normalized.npz', \n", + " data=normalized_data,\n", + " names=column_names)\n", + " print(\"Saved normalized data as normalized.npz\")\n", + " \n", + " np.savez('scales.npz', \n", + " data=scales_array,\n", + " names=column_names)\n", + " print(\"Saved scales as scales.npz\")\n", + " \n", + " print(f\"\\nNormalization complete!\")\n", + " print(f\"Original data shape: {data_array.shape}\")\n", + " print(f\"Normalized data shape: {normalized_data.shape}\")\n", + " print(f\"Scales shape: {scales_array.shape}\")\n", + " print(f\"Features and their scaling methods:\")\n", + " for i, col_name in enumerate(feature_columns):\n", + " scaling_type = \"log_minmax\" if col_name in ['photon_pt', 'photon_e', 'mass'] else \"minmax\"\n", + " print(f\" {col_name}: {scaling_type}\")\n", + "else:\n", + " print(\"No data available for normalization.\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "baler-NkYVSVSD-py3.9", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.21" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/workspaces/ATLAS_Workspace/ATLAS_Project/config/Hyy_data_preprocessing_two_photons.ipynb b/workspaces/ATLAS_Workspace/ATLAS_Project/config/Hyy_data_preprocessing_two_photons.ipynb new file mode 100644 index 00000000..0e4ca9d2 --- /dev/null +++ b/workspaces/ATLAS_Workspace/ATLAS_Project/config/Hyy_data_preprocessing_two_photons.ipynb @@ -0,0 +1,540 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: uproot in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (5.6.3)\n", + "Requirement already satisfied: awkward>=2.4.6 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (2.8.4)\n", + "Requirement already satisfied: cramjam>=2.5.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (2.10.0)\n", + "Requirement already satisfied: fsspec in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (2024.2.0)\n", + "Requirement already satisfied: numpy in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (1.23.5)\n", + "Requirement already satisfied: packaging in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (23.2)\n", + "Requirement already satisfied: typing-extensions>=4.1.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (4.10.0)\n", + "Requirement already satisfied: xxhash in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (3.5.0)\n", + "Requirement already satisfied: awkward-cpp==46 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.4.6->uproot) (46)\n", + "Requirement already satisfied: importlib-metadata>=4.13.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.4.6->uproot) (7.0.1)\n", + "Requirement already satisfied: zipp>=0.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from importlib-metadata>=4.13.0->awkward>=2.4.6->uproot) (3.17.0)\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.1.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", + "Requirement already satisfied: pandas in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (2.3.1)\n", + "Requirement already satisfied: numpy>=1.22.4 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas) (1.23.5)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas) (2.9.0.post0)\n", + "Requirement already satisfied: pytz>=2020.1 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas) (2025.2)\n", + "Requirement already satisfied: tzdata>=2022.7 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas) (2025.2)\n", + "Requirement already satisfied: six>=1.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from python-dateutil>=2.8.2->pandas) (1.16.0)\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.1.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", + "Requirement already satisfied: requests in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (2.32.4)\n", + "Requirement already satisfied: aiohttp in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (3.12.13)\n", + "Requirement already satisfied: charset_normalizer<4,>=2 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from requests) (3.4.2)\n", + "Requirement already satisfied: idna<4,>=2.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from requests) (3.10)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from requests) (2.5.0)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from requests) (2025.6.15)\n", + "Requirement already satisfied: aiohappyeyeballs>=2.5.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (2.6.1)\n", + "Requirement already satisfied: aiosignal>=1.1.2 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (1.3.2)\n", + "Requirement already satisfied: async-timeout<6.0,>=4.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (5.0.1)\n", + "Requirement already satisfied: attrs>=17.3.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (25.3.0)\n", + "Requirement already satisfied: frozenlist>=1.1.1 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (1.7.0)\n", + "Requirement already satisfied: multidict<7.0,>=4.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (6.5.0)\n", + "Requirement already satisfied: propcache>=0.2.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (0.3.2)\n", + "Requirement already satisfied: yarl<2.0,>=1.17.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (1.20.1)\n", + "Requirement already satisfied: typing-extensions>=4.1.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from multidict<7.0,>=4.5->aiohttp) (4.10.0)\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.1.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", + "Requirement already satisfied: awkward-pandas in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (2023.8.0)\n", + "Requirement already satisfied: awkward>=2.0.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward-pandas) (2.8.4)\n", + "Requirement already satisfied: pandas>=1.2 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward-pandas) (2.3.1)\n", + "Requirement already satisfied: awkward-cpp==46 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (46)\n", + "Requirement already satisfied: fsspec>=2022.11.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (2024.2.0)\n", + "Requirement already satisfied: importlib-metadata>=4.13.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (7.0.1)\n", + "Requirement already satisfied: numpy>=1.18.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (1.23.5)\n", + "Requirement already satisfied: packaging in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (23.2)\n", + "Requirement already satisfied: typing-extensions>=4.1.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (4.10.0)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas>=1.2->awkward-pandas) (2.9.0.post0)\n", + "Requirement already satisfied: pytz>=2020.1 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas>=1.2->awkward-pandas) (2025.2)\n", + "Requirement already satisfied: tzdata>=2022.7 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas>=1.2->awkward-pandas) (2025.2)\n", + "Requirement already satisfied: zipp>=0.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from importlib-metadata>=4.13.0->awkward>=2.0.0->awkward-pandas) (3.17.0)\n", + "Requirement already satisfied: six>=1.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from python-dateutil>=2.8.2->pandas>=1.2->awkward-pandas) (1.16.0)\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.1.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", + "Requirement already satisfied: vector in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (1.6.2)\n", + "Requirement already satisfied: numpy>=1.13.3 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from vector) (1.23.5)\n", + "Requirement already satisfied: packaging>=19 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from vector) (23.2)\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.1.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n" + ] + } + ], + "source": [ + "import sys\n", + "!{sys.executable} -m pip install --upgrade uproot\n", + "!{sys.executable} -m pip install --upgrade pandas\n", + "!{sys.executable} -m pip install requests aiohttp\n", + "!{sys.executable} -m pip install awkward-pandas\n", + "!{sys.executable} -m pip install vector " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Keys in ROOT file: ['analysis;1']\n" + ] + } + ], + "source": [ + "import uproot\n", + "import pandas as pd\n", + "import numpy as np\n", + "import vector\n", + "import awkward as ak\n", + "\n", + "path = \"https://atlas-opendata.web.cern.ch/atlas-opendata/13TeV/GamGam/Data/\"\n", + "\n", + "samples_list = ['data15_periodD','data15_periodE','data15_periodF','data15_periodG','data15_periodH','data15_periodJ','data16_periodA','data16_periodB','data16_periodC','data16_periodD','data16_periodE','data16_periodF','data16_periodG','data16_periodK','data16_periodL']\n", + "\n", + "# Test with first sample to verify file structure\n", + "test_path = path + samples_list[0] + \".root\"\n", + "\n", + "# Inspect the file to find available trees\n", + "with uproot.open(test_path) as file:\n", + " print(\"Keys in ROOT file:\", file.keys())" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The number of entries in the tree are: 11371\n", + "The information stored in the tree is: ['num_events', 'sum_of_weights', 'sum_of_weights_squared', 'corrected_xsec', 'dsid', 'category', 'sig_ph', 'n_sig_ph', 'ScaleFactor_PILEUP', 'mcWeight', 'xsec', 'filteff', 'kfac', 'channelNumber', 'eventNumber', 'runNumber', 'trigP', 'trigDT', 'trigT', 'trigE', 'trigM', 'trigMET', 'ScaleFactor_BTAG', 'jet_n', 'jet_pt', 'jet_eta', 'jet_phi', 'jet_e', 'jet_btag_quantile', 'jet_jvt', 'largeRJet_n', 'largeRJet_pt', 'largeRJet_eta', 'largeRJet_phi', 'largeRJet_e', 'largeRJet_m', 'largeRJet_D2', 'ScaleFactor_ELE', 'ScaleFactor_MUON', 'scaleFactor_LepTRIGGER', 'lep_n', 'lep_type', 'lep_pt', 'lep_eta', 'lep_phi', 'lep_e', 'lep_charge', 'lep_ptvarcone30', 'lep_topoetcone20', 'lep_z0', 'lep_d0', 'lep_d0sig', 'lep_isTightID', 'lep_isMediumID', 'lep_isLooseID', 'lep_isTightIso', 'lep_isLooseIso', 'ScaleFactor_PHOTON', 'photon_n', 'photon_pt', 'photon_eta', 'photon_phi', 'photon_e', 'photon_ptcone20', 'photon_topoetcone40', 'photon_isLooseID', 'photon_isTightID', 'photon_isLooseIso', 'photon_isTightIso', 'ScaleFactor_TAU', 'ScaleFactor_TauTRIGGER', 'ScaleFactor_DiTauTRIGGER', 'tau_n', 'tau_pt', 'tau_eta', 'tau_phi', 'tau_e', 'tau_charge', 'tau_nTracks', 'tau_isTight', 'tau_RNNJetScore', 'tau_RNNEleScore', 'met', 'met_phi', 'met_mpx', 'met_mpy']\n" + ] + } + ], + "source": [ + "# Accessing the file from the online database (\":analysis\" opens the tree in a desired manner)\n", + "with uproot.open(test_path + \":analysis\") as t:\n", + " tree = t\n", + "\n", + "# The number of entries in the tree can be viewed\n", + "print(\"The number of entries in the tree are:\", tree.num_entries)\n", + "\n", + "# All the information stored in the tree can be viewed using the .keys() method.\n", + "print(\"The information stored in the tree is:\", tree.keys())" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[{photon_e: [90.1, 37.6, 12.6, 2.88]}, {...}, ..., {photon_e: [140, ..., 2.14]}]\n" + ] + } + ], + "source": [ + "print(tree[\"photon_e\"].arrays())\n", + "\n", + "variables = [\"photon_pt\",\"photon_eta\",\"photon_phi\",\"photon_e\",\n", + " \"photon_isTightID\",\"photon_ptcone20\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The reconstruction quality of the two photons: [True] [False]\n", + "Apply cut based on reconstruction quality requirements?[True]\n", + "The transverse momentum of the two photons: [84] [27.7]\n", + "Apply cut based on the transverse momentum requirements?[True]\n", + "The calorimeter isolation of the two photons: [0] [2.27]\n", + "Apply cut based on the calorimeter isolation requirements?[True]\n", + "The eta of the two photons: [-0.379] [0.823]\n", + "Apply cut based on the eta requirements?[False]\n", + "The invariant mass of the 2-photon state is: [114] GeV\n", + "The invariant mass based isolation of the two photons: [0.735] [0.242]\n", + "Apply cut based on the invariant mass based isolation requirements?[True]\n" + ] + } + ], + "source": [ + "# This selects the first entry of the tree\n", + "entry = tree.arrays(library=\"ak\")[:1]\n", + "\n", + "# Cut on the photon reconstruction quality\n", + "photon_reconstruction = entry['photon_isTightID']\n", + "# isTightID==True means a photon identified as being well reconstructed, only the events which have True for both photons are kept\n", + "photon_reconstruction_cut_bool = (photon_reconstruction[:, 0] == False) | (photon_reconstruction[:, 1]==False) # [:, i] selects the i-th lepton in each event\n", + "print(\"The reconstruction quality of the two photons:\", photon_reconstruction[:,0], photon_reconstruction[:,1])\n", + "print(f\"Apply cut based on reconstruction quality requirements?{photon_reconstruction_cut_bool}\")\n", + " \n", + "# Cut on the transverse momentum\n", + "photon_pt = entry['photon_pt']\n", + "# Only the events where the leading photon has transverse momentum (pt) > 50 GeV and the sub-leading photon has pt > 30 GeV are kept\n", + "# Since the two photons for each entry are ordered, the first photon is the leading one and the second one is the sub-leading one\n", + "photon_pt_cut_bool = (photon_pt[:,0] < 50) | (photon_pt[:,1] < 30)\n", + "print(\"The transverse momentum of the two photons:\", photon_pt[:,0], photon_pt[:,1])\n", + "print(f\"Apply cut based on the transverse momentum requirements?{photon_pt_cut_bool}\")\n", + "\n", + "# Cut on the calorimeter isolation\n", + "photon_ptcone20 = entry['photon_ptcone20']\n", + "# Only the events where the invidivual photon calorimeter isolation is less than 5.5% are kept\n", + "photon_caloiso_cut_bool = (((photon_ptcone20[:,0]/photon_pt[:,0]) > 0.055) | ((photon_ptcone20[:,1]/photon_pt[:,1]) > 0.055))\n", + "print(\"The calorimeter isolation of the two photons:\", (photon_ptcone20[:,0]/photon_pt[:,0]), (photon_ptcone20[:,1]/photon_pt[:,1]))\n", + "print(f\"Apply cut based on the calorimeter isolation requirements?{photon_caloiso_cut_bool}\")\n", + "\n", + "# Cut on the pseudorapidity in the barrel/end-cap transition region\n", + "photon_eta = entry['photon_eta']\n", + "# Only the events where modulus of photon_eta is outside the range 1.37 to 1.52 are kept\n", + "condition_0 = (np.abs(photon_eta[:, 0]) < 1.52) & (np.abs(photon_eta[:, 0]) > 1.37)\n", + "condition_1 = (np.abs(photon_eta[:, 1]) < 1.52) & (np.abs(photon_eta[:, 1]) > 1.37)\n", + "photon_eta_cut_bool = (condition_0 | condition_1)\n", + "print(\"The eta of the two photons:\", photon_eta[:,0], photon_eta[:,1])\n", + "print(f\"Apply cut based on the eta requirements?{photon_eta_cut_bool}\")\n", + "\n", + "# This calculates the invariant mass of the 2-photon state\n", + "p4 = vector.zip({\"pt\": entry['photon_pt'], \"eta\": entry['photon_eta'], \"phi\": entry['photon_phi'], \"e\": entry['photon_e']})\n", + "invariant_mass = (p4[:, 0] + p4[:, 1]).M # .M calculates the invariant mass\n", + "print(f\"The invariant mass of the 2-photon state is: {invariant_mass} GeV\")\n", + "\n", + "# Cut on the invariant mass based isolation\n", + "# Only the events where the invididual photon invariant mass based isolation is larger than 35% are kept\n", + "photon_massiso_cut_bool = ((photon_pt[:,0]/invariant_mass) < 0.35) | ((photon_pt[:,1]/invariant_mass) < 0.35)\n", + "print(\"The invariant mass based isolation of the two photons:\", (photon_pt[:,0]/invariant_mass), (photon_pt[:,1]/invariant_mass))\n", + "print(f\"Apply cut based on the invariant mass based isolation requirements?{photon_massiso_cut_bool}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "# Cut on the photon reconstruction quality\n", + "def cut_photon_reconstruction(photon_isTightID):\n", + " # Only the events which have True for both photons are kept\n", + " return (photon_isTightID[:,0]==False) | (photon_isTightID[:,1]==False) \n", + "\n", + "# Cut on the transverse momentum\n", + "def cut_photon_pt(photon_pt):\n", + "# Only the events where photon_pt[0] > 50 GeV and photon_pt[1] > 30 GeV are kept\n", + " return (photon_pt[:,0] < 50) | (photon_pt[:,1] < 30)\n", + "\n", + "# Cut on the energy isolation\n", + "def cut_isolation_pt(photon_ptcone20, photon_pt):\n", + "# Only the events where the calorimeter isolation is less than 5.5% are kept\n", + " return ((photon_ptcone20[:,0]/photon_pt[:,0]) > 0.055) | ((photon_ptcone20[:,1]/photon_pt[:,1]) > 0.055)\n", + "\n", + "# Cut on the pseudorapidity in barrel/end-cap transition region\n", + "def cut_photon_eta_transition(photon_eta):\n", + "# Only the events where modulus of photon_eta is outside the range 1.37 to 1.52 are kept\n", + " condition_0 = (np.abs(photon_eta[:, 0]) < 1.52) & (np.abs(photon_eta[:, 0]) > 1.37)\n", + " condition_1 = (np.abs(photon_eta[:, 1]) < 1.52) & (np.abs(photon_eta[:, 1]) > 1.37)\n", + " return condition_0 | condition_1\n", + "\n", + "# This function calculates the invariant mass of the 2-photon state\n", + "def calc_mass(photon_pt, photon_eta, photon_phi, photon_e):\n", + " p4 = vector.zip({\"pt\": photon_pt, \"eta\": photon_eta, \"phi\": photon_phi, \"e\": photon_e})\n", + " invariant_mass = (p4[:, 0] + p4[:, 1]).M # .M calculates the invariant mass\n", + " return invariant_mass\n", + "\n", + "# Cut on null diphoton invariant mass\n", + "def cut_mass(invariant_mass):\n", + " return (invariant_mass == 0)\n", + "\n", + "# Cut on diphoton invariant mass based isolation \n", + "# Only the events where the invididual photon invariant mass based isolation is larger than 35% are kept\n", + "def cut_iso_mass(photon_pt, invariant_mass):\n", + " return ((photon_pt[:,0]/invariant_mass) < 0.35) | ((photon_pt[:,1]/invariant_mass) < 0.35)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Processing data15_periodD...\n", + " data15_periodD: 131 events after cuts\n", + "Processing data15_periodE...\n", + " data15_periodE: 1198 events after cuts\n", + "Processing data15_periodF...\n", + " data15_periodF: 899 events after cuts\n", + "Processing data15_periodG...\n", + " data15_periodG: 2088 events after cuts\n", + "Processing data15_periodH...\n", + " data15_periodH: 743 events after cuts\n", + "Processing data15_periodJ...\n", + " data15_periodJ: 4009 events after cuts\n", + "Processing data16_periodA...\n", + " data16_periodA: 1440 events after cuts\n", + "Processing data16_periodB...\n", + " data16_periodB: 3120 events after cuts\n", + "Processing data16_periodC...\n", + " data16_periodC: 5142 events after cuts\n", + "Processing data16_periodD...\n", + " data16_periodD: 7986 events after cuts\n", + "Processing data16_periodE...\n", + " data16_periodE: 2457 events after cuts\n", + "Processing data16_periodF...\n", + " data16_periodF: 5527 events after cuts\n", + "Processing data16_periodG...\n", + " data16_periodG: 6601 events after cuts\n", + "Processing data16_periodK...\n", + " data16_periodK: 3722 events after cuts\n", + "Processing data16_periodL...\n", + " data16_periodL: 10340 events after cuts\n", + "\n", + "Total events across all samples: 55403\n" + ] + } + ], + "source": [ + "# Define empty list to hold all data for all samples\n", + "all_samples_data = []\n", + "\n", + "# Process each sample in the samples_list\n", + "for sample_name in samples_list:\n", + " print(f\"Processing {sample_name}...\")\n", + " \n", + " # Construct the file path for this sample\n", + " sample_path = path + sample_name + \".root\"\n", + " \n", + " # Define empty list to hold all data for this sample\n", + " sample_data = []\n", + " \n", + " try:\n", + " # Perform the cuts for each data entry in the tree\n", + " with uproot.open(sample_path + \":analysis\") as tree:\n", + " for data in tree.iterate(variables, library=\"ak\"):\n", + " \n", + " # data[~boolean] is used to remove entries from the data set\n", + " photon_isTightID = data['photon_isTightID']\n", + " data = data[~cut_photon_reconstruction(photon_isTightID)]\n", + "\n", + " photon_pt = data['photon_pt']\n", + " data = data[~cut_photon_pt(photon_pt)]\n", + "\n", + " data = data[~cut_isolation_pt(data['photon_ptcone20'],data['photon_pt'])]\n", + "\n", + " photon_eta = data['photon_eta']\n", + " data = data[~cut_photon_eta_transition(photon_eta)]\n", + " \n", + " data['mass'] = calc_mass(data['photon_pt'], data['photon_eta'], data['photon_phi'], data['photon_e'])\n", + " \n", + " data = data[~cut_mass(data['mass'])]\n", + " \n", + " data = data[~cut_iso_mass(data['photon_pt'], data['mass'])]\n", + " \n", + " # Append data to the sample data list\n", + " sample_data.append(data)\n", + " \n", + " # turn sample_data back into an awkward array\n", + " if sample_data:\n", + " processed_sample = ak.concatenate(sample_data)\n", + " # Add sample identifier\n", + " processed_sample['sample'] = sample_name\n", + " all_samples_data.append(processed_sample)\n", + " print(f\" {sample_name}: {len(processed_sample)} events after cuts\")\n", + " else:\n", + " print(f\" {sample_name}: No events passed cuts\")\n", + " \n", + " except Exception as e:\n", + " print(f\" Error processing {sample_name}: {e}\")\n", + " continue\n", + "\n", + "# Combine all samples into one dataset\n", + "if all_samples_data:\n", + " all_data = ak.concatenate(all_samples_data)\n", + " print(f\"\\nTotal events across all samples: {len(all_data)}\")\n", + "else:\n", + " print(\"\\nNo data was successfully processed from any sample.\")\n", + " all_data = None" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " photon_pt photon_eta photon_phi photon_e \\\n", + "entry subentry \n", + "0 0 83.005539 1.693584 -0.613051 233.361725 \n", + " 1 73.862511 1.159767 0.796867 129.360947 \n", + "1 0 129.382782 0.716575 2.482590 164.046448 \n", + " 1 104.054314 0.481084 -0.747131 116.329597 \n", + " 2 2.080437 -0.029949 -2.290774 2.081371 \n", + "\n", + " photon_isTightID photon_ptcone20 mass sample \n", + "entry subentry \n", + "0 0 True 0.0 109.939896 data15_periodD \n", + " 1 True 0.0 109.939896 data15_periodD \n", + "1 0 True 0.0 233.445709 data15_periodD \n", + " 1 True 0.0 233.445709 data15_periodD \n", + " 2 False 0.0 233.445709 data15_periodD \n", + "Total events: 55403\n", + "Events with exactly 2 photons: 9883\n", + "Saved as processed_diphoton_data_all_periods.npz in baler-compatible format\n", + "\n", + "Processed data summary:\n", + "Number of events with exactly 2 photons: 9883\n", + "Data shape for baler: (9883, 13)\n", + "Features included: ['mass', 'photon_pt_ph1', 'photon_pt_ph2', 'photon_eta_ph1', 'photon_eta_ph2', 'photon_phi_ph1', 'photon_phi_ph2', 'photon_e_ph1', 'photon_e_ph2', 'photon_isTightID_ph1', 'photon_isTightID_ph2', 'photon_ptcone20_ph1', 'photon_ptcone20_ph2']\n", + "\n", + "Breakdown by sample:\n", + " data15_periodD: 62 events\n", + " data15_periodE: 714 events\n", + " data15_periodF: 534 events\n", + " data15_periodG: 1130 events\n", + " data15_periodH: 372 events\n", + " data15_periodJ: 2422 events\n", + " data16_periodA: 666 events\n", + " data16_periodB: 1098 events\n", + " data16_periodC: 2086 events\n", + " data16_periodD: 2724 events\n", + " data16_periodE: 956 events\n", + " data16_periodF: 1572 events\n", + " data16_periodG: 1930 events\n", + " data16_periodK: 982 events\n", + " data16_periodL: 2518 events\n" + ] + } + ], + "source": [ + "# Convert processed data (with cuts applied) to dataframe\n", + "if all_data is not None:\n", + " processed_df = ak.to_dataframe(all_data)\n", + " print(processed_df.head())\n", + " \n", + " # Save processed data to CSV\n", + " #processed_df.to_csv(\"processed_photon_data_all_periods.csv\", index=False)\n", + " #print(\"Saved as processed_photon_data_all_periods.csv\")\n", + " \n", + " # Filter to only events with exactly two photons\n", + " event_photon_counts = processed_df.groupby('entry').size()\n", + " events_with_two_photons = event_photon_counts[event_photon_counts == 2].index\n", + " \n", + " print(f\"Total events: {len(event_photon_counts)}\")\n", + " print(f\"Events with exactly 2 photons: {len(events_with_two_photons)}\")\n", + " \n", + " # Filter the dataframe\n", + " filtered_df = processed_df.loc[processed_df.index.get_level_values('entry').isin(events_with_two_photons)]\n", + " \n", + " # Convert to the format baler expects\n", + " feature_columns = ['photon_pt', 'photon_eta', 'photon_phi', 'photon_e', \n", + " 'photon_isTightID', 'photon_ptcone20']\n", + " \n", + " event_data = []\n", + " \n", + " for event_idx in events_with_two_photons:\n", + " event_df = filtered_df.loc[event_idx]\n", + " \n", + " # Take both photons' data for each feature\n", + " event_row = []\n", + " \n", + " # Add mass first (it's per event, not per photon)\n", + " if 'mass' in event_df.columns:\n", + " event_row.append(float(event_df['mass'].iloc[0]))\n", + " else:\n", + " event_row.append(0.0)\n", + " \n", + " # Add photon-specific features for both photons\n", + " for col in feature_columns:\n", + " if col in event_df.columns:\n", + " photon_values = event_df[col].values\n", + " event_row.extend([float(photon_values[0]), float(photon_values[1])])\n", + " else:\n", + " event_row.extend([0.0, 0.0])\n", + " \n", + " event_data.append(event_row)\n", + " \n", + " # Convert to numpy array\n", + " data_array = np.array(event_data)\n", + " \n", + " # Create column names for both photons\n", + " column_names = ['mass'] # Event-level feature\n", + " for col in feature_columns:\n", + " column_names.extend([f'{col}_ph1', f'{col}_ph2']) # Photon-specific features\n", + " \n", + " column_names = np.array(column_names)\n", + " \n", + " # Save in baler-compatible format\n", + " np.savez('processed_diphoton_data_all_periods.npz', \n", + " data=data_array,\n", + " names=column_names)\n", + " print(\"Saved as processed_diphoton_data_all_periods.npz in baler-compatible format\")\n", + " \n", + " # Print summary of processed data\n", + " print(f\"\\nProcessed data summary:\")\n", + " print(f\"Number of events with exactly 2 photons: {len(events_with_two_photons)}\")\n", + " print(f\"Data shape for baler: {data_array.shape}\")\n", + " print(f\"Features included: {list(column_names)}\")\n", + " \n", + " # Show breakdown by sample\n", + " print(f\"\\nBreakdown by sample:\")\n", + " sample_counts = filtered_df.groupby('sample').size()\n", + " for sample, count in sample_counts.items():\n", + " print(f\" {sample}: {count} events\")\n", + "else:\n", + " print(\"No data to save.\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "baler-NkYVSVSD-py3.9", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.21" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/workspaces/ATLAS_Workspace/ATLAS_Project/config/generate_data.py b/workspaces/ATLAS_Workspace/ATLAS_Project/config/generate_data.py new file mode 100644 index 00000000..a14b5303 --- /dev/null +++ b/workspaces/ATLAS_Workspace/ATLAS_Project/config/generate_data.py @@ -0,0 +1,110 @@ +import numpy as np +import uproot +import awkward +import pandas +import time +from tqdm import tqdm + + +def cut_photon_pt(photon_pt): + return (photon_pt[:,0] > 40000) & (photon_pt[:,1] > 30000) + +def cut_photon_eta_transition(photon_eta): + return ((abs(photon_eta[:,0])>1.52) | (abs(photon_eta[:,0])<1.37)) & ((abs(photon_eta[:,1])>1.52) | (abs(photon_eta[:,1])<1.37)) + +def cut_tightID(tightIDs): + # with np.load("/Users/oscarfuentes/masters_project/baler_sem1/workspaces/higgs/data/V4_photon_isTightID.npz") as f: + # tightIDs = f["data"].astype(bool) + return tightIDs[:,0] & tightIDs[:,1] + +def cut_isolation_et(photon_etcone20): + return (photon_etcone20[:,0]<4000) & (photon_etcone20[:,1]<4000) + +def minmax(arr): + return (arr-min(arr))/(max(arr)-min(arr)), (np.astype(min(arr), np.float32), np.astype(max(arr), np.float32)) + +def log_minmax(arr): + return ((np.log10(arr)-np.log10(min(arr)))/(np.log10(max(arr))-np.log10(min(arr))), + (np.astype(np.log10(min(arr)), np.float32), + np.astype(np.log10(max(arr)), np.float32))) + +tuple_path = "https://atlas-opendata.web.cern.ch/atlas-opendata/samples/2020/GamGam/Data/" +save_path = "/Users/cartercapetz/Desktop/baler/carter_data/" + +samples = [tuple_path + "data_" + letter + ".GamGam.root" for letter in ["A", "B", "C", "D"]] + +full_data = np.empty((0, 8)) +full_norm_data = np.empty((0,8)) +length = 0 + +for path, letter in zip(samples, ["A", "B", "C", "D"]): + print(f"Processing data {letter}") + start = time.time() + + with uproot.open(path + ":mini") as t: + tree = t + print(f"File open, took {time.time() - start:.2f}s") + + for data in tree.iterate( + [ + "photon_pt", + "photon_eta", + "photon_phi", + "photon_E", + "photon_isTightID", + "photon_etcone20" + ], + library="pd", + ): + print("Applying cuts...\n") + lens = data.photon_pt.apply(len) + len_mask = (lens == 2).to_numpy() + data = data[len_mask] + print("Len cut complete") + data = data[cut_tightID(data.photon_isTightID.to_numpy())] + print("Tight ID cut complete") + data = data[cut_isolation_et(data.photon_etcone20.to_numpy())] + print("Isolation cut complete") + data = data[cut_photon_pt(data.photon_pt.to_numpy())] + print("pt cut complete") + data = data[cut_photon_eta_transition(data.photon_eta.to_numpy())] + print("eta transition cut complete") + + print("\nStacking...") + full_data = np.vstack((full_data, np.column_stack([data.photon_pt, + data.photon_eta, + data.photon_phi, + data.photon_E]))) + + length += len(data) + + print(f"Finished processing {letter}\n\nTook {time.time() - start:.2f}s") + print(f"Current Length {length}\n") + +full_data = np.array(full_data, dtype=np.float32) + +pt1, scale0 = log_minmax(full_data[:,0]) +pt2, scale1 = log_minmax(full_data[:,1]) +eta1, scale2 = minmax(full_data[:,2]) +eta2, scale3 = minmax(full_data[:,3]) +phi1, scale4 = minmax(full_data[:,4]) +phi2, scale5 = minmax(full_data[:,5]) +E1, scale6 = log_minmax(full_data[:,6]) +E2, scale7 = log_minmax(full_data[:,7]) + +full_norm_data = np.vstack((full_norm_data, np.column_stack([pt1, pt2, + eta1, eta2, + phi1, phi2, + E1, E2]))) +scales = np.column_stack([[scale0, scale1], [scale2, scale3], [scale4, scale5], [scale6, scale7]]) + +print(type(full_data)) +print(type(full_data[0])) +print(type(full_data[0][0])) +print(f"Final data shape: {full_data.shape}") + +names = ["pt1", "pt2", "eta1", "eta2", "phi1", "phi2", "E1", "E2"] + +np.savez(save_path+"V4_precut_original.npz", data=full_data, names=names) +np.savez(save_path+"V4_precut_normalised.npz", data=full_norm_data, names=names) +np.savez(save_path+"V4_precut_scales.npz", data=scales, names=names) diff --git a/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/Hyy_data_preprocessing.ipynb b/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/Hyy_data_preprocessing.ipynb new file mode 100644 index 00000000..d8662d42 --- /dev/null +++ b/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/Hyy_data_preprocessing.ipynb @@ -0,0 +1,381 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: uproot in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (5.6.2)\n", + "Requirement already satisfied: awkward>=2.4.6 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (2.8.4)\n", + "Requirement already satisfied: cramjam>=2.5.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (2.10.0)\n", + "Requirement already satisfied: fsspec in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (2024.2.0)\n", + "Requirement already satisfied: numpy in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (1.23.5)\n", + "Requirement already satisfied: packaging in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (23.2)\n", + "Requirement already satisfied: typing-extensions>=4.1.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (4.10.0)\n", + "Requirement already satisfied: xxhash in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (3.5.0)\n", + "Requirement already satisfied: awkward-cpp==46 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.4.6->uproot) (46)\n", + "Requirement already satisfied: importlib-metadata>=4.13.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.4.6->uproot) (7.0.1)\n", + "Requirement already satisfied: zipp>=0.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from importlib-metadata>=4.13.0->awkward>=2.4.6->uproot) (3.17.0)\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.1.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", + "Requirement already satisfied: pandas in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (2.3.0)\n", + "Requirement already satisfied: numpy>=1.22.4 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas) (1.23.5)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas) (2.9.0.post0)\n", + "Requirement already satisfied: pytz>=2020.1 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas) (2025.2)\n", + "Requirement already satisfied: tzdata>=2022.7 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas) (2025.2)\n", + "Requirement already satisfied: six>=1.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from python-dateutil>=2.8.2->pandas) (1.16.0)\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.1.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", + "Requirement already satisfied: requests in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (2.32.4)\n", + "Requirement already satisfied: aiohttp in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (3.12.13)\n", + "Requirement already satisfied: charset_normalizer<4,>=2 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from requests) (3.4.2)\n", + "Requirement already satisfied: idna<4,>=2.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from requests) (3.10)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from requests) (2.5.0)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from requests) (2025.6.15)\n", + "Requirement already satisfied: aiohappyeyeballs>=2.5.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (2.6.1)\n", + "Requirement already satisfied: aiosignal>=1.1.2 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (1.3.2)\n", + "Requirement already satisfied: async-timeout<6.0,>=4.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (5.0.1)\n", + "Requirement already satisfied: attrs>=17.3.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (25.3.0)\n", + "Requirement already satisfied: frozenlist>=1.1.1 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (1.7.0)\n", + "Requirement already satisfied: multidict<7.0,>=4.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (6.5.0)\n", + "Requirement already satisfied: propcache>=0.2.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (0.3.2)\n", + "Requirement already satisfied: yarl<2.0,>=1.17.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (1.20.1)\n", + "Requirement already satisfied: typing-extensions>=4.1.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from multidict<7.0,>=4.5->aiohttp) (4.10.0)\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.1.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", + "Requirement already satisfied: awkward-pandas in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (2023.8.0)\n", + "Requirement already satisfied: awkward>=2.0.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward-pandas) (2.8.4)\n", + "Requirement already satisfied: pandas>=1.2 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward-pandas) (2.3.0)\n", + "Requirement already satisfied: awkward-cpp==46 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (46)\n", + "Requirement already satisfied: fsspec>=2022.11.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (2024.2.0)\n", + "Requirement already satisfied: importlib-metadata>=4.13.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (7.0.1)\n", + "Requirement already satisfied: numpy>=1.18.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (1.23.5)\n", + "Requirement already satisfied: packaging in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (23.2)\n", + "Requirement already satisfied: typing-extensions>=4.1.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (4.10.0)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas>=1.2->awkward-pandas) (2.9.0.post0)\n", + "Requirement already satisfied: pytz>=2020.1 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas>=1.2->awkward-pandas) (2025.2)\n", + "Requirement already satisfied: tzdata>=2022.7 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas>=1.2->awkward-pandas) (2025.2)\n", + "Requirement already satisfied: zipp>=0.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from importlib-metadata>=4.13.0->awkward>=2.0.0->awkward-pandas) (3.17.0)\n", + "Requirement already satisfied: six>=1.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from python-dateutil>=2.8.2->pandas>=1.2->awkward-pandas) (1.16.0)\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.1.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", + "Collecting vector\n", + " Downloading vector-1.6.2-py3-none-any.whl.metadata (15 kB)\n", + "Requirement already satisfied: numpy>=1.13.3 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from vector) (1.23.5)\n", + "Requirement already satisfied: packaging>=19 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from vector) (23.2)\n", + "Downloading vector-1.6.2-py3-none-any.whl (177 kB)\n", + "Installing collected packages: vector\n", + "Successfully installed vector-1.6.2\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.1.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n" + ] + } + ], + "source": [ + "import sys\n", + "!{sys.executable} -m pip install --upgrade uproot\n", + "!{sys.executable} -m pip install --upgrade pandas\n", + "!{sys.executable} -m pip install requests aiohttp\n", + "!{sys.executable} -m pip install awkward-pandas\n", + "!{sys.executable} -m pip install vector " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Keys in ROOT file: ['analysis;1']\n" + ] + } + ], + "source": [ + "import uproot\n", + "import pandas as pd\n", + "import numpy as np\n", + "import vector\n", + "import awkward as ak\n", + "\n", + "path = \"https://atlas-opendata.web.cern.ch/atlas-opendata/13TeV/GamGam/Data/\"\n", + "\n", + "samples_list = ['data15_periodD','data15_periodE','data15_periodF','data15_periodG','data15_periodH','data15_periodJ','data16_periodA','data16_periodB','data16_periodC','data16_periodD','data16_periodE','data16_periodF','data16_periodG','data16_periodK','data16_periodL']\n", + "\n", + "data_15G_path = path + samples_list[3] + \".root\"\n", + "\n", + "# Inspect the file to find available trees\n", + "with uproot.open(data_15G_path) as file:\n", + " print(\"Keys in ROOT file:\", file.keys())" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The number of entries in the tree are: 164583\n", + "The information stored in the tree is: ['num_events', 'sum_of_weights', 'sum_of_weights_squared', 'corrected_xsec', 'dsid', 'category', 'sig_ph', 'n_sig_ph', 'ScaleFactor_PILEUP', 'mcWeight', 'xsec', 'filteff', 'kfac', 'channelNumber', 'eventNumber', 'runNumber', 'trigP', 'trigDT', 'trigT', 'trigE', 'trigM', 'trigMET', 'ScaleFactor_BTAG', 'jet_n', 'jet_pt', 'jet_eta', 'jet_phi', 'jet_e', 'jet_btag_quantile', 'jet_jvt', 'largeRJet_n', 'largeRJet_pt', 'largeRJet_eta', 'largeRJet_phi', 'largeRJet_e', 'largeRJet_m', 'largeRJet_D2', 'ScaleFactor_ELE', 'ScaleFactor_MUON', 'scaleFactor_LepTRIGGER', 'lep_n', 'lep_type', 'lep_pt', 'lep_eta', 'lep_phi', 'lep_e', 'lep_charge', 'lep_ptvarcone30', 'lep_topoetcone20', 'lep_z0', 'lep_d0', 'lep_d0sig', 'lep_isTightID', 'lep_isMediumID', 'lep_isLooseID', 'lep_isTightIso', 'lep_isLooseIso', 'ScaleFactor_PHOTON', 'photon_n', 'photon_pt', 'photon_eta', 'photon_phi', 'photon_e', 'photon_ptcone20', 'photon_topoetcone40', 'photon_isLooseID', 'photon_isTightID', 'photon_isLooseIso', 'photon_isTightIso', 'ScaleFactor_TAU', 'ScaleFactor_TauTRIGGER', 'ScaleFactor_DiTauTRIGGER', 'tau_n', 'tau_pt', 'tau_eta', 'tau_phi', 'tau_e', 'tau_charge', 'tau_nTracks', 'tau_isTight', 'tau_RNNJetScore', 'tau_RNNEleScore', 'met', 'met_phi', 'met_mpx', 'met_mpy']\n" + ] + } + ], + "source": [ + "# Accessing the file from the online database (\":analysis\" opens the tree in a desired manner)\n", + "with uproot.open(data_15G_path + \":analysis\") as t:\n", + " tree = t\n", + "\n", + "# The number of entries in the tree can be viewed\n", + "print(\"The number of entries in the tree are:\", tree.num_entries)\n", + "\n", + "# All the information stored in the tree can be viewed using the .keys() method.\n", + "print(\"The information stored in the tree is:\", tree.keys())" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[{photon_e: [53, 41.5, 2.67, 5.41, 2.53]}, {...}, ..., {photon_e: [752, ...]}]\n" + ] + } + ], + "source": [ + "print(tree[\"photon_e\"].arrays())\n", + "\n", + "variables = [\"photon_pt\",\"photon_eta\",\"photon_phi\",\"photon_e\",\n", + " \"photon_isTightID\",\"photon_ptcone20\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The reconstruction quality of the two photons: [True] [False]\n", + "Apply cut based on reconstruction quality requirements?[True]\n", + "The transverse momentum of the two photons: [35.9] [39.5]\n", + "Apply cut based on the transverse momentum requirements?[True]\n", + "The calorimeter isolation of the two photons: [0.265] [0.106]\n", + "Apply cut based on the calorimeter isolation requirements?[True]\n", + "The eta of the two photons: [-0.941] [-0.321]\n", + "Apply cut based on the eta requirements?[False]\n", + "The invariant mass of the 2-photon state is: [78.8] GeV\n", + "The invariant mass based isolation of the two photons: [0.455] [0.501]\n", + "Apply cut based on the invariant mass based isolation requirements?[False]\n" + ] + } + ], + "source": [ + "# This selects the first entry of the tree\n", + "entry = tree.arrays(library=\"ak\")[:1]\n", + "\n", + "# Cut on the photon reconstruction quality\n", + "photon_reconstruction = entry['photon_isTightID']\n", + "# isTightID==True means a photon identified as being well reconstructed, only the events which have True for both photons are kept\n", + "photon_reconstruction_cut_bool = (photon_reconstruction[:, 0] == False) | (photon_reconstruction[:, 1]==False) # [:, i] selects the i-th lepton in each event\n", + "print(\"The reconstruction quality of the two photons:\", photon_reconstruction[:,0], photon_reconstruction[:,1])\n", + "print(f\"Apply cut based on reconstruction quality requirements?{photon_reconstruction_cut_bool}\")\n", + " \n", + "# Cut on the transverse momentum\n", + "photon_pt = entry['photon_pt']\n", + "# Only the events where the leading photon has transverse momentum (pt) > 50 GeV and the sub-leading photon has pt > 30 GeV are kept\n", + "# Since the two photons for each entry are ordered, the first photon is the leading one and the second one is the sub-leading one\n", + "photon_pt_cut_bool = (photon_pt[:,0] < 50) | (photon_pt[:,1] < 30)\n", + "print(\"The transverse momentum of the two photons:\", photon_pt[:,0], photon_pt[:,1])\n", + "print(f\"Apply cut based on the transverse momentum requirements?{photon_pt_cut_bool}\")\n", + "\n", + "# Cut on the calorimeter isolation\n", + "photon_ptcone20 = entry['photon_ptcone20']\n", + "# Only the events where the invidivual photon calorimeter isolation is less than 5.5% are kept\n", + "photon_caloiso_cut_bool = (((photon_ptcone20[:,0]/photon_pt[:,0]) > 0.055) | ((photon_ptcone20[:,1]/photon_pt[:,1]) > 0.055))\n", + "print(\"The calorimeter isolation of the two photons:\", (photon_ptcone20[:,0]/photon_pt[:,0]), (photon_ptcone20[:,1]/photon_pt[:,1]))\n", + "print(f\"Apply cut based on the calorimeter isolation requirements?{photon_caloiso_cut_bool}\")\n", + "\n", + "# Cut on the pseudorapidity in the barrel/end-cap transition region\n", + "photon_eta = entry['photon_eta']\n", + "# Only the events where modulus of photon_eta is outside the range 1.37 to 1.52 are kept\n", + "condition_0 = (np.abs(photon_eta[:, 0]) < 1.52) & (np.abs(photon_eta[:, 0]) > 1.37)\n", + "condition_1 = (np.abs(photon_eta[:, 1]) < 1.52) & (np.abs(photon_eta[:, 1]) > 1.37)\n", + "photon_eta_cut_bool = (condition_0 | condition_1)\n", + "print(\"The eta of the two photons:\", photon_eta[:,0], photon_eta[:,1])\n", + "print(f\"Apply cut based on the eta requirements?{photon_eta_cut_bool}\")\n", + "\n", + "# This calculates the invariant mass of the 2-photon state\n", + "p4 = vector.zip({\"pt\": entry['photon_pt'], \"eta\": entry['photon_eta'], \"phi\": entry['photon_phi'], \"e\": entry['photon_e']})\n", + "invariant_mass = (p4[:, 0] + p4[:, 1]).M # .M calculates the invariant mass\n", + "print(f\"The invariant mass of the 2-photon state is: {invariant_mass} GeV\")\n", + "\n", + "# Cut on the invariant mass based isolation\n", + "# Only the events where the invididual photon invariant mass based isolation is larger than 35% are kept\n", + "photon_massiso_cut_bool = ((photon_pt[:,0]/invariant_mass) < 0.35) | ((photon_pt[:,1]/invariant_mass) < 0.35)\n", + "print(\"The invariant mass based isolation of the two photons:\", (photon_pt[:,0]/invariant_mass), (photon_pt[:,1]/invariant_mass))\n", + "print(f\"Apply cut based on the invariant mass based isolation requirements?{photon_massiso_cut_bool}\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "# Cut on the photon reconstruction quality\n", + "def cut_photon_reconstruction(photon_isTightID):\n", + " # Only the events which have True for both photons are kept\n", + " return (photon_isTightID[:,0]==False) | (photon_isTightID[:,1]==False) \n", + "\n", + "# Cut on the transverse momentum\n", + "def cut_photon_pt(photon_pt):\n", + "# Only the events where photon_pt[0] > 50 GeV and photon_pt[1] > 30 GeV are kept\n", + " return (photon_pt[:,0] < 50) | (photon_pt[:,1] < 30)\n", + "\n", + "# Cut on the energy isolation\n", + "def cut_isolation_pt(photon_ptcone20, photon_pt):\n", + "# Only the events where the calorimeter isolation is less than 5.5% are kept\n", + " return ((photon_ptcone20[:,0]/photon_pt[:,0]) > 0.055) | ((photon_ptcone20[:,1]/photon_pt[:,1]) > 0.055)\n", + "\n", + "# Cut on the pseudorapidity in barrel/end-cap transition region\n", + "def cut_photon_eta_transition(photon_eta):\n", + "# Only the events where modulus of photon_eta is outside the range 1.37 to 1.52 are kept\n", + " condition_0 = (np.abs(photon_eta[:, 0]) < 1.52) & (np.abs(photon_eta[:, 0]) > 1.37)\n", + " condition_1 = (np.abs(photon_eta[:, 1]) < 1.52) & (np.abs(photon_eta[:, 1]) > 1.37)\n", + " return condition_0 | condition_1\n", + "\n", + "# This function calculates the invariant mass of the 2-photon state\n", + "def calc_mass(photon_pt, photon_eta, photon_phi, photon_e):\n", + " p4 = vector.zip({\"pt\": photon_pt, \"eta\": photon_eta, \"phi\": photon_phi, \"e\": photon_e})\n", + " invariant_mass = (p4[:, 0] + p4[:, 1]).M # .M calculates the invariant mass\n", + " return invariant_mass\n", + "\n", + "# Cut on null diphoton invariant mass\n", + "def cut_mass(invariant_mass):\n", + " return (invariant_mass == 0)\n", + "\n", + "# Cut on diphoton invariant mass based isolation \n", + "# Only the events where the invididual photon invariant mass based isolation is larger than 35% are kept\n", + "def cut_iso_mass(photon_pt, invariant_mass):\n", + " return ((photon_pt[:,0]/invariant_mass) < 0.35) | ((photon_pt[:,1]/invariant_mass) < 0.35)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "# Define empty list to hold all data for this sample\n", + "sample_data = []\n", + "\n", + "# Perform the cuts for each data entry in the tree\n", + "for data in tree.iterate(variables, library=\"ak\"):\n", + " \n", + " # data[~boolean] is used to remove entries from the data set\n", + " photon_isTightID = data['photon_isTightID']\n", + " data = data[~cut_photon_reconstruction(photon_isTightID)]\n", + "\n", + " photon_pt = data['photon_pt']\n", + " data = data[~cut_photon_pt(photon_pt)]\n", + "\n", + " data = data[~cut_isolation_pt(data['photon_ptcone20'],data['photon_pt'])]\n", + "\n", + " photon_eta = data['photon_eta']\n", + " data = data[~cut_photon_eta_transition(photon_eta)]\n", + " \n", + " data['mass'] = calc_mass(data['photon_pt'], data['photon_eta'], data['photon_phi'], data['photon_e'])\n", + " \n", + " data = data[~cut_mass(data['mass'])]\n", + " \n", + " data = data[~cut_iso_mass(data['photon_pt'], data['mass'])]\n", + " \n", + " # Append data to the whole sample data list\n", + " sample_data.append(data)\n", + "\n", + "# turn sample_data back into an awkward array\n", + "data15_periodG = ak.concatenate(sample_data)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " photon_e\n", + "0 [52.95711898803711, 41.52253723144531, 2.66612...\n", + "1 [144.42855834960938, 25.760665893554688, 6.258...\n", + "2 [47.989742279052734, 31.802453994750977]\n", + "3 [32.105987548828125, 43.45836639404297]\n", + "4 [335.6337890625, 60.06889343261719, 2.30734062...\n", + "Saved as photon_e.csv\n", + "saved as photon_e.npz\n" + ] + } + ], + "source": [ + "tree_name = \"analysis;1\"\n", + "branches = [\"photon_e\"]\n", + "\n", + "#convert branch to dataframe\n", + "with uproot.open(data_15G_path) as file:\n", + " tree = file[tree_name]\n", + " df = tree.arrays(branches, library=\"pd\")\n", + " print(df.head())\n", + "\n", + "#csv\n", + "df.to_csv(\"photon_e.csv\", index=False)\n", + "print(\"Saved as photon_e.csv\")\n", + "\n", + "#npz\n", + "np.savez('photon_e.npz', photon_e = df.values)\n", + "print(\"saved as photon_e.npz\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "baler-NkYVSVSD-py3.9", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.21" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/Hyy_data_preprocessing_all_periods.ipynb b/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/Hyy_data_preprocessing_all_periods.ipynb new file mode 100644 index 00000000..bc1b7ce0 --- /dev/null +++ b/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/Hyy_data_preprocessing_all_periods.ipynb @@ -0,0 +1,504 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: uproot in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (5.6.3)\n", + "Requirement already satisfied: awkward>=2.4.6 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (2.8.4)\n", + "Requirement already satisfied: cramjam>=2.5.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (2.10.0)\n", + "Requirement already satisfied: fsspec in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (2024.2.0)\n", + "Requirement already satisfied: numpy in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (1.23.5)\n", + "Requirement already satisfied: packaging in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (23.2)\n", + "Requirement already satisfied: typing-extensions>=4.1.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (4.10.0)\n", + "Requirement already satisfied: xxhash in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (3.5.0)\n", + "Requirement already satisfied: awkward-cpp==46 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.4.6->uproot) (46)\n", + "Requirement already satisfied: importlib-metadata>=4.13.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.4.6->uproot) (7.0.1)\n", + "Requirement already satisfied: zipp>=0.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from importlib-metadata>=4.13.0->awkward>=2.4.6->uproot) (3.17.0)\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.1.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", + "Requirement already satisfied: pandas in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (2.3.1)\n", + "Requirement already satisfied: numpy>=1.22.4 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas) (1.23.5)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas) (2.9.0.post0)\n", + "Requirement already satisfied: pytz>=2020.1 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas) (2025.2)\n", + "Requirement already satisfied: tzdata>=2022.7 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas) (2025.2)\n", + "Requirement already satisfied: six>=1.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from python-dateutil>=2.8.2->pandas) (1.16.0)\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.1.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", + "Requirement already satisfied: requests in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (2.32.4)\n", + "Requirement already satisfied: aiohttp in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (3.12.13)\n", + "Requirement already satisfied: charset_normalizer<4,>=2 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from requests) (3.4.2)\n", + "Requirement already satisfied: idna<4,>=2.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from requests) (3.10)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from requests) (2.5.0)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from requests) (2025.6.15)\n", + "Requirement already satisfied: aiohappyeyeballs>=2.5.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (2.6.1)\n", + "Requirement already satisfied: aiosignal>=1.1.2 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (1.3.2)\n", + "Requirement already satisfied: async-timeout<6.0,>=4.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (5.0.1)\n", + "Requirement already satisfied: attrs>=17.3.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (25.3.0)\n", + "Requirement already satisfied: frozenlist>=1.1.1 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (1.7.0)\n", + "Requirement already satisfied: multidict<7.0,>=4.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (6.5.0)\n", + "Requirement already satisfied: propcache>=0.2.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (0.3.2)\n", + "Requirement already satisfied: yarl<2.0,>=1.17.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (1.20.1)\n", + "Requirement already satisfied: typing-extensions>=4.1.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from multidict<7.0,>=4.5->aiohttp) (4.10.0)\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.1.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", + "Requirement already satisfied: awkward-pandas in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (2023.8.0)\n", + "Requirement already satisfied: awkward>=2.0.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward-pandas) (2.8.4)\n", + "Requirement already satisfied: pandas>=1.2 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward-pandas) (2.3.1)\n", + "Requirement already satisfied: awkward-cpp==46 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (46)\n", + "Requirement already satisfied: fsspec>=2022.11.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (2024.2.0)\n", + "Requirement already satisfied: importlib-metadata>=4.13.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (7.0.1)\n", + "Requirement already satisfied: numpy>=1.18.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (1.23.5)\n", + "Requirement already satisfied: packaging in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (23.2)\n", + "Requirement already satisfied: typing-extensions>=4.1.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (4.10.0)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas>=1.2->awkward-pandas) (2.9.0.post0)\n", + "Requirement already satisfied: pytz>=2020.1 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas>=1.2->awkward-pandas) (2025.2)\n", + "Requirement already satisfied: tzdata>=2022.7 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas>=1.2->awkward-pandas) (2025.2)\n", + "Requirement already satisfied: zipp>=0.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from importlib-metadata>=4.13.0->awkward>=2.0.0->awkward-pandas) (3.17.0)\n", + "Requirement already satisfied: six>=1.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from python-dateutil>=2.8.2->pandas>=1.2->awkward-pandas) (1.16.0)\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.1.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", + "Requirement already satisfied: vector in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (1.6.2)\n", + "Requirement already satisfied: numpy>=1.13.3 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from vector) (1.23.5)\n", + "Requirement already satisfied: packaging>=19 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from vector) (23.2)\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.1.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n" + ] + } + ], + "source": [ + "import sys\n", + "!{sys.executable} -m pip install --upgrade uproot\n", + "!{sys.executable} -m pip install --upgrade pandas\n", + "!{sys.executable} -m pip install requests aiohttp\n", + "!{sys.executable} -m pip install awkward-pandas\n", + "!{sys.executable} -m pip install vector " + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Keys in ROOT file: ['analysis;1']\n" + ] + } + ], + "source": [ + "import uproot\n", + "import pandas as pd\n", + "import numpy as np\n", + "import vector\n", + "import awkward as ak\n", + "\n", + "path = \"https://atlas-opendata.web.cern.ch/atlas-opendata/13TeV/GamGam/Data/\"\n", + "\n", + "samples_list = ['data15_periodD','data15_periodE','data15_periodF','data15_periodG','data15_periodH','data15_periodJ','data16_periodA','data16_periodB','data16_periodC','data16_periodD','data16_periodE','data16_periodF','data16_periodG','data16_periodK','data16_periodL']\n", + "\n", + "# Test with first sample to verify file structure\n", + "test_path = path + samples_list[0] + \".root\"\n", + "\n", + "# Inspect the file to find available trees\n", + "with uproot.open(test_path) as file:\n", + " print(\"Keys in ROOT file:\", file.keys())" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The number of entries in the tree are: 11371\n", + "The information stored in the tree is: ['num_events', 'sum_of_weights', 'sum_of_weights_squared', 'corrected_xsec', 'dsid', 'category', 'sig_ph', 'n_sig_ph', 'ScaleFactor_PILEUP', 'mcWeight', 'xsec', 'filteff', 'kfac', 'channelNumber', 'eventNumber', 'runNumber', 'trigP', 'trigDT', 'trigT', 'trigE', 'trigM', 'trigMET', 'ScaleFactor_BTAG', 'jet_n', 'jet_pt', 'jet_eta', 'jet_phi', 'jet_e', 'jet_btag_quantile', 'jet_jvt', 'largeRJet_n', 'largeRJet_pt', 'largeRJet_eta', 'largeRJet_phi', 'largeRJet_e', 'largeRJet_m', 'largeRJet_D2', 'ScaleFactor_ELE', 'ScaleFactor_MUON', 'scaleFactor_LepTRIGGER', 'lep_n', 'lep_type', 'lep_pt', 'lep_eta', 'lep_phi', 'lep_e', 'lep_charge', 'lep_ptvarcone30', 'lep_topoetcone20', 'lep_z0', 'lep_d0', 'lep_d0sig', 'lep_isTightID', 'lep_isMediumID', 'lep_isLooseID', 'lep_isTightIso', 'lep_isLooseIso', 'ScaleFactor_PHOTON', 'photon_n', 'photon_pt', 'photon_eta', 'photon_phi', 'photon_e', 'photon_ptcone20', 'photon_topoetcone40', 'photon_isLooseID', 'photon_isTightID', 'photon_isLooseIso', 'photon_isTightIso', 'ScaleFactor_TAU', 'ScaleFactor_TauTRIGGER', 'ScaleFactor_DiTauTRIGGER', 'tau_n', 'tau_pt', 'tau_eta', 'tau_phi', 'tau_e', 'tau_charge', 'tau_nTracks', 'tau_isTight', 'tau_RNNJetScore', 'tau_RNNEleScore', 'met', 'met_phi', 'met_mpx', 'met_mpy']\n" + ] + } + ], + "source": [ + "# Accessing the file from the online database (\":analysis\" opens the tree in a desired manner)\n", + "with uproot.open(test_path + \":analysis\") as t:\n", + " tree = t\n", + "\n", + "# The number of entries in the tree can be viewed\n", + "print(\"The number of entries in the tree are:\", tree.num_entries)\n", + "\n", + "# All the information stored in the tree can be viewed using the .keys() method.\n", + "print(\"The information stored in the tree is:\", tree.keys())" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[{photon_e: [90.1, 37.6, 12.6, 2.88]}, {...}, ..., {photon_e: [140, ..., 2.14]}]\n" + ] + } + ], + "source": [ + "print(tree[\"photon_e\"].arrays())\n", + "\n", + "variables = [\"photon_pt\",\"photon_eta\",\"photon_phi\",\"photon_e\",\n", + " \"photon_isTightID\",\"photon_ptcone20\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The reconstruction quality of the two photons: [True] [False]\n", + "Apply cut based on reconstruction quality requirements?[True]\n", + "The transverse momentum of the two photons: [84] [27.7]\n", + "Apply cut based on the transverse momentum requirements?[True]\n", + "The calorimeter isolation of the two photons: [0] [2.27]\n", + "Apply cut based on the calorimeter isolation requirements?[True]\n", + "The eta of the two photons: [-0.379] [0.823]\n", + "Apply cut based on the eta requirements?[False]\n", + "The invariant mass of the 2-photon state is: [114] GeV\n", + "The invariant mass based isolation of the two photons: [0.735] [0.242]\n", + "Apply cut based on the invariant mass based isolation requirements?[True]\n" + ] + } + ], + "source": [ + "# This selects the first entry of the tree\n", + "entry = tree.arrays(library=\"ak\")[:1]\n", + "\n", + "# Cut on the photon reconstruction quality\n", + "photon_reconstruction = entry['photon_isTightID']\n", + "# isTightID==True means a photon identified as being well reconstructed, only the events which have True for both photons are kept\n", + "photon_reconstruction_cut_bool = (photon_reconstruction[:, 0] == False) | (photon_reconstruction[:, 1]==False) # [:, i] selects the i-th lepton in each event\n", + "print(\"The reconstruction quality of the two photons:\", photon_reconstruction[:,0], photon_reconstruction[:,1])\n", + "print(f\"Apply cut based on reconstruction quality requirements?{photon_reconstruction_cut_bool}\")\n", + " \n", + "# Cut on the transverse momentum\n", + "photon_pt = entry['photon_pt']\n", + "# Only the events where the leading photon has transverse momentum (pt) > 50 GeV and the sub-leading photon has pt > 30 GeV are kept\n", + "# Since the two photons for each entry are ordered, the first photon is the leading one and the second one is the sub-leading one\n", + "photon_pt_cut_bool = (photon_pt[:,0] < 50) | (photon_pt[:,1] < 30)\n", + "print(\"The transverse momentum of the two photons:\", photon_pt[:,0], photon_pt[:,1])\n", + "print(f\"Apply cut based on the transverse momentum requirements?{photon_pt_cut_bool}\")\n", + "\n", + "# Cut on the calorimeter isolation\n", + "photon_ptcone20 = entry['photon_ptcone20']\n", + "# Only the events where the invidivual photon calorimeter isolation is less than 5.5% are kept\n", + "photon_caloiso_cut_bool = (((photon_ptcone20[:,0]/photon_pt[:,0]) > 0.055) | ((photon_ptcone20[:,1]/photon_pt[:,1]) > 0.055))\n", + "print(\"The calorimeter isolation of the two photons:\", (photon_ptcone20[:,0]/photon_pt[:,0]), (photon_ptcone20[:,1]/photon_pt[:,1]))\n", + "print(f\"Apply cut based on the calorimeter isolation requirements?{photon_caloiso_cut_bool}\")\n", + "\n", + "# Cut on the pseudorapidity in the barrel/end-cap transition region\n", + "photon_eta = entry['photon_eta']\n", + "# Only the events where modulus of photon_eta is outside the range 1.37 to 1.52 are kept\n", + "condition_0 = (np.abs(photon_eta[:, 0]) < 1.52) & (np.abs(photon_eta[:, 0]) > 1.37)\n", + "condition_1 = (np.abs(photon_eta[:, 1]) < 1.52) & (np.abs(photon_eta[:, 1]) > 1.37)\n", + "photon_eta_cut_bool = (condition_0 | condition_1)\n", + "print(\"The eta of the two photons:\", photon_eta[:,0], photon_eta[:,1])\n", + "print(f\"Apply cut based on the eta requirements?{photon_eta_cut_bool}\")\n", + "\n", + "# This calculates the invariant mass of the 2-photon state\n", + "p4 = vector.zip({\"pt\": entry['photon_pt'], \"eta\": entry['photon_eta'], \"phi\": entry['photon_phi'], \"e\": entry['photon_e']})\n", + "invariant_mass = (p4[:, 0] + p4[:, 1]).M # .M calculates the invariant mass\n", + "print(f\"The invariant mass of the 2-photon state is: {invariant_mass} GeV\")\n", + "\n", + "# Cut on the invariant mass based isolation\n", + "# Only the events where the invididual photon invariant mass based isolation is larger than 35% are kept\n", + "photon_massiso_cut_bool = ((photon_pt[:,0]/invariant_mass) < 0.35) | ((photon_pt[:,1]/invariant_mass) < 0.35)\n", + "print(\"The invariant mass based isolation of the two photons:\", (photon_pt[:,0]/invariant_mass), (photon_pt[:,1]/invariant_mass))\n", + "print(f\"Apply cut based on the invariant mass based isolation requirements?{photon_massiso_cut_bool}\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "# Cut on the photon reconstruction quality\n", + "def cut_photon_reconstruction(photon_isTightID):\n", + " # Only the events which have True for both photons are kept\n", + " return (photon_isTightID[:,0]==False) | (photon_isTightID[:,1]==False) \n", + "\n", + "# Cut on the transverse momentum\n", + "def cut_photon_pt(photon_pt):\n", + "# Only the events where photon_pt[0] > 50 GeV and photon_pt[1] > 30 GeV are kept\n", + " return (photon_pt[:,0] < 50) | (photon_pt[:,1] < 30)\n", + "\n", + "# Cut on the energy isolation\n", + "def cut_isolation_pt(photon_ptcone20, photon_pt):\n", + "# Only the events where the calorimeter isolation is less than 5.5% are kept\n", + " return ((photon_ptcone20[:,0]/photon_pt[:,0]) > 0.055) | ((photon_ptcone20[:,1]/photon_pt[:,1]) > 0.055)\n", + "\n", + "# Cut on the pseudorapidity in barrel/end-cap transition region\n", + "def cut_photon_eta_transition(photon_eta):\n", + "# Only the events where modulus of photon_eta is outside the range 1.37 to 1.52 are kept\n", + " condition_0 = (np.abs(photon_eta[:, 0]) < 1.52) & (np.abs(photon_eta[:, 0]) > 1.37)\n", + " condition_1 = (np.abs(photon_eta[:, 1]) < 1.52) & (np.abs(photon_eta[:, 1]) > 1.37)\n", + " return condition_0 | condition_1\n", + "\n", + "# This function calculates the invariant mass of the 2-photon state\n", + "def calc_mass(photon_pt, photon_eta, photon_phi, photon_e):\n", + " p4 = vector.zip({\"pt\": photon_pt, \"eta\": photon_eta, \"phi\": photon_phi, \"e\": photon_e})\n", + " invariant_mass = (p4[:, 0] + p4[:, 1]).M # .M calculates the invariant mass\n", + " return invariant_mass\n", + "\n", + "# Cut on null diphoton invariant mass\n", + "def cut_mass(invariant_mass):\n", + " return (invariant_mass == 0)\n", + "\n", + "# Cut on diphoton invariant mass based isolation \n", + "# Only the events where the invididual photon invariant mass based isolation is larger than 35% are kept\n", + "def cut_iso_mass(photon_pt, invariant_mass):\n", + " return ((photon_pt[:,0]/invariant_mass) < 0.35) | ((photon_pt[:,1]/invariant_mass) < 0.35)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Processing data15_periodD...\n", + " data15_periodD: 131 events after cuts\n", + "Processing data15_periodE...\n", + " data15_periodE: 1198 events after cuts\n", + "Processing data15_periodF...\n", + " data15_periodF: 899 events after cuts\n", + "Processing data15_periodG...\n", + " data15_periodG: 2088 events after cuts\n", + "Processing data15_periodH...\n", + " data15_periodH: 743 events after cuts\n", + "Processing data15_periodJ...\n", + " data15_periodJ: 4009 events after cuts\n", + "Processing data16_periodA...\n", + " data16_periodA: 1440 events after cuts\n", + "Processing data16_periodB...\n", + " data16_periodB: 3120 events after cuts\n", + "Processing data16_periodC...\n", + " data16_periodC: 5142 events after cuts\n", + "Processing data16_periodD...\n", + " data16_periodD: 7986 events after cuts\n", + "Processing data16_periodE...\n", + " data16_periodE: 2457 events after cuts\n", + "Processing data16_periodF...\n", + " data16_periodF: 5527 events after cuts\n", + "Processing data16_periodG...\n", + " data16_periodG: 6601 events after cuts\n", + "Processing data16_periodK...\n", + " data16_periodK: 3722 events after cuts\n", + "Processing data16_periodL...\n", + " data16_periodL: 10340 events after cuts\n", + "\n", + "Total events across all samples: 55403\n" + ] + } + ], + "source": [ + "# Define empty list to hold all data for all samples\n", + "all_samples_data = []\n", + "\n", + "# Process each sample in the samples_list\n", + "for sample_name in samples_list:\n", + " print(f\"Processing {sample_name}...\")\n", + " \n", + " # Construct the file path for this sample\n", + " sample_path = path + sample_name + \".root\"\n", + " \n", + " # Define empty list to hold all data for this sample\n", + " sample_data = []\n", + " \n", + " try:\n", + " # Perform the cuts for each data entry in the tree\n", + " with uproot.open(sample_path + \":analysis\") as tree:\n", + " for data in tree.iterate(variables, library=\"ak\"):\n", + " \n", + " # data[~boolean] is used to remove entries from the data set\n", + " photon_isTightID = data['photon_isTightID']\n", + " data = data[~cut_photon_reconstruction(photon_isTightID)]\n", + "\n", + " photon_pt = data['photon_pt']\n", + " data = data[~cut_photon_pt(photon_pt)]\n", + "\n", + " data = data[~cut_isolation_pt(data['photon_ptcone20'],data['photon_pt'])]\n", + "\n", + " photon_eta = data['photon_eta']\n", + " data = data[~cut_photon_eta_transition(photon_eta)]\n", + " \n", + " data['mass'] = calc_mass(data['photon_pt'], data['photon_eta'], data['photon_phi'], data['photon_e'])\n", + " \n", + " data = data[~cut_mass(data['mass'])]\n", + " \n", + " data = data[~cut_iso_mass(data['photon_pt'], data['mass'])]\n", + " \n", + " # Append data to the sample data list\n", + " sample_data.append(data)\n", + " \n", + " # turn sample_data back into an awkward array\n", + " if sample_data:\n", + " processed_sample = ak.concatenate(sample_data)\n", + " # Add sample identifier\n", + " # processed_sample['sample'] = sample_name\n", + " all_samples_data.append(processed_sample)\n", + " print(f\" {sample_name}: {len(processed_sample)} events after cuts\")\n", + " else:\n", + " print(f\" {sample_name}: No events passed cuts\")\n", + " \n", + " except Exception as e:\n", + " print(f\" Error processing {sample_name}: {e}\")\n", + " continue\n", + "\n", + "# Combine all samples into one dataset\n", + "if all_samples_data:\n", + " all_data = ak.concatenate(all_samples_data)\n", + " print(f\"\\nTotal events across all samples: {len(all_data)}\")\n", + "else:\n", + " print(\"\\nNo data was successfully processed from any sample.\")\n", + " all_data = None" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " photon_pt photon_eta photon_phi photon_e \\\n", + "entry subentry \n", + "0 0 83.005539 1.693584 -0.613051 233.361725 \n", + " 1 73.862511 1.159767 0.796867 129.360947 \n", + "1 0 129.382782 0.716575 2.482590 164.046448 \n", + " 1 104.054314 0.481084 -0.747131 116.329597 \n", + " 2 2.080437 -0.029949 -2.290774 2.081371 \n", + "\n", + " photon_isTightID photon_ptcone20 mass \n", + "entry subentry \n", + "0 0 True 0.0 109.939896 \n", + " 1 True 0.0 109.939896 \n", + "1 0 True 0.0 233.445709 \n", + " 1 True 0.0 233.445709 \n", + " 2 False 0.0 233.445709 \n", + "Saved as processed_photon_data_all_periods.csv\n" + ] + }, + { + "ename": "ValueError", + "evalue": "cannot convert to RegularArray because subarray lengths are not regular (in compiled code: https://github.com/scikit-hep/awkward/blob/awkward-cpp-46/awkward-cpp/src/cpu-kernels/awkward_ListOffsetArray_toRegularArray.cpp#L22)", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[18], line 16\u001b[0m\n\u001b[1;32m 12\u001b[0m feature_columns \u001b[38;5;241m=\u001b[39m [\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mphoton_pt\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mphoton_eta\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mphoton_phi\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mphoton_e\u001b[39m\u001b[38;5;124m'\u001b[39m, \n\u001b[1;32m 13\u001b[0m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mphoton_isTightID\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mphoton_ptcone20\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mmass\u001b[39m\u001b[38;5;124m'\u001b[39m]\n\u001b[1;32m 15\u001b[0m \u001b[38;5;66;03m# Convert to numpy array format that baler expects\u001b[39;00m\n\u001b[0;32m---> 16\u001b[0m data_array \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mcolumn_stack([\n\u001b[1;32m 17\u001b[0m ak\u001b[38;5;241m.\u001b[39mto_numpy(all_data[col])\u001b[38;5;241m.\u001b[39mflatten() \u001b[38;5;28;01mfor\u001b[39;00m col \u001b[38;5;129;01min\u001b[39;00m feature_columns\n\u001b[1;32m 18\u001b[0m ])\n\u001b[1;32m 20\u001b[0m \u001b[38;5;66;03m# Create column names\u001b[39;00m\n\u001b[1;32m 21\u001b[0m column_names \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39marray(feature_columns)\n", + "Cell \u001b[0;32mIn[18], line 17\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 12\u001b[0m feature_columns \u001b[38;5;241m=\u001b[39m [\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mphoton_pt\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mphoton_eta\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mphoton_phi\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mphoton_e\u001b[39m\u001b[38;5;124m'\u001b[39m, \n\u001b[1;32m 13\u001b[0m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mphoton_isTightID\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mphoton_ptcone20\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mmass\u001b[39m\u001b[38;5;124m'\u001b[39m]\n\u001b[1;32m 15\u001b[0m \u001b[38;5;66;03m# Convert to numpy array format that baler expects\u001b[39;00m\n\u001b[1;32m 16\u001b[0m data_array \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mcolumn_stack([\n\u001b[0;32m---> 17\u001b[0m \u001b[43mak\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mto_numpy\u001b[49m\u001b[43m(\u001b[49m\u001b[43mall_data\u001b[49m\u001b[43m[\u001b[49m\u001b[43mcol\u001b[49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39mflatten() \u001b[38;5;28;01mfor\u001b[39;00m col \u001b[38;5;129;01min\u001b[39;00m feature_columns\n\u001b[1;32m 18\u001b[0m ])\n\u001b[1;32m 20\u001b[0m \u001b[38;5;66;03m# Create column names\u001b[39;00m\n\u001b[1;32m 21\u001b[0m column_names \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39marray(feature_columns)\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages/awkward/_dispatch.py:75\u001b[0m, in \u001b[0;36mnamed_high_level_function..dispatch\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 70\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 71\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mAssertionError\u001b[39;00m(\n\u001b[1;32m 72\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhigh-level functions should only implement a single yield statement\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 73\u001b[0m )\n\u001b[0;32m---> 75\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m gen_or_result\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages/awkward/_errors.py:80\u001b[0m, in \u001b[0;36mErrorContext.__exit__\u001b[0;34m(self, exception_type, exception_value, traceback)\u001b[0m\n\u001b[1;32m 78\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_slate\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__dict__\u001b[39m\u001b[38;5;241m.\u001b[39mclear()\n\u001b[1;32m 79\u001b[0m \u001b[38;5;66;03m# Handle caught exception\u001b[39;00m\n\u001b[0;32m---> 80\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdecorate_exception(exception_type, exception_value)\n\u001b[1;32m 81\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 82\u001b[0m \u001b[38;5;66;03m# Step out of the way so that another ErrorContext can become primary.\u001b[39;00m\n\u001b[1;32m 83\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mprimary() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28mself\u001b[39m:\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages/awkward/_dispatch.py:67\u001b[0m, in \u001b[0;36mnamed_high_level_function..dispatch\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 65\u001b[0m \u001b[38;5;66;03m# Failed to find a custom overload, so resume the original function\u001b[39;00m\n\u001b[1;32m 66\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m---> 67\u001b[0m \u001b[38;5;28;43mnext\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mgen_or_result\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 68\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mStopIteration\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m err:\n\u001b[1;32m 69\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m err\u001b[38;5;241m.\u001b[39mvalue\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages/awkward/operations/ak_to_numpy.py:48\u001b[0m, in \u001b[0;36mto_numpy\u001b[0;34m(array, allow_missing)\u001b[0m\n\u001b[1;32m 45\u001b[0m \u001b[38;5;28;01myield\u001b[39;00m (array,)\n\u001b[1;32m 47\u001b[0m \u001b[38;5;66;03m# Implementation\u001b[39;00m\n\u001b[0;32m---> 48\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[43marray\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mallow_missing\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages/awkward/operations/ak_to_numpy.py:60\u001b[0m, in \u001b[0;36m_impl\u001b[0;34m(array, allow_missing)\u001b[0m\n\u001b[1;32m 57\u001b[0m backend \u001b[38;5;241m=\u001b[39m NumpyBackend\u001b[38;5;241m.\u001b[39minstance()\n\u001b[1;32m 58\u001b[0m numpy_layout \u001b[38;5;241m=\u001b[39m layout\u001b[38;5;241m.\u001b[39mto_backend(backend)\n\u001b[0;32m---> 60\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mnumpy_layout\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mto_backend_array\u001b[49m\u001b[43m(\u001b[49m\u001b[43mallow_missing\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mallow_missing\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages/awkward/contents/content.py:1121\u001b[0m, in \u001b[0;36mContent.to_backend_array\u001b[0;34m(self, allow_missing, backend)\u001b[0m\n\u001b[1;32m 1119\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 1120\u001b[0m backend \u001b[38;5;241m=\u001b[39m regularize_backend(backend)\n\u001b[0;32m-> 1121\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_to_backend_array\u001b[49m\u001b[43m(\u001b[49m\u001b[43mallow_missing\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbackend\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages/awkward/contents/indexedarray.py:1071\u001b[0m, in \u001b[0;36mIndexedArray._to_backend_array\u001b[0;34m(self, allow_missing, backend)\u001b[0m\n\u001b[1;32m 1070\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21m_to_backend_array\u001b[39m(\u001b[38;5;28mself\u001b[39m, allow_missing, backend):\n\u001b[0;32m-> 1071\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mproject\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_to_backend_array\u001b[49m\u001b[43m(\u001b[49m\u001b[43mallow_missing\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbackend\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages/awkward/contents/listarray.py:1533\u001b[0m, in \u001b[0;36mListArray._to_backend_array\u001b[0;34m(self, allow_missing, backend)\u001b[0m\n\u001b[1;32m 1529\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mto_ListOffsetArray64(\u001b[38;5;28;01mFalse\u001b[39;00m)\u001b[38;5;241m.\u001b[39m_to_backend_array(\n\u001b[1;32m 1530\u001b[0m allow_missing, backend\n\u001b[1;32m 1531\u001b[0m )\n\u001b[1;32m 1532\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1533\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mto_RegularArray\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39m_to_backend_array(allow_missing, backend)\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages/awkward/contents/listarray.py:320\u001b[0m, in \u001b[0;36mListArray.to_RegularArray\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 318\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mto_RegularArray\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[1;32m 319\u001b[0m offsets \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_compact_offsets64(\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[0;32m--> 320\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_broadcast_tooffsets64\u001b[49m\u001b[43m(\u001b[49m\u001b[43moffsets\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mto_RegularArray\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages/awkward/contents/listoffsetarray.py:291\u001b[0m, in \u001b[0;36mListOffsetArray.to_RegularArray\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 286\u001b[0m _size \u001b[38;5;241m=\u001b[39m Index64\u001b[38;5;241m.\u001b[39mempty(\u001b[38;5;241m1\u001b[39m, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backend\u001b[38;5;241m.\u001b[39mnplike)\n\u001b[1;32m 287\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m (\n\u001b[1;32m 288\u001b[0m _size\u001b[38;5;241m.\u001b[39mnplike \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backend\u001b[38;5;241m.\u001b[39mnplike\n\u001b[1;32m 289\u001b[0m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_offsets\u001b[38;5;241m.\u001b[39mnplike \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backend\u001b[38;5;241m.\u001b[39mnplike\n\u001b[1;32m 290\u001b[0m )\n\u001b[0;32m--> 291\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_backend\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmaybe_kernel_error\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 292\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_backend\u001b[49m\u001b[43m[\u001b[49m\n\u001b[1;32m 293\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mawkward_ListOffsetArray_toRegularArray\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 294\u001b[0m \u001b[43m \u001b[49m\u001b[43m_size\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdtype\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtype\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 295\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_offsets\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdtype\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtype\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 296\u001b[0m \u001b[43m \u001b[49m\u001b[43m]\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 297\u001b[0m \u001b[43m \u001b[49m\u001b[43m_size\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdata\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 298\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_offsets\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdata\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 299\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_offsets\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mlength\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 300\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 301\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 302\u001b[0m size \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backend\u001b[38;5;241m.\u001b[39mnplike\u001b[38;5;241m.\u001b[39mindex_as_shape_item(_size[\u001b[38;5;241m0\u001b[39m])\n\u001b[1;32m 303\u001b[0m length \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_offsets\u001b[38;5;241m.\u001b[39mlength \u001b[38;5;241m-\u001b[39m \u001b[38;5;241m1\u001b[39m\n", + "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages/awkward/_backends/backend.py:62\u001b[0m, in \u001b[0;36mBackend.maybe_kernel_error\u001b[0;34m(self, error)\u001b[0m\n\u001b[1;32m 60\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m\n\u001b[1;32m 61\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m---> 62\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mformat_kernel_error(error))\n", + "\u001b[0;31mValueError\u001b[0m: cannot convert to RegularArray because subarray lengths are not regular (in compiled code: https://github.com/scikit-hep/awkward/blob/awkward-cpp-46/awkward-cpp/src/cpu-kernels/awkward_ListOffsetArray_toRegularArray.cpp#L22)" + ] + } + ], + "source": [ + "# Convert processed data (with cuts applied) to dataframe\n", + "if all_data is not None:\n", + " processed_df = ak.to_dataframe(all_data)\n", + " print(processed_df.head())\n", + " \n", + " # Save processed data to CSV\n", + " processed_df.to_csv(\"processed_photon_data_all_periods.csv\", index=False)\n", + " print(\"Saved as processed_photon_data_all_periods.csv\")\n", + " \n", + " # Convert to the format baler expects\n", + " # Extract the main features (excluding sample identifier for now)\n", + " feature_columns = ['photon_pt', 'photon_eta', 'photon_phi', 'photon_e', \n", + " 'photon_isTightID', 'photon_ptcone20', 'mass']\n", + " \n", + " # Convert to numpy array format that baler expects\n", + " data_array = np.column_stack([\n", + " ak.to_numpy(all_data[col]).flatten() for col in feature_columns\n", + " ])\n", + " \n", + " # Create column names\n", + " column_names = np.array(feature_columns)\n", + " \n", + " # Save in baler-compatible format\n", + " np.savez('processed_photon_data_all_periods.npz', \n", + " data=data_array,\n", + " names=column_names)\n", + " print(\"Saved as processed_photon_data_all_periods.npz in baler-compatible format\")\n", + " \n", + " # Print summary of processed data\n", + " print(f\"\\nProcessed data summary:\")\n", + " print(f\"Number of events after cuts: {len(all_data)}\")\n", + " print(f\"Data shape for baler: {data_array.shape}\")\n", + " print(f\"Features included: {list(column_names)}\")\n", + " \n", + " # Show breakdown by sample\n", + " # print(f\"\\nBreakdown by sample:\")\n", + " # sample_counts = processed_df.groupby('sample').size()\n", + " # for sample, count in sample_counts.items():\n", + " # print(f\" {sample}: {count} events\")\n", + "else:\n", + " print(\"No data to save.\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "baler-NkYVSVSD-py3.9", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.21" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/Hyy_data_preprocessing_backup.ipynb b/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/Hyy_data_preprocessing_backup.ipynb new file mode 100644 index 00000000..ccca618b --- /dev/null +++ b/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/Hyy_data_preprocessing_backup.ipynb @@ -0,0 +1,435 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: uproot in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (5.6.2)\n", + "Collecting uproot\n", + " Using cached uproot-5.6.3-py3-none-any.whl.metadata (33 kB)\n", + "Requirement already satisfied: awkward>=2.4.6 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (2.8.4)\n", + "Requirement already satisfied: cramjam>=2.5.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (2.10.0)\n", + "Requirement already satisfied: fsspec in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (2024.2.0)\n", + "Requirement already satisfied: numpy in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (1.23.5)\n", + "Requirement already satisfied: packaging in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (23.2)\n", + "Requirement already satisfied: typing-extensions>=4.1.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (4.10.0)\n", + "Requirement already satisfied: xxhash in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (3.5.0)\n", + "Requirement already satisfied: awkward-cpp==46 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.4.6->uproot) (46)\n", + "Requirement already satisfied: importlib-metadata>=4.13.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.4.6->uproot) (7.0.1)\n", + "Requirement already satisfied: zipp>=0.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from importlib-metadata>=4.13.0->awkward>=2.4.6->uproot) (3.17.0)\n", + "Using cached uproot-5.6.3-py3-none-any.whl (382 kB)\n", + "Installing collected packages: uproot\n", + " Attempting uninstall: uproot\n", + " Found existing installation: uproot 5.6.2\n", + " Uninstalling uproot-5.6.2:\n", + " Successfully uninstalled uproot-5.6.2\n", + "Successfully installed uproot-5.6.3\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.1.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", + "Requirement already satisfied: pandas in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (2.3.0)\n", + "Collecting pandas\n", + " Downloading pandas-2.3.1-cp39-cp39-macosx_11_0_arm64.whl.metadata (91 kB)\n", + "Requirement already satisfied: numpy>=1.22.4 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas) (1.23.5)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas) (2.9.0.post0)\n", + "Requirement already satisfied: pytz>=2020.1 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas) (2025.2)\n", + "Requirement already satisfied: tzdata>=2022.7 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas) (2025.2)\n", + "Requirement already satisfied: six>=1.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from python-dateutil>=2.8.2->pandas) (1.16.0)\n", + "Downloading pandas-2.3.1-cp39-cp39-macosx_11_0_arm64.whl (10.8 MB)\n", + "\u001b[2K \u001b[90mโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”\u001b[0m \u001b[32m10.8/10.8 MB\u001b[0m \u001b[31m1.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0mm\n", + "\u001b[?25hInstalling collected packages: pandas\n", + " Attempting uninstall: pandas\n", + " Found existing installation: pandas 2.3.0\n", + " Uninstalling pandas-2.3.0:\n", + " Successfully uninstalled pandas-2.3.0\n", + "Successfully installed pandas-2.3.1\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.1.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", + "Requirement already satisfied: requests in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (2.32.4)\n", + "Requirement already satisfied: aiohttp in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (3.12.13)\n", + "Requirement already satisfied: charset_normalizer<4,>=2 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from requests) (3.4.2)\n", + "Requirement already satisfied: idna<4,>=2.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from requests) (3.10)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from requests) (2.5.0)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from requests) (2025.6.15)\n", + "Requirement already satisfied: aiohappyeyeballs>=2.5.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (2.6.1)\n", + "Requirement already satisfied: aiosignal>=1.1.2 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (1.3.2)\n", + "Requirement already satisfied: async-timeout<6.0,>=4.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (5.0.1)\n", + "Requirement already satisfied: attrs>=17.3.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (25.3.0)\n", + "Requirement already satisfied: frozenlist>=1.1.1 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (1.7.0)\n", + "Requirement already satisfied: multidict<7.0,>=4.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (6.5.0)\n", + "Requirement already satisfied: propcache>=0.2.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (0.3.2)\n", + "Requirement already satisfied: yarl<2.0,>=1.17.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (1.20.1)\n", + "Requirement already satisfied: typing-extensions>=4.1.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from multidict<7.0,>=4.5->aiohttp) (4.10.0)\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.1.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", + "Requirement already satisfied: awkward-pandas in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (2023.8.0)\n", + "Requirement already satisfied: awkward>=2.0.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward-pandas) (2.8.4)\n", + "Requirement already satisfied: pandas>=1.2 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward-pandas) (2.3.1)\n", + "Requirement already satisfied: awkward-cpp==46 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (46)\n", + "Requirement already satisfied: fsspec>=2022.11.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (2024.2.0)\n", + "Requirement already satisfied: importlib-metadata>=4.13.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (7.0.1)\n", + "Requirement already satisfied: numpy>=1.18.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (1.23.5)\n", + "Requirement already satisfied: packaging in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (23.2)\n", + "Requirement already satisfied: typing-extensions>=4.1.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (4.10.0)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas>=1.2->awkward-pandas) (2.9.0.post0)\n", + "Requirement already satisfied: pytz>=2020.1 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas>=1.2->awkward-pandas) (2025.2)\n", + "Requirement already satisfied: tzdata>=2022.7 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas>=1.2->awkward-pandas) (2025.2)\n", + "Requirement already satisfied: zipp>=0.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from importlib-metadata>=4.13.0->awkward>=2.0.0->awkward-pandas) (3.17.0)\n", + "Requirement already satisfied: six>=1.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from python-dateutil>=2.8.2->pandas>=1.2->awkward-pandas) (1.16.0)\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.1.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", + "Requirement already satisfied: vector in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (1.6.2)\n", + "Requirement already satisfied: numpy>=1.13.3 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from vector) (1.23.5)\n", + "Requirement already satisfied: packaging>=19 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from vector) (23.2)\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.1.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n" + ] + } + ], + "source": [ + "import sys\n", + "!{sys.executable} -m pip install --upgrade uproot\n", + "!{sys.executable} -m pip install --upgrade pandas\n", + "!{sys.executable} -m pip install requests aiohttp\n", + "!{sys.executable} -m pip install awkward-pandas\n", + "!{sys.executable} -m pip install vector " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Keys in ROOT file: ['analysis;1']\n" + ] + } + ], + "source": [ + "import uproot\n", + "import pandas as pd\n", + "import numpy as np\n", + "import vector\n", + "import awkward as ak\n", + "\n", + "path = \"https://atlas-opendata.web.cern.ch/atlas-opendata/13TeV/GamGam/Data/\"\n", + "\n", + "samples_list = ['data15_periodD','data15_periodE','data15_periodF','data15_periodG','data15_periodH','data15_periodJ','data16_periodA','data16_periodB','data16_periodC','data16_periodD','data16_periodE','data16_periodF','data16_periodG','data16_periodK','data16_periodL']\n", + "\n", + "data_15G_path = path + samples_list[3] + \".root\"\n", + "\n", + "# Inspect the file to find available trees\n", + "with uproot.open(data_15G_path) as file:\n", + " print(\"Keys in ROOT file:\", file.keys())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "aggregated_path = path\n", + "\n", + "for sample in samples_list:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The number of entries in the tree are: 164583\n", + "The information stored in the tree is: ['num_events', 'sum_of_weights', 'sum_of_weights_squared', 'corrected_xsec', 'dsid', 'category', 'sig_ph', 'n_sig_ph', 'ScaleFactor_PILEUP', 'mcWeight', 'xsec', 'filteff', 'kfac', 'channelNumber', 'eventNumber', 'runNumber', 'trigP', 'trigDT', 'trigT', 'trigE', 'trigM', 'trigMET', 'ScaleFactor_BTAG', 'jet_n', 'jet_pt', 'jet_eta', 'jet_phi', 'jet_e', 'jet_btag_quantile', 'jet_jvt', 'largeRJet_n', 'largeRJet_pt', 'largeRJet_eta', 'largeRJet_phi', 'largeRJet_e', 'largeRJet_m', 'largeRJet_D2', 'ScaleFactor_ELE', 'ScaleFactor_MUON', 'scaleFactor_LepTRIGGER', 'lep_n', 'lep_type', 'lep_pt', 'lep_eta', 'lep_phi', 'lep_e', 'lep_charge', 'lep_ptvarcone30', 'lep_topoetcone20', 'lep_z0', 'lep_d0', 'lep_d0sig', 'lep_isTightID', 'lep_isMediumID', 'lep_isLooseID', 'lep_isTightIso', 'lep_isLooseIso', 'ScaleFactor_PHOTON', 'photon_n', 'photon_pt', 'photon_eta', 'photon_phi', 'photon_e', 'photon_ptcone20', 'photon_topoetcone40', 'photon_isLooseID', 'photon_isTightID', 'photon_isLooseIso', 'photon_isTightIso', 'ScaleFactor_TAU', 'ScaleFactor_TauTRIGGER', 'ScaleFactor_DiTauTRIGGER', 'tau_n', 'tau_pt', 'tau_eta', 'tau_phi', 'tau_e', 'tau_charge', 'tau_nTracks', 'tau_isTight', 'tau_RNNJetScore', 'tau_RNNEleScore', 'met', 'met_phi', 'met_mpx', 'met_mpy']\n" + ] + } + ], + "source": [ + "# Accessing the file from the online database (\":analysis\" opens the tree in a desired manner)\n", + "with uproot.open(data_15G_path + \":analysis\") as t:\n", + " tree = t\n", + "\n", + "# The number of entries in the tree can be viewed\n", + "print(\"The number of entries in the tree are:\", tree.num_entries)\n", + "\n", + "# All the information stored in the tree can be viewed using the .keys() method.\n", + "print(\"The information stored in the tree is:\", tree.keys())" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[{photon_e: [53, 41.5, 2.67, 5.41, 2.53]}, {...}, ..., {photon_e: [752, ...]}]\n" + ] + } + ], + "source": [ + "print(tree[\"photon_e\"].arrays())\n", + "\n", + "variables = [\"photon_pt\",\"photon_eta\",\"photon_phi\",\"photon_e\",\n", + " \"photon_isTightID\",\"photon_ptcone20\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The reconstruction quality of the two photons: [True] [False]\n", + "Apply cut based on reconstruction quality requirements?[True]\n", + "The transverse momentum of the two photons: [35.9] [39.5]\n", + "Apply cut based on the transverse momentum requirements?[True]\n", + "The calorimeter isolation of the two photons: [0.265] [0.106]\n", + "Apply cut based on the calorimeter isolation requirements?[True]\n", + "The eta of the two photons: [-0.941] [-0.321]\n", + "Apply cut based on the eta requirements?[False]\n", + "The invariant mass of the 2-photon state is: [78.8] GeV\n", + "The invariant mass based isolation of the two photons: [0.455] [0.501]\n", + "Apply cut based on the invariant mass based isolation requirements?[False]\n" + ] + } + ], + "source": [ + "# This selects the first entry of the tree\n", + "entry = tree.arrays(library=\"ak\")[:1]\n", + "\n", + "# Cut on the photon reconstruction quality\n", + "photon_reconstruction = entry['photon_isTightID']\n", + "# isTightID==True means a photon identified as being well reconstructed, only the events which have True for both photons are kept\n", + "photon_reconstruction_cut_bool = (photon_reconstruction[:, 0] == False) | (photon_reconstruction[:, 1]==False) # [:, i] selects the i-th lepton in each event\n", + "print(\"The reconstruction quality of the two photons:\", photon_reconstruction[:,0], photon_reconstruction[:,1])\n", + "print(f\"Apply cut based on reconstruction quality requirements?{photon_reconstruction_cut_bool}\")\n", + " \n", + "# Cut on the transverse momentum\n", + "photon_pt = entry['photon_pt']\n", + "# Only the events where the leading photon has transverse momentum (pt) > 50 GeV and the sub-leading photon has pt > 30 GeV are kept\n", + "# Since the two photons for each entry are ordered, the first photon is the leading one and the second one is the sub-leading one\n", + "photon_pt_cut_bool = (photon_pt[:,0] < 50) | (photon_pt[:,1] < 30)\n", + "print(\"The transverse momentum of the two photons:\", photon_pt[:,0], photon_pt[:,1])\n", + "print(f\"Apply cut based on the transverse momentum requirements?{photon_pt_cut_bool}\")\n", + "\n", + "# Cut on the calorimeter isolation\n", + "photon_ptcone20 = entry['photon_ptcone20']\n", + "# Only the events where the invidivual photon calorimeter isolation is less than 5.5% are kept\n", + "photon_caloiso_cut_bool = (((photon_ptcone20[:,0]/photon_pt[:,0]) > 0.055) | ((photon_ptcone20[:,1]/photon_pt[:,1]) > 0.055))\n", + "print(\"The calorimeter isolation of the two photons:\", (photon_ptcone20[:,0]/photon_pt[:,0]), (photon_ptcone20[:,1]/photon_pt[:,1]))\n", + "print(f\"Apply cut based on the calorimeter isolation requirements?{photon_caloiso_cut_bool}\")\n", + "\n", + "# Cut on the pseudorapidity in the barrel/end-cap transition region\n", + "photon_eta = entry['photon_eta']\n", + "# Only the events where modulus of photon_eta is outside the range 1.37 to 1.52 are kept\n", + "condition_0 = (np.abs(photon_eta[:, 0]) < 1.52) & (np.abs(photon_eta[:, 0]) > 1.37)\n", + "condition_1 = (np.abs(photon_eta[:, 1]) < 1.52) & (np.abs(photon_eta[:, 1]) > 1.37)\n", + "photon_eta_cut_bool = (condition_0 | condition_1)\n", + "print(\"The eta of the two photons:\", photon_eta[:,0], photon_eta[:,1])\n", + "print(f\"Apply cut based on the eta requirements?{photon_eta_cut_bool}\")\n", + "\n", + "# This calculates the invariant mass of the 2-photon state\n", + "p4 = vector.zip({\"pt\": entry['photon_pt'], \"eta\": entry['photon_eta'], \"phi\": entry['photon_phi'], \"e\": entry['photon_e']})\n", + "invariant_mass = (p4[:, 0] + p4[:, 1]).M # .M calculates the invariant mass\n", + "print(f\"The invariant mass of the 2-photon state is: {invariant_mass} GeV\")\n", + "\n", + "# Cut on the invariant mass based isolation\n", + "# Only the events where the invididual photon invariant mass based isolation is larger than 35% are kept\n", + "photon_massiso_cut_bool = ((photon_pt[:,0]/invariant_mass) < 0.35) | ((photon_pt[:,1]/invariant_mass) < 0.35)\n", + "print(\"The invariant mass based isolation of the two photons:\", (photon_pt[:,0]/invariant_mass), (photon_pt[:,1]/invariant_mass))\n", + "print(f\"Apply cut based on the invariant mass based isolation requirements?{photon_massiso_cut_bool}\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# Cut on the photon reconstruction quality\n", + "def cut_photon_reconstruction(photon_isTightID):\n", + " # Only the events which have True for both photons are kept\n", + " return (photon_isTightID[:,0]==False) | (photon_isTightID[:,1]==False) \n", + "\n", + "# Cut on the transverse momentum\n", + "def cut_photon_pt(photon_pt):\n", + "# Only the events where photon_pt[0] > 50 GeV and photon_pt[1] > 30 GeV are kept\n", + " return (photon_pt[:,0] < 50) | (photon_pt[:,1] < 30)\n", + "\n", + "# Cut on the energy isolation\n", + "def cut_isolation_pt(photon_ptcone20, photon_pt):\n", + "# Only the events where the calorimeter isolation is less than 5.5% are kept\n", + " return ((photon_ptcone20[:,0]/photon_pt[:,0]) > 0.055) | ((photon_ptcone20[:,1]/photon_pt[:,1]) > 0.055)\n", + "\n", + "# Cut on the pseudorapidity in barrel/end-cap transition region\n", + "def cut_photon_eta_transition(photon_eta):\n", + "# Only the events where modulus of photon_eta is outside the range 1.37 to 1.52 are kept\n", + " condition_0 = (np.abs(photon_eta[:, 0]) < 1.52) & (np.abs(photon_eta[:, 0]) > 1.37)\n", + " condition_1 = (np.abs(photon_eta[:, 1]) < 1.52) & (np.abs(photon_eta[:, 1]) > 1.37)\n", + " return condition_0 | condition_1\n", + "\n", + "# This function calculates the invariant mass of the 2-photon state\n", + "def calc_mass(photon_pt, photon_eta, photon_phi, photon_e):\n", + " p4 = vector.zip({\"pt\": photon_pt, \"eta\": photon_eta, \"phi\": photon_phi, \"e\": photon_e})\n", + " invariant_mass = (p4[:, 0] + p4[:, 1]).M # .M calculates the invariant mass\n", + " return invariant_mass\n", + "\n", + "# Cut on null diphoton invariant mass\n", + "def cut_mass(invariant_mass):\n", + " return (invariant_mass == 0)\n", + "\n", + "# Cut on diphoton invariant mass based isolation \n", + "# Only the events where the invididual photon invariant mass based isolation is larger than 35% are kept\n", + "def cut_iso_mass(photon_pt, invariant_mass):\n", + " return ((photon_pt[:,0]/invariant_mass) < 0.35) | ((photon_pt[:,1]/invariant_mass) < 0.35)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# Define empty list to hold all data for this sample\n", + "sample_data = []\n", + "\n", + "# Perform the cuts for each data entry in the tree\n", + "for data in tree.iterate(variables, library=\"ak\"):\n", + " \n", + " # data[~boolean] is used to remove entries from the data set\n", + " photon_isTightID = data['photon_isTightID']\n", + " data = data[~cut_photon_reconstruction(photon_isTightID)]\n", + "\n", + " photon_pt = data['photon_pt']\n", + " data = data[~cut_photon_pt(photon_pt)]\n", + "\n", + " data = data[~cut_isolation_pt(data['photon_ptcone20'],data['photon_pt'])]\n", + "\n", + " photon_eta = data['photon_eta']\n", + " data = data[~cut_photon_eta_transition(photon_eta)]\n", + " \n", + " data['mass'] = calc_mass(data['photon_pt'], data['photon_eta'], data['photon_phi'], data['photon_e'])\n", + " \n", + " data = data[~cut_mass(data['mass'])]\n", + " \n", + " data = data[~cut_iso_mass(data['photon_pt'], data['mass'])]\n", + " \n", + " # Append data to the whole sample data list\n", + " sample_data.append(data)\n", + "\n", + "# turn sample_data back into an awkward array\n", + "data15_periodG = ak.concatenate(sample_data)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " photon_pt photon_eta photon_phi photon_e \\\n", + "entry subentry \n", + "0 0 122.060272 -1.669817 1.423065 335.633789 \n", + " 1 34.432838 -1.154988 2.904564 60.068893 \n", + " 2 1.800235 -0.733997 1.289606 2.307341 \n", + "1 0 59.504601 0.336426 -1.137864 62.903931 \n", + " 1 53.576233 1.083889 2.160784 88.251633 \n", + "\n", + " photon_isTightID photon_ptcone20 mass \n", + "entry subentry \n", + "0 0 True 0.0 93.781326 \n", + " 1 True 0.0 93.781326 \n", + " 2 False 0.0 93.781326 \n", + "1 0 True 0.0 120.579010 \n", + " 1 True 0.0 120.579010 \n", + "Saved as processed_photon_data.csv\n", + "Saved as processed_photon_data.npz with all variables\n", + "\n", + "Processed data summary:\n", + "Number of events after cuts: 2088\n", + "Variables included: ['photon_pt', 'photon_eta', 'photon_phi', 'photon_e', 'photon_isTightID', 'photon_ptcone20', 'mass']\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages/numpy/lib/npyio.py:716: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray.\n", + " val = np.asanyarray(val)\n" + ] + } + ], + "source": [ + "# Convert processed data (with cuts applied) to dataframe\n", + "processed_df = ak.to_dataframe(data15_periodG)\n", + "print(processed_df.head())\n", + "\n", + "# Save processed data to CSV\n", + "processed_df.to_csv(\"processed_photon_data.csv\", index=False)\n", + "print(\"Saved as processed_photon_data.csv\")\n", + "\n", + "# Save processed data to NPZ with all variables\n", + "np.savez('processed_photon_data.npz', \n", + " photon_pt=ak.to_list(data15_periodG['photon_pt']),\n", + " photon_eta=ak.to_list(data15_periodG['photon_eta']),\n", + " photon_phi=ak.to_list(data15_periodG['photon_phi']),\n", + " photon_e=ak.to_list(data15_periodG['photon_e']),\n", + " photon_isTightID=ak.to_list(data15_periodG['photon_isTightID']),\n", + " photon_ptcone20=ak.to_list(data15_periodG['photon_ptcone20']),\n", + " mass=ak.to_list(data15_periodG['mass']))\n", + "print(\"Saved as processed_photon_data.npz with all variables\")\n", + "\n", + "# Print summary of processed data\n", + "print(f\"\\nProcessed data summary:\")\n", + "print(f\"Number of events after cuts: {len(data15_periodG)}\")\n", + "print(f\"Variables included: {list(data15_periodG.fields)}\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "baler-NkYVSVSD-py3.9", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.21" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/Hyy_data_preprocessing_two_photons.py b/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/Hyy_data_preprocessing_two_photons.py new file mode 100644 index 00000000..3f12b1bb --- /dev/null +++ b/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/Hyy_data_preprocessing_two_photons.py @@ -0,0 +1,341 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "!{sys.executable} -m pip install --upgrade uproot\n", + "!{sys.executable} -m pip install --upgrade pandas\n", + "!{sys.executable} -m pip install requests aiohttp\n", + "!{sys.executable} -m pip install awkward-pandas\n", + "!{sys.executable} -m pip install vector " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import uproot\n", + "import pandas as pd\n", + "import numpy as np\n", + "import vector\n", + "import awkward as ak\n", + "\n", + "path = \"https://atlas-opendata.web.cern.ch/atlas-opendata/13TeV/GamGam/Data/\"\n", + "\n", + "samples_list = ['data15_periodD','data15_periodE','data15_periodF','data15_periodG','data15_periodH','data15_periodJ','data16_periodA','data16_periodB','data16_periodC','data16_periodD','data16_periodE','data16_periodF','data16_periodG','data16_periodK','data16_periodL']\n", + "\n", + "# Test with first sample to verify file structure\n", + "test_path = path + samples_list[0] + \".root\"\n", + "\n", + "# Inspect the file to find available trees\n", + "with uproot.open(test_path) as file:\n", + " print(\"Keys in ROOT file:\", file.keys())" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# Accessing the file from the online database (\":analysis\" opens the tree in a desired manner)\n", + "with uproot.open(test_path + \":analysis\") as t:\n", + " tree = t\n", + "\n", + "# The number of entries in the tree can be viewed\n", + "print(\"The number of entries in the tree are:\", tree.num_entries)\n", + "\n", + "# All the information stored in the tree can be viewed using the .keys() method.\n", + "print(\"The information stored in the tree is:\", tree.keys())" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "print(tree[\"photon_e\"].arrays())\n", + "\n", + "variables = [\"photon_pt\",\"photon_eta\",\"photon_phi\",\"photon_e\",\n", + " \"photon_isTightID\",\"photon_ptcone20\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "# This selects the first entry of the tree\n", + "entry = tree.arrays(library=\"ak\")[:1]\n", + "\n", + "# Cut on the photon reconstruction quality\n", + "photon_reconstruction = entry['photon_isTightID']\n", + "# isTightID==True means a photon identified as being well reconstructed, only the events which have True for both photons are kept\n", + "photon_reconstruction_cut_bool = (photon_reconstruction[:, 0] == False) | (photon_reconstruction[:, 1]==False) # [:, i] selects the i-th lepton in each event\n", + "print(\"The reconstruction quality of the two photons:\", photon_reconstruction[:,0], photon_reconstruction[:,1])\n", + "print(f\"Apply cut based on reconstruction quality requirements?{photon_reconstruction_cut_bool}\")\n", + " \n", + "# Cut on the transverse momentum\n", + "photon_pt = entry['photon_pt']\n", + "# Only the events where the leading photon has transverse momentum (pt) > 50 GeV and the sub-leading photon has pt > 30 GeV are kept\n", + "# Since the two photons for each entry are ordered, the first photon is the leading one and the second one is the sub-leading one\n", + "photon_pt_cut_bool = (photon_pt[:,0] < 50) | (photon_pt[:,1] < 30)\n", + "print(\"The transverse momentum of the two photons:\", photon_pt[:,0], photon_pt[:,1])\n", + "print(f\"Apply cut based on the transverse momentum requirements?{photon_pt_cut_bool}\")\n", + "\n", + "# Cut on the calorimeter isolation\n", + "photon_ptcone20 = entry['photon_ptcone20']\n", + "# Only the events where the invidivual photon calorimeter isolation is less than 5.5% are kept\n", + "photon_caloiso_cut_bool = (((photon_ptcone20[:,0]/photon_pt[:,0]) > 0.055) | ((photon_ptcone20[:,1]/photon_pt[:,1]) > 0.055))\n", + "print(\"The calorimeter isolation of the two photons:\", (photon_ptcone20[:,0]/photon_pt[:,0]), (photon_ptcone20[:,1]/photon_pt[:,1]))\n", + "print(f\"Apply cut based on the calorimeter isolation requirements?{photon_caloiso_cut_bool}\")\n", + "\n", + "# Cut on the pseudorapidity in the barrel/end-cap transition region\n", + "photon_eta = entry['photon_eta']\n", + "# Only the events where modulus of photon_eta is outside the range 1.37 to 1.52 are kept\n", + "condition_0 = (np.abs(photon_eta[:, 0]) < 1.52) & (np.abs(photon_eta[:, 0]) > 1.37)\n", + "condition_1 = (np.abs(photon_eta[:, 1]) < 1.52) & (np.abs(photon_eta[:, 1]) > 1.37)\n", + "photon_eta_cut_bool = (condition_0 | condition_1)\n", + "print(\"The eta of the two photons:\", photon_eta[:,0], photon_eta[:,1])\n", + "print(f\"Apply cut based on the eta requirements?{photon_eta_cut_bool}\")\n", + "\n", + "# This calculates the invariant mass of the 2-photon state\n", + "p4 = vector.zip({\"pt\": entry['photon_pt'], \"eta\": entry['photon_eta'], \"phi\": entry['photon_phi'], \"e\": entry['photon_e']})\n", + "invariant_mass = (p4[:, 0] + p4[:, 1]).M # .M calculates the invariant mass\n", + "print(f\"The invariant mass of the 2-photon state is: {invariant_mass} GeV\")\n", + "\n", + "# Cut on the invariant mass based isolation\n", + "# Only the events where the invididual photon invariant mass based isolation is larger than 35% are kept\n", + "photon_massiso_cut_bool = ((photon_pt[:,0]/invariant_mass) < 0.35) | ((photon_pt[:,1]/invariant_mass) < 0.35)\n", + "print(\"The invariant mass based isolation of the two photons:\", (photon_pt[:,0]/invariant_mass), (photon_pt[:,1]/invariant_mass))\n", + "print(f\"Apply cut based on the invariant mass based isolation requirements?{photon_massiso_cut_bool}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# Cut on the photon reconstruction quality\n", + "def cut_photon_reconstruction(photon_isTightID):\n", + " # Only the events which have True for both photons are kept\n", + " return (photon_isTightID[:,0]==False) | (photon_isTightID[:,1]==False) \n", + "\n", + "# Cut on the transverse momentum\n", + "def cut_photon_pt(photon_pt):\n", + "# Only the events where photon_pt[0] > 50 GeV and photon_pt[1] > 30 GeV are kept\n", + " return (photon_pt[:,0] < 50) | (photon_pt[:,1] < 30)\n", + "\n", + "# Cut on the energy isolation\n", + "def cut_isolation_pt(photon_ptcone20, photon_pt):\n", + "# Only the events where the calorimeter isolation is less than 5.5% are kept\n", + " return ((photon_ptcone20[:,0]/photon_pt[:,0]) > 0.055) | ((photon_ptcone20[:,1]/photon_pt[:,1]) > 0.055)\n", + "\n", + "# Cut on the pseudorapidity in barrel/end-cap transition region\n", + "def cut_photon_eta_transition(photon_eta):\n", + "# Only the events where modulus of photon_eta is outside the range 1.37 to 1.52 are kept\n", + " condition_0 = (np.abs(photon_eta[:, 0]) < 1.52) & (np.abs(photon_eta[:, 0]) > 1.37)\n", + " condition_1 = (np.abs(photon_eta[:, 1]) < 1.52) & (np.abs(photon_eta[:, 1]) > 1.37)\n", + " return condition_0 | condition_1\n", + "\n", + "# This function calculates the invariant mass of the 2-photon state\n", + "def calc_mass(photon_pt, photon_eta, photon_phi, photon_e):\n", + " p4 = vector.zip({\"pt\": photon_pt, \"eta\": photon_eta, \"phi\": photon_phi, \"e\": photon_e})\n", + " invariant_mass = (p4[:, 0] + p4[:, 1]).M # .M calculates the invariant mass\n", + " return invariant_mass\n", + "\n", + "# Cut on null diphoton invariant mass\n", + "def cut_mass(invariant_mass):\n", + " return (invariant_mass == 0)\n", + "\n", + "# Cut on diphoton invariant mass based isolation \n", + "# Only the events where the invididual photon invariant mass based isolation is larger than 35% are kept\n", + "def cut_iso_mass(photon_pt, invariant_mass):\n", + " return ((photon_pt[:,0]/invariant_mass) < 0.35) | ((photon_pt[:,1]/invariant_mass) < 0.35)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# Define empty list to hold all data for all samples\n", + "all_samples_data = []\n", + "\n", + "# Process each sample in the samples_list\n", + "for sample_name in samples_list:\n", + " print(f\"Processing {sample_name}...\")\n", + " \n", + " # Construct the file path for this sample\n", + " sample_path = path + sample_name + \".root\"\n", + " \n", + " # Define empty list to hold all data for this sample\n", + " sample_data = []\n", + " \n", + " try:\n", + " # Perform the cuts for each data entry in the tree\n", + " with uproot.open(sample_path + \":analysis\") as tree:\n", + " for data in tree.iterate(variables, library=\"ak\"):\n", + " \n", + " # data[~boolean] is used to remove entries from the data set\n", + " photon_isTightID = data['photon_isTightID']\n", + " data = data[~cut_photon_reconstruction(photon_isTightID)]\n", + "\n", + " photon_pt = data['photon_pt']\n", + " data = data[~cut_photon_pt(photon_pt)]\n", + "\n", + " data = data[~cut_isolation_pt(data['photon_ptcone20'],data['photon_pt'])]\n", + "\n", + " photon_eta = data['photon_eta']\n", + " data = data[~cut_photon_eta_transition(photon_eta)]\n", + " \n", + " data['mass'] = calc_mass(data['photon_pt'], data['photon_eta'], data['photon_phi'], data['photon_e'])\n", + " \n", + " data = data[~cut_mass(data['mass'])]\n", + " \n", + " data = data[~cut_iso_mass(data['photon_pt'], data['mass'])]\n", + " \n", + " # Append data to the sample data list\n", + " sample_data.append(data)\n", + " \n", + " # turn sample_data back into an awkward array\n", + " if sample_data:\n", + " processed_sample = ak.concatenate(sample_data)\n", + " # Add sample identifier\n", + " processed_sample['sample'] = sample_name\n", + " all_samples_data.append(processed_sample)\n", + " print(f\" {sample_name}: {len(processed_sample)} events after cuts\")\n", + " else:\n", + " print(f\" {sample_name}: No events passed cuts\")\n", + " \n", + " except Exception as e:\n", + " print(f\" Error processing {sample_name}: {e}\")\n", + " continue\n", + "\n", + "# Combine all samples into one dataset\n", + "if all_samples_data:\n", + " all_data = ak.concatenate(all_samples_data)\n", + " print(f\"\\nTotal events across all samples: {len(all_data)}\")\n", + "else:\n", + " print(\"\\nNo data was successfully processed from any sample.\")\n", + " all_data = None" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Convert processed data (with cuts applied) to dataframe\n", + "if all_data is not None:\n", + " processed_df = ak.to_dataframe(all_data)\n", + " print(processed_df.head())\n", + " \n", + " # Save processed data to CSV\n", + " processed_df.to_csv(\"processed_photon_data_all_periods.csv\", index=False)\n", + " print(\"Saved as processed_photon_data_all_periods.csv\")\n", + " \n", + " # Filter to only events with exactly two photons\n", + " event_photon_counts = processed_df.groupby('entry').size()\n", + " events_with_two_photons = event_photon_counts[event_photon_counts == 2].index\n", + " \n", + " print(f\"Total events: {len(event_photon_counts)}\")\n", + " print(f\"Events with exactly 2 photons: {len(events_with_two_photons)}\")\n", + " \n", + " # Filter the dataframe\n", + " filtered_df = processed_df.loc[processed_df.index.get_level_values('entry').isin(events_with_two_photons)]\n", + " \n", + " # Convert to the format baler expects\n", + " feature_columns = ['photon_pt', 'photon_eta', 'photon_phi', 'photon_e', \n", + " 'photon_isTightID', 'photon_ptcone20']\n", + " \n", + " event_data = []\n", + " \n", + " for event_idx in events_with_two_photons:\n", + " event_df = filtered_df.loc[event_idx]\n", + " \n", + " # Take both photons' data for each feature\n", + " event_row = []\n", + " \n", + " # Add mass first (it's per event, not per photon)\n", + " if 'mass' in event_df.columns:\n", + " event_row.append(float(event_df['mass'].iloc[0]))\n", + " else:\n", + " event_row.append(0.0)\n", + " \n", + " # Add photon-specific features for both photons\n", + " for col in feature_columns:\n", + " if col in event_df.columns:\n", + " photon_values = event_df[col].values\n", + " event_row.extend([float(photon_values[0]), float(photon_values[1])])\n", + " else:\n", + " event_row.extend([0.0, 0.0])\n", + " \n", + " event_data.append(event_row)\n", + " \n", + " # Convert to numpy array\n", + " data_array = np.array(event_data)\n", + " \n", + " # Create column names for both photons\n", + " column_names = ['mass'] # Event-level feature\n", + " for col in feature_columns:\n", + " column_names.extend([f'{col}_ph1', f'{col}_ph2']) # Photon-specific features\n", + " \n", + " column_names = np.array(column_names)\n", + " \n", + " # Save in baler-compatible format\n", + " np.savez('processed_photon_data_all_periods.npz', \n", + " data=data_array,\n", + " names=column_names)\n", + " print(\"Saved as processed_photon_data_all_periods.npz in baler-compatible format\")\n", + " \n", + " # Print summary of processed data\n", + " print(f\"\\nProcessed data summary:\")\n", + " print(f\"Number of events with exactly 2 photons: {len(events_with_two_photons)}\")\n", + " print(f\"Data shape for baler: {data_array.shape}\")\n", + " print(f\"Features included: {list(column_names)}\")\n", + " \n", + " # Show breakdown by sample\n", + " print(f\"\\nBreakdown by sample:\")\n", + " sample_counts = filtered_df.groupby('sample').size()\n", + " for sample, count in sample_counts.items():\n", + " print(f\" {sample}: {count} events\")\n", + "else:\n", + " print(\"No data to save.\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "baler-NkYVSVSD-py3.9", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.21" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/Hyy_root_to_csv_npz.ipynb b/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/Hyy_root_to_csv_npz.ipynb new file mode 100644 index 00000000..457c7be6 --- /dev/null +++ b/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/Hyy_root_to_csv_npz.ipynb @@ -0,0 +1,221 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: uproot in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (5.6.2)\n", + "Requirement already satisfied: awkward>=2.4.6 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (2.8.4)\n", + "Requirement already satisfied: cramjam>=2.5.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (2.10.0)\n", + "Requirement already satisfied: fsspec in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (2024.2.0)\n", + "Requirement already satisfied: numpy in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (1.23.5)\n", + "Requirement already satisfied: packaging in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (23.2)\n", + "Requirement already satisfied: typing-extensions>=4.1.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (4.10.0)\n", + "Requirement already satisfied: xxhash in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from uproot) (3.5.0)\n", + "Requirement already satisfied: awkward-cpp==46 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.4.6->uproot) (46)\n", + "Requirement already satisfied: importlib-metadata>=4.13.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.4.6->uproot) (7.0.1)\n", + "Requirement already satisfied: zipp>=0.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from importlib-metadata>=4.13.0->awkward>=2.4.6->uproot) (3.17.0)\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.1.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", + "Requirement already satisfied: pandas in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (2.3.0)\n", + "Requirement already satisfied: numpy>=1.22.4 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas) (1.23.5)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas) (2.9.0.post0)\n", + "Requirement already satisfied: pytz>=2020.1 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas) (2025.2)\n", + "Requirement already satisfied: tzdata>=2022.7 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas) (2025.2)\n", + "Requirement already satisfied: six>=1.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from python-dateutil>=2.8.2->pandas) (1.16.0)\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.1.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", + "Requirement already satisfied: requests in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (2.32.4)\n", + "Requirement already satisfied: aiohttp in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (3.12.13)\n", + "Requirement already satisfied: charset_normalizer<4,>=2 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from requests) (3.4.2)\n", + "Requirement already satisfied: idna<4,>=2.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from requests) (3.10)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from requests) (2.5.0)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from requests) (2025.6.15)\n", + "Requirement already satisfied: aiohappyeyeballs>=2.5.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (2.6.1)\n", + "Requirement already satisfied: aiosignal>=1.1.2 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (1.3.2)\n", + "Requirement already satisfied: async-timeout<6.0,>=4.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (5.0.1)\n", + "Requirement already satisfied: attrs>=17.3.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (25.3.0)\n", + "Requirement already satisfied: frozenlist>=1.1.1 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (1.7.0)\n", + "Requirement already satisfied: multidict<7.0,>=4.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (6.5.0)\n", + "Requirement already satisfied: propcache>=0.2.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (0.3.2)\n", + "Requirement already satisfied: yarl<2.0,>=1.17.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from aiohttp) (1.20.1)\n", + "Requirement already satisfied: typing-extensions>=4.1.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from multidict<7.0,>=4.5->aiohttp) (4.10.0)\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.1.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", + "Collecting awkward-pandas\n", + " Using cached awkward_pandas-2023.8.0-py3-none-any.whl.metadata (2.1 kB)\n", + "Requirement already satisfied: awkward>=2.0.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward-pandas) (2.8.4)\n", + "Requirement already satisfied: pandas>=1.2 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward-pandas) (2.3.0)\n", + "Requirement already satisfied: awkward-cpp==46 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (46)\n", + "Requirement already satisfied: fsspec>=2022.11.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (2024.2.0)\n", + "Requirement already satisfied: importlib-metadata>=4.13.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (7.0.1)\n", + "Requirement already satisfied: numpy>=1.18.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (1.23.5)\n", + "Requirement already satisfied: packaging in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (23.2)\n", + "Requirement already satisfied: typing-extensions>=4.1.0 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from awkward>=2.0.0->awkward-pandas) (4.10.0)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas>=1.2->awkward-pandas) (2.9.0.post0)\n", + "Requirement already satisfied: pytz>=2020.1 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas>=1.2->awkward-pandas) (2025.2)\n", + "Requirement already satisfied: tzdata>=2022.7 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from pandas>=1.2->awkward-pandas) (2025.2)\n", + "Requirement already satisfied: zipp>=0.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from importlib-metadata>=4.13.0->awkward>=2.0.0->awkward-pandas) (3.17.0)\n", + "Requirement already satisfied: six>=1.5 in /Users/cartercapetz/Library/Caches/pypoetry/virtualenvs/baler-NkYVSVSD-py3.9/lib/python3.9/site-packages (from python-dateutil>=2.8.2->pandas>=1.2->awkward-pandas) (1.16.0)\n", + "Using cached awkward_pandas-2023.8.0-py3-none-any.whl (11 kB)\n", + "Installing collected packages: awkward-pandas\n", + "Successfully installed awkward-pandas-2023.8.0\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m25.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.1.1\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n" + ] + } + ], + "source": [ + "import sys\n", + "!{sys.executable} -m pip install --upgrade uproot\n", + "!{sys.executable} -m pip install --upgrade pandas\n", + "!{sys.executable} -m pip install requests aiohttp\n", + "!{sys.executable} -m pip install awkward-pandas" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Keys in ROOT file: ['analysis;1']\n" + ] + } + ], + "source": [ + "import uproot\n", + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "path = \"https://atlas-opendata.web.cern.ch/atlas-opendata/13TeV/GamGam/Data/\"\n", + "\n", + "samples_list = ['data15_periodD','data15_periodE','data15_periodF','data15_periodG','data15_periodH','data15_periodJ','data16_periodA','data16_periodB','data16_periodC','data16_periodD','data16_periodE','data16_periodF','data16_periodG','data16_periodK','data16_periodL']\n", + "\n", + "data_15G_path = path + samples_list[3] + \".root\"\n", + "\n", + "# Inspect the file to find available trees\n", + "with uproot.open(data_15G_path) as file:\n", + " print(\"Keys in ROOT file:\", file.keys())" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The number of entries in the tree are: 164583\n", + "The information stored in the tree is: ['num_events', 'sum_of_weights', 'sum_of_weights_squared', 'corrected_xsec', 'dsid', 'category', 'sig_ph', 'n_sig_ph', 'ScaleFactor_PILEUP', 'mcWeight', 'xsec', 'filteff', 'kfac', 'channelNumber', 'eventNumber', 'runNumber', 'trigP', 'trigDT', 'trigT', 'trigE', 'trigM', 'trigMET', 'ScaleFactor_BTAG', 'jet_n', 'jet_pt', 'jet_eta', 'jet_phi', 'jet_e', 'jet_btag_quantile', 'jet_jvt', 'largeRJet_n', 'largeRJet_pt', 'largeRJet_eta', 'largeRJet_phi', 'largeRJet_e', 'largeRJet_m', 'largeRJet_D2', 'ScaleFactor_ELE', 'ScaleFactor_MUON', 'scaleFactor_LepTRIGGER', 'lep_n', 'lep_type', 'lep_pt', 'lep_eta', 'lep_phi', 'lep_e', 'lep_charge', 'lep_ptvarcone30', 'lep_topoetcone20', 'lep_z0', 'lep_d0', 'lep_d0sig', 'lep_isTightID', 'lep_isMediumID', 'lep_isLooseID', 'lep_isTightIso', 'lep_isLooseIso', 'ScaleFactor_PHOTON', 'photon_n', 'photon_pt', 'photon_eta', 'photon_phi', 'photon_e', 'photon_ptcone20', 'photon_topoetcone40', 'photon_isLooseID', 'photon_isTightID', 'photon_isLooseIso', 'photon_isTightIso', 'ScaleFactor_TAU', 'ScaleFactor_TauTRIGGER', 'ScaleFactor_DiTauTRIGGER', 'tau_n', 'tau_pt', 'tau_eta', 'tau_phi', 'tau_e', 'tau_charge', 'tau_nTracks', 'tau_isTight', 'tau_RNNJetScore', 'tau_RNNEleScore', 'met', 'met_phi', 'met_mpx', 'met_mpy']\n" + ] + } + ], + "source": [ + "# Accessing the file from the online database (\":analysis\" opens the tree in a desired manner)\n", + "with uproot.open(data_15G_path + \":analysis\") as t:\n", + " tree = t\n", + "\n", + "# The number of entries in the tree can be viewed\n", + "print(\"The number of entries in the tree are:\", tree.num_entries)\n", + "\n", + "# All the information stored in the tree can be viewed using the .keys() method.\n", + "print(\"The information stored in the tree is:\", tree.keys())" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[{photon_e: [53, 41.5, 2.67, 5.41, 2.53]}, {...}, ..., {photon_e: [752, ...]}]\n" + ] + } + ], + "source": [ + "print(tree[\"photon_e\"].arrays())\n", + "\n", + "variables = [\"photon_pt\",\"photon_eta\",\"photon_phi\",\"photon_e\",\n", + " \"photon_isTightID\",\"photon_ptcone20\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " photon_e\n", + "0 [52.95711898803711, 41.52253723144531, 2.66612...\n", + "1 [144.42855834960938, 25.760665893554688, 6.258...\n", + "2 [47.989742279052734, 31.802453994750977]\n", + "3 [32.105987548828125, 43.45836639404297]\n", + "4 [335.6337890625, 60.06889343261719, 2.30734062...\n", + "Saved as photon_e.csv\n", + "saved as photon_e.npz\n" + ] + } + ], + "source": [ + "tree_name = \"analysis;1\"\n", + "branches = [\"photon_e\"]\n", + "\n", + "#convert branch to dataframe\n", + "with uproot.open(data_15G_path) as file:\n", + " tree = file[tree_name]\n", + " df = tree.arrays(branches, library=\"pd\")\n", + " print(df.head())\n", + "\n", + "#csv\n", + "df.to_csv(\"photon_e.csv\", index=False)\n", + "print(\"Saved as photon_e.csv\")\n", + "\n", + "#npz\n", + "np.savez('photon_e.npz', photon_e = df.values)\n", + "print(\"saved as photon_e.npz\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "baler-NkYVSVSD-py3.9", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.21" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/convert_photon_data.py b/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/convert_photon_data.py new file mode 100644 index 00000000..d0b748ec --- /dev/null +++ b/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/convert_photon_data.py @@ -0,0 +1,70 @@ +#!/usr/bin/env python3 +""" +Script to convert photon data from variable-length list format to fixed-width array format +for use with Baler compression. +""" + +import numpy as np +import os + +def convert_photon_data(input_path, output_path, max_photons=2): + """ + Convert photon data from variable-length lists to fixed-width array. + + Args: + input_path: Path to the input .npz file with 'photon_e' key + output_path: Path to save the converted .npz file with 'data' key + max_photons: Maximum number of photons to consider per event + """ + print(f"Loading data from {input_path}...") + + # Load the original data + data = np.load(input_path, allow_pickle=True) + photon_energies = data['photon_e'] + + print(f"Original data shape: {photon_energies.shape}") + print(f"Sample data: {photon_energies[:3]}") + + # Convert to fixed-width array + num_events = len(photon_energies) + converted_data = np.zeros((num_events, max_photons)) + + for i, event_photons in enumerate(photon_energies): + # The data is stored as a 2D array where each row has one element containing a list + # Extract the list from the first (and only) element + if len(event_photons) > 0: + energies = event_photons[0] # Get the list from the first element + else: + energies = [] + + # Fill the fixed-width array + for j, energy in enumerate(energies[:max_photons]): + converted_data[i, j] = float(energy) + + print(f"Converted data shape: {converted_data.shape}") + print(f"Sample converted data:\n{converted_data[:3]}") + + # Create column names + column_names = [f"photon_e_{i}" for i in range(max_photons)] + + # Save the converted data + np.savez(output_path, data=converted_data, names=column_names) + print(f"Saved converted data to {output_path}") + + return converted_data, column_names + +if __name__ == "__main__": + input_file = "workspaces/ATLAS_Workspace/data/processed_photon_data.npz" + output_file = "workspaces/ATLAS_Workspace/data/processed_photon_data_converted.npz" + + # Create output directory if it doesn't exist + os.makedirs(os.path.dirname(output_file), exist_ok=True) + + # Convert the data + converted_data, column_names = convert_photon_data(input_file, output_file, max_photons=10) + + print(f"\nConversion complete!") + print(f"Input file: {input_file}") + print(f"Output file: {output_file}") + print(f"Data shape: {converted_data.shape}") + print(f"Column names: {column_names}") \ No newline at end of file diff --git a/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/processed_diphoton_data_all_periods.npz b/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/processed_diphoton_data_all_periods.npz new file mode 100644 index 00000000..70ad15ea Binary files /dev/null and b/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/processed_diphoton_data_all_periods.npz differ diff --git a/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/processed_photon_data.csv b/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/processed_photon_data.csv new file mode 100644 index 00000000..28904d1d --- /dev/null +++ b/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/processed_photon_data.csv @@ -0,0 +1,7033 @@ +photon_pt,photon_eta,photon_phi,photon_e,photon_isTightID,photon_ptcone20,mass +122.06027,-1.6698169,1.4230648,335.6338,True,0.0,93.78133 +34.43284,-1.154988,2.904564,60.068893,True,0.0,93.78133 +1.8002348,-0.7339968,1.289606,2.3073406,False,0.0,93.78133 +59.5046,0.3364265,-1.1378645,62.90393,True,0.0,120.57901 +53.576233,1.0838894,2.1607845,88.25163,True,0.0,120.57901 +3.8011703,1.5514596,-0.8119362,9.370437,False,0.0,120.57901 +185.54683,1.1411669,-2.9148314,320.0558,True,1.5204971,348.49673 +162.65488,0.98210186,0.26115924,247.60834,True,0.0,348.49673 +1.7057608,-0.4298353,-1.0957446,1.8657788,False,0.0,348.49673 +158.27654,-1.5364468,1.4065511,384.8644,True,0.0,206.34831 +75.69546,-1.5617983,-1.0536155,188.37366,True,0.0,206.34831 +2.688343,1.2146733,0.97864443,4.927733,False,0.0,206.34831 +2.0827303,0.7363463,-0.8041178,2.6733425,False,0.0,206.34831 +1.8374258,0.4466903,1.3022212,2.023807,False,0.0,206.34831 +79.07793,-2.187815,-0.6499502,356.95273,True,0.0,156.65123 +70.54416,-1.5617898,2.5683913,175.55289,True,0.0,156.65123 +2.2689233,-0.95609915,3.0009036,3.3874094,False,0.0,156.65123 +71.9922,-0.15917367,1.0273175,72.906136,True,0.0,51.722206 +44.35978,0.51602626,1.6403639,50.39814,True,0.0,51.722206 +2.3629584,0.00429093,-0.7492855,2.3629804,False,0.0,51.722206 +61.078354,2.1070063,0.5809053,254.85515,True,0.0,86.21729 +31.586355,2.1827173,-2.1673563,141.87189,True,0.0,86.21729 +133.49054,1.8487022,-2.9086504,434.4458,True,0.0,246.0903 +106.890114,1.3571128,0.18472356,221.38884,True,0.0,246.0903 +58.57553,1.5925231,1.4152529,149.94016,True,1.3421293,89.39488 +37.140175,1.7108885,-2.31861,106.12028,True,0.0,89.39488 +2.8681645,0.5426998,-0.95921284,3.3010037,False,0.0,89.39488 +63.180237,1.5545611,-2.2432697,156.19073,True,1.3296988,77.56285 +33.527008,0.1997176,-1.3761523,34.19788,True,0.0,77.56285 +7.1005535,0.52693343,1.5046496,8.109341,False,1.3401476,77.56285 +96.43585,-1.7288225,1.1909908,280.2189,True,0.0,167.47171 +65.302895,-0.28324822,2.748644,67.94006,True,0.0,167.47171 +8.152033,1.1059588,2.185625,13.666942,False,2.2273831,167.47171 +4.4955893,-1.83188,-1.023346,14.398765,False,0.0,167.47171 +2.780786,0.16526638,2.9381967,2.8188484,False,0.0,167.47171 +2.258778,1.0851907,2.0994573,3.724546,False,0.0,167.47171 +2.1107497,-2.3768752,-3.1318371,11.465627,False,0.0,167.47171 +1.8146524,0.50543106,-2.6520922,2.0514152,False,0.0,167.47171 +68.61799,2.2754474,0.6088934,337.42975,True,0.0,93.36454 +35.753536,1.3358516,-1.2683517,72.689926,True,0.0,93.36454 +3.2513056,-0.7569493,-0.75251514,4.2280927,False,0.0,93.36454 +158.99478,-0.6625807,-1.6017745,195.19083,True,0.0,272.37775 +112.08463,-0.19482768,1.7848389,114.21861,True,0.0,272.37775 +4.156628,-2.1820126,1.2974317,18.656904,False,0.0,272.37775 +50.143787,0.5079881,0.35855204,56.75397,True,0.0,86.32614 +33.52035,1.1842815,-2.5791004,59.905956,True,0.0,86.32614 +2.8151584,-2.1982176,3.055329,12.837042,False,0.0,86.32614 +126.73574,-0.4642474,1.9592118,140.64021,True,0.0,73.017494 +70.20974,0.05280409,2.5380738,70.30765,True,0.0,73.017494 +119.846115,1.3418735,-1.3701929,244.93915,True,0.0,231.80508 +111.26688,1.1339451,1.8891318,190.80348,True,5.6274886,231.80508 +52.284466,1.5883048,2.8093593,133.31792,True,0.0,108.761475 +56.5598,1.5725322,-0.3449329,142.14479,True,0.0,108.761475 +2.3860357,-0.025685309,2.5920856,2.3868227,False,0.0,108.761475 +134.17778,-0.9372721,-3.0707057,197.55682,True,0.0,250.88264 +124.47219,-0.33224782,-0.73057544,131.40578,True,0.0,250.88264 +5.4774456,-1.6347752,1.4531939,14.579046,False,25.527325,250.88264 +54.17989,0.73619986,2.9076045,69.53762,True,2.8820543,59.340458 +33.02201,0.39409745,1.4118891,35.619743,True,0.0,59.340458 +9.489679,0.74933755,2.7970471,12.280963,False,2.8820543,59.340458 +140.23012,2.0071363,2.155487,531.2161,True,0.0,350.3129 +124.37921,0.41798615,-0.725125,135.40363,True,0.0,350.3129 +2.8173223,0.23871748,0.35836026,2.8979783,False,0.0,350.3129 +50.04493,-1.9853001,-2.0709515,185.63094,True,0.0,90.101074 +38.924946,-1.5351754,1.2674012,94.540085,True,0.0,90.101074 +134.10016,-0.49342453,-3.0230622,150.75859,True,0.0,307.29465 +129.59758,0.64317393,0.059294324,157.33997,True,0.0,307.29465 +3.8736935,-0.7102634,0.6935326,4.8925557,False,0.0,307.29465 +2.145235,-2.324909,1.5592355,11.073212,False,0.0,307.29465 +1.7506369,1.5734015,-1.8420436,4.403171,False,0.0,307.29465 +100.67725,2.137459,-2.420244,432.70187,True,4.288072,160.61328 +61.00381,1.6932869,0.7035308,171.45845,True,0.0,160.61328 +275.37393,0.11754809,-1.6439106,277.27863,True,0.0,447.89014 +181.91963,0.05066573,1.4908943,182.15317,True,0.0,447.89014 +3.0707536,-0.5062523,-1.3922291,3.472734,False,0.0,447.89014 +94.22413,2.106254,2.8760946,392.87195,True,0.0,175.49545 +82.03677,2.0974977,-0.14008434,339.16153,True,0.0,175.49545 +5.2485423,0.69756657,-1.6012949,6.578139,False,2.5863938,175.49545 +4.44715,-0.48850852,-2.178708,4.9884224,False,0.0,175.49545 +53.615593,1.8956759,-0.81973046,182.48773,True,0.0,88.535835 +37.834087,2.0368118,2.7190635,147.48811,True,0.0,88.535835 +1.8812331,0.7380704,-0.54625726,2.4173193,False,0.0,88.535835 +91.731705,-1.1677798,0.9559231,161.71858,True,0.0,193.4559 +96.12501,-1.657169,-2.186472,261.22552,True,0.0,193.4559 +4.145955,1.6902143,-0.80135703,11.619292,False,0.0,193.4559 +81.553154,-1.8897008,1.1599895,275.9965,True,2.3530335,134.69102 +54.37562,-2.1991181,-2.055553,248.16922,True,2.2935405,134.69102 +3.1740885,1.0207049,-0.54440147,4.976163,False,0.0,134.69102 +1.7676996,-0.6367691,-1.6905109,2.1383529,False,0.0,134.69102 +3.208528,2.3567197,1.2663211,17.087013,False,0.0,134.69102 +166.54623,-0.20063731,2.3461988,169.90968,True,0.0,306.99295 +130.06285,-0.7858681,-0.8352234,172.33556,True,0.0,306.99295 +2.6340232,0.53402853,-2.2620878,3.0186286,False,0.0,306.99295 +3.0206668,-0.01550195,-2.613706,3.0210297,False,0.0,306.99295 +2.3438616,-1.7269113,0.101389065,6.7984776,False,0.0,306.99295 +57.250927,2.2593617,-0.78586113,277.1343,True,0.0,131.06154 +60.42065,1.3083119,2.4508696,119.940994,True,0.0,131.06154 +160.46901,-2.166826,2.346516,709.6798,True,0.0,148.62685 +55.19801,-0.7468969,2.0052283,71.32343,True,3.025623,148.62685 +3.5439105,-0.67505926,1.8949343,4.3825336,False,20.885464,148.62685 +2.2445996,0.4618754,-2.354148,2.4883053,False,0.0,148.62685 +139.09047,-2.0999765,1.0398486,576.4213,True,0.0,315.51358 +116.483185,-0.74112296,-2.1676662,149.96448,True,0.0,315.51358 +2.2587314,0.6272232,1.0778531,2.7177925,False,0.0,315.51358 +1.8754613,0.66479784,-1.6108227,2.3053873,False,0.0,315.51358 +140.69829,1.7399789,0.6584686,413.14273,True,0.0,97.87931 +55.193287,0.9978746,1.4931881,85.03002,True,0.0,97.87931 +2.6900277,1.9995314,-0.055215277,10.11584,False,0.0,97.87931 +162.59831,0.5838105,-2.3924732,191.10391,True,0.0,22.176495 +42.61946,0.34745273,-2.514376,45.21803,True,0.0,22.176495 +36.35266,-0.9534392,0.95242995,54.166027,False,49.545624,22.176495 +5.522065,-0.26630324,0.19174708,5.71903,False,0.0,22.176495 +3.1149719,0.84985876,-0.01032715,4.3092394,False,2.1918433,22.176495 +2.01444,0.59390676,1.0708381,2.3802783,False,0.0,22.176495 +1.8350012,-0.10823698,3.0086133,1.8457605,False,0.0,22.176495 +53.20558,0.59541214,1.1752865,62.918625,True,0.0,120.71479 +51.99321,1.6691875,-1.9881213,142.88394,True,0.0,120.71479 +105.515236,0.67522115,0.74133474,130.49655,True,0.0,256.52313 +91.619,-0.8497625,-2.3244393,126.736916,True,0.0,256.52313 +2.4903555,-0.30892408,-2.9909532,2.610136,False,0.0,256.52313 +4.180496,-0.8400078,1.0791911,5.7441945,False,0.0,256.52313 +1.9743962,1.5887123,2.3621118,5.0363164,False,1.3407837,256.52313 +121.31531,-1.9585754,-1.2506127,438.57178,True,0.0,185.9711 +71.21103,-1.8841959,1.8447216,239.73236,True,0.0,185.9711 +6.3213763,0.76194,-2.0669835,8.246832,False,0.0,185.9711 +61.73949,-2.2691262,-2.0722795,301.73166,True,0.0,93.01571 +36.303806,-2.2572246,1.4457364,175.3686,True,0.0,93.01571 +2.5639453,0.49127957,2.068756,2.87963,False,0.0,93.01571 +123.97523,-0.92749196,-1.8578625,181.23349,True,0.0,54.200905 +55.630905,-0.8906393,-1.194138,79.192825,True,0.0,54.200905 +2.367204,0.47137555,-1.5103401,2.6351,False,1.5145484,54.200905 +2.381766,-0.81487644,1.283995,3.2172785,False,0.0,54.200905 +112.037056,0.09653038,3.0767422,112.55945,True,0.0,219.32234 +102.38787,0.7125443,0.3842569,129.49854,True,1.35799,219.32234 +2.0690153,1.9243184,-2.755805,7.2378845,False,0.0,219.32234 +139.85205,0.2115319,0.50082356,142.99263,True,1.5567756,144.59143 +52.725662,-0.49825743,-1.2255788,59.40704,True,0.0,144.59143 +226.64957,1.5451907,1.2944188,555.53357,True,0.0,498.99173 +196.64803,0.25765517,-1.2799008,203.21158,True,0.0,498.99173 +63.915756,2.0505545,-0.34816504,252.49515,True,1.436034,104.1262 +44.39146,2.2897909,2.302517,221.38377,True,0.0,104.1262 +2.2024531,-0.05818623,-1.2968762,2.2061825,False,0.0,104.1262 +51.064148,1.9249661,-1.4299079,178.74487,True,0.0,93.97785 +43.60763,1.7313855,1.9797254,127.01842,True,1.6612754,93.97785 +4.016721,2.038445,2.7591505,15.683066,False,0.0,93.97785 +2.894249,-0.80891377,1.43657,3.893936,False,0.0,93.97785 +1.6738448,0.42717534,0.3565262,1.828902,False,0.0,93.97785 +103.97527,-1.0847228,2.1128645,171.38322,True,0.0,164.2247 +102.99865,-2.133237,0.89192146,440.86523,True,0.0,164.2247 +4.0027575,-2.2741265,-0.18568712,19.658167,False,0.0,164.2247 +52.569088,-1.8116248,0.52334905,165.16609,True,0.0,92.2823 +38.943317,-2.2960598,-2.3353293,195.41006,True,0.0,92.2823 +3.0863037,-0.5819439,-2.1061702,3.6238217,False,0.0,92.2823 +54.4197,-2.055515,-1.8790127,216.01591,True,0.0,89.83596 +38.73499,-2.191713,0.8232111,175.51323,True,0.0,89.83596 +4.8712797,-1.1356746,1.8782339,8.365152,False,0.0,89.83596 +2.0502353,-0.14032482,-2.1507065,2.0704541,False,0.0,89.83596 +55.629097,0.5203566,-1.3971599,63.33195,True,1.2733531,134.022 +47.242477,-1.6425979,-1.5486021,126.65841,True,0.0,134.022 +3.4292254,-0.1183578,1.3729768,3.4532726,False,0.0,134.022 +2.685937,-0.59484506,-0.26722932,3.175312,False,0.0,134.022 +2.4659085,-1.7029815,1.4161978,6.993849,False,0.0,134.022 +156.38904,2.1093662,-2.704284,654.04474,True,0.0,335.10846 +142.70197,1.1316066,0.4893988,244.24503,True,0.0,335.10846 +1.7585168,2.0118308,-2.7497528,6.691805,False,0.0,335.10846 +1.6507951,0.21656595,-0.44826013,1.6896584,False,0.0,335.10846 +1.8916315,-0.7815061,-2.633296,2.4992957,False,0.0,335.10846 +151.4494,-0.88279635,1.2635345,214.39749,True,0.0,257.75394 +98.106064,-0.10925925,-2.2773917,98.69222,True,0.0,257.75394 +2.2470665,-0.3170328,2.9731596,2.3609416,False,0.0,257.75394 +51.780594,-1.9739683,2.5121908,189.9854,True,1.0114732,92.22349 +42.329872,-1.9467003,-0.97818154,151.29283,True,0.0,92.22349 +2.925286,0.18303527,2.4715006,2.9744244,False,0.0,92.22349 +2.3574846,-0.22248939,1.3382266,2.4160752,False,5.8500147,92.22349 +1.6856624,-2.268852,2.52021,8.235915,False,1.0523573,92.22349 +94.2216,-0.39801472,0.63939184,101.78374,True,4.6633434,165.24825 +75.133934,-0.16103004,-2.052216,76.11018,True,0.0,165.24825 +2.6971548,0.6878684,1.3151935,3.3608122,False,0.0,165.24825 +96.71868,1.9702009,-1.8783305,353.58154,True,0.0,155.04541 +56.854626,1.1915228,1.7848952,102.22032,True,0.0,155.04541 +2.2954252,0.6264221,-1.870785,2.7607143,False,0.0,155.04541 +1.9873171,-0.7000856,0.44728684,2.4945478,False,0.0,155.04541 +54.75168,-2.0434127,0.71716696,214.80412,True,0.0,104.83804 +51.513313,-1.9553992,-2.0899382,185.66034,True,0.0,104.83804 +86.780235,0.6767997,-1.4787711,107.425766,True,0.0,141.91083 +57.838573,0.91760796,1.8776541,83.946,True,1.7039636,141.91083 +1.804191,-0.36605087,0.33171383,1.9264215,False,0.0,141.91083 +61.06773,-1.1394073,0.6184102,105.18685,True,0.0,112.58011 +52.2392,-1.3328804,-2.778005,105.93239,True,1.3206993,112.58011 +3.6674142,2.1393356,-1.9261106,15.791017,False,0.0,112.58011 +2.6775606,-1.9134213,2.1756847,9.269457,False,0.0,112.58011 +60.45605,1.7347553,1.1245482,176.6521,True,0.0,103.21543 +39.16826,1.0289681,-1.8749279,61.798744,True,2.1439838,103.21543 +152.98178,0.16615154,2.6477957,155.09828,True,0.0,63.432606 +65.77305,0.6021468,2.1890697,78.06174,True,0.0,63.432606 +140.84317,-0.5882786,-0.55473864,165.9251,True,0.0,128.14754 +75.77622,-0.8332686,0.7521916,103.64115,True,0.0,128.14754 +4.2634144,1.1004167,2.3148577,7.1159596,False,5.598997,128.14754 +3.70572,1.0002434,1.2027638,5.719285,False,0.0,128.14754 +2.3742034,-0.3641812,1.3965735,2.533394,False,0.0,128.14754 +1.8463471,0.5085939,1.7816584,2.0903342,False,0.0,128.14754 +58.52668,1.7884836,0.50028956,179.89903,True,0.0,87.81083 +31.32258,1.121214,-2.1299138,53.16164,True,1.3965865,87.81083 +51.4918,-1.8877171,-1.895394,173.93135,True,0.0,87.71545 +37.4562,-2.0916457,1.0166038,153.9771,True,0.0,87.71545 +2.7884388,0.17407887,0.9436348,2.8307953,False,0.0,87.71545 +2.6009047,0.18023944,-0.42405435,2.6432662,False,0.0,87.71545 +2.392433,-0.658931,-0.9196547,2.9308848,False,0.0,87.71545 +1.8594111,2.271252,-3.0095084,9.106195,False,0.0,87.71545 +69.016235,-2.1194372,-0.8264439,291.47452,True,0.0,112.83173 +66.54376,-0.78276294,0.038733974,87.992455,True,0.0,112.83173 +2.6565073,0.6173978,-0.28419548,3.1790996,False,10.503051,112.83173 +2.7391174,0.13746877,-1.0034938,2.7650397,False,3.777466,112.83173 +2.1763241,1.6794679,2.9015834,6.038402,False,3.668087,112.83173 +243.161,1.7851728,-2.3228023,745.09125,True,0.0,360.9278 +133.9721,1.6318986,0.66143227,355.63782,True,0.0,360.9278 +2.3786516,-0.9101496,-3.1389866,3.4337716,False,0.0,360.9278 +58.5427,-0.31297716,1.0794415,61.433453,True,0.0,100.1378 +35.07775,-1.2287215,-2.1879199,65.06089,True,0.0,100.1378 +4.1214213,-2.2375662,0.92951447,19.5298,False,0.0,100.1378 +214.41774,0.21022663,1.1344244,219.17332,True,0.0,567.2118 +206.68893,1.8325542,-2.0591962,662.4209,True,0.0,567.2118 +3.5564392,0.5118218,0.9776217,4.0325227,False,0.0,567.2118 +2.2085962,0.44347277,-0.63335115,2.4293592,False,0.0,567.2118 +2.0639288,0.77938867,1.9300988,2.723174,False,0.0,567.2118 +1.7574289,1.1663047,2.3977501,3.0945022,False,0.0,567.2118 +96.68017,0.40463796,-1.9534112,104.70357,True,1.1148505,195.04863 +96.42593,0.68984216,1.1564418,120.29405,True,0.0,195.04863 +2.051338,-0.123457424,-0.90782636,2.0669906,False,0.0,195.04863 +110.531624,-1.7072289,2.7526991,314.74042,True,3.6456122,98.928474 +49.208263,-1.730876,1.2826759,143.26312,True,1.007291,98.928474 +7.498025,-0.7586295,-1.2154859,9.761137,False,1.124718,98.928474 +2.3068662,-0.22389391,-2.9877667,2.364928,False,0.0,98.928474 +56.978153,-1.1590776,-1.6451315,99.73364,True,0.0,86.9098 +30.72407,-2.138362,0.61793286,132.16533,True,0.0,86.9098 +3.1933606,-0.2738395,-2.1015341,3.3138425,False,0.0,86.9098 +65.17005,-2.2151744,-0.6708451,302.133,True,2.9769125,143.99994 +56.706654,-0.97701174,2.1108093,85.99395,True,0.0,143.99994 +2.3084676,-0.6810233,0.5109249,2.8648052,False,0.0,143.99994 +2.1651304,-0.013260877,1.2808018,2.1653206,False,0.0,143.99994 +137.75273,1.5704124,0.17411566,345.5245,True,1.1308265,50.321156 +44.715954,1.1271819,0.63805103,76.26059,True,0.0,50.321156 +24.034746,1.5028819,0.18957338,56.687286,False,1.1308265,50.321156 +2.3462892,-2.110055,2.5982244,9.819133,False,0.0,50.321156 +257.04736,-0.14051118,-2.2537692,259.58905,True,4.790932,328.8633 +145.1642,-0.039350335,1.9984748,145.27661,True,0.0,328.8633 +58.36338,-1.2202389,0.20629303,107.480736,True,0.0,113.46101 +53.828087,-1.5316843,-2.9279308,130.32138,True,0.0,113.46101 +2.3741825,-2.0881727,2.7184858,9.727106,False,0.0,113.46101 +55.999992,0.059619397,-3.141261,56.09955,True,0.0,111.566795 +55.29234,-0.092640944,-0.057229277,55.529778,True,0.0,111.566795 +2.6033294,-0.7950797,0.5327182,3.47045,False,0.0,111.566795 +2.3725097,-0.6008385,0.17697975,2.8137953,False,0.0,111.566795 +114.95019,0.07039383,-1.2218772,115.23511,True,0.0,27.850676 +43.147392,-0.27857974,-1.4047968,44.832508,True,0.0,27.850676 +126.832,-0.71596676,1.858642,160.75215,True,0.0,106.1454 +39.85718,-0.030849906,-2.983741,39.87615,True,0.0,106.1454 +5.1081414,-0.06437825,-0.39953762,5.1187305,False,0.0,106.1454 +3.7090805,1.3548372,0.42657802,7.6668906,False,0.0,106.1454 +2.664839,0.0054387636,-0.6121619,2.6648786,False,0.0,106.1454 +2.0811903,-2.0090046,2.0777757,7.8981323,False,0.0,106.1454 +2.2790992,-0.90153664,-0.65687,3.2697449,False,0.0,106.1454 +125.21679,0.8414342,-1.605392,172.22212,True,0.0,180.1986 +109.344505,0.6278312,0.12903827,131.61203,True,0.0,180.1986 +4.552106,0.542415,1.7516654,5.2383327,False,2.692813,180.1986 +2.1012373,-0.08200557,-2.2270427,2.1083066,False,0.0,180.1986 +142.45058,0.8261218,-0.7995127,193.88846,True,0.0,300.47812 +113.838974,-0.4115258,1.9268807,123.6153,True,0.0,300.47812 +114.6462,1.3011993,0.59078246,226.19151,True,0.0,26.102413 +34.761017,1.6427778,0.3597216,93.210815,True,0.0,26.102413 +175.55081,0.08587965,-2.7370226,176.19858,True,0.0,329.1448 +124.154236,1.0386174,0.49332714,197.35878,True,0.0,329.1448 +2.336023,-0.8887022,2.5291867,3.3208444,False,0.0,329.1448 +71.76054,0.4781707,-1.611147,80.12198,True,0.0,122.11555 +58.067738,-0.72497106,-0.066427074,74.00762,True,0.0,122.11555 +2.0975535,0.111498535,2.8784423,2.1106052,False,0.0,122.11555 +50.64772,2.097807,-2.6000233,209.45378,True,0.0,100.60069 +49.9568,2.0681872,0.5725448,200.74852,True,0.0,100.60069 +190.7725,0.765359,1.8234853,249.42863,True,0.0,386.22018 +159.36484,1.7984228,-0.8033316,494.4831,True,0.0,386.22018 +2.3003626,-0.19076514,2.586412,2.3423462,False,0.0,386.22018 +1.8369983,0.1059328,-1.5583177,1.8473151,False,19.899992,386.22018 +52.99752,-2.0142837,-0.019817473,202.153,True,0.0,100.50315 +37.865868,-0.99687386,2.8136039,58.29126,True,0.0,100.50315 +9.226858,1.7285024,-2.885969,26.802929,False,0.0,100.50315 +2.3200893,1.2909056,0.985828,4.5370502,False,0.0,100.50315 +129.6962,-1.6784761,2.0085123,359.5207,True,0.0,250.74078 +120.98926,-1.5688027,-1.2068886,303.02914,True,0.0,250.74078 +103.29107,1.3142835,0.48009342,206.10442,True,0.0,42.221516 +53.27151,0.87364715,0.83787715,74.92794,True,1.2040081,42.221516 +6.510619,-1.7252024,-2.593736,18.854084,False,0.0,42.221516 +6.005809,-0.9906984,2.197301,9.202196,False,5.3962283,42.221516 +2.1246772,0.28134343,1.193537,2.209322,False,1.77959,42.221516 +130.11275,-0.14642096,-1.5073314,131.50998,True,0.0,243.31348 +113.98861,0.37129942,2.1721716,121.936714,True,0.0,243.31348 +2.2986536,-1.2605293,-3.0072215,4.379845,False,3.421794,243.31348 +2.2104232,-0.7238699,-2.261546,2.815274,False,0.0,243.31348 +150.9434,0.8481634,3.0171666,208.57016,True,7.0711613,293.92532 +142.73059,1.3519199,0.38010472,294.2806,True,0.0,293.92532 +50.06664,-0.425716,0.40229714,54.672466,True,0.0,129.9726 +46.168674,-2.1299438,-2.1204474,196.98416,True,0.0,129.9726 +2.5068858,-0.50605893,0.9860943,2.8347964,False,0.0,129.9726 +1.8514637,1.198066,-0.9112069,3.3469641,False,0.0,129.9726 +56.794518,0.42421213,-1.3104243,61.981865,True,2.1618326,92.06884 +46.825363,0.17606054,0.85808915,47.55297,True,0.0,92.06884 +5.977345,1.2778617,-0.9115108,11.55896,False,0.0,92.06884 +9.362841,1.2780384,-0.9742885,18.108551,False,10.579422,92.06884 +55.557076,-1.8355465,-0.7897087,178.5628,True,1.2188873,3.514479 +32.20933,-1.8359118,-0.70650953,103.558105,True,1.2188873,3.514479 +4.5086045,1.3180048,1.4152247,9.02539,False,0.0,3.514479 +51.283096,-0.62036026,-1.7947863,61.47173,True,0.0,108.730995 +38.15292,0.73167634,1.0600468,48.829323,True,0.0,108.730995 +4.9124913,-0.7219919,2.7163074,6.249458,False,1.558183,108.730995 +3.0397263,-1.2208575,0.9425741,5.600803,False,0.0,108.730995 +2.1532614,1.8720936,0.35926214,7.1657267,False,0.0,108.730995 +59.868156,0.042875778,1.0454165,59.923195,True,0.0,137.18181 +52.90301,-1.2711467,-1.8764921,101.71788,True,0.0,137.18181 +2.5258803,0.38045987,-0.37246048,2.7109065,False,0.0,137.18181 +103.436455,-2.1957853,-0.08199711,470.54932,True,0.0,199.70369 +71.887924,-1.0736724,2.876297,117.45972,True,0.0,199.70369 +2.5994503,-1.0744551,2.9601455,4.2499466,False,0.0,199.70369 +2.2912884,0.22550145,2.2332141,2.3497927,False,0.0,199.70369 +70.26269,2.0704439,-0.51932085,282.9644,True,0.0,98.46811 +36.14805,1.7823445,2.100555,110.468765,True,0.0,98.46811 +3.33225,-1.0005605,1.7470791,5.1441264,False,0.0,98.46811 +1.8982351,1.136726,-0.17155255,3.2625117,False,0.0,98.46811 +2.0293798,-1.7797315,-2.4846745,6.186512,False,0.0,98.46811 +393.57755,-0.76238155,1.773236,513.6047,True,0.0,732.04114 +345.23288,-1.0413653,-0.99964935,549.9654,True,0.0,732.04114 +54.041485,-0.85530674,2.082203,75.04332,True,0.0,84.283226 +32.994858,0.19150572,-2.2272236,33.601746,True,0.0,84.283226 +6.1780443,-0.8885285,1.96784,8.781502,False,0.0,84.283226 +2.6170757,-1.1279308,-0.2581957,4.465987,False,0.0,84.283226 +64.55549,2.0882761,2.6964104,264.5126,True,2.580383,87.1198 +43.783474,2.1610053,0.7787214,192.5393,True,0.0,87.1198 +4.4688015,2.0853577,2.758587,18.258923,False,2.580383,87.1198 +2.0872998,0.7711871,0.88260627,2.7393675,False,0.0,87.1198 +132.65718,-0.80345464,-2.0328581,177.82841,True,2.6522722,173.62498 +61.575264,-0.69639665,0.53434336,77.11955,True,0.0,173.62498 +145.85603,0.8435344,1.0063564,200.89888,True,0.0,291.71155 +114.24619,-0.1666635,-2.1950977,115.83656,True,0.0,291.71155 +2.0196254,0.59015435,3.1163218,2.3816519,False,0.0,291.71155 +102.11664,-1.8907257,-2.389677,345.9271,True,0.0,88.31018 +78.75521,-1.6036992,2.9130228,203.68222,True,0.0,88.31018 +2.1722443,-2.1043844,-1.04564,9.040852,False,0.0,88.31018 +2.2973309,-1.8596237,2.8032305,7.554831,False,0.0,88.31018 +127.61545,0.40017477,-2.0953982,137.97069,True,0.0,224.5987 +89.18914,-0.24793392,0.9917704,91.944496,True,0.0,224.5987 +4.5143247,1.688688,2.0821059,12.633647,False,0.0,224.5987 +2.5668657,-1.3512263,1.4592535,5.289131,False,0.0,224.5987 +110.849815,1.553305,-1.0499061,273.7223,True,0.0,179.2208 +64.47337,2.2955673,2.3797672,323.35883,True,0.0,179.2208 +2.104862,0.22178444,1.9321548,2.156842,False,0.0,179.2208 +83.48698,-0.3133022,-2.4250078,87.61807,True,0.0,137.71164 +57.055496,-0.19829832,0.5376304,58.18095,True,0.0,137.71164 +4.9026246,0.7913873,-2.788732,6.519684,False,0.0,137.71164 +3.5550299,-0.87764204,2.6502063,5.0143404,False,0.0,137.71164 +2.331621,1.2079259,1.2642587,4.24979,False,0.0,137.71164 +150.18088,-0.5679859,-0.8769291,175.06395,True,0.0,52.51793 +140.01746,-0.24465844,-0.7164128,144.22896,True,0.0,52.51793 +2.1248755,-1.9539412,-1.2022036,7.647595,False,0.0,52.51793 +52.127018,-2.1523623,0.42221782,227.30957,True,0.0,86.36451 +35.03676,-1.863232,-2.7052639,115.61609,True,0.0,86.36451 +3.4980662,1.7155842,-0.437061,10.039067,False,0.0,86.36451 +94.72817,0.75864756,0.7877534,123.32119,True,0.0,63.136368 +49.73124,0.7306416,-0.16760814,63.60656,True,0.0,63.136368 +3.9181833,-1.3528379,-1.7053422,8.084963,False,0.0,63.136368 +52.122253,-2.1206493,0.618457,220.38599,True,0.0,93.95149 +41.8856,-1.8793173,-2.6471462,140.35292,True,0.0,93.95149 +73.028656,-0.4539316,-1.9643937,80.68266,True,0.0,85.32986 +34.430794,-0.50162774,0.06952053,38.854313,True,0.0,85.32986 +2.1535344,1.2188914,-0.16361675,3.9614184,False,0.0,85.32986 +2.1538494,-1.0761251,1.2519764,3.5260725,False,0.0,85.32986 +56.505646,2.0836482,1.7722832,230.49216,True,0.0,93.2226 +38.47161,2.0647073,-1.3175416,154.07582,True,0.0,93.2226 +4.3405805,1.2267046,-2.5186276,8.0370865,False,0.0,93.2226 +1.8066207,1.0536739,-1.7448282,2.90579,False,0.0,93.2226 +80.325066,0.05424292,-0.17059527,80.44326,True,0.0,176.8059 +79.78607,0.9609862,3.0197837,119.551,True,0.0,176.8059 +1.9428018,-0.3059304,0.5876904,2.03443,False,0.0,176.8059 +51.010597,-2.3510346,1.0775275,270.14435,True,0.0,92.548805 +41.876705,-2.2315137,-2.132606,197.26694,True,0.0,92.548805 +113.36776,-1.8629959,2.3603766,374.01254,True,0.0,29.58568 +97.42191,-1.8618053,2.0778992,321.04105,True,0.0,29.58568 +6.603311,-1.8629218,1.9898515,21.783503,False,24.99619,29.58568 +71.59057,0.124742985,-1.3957422,72.1483,True,0.0,35.231544 +31.89241,0.833082,-1.5393004,43.614548,True,1.7072208,35.231544 +1.876287,0.3528637,-0.47369868,1.9943149,False,0.0,35.231544 +2.0575354,0.9452565,-3.0049846,3.0472646,False,0.0,35.231544 +1.7537181,2.098494,1.7801539,7.257344,False,0.0,35.231544 +89.041756,0.8950286,1.6519986,127.1517,True,0.0,51.577194 +71.43001,0.69843346,2.2781994,89.57196,True,0.0,51.577194 +58.909466,0.17822006,1.0843469,59.847496,True,0.0,86.163704 +30.56441,0.59490544,-1.8268951,36.13438,True,0.0,86.163704 +3.650324,0.1798695,0.99636644,3.7095332,False,0.0,86.163704 +135.1359,-0.16391891,2.1913652,136.95547,True,0.0,220.99011 +84.25909,0.40498054,-0.7414041,91.26367,True,0.0,220.99011 +3.9171472,0.2693753,0.01225133,4.0601287,False,0.0,220.99011 +82.51979,0.48257583,2.2272472,92.31629,True,3.3558664,140.09378 +57.833645,1.0946951,-0.38462475,96.08809,True,0.0,140.09378 +138.33202,-1.7228193,1.4888098,399.7005,True,0.0,245.86804 +109.99688,-1.5504555,-1.4135906,270.90955,True,3.9174862,245.86804 +1.8348596,0.8675631,-2.7515607,2.5697896,False,0.0,245.86804 +51.351555,-2.198926,0.27944452,234.3235,True,0.0,90.784256 +46.663,-2.1471639,2.6517582,202.45583,True,0.0,90.784256 +3.3044515,0.2838574,-0.030992834,3.4384758,False,0.0,90.784256 +2.4011776,-0.22305901,2.9891171,2.4611616,False,0.0,90.784256 +2.7992897,1.6209505,-0.58544683,7.3559823,False,0.0,90.784256 +1.7470045,0.40165177,-2.0041347,1.8898262,False,0.0,90.784256 +2.3415637,0.9774203,0.2030345,3.5520024,False,0.0,90.784256 +1.8970978,-0.008674803,1.9822012,1.8971691,False,0.0,90.784256 +107.89738,-0.321252,0.18144742,113.513084,True,0.0,21.226503 +34.99772,0.021967689,0.16254409,35.006165,True,0.0,21.226503 +54.689774,0.9045469,2.3824997,78.63124,True,0.0,96.57243 +37.43021,-0.13692,0.057351544,37.781612,True,0.0,96.57243 +178.73961,-0.5224442,-1.1564144,203.69283,True,0.0,107.4231 +57.208107,0.47316453,-0.9264106,63.73249,True,0.0,107.4231 +4.877552,2.110745,-2.5937831,20.426056,False,0.0,107.4231 +155.34328,-0.8441258,0.061475344,214.05347,True,0.0,300.09433 +144.07193,-1.1047188,-2.8689454,241.29742,True,1.0528767,300.09433 +92.553474,-1.0598867,-1.5992129,149.59137,True,1.1251235,104.90628 +51.734386,-0.8442671,0.09779489,71.293724,True,2.00004,104.90628 +108.31874,0.2605048,-2.1057854,112.01498,True,2.6641548,113.67166 +47.06755,1.0776426,2.6923497,77.14708,True,0.0,113.67166 +7.7323613,1.7735447,0.54420733,23.434587,False,0.0,113.67166 +2.1996582,1.7733634,0.8435219,6.665397,False,0.0,113.67166 +2.2497375,1.963021,-1.1776081,8.167943,False,0.0,113.67166 +55.967377,0.0445166,2.7676682,56.02284,True,0.0,146.42383 +52.601894,-1.6121299,-0.7635129,137.10527,True,0.0,146.42383 +2.6116076,1.2945428,2.1336105,5.1231256,False,0.0,146.42383 +115.394165,0.35853082,-1.5935702,122.89059,True,0.0,211.68661 +83.06396,1.3281608,0.9553494,167.75015,True,0.0,211.68661 +126.42184,-2.3001745,2.5542033,636.9236,True,0.0,240.29721 +112.57687,-2.0582578,-0.6270401,448.05533,True,1.4217566,240.29721 +3.1263316,-1.2609016,1.6345137,5.9587874,False,0.0,240.29721 +3.0894709,-1.2600894,1.5386899,5.884462,False,0.0,240.29721 +1.6589929,-2.2512903,-2.0259142,7.96752,False,0.0,240.29721 +61.010002,-2.2854407,-0.22168063,302.96796,True,0.0,87.034294 +31.190948,-2.2675793,2.7794144,152.20499,True,0.0,87.034294 +82.86792,2.0603123,0.22502322,330.4704,True,0.0,23.293642 +56.467396,2.1242285,-0.11101621,239.59018,True,2.565167,23.293642 +193.0782,-0.7264558,-2.7334325,246.30592,True,0.0,343.75592 +131.57272,0.62519336,-0.8949598,158.13496,True,0.0,343.75592 +2.6367958,2.2503943,-0.899279,12.652448,False,0.0,343.75592 +139.74309,1.2411667,-0.14179021,261.92706,True,0.0,226.26553 +92.255005,1.0208738,-3.0039558,144.6512,True,2.6615062,226.26553 +51.227573,-2.014663,-1.8882248,195.47328,True,2.376328,86.58531 +46.581436,-2.1103704,0.2845562,195.00131,True,0.0,86.58531 +3.0259774,-2.0142288,-1.96825,11.541635,False,2.376328,86.58531 +3.233958,-1.8819606,1.2578483,10.863929,False,4.905525,86.58531 +1.6573086,0.054860752,-2.7810366,1.6598033,False,0.0,86.58531 +138.25165,-2.3486645,1.4267657,730.4576,True,1.060726,71.99393 +118.37922,-2.1222937,0.90591353,501.3375,True,0.0,71.99393 +139.19586,-0.35056773,2.582074,147.83725,True,0.0,241.33624 +96.42901,0.22509727,-0.59732676,98.88231,True,0.0,241.33624 +2.4867344,0.15469147,0.12942478,2.516547,False,3.5195322,241.33624 +97.99725,-1.6399027,1.9365346,262.07733,True,0.0,205.01907 +93.478,-0.89020634,-1.1842834,133.02869,True,0.0,205.01907 +2.1128473,0.6535742,2.2271152,2.5804024,False,0.0,205.01907 +1.8228126,0.5379168,2.653527,2.0929527,False,0.0,205.01907 +182.38321,1.2404853,2.705139,341.6525,True,0.0,78.01893 +47.84703,0.9986848,-2.7558482,73.75794,True,0.0,78.01893 +2.9348507,-0.2007949,1.82655,2.994214,False,0.0,78.01893 +124.50836,0.018174073,3.1393583,124.52892,True,0.0,252.87703 +115.24536,0.68329495,-0.051303584,143.21211,True,0.0,252.87703 +100.70372,0.6445098,-2.1443894,122.353645,True,0.0,199.11629 +84.38657,-0.15394378,1.0788594,85.38847,True,0.0,199.11629 +5.110802,-2.1380157,2.1137671,21.97767,False,0.0,199.11629 +1.9848173,0.55658776,3.0225627,2.3002746,False,0.0,199.11629 +135.14561,0.14991632,-1.052642,136.66714,True,0.0,285.54782 +110.65744,-0.99270946,2.130517,169.80978,True,0.0,285.54782 +70.101555,-1.8631076,0.23136891,231.29726,True,0.0,106.089584 +39.140953,-2.1866853,-2.849439,176.48524,True,0.0,106.089584 +15.252232,-0.85460776,-2.5127952,21.169352,False,0.0,106.089584 +2.923998,-0.95653635,-2.3019345,4.3668265,False,0.0,106.089584 +88.19745,-2.0385282,-1.1981015,344.3898,True,0.0,234.68806 +82.296844,-0.34279788,1.7290411,87.17975,True,0.0,234.68806 +7.4508924,0.46254563,1.2590182,8.262259,False,0.0,234.68806 +57.289516,2.0903728,2.8169038,235.21846,True,0.0,143.06978 +52.508114,0.55511504,-0.5564195,60.80827,True,1.6043942,143.06978 +2.5721815,0.25063196,-0.7209971,2.6533928,False,0.0,143.06978 +2.1406257,2.337977,-1.8049339,11.192024,False,0.0,143.06978 +52.123524,-1.5790583,-2.732573,131.78273,True,0.0,84.97495 +32.64178,-2.0773556,0.31156075,132.33942,True,0.0,84.97495 +2.507811,2.2374737,-1.43869,11.882459,False,0.0,84.97495 +1.878824,-2.3180032,2.5306237,9.632586,False,0.0,84.97495 +209.21349,0.8783217,-2.5627704,295.23544,True,0.0,508.35938 +195.91972,2.3062367,0.25342482,992.94257,True,0.0,508.35938 +1.6817327,2.2986023,2.9586468,8.459662,False,0.0,508.35938 +68.336136,-0.049849175,3.0487497,68.42106,True,0.0,53.67616 +38.467438,0.681449,2.2985005,47.75008,True,0.0,53.67616 +2.1606135,0.043982074,-1.919909,2.1627035,False,0.0,53.67616 +85.928925,-2.1255376,-0.40415448,365.0591,True,0.0,137.86401 +64.47992,-0.4730201,-0.5409209,71.829056,True,0.0,137.86401 +85.6683,-0.047677375,1.8019964,85.765686,True,0.0,93.1861 +51.63974,-1.0551848,2.7656822,83.15635,True,0.0,93.1861 +9.325287,-1.0397019,0.6773788,14.836224,False,35.92648,93.1861 +4.717983,-1.1351023,0.7198026,8.098137,False,35.92648,93.1861 +3.7249873,0.19724111,-2.406552,3.797681,False,14.866604,93.1861 +4.547813,-1.3853556,-0.6946566,9.656102,False,0.0,93.1861 +3.8190646,-0.04112007,-2.4457676,3.822294,False,11.469106,93.1861 +3.410903,-0.2259302,-1.681754,3.498328,False,0.0,93.1861 +98.67137,2.091026,-2.527379,405.38025,True,0.0,105.68512 +52.253113,2.3670168,2.1401656,281.10312,True,0.0,105.68512 +3.8940868,0.5186989,1.4776188,4.429787,False,0.0,105.68512 +2.538158,0.7019072,-0.99172413,3.189495,False,1.3057432,105.68512 +138.89299,-0.44423458,-0.49303725,152.82472,True,0.0,260.79507 +98.491745,-1.5284349,-3.0580032,237.75066,True,0.0,260.79507 +3.617611,-0.9747741,2.004837,5.476784,False,0.0,260.79507 +1.8696965,-0.14805967,-0.846758,1.8902274,False,0.0,260.79507 +67.504456,-2.015954,0.17664023,257.90347,True,0.0,91.17934 +39.270077,-2.3466344,2.2860043,207.0717,True,0.0,91.17934 +84.45713,-1.2592428,1.0950197,160.74818,True,0.0,53.64401 +31.342648,-2.1358464,0.57119185,134.49683,True,0.0,53.64401 +75.54779,2.1969712,1.1511415,344.0771,True,0.0,87.62571 +45.061985,2.0090382,-0.5298767,171.0161,True,0.0,87.62571 +2.4861064,-1.0006329,2.712919,3.8381126,False,0.0,87.62571 +2.050625,-0.9017875,1.0000203,2.94249,False,0.0,87.62571 +1.856973,0.587811,-1.0649012,2.1871297,False,0.0,87.62571 +61.94828,2.2593195,-2.769127,299.8604,True,0.0,88.3 +38.94891,2.147031,-0.5430129,168.96503,True,0.0,88.3 +2.7947607,-1.8894541,0.047320884,9.455948,False,0.0,88.3 +141.4867,-0.13178131,-1.6468838,142.71701,True,4.543631,98.89365 +76.650085,-0.66259503,-0.8421764,94.100685,True,0.0,98.89365 +2.3509176,0.576126,-0.25259876,2.7519891,False,0.0,98.89365 +178.95872,-0.82395434,-2.502272,243.22185,True,0.0,355.8191 +172.67928,-0.5126348,0.66599196,195.87012,True,0.0,355.8191 +104.21792,0.047707934,-0.8451486,104.33655,True,0.0,150.09268 +56.07994,-0.367593,2.87038,59.91169,True,0.0,150.09268 +2.4869409,-0.010682048,1.0123911,2.4870827,False,0.0,150.09268 +60.780846,-2.03811,1.435352,237.23865,True,0.0,88.87153 +33.82957,-1.6535667,-1.1433764,91.626564,True,0.0,88.87153 +2.5265324,2.2174966,2.4662085,11.739776,False,0.0,88.87153 +1.802245,0.14227185,-0.2732139,1.8205156,False,0.0,88.87153 +71.18123,1.0734408,2.3923292,116.28373,True,0.0,102.94279 +37.20165,0.90634686,-0.58751774,53.556625,True,0.0,102.94279 +4.5118675,0.15805508,-1.3848667,4.5683417,False,0.0,102.94279 +3.9910896,0.4904176,1.1732714,4.480734,False,0.0,102.94279 +2.2988513,0.63376874,2.8755498,2.7761946,False,0.0,102.94279 +2.006465,0.34399226,1.1303238,2.1263535,False,0.0,102.94279 +1.8649862,-0.800603,-2.7950354,2.495297,False,1.4263949,102.94279 +51.73875,0.9110382,3.087022,74.73688,True,0.0,100.409706 +44.44851,1.8684993,-0.853371,147.41174,True,0.0,100.409706 +3.000607,-0.20187856,0.6450419,3.0619597,False,0.0,100.409706 +2.420258,-0.5166261,2.8363147,2.7504926,False,0.0,100.409706 +2.1574073,-0.55793595,-1.2832512,2.5020013,False,0.0,100.409706 +98.56154,-0.10437254,1.6451315,99.09887,True,0.0,191.49762 +92.55345,0.05284541,-1.4274381,92.68272,True,0.0,191.49762 +2.458472,-0.75954545,0.44429126,3.2023852,False,0.0,191.49762 +50.57659,-2.0431526,2.5960224,198.37433,True,0.0,105.577446 +44.435783,-1.034672,-0.93063456,70.42019,True,0.0,105.577446 +174.14476,2.2153144,-0.13453081,807.4578,True,0.0,354.26932 +171.9769,1.727803,2.77916,499.24454,True,0.0,354.26932 +2.714411,0.16420956,2.9948907,2.7510903,False,0.0,354.26932 +173.15094,1.73488,0.93334156,506.00494,True,0.0,279.65268 +112.34938,1.910499,-2.1043582,387.85623,True,0.0,279.65268 +91.65252,1.6463385,0.098813474,246.57751,True,0.0,50.750694 +34.077026,1.7396971,1.0360314,100.03638,True,0.0,50.750694 +183.26172,0.842905,1.5905697,252.31143,True,0.0,227.52733 +81.009705,0.5332945,-2.3531044,92.80502,True,0.0,227.52733 +82.63001,-0.94493085,-1.3813106,122.34786,True,0.0,146.62157 +64.186325,-0.70382625,1.8313714,80.75158,True,0.0,146.62157 +1.6966382,1.0472516,1.8940922,2.7152224,False,0.0,146.62157 +168.69243,0.18333347,-0.8413998,171.53534,True,0.0,398.1015 +146.70087,-1.243135,2.2983575,275.4266,True,1.6020005,398.1015 +1.8409637,0.45870668,-1.6156689,2.038064,False,0.0,398.1015 +212.47737,-1.1133053,-0.25849062,358.32993,True,0.0,367.5446 +144.49635,-0.37670013,2.47081,154.8704,True,0.0,367.5446 +64.84271,0.40595597,1.4718239,70.259544,True,0.0,103.31347 +40.353416,-1.0222048,0.06759416,63.33704,True,0.0,103.31347 +53.033775,0.84388125,3.0827005,73.06497,True,1.1209048,91.39259 +39.339314,0.68282473,0.0911405,48.872196,True,0.0,91.39259 +51.472446,-2.0920494,-2.1044257,211.67876,True,0.0,91.530815 +42.683872,-1.9972272,1.4832954,160.15643,True,0.0,91.530815 +3.4580195,-0.22699101,-1.0633457,3.54749,False,0.0,91.530815 +2.0855157,-0.5698726,2.523635,2.4334207,False,0.0,91.530815 +225.70723,1.0536704,-1.8370463,363.02917,True,0.0,485.8664 +186.94713,-0.14162108,1.1925495,188.82501,True,0.0,485.8664 +79.53932,-1.1593143,1.8818045,139.25139,True,0.0,157.27501 +75.39263,-1.6342696,-0.93430746,200.57484,True,0.0,157.27501 +1.932295,-1.0353533,3.0444005,3.0638487,False,0.0,157.27501 +50.222202,0.76952046,-0.50303745,65.840454,True,1.2878603,100.625595 +46.388515,0.1760035,2.509952,47.108868,True,1.8177156,100.625595 +2.1511765,-0.65390116,-1.1490773,2.6277068,False,0.0,100.625595 +192.61488,-1.9984349,0.15210341,723.56244,True,0.0,257.77765 +92.15127,-0.8631716,-1.5745006,128.66573,True,2.7676837,257.77765 +94.421135,1.9425621,2.455768,336.13635,True,0.0,28.363708 +38.02677,2.2409408,2.8244352,180.78938,True,0.0,28.363708 +53.081444,2.367268,0.21251678,285.6298,True,0.0,94.46486 +39.49199,1.8493389,-3.0612936,128.60483,True,0.0,94.46486 +2.3142452,0.6444385,-3.0454617,2.8116624,False,0.0,94.46486 +96.1238,-0.7965851,1.3015797,128.26855,True,0.0,98.99669 +43.318012,-1.9184122,2.3240604,150.6812,True,0.0,98.99669 +4.91262,0.24231565,1.0964367,5.0575542,False,0.0,98.99669 +3.9594142,-1.5501119,-0.9007448,9.748517,False,0.0,98.99669 +2.9446988,-0.5047177,0.99228483,3.3277948,False,0.0,98.99669 +1.8952388,-1.9509325,2.703594,6.80143,False,0.0,98.99669 +101.485886,2.2613654,-2.6839316,492.22638,True,0.0,191.30759 +76.936935,0.83049077,-0.9798068,105.029686,True,0.0,191.30759 +3.9889953,-1.5728904,1.301164,10.028347,False,0.0,191.30759 +2.3141603,0.43000314,-0.782507,2.5314248,False,0.0,191.30759 +56.935833,-2.318145,-0.3895717,291.94623,True,0.0,88.42882 +31.368551,-1.6382636,3.0727844,83.76254,True,0.0,88.42882 +2.3448007,1.3345758,2.0023344,4.7618847,False,0.0,88.42882 +2.2572346,2.3428397,2.2736084,11.8581705,False,0.0,88.42882 +2.1180289,0.7115962,2.7123463,2.677295,False,0.0,88.42882 +212.73936,-1.6379777,2.6485033,567.92126,True,0.0,8.468693 +52.60632,-1.6379361,2.7285903,140.43051,True,0.0,8.468693 +9.122371,0.46565372,2.937868,10.129389,False,0.0,8.468693 +4.4280944,-0.5492216,-2.7388172,5.1129065,False,0.0,8.468693 +3.749965,0.12544677,-1.1013447,3.77951,False,0.0,8.468693 +1.6749717,1.1051872,0.71903145,2.8063636,False,0.0,8.468693 +109.496826,1.8350335,-0.37603563,351.75595,True,0.0,205.33829 +96.77366,1.8927528,2.9215474,328.46295,True,0.0,205.33829 +2.0549762,-0.96094435,-0.79494363,3.0790691,False,0.0,205.33829 +1.778932,-0.18796036,-2.1009247,1.8104486,False,4.001907,205.33829 +1.7955191,-0.01968471,0.9188108,1.7958671,False,0.0,205.33829 +128.77797,2.0392919,-1.1212243,503.21835,True,0.0,250.16576 +103.79239,1.2184275,2.194761,190.8514,True,0.0,250.16576 +4.4626513,1.1642052,-0.18014742,7.8443294,False,0.0,250.16576 +55.538155,-1.5470523,-0.11414751,136.35942,True,0.0,107.36885 +47.20875,-0.88816077,2.7962408,67.08521,True,0.0,107.36885 +3.3858852,-2.2016115,0.091055885,15.490753,False,2.5384252,107.36885 +2.4661167,0.30025217,-2.038387,2.5781162,False,0.0,107.36885 +2.1956754,-2.2650597,0.31317648,10.6880245,False,6.0938406,107.36885 +78.30732,1.0083487,1.9142605,121.60703,True,2.2521906,121.774315 +48.351715,0.884509,-0.9115954,68.53159,True,0.0,121.774315 +3.5476637,0.43423125,-1.373507,3.8874202,False,2.7997682,121.774315 +54.682297,1.7271099,2.4093504,158.63808,True,0.0,92.86175 +37.94109,2.2024732,-0.45963135,173.73018,True,0.0,92.86175 +7.776836,-0.88262546,-0.1671691,11.007851,False,1.3779782,92.86175 +62.0291,-1.9240665,2.6907828,216.93947,True,0.0,96.06305 +36.86705,-2.1448827,-0.33401415,159.59969,True,0.0,96.06305 +70.112854,0.9522369,2.8801105,104.3762,True,0.0,49.043346 +35.2782,0.22647557,2.2183592,36.186802,True,0.0,49.043346 +2.29942,0.5401051,3.0310388,2.643039,False,0.0,49.043346 +1.7491467,-0.17622861,0.17652826,1.7763783,False,0.0,49.043346 +109.54296,-1.6841199,1.3689152,305.25873,True,0.0,218.05446 +102.91485,-2.1472924,-1.8007023,446.57047,True,3.9505858,218.05446 +54.291714,-0.10479013,-1.9267253,54.590076,True,0.0,110.802986 +43.49067,0.9571797,1.4106175,64.98192,True,1.9720114,110.802986 +3.8260798,-2.3519495,-1.645218,20.280546,False,0.0,110.802986 +2.0130603,-0.17560503,-2.6488497,2.0441787,False,0.0,110.802986 +50.805782,1.9996475,-2.7436793,191.07635,True,0.0,93.368645 +43.383427,2.1088848,0.6367711,181.35185,True,0.0,93.368645 +1.6847608,0.71944416,-0.9371007,2.1399112,False,0.0,93.368645 +97.015915,-1.3050145,2.4815507,192.0387,True,4.4726973,206.06032 +88.98408,-0.36331013,-0.47054332,94.92165,True,0.0,206.06032 +2.335156,-1.5562092,-2.672928,5.781554,False,0.0,206.06032 +2.473694,-0.6820966,1.9404185,3.0718043,False,0.0,206.06032 +125.36198,0.35177314,2.1175866,133.19872,True,0.0,178.5084 +65.88249,0.72730035,-0.48407194,84.08905,True,3.3921523,178.5084 +2.4415019,1.5598122,-0.81723315,6.064817,False,0.0,178.5084 +1.7220787,-1.0159426,-2.9277484,2.68991,False,4.5580153,178.5084 +83.05075,-0.91862655,0.77418953,120.62761,True,0.0,160.90794 +70.770775,-0.26230496,-2.163762,73.21941,True,0.0,160.90794 +61.552677,-2.1233506,-2.7914484,260.9442,True,0.0,92.07792 +34.573643,-2.3643675,0.07658104,185.51038,True,0.0,92.07792 +3.7229018,-1.9280798,1.184245,13.070589,False,1.1176611,92.07792 +121.959465,-0.5846519,-0.3693235,143.40398,True,0.0,31.292097 +37.739136,-1.041781,-0.35858914,60.138935,True,0.0,31.292097 +56.594357,0.35795027,-0.25068632,60.258907,True,0.0,111.0911 +52.80127,0.71913356,2.935217,67.05308,True,0.0,111.0911 +126.46159,-1.6258094,1.3797243,333.81332,True,0.0,201.82704 +72.139565,-2.3395534,-1.5035098,377.75778,True,0.0,201.82704 +2.9819338,-0.72946817,2.4320624,3.811124,False,1.3375218,201.82704 +2.6968586,-1.8914185,2.2155812,9.141842,False,0.0,201.82704 +2.1797953,0.095748305,-1.9162498,2.1897948,False,0.0,201.82704 +1.7944007,-0.02516322,-0.42226386,1.7949687,False,0.0,201.82704 +1.7136804,1.8629706,-1.643341,5.6534815,False,0.0,201.82704 +75.43808,0.055378184,-0.8751211,75.55378,True,0.0,146.61618 +69.02563,-0.3106676,2.1811688,72.383484,True,0.0,146.61618 +2.497436,-0.07098976,1.3767323,2.5037317,False,0.0,146.61618 +217.58788,-1.3034084,-1.7134573,430.1091,True,0.0,409.07098 +190.90302,-1.1226742,1.3633629,324.38907,True,0.0,409.07098 +4.026102,0.9107727,2.1261945,5.8146095,False,0.0,409.07098 +4.0788536,-0.28672692,2.0323558,4.2476716,False,0.0,409.07098 +1.7098413,0.025429638,-1.6984167,1.7103941,False,1.0291904,409.07098 +151.17009,1.8371667,2.7801182,486.61588,True,0.0,288.65344 +136.72101,2.0162005,-0.3335616,522.4724,True,0.0,288.65344 +1.7392576,0.44385165,-0.40695706,1.9134092,False,3.1353142,288.65344 +60.241272,1.0162243,-2.786664,94.118034,True,0.0,94.06956 +41.81518,0.9108671,1.0762835,60.394775,True,0.0,94.06956 +4.0598745,-1.604952,-2.9362059,10.512071,False,0.0,94.06956 +2.6698413,1.1215783,0.6669231,4.5326705,False,0.0,94.06956 +82.48886,0.4388664,0.8393713,90.56101,True,0.0,160.91504 +72.22423,2.0153096,-0.37482813,275.76398,True,0.0,160.91504 +2.4917443,0.42408577,-0.46305373,2.7191913,False,0.0,160.91504 +121.63804,-0.02983415,-0.29709888,121.69218,True,0.0,214.19312 +82.907814,1.544706,1.0280818,203.12282,True,1.320825,214.19312 +5.0724044,1.1297623,-2.845862,8.668817,False,0.0,214.19312 +3.233632,-0.66139996,-2.1795099,3.96707,False,0.0,214.19312 +1.8132732,0.46517944,-0.73382044,2.0130255,False,0.0,214.19312 +66.0579,-0.5101966,-0.1027893,74.843475,True,0.0,117.404884 +51.10024,-0.7984119,3.0239997,68.271255,True,0.0,117.404884 +7.0630803,-0.6740518,-0.24771653,8.7293,False,6.064238,117.404884 +138.86241,-0.27605522,1.8368884,144.1872,True,0.0,37.3025 +53.90869,-0.03466606,2.1956391,53.941086,True,0.0,37.3025 +4.462201,1.1300459,2.354804,7.6277246,False,2.705334,37.3025 +2.0338888,0.5501259,1.7907115,2.349496,False,0.0,37.3025 +62.299686,-2.277973,2.154844,307.11798,True,2.70664,88.25354 +31.02902,-1.9104881,-1.3160573,107.118286,True,0.0,88.25354 +3.0458417,0.4894884,0.55295914,3.418076,False,0.0,88.25354 +173.40604,-0.92855275,2.6469302,253.69032,True,0.0,101.78201 +43.118977,0.0052586934,-2.953545,43.11957,True,0.0,101.78201 +3.159111,-0.83691597,2.6527855,4.3315806,False,0.0,101.78201 +2.3464384,-0.98973584,3.03854,3.5926301,False,0.0,101.78201 +1.9247459,0.09103976,-3.016251,1.9327278,False,0.0,101.78201 +59.771378,-1.938007,1.6714877,211.85626,True,0.0,104.197754 +48.69408,-2.0408726,-0.9343308,190.57008,True,0.0,104.197754 +56.87139,-2.2020068,0.12208349,260.2925,True,0.0,97.07045 +39.779804,-1.7551577,-2.824332,118.48892,True,0.0,97.07045 +167.55862,-0.9109517,-1.9090394,242.02412,True,0.0,111.512505 +45.575024,-0.060833335,-2.873989,45.659378,True,1.3061801,111.512505 +2.6320508,0.19577996,0.77015245,2.682655,False,0.0,111.512505 +1.7570434,-0.66940427,1.7164407,2.1656322,False,13.658489,111.512505 +62.34592,-2.0132124,-1.1064959,237.56572,True,0.0,112.037384 +50.160847,-2.1591601,2.1219025,220.18806,True,0.0,112.037384 +4.020532,0.31711784,2.8650048,4.2243915,False,0.0,112.037384 +2.8029742,-1.1699216,-0.38543105,4.9502363,False,0.0,112.037384 +1.8205559,-0.42007816,0.03825777,1.9835649,False,5.166607,112.037384 +53.348377,-0.354566,-0.7430138,56.737057,True,0.0,61.684414 +35.64306,0.695721,0.17972746,44.622776,True,0.0,61.684414 +27.172651,-0.8978024,2.137026,38.87955,False,122.49823,61.684414 +59.03271,1.952103,1.1140889,212.0886,True,0.0,58.408447 +44.886578,2.259079,-0.041097656,217.22217,True,0.0,58.408447 +71.22214,-1.8386729,-1.6454548,229.59225,True,0.0,92.34692 +40.89385,-2.1399105,0.35688874,176.17769,True,0.0,92.34692 +143.04486,-1.7405479,-0.47892627,420.25793,True,0.0,292.5662 +102.611176,-0.39290732,2.130402,110.63395,True,0.0,292.5662 +2.828635,-1.3862556,1.3879517,6.010644,False,1.259634,292.5662 +1.9510611,1.3323097,-2.1859329,3.9544632,False,0.0,292.5662 +127.917564,2.2912648,-2.2477791,638.857,True,0.0,254.69344 +94.48547,1.1425463,1.2178531,163.16441,True,4.7916307,254.69344 +6.050571,1.1409874,1.1422691,10.435301,False,8.826207,254.69344 +121.58366,-0.9951376,2.251426,186.92084,True,0.0,132.78554 +48.271755,-2.0836506,0.8323823,196.90575,True,0.0,132.78554 +5.814428,-1.6565835,2.724891,15.7924595,False,0.0,132.78554 +2.4639392,2.3193588,1.2103415,12.649234,False,0.0,132.78554 +83.54001,-0.18911876,0.64337325,85.03841,True,1.0727313,143.90384 +70.70184,1.3131697,-0.27858895,140.94081,True,0.0,143.90384 +2.295447,-0.84953576,1.4780824,3.1748033,False,0.0,143.90384 +126.46391,-0.5784267,-2.7235548,148.21638,True,0.0,29.76024 +41.237392,-0.382359,-3.0878694,44.288715,True,0.0,29.76024 +73.96205,1.285494,2.355377,143.96596,True,0.0,127.136894 +54.899467,1.2359014,-0.6387843,102.44383,True,0.0,127.136894 +71.41292,1.3035825,0.29164368,141.18416,True,0.0,156.81868 +66.618546,0.24321054,-2.5951607,68.598564,True,0.0,156.81868 +3.2739942,-0.77396286,-2.181004,4.304523,False,0.0,156.81868 +56.947273,0.94955987,-2.2254875,84.60893,True,0.0,110.62116 +46.967247,0.18419144,1.1158539,47.766216,True,1.3225195,110.62116 +3.1973076,0.46576583,1.170103,3.5504313,False,0.0,110.62116 +71.092804,0.7614878,-2.7595887,92.72034,True,0.0,105.61428 +39.250645,0.4662345,0.68390256,43.594532,True,0.0,105.61428 +51.26291,0.8620648,2.0777695,71.52033,True,0.0,82.28695 +31.70094,1.767371,-1.9338989,95.51843,True,0.0,82.28695 +3.551501,1.7743955,-2.035758,10.772238,False,26.483429,82.28695 +169.79672,-1.5802509,-1.1078553,429.76376,True,6.6378007,305.9814 +147.19556,-1.8439028,1.4566102,476.8665,True,0.0,305.9814 +1.9572043,-1.899502,2.6600075,6.6860147,False,0.0,305.9814 +80.089325,-0.64012724,1.7766253,97.06616,True,0.0,168.99194 +62.3225,0.72457623,-0.6820863,79.4109,True,0.0,168.99194 +19.520876,-1.8868072,-0.95268595,65.881226,True,0.0,168.99194 +2.5326173,0.804638,1.8687744,3.3976796,False,6.893358,168.99194 +67.67328,-1.7021085,-1.7088323,191.77931,True,3.388631,101.10043 +40.678772,-1.5987753,0.8801088,104.72982,True,0.0,101.10043 +90.12194,2.014087,3.1213248,343.6946,True,0.0,17.073372 +49.4194,1.9233377,2.8815703,172.71786,True,0.0,17.073372 +5.8401837,1.3151855,0.08619977,11.662457,False,23.084892,17.073372 +119.910355,1.3013494,-1.4269918,236.60805,True,0.0,218.4251 +86.84161,0.54302067,1.8614346,99.9629,True,0.0,218.4251 +2.7110267,1.1458154,0.9857274,4.694101,False,0.0,218.4251 +162.63765,0.85541683,-1.9583914,225.85985,True,0.0,353.38095 +133.88559,-0.38379243,1.096434,143.86768,True,0.0,353.38095 +7.2463746,0.6842368,1.9503103,9.009901,False,5.387352,353.38095 +2.0267718,0.25415453,-1.8334945,2.0925841,False,2.6034808,353.38095 +205.48906,0.21000049,2.4832494,210.03679,True,0.0,394.28818 +164.5688,1.0444489,-0.28130886,262.79312,True,0.0,394.28818 +261.66794,-0.49863896,0.48193544,294.87827,True,1.1235747,509.06082 +248.92009,-0.64020675,-2.8636947,301.69818,True,0.0,509.06082 +3.88763,1.1680412,2.984715,6.8551807,False,0.0,509.06082 +2.606801,0.035559315,2.252859,2.6084492,False,0.0,509.06082 +52.975582,-1.6247112,0.531575,139.69452,True,0.0,93.136826 +40.479954,-1.8934596,-2.776313,137.48729,True,1.138963,93.136826 +2.409981,0.7367654,-0.6402073,3.0942066,False,0.0,93.136826 +2.0416381,1.967504,-1.3175219,7.444432,False,0.0,93.136826 +2.8267388,1.4053617,-2.586797,6.1089773,False,0.0,93.136826 +200.9428,-0.14360754,-2.3986835,203.0184,True,0.0,394.07803 +190.01689,0.1178849,0.78201234,191.33875,True,1.7019645,394.07803 +1.9978702,-0.032203697,0.1556718,1.9989063,False,2.7946465,394.07803 +1.7620797,0.6988874,-0.16137718,2.210222,False,0.0,394.07803 +65.67522,-0.19382524,-1.4412316,66.912735,True,0.0,98.336365 +37.1278,-0.32784125,1.471352,39.14098,True,0.0,98.336365 +55.232243,2.252094,2.5754056,265.46832,True,0.0,101.88359 +47.085255,2.1319926,-0.71800035,201.29538,True,0.0,101.88359 +2.1540823,0.124271594,-1.24961,2.1707368,False,0.0,101.88359 +1.8679672,-2.2444274,0.1422383,8.911138,False,0.0,101.88359 +59.675533,-1.3171138,-1.1035222,119.36718,True,0.0,101.553925 +45.35994,-1.6483905,2.5935938,122.26694,True,0.0,101.553925 +2.7280853,-1.7217242,1.6663911,7.874513,False,0.0,101.553925 +70.05001,2.1192534,-0.8067433,295.7876,True,0.0,18.776648 +44.81852,2.1630833,-0.4729906,197.49022,True,2.0229201,18.776648 +3.986393,2.077563,-0.45244437,16.165264,False,17.432858,18.776648 +2.7117863,0.3372046,0.32050422,2.8674273,False,0.0,18.776648 +50.75114,-1.8334191,0.3396132,162.78691,True,0.0,88.04176 +32.70424,-1.0030849,-2.5566597,50.584084,True,1.598136,88.04176 +1.9167056,1.3335645,2.2905664,3.8890734,False,0.0,88.04176 +62.29024,0.277557,-0.79279643,64.70504,True,0.0,112.30041 +46.230297,-0.32915998,2.3599088,48.75743,True,1.7168677,112.30041 +5.149706,0.9213676,-1.1162286,7.4946218,False,0.0,112.30041 +2.2272608,1.2796937,0.46693385,4.313826,False,0.0,112.30041 +151.9013,0.2708749,-2.17252,157.50821,True,0.0,344.34747 +129.19788,-1.082207,1.2630925,212.5326,True,0.0,344.34747 +100.2961,1.5992392,0.77593684,258.32843,True,0.0,216.7938 +98.02283,0.74211246,-2.3781412,126.27668,True,0.0,216.7938 +84.20452,-0.5376219,1.4442003,96.6696,True,0.0,162.56775 +81.21604,-1.1907918,-0.9178489,145.93164,True,0.0,162.56775 +1.7729329,0.21563669,-1.2587175,1.8143128,False,0.0,162.56775 +86.30849,0.8090924,1.9019648,116.133705,True,0.0,192.72717 +77.44441,-0.37486452,-1.1118025,82.94981,True,0.0,192.72717 +1.996984,-0.6752222,-0.66505593,2.4697828,False,0.0,192.72717 +107.23452,2.0532522,2.6391726,424.73032,True,0.0,227.39915 +101.59641,1.2141325,-0.5077799,186.14186,True,0.0,227.39915 +142.73933,-0.06067699,-2.8366644,143.00217,True,0.0,236.98042 +111.25366,-0.16522035,1.0081645,112.77561,True,0.0,236.98042 +2.647668,1.8250456,0.017759167,8.425261,False,0.0,236.98042 +1.973235,-2.3117685,-0.3950067,10.054957,False,4.7515235,236.98042 +66.62561,-1.3126518,1.1916567,132.75552,True,0.0,52.74852 +35.113495,-2.150906,0.5119039,152.90205,True,0.0,52.74852 +120.395424,-1.2744663,-0.802686,232.14478,True,0.0,214.08286 +81.65497,-2.1317654,1.9920442,349.00815,True,0.0,214.08286 +3.2897065,-0.025268143,1.3804126,3.2907567,False,2.1204782,214.08286 +2.6007152,0.1268098,-1.5964324,2.6216538,False,1.755739,214.08286 +158.66956,-2.1982365,1.3123726,723.54193,True,0.0,279.51117 +123.22204,-2.1501753,-1.9089761,536.19006,True,0.0,279.51117 +2.9787164,-0.05560627,1.0411686,2.9833226,False,0.0,279.51117 +1.929388,0.23701964,0.7929095,1.9838371,False,0.0,279.51117 +1.982317,-0.3473192,0.92546743,2.103088,False,0.0,279.51117 +118.996605,1.149721,-2.4135623,206.69931,True,0.0,215.89066 +81.240715,-0.067209706,1.6872598,81.42428,True,0.0,215.89066 +6.712382,-1.809332,2.8768892,21.043755,False,1.878255,215.89066 +3.5319011,-0.5496328,0.8367773,4.078954,False,0.0,215.89066 +2.4165695,-0.8137105,-2.5762553,3.2617345,False,0.0,215.89066 +50.808052,2.1781604,3.1360722,227.19576,True,0.0,92.86839 +32.853664,0.9351223,0.7813445,48.295918,True,0.0,92.86839 +15.099656,1.6686476,-0.6817457,41.47491,False,3.8819625,92.86839 +5.6431055,2.0970986,1.5917565,23.321045,False,0.0,92.86839 +1.8797879,1.1924623,-0.9990087,3.3823571,False,0.0,92.86839 +146.12395,-1.1837705,-2.23284,261.03513,True,0.0,274.5773 +127.82919,-0.9935344,0.9159885,196.28357,True,0.0,274.5773 +2.0629146,-0.59582585,2.9032073,2.4400525,False,0.0,274.5773 +2.1297846,0.3763068,0.588407,2.2823687,False,0.0,274.5773 +66.90144,-2.2848482,-1.6231036,332.03134,True,0.0,160.72462 +61.376358,-0.87713265,1.7192476,86.539764,True,3.075192,160.72462 +1.7686005,0.10190614,1.1877617,1.7777917,False,0.0,160.72462 +206.4099,-1.3310257,-3.1082246,417.89023,True,0.0,385.80847 +176.71411,-1.6225317,0.10277312,465.04947,True,0.0,385.80847 +61.51801,0.6030323,0.008968894,73.046555,True,0.0,115.931946 +43.836918,1.5785724,-2.9183218,110.78245,True,0.0,115.931946 +2.376285,-0.597323,-2.5810974,2.8129635,False,0.0,115.931946 +2.112425,0.9724507,2.4518604,3.1924787,False,0.0,115.931946 +139.15906,1.0493597,1.512385,223.07085,True,0.0,80.80503 +49.823967,0.1826369,1.13288,50.65725,True,0.0,80.80503 +9.010039,1.3141134,-1.8212199,17.97576,False,0.0,80.80503 +2.938247,0.7005402,1.5925063,3.689201,False,0.0,80.80503 +71.34936,2.2308364,0.5861208,335.8802,True,0.0,142.8932 +66.09962,1.6025925,-2.274566,170.77707,True,0.0,142.8932 +1.8057514,-0.60477763,1.0742875,2.1461725,False,0.0,142.8932 +88.243706,-1.3301156,2.769412,178.5138,True,0.0,139.94698 +64.916275,-1.843345,0.58620906,210.1964,True,2.8161006,139.94698 +63.507465,2.2860954,-1.8011181,315.57233,True,0.0,148.72258 +64.34505,1.1568563,1.2780757,112.423485,True,0.0,148.72258 +2.6744618,-0.923051,-1.488619,3.8970425,False,0.0,148.72258 +200.46619,-1.7041472,0.4948443,569.18604,True,0.0,64.22422 +32.696632,-2.1936464,-0.13592674,148.43231,True,0.0,64.22422 +5.6168904,0.9973985,1.2170782,8.650172,False,0.0,64.22422 +157.04349,1.8194704,-1.4644964,497.09778,True,0.0,121.99462 +98.58414,1.7850189,-2.4885051,302.0365,True,0.0,121.99462 +3.9490662,-0.18992464,-1.0900757,4.0205045,False,0.0,121.99462 +2.5590618,2.1286643,2.161469,10.904968,False,0.0,121.99462 +106.754005,2.0701714,-2.7061772,429.81006,True,0.0,32.35786 +34.69309,1.7515185,-2.2783082,102.98397,True,0.0,32.35786 +3.1913717,-2.1081326,1.0303301,13.330866,False,0.0,32.35786 +3.4739087,-0.9716291,-2.3937075,5.2468376,False,0.0,32.35786 +61.475906,-2.3842242,0.7296569,336.3593,True,0.0,17.15827 +32.909023,-2.1183317,0.4559591,138.83464,True,1.6247654,17.15827 +2.3397424,1.3599467,2.6476772,4.8580775,False,0.0,17.15827 +140.6062,-1.7044593,0.3772314,399.3415,True,0.0,178.22353 +117.30362,-2.272008,-0.98963624,574.9027,True,2.7273452,178.22353 +2.712533,-2.186463,-0.9907372,12.22807,False,39.42832,178.22353 +1.8050148,-0.6458802,-0.19090724,2.1947775,False,0.0,178.22353 +53.42501,-1.7695649,-0.7480709,161.30898,True,0.0,50.708344 +37.319145,-1.7146742,-1.954171,107.01056,True,0.0,50.708344 +2.1577032,0.4128126,1.6966101,2.3441806,False,0.0,50.708344 +50.162495,0.094959304,0.44582123,50.388832,True,0.0,70.31631 +42.49334,-0.01291327,-1.2795635,42.496883,True,0.0,70.31631 +2.5817106,0.09872844,0.5457892,2.5943034,False,0.0,70.31631 +60.81441,2.1160119,0.0801541,255.98273,True,0.0,108.64053 +53.01175,1.5943738,-2.254008,135.92953,True,2.5244758,108.64053 +10.333662,1.0881975,-1.4265523,17.080204,False,7.568077,108.64053 +4.5449414,0.9542036,-1.5759484,6.7758727,False,6.4745765,108.64053 +1.863297,-0.09013782,-0.38570607,1.8708717,False,0.0,108.64053 +57.698143,2.0718174,0.13508856,232.6734,True,0.0,89.47171 +48.26234,1.900852,2.1423357,165.08215,True,0.0,89.47171 +3.2399397,1.5768473,-2.72717,8.174852,False,2.5574756,89.47171 +70.84712,0.4316419,3.0076609,77.55017,True,0.0,95.63368 +41.23069,-0.9772129,-2.351184,62.53457,True,0.0,95.63368 +1.8553177,-0.7373863,0.7859123,2.3829951,False,0.0,95.63368 +138.5907,0.6251066,-2.62152,166.56174,True,0.0,243.98708 +104.7885,0.9434204,0.5758229,154.98463,True,2.114725,243.98708 +4.9403687,-0.32964113,0.04827138,5.2112265,False,2.5269597,243.98708 +2.1208632,-0.11815068,1.1201124,2.1356838,False,0.0,243.98708 +103.08189,-1.0261256,-2.6288462,162.2832,True,0.0,187.42145 +74.73397,-1.8974763,0.008619946,254.80507,True,2.393109,187.42145 +1.7439046,0.49768674,2.6881945,1.9643751,False,0.0,187.42145 +50.48474,0.5067804,3.1148233,57.10759,True,0.0,84.4865 +32.691677,1.3406384,0.6263715,66.74269,True,0.0,84.4865 +8.00704,1.3438307,0.57147497,16.392595,False,0.0,84.4865 +50.15487,1.0126556,1.6701385,78.14517,True,0.0,101.80751 +38.938667,2.1277082,-1.7376335,165.7758,True,0.0,101.80751 +2.1864345,1.0122781,1.7579184,3.4056485,False,0.0,101.80751 +100.93959,2.1241782,-1.5883349,428.264,True,0.0,193.62721 +93.7259,2.0127883,1.3301781,356.99127,True,0.0,193.62721 +3.755805,1.9761484,1.2597882,13.80916,False,0.0,193.62721 +2.748292,1.7898061,1.113208,8.458259,False,0.0,193.62721 +2.2172644,0.41468874,-1.4394289,2.41066,False,0.0,193.62721 +1.8256872,2.022889,-1.6217338,7.021964,False,20.353985,193.62721 +2.3017569,2.1001909,-1.4543848,9.540968,False,20.353985,193.62721 +60.14817,1.0251673,-0.98325795,94.62205,True,2.574322,127.329636 +49.759827,2.2056608,2.542967,228.55746,True,0.0,127.329636 +1.9621994,0.45554182,0.5336982,2.1693408,False,0.0,127.329636 +55.01793,-1.0064031,-1.408068,85.31285,True,0.0,84.20301 +32.940845,-0.7706534,1.3521681,43.216553,True,1.1607984,84.20301 +2.5716774,0.31320935,-2.7774806,2.698853,False,0.0,84.20301 +61.27286,0.15150823,2.1373467,61.977463,True,0.0,105.57576 +56.815033,-0.23998211,0.01583805,58.458927,True,0.0,105.57576 +2.581642,-1.105118,2.050934,4.3252215,False,5.959188,105.57576 +2.6757057,-1.8159298,1.1689489,8.441149,False,0.0,105.57576 +58.093697,-1.8025225,-2.7290628,180.95633,True,0.0,100.86129 +44.903374,-1.7488091,0.090033956,132.95294,True,0.0,100.86129 +2.5864298,0.26494625,-2.997779,2.6777413,False,0.0,100.86129 +1.8870631,-0.49657646,0.2825217,2.1245472,False,0.0,100.86129 +100.44142,0.016719349,1.0155562,100.45546,True,0.0,119.14462 +47.97597,-1.2664627,2.0974042,91.876526,True,1.5757024,119.14462 +4.949195,1.1290145,-1.0382812,8.453123,False,0.0,119.14462 +3.5337453,-1.6775848,0.3106712,9.78748,False,7.5313444,119.14462 +2.8539517,-0.94513243,-2.5491524,4.226392,False,4.917579,119.14462 +75.39929,-1.2627292,-0.29967955,143.93488,True,0.0,146.14462 +73.110954,-1.5634335,2.3722017,182.2146,True,0.0,146.14462 +5.8870196,0.30885983,-1.441987,6.170053,False,0.0,146.14462 +3.4750757,-1.2631968,-0.18998668,6.6364536,False,0.0,146.14462 +2.3834388,-0.07702549,2.6998954,2.3905127,False,0.0,146.14462 +50.251442,1.9014536,-2.627274,171.98485,True,0.0,78.85068 +35.40954,1.9002031,-0.21283823,121.04381,True,1.1128907,78.85068 +3.347598,-0.7339778,2.4229133,4.2905283,False,13.932732,78.85068 +2.6049569,-2.3386843,2.0596917,13.629189,False,2.54301,78.85068 +2.028587,0.8376912,-1.2282789,2.7829514,False,1.0385299,78.85068 +54.707977,-0.33104178,-1.0063001,57.73314,True,0.0,19.5354 +37.03715,0.007988726,-1.2760018,37.038334,True,0.0,19.5354 +3.3604994,-2.2604191,-1.5614765,16.283993,False,1.8439522,19.5354 +59.267433,-1.9465959,-2.1339822,211.8088,True,2.7346787,14.781746 +46.565968,-2.1608114,-1.9517293,204.73679,True,0.0,14.781746 +3.870059,-1.9463971,-2.205147,13.828102,False,2.7346787,14.781746 +94.313446,-2.113457,1.169816,396.00443,True,0.0,154.75748 +65.12927,-1.9332972,-2.3392677,229.80649,True,0.0,154.75748 +59.000507,-1.792634,3.0686154,182.0688,True,0.0,104.399994 +59.52987,-2.2230182,1.0225887,278.107,True,0.0,104.399994 +2.9525344,0.115210086,0.7038414,2.972151,False,2.8407025,104.399994 +3.1576898,1.1912909,2.2872665,5.676193,False,2.223129,104.399994 +2.5105722,-0.92541707,-1.6356957,3.6645396,False,1.462954,104.399994 +86.46942,-1.0601438,-2.635032,139.78613,True,0.0,144.19485 +56.238026,-0.26809815,1.1375661,58.271263,True,0.0,144.19485 +60.46828,-2.0537484,0.09514351,239.61542,True,0.0,85.663315 +31.340805,-2.2129698,2.8427162,144.98575,True,0.0,85.663315 +5.769756,-2.214251,2.9488018,26.72489,False,0.0,85.663315 +4.345557,-0.83604,-2.3865561,5.954795,False,0.0,85.663315 +3.4653044,-0.03291785,2.0137713,3.4671822,False,0.0,85.663315 +123.95004,1.029699,2.1605332,195.67604,True,0.0,275.20566 +104.30255,-0.24684271,-0.9110181,107.49637,True,0.0,275.20566 +7.290106,0.64072514,0.7217199,8.838404,False,1.7326282,275.20566 +2.2236707,0.2484844,-2.9074485,2.2926743,False,0.0,275.20566 +1.991452,-0.94163215,-0.61366016,2.9415278,False,0.0,275.20566 +52.98088,2.288035,-0.9635637,263.76578,True,0.0,88.02042 +36.652584,2.0070589,1.877273,138.836,True,0.0,88.02042 +414.1006,-1.5682106,3.0064948,1036.5917,True,0.0,44.572975 +35.28718,-1.846596,2.7651222,114.612434,True,0.0,44.572975 +4.23846,1.3112895,-0.31419578,8.435443,False,5.5831456,44.572975 +50.48794,0.40369377,1.160359,54.658092,True,0.0,103.28181 +52.508003,0.24583162,-1.9467417,54.102623,True,0.0,103.28181 +53.894726,2.2807055,3.0920208,266.39603,True,0.0,93.583015 +40.657448,2.2054722,0.044808183,186.71393,True,0.0,93.583015 +166.32268,-0.49240023,0.34529704,186.8965,True,0.0,288.33362 +124.0827,-0.28413752,-2.9195576,129.12535,True,0.0,288.33362 +9.845874,-0.937584,-2.5799003,14.499904,False,3.2272844,288.33362 +132.48778,-1.7952667,2.5478325,409.8618,True,0.0,17.180113 +48.497482,-1.6007334,2.4585238,125.08506,True,2.1363778,17.180113 +105.379776,0.52425075,-0.19806476,120.195724,True,0.0,174.12605 +73.158295,1.652099,-2.0319414,197.8774,True,2.9408033,174.12605 +117.78638,-1.2269973,1.4997468,218.14882,True,0.0,252.40172 +112.911,-2.0890353,-1.6338773,462.98737,True,0.0,252.40172 +71.531845,1.5742507,1.9745249,180.05588,True,0.0,142.67331 +62.997974,2.2792192,-1.1955389,310.9395,True,0.0,142.67331 +166.27208,-1.2009759,-2.6617756,301.30655,True,0.0,266.7916 +101.367905,-1.7046583,0.28959137,287.9528,True,0.0,266.7916 +58.05202,-1.6770356,2.457448,160.70543,True,0.0,75.6352 +30.041393,-0.441061,-2.482911,33.01112,True,0.0,75.6352 +2.512009,0.1437418,1.7310697,2.5380046,False,2.2203574,75.6352 +2.4953315,2.1346755,2.0717776,10.695722,False,1.5987734,75.6352 +51.66275,0.35205808,-1.8967171,54.897625,True,0.0,98.39248 +45.914562,0.68290186,1.073833,57.043404,True,1.1934092,98.39248 +3.3839855,1.143775,1.8284177,5.849571,False,0.0,98.39248 +51.71218,0.25460318,-0.8910051,53.397316,True,0.0,103.329666 +47.092297,0.86663365,2.205317,65.91164,True,0.0,103.329666 +56.50974,1.8991119,0.75234884,192.97116,True,0.0,93.06332 +37.75129,1.6163807,-2.2452781,98.78476,True,0.0,93.06332 +3.3260622,1.7473221,-1.6112773,9.834256,False,0.0,93.06332 +2.4605606,-0.9382193,-1.2820438,3.6253295,False,0.0,93.06332 +135.81606,-0.6539381,-2.9399393,165.90565,True,0.0,37.10132 +34.88608,-0.32697335,-2.5092337,36.76762,True,0.0,37.10132 +136.86642,-0.35748574,1.1100706,145.70544,True,0.0,282.8278 +135.77216,0.19097061,-2.0930464,138.25548,True,0.0,282.8278 +6.2245083,-1.2875295,-2.956721,12.137089,False,0.0,282.8278 +2.2089486,-2.1612973,-1.7955707,9.71669,False,0.0,282.8278 +106.18496,-2.3030372,-0.816647,536.47174,True,0.0,61.494156 +57.443348,-1.8030789,-1.4301709,179.02487,True,0.0,61.494156 +2.2818546,0.65416604,2.7185793,2.787757,False,0.0,61.494156 +1.8129692,-1.8220477,1.4667283,5.752736,False,0.0,61.494156 +65.995026,-2.1662912,-0.32854202,291.71332,True,2.3243132,99.0348 +45.4232,-2.1907837,1.9310436,205.63191,True,0.0,99.0348 +2.7978268,0.14570127,1.3854289,2.8275766,False,0.0,99.0348 +2.6110919,0.3115745,-2.9995513,2.738861,False,0.0,99.0348 +2.1338446,-1.087281,2.1100068,3.5243964,False,0.0,99.0348 +122.10915,1.0166214,-0.11007731,190.83562,True,0.0,180.41504 +71.80346,0.88123477,2.4710507,101.53546,True,0.0,180.41504 +3.9491234,0.9370903,2.3958242,5.8137207,False,0.0,180.41504 +2.0069356,0.29527354,1.5134023,2.095062,False,0.0,180.41504 +1.8193917,-0.5581702,-2.4632638,2.1102462,False,0.0,180.41504 +168.19495,0.6873437,0.030027453,209.51514,True,0.0,239.41429 +113.1175,1.069429,2.0480518,184.20732,True,0.0,239.41429 +2.5525882,2.126192,-1.1799188,10.851276,False,0.0,239.41429 +2.2834294,-0.6801508,-2.6190429,2.83227,False,0.0,239.41429 +2.2203286,0.03632486,2.1011271,2.2217937,False,0.0,239.41429 +72.561226,-0.19975458,2.2017748,74.01371,True,1.8878539,118.838875 +52.969612,-0.26541123,-1.5224078,54.846264,True,0.0,118.838875 +2.8686454,-2.0461955,0.16068187,11.28472,False,1.615506,118.838875 +1.9121826,0.44884038,-0.44974816,2.1080499,False,0.0,118.838875 +225.1261,-0.43695304,-2.3674834,246.96165,True,0.0,465.19763 +202.839,0.40425265,0.880141,219.63994,True,0.0,465.19763 +2.2288857,0.8479652,-0.84607035,3.0794022,False,0.0,465.19763 +95.42502,-1.5521878,0.9431997,235.39316,True,0.0,85.93384 +44.426624,-1.9426551,-0.4198513,158.17154,True,0.0,85.93384 +2.2578418,0.2521519,1.7161089,2.3300004,False,0.0,85.93384 +4.995627,-1.6370609,0.95260346,13.324814,False,0.0,85.93384 +205.49782,0.68188703,-1.5870111,255.15306,True,0.0,5.818881 +37.814125,0.698361,-1.523065,47.416164,True,0.0,5.818881 +2.545423,-1.112173,-2.879714,4.288787,False,0.0,5.818881 +2.0081627,-0.7819073,-0.2548549,2.6539574,False,0.0,5.818881 +1.774403,1.5169028,0.39487848,4.238584,False,0.0,5.818881 +1.8145165,0.66038734,0.07426026,2.2247725,False,0.0,5.818881 +51.897762,-1.6748961,-0.7221816,143.38231,True,0.0,90.48938 +38.955715,-1.9463475,2.5743134,139.18597,True,0.0,90.48938 +3.0938253,0.20884028,-1.8104516,3.1615384,False,0.0,90.48938 +2.5417323,-1.9489982,2.520655,9.10457,False,21.020288,90.48938 +2.8099082,-1.6247729,-0.80437857,7.4100404,False,0.0,90.48938 +51.889507,2.053288,-2.277189,205.52905,True,0.0,61.38919 +30.143875,0.8693015,-1.3276116,42.269073,True,0.0,61.38919 +2.403819,-0.7239535,2.0263805,3.0617483,False,0.0,61.38919 +1.6855229,-0.15291223,-1.8619016,1.705267,False,0.0,61.38919 +140.5034,1.2739199,2.9237137,270.7902,True,0.0,228.19281 +96.544174,0.24966438,0.99818707,99.56874,True,0.0,228.19281 +4.963257,0.51016825,0.47061428,5.6232853,False,0.0,228.19281 +4.4366326,-1.2931943,-1.0059268,8.693143,False,0.0,228.19281 +53.15834,-1.7020066,-1.1382061,150.63106,True,2.8835647,117.85999 +53.0928,-0.6336003,1.4184799,64.11116,True,0.0,117.85999 +8.6681,0.5296843,2.4848766,9.912783,False,0.0,117.85999 +1.6657796,0.6514511,-2.130767,2.0319273,False,0.0,117.85999 +182.21585,0.67865616,-0.77514863,225.81328,True,1.005778,267.5647 +101.33066,0.66674036,2.0141532,124.700386,True,0.0,267.5647 +71.1893,-2.3356848,-2.5059736,371.36893,True,0.0,14.6969385 +31.678844,-2.099002,-2.3068447,131.15994,True,0.0,14.6969385 +2.1151025,-0.3139866,-1.4946848,2.2202234,False,0.0,14.6969385 +2.6668072,-0.47818226,1.2814783,2.977555,False,0.0,14.6969385 +1.8816923,0.57402426,1.0089189,2.2003112,False,0.0,14.6969385 +145.39,-1.6995745,-0.7824302,411.04514,True,0.0,169.16255 +113.123085,-0.7389294,-1.6741605,145.4377,True,0.0,169.16255 +5.7503858,-1.5691122,1.301776,14.406478,False,0.0,169.16255 +2.820013,0.30671462,-2.591488,2.9537008,False,5.145551,169.16255 +5.1852303,-2.2064576,-3.0847683,23.835396,False,2.0826328,169.16255 +2.5242984,-0.6001817,-1.589019,2.99276,False,0.0,169.16255 +54.568077,-1.7494042,2.9229856,161.65936,True,0.0,95.44491 +41.357845,-1.5507162,-0.274092,101.88384,True,1.8336333,95.44491 +2.0244858,-1.7660483,2.8213038,6.0923934,False,33.95743,95.44491 +124.05163,-0.53092486,2.153946,141.95012,True,0.0,179.51117 +75.01498,-0.25708464,-0.1834516,77.50762,True,0.0,179.51117 +2.3490567,-1.6718521,-1.7424883,6.4715505,False,0.0,179.51117 +121.37589,0.83865535,1.8113468,166.62154,True,0.0,255.66531 +93.63547,-0.4043382,-1.2742977,101.39452,True,0.0,255.66531 +14.85896,-0.624789,-1.4236699,17.854721,False,0.0,255.66531 +80.836555,2.3577175,-2.2558148,430.91708,True,0.0,46.310432 +39.03345,2.0528653,-3.041377,154.5443,True,0.0,46.310432 +2.5745547,0.45895976,1.1023098,2.8505054,False,0.0,46.310432 +53.625248,2.2959235,2.6514769,269.0452,True,0.0,92.09616 +39.578255,2.226082,-0.39772615,185.45285,True,0.0,92.09616 +4.7765217,-0.03628437,1.7481358,4.779666,False,0.0,92.09616 +2.346737,-0.6276313,-1.3170493,2.824325,False,0.0,92.09616 +1.9049311,0.06207548,2.3236315,1.9086024,False,0.0,92.09616 +66.69577,0.5560804,2.5226161,77.27627,True,0.0,132.66461 +64.465294,0.2498648,-0.5860093,66.48815,True,0.0,132.66461 +146.62364,-1.5661867,2.0572593,366.35336,True,1.068674,38.52475 +57.565193,-1.8195518,1.7220727,182.22812,True,0.0,38.52475 +14.007154,-1.7395291,1.8162296,41.11285,True,36.540424,38.52475 +2.3915346,0.19241734,1.566668,2.435944,False,0.0,38.52475 +66.95413,0.17442182,1.5884697,67.97519,True,0.0,147.39424 +68.43262,-1.6878835,1.2017777,191.36952,True,0.0,147.39424 +351.22955,-0.47729307,2.1764312,392.0014,True,0.0,541.9477 +209.59145,-0.48615813,-0.8636854,234.8516,True,0.0,541.9477 +2.311294,0.7163478,2.517196,2.9301167,False,0.0,541.9477 +120.55419,-1.3369465,2.5065174,245.33058,True,0.0,232.88202 +102.48528,-2.2135627,-1.3026258,474.3819,True,0.0,232.88202 +5.189906,-0.24022146,2.563386,5.340373,False,0.0,232.88202 +3.3402104,-0.11194498,-2.0095375,3.3611615,False,0.0,232.88202 +2.242566,0.6201805,1.6590369,2.68784,False,0.0,232.88202 +71.64749,-2.2206554,2.8559163,333.9456,True,0.0,88.85593 +35.81967,-1.9135807,0.7722159,124.02317,True,0.0,88.85593 +4.085495,1.597319,-1.3927871,10.504236,False,0.0,88.85593 +157.47913,0.6211866,1.7998081,188.85225,True,0.0,54.44098 +73.009,1.0539896,2.0603936,117.45758,True,0.0,54.44098 +3.5856586,-0.055266213,3.100692,3.5911357,False,0.0,54.44098 +2.320474,-0.7629374,-0.22078776,3.0292175,False,0.0,54.44098 +118.61803,1.2280952,-1.6352134,219.89224,True,0.0,181.33946 +74.82887,0.80819297,2.2093294,100.62659,True,0.0,181.33946 +4.1172,0.11886817,-1.4512734,4.1463213,False,0.0,181.33946 +1.8513784,0.55108917,-2.0856352,2.1396968,False,0.0,181.33946 +133.83157,0.62406224,-3.1070118,160.74902,True,0.0,235.6501 +104.01278,0.62891215,0.13847895,125.269905,True,0.0,235.6501 +3.7765024,1.7521352,2.4039218,11.21679,False,0.0,235.6501 +2.7939825,0.5083034,-1.1495023,3.162765,False,0.0,235.6501 +2.100975,0.45679775,0.25565192,2.3240125,False,0.0,235.6501 +1.9424348,-0.051132064,-1.2121311,1.9449747,False,0.0,235.6501 +153.22166,-0.07515197,2.0721292,153.65456,True,0.0,56.98749 +52.028522,0.103746906,1.4495147,52.308777,True,0.0,56.98749 +1.7429658,-2.1393824,1.9751842,7.505139,False,2.1895196,56.98749 +64.33099,-1.0298244,0.21734741,101.56718,True,0.0,105.74935 +43.66361,-1.0130494,-2.7860518,68.051834,True,0.0,105.74935 +10.840145,-1.0140156,-2.7016933,16.907417,False,6.2265205,105.74935 +80.66378,-2.0657656,1.0593791,323.38345,True,0.0,174.85199 +83.32604,-1.3391359,-2.027619,169.89417,True,0.0,174.85199 +3.8637736,-0.24049515,-0.074998416,3.9760497,False,0.0,174.85199 +126.31193,-1.042426,-1.6920131,201.38461,True,0.0,224.9971 +99.944084,-0.87378424,1.5854472,140.58783,True,0.0,224.9971 +113.73961,1.3172537,-0.04070303,227.5375,True,0.0,66.005684 +30.804693,1.5624391,1.1093105,76.70471,True,0.0,66.005684 +77.08516,2.09534,1.4856808,318.02377,True,0.0,120.82102 +47.450745,1.8809859,-1.420387,159.2544,True,0.0,120.82102 +75.43022,-1.6510994,1.075918,203.83307,True,0.0,89.77485 +47.07423,-1.0214697,-0.42485178,73.84391,True,0.0,89.77485 +3.1615403,1.2032233,1.8842562,5.739873,False,0.0,89.77485 +71.27145,-0.6182921,0.9281944,85.33401,True,0.0,101.94628 +36.134613,-0.80659413,-2.2115684,48.540363,True,1.0430514,101.94628 +4.174551,-0.72620404,-0.6916487,5.324557,False,0.0,101.94628 +1.7309483,-0.3568843,-2.8110542,1.8423557,False,0.0,101.94628 +100.07886,1.934875,-2.7643254,353.65973,True,0.0,93.53342 +46.12968,1.0256289,-1.7115163,72.594734,True,0.0,93.53342 +3.3900757,2.3609166,-1.4225976,18.128426,False,0.0,93.53342 +3.0747044,-1.5609663,-0.5432656,7.6457977,False,0.0,93.53342 +121.83036,0.37153232,0.12379223,130.33603,True,0.0,96.367 +64.01099,0.8711184,-0.886044,89.873505,True,0.0,96.367 +86.56755,0.51264805,-0.9662762,98.19419,True,0.0,227.91081 +82.78586,-1.257905,1.2503147,157.38802,True,1.1322725,227.91081 +13.693767,-1.0575355,1.047955,22.091997,False,1.1322725,227.91081 +2.0623987,-0.2521634,-1.7872181,2.128317,False,2.3325834,227.91081 +1.791799,-1.250786,0.47559386,3.385933,False,0.0,227.91081 +88.083244,2.0411222,-0.4142305,344.80746,True,0.0,95.57368 +48.66585,0.81377816,0.25035515,65.6891,True,0.0,95.57368 +113.18695,0.6093601,-0.13946827,134.85957,True,0.0,300.88568 +109.83829,-1.024686,-3.086671,172.72783,True,0.0,300.88568 +2.371973,0.21812172,1.5977012,2.428623,False,0.0,300.88568 +1.83148,0.897002,1.5613472,2.6190443,False,0.0,300.88568 +1.897981,1.8368639,1.6450704,6.107835,False,0.0,300.88568 +62.682987,-0.23311888,-0.18344063,64.39395,True,0.0,47.22205 +34.27257,0.57803196,0.41106355,40.159367,True,0.0,47.22205 +1.7446741,1.1661147,1.5205518,3.071563,False,0.0,47.22205 +148.3907,-1.0622718,1.5854194,240.28947,True,0.0,287.3365 +139.09491,-1.0810394,-1.5382634,228.60141,True,0.0,287.3365 +3.993492,1.349201,2.7844555,8.214198,False,0.0,287.3365 +2.3271995,2.0097656,-1.6600829,8.838224,False,0.0,287.3365 +138.07971,0.39290395,2.6736758,148.87546,True,3.929677,72.53883 +69.20219,0.6537143,-2.9002883,84.522835,True,0.0,72.53883 +2.1132317,-0.7943409,-1.2306784,2.8157344,False,0.0,72.53883 +2.8547723,-1.6374679,-2.8414216,7.617395,False,0.0,72.53883 +1.8557364,-0.33209825,-1.0416125,1.9590142,False,0.0,72.53883 +135.98804,-1.754264,-2.8222055,404.71582,True,0.0,317.33044 +113.3462,-0.28849387,0.14968908,118.09583,True,1.7814435,317.33044 +2.5934627,0.24608089,0.86977375,2.6723843,False,1.8887215,317.33044 +52.4311,-1.8503907,0.04142723,170.91176,True,0.0,85.00877 +34.47033,-1.778398,3.101004,104.94962,True,0.0,85.00877 +2.6732254,-1.986894,1.4678848,9.930989,False,0.0,85.00877 +1.6863642,0.17920893,-0.69086415,1.7135162,False,0.0,85.00877 +97.022354,0.7524593,-1.4135411,125.80981,True,1.0296359,189.87628 +72.43244,-0.5306213,0.82938564,82.87096,True,0.0,189.87628 +2.4256387,-1.3904169,2.0279171,5.1732755,False,0.0,189.87628 +103.51683,1.2441092,-1.9322081,194.51018,True,0.0,110.67612 +51.49286,2.2503471,-3.0899146,247.07285,True,0.0,110.67612 +3.9695098,0.74795336,-1.3440145,5.132588,False,0.0,110.67612 +3.612011,-0.2512186,1.3175172,3.7265902,False,0.0,110.67612 +3.7678444,1.5590674,0.19253603,9.353141,False,0.0,110.67612 +1.9181474,0.22307913,1.5609645,1.9660734,False,1.5126033,110.67612 +267.90042,1.6382583,-0.3987499,715.36334,True,0.0,73.71016 +30.591076,1.9080523,-1.1869367,105.36053,True,0.0,73.71016 +2.8081748,-0.6333164,-0.83594793,3.3904166,False,0.0,73.71016 +1.7490659,0.48692462,0.3022843,1.9605432,False,0.0,73.71016 +56.846222,-1.3079203,-1.2942188,112.807236,True,0.0,89.472435 +33.526516,-1.9691738,2.3558679,122.44431,True,0.0,89.472435 +2.6643546,0.75047946,1.5143539,3.450546,False,0.0,89.472435 +55.54244,2.302466,-0.6459115,280.45654,True,0.0,115.359695 +53.81862,1.6409777,2.4531734,144.07251,True,0.0,115.359695 +68.57993,-1.3227879,-2.9380083,137.8547,True,0.0,103.19119 +38.03254,-1.036423,0.20175251,60.354523,True,0.0,103.19119 +190.92017,0.20013775,0.80809194,194.75662,True,8.828038,399.25644 +189.65004,-0.42502144,-2.3684716,207.03896,True,0.0,399.25644 +70.92668,2.2287793,-3.139191,333.21994,True,0.0,86.0465 +39.75508,1.782291,1.3600206,121.48576,True,0.0,86.0465 +1.7429054,1.0295341,-2.0415797,2.7511191,False,0.0,86.0465 +97.14849,-0.86427826,-1.2115328,135.74792,True,1.2321352,67.58204 +42.3931,-0.9640867,-2.315021,63.668564,True,0.0,67.58204 +3.4704475,-0.3031853,-0.19170605,3.6311772,False,0.0,67.58204 +3.6109774,0.9854162,1.4499745,5.510731,False,0.0,67.58204 +2.1389055,1.3463798,1.1770989,4.3886776,False,0.0,67.58204 +86.76692,1.8245573,-2.3773782,275.9769,True,0.0,144.08932 +58.817432,1.5611936,0.8036997,146.29044,True,0.0,144.08932 +163.84358,-0.7213817,-2.4169943,208.35611,True,0.0,314.0751 +141.7297,-1.263077,0.9547877,270.63773,True,0.0,314.0751 +2.560967,-0.26785702,-2.1549263,2.653389,False,0.0,314.0751 +83.35269,0.7171967,0.2053937,105.724594,True,1.3517817,160.54268 +72.27546,1.2404877,-2.9792044,135.39154,True,0.0,160.54268 +83.39189,2.1343403,0.6680943,357.32556,True,0.0,162.46768 +80.81608,2.266115,-2.79221,393.7999,True,0.0,162.46768 +2.433254,1.820708,-0.678287,7.711153,False,0.0,162.46768 +132.08293,1.7161639,-2.643836,379.26962,True,3.6867044,177.33655 +67.27403,0.3784429,-1.3431189,72.14926,True,1.3982872,177.33655 +3.28761,-0.33988366,-0.09246821,3.4793391,False,12.632524,177.33655 +1.7671912,-1.292646,-2.6876283,3.4610043,False,0.0,177.33655 +103.750145,-1.8525753,-0.98256785,338.90256,True,1.556803,183.94241 +81.49672,-1.910268,2.2004642,281.28345,True,0.0,183.94241 +3.025649,0.1216406,-0.7941393,3.0480611,False,0.0,183.94241 +141.6162,0.4334775,2.0746925,155.13089,True,0.0,357.8121 +144.42374,-1.0386373,-1.6478442,229.58325,True,0.0,357.8121 +2.0124364,2.3038583,1.9642568,10.175494,False,0.0,357.8121 +75.468475,1.7340835,3.0962892,220.37915,True,0.0,125.18911 +52.04561,1.5770887,0.14098857,131.34796,True,1.257819,125.18911 +2.6673596,0.73032814,-0.8775078,3.4109027,False,0.0,125.18911 +134.56848,-0.26361087,-2.271244,139.27126,True,0.0,112.768585 +104.13009,0.17344224,3.1399152,105.70025,True,0.0,112.768585 +105.913506,0.5486014,-0.013113208,122.25532,True,2.1092057,150.20647 +56.403595,0.22305161,-2.5718932,57.812515,True,0.0,150.20647 +2.7355373,0.48169124,-2.2119458,3.05908,False,0.0,150.20647 +2.5369868,0.11050947,-0.17761081,2.5524938,False,1.2310625,150.20647 +2.136354,-0.56831104,2.6529603,2.4907372,False,0.0,150.20647 +206.11674,-2.2781794,2.7900655,1016.2966,True,0.0,450.8248 +181.55113,-1.1435131,-0.3706847,313.76297,True,0.0,450.8248 +2.4564116,0.59004605,-0.95886296,2.8965678,False,0.0,450.8248 +1.808129,-0.26973215,0.96014786,1.8743043,False,0.0,450.8248 +153.08607,-1.5481843,1.939304,376.25168,True,0.0,261.31406 +109.7145,-1.8389084,-1.0624933,353.75574,True,0.0,261.31406 +24.534327,-0.56099606,-2.0755239,28.497326,False,0.0,261.31406 +2.5294485,-0.12692292,2.586001,2.5498497,False,0.0,261.31406 +69.01223,0.15122716,0.6518957,69.80287,True,0.0,132.72986 +60.05042,0.6489618,-2.4466097,73.145645,True,0.0,132.72986 +2.2499607,-1.9088099,-1.6767409,7.7548423,False,0.0,132.72986 +215.30269,0.23717862,0.4754079,221.38692,True,0.0,211.3431 +119.60168,0.013615438,-0.93691176,119.61276,True,5.014128,211.3431 +2.9759374,0.32862008,-0.2019005,3.138076,False,1.220654,211.3431 +1.9794036,2.1112695,1.8180621,8.293506,False,0.0,211.3431 +57.292816,1.8202927,-2.286854,181.49344,True,0.0,90.346596 +43.2472,1.9994531,-0.033133276,162.61867,True,0.0,90.346596 +54.228786,2.2094963,-2.5296233,250.0186,True,0.0,93.25059 +47.8896,2.2760901,-0.22196637,235.6459,True,0.0,93.25059 +2.542768,-0.9255078,1.2143657,3.7117794,False,0.0,93.25059 +121.23624,-0.9310088,-1.9222493,177.68523,True,0.0,77.67337 +31.549177,-0.17230402,-2.9541109,32.018665,True,0.0,77.67337 +2.6735494,0.028682666,-1.957226,2.6746492,False,0.0,77.67337 +50.76806,-0.10434736,-1.8173552,51.0447,True,0.0,82.03072 +30.793884,0.44423616,1.3899171,33.882706,True,0.0,82.03072 +10.303008,0.64998096,1.041103,12.5571,False,0.0,82.03072 +91.97757,-0.099964194,1.8250729,92.437515,True,1.0286394,172.59206 +70.27898,0.6651328,-1.395668,86.40639,True,0.0,172.59206 +2.8646843,-0.96897787,-0.9033072,4.318111,False,0.0,172.59206 +83.52359,-1.0887483,3.1012893,138.11424,True,0.0,158.5204 +63.644207,-1.9426202,0.1776198,226.58406,True,0.0,158.5204 +4.8317947,1.6880652,-0.47979856,13.514245,False,2.3461778,158.5204 +3.4951885,0.11217943,-2.6768565,3.5172036,False,0.0,158.5204 +56.390774,-1.6281223,-1.253101,149.17046,True,0.0,103.0044 +46.91531,-1.7523185,1.81754,139.3697,True,0.0,103.0044 +122.5659,-0.36650494,2.45134,130.89035,True,0.0,251.6099 +118.42498,-1.2507542,0.011536519,223.77971,True,0.0,251.6099 +112.13778,1.7282666,0.6275507,325.67487,True,0.0,229.93875 +92.59159,0.7254771,-2.5382297,118.04549,True,0.0,229.93875 +3.3394456,1.7308592,-1.238415,9.722185,False,0.0,229.93875 +1.7532667,0.16858317,-0.29065812,1.77824,False,0.0,229.93875 +1.6598222,-0.065582044,-1.3627733,1.663393,False,0.0,229.93875 +239.73746,-1.5398234,-2.177177,584.7419,True,1.1907971,399.14478 +161.42383,-1.1919793,0.8906338,290.33798,True,6.7946253,399.14478 +4.204645,-1.3216316,2.8474517,8.4434185,False,0.0,399.14478 +3.098595,-0.38265288,3.1015267,3.3282297,False,0.0,399.14478 +5.692609,-1.5441939,-2.2682014,13.940283,False,1.1907971,399.14478 +1.7571763,-0.3769798,1.4486852,1.8835214,False,0.0,399.14478 +57.05436,0.68155175,0.25436693,70.82655,True,0.0,128.96822 +53.167564,-0.4828076,-3.0687099,59.48564,True,0.0,128.96822 +50.794636,0.44175982,-2.5202858,55.832096,True,0.0,90.60893 +36.53027,-0.21282198,0.7607924,37.360683,True,0.0,90.60893 +63.62269,1.6896287,2.9393532,178.20895,True,0.0,109.38186 +46.56227,1.9265387,-0.06924953,163.23233,True,1.2220601,109.38186 +75.589714,-1.8941928,-2.613771,256.91507,True,0.0,145.63492 +70.1163,-1.7612069,0.654238,210.04369,True,0.0,145.63492 +2.7981253,0.4672906,2.0365958,3.109225,False,0.0,145.63492 +51.539772,-2.171034,2.5892935,228.8728,True,0.0,93.56381 +42.880856,-2.2022707,-0.75238144,196.31032,True,0.0,93.56381 +4.2393966,0.12573534,3.063167,4.2729516,False,0.0,93.56381 +335.10028,-1.8832392,-0.18346451,1127.0869,True,0.0,824.3659 +305.9052,-0.39770976,3.077454,330.41876,True,0.0,824.3659 +2.5113382,1.8320435,2.1900988,8.044726,False,0.0,824.3659 +2.3379526,2.124008,-2.0339599,9.917767,False,0.0,824.3659 +2.2398226,-1.8155669,-0.09387277,7.063621,False,0.0,824.3659 +172.06012,-0.22374281,-0.7802866,176.38486,True,0.0,360.69183 +173.4777,-1.0479301,1.7519193,277.77295,True,0.0,360.69183 +129.17271,1.2518989,1.2873553,244.32622,True,0.0,38.448933 +48.130917,1.5337657,0.88744915,116.74929,True,0.0,38.448933 +54.77129,-1.0165713,-3.002999,85.59482,True,0.0,123.062294 +43.238255,0.47458693,0.6667464,48.199673,True,2.25686,123.062294 +5.9750924,-0.95076895,-1.8148288,8.885387,False,0.0,123.062294 +2.3891175,0.73495346,-0.056918718,3.0639389,False,0.0,123.062294 +93.53468,-2.0989096,-0.04980751,387.22705,True,0.0,96.53254 +36.819298,-2.040167,1.8798252,143.99846,True,1.1031448,96.53254 +5.0460143,1.636495,-0.15606594,13.452152,False,0.0,96.53254 +54.757713,2.3043938,-0.20052178,277.01715,True,2.2681563,89.110054 +32.91509,1.5479625,-2.8976324,80.881615,True,0.0,89.110054 +2.4610882,-1.9261523,-2.354129,8.624589,False,0.0,89.110054 +79.12822,-0.7638141,-1.9140747,103.354645,True,1.9812746,15.082456 +58.445408,-0.7809476,-1.6924978,77.19213,True,0.0,15.082456 +2.0257902,0.57453626,2.5571284,2.3694377,False,0.0,15.082456 +70.14965,0.8685896,-0.8963971,98.31787,True,0.0,3.6123161 +35.21611,0.868071,-0.8236868,49.339027,True,0.0,3.6123161 +3.8553839,0.37799114,-0.91003513,4.1341023,False,0.0,3.6123161 +72.97302,-0.13249227,-1.9089931,73.614456,True,0.0,127.54099 +50.348366,-0.998337,0.6142918,77.5933,True,0.0,127.54099 +1.9770876,-2.3636367,0.8786728,10.600764,False,0.0,127.54099 +230.61145,-0.038274396,1.1141372,230.7804,True,10.935561,84.732895 +31.897272,0.8956592,0.9175058,45.569843,True,0.0,84.732895 +3.4874952,1.0715665,1.532669,5.6888394,False,0.0,84.732895 +55.252773,0.6101113,-1.4180565,65.859276,True,0.0,40.957615 +51.67319,0.46230626,-0.64698607,57.294224,True,0.0,40.957615 +2.2340107,1.8350058,-3.1342602,7.176517,False,0.0,40.957615 +123.95942,0.94272256,2.346682,183.24464,True,0.0,200.85043 +80.37758,0.6858491,-0.92730325,100.03469,True,0.0,200.85043 +2.4771128,-0.7065951,-2.0134034,3.1216557,False,7.2908635,200.85043 +126.2743,-1.3442965,-2.1437044,258.62305,True,0.0,264.1918 +108.25348,-0.3185857,1.2022207,113.79379,True,0.0,264.1918 +2.214388,-0.52105033,-1.3292496,2.5218465,False,0.0,264.1918 +201.32663,1.2730159,-1.8527716,387.71417,True,0.0,468.9608 +189.77551,0.029449685,1.3018498,189.85782,True,0.0,468.9608 +2.5865352,-2.1821384,1.0053145,11.611013,False,0.0,468.9608 +181.60146,2.3588116,-0.43296796,969.10754,True,0.0,79.86786 +63.806393,1.6462399,-0.28841114,171.64594,True,0.0,79.86786 +51.657974,2.1353984,1.0192455,221.5769,True,0.0,91.210526 +39.682564,1.8009906,-2.356336,123.428215,True,0.0,91.210526 +164.26468,-1.6899775,-0.5013919,460.25998,True,0.0,69.63207 +31.99132,-0.99617136,-1.1627334,49.221607,True,0.0,69.63207 +1.874723,0.44117737,-0.46643645,2.060147,False,0.0,69.63207 +2.2380958,-1.1803335,-1.7168677,3.9867601,False,0.0,69.63207 +2.0698564,0.04433912,1.2140055,2.0718913,False,0.0,69.63207 +402.17932,-0.5255485,-0.35334238,459.01074,True,9.878274,45.321075 +190.60933,-0.36241925,-0.34224293,203.265,True,0.0,45.321075 +3.1001682,-0.044547036,-2.0583215,3.1032448,False,1.0337623,45.321075 +68.4688,0.8229252,-2.042828,92.99078,True,0.0,22.900473 +37.30095,1.1055998,-2.3981102,62.51729,True,0.0,22.900473 +2.521543,-0.27044195,2.5314813,2.6143177,False,1.2408543,22.900473 +2.4614155,-0.6090082,0.6990211,2.9321575,False,8.65746,22.900473 +1.7192653,-0.5721704,2.8239853,2.0084531,False,0.0,22.900473 +163.51024,-2.0851483,2.1512046,667.9453,True,0.0,289.35425 +127.9681,-2.131826,-1.0179257,546.9911,True,0.0,289.35425 +52.261112,-2.2481606,1.947465,250.22342,True,0.0,85.38653 +34.864723,-2.2860544,-1.1899892,173.2379,True,1.5153645,85.38653 +243.00748,-1.7250533,3.0541756,703.6262,True,0.0,382.10403 +146.00949,-1.2693427,-0.39910713,280.30383,True,0.0,382.10403 +143.08266,-0.52855617,-0.3295993,163.53894,True,0.0,275.40036 +132.66281,-0.13422403,-3.0661554,133.85963,True,5.5593977,275.40036 +102.94498,-2.3580933,-3.097915,548.9735,True,1.4401814,220.47598 +86.77981,-1.2140758,0.17271826,158.98776,True,0.0,220.47598 +2.7153835,-0.4922403,0.16043256,3.0510492,False,0.0,220.47598 +1.9031888,-0.5884135,1.280415,2.2422762,False,2.986518,220.47598 +1.6554562,0.48214462,-1.718383,1.8516291,False,0.0,220.47598 +92.08039,1.7629124,-2.508957,276.2842,True,0.0,123.191734 +56.55702,1.5624723,-0.4860012,140.83316,True,0.0,123.191734 +4.3164334,-0.83758503,2.911204,5.9211416,False,0.0,123.191734 +89.291245,-0.96757144,0.16727433,134.45255,True,0.0,194.26529 +87.62874,-1.8482174,-3.0357735,285.05673,True,0.0,194.26529 +114.64647,-0.8909552,0.13167314,163.24055,True,0.0,201.82266 +88.83006,-0.9000741,-3.0313158,127.307915,True,0.0,201.82266 +4.632561,-0.8922215,0.21364221,6.602071,False,118.44765,201.82266 +4.991683,1.5663694,-2.4758282,12.474293,False,0.0,201.82266 +1.9391724,-0.5919864,2.6784708,2.2890017,False,1.0268553,201.82266 +129.95262,1.961679,-1.5365374,471.20032,True,0.0,227.96812 +88.519165,1.2234197,1.3755713,163.4512,True,0.0,227.96812 +8.426886,1.702327,1.3100401,23.885836,False,0.0,227.96812 +1.8890854,-0.71162367,2.2671938,2.3879392,False,0.0,227.96812 +51.918564,-1.1324732,2.6244276,88.92501,True,0.0,90.57662 +39.770485,-1.1556199,-0.35187116,69.41647,True,0.0,90.57662 +10.142859,-1.1238368,2.710281,17.25131,False,0.0,90.57662 +2.4253297,-1.7596238,0.18474437,7.254598,False,0.0,90.57662 +1.6693474,-0.21118534,1.7412063,1.7067118,False,0.0,90.57662 +72.920555,0.72047186,-2.8354995,92.679306,True,0.0,101.53146 +37.329502,0.22086532,-0.39195815,38.243706,True,0.0,101.53146 +3.8746524,1.6822677,1.2207645,10.77868,False,0.0,101.53146 +2.9960456,0.4034419,-1.1082934,3.2431972,False,0.0,101.53146 +2.8919914,-0.017941004,1.1531662,2.892457,False,1.7921963,101.53146 +2.2480314,-0.28093037,-1.3239081,2.3373258,False,0.0,101.53146 +122.08496,1.8751454,-0.8451972,407.46466,True,0.0,209.3014 +78.899445,1.150888,2.3004909,137.18066,True,3.0010283,209.3014 +67.264565,-2.1129153,1.5348301,282.2827,True,0.0,130.81613 +52.68724,-1.2214681,-1.4652071,97.12791,True,0.0,130.81613 +3.4552007,0.43668324,0.14788575,3.7899091,False,0.0,130.81613 +143.93382,2.230558,-2.2359288,677.3903,True,0.0,288.3819 +144.7794,2.3099923,1.0300037,736.46454,True,0.0,288.3819 +2.5450568,1.7308196,-2.4617503,7.4091926,False,0.0,288.3819 +2.3945758,0.79496723,-3.0172014,3.1919272,False,11.041392,288.3819 +1.7324975,-1.7436954,-3.0620606,5.1050715,False,0.0,288.3819 +124.43416,-1.7459775,1.2779008,367.45255,True,0.0,197.93243 +78.46605,-1.5842062,-1.9810195,199.32457,True,0.0,197.93243 +3.0021603,-1.5990103,-1.7790469,7.7309074,False,0.0,197.93243 +110.71213,-0.8453063,0.8323224,152.67848,True,0.0,197.15721 +80.00405,-0.2247009,-2.404974,82.03229,True,0.0,197.15721 +2.5524728,0.3002115,1.4579217,2.6683626,False,0.0,197.15721 +2.3715773,0.5642778,2.7751858,2.7592688,False,1.1057575,197.15721 +1.824425,-0.06346152,1.4986398,1.8281,False,0.0,197.15721 +233.38046,0.33174422,2.6294217,246.34093,True,0.0,564.0197 +218.30313,-1.0657382,-0.73216873,354.46475,True,0.0,564.0197 +3.7700589,0.20114611,2.38267,3.846584,False,0.0,564.0197 +3.0399745,1.7424334,2.7280126,8.947128,False,0.0,564.0197 +142.64406,0.8370833,-2.7926567,195.60724,True,0.0,165.68582 +68.085396,0.7658631,1.4964463,89.048294,True,0.0,165.68582 +63.738808,0.29103988,-2.0520983,66.45739,True,0.0,42.239006 +51.5632,0.32418686,-1.2983409,54.29659,True,1.5530723,42.239006 +3.8998213,0.09006312,2.1291144,3.9156485,False,0.0,42.239006 +85.38925,-1.0118557,-0.5350142,132.9615,True,0.0,9.306416 +37.61345,-0.9756424,-0.695366,56.981007,True,0.0,9.306416 +2.226742,-0.5653041,-0.98416364,2.592117,False,0.0,9.306416 +58.203007,-0.41658726,-0.587023,63.32689,True,0.0,102.21788 +41.553883,-0.9767956,2.5098689,63.004986,True,0.0,102.21788 +2.9639785,0.6200806,1.6663021,3.552297,False,0.0,102.21788 +2.320704,0.9259065,-1.9515647,3.388608,False,1.0737221,102.21788 +76.493866,-1.579248,-0.07966742,193.43143,True,0.0,111.30297 +42.58772,-1.6902297,2.600073,119.3564,True,0.0,111.30297 +2.4796903,-0.54606974,-1.5442216,2.8586814,False,0.0,111.30297 +106.70018,1.1655353,2.1576388,187.76006,True,1.0894275,60.324966 +30.139603,2.1633437,1.9322501,132.8421,True,0.0,60.324966 +4.0953827,0.21016763,-2.26674,4.1861634,False,0.0,60.324966 +140.40611,-1.7764626,-0.09529829,426.7049,True,0.0,171.06085 +62.829975,-2.18627,2.0860946,283.18356,True,0.0,171.06085 +1.8703898,0.108330965,-2.720115,1.8813756,False,0.0,171.06085 +165.78265,-1.6171131,-1.6397926,434.10144,True,0.0,52.07987 +104.06463,-1.917219,-1.8983217,361.57416,True,0.0,52.07987 +2.1443644,-1.1120762,2.130282,3.6127608,False,1.9216915,52.07987 +1.7711419,-0.76846975,1.7109848,2.3203604,False,1.1547861,52.07987 +63.47584,-2.1661506,-2.2296,280.5395,True,0.0,93.932655 +34.465454,-1.9739203,0.9748011,126.44952,True,0.0,93.932655 +2.2422056,-0.55151415,2.8078816,2.5919406,False,0.0,93.932655 +82.474976,0.42631873,2.0794601,90.084,True,0.0,36.260857 +35.226982,0.7974611,2.6467016,47.034515,True,0.0,36.260857 +158.68013,0.9741068,1.4113148,240.10918,True,3.5137503,281.2795 +99.39564,1.9540222,-1.8828734,357.7606,True,0.0,281.2795 +2.0498798,-0.42871383,2.120469,2.2411623,False,0.0,281.2795 +100.45496,0.9246926,-1.9942776,146.55106,True,0.0,179.20587 +90.506004,1.014663,0.44305742,141.23273,True,0.0,179.20587 +143.24738,0.29295725,2.5624347,149.43849,True,0.0,95.03398 +38.770184,0.7769904,1.302994,51.07399,True,1.1303798,95.03398 +3.5767784,-0.7839313,1.115741,4.7332807,False,0.0,95.03398 +139.68697,1.563179,-0.43853182,348.061,True,0.0,269.27466 +120.979965,1.0161109,2.5757556,188.99675,True,0.0,269.27466 +2.5457628,1.539223,0.5346041,6.2059517,False,3.3521595,269.27466 +2.011582,-0.26402345,0.07491307,2.0821023,False,0.0,269.27466 +64.82878,0.6249107,-0.5104051,77.904366,True,0.0,9.019185 +34.97523,0.5592741,-0.3325005,40.58921,True,0.0,9.019185 +4.225624,-0.36285877,-1.6916862,4.5068765,False,0.0,9.019185 +2.0299482,-2.041956,0.29920945,7.9527693,False,0.0,9.019185 +1.8989276,-0.6812758,-2.795719,2.3569193,False,0.0,9.019185 +121.48936,0.206164,3.0232763,124.08038,True,0.0,231.39624 +107.838715,0.49998984,-0.11648409,121.60116,True,0.0,231.39624 +80.04186,-0.21490332,2.5267324,81.897285,True,3.0995605,141.87268 +63.251495,0.065247215,-0.9377201,63.38618,True,0.0,141.87268 +2.177272,0.68579036,-2.9553869,2.70965,False,1.4638834,141.87268 +59.671448,1.7043387,-0.13904625,169.4562,True,0.0,90.311356 +34.7976,2.0699549,2.543327,140.07178,True,0.0,90.311356 +2.587091,0.84695596,-0.57235456,3.5718074,False,0.0,90.311356 +54.617443,-0.8822844,0.9956395,77.290504,True,2.382198,91.643105 +36.89447,-0.46984142,-2.0771425,41.04218,True,0.0,91.643105 +2.3835702,0.12347528,0.33240804,2.4017634,False,0.0,91.643105 +1.6829094,0.3585179,-1.3522366,1.7922293,False,3.7795517,91.643105 +130.6077,0.9739912,-2.583891,197.61385,True,3.8645048,242.38594 +112.960304,0.7384638,0.28564814,145.18594,True,0.0,242.38594 +6.5126157,0.9507748,-2.4843493,9.684765,False,3.8645048,242.38594 +63.059124,0.29904628,-1.2468075,65.89985,True,0.0,95.06242 +42.901917,-0.08505013,0.9618802,43.05718,True,0.0,95.06242 +3.920715,-0.2808318,2.9647405,4.07634,False,0.0,95.06242 +2.1293712,0.10833824,-0.2961902,2.1418798,False,0.0,95.06242 +76.754234,-0.34684968,-1.561021,81.417656,True,0.0,61.562565 +74.381584,-1.0182103,-2.0073595,116.387726,True,0.0,61.562565 +2.5123274,-0.51263934,2.2443194,2.8497393,False,0.0,61.562565 +55.141808,-2.2294738,1.1648377,259.23706,True,2.5630853,90.90285 +36.969204,-1.947479,-1.8137777,132.23189,True,0.0,90.90285 +3.138969,0.6161416,2.3538673,3.7538826,False,0.0,90.90285 +111.17287,1.5561916,0.27059975,275.24567,True,0.0,75.07184 +47.881027,1.8785268,-0.749796,160.32178,True,0.0,75.07184 +125.94048,-0.70671237,1.3767743,158.72144,True,0.0,302.57883 +121.317085,-2.0253856,-1.8819505,467.73657,True,0.0,302.57883 +77.16862,1.0960464,0.23626648,128.35078,True,2.4058154,139.0012 +71.17721,0.9683967,2.656151,107.24305,True,0.0,139.0012 +20.784426,-0.8113183,-1.1969727,28.008524,False,24.356672,139.0012 +1.8251204,-1.9035875,-2.3758605,6.2592106,False,0.0,139.0012 +50.186066,-1.7680832,1.7816596,151.31778,True,0.0,93.04199 +43.621487,-1.8634399,-1.5944571,143.97295,True,0.0,93.04199 +3.6995711,1.1253151,-0.25371018,6.2998843,False,0.0,93.04199 +172.6796,1.0176789,-3.0159633,270.08798,True,0.0,186.81235 +70.963264,0.62974876,-1.0899469,85.50593,True,0.0,186.81235 +35.863014,1.0873727,-1.2618182,59.238007,False,2.6630445,186.81235 +2.1418033,1.3872776,-1.2019572,4.5552826,False,2.6630445,186.81235 +450.6776,-0.2493119,-0.36613616,464.7566,True,0.0,839.22125 +315.02786,-1.2118895,2.9750354,576.10114,True,0.0,839.22125 +106.2378,1.9492258,-2.5474865,380.6305,True,0.0,170.51251 +62.107716,1.3219055,0.5814135,124.74918,True,0.0,170.51251 +158.94748,1.1126286,-2.105669,267.90906,True,0.0,96.73603 +45.921318,1.2546308,2.9847262,87.06049,True,1.7207426,96.73603 +2.0539503,-0.74133086,2.1385474,2.6446726,False,1.2659652,96.73603 +2.4184494,-2.0421505,-2.8965275,9.476591,False,0.0,96.73603 +1.826964,-0.28261444,-1.5935163,1.9004116,False,0.0,96.73603 +98.46701,-1.7275715,-1.6382339,285.7851,True,0.0,198.40733 +100.606766,-1.7467468,1.6667652,297.3057,True,0.0,198.40733 +1.7167674,-0.10165935,-2.360438,1.7256461,False,0.0,198.40733 +55.795624,1.7322023,-1.9689754,162.64381,True,0.0,80.438545 +32.578556,2.1566072,0.36104566,142.6531,True,0.0,80.438545 +79.51283,1.8333087,0.15586764,255.01479,True,0.0,166.55273 +76.569664,1.0577403,3.020899,123.54881,True,0.0,166.55273 +1.8871849,1.7654237,-2.3364356,5.6758614,False,0.0,166.55273 +161.22183,0.3715212,2.9078822,172.47696,True,0.0,268.91617 +112.62985,0.2920406,-0.07923851,117.46706,True,0.0,268.91617 +52.92282,1.123399,2.6697197,89.98102,True,0.0,91.16149 +54.64992,1.3139787,-1.6109122,109.018326,True,0.0,91.16149 +2.6635664,1.9642724,2.2745223,9.682038,False,0.0,91.16149 +2.070466,-0.17110549,2.50969,2.1008487,False,0.0,91.16149 +59.615723,1.5883093,0.93799335,152.01222,True,0.0,113.88186 +51.36526,1.0928545,-2.0798635,85.21585,True,0.0,113.88186 +3.2277114,1.5269418,-2.7474992,7.7808404,False,0.0,113.88186 +151.35448,-0.39115512,0.65821797,163.08167,True,0.0,16.345991 +51.10235,-0.51388246,0.7978488,57.999577,True,0.0,16.345991 +3.5830622,0.573225,-2.4953384,4.1880326,False,0.0,16.345991 +3.642471,0.87561595,2.5006378,5.1303453,False,0.0,16.345991 +1.9961661,0.5771731,-2.7463338,2.3379896,False,0.0,16.345991 +112.14987,0.75228196,2.8322837,145.4094,True,0.0,242.34131 +120.24081,1.3514755,-0.43079677,247.81505,True,0.0,242.34131 +2.3801508,1.194785,0.92618316,4.290956,False,0.0,242.34131 +89.51166,1.0550245,-2.1363463,144.12404,True,0.0,164.95572 +80.13122,1.3296351,1.5429931,162.03485,True,0.0,164.95572 +3.9752824,-1.2644289,0.63259226,7.599687,False,0.0,164.95572 +3.4106364,0.21103987,0.9657799,3.48687,False,3.5585938,164.95572 +3.0863743,0.26237994,0.7596735,3.1932232,False,7.33477,164.95572 +3.706196,1.4095522,1.5719239,8.039433,False,72.51576,164.95572 +2.4071636,-0.75130403,1.1916792,3.1190984,False,0.0,164.95572 +2.1452909,2.1863298,-1.4419583,9.669692,False,0.0,164.95572 +50.17286,-1.909438,-1.537117,173.03261,True,0.0,91.18208 +40.3297,-2.2644787,1.7405748,196.20377,True,0.0,91.18208 +124.64713,-2.0893657,-0.611837,511.27475,True,0.0,312.27103 +123.056854,-0.67449874,2.4901855,152.1266,True,0.0,312.27103 +104.43475,-1.117938,-2.7508092,176.78163,True,0.0,103.669205 +67.647804,-1.2826314,-1.4357578,131.35252,True,0.0,103.669205 +2.8976588,1.9928328,-1.0478326,10.826516,False,0.0,103.669205 +2.4711566,0.64326406,-1.9101892,3.0002995,False,0.0,103.669205 +64.33631,1.9227387,2.4342754,224.72256,True,0.0,90.7175 +36.844913,0.8782374,-2.1387105,51.991283,True,0.0,90.7175 +3.3467937,1.3110656,-1.437254,6.6595464,False,0.0,90.7175 +2.286689,-0.036159508,-0.41517144,2.2881842,False,0.0,90.7175 +2.4686646,-0.89564943,-0.001942368,3.526818,False,0.0,90.7175 +2.2441063,-0.36890212,-0.940822,2.3985445,False,0.0,90.7175 +132.03136,-1.0477526,-1.294277,211.37964,True,0.0,222.6447 +93.69317,-0.7486083,2.1363611,121.19588,True,0.0,222.6447 +3.3508716,0.4060931,2.718927,3.6309884,False,0.0,222.6447 +1.9399923,-0.6316358,0.4746126,2.3400242,False,2.3240607,222.6447 +1.8306888,0.25612676,2.2719293,1.8910652,False,0.0,222.6447 +1.8735112,-0.7099129,0.9157911,2.3657773,False,0.0,222.6447 +284.39505,1.8072197,-1.6851246,889.81415,True,0.0,120.54045 +92.92718,2.2115357,-2.3152387,429.28912,True,0.0,120.54045 +3.0954025,-1.1382481,-0.84422755,5.326685,False,3.9252555,120.54045 +2.0699942,1.091803,2.2925737,3.4312763,False,0.0,120.54045 +67.890686,-1.3001574,-2.6551373,133.82487,True,0.0,68.35333 +33.035378,0.03980615,-2.6058018,33.061554,True,0.0,68.35333 +22.696983,-1.4242723,0.66771126,49.882484,False,41.833652,68.35333 +2.0915916,1.8684562,2.8999863,6.936397,False,0.0,68.35333 +51.389885,-1.6265004,-0.56582826,135.73767,True,0.0,82.16178 +33.593494,-1.3093863,3.0165167,66.74835,True,1.5496297,82.16178 +92.82402,-0.013796356,-2.4896648,92.832855,True,0.0,165.15909 +67.616714,-0.76950884,0.14368741,88.64369,True,0.0,165.15909 +2.4417057,1.587072,-1.257321,6.218946,False,0.0,165.15909 +2.6926353,1.5361414,2.440216,6.5455756,False,2.49954,165.15909 +55.849236,0.050734255,1.7198902,55.921127,True,0.0,87.54258 +34.289227,0.34812763,-1.7181147,36.3881,True,1.2109869,87.54258 +3.7283108,1.111598,-1.9554805,6.27893,False,0.0,87.54258 +2.9911585,-1.5459809,1.1921588,7.336826,False,0.0,87.54258 +83.20886,-0.9522094,1.8653147,123.86955,True,0.0,149.60646 +60.92475,-1.5879836,-1.3305665,155.30353,True,0.0,149.60646 +8.113214,-1.5908273,-1.4030172,20.73561,False,0.0,149.60646 +1.8947332,-0.8495664,2.2419837,2.6206367,False,0.0,149.60646 +149.65758,-1.0474373,-0.67155594,239.53989,True,0.0,28.872293 +31.418756,-0.72721094,-0.9441819,40.099068,True,0.0,28.872293 +2.8789794,0.23708765,0.26070696,2.9602737,False,0.0,28.872293 +167.82315,1.0193248,-0.7333846,262.82462,True,0.0,241.84683 +107.314735,1.2551478,1.4757837,203.54335,True,0.0,241.84683 +3.205457,-0.9906922,1.5516107,4.9114294,False,0.0,241.84683 +135.65173,1.2635874,2.3741317,259.1443,True,0.0,111.69784 +58.275738,1.267172,1.0158105,111.668655,True,0.0,111.69784 +2.491108,-0.26424953,-0.062806875,2.5785894,False,0.0,111.69784 +1.7197578,-0.34332892,-1.066897,1.8221154,False,1.0302995,111.69784 +151.32674,-0.3928565,1.0722454,163.1553,True,0.0,214.46588 +83.28828,-0.60780555,-2.7103603,99.15226,True,0.0,214.46588 +8.262996,-1.3530507,-2.2489467,17.053427,False,0.0,214.46588 +1.8618314,0.7982894,2.3949785,2.4872537,False,0.0,214.46588 +104.90523,0.091824874,-3.0815823,105.34781,True,0.0,252.92249 +89.163895,1.9627684,-1.415373,323.64166,True,0.0,252.92249 +30.20465,1.3583196,0.30209345,62.62548,False,65.90595,252.92249 +2.516606,-2.2807138,-2.3560781,12.4394245,False,0.0,252.92249 +2.6884842,1.1662464,0.31002617,4.7336884,False,69.04225,252.92249 +80.36948,-0.90530384,-1.1492486,115.61559,True,0.0,159.67366 +79.385345,-0.37690747,1.4474145,85.091125,True,0.0,159.67366 +2.580021,-2.1299417,-1.4387242,11.007944,False,1.156552,159.67366 +226.01749,-1.887385,2.894367,763.2101,True,0.0,447.14944 +220.11484,-1.6869276,-0.100965396,614.99457,True,0.0,447.14944 +2.7577062,-1.8575442,2.8044815,9.050841,False,0.0,447.14944 +108.87264,0.066009894,-2.818168,109.109924,True,0.0,136.45288 +55.177425,-0.42547843,-0.8067566,60.247665,True,0.0,136.45288 +124.60615,-1.3044206,-1.4714581,246.52596,True,6.2531247,68.91753 +52.153656,-1.7669796,-0.73890907,157.0867,True,0.0,68.91753 +2.709306,-0.53572935,2.5051658,3.1074877,False,0.0,68.91753 +50.11581,-0.042213723,0.32905892,50.16047,True,0.0,91.65278 +34.00881,0.8876921,-2.7969203,48.311565,True,0.0,91.65278 +4.6100993,-0.11272401,0.74539715,4.6394196,False,0.0,91.65278 +89.09878,0.035126936,-2.0904515,89.153755,True,0.0,158.42741 +74.6719,-0.1897739,0.51730955,76.02056,True,0.0,158.42741 +2.455956,0.1741651,2.0861897,2.4932992,False,0.0,158.42741 +1.7983174,1.7684158,-2.2394402,5.423872,False,0.0,158.42741 +86.544945,1.8661284,-0.9594717,286.3749,True,1.171134,64.25711 +30.325,1.1468428,0.106793135,52.551342,True,0.0,64.25711 +2.2329476,-0.82150257,1.9207761,3.0297573,False,0.0,64.25711 +61.74627,-2.0092452,2.8123348,234.38191,True,0.0,90.94985 +58.02858,-1.9968657,-1.7452049,217.6563,True,1.1043961,90.94985 +3.5257745,1.1250117,-0.046968903,6.002457,False,11.891887,90.94985 +2.830838,-2.007417,2.8932111,10.72661,False,0.0,90.94985 +1.9636011,-0.46328345,-0.7244325,2.1781225,False,0.0,90.94985 +77.02454,-1.0718352,0.36244613,125.669945,True,1.1133485,81.35364 +39.671314,-2.24498,1.1748023,189.3543,True,0.0,81.35364 +97.5269,1.0117213,-1.9288327,151.84566,True,0.0,139.24997 +50.671158,0.9262259,1.5027947,74.00541,True,0.0,139.24997 +2.2005546,-2.2383628,-2.3594296,10.435688,False,0.0,139.24997 +54.930565,-0.53660434,2.0086176,63.030632,True,0.0,109.692345 +42.19275,-1.5864747,-1.0077218,107.40455,True,1.8785735,109.692345 +2.868088,-0.22289227,-1.7164654,2.9396281,False,0.0,109.692345 +2.325671,0.8650982,1.3300626,3.251578,False,0.0,109.692345 +51.425327,-1.8879036,2.960971,173.73778,True,0.0,84.79548 +48.108868,-1.6440122,0.95312834,129.1506,True,0.0,84.79548 +73.79301,-0.9170047,-2.4947162,107.05521,True,0.0,103.798935 +41.428165,-1.7346867,-0.5027686,121.04497,True,0.0,103.798935 +1.7588329,-1.7259481,-0.40517154,5.096965,False,0.0,103.798935 +1.711081,-0.35104495,-2.5711722,1.8175987,False,0.0,103.798935 +98.12731,1.5708133,0.36202607,246.22278,True,0.0,125.52097 +48.56127,1.6388918,2.6415546,129.74734,True,0.0,125.52097 +2.0641956,-0.3690217,-1.7851516,2.2063458,False,0.0,125.52097 +53.710587,1.5901587,-1.6225896,137.18813,True,0.0,88.895805 +38.937668,1.1765809,2.1582272,69.14546,True,0.0,88.895805 +77.14375,-0.5631656,1.5876528,89.70379,True,0.0,96.8095 +34.92426,0.6706907,0.14066571,43.078075,True,0.0,96.8095 +130.78656,1.2150373,0.27888793,239.80493,True,0.0,206.70348 +76.71217,0.69877136,-2.7447715,96.21532,True,0.0,206.70348 +2.9346485,-0.6221159,1.4193826,3.5210981,False,0.0,206.70348 +2.4527354,0.5331213,-2.9992533,2.8096256,False,0.0,206.70348 +2.129241,0.83082134,-1.1043116,2.907366,False,4.045251,206.70348 +1.8725104,1.9925227,-2.9473927,6.9941664,False,0.0,206.70348 +52.729748,0.9498916,-0.52037716,78.362,True,0.0,94.48319 +43.16336,1.0591824,2.32062,69.72504,True,0.0,94.48319 +2.6217735,-2.3343427,0.05886934,13.658846,False,0.0,94.48319 +2.911499,-1.6193885,-2.4209125,7.639804,False,1.6629108,94.48319 +2.3390236,0.07460322,2.7008429,2.3455358,False,0.0,94.48319 +153.6103,0.45314237,-2.3453717,169.65305,True,0.0,230.39464 +91.308495,0.7968625,1.3832048,121.86534,True,0.0,230.39464 +2.1539283,0.05059513,2.33766,2.1566856,False,0.0,230.39464 +122.26734,1.1730251,-2.4021475,216.48557,True,0.0,232.52855 +109.10304,0.942525,0.74929726,161.25955,True,3.924597,232.52855 +2.72868,-0.6699654,1.5758065,3.3643205,False,0.0,232.52855 +2.092461,-0.2069668,-3.0723279,2.1374369,False,0.0,232.52855 +180.62047,-0.87724644,0.68527466,254.69264,True,0.0,154.6203 +56.6036,-0.9354666,-1.0538274,83.23007,True,0.0,154.6203 +3.8497758,-0.025179498,1.2826191,3.8509963,False,10.881597,154.6203 +3.659185,-0.43246275,0.6947999,4.0067286,False,0.0,154.6203 +2.4253283,0.69385487,-1.7556933,3.0329485,False,0.0,154.6203 +2.23664,1.2542349,1.5351747,4.2389355,False,0.0,154.6203 +55.782185,1.627932,-0.15330237,147.53455,True,0.0,96.48676 +43.450718,2.086109,2.3679397,177.66318,True,0.0,96.48676 +4.527847,-0.7818842,-2.522013,5.983843,False,0.0,96.48676 +3.6194313,0.042584993,-1.56077,3.6227136,False,1.1674805,96.48676 +127.92958,0.55415523,0.57585216,148.08025,True,0.0,295.62717 +121.826965,-0.65196455,-2.3858044,148.64894,True,0.0,295.62717 +1.9882852,1.0791305,-3.0894563,3.262787,False,0.0,295.62717 +123.499405,1.2750341,0.9079223,238.24547,True,0.0,176.03693 +76.43097,2.0704966,-0.9760609,307.82123,True,0.0,176.03693 +2.7264419,-0.5074916,-2.6480935,3.0851367,False,0.0,176.03693 +175.94266,-0.39454356,1.5063505,189.81525,True,1.2975494,283.75577 +108.03088,-0.87622356,-1.6551421,152.2244,True,2.2883391,283.75577 +20.28183,-0.3819084,-1.5390044,21.778988,True,1.5186208,283.75577 +135.6582,0.86264306,1.2703649,189.34222,True,0.0,198.53491 +87.25648,0.6084212,-0.9851522,103.91101,True,1.4041364,198.53491 +2.4350212,-0.02679644,-1.4212844,2.4358954,False,0.0,198.53491 +50.140514,-0.20034203,-0.9961311,51.150127,True,0.0,96.26 +44.862156,-0.5724129,2.0012996,52.41473,True,0.0,96.26 +201.61325,2.1764011,0.036368478,899.99915,True,0.0,398.02637 +195.19984,2.337038,-3.0887477,1019.6407,True,0.0,398.02637 +2.7949274,0.018448627,2.1878514,2.795403,False,1.6511464,398.02637 +2.5784638,2.1110642,-0.027754303,10.801356,False,0.0,398.02637 +345.4919,0.8146916,1.3571377,466.63086,True,0.0,830.62915 +339.45908,2.0972269,-1.7998395,1403.0441,True,0.0,830.62915 +3.1425097,0.8947099,1.3498489,4.486486,False,2.0254822,830.62915 +50.899845,-1.6785752,2.4270778,141.10852,True,0.0,89.356026 +42.686726,-1.573309,-0.12619838,107.35578,True,0.0,89.356026 +6.0415497,-1.5712746,-0.23587467,15.165978,False,28.187614,89.356026 +67.80386,0.95296746,2.8407311,100.99349,True,0.0,119.05201 +53.890667,1.2862953,-0.7886621,104.96947,True,0.0,119.05201 +123.749756,-1.0111145,-1.6780691,192.58408,True,0.0,209.4083 +87.97692,-1.2999911,1.2259612,173.39365,True,0.0,209.4083 +96.64753,1.2459419,1.6601909,181.88472,True,0.0,170.55403 +72.753334,0.6154364,-2.0109515,86.97185,True,0.0,170.55403 +6.9975624,-2.1769824,-2.8378913,31.254736,False,0.0,170.55403 +3.0089982,-0.7481744,-1.4900609,3.8911889,False,21.997322,170.55403 +1.8236594,-0.65784186,-1.6346674,2.2326965,False,18.776102,170.55403 +69.62778,-0.5397994,-0.62614864,80.02069,True,0.0,116.71274 +49.193985,-0.7650366,2.242438,64.30613,True,0.0,116.71274 +2.381743,0.19858912,2.0348554,2.4288626,False,0.0,116.71274 +101.86339,-1.6336685,-2.3521,270.84686,True,0.0,208.13817 +95.17492,-2.3330858,0.58688915,495.22852,True,0.0,208.13817 +2.5070138,-0.16892555,2.5881681,2.5428689,False,0.0,208.13817 +66.41086,2.1905146,2.1608548,300.56464,True,0.0,112.927315 +47.264347,1.7821847,-1.3081313,144.41847,True,0.0,112.927315 +1.766765,2.2178314,0.6159846,8.212127,False,0.0,112.927315 +190.13138,1.1130254,1.2586582,320.5725,True,0.0,96.7124 +34.24378,0.21038905,0.48807818,35.00445,True,0.0,96.7124 +3.8319893,0.24045679,-1.9277495,3.943306,False,1.5005729,96.7124 +143.33527,1.5602484,0.90211964,356.1944,True,0.0,27.717323 +34.91775,1.8600559,0.6505872,114.875206,True,0.0,27.717323 +11.594749,-0.7073942,-0.30031502,14.618804,True,0.0,27.717323 +2.2168856,-0.33438817,-2.3607287,2.3419857,False,0.0,27.717323 +1.9750359,1.7393808,-0.71417934,5.796183,False,0.0,27.717323 +2.1539178,-0.7455497,0.794449,2.7807865,False,0.0,27.717323 +1.6595178,2.2131217,-0.94097906,7.678237,False,0.0,27.717323 +92.790085,2.0167344,-1.9699694,354.77533,True,1.0788388,205.55779 +73.80775,0.6520973,1.1801859,90.064445,True,0.0,205.55779 +3.0821042,-0.18695769,-2.3287451,3.136126,False,0.0,205.55779 +2.3892589,-2.0711472,-2.1548529,9.628666,False,0.0,205.55779 +1.8160454,0.5627465,0.9927944,2.1112707,False,0.0,205.55779 +125.48655,-1.5446403,-2.116559,307.4216,True,0.0,17.336739 +36.298443,-1.8007591,-2.1108396,112.87753,True,0.0,17.336739 +2.1073492,0.7100668,-1.4641339,2.6613064,False,0.0,17.336739 +73.997665,-0.8699852,-2.560318,103.81255,True,0.0,93.589455 +42.921444,-0.8326444,1.7642214,58.679817,True,0.0,93.589455 +2.2244425,-0.5245136,-0.33658943,2.5375104,False,2.0082085,93.589455 +2.4246411,-1.2989737,1.7030827,4.7745357,False,3.2927375,93.589455 +1.606952,-2.237256,-3.042636,7.6124067,False,0.0,93.589455 +60.752693,-0.65449035,1.067576,74.235794,True,0.0,158.57281 +59.7188,-2.2161286,-2.2880938,277.11868,True,0.0,158.57281 +72.14664,-1.7758718,-0.37841478,219.13686,True,0.0,34.084682 +59.667046,-2.2034316,-0.6697173,273.4678,True,0.0,34.084682 +1.7832267,-0.52792954,-0.8407459,2.0375533,False,0.0,34.084682 +139.3388,-1.3293054,1.7777689,281.67892,True,0.0,331.3428 +130.80585,-0.004840315,-1.4140756,130.80737,True,0.0,331.3428 +2.9982204,1.3297993,1.6224352,6.0636234,False,0.0,331.3428 +1.9937909,0.10899405,1.5626029,2.0056455,False,0.0,331.3428 +2.0369387,0.6100784,1.4993926,2.4279127,False,0.0,331.3428 +85.118805,0.32471338,1.3315841,89.64578,True,0.0,152.75586 +70.98846,0.36473233,-1.4338065,75.76282,True,0.0,152.75586 +2.3782465,0.81022125,0.046136945,3.2025054,False,0.0,152.75586 +2.2499187,-0.2976553,-0.15280965,2.3503268,False,0.0,152.75586 +2.1298866,0.63947123,1.2303501,2.5804107,False,0.0,152.75586 +71.23536,-1.185073,-1.1093171,127.39196,True,0.0,97.65988 +34.845154,-1.7632117,2.7560108,104.58125,True,0.0,97.65988 +3.5513158,-1.1891762,1.6257317,6.3725634,False,0.0,97.65988 +2.2795434,-0.2759121,1.161756,2.3668633,False,0.0,97.65988 +1.9885495,0.62649745,0.9318411,2.391734,False,0.0,97.65988 +1.8954676,-1.1535573,-1.0439122,3.3028145,False,0.0,97.65988 +253.75557,0.6990882,2.3635879,318.33075,True,0.0,117.94067 +58.313614,0.90069497,1.3756064,83.61007,True,0.0,117.94067 +58.50591,-2.344701,-0.67038053,307.91748,True,0.0,87.825554 +32.995872,-2.3205836,2.4005241,169.59598,True,0.0,87.825554 +1.9420465,-0.47264418,0.43699887,2.1630342,False,0.0,87.825554 +50.782185,1.1074718,0.7391141,85.24018,True,0.0,85.67141 +39.338165,2.1706805,-1.0499482,174.62892,True,0.0,85.67141 +3.9736974,-1.7561328,1.0972896,11.8470125,False,0.0,85.67141 +1.8604002,1.1059756,1.3068296,3.1190162,False,0.0,85.67141 +81.69602,-2.2541177,1.6759431,393.44193,True,4.1308966,178.9721 +71.55463,-1.0981178,-1.3536369,119.21055,True,0.0,178.9721 +51.79769,-1.941476,-2.7404444,184.2061,True,0.0,13.9583645 +44.314404,-1.7476815,-2.5227523,131.06989,True,0.0,13.9583645 +2.5650692,-0.0903784,-0.9190689,2.5755522,False,0.0,13.9583645 +2.2223935,1.1037997,0.25005886,3.7194104,False,0.0,13.9583645 +1.8499366,-0.08594872,0.49068692,1.8567737,False,0.0,13.9583645 +1.9171323,0.4201381,-2.6122355,2.088838,False,0.0,13.9583645 +54.977875,0.08176295,-0.14906384,55.161747,True,2.2979405,90.74334 +37.626644,0.06264054,3.1333165,37.70049,True,0.0,90.74334 +2.6075797,-0.35484567,0.536619,2.7734766,False,0.0,90.74334 +2.4180968,0.09955677,-2.4631333,2.4300902,False,0.0,90.74334 +1.9561783,-0.66396254,-0.782295,2.4034405,False,3.62306,90.74334 +224.32819,1.9632691,0.47213802,814.6447,True,0.0,462.65512 +233.18172,2.295602,-2.5298967,1169.5361,True,2.3796191,462.65512 +3.4431176,-0.030028362,1.832952,3.4446702,False,1.6718812,462.65512 +2.9472923,0.21167974,1.8719593,3.0135708,False,0.0,462.65512 +2.8145406,2.1192205,1.7343531,11.884075,False,0.0,462.65512 +137.47371,-0.878539,-2.5294015,194.02827,True,0.0,246.82089 +103.99764,-0.28900328,0.9243348,108.37105,True,0.0,246.82089 +3.2131097,-0.22726491,-0.2689818,3.296445,False,0.0,246.82089 +2.1142015,1.1007679,-2.6091983,3.529754,False,0.0,246.82089 +2.8750641,0.17677757,-0.1502655,2.9201047,False,0.0,246.82089 +1.9965838,-1.3366534,-2.3520513,4.062057,False,0.0,246.82089 +62.39562,1.6204351,3.0465152,163.88527,True,0.0,94.082245 +53.548904,2.1783626,-1.500248,239.49908,True,0.0,94.082245 +4.993115,-1.0701331,-1.6948123,8.135608,False,0.0,94.082245 +2.2805028,0.1038235,1.3254836,2.292805,False,0.0,94.082245 +67.71121,0.66281885,-0.85421515,83.13753,True,1.605474,33.84212 +65.72886,0.36077616,-0.44465497,70.05308,True,0.0,33.84212 +6.264555,-1.9588908,2.7536793,22.654108,False,0.0,33.84212 +2.4835994,-0.6467025,1.8801564,3.0213046,False,0.0,33.84212 +2.6024716,2.3256798,3.106731,13.443524,False,0.0,33.84212 +133.63838,-1.9682915,-0.8192196,487.6552,True,0.0,97.60107 +45.120388,-1.2755606,0.27382278,87.081955,True,0.0,97.60107 +3.3896062,-2.2129028,-0.46822554,15.679638,False,0.0,97.60107 +2.3512027,-0.20843819,2.6250575,2.4024637,False,0.0,97.60107 +153.195,1.2074867,-3.0936494,279.1224,True,0.0,273.64093 +121.258224,1.0087011,0.14127211,188.35825,True,0.0,273.64093 +80.468346,1.3457036,0.3393118,165.01018,True,0.0,131.50919 +51.564754,1.7602847,-2.7229316,154.33559,True,0.0,131.50919 +88.4261,0.11218003,-0.27904987,88.98308,True,2.144643,171.70845 +83.360435,0.16645741,2.8068151,84.51798,True,0.0,171.70845 +2.1226797,-0.24392866,2.0076122,2.1861444,False,0.0,171.70845 +1.9140012,2.1639292,-3.1158946,8.440887,False,0.0,171.70845 +1.6556867,-1.8139632,0.88479877,5.2135253,False,0.0,171.70845 +51.29457,-1.9183834,-1.7241545,178.42264,True,1.1714406,88.09024 +37.02908,-2.3620849,1.0771683,198.24033,True,0.0,88.09024 +2.586657,1.0920211,1.8064033,4.2884564,False,0.0,88.09024 +162.79053,-2.1670148,-2.5657983,720.0793,True,0.0,224.93582 +79.335464,-2.1650708,0.28776655,350.2645,True,0.0,224.93582 +142.40234,0.3517204,-2.2925036,151.30162,True,0.0,218.00496 +85.044266,0.12327227,0.4893254,85.69125,True,0.0,218.00496 +1.925765,-0.66288435,2.8702376,2.3645926,False,0.0,218.00496 +57.128353,2.262112,-1.1863717,277.28616,True,2.4285483,84.953156 +32.262627,1.6283182,1.2327676,85.35977,True,0.0,84.953156 +2.2578168,0.3105836,-2.4109504,2.367592,False,0.0,84.953156 +78.04081,-1.9608968,0.29325062,282.7586,True,0.0,97.55624 +43.6299,-1.9659712,-1.6864061,158.85355,True,0.0,97.55624 +66.21378,2.062966,1.4186251,264.73438,True,0.0,123.360306 +55.29939,1.5700003,-1.4186273,138.65479,True,1.1881713,123.360306 +50.796745,0.96197164,1.9267988,76.16946,True,0.0,83.77306 +37.448025,1.8667185,-2.3667817,123.98424,True,0.0,83.77306 +2.7796807,-1.301728,-1.0759059,5.486678,False,1.8290297,83.77306 +2.9056444,0.25670746,-1.9615692,3.0019107,False,0.0,83.77306 +2.0191674,-0.037000224,0.23538882,2.0205498,False,0.0,83.77306 +106.705765,0.35056624,1.5671544,113.330086,True,0.0,191.40878 +69.47414,-0.58572936,-1.5963438,81.73633,True,0.0,191.40878 +5.35644,-0.72236615,-2.577942,6.8158073,False,0.0,191.40878 +3.8842974,1.731782,0.6223963,11.318227,False,0.0,191.40878 +3.137073,1.6392788,-1.7176871,8.384726,False,0.0,191.40878 +135.71892,1.7887418,-2.8426323,417.27405,True,0.0,209.7757 +80.346436,1.5918385,0.24123386,205.53918,True,0.0,209.7757 +10.138935,1.489976,0.38551465,23.635721,False,0.0,209.7757 +2.595105,-0.2613839,-2.7889166,2.6842616,False,3.5998073,209.7757 +1.7820048,0.034314685,-1.4539424,1.7830541,False,0.0,209.7757 +72.69623,1.0323492,1.4332948,114.999,True,3.9488182,53.570084 +33.76811,2.0633347,1.5257845,135.05905,True,0.0,53.570084 +5.366778,0.931282,1.4447283,7.8671827,False,3.9488182,53.570084 +2.8942955,0.7933641,1.4206796,3.8539598,False,0.0,53.570084 +1.7847024,-0.27560094,1.7333492,1.8529118,False,0.0,53.570084 +80.54381,1.5234826,-0.7907832,193.5519,True,0.0,110.67778 +43.38863,1.7914494,3.1228566,133.74237,True,0.0,110.67778 +2.2672102,0.22804537,1.8613669,2.3264189,False,22.2599,110.67778 +146.86005,-1.7898015,-1.3560343,451.98065,True,0.0,259.57394 +118.00582,-1.955139,1.4098536,425.2013,True,0.0,259.57394 +116.80528,1.023537,1.6887271,183.52112,True,0.0,242.23921 +97.10042,-0.017210979,-1.3490107,97.11481,True,5.1850786,242.23921 +3.4880743,1.0286317,1.7854353,5.501969,False,23.645905,242.23921 +2.7941074,0.75513834,0.07881094,3.629338,False,0.0,242.23921 +3.003508,-0.4216822,-1.2667197,3.2745242,False,1.4105523,242.23921 +138.10925,0.5803679,2.6684742,162.02895,True,2.7006588,257.407 +91.56516,1.7421625,-0.99787927,269.42218,True,0.0,257.407 +2.6439137,1.0084708,-0.16786617,4.106239,False,0.0,257.407 +2.0034468,1.5931025,1.0971494,5.1311083,False,0.0,257.407 +54.26122,-1.6487583,-0.35072285,146.31013,True,0.0,68.043816 +38.460598,-1.8656768,1.3058454,127.21031,True,1.0160722,68.043816 +2.808723,-1.0490583,-1.9626143,4.5013,False,0.0,68.043816 +138.97862,0.20404135,0.23993734,141.88171,True,0.0,121.6017 +76.040405,0.12687382,1.5025089,76.65324,True,0.0,121.6017 +91.09645,2.074719,0.021321809,368.3895,True,3.7626667,24.336828 +72.115234,1.9807631,-0.26486394,266.33005,True,0.0,24.336828 +126.676155,1.8641037,2.8612092,418.35986,True,0.0,222.07431 +97.8541,1.9763187,-0.4652601,359.84418,True,0.0,222.07431 +1.7315066,0.12407835,-0.025947,1.7448523,False,0.0,222.07431 +1.820357,0.583969,-1.6288625,2.1396675,False,0.0,222.07431 +1.8127428,0.2019041,2.1199224,1.8498169,False,0.0,222.07431 +91.542534,1.9708008,2.8174672,334.85187,True,0.0,111.84252 +84.21837,1.7305275,-2.1144404,245.11003,True,0.0,111.84252 +9.4447155,1.1118706,-1.3775771,15.909543,False,0.0,111.84252 +3.9943204,-0.36390322,1.9203635,4.261727,False,0.0,111.84252 +2.659123,0.9524,-1.4676267,3.9590843,False,0.0,111.84252 +2.1207092,0.15312447,-1.9484082,2.14562,False,0.0,111.84252 +123.47391,0.017490063,-0.34438336,123.49279,True,0.0,178.66011 +66.65161,0.10608735,2.435654,67.02703,True,0.0,178.66011 +3.141942,2.2675173,-0.3940574,15.331058,False,0.0,178.66011 +61.449543,-0.6073177,-0.0646403,73.13453,True,0.0,74.847305 +31.795347,-1.2008302,1.7611926,57.610287,True,0.0,74.847305 +57.2537,0.48648867,2.5139365,64.163536,True,0.0,90.03805 +33.849903,0.92621994,-0.7437735,49.43769,True,0.0,90.03805 +2.4337347,1.7437257,0.61580056,7.1715794,False,0.0,90.03805 +161.52295,1.2610093,2.3634315,307.89096,True,0.0,82.19261 +30.638569,2.3279076,2.0231514,158.61522,True,0.0,82.19261 +2.3978739,2.3328075,1.9367509,12.473573,False,16.69733,82.19261 +2.0677843,-0.1614887,-2.5940795,2.0948055,False,0.0,82.19261 +147.96858,0.391949,2.2079704,159.48059,True,0.0,238.79575 +101.09514,-0.014671015,-1.5391762,101.10602,True,0.0,238.79575 +119.21779,2.0771356,-1.0642703,483.2411,True,0.0,171.75127 +73.11939,2.245321,1.2512786,349.12097,True,0.0,171.75127 +36.634644,1.7701468,-1.0089387,110.67369,False,2.2154965,171.75127 +76.19231,-0.3929161,-2.681671,82.149765,True,0.0,158.5025 +61.02602,-1.5234088,0.5900894,146.63957,True,0.0,158.5025 +1.922765,-0.39397958,-1.9615029,2.073931,False,0.0,158.5025 +57.9124,-2.2226384,-0.31303418,270.45026,True,0.0,97.902054 +40.3685,-1.8977982,2.747423,137.67854,True,0.0,97.902054 +1.7985754,0.2975784,2.3615224,1.8787993,False,0.0,97.902054 +96.694084,0.9348765,-2.129475,142.11774,True,0.0,72.358536 +48.241726,1.7242339,-1.4325969,139.57616,True,0.0,72.358536 +7.5043244,-1.3659673,0.9522829,15.663949,False,0.0,72.358536 +4.1998615,-1.1345793,0.8665995,7.205749,False,0.0,72.358536 +52.97161,1.8370861,1.9444389,170.50232,True,0.0,129.22263 +60.10161,0.7719046,-1.165593,78.91389,True,0.0,129.22263 +2.9106896,-2.0074923,-0.983968,11.029986,False,0.0,129.22263 +2.0355015,-0.0019586696,-0.9919357,2.0355055,False,0.0,129.22263 +133.17413,-0.49393824,-1.3081622,149.75272,True,0.0,63.995117 +42.852764,-1.2916508,-1.0913948,83.8544,True,0.0,63.995117 +3.9794822,-0.8606822,-0.22067977,5.5466957,False,0.0,63.995117 +2.6142745,1.940461,1.6135347,9.287992,False,0.0,63.995117 +1.7008643,-0.21850748,3.0888174,1.7416304,False,0.0,63.995117 +99.67967,0.44243646,-2.226742,109.59601,True,0.0,162.44559 +61.432285,-0.10797182,0.9511464,61.790718,True,0.0,162.44559 +2.6684377,0.012412537,-1.3849957,2.6686432,False,1.7669508,162.44559 +108.06956,0.013812642,-0.32525325,108.079865,True,1.1625797,173.48141 +70.01359,-0.007886954,2.9677408,70.01576,True,0.0,173.48141 +3.074268,-1.6671468,-1.2804717,8.432437,False,0.0,173.48141 +53.70236,2.2573535,2.9665842,259.44653,True,0.0,88.49241 +39.73136,2.2878318,-0.7583435,197.76358,True,0.0,88.49241 +2.0295756,-0.27610368,2.7117047,2.107429,False,0.0,88.49241 +59.681458,1.9657423,-2.826288,217.24835,True,0.0,116.45526 +55.31975,2.3034804,0.4015512,279.61002,True,1.2288178,116.45526 +2.081496,0.017981982,1.5627338,2.0818326,False,1.2211401,116.45526 +1.7338395,-0.41702735,-1.8699682,1.8868048,False,0.0,116.45526 +120.26822,-0.78469354,0.9130116,159.2348,True,0.0,170.8779 +60.35323,-0.5397432,-2.4227297,69.35987,True,0.0,170.8779 +4.6434207,1.1028311,2.3836126,7.7652235,False,0.0,170.8779 +169.6419,-0.8968289,0.17771688,242.56052,True,0.0,160.29881 +77.861,-0.18445738,1.4522448,79.189354,True,0.0,160.29881 +107.697716,2.18288,0.8257022,483.80704,True,0.0,93.46523 +60.956886,1.854188,1.9967512,199.4232,True,0.0,93.46523 +58.492847,-1.9316854,-1.1257329,206.07135,True,0.0,142.01001 +52.541866,-0.46215346,2.1397552,58.25355,True,0.0,142.01001 +181.26859,2.0918746,2.5419831,745.3348,True,0.0,88.14796 +53.03379,1.3661251,3.055569,110.71399,True,0.0,88.14796 +2.3321943,-0.14638883,3.0462308,2.357228,False,0.0,88.14796 +94.266685,1.7129569,-1.2053653,269.86978,True,0.0,144.88536 +55.668743,1.726344,1.934672,161.38377,True,0.0,144.88536 +1.9413552,0.4060353,-2.8046124,2.1035964,False,0.0,144.88536 +2.0301054,-0.038438752,1.6232502,2.0316052,False,4.8958755,144.88536 +138.92955,-1.1337011,-1.400534,238.19296,True,0.0,149.01668 +55.208954,-1.0438584,0.6297816,88.12033,True,0.0,149.01668 +1.804997,2.290683,0.6979035,9.009536,False,0.0,149.01668 +82.74533,-1.214011,-0.5940169,151.58803,True,0.0,129.29993 +57.019196,-1.2647603,1.856345,109.03639,True,0.0,129.29993 +183.56564,0.31806046,-2.3236675,192.92915,True,0.0,362.8478 +175.82388,0.03412519,0.86171705,175.92627,True,6.126642,362.8478 +3.3943949,-0.8374444,-0.10151898,4.655871,False,0.0,362.8478 +84.34462,-0.7452299,0.37126923,108.869965,True,0.0,122.88888 +43.26873,-1.1210924,-2.8404386,73.4298,True,0.0,122.88888 +3.874019,1.0954307,1.645661,6.4402966,False,0.0,122.88888 +4.1043715,-1.1864716,0.45690662,7.348467,False,0.0,122.88888 +1.9106854,-0.11602112,0.35284492,1.9235597,False,1.7785605,122.88888 +1.8504573,-1.8296632,1.2936937,5.914297,False,0.0,122.88888 +56.87888,-0.5363425,-0.5937844,65.257866,True,1.1787163,144.03748 +51.728096,-2.1148965,2.601171,217.50046,True,0.0,144.03748 +1.818162,2.255524,-0.041105386,8.768186,False,0.0,144.03748 +119.43224,1.9934402,1.7765914,446.49564,True,0.0,255.20703 +120.26455,1.17783,-0.9516288,213.78622,True,0.0,255.20703 +3.2068594,-0.14579058,1.379526,3.2410004,False,0.0,255.20703 +1.8821454,-1.2355406,-0.24631685,3.5110626,False,0.0,255.20703 +1.754379,-2.0124984,-0.29921797,6.680361,False,2.808311,255.20703 +134.98932,1.6945293,-2.0597928,379.8443,True,0.0,305.17255 +125.553825,0.53721607,1.0538739,144.11125,True,0.0,305.17255 +54.355103,1.5692283,-2.9678454,136.19067,True,0.0,92.51108 +36.649757,1.0190219,0.053975306,57.383102,True,0.0,92.51108 +2.1884198,0.4559456,2.579963,2.4198594,False,5.512159,92.51108 +1.8704069,-0.24504428,0.6924724,1.9268442,False,0.0,92.51108 +93.36017,1.5651122,0.49707437,233.03989,True,0.0,178.84967 +87.17096,1.651664,-2.9230018,235.68335,True,0.0,178.84967 +2.9694118,-0.105158746,1.168961,2.9858453,False,0.0,178.84967 +57.955578,-1.0238886,0.048444092,91.08284,True,1.484688,110.73838 +42.919674,0.051058963,-2.5004032,42.975636,True,0.0,110.73838 +3.1051116,-1.9051765,-0.7428733,10.665112,False,2.0618758,110.73838 +67.27039,0.53748035,2.5417802,77.22328,True,0.0,67.19898 +40.436848,-0.25187823,1.4923083,41.726353,True,0.0,67.19898 +7.011189,0.053809226,-3.0677598,7.021342,False,1.0656209,67.19898 +3.3208334,-0.97140384,1.1700646,5.0147934,False,0.0,67.19898 +2.8088143,1.6502042,-0.1704441,7.5838737,False,35.112747,67.19898 +2.863167,0.7681323,-0.8831119,3.7501974,False,8.164384,67.19898 +1.9992008,1.8300424,0.026684003,6.392002,False,23.434433,67.19898 +1.8067,1.7009025,0.43251243,5.114233,False,0.0,67.19898 +3.3331466,1.8446463,-0.046941325,10.805966,False,0.0,67.19898 +134.72495,-1.2042506,-0.08927036,244.80707,True,0.0,159.68768 +90.553925,-1.6256661,1.4364933,238.99823,True,0.0,159.68768 +82.48385,0.10102056,-2.51011,82.90509,False,12.195166,159.68768 +4.04648,2.0329514,2.6297524,15.715597,False,17.11948,159.68768 +1.9307096,0.8512809,-2.322907,2.6735632,False,0.0,159.68768 +123.939026,-0.26884863,2.862548,128.4452,True,0.0,36.41085 +30.22103,-0.8531314,2.8101792,41.902416,True,0.0,36.41085 +3.313659,-0.10598455,-1.1554351,3.332287,False,0.0,36.41085 +2.93679,-0.78154975,-2.0038705,3.8803098,False,0.0,36.41085 +1.6021538,-0.40390363,1.3058647,1.7346264,False,1.1251978,36.41085 +58.791656,-1.0375547,-1.5858757,93.37959,True,0.0,129.05836 +50.726986,-2.2742076,1.9448099,249.14792,True,0.0,129.05836 +136.35408,-0.3731992,3.1016984,145.96034,True,0.0,296.48312 +103.87354,1.0725044,-0.5697123,169.56526,True,0.0,296.48312 +1.8767463,-0.43174428,-0.97215253,2.054396,False,0.0,296.48312 +60.482185,-1.7459317,3.1059628,178.59546,True,0.0,89.60892 +32.40128,-2.0592294,0.0033396373,129.07825,True,0.0,89.60892 +2.9420304,-1.2683882,-2.391291,5.6434064,False,0.0,89.60892 +97.861115,-0.5311288,-1.4765241,111.991875,True,0.0,203.36168 +103.5315,-0.8338938,1.5623893,141.66321,True,0.0,203.36168 +2.4802003,0.14946277,0.9400637,2.5079546,False,0.0,203.36168 +2.001367,-0.13600868,-0.38763803,2.0199065,False,0.0,203.36168 +50.028576,-1.9908935,-2.4812808,186.57272,True,0.0,96.654465 +45.837204,-1.7097694,0.58501387,130.833,True,0.0,96.654465 +70.75021,1.1620113,1.7208554,124.13874,True,0.0,111.92164 +47.39333,1.2769198,-0.88774204,91.575134,True,0.0,111.92164 +218.9564,2.0188448,2.9941666,838.86914,True,0.0,425.5752 +205.66289,1.5336736,0.32391635,498.82663,True,0.0,425.5752 +5.9455,0.93504554,-1.4239872,8.73958,False,10.729776,425.5752 +3.5955098,1.994412,-1.08913,13.454351,False,0.0,425.5752 +4.123412,0.82815903,-1.1295607,5.620115,False,12.012519,425.5752 +3.5096974,-1.84028,-0.9843066,11.33119,False,0.0,425.5752 +3.3269303,-2.1798878,3.0619237,14.901932,False,0.0,425.5752 +2.7020285,0.8120455,-1.290931,3.6429558,False,12.012519,425.5752 +89.07217,-2.195988,-2.5096378,405.28394,True,0.0,184.90344 +71.86775,-0.2537953,-2.9868906,74.19478,True,0.0,184.90344 +9.463431,-0.65721214,1.0147308,11.581821,False,17.287642,184.90344 +178.77934,-0.7453858,-2.5133383,230.78674,True,0.0,335.57028 +156.97968,-0.8579339,0.6444441,218.38388,True,0.0,335.57028 +2.3461323,0.4225921,1.001562,2.5587595,False,0.0,335.57028 +2.3753743,-1.4661517,0.13559715,5.4198227,False,0.0,335.57028 +1.8096372,-0.12675768,-1.1736686,1.8241949,False,0.0,335.57028 +76.29095,-1.9288113,-1.085089,268.03476,True,0.0,85.65337 +35.336285,-1.6075519,-2.9696639,91.71456,True,0.0,85.65337 +2.1749542,-0.3530462,0.9515581,2.3119128,False,2.739695,85.65337 +2.1571364,1.7990812,1.49448,6.6974154,False,0.0,85.65337 +63.03404,-1.313301,2.846733,125.66966,True,0.0,123.38918 +62.01997,-1.8956261,0.39265072,211.08307,True,0.0,123.38918 +3.0261946,0.68199337,-0.37429467,3.7576628,False,0.0,123.38918 +166.03944,-1.2832136,-3.1112864,322.56165,True,0.0,262.90582 +103.022,-1.7506021,0.45990747,305.54977,True,0.0,262.90582 +21.757122,-1.2549027,2.7946787,41.258038,True,0.0,262.90582 +3.2211938,-0.88317007,-2.241384,4.56125,False,0.0,262.90582 +2.609905,0.3720469,1.5021745,2.7926283,False,0.0,262.90582 +167.33102,-2.1992786,1.2173336,763.815,True,0.0,34.60491 +60.848137,-1.9787575,1.4803083,224.28593,True,0.0,34.60491 +3.2307596,-2.1361,1.3178215,13.867178,False,3.0720396,34.60491 +2.1589732,2.307935,-2.8892715,10.960145,False,0.0,34.60491 +1.6886423,-0.17196846,-2.899766,1.713673,False,0.0,34.60491 +58.35461,2.2190347,-2.8732882,271.55786,True,0.0,95.304855 +36.671776,1.7281814,0.30492318,106.49506,True,0.0,95.304855 +167.07736,1.9098101,0.7123914,576.4098,True,0.0,306.178 +163.82404,0.57631093,1.9611964,191.7912,True,0.0,306.178 +2.158724,0.27457687,-1.3759956,2.2406125,False,0.0,306.178 +2.2200406,-0.5381265,-0.5142248,2.5493126,False,0.0,306.178 +1.7909389,0.51513255,2.15377,2.0338633,False,0.0,306.178 +77.55959,-1.0879166,-3.071462,128.1673,True,0.0,138.50522 +58.32646,-1.5860018,0.18256465,148.40947,True,0.0,138.50522 +1.9977072,0.21713778,-2.7445972,2.0449874,False,1.647492,138.50522 +119.81475,-0.6226033,1.8005556,143.79684,True,0.0,245.03793 +89.01335,-1.8303766,-1.2185595,284.6909,True,0.0,245.03793 +88.916794,-1.600012,0.31021512,229.1824,True,0.0,179.90083 +87.4757,-2.1408744,-2.4566965,377.2138,True,0.0,179.90083 +132.63925,-0.44733742,0.7169892,146.13332,True,0.0,258.64236 +118.45383,0.055036403,-2.4229538,118.63327,True,0.0,258.64236 +5.348877,-0.24060485,3.078146,5.5044503,False,0.0,258.64236 +2.604924,-0.91245127,2.8441908,3.7666662,False,0.0,258.64236 +109.330284,0.9385949,1.9234676,161.129,True,1.3123205,215.1221 +75.48297,2.150489,-1.4418249,328.55795,True,0.0,215.1221 +2.5866165,1.8861231,-1.5961566,8.7239,False,0.0,215.1221 +124.55805,-1.2282844,0.71070987,230.94057,True,0.0,122.82762 +109.26061,-1.3221272,-0.3931746,219.50241,True,1.7489685,122.82762 +58.57842,1.7023557,2.2772007,166.0438,True,1.5988709,73.324036 +36.780754,1.1610479,0.6086875,64.48467,True,0.0,73.324036 +2.231426,-0.8078653,-2.4948733,3.0000668,False,0.0,73.324036 +1.8521017,0.5883111,-1.1772715,2.181969,False,0.0,73.324036 +53.59106,0.91966575,0.63271546,77.8974,True,0.0,100.45954 +43.218063,0.27462584,-2.2372432,44.85807,True,0.0,100.45954 +174.38568,0.2004974,-2.453656,177.90253,True,0.0,201.75563 +82.37552,-0.23660547,1.9332653,84.69207,True,0.0,201.75563 +124.76068,-0.30414158,1.819456,130.5756,True,0.0,249.03214 +96.28042,0.76282907,-1.0249118,125.67866,True,0.0,249.03214 +4.350712,-0.625165,-2.9558382,5.2289624,False,0.0,249.03214 +1.7250211,0.0709296,2.771006,1.7293622,False,0.0,249.03214 +120.78078,0.8742449,-0.31862915,169.95314,True,0.0,193.4946 +77.14467,1.179566,2.5469012,137.33195,True,0.0,193.4946 +77.26376,1.8895926,-1.9411476,261.4531,True,0.0,137.08705 +60.45269,1.7314373,1.2403753,176.09256,True,0.0,137.08705 +2.3349178,0.37235478,2.531053,2.4986625,False,2.737202,137.08705 +73.97681,-1.5658753,-0.9761886,184.78548,True,1.123977,144.77893 +67.305336,-2.1715028,1.7522438,299.0195,True,3.1762147,144.77893 +3.1665323,0.43680796,-2.6004653,3.4734552,False,0.0,144.77893 +2.1055813,2.2841074,1.8989618,10.442404,False,0.0,144.77893 +59.493385,2.181419,-1.0220525,266.87985,True,0.0,100.73422 +36.070065,1.350203,2.1741607,74.257385,True,0.0,100.73422 +2.859008,1.7631624,1.5860085,8.580382,False,0.0,100.73422 +76.22362,2.1489835,-2.1996448,331.296,True,0.0,121.94985 +48.4406,1.9809812,0.96479535,178.93443,True,1.518948,121.94985 +62.678215,-0.38836637,0.21987689,67.46475,True,0.0,100.28888 +41.01955,0.028118787,-2.4020913,41.035767,True,0.0,100.28888 +5.585595,-0.6009495,-1.5543128,6.6249084,False,0.0,100.28888 +86.524086,-0.8819755,-2.7862194,122.415634,True,0.0,149.57722 +68.644035,0.15016979,-0.9088229,69.41949,True,0.0,149.57722 +3.8185792,2.0384424,-1.0794307,14.909395,False,0.0,149.57722 +2.1337452,-0.5444645,-2.4355474,2.457901,False,0.0,149.57722 +1.9527177,0.23342776,0.41494593,2.00616,False,0.0,149.57722 +57.609684,-1.8986884,-1.4583119,196.64766,True,0.0,88.331764 +35.463146,-2.1296568,1.194191,151.26552,True,0.0,88.331764 +102.85827,-2.0435352,2.0523648,403.58575,True,0.0,31.497025 +63.944202,-2.3697314,2.2613177,344.91583,True,0.0,31.497025 +2.7160277,1.3247321,1.4126811,5.468792,False,0.0,31.497025 +2.6833758,-0.23867251,2.0282311,2.7601678,False,0.0,31.497025 +286.1585,-1.6241344,1.883787,754.1861,True,2.542176,44.233047 +43.232357,-2.0097907,1.7968051,164.19156,True,0.0,44.233047 +1.923172,1.1843699,1.2311174,3.4372523,False,0.0,44.233047 +56.927025,0.795597,-2.6407042,75.91432,True,0.0,118.25217 +53.25673,1.5599995,0.53161293,132.31514,True,0.0,118.25217 +3.4044175,1.1479394,0.39517295,5.904931,False,0.0,118.25217 +121.0305,0.8953969,-0.21435611,172.8771,True,3.6511245,130.00911 +47.885277,1.1783608,-2.2162967,85.15982,True,0.0,130.00911 +6.306158,-0.6068033,2.5153728,7.5032187,False,1.0708749,130.00911 +4.1711807,-1.2985144,1.1708232,8.210524,False,0.0,130.00911 +2.6360428,-1.7167137,1.5960592,7.5731683,False,4.5033956,130.00911 +2.3093581,-0.8699828,0.48300955,3.2398314,False,0.0,130.00911 +2.0751762,0.19430509,2.3566248,2.1144733,False,0.0,130.00911 +1.9947202,0.3148203,0.8674166,2.0943894,False,0.0,130.00911 +1.9388801,-1.7747275,-2.91992,5.882759,False,0.0,130.00911 +54.935863,-1.575965,-1.6888598,138.49918,True,0.0,24.950968 +46.719635,-1.1672837,-1.4174665,82.33083,True,0.0,24.950968 +13.057571,-1.5828073,-1.5881565,33.12707,False,5.8267813,24.950968 +4.5623655,0.3685899,0.4232367,4.8758087,False,0.0,24.950968 +55.319935,-2.0276816,-1.652009,213.75883,True,0.0,94.493385 +39.937164,-2.2935495,1.6618127,199.90466,True,0.0,94.493385 +233.92914,-1.762462,2.121069,701.59875,True,0.0,39.652397 +50.41523,-1.8182073,1.7582191,159.39078,True,0.0,39.652397 +2.307579,0.20868716,2.1932542,2.3580096,False,0.0,39.652397 +2.040104,1.007483,0.032208204,3.1660738,False,2.5325732,39.652397 +160.31412,1.0983524,-0.37450242,267.13467,True,0.0,227.4654 +80.07174,0.80714756,3.0015268,107.60177,True,1.0875802,227.4654 +6.4077187,-1.5476493,2.1338956,15.741058,False,0.0,227.4654 +4.2711287,-1.2153344,1.6284276,7.833318,False,0.0,227.4654 +4.3205795,-0.80456007,-2.832507,5.796052,False,0.0,227.4654 +2.7057273,-1.0733118,2.8510752,4.4197044,False,0.0,227.4654 +96.17584,-0.7361362,0.77367747,123.43274,True,4.1101484,69.089165 +53.31472,-1.0069556,-0.1888563,82.70671,True,0.0,69.089165 +185.30699,-1.900518,0.82688254,633.6433,True,0.0,285.7815 +110.017296,-1.8002573,-2.37809,341.9591,True,2.6967752,285.7815 +3.231267,-1.6287363,1.3418072,8.552527,False,0.0,285.7815 +103.96264,-1.9371167,-0.8145304,368.1751,True,1.2508328,172.50099 +76.98597,-0.7985649,-2.5234363,102.865715,True,0.0,172.50099 +7.502133,-1.9363303,-0.72478956,26.54815,False,7.0242457,172.50099 +156.02164,0.17971508,0.03172604,158.54799,True,0.0,330.9475 +145.16682,1.0756432,3.0246463,237.56235,True,0.0,330.9475 +4.777276,0.1547836,1.7324929,4.834617,False,0.0,330.9475 +61.806118,-2.0961921,2.1284971,255.19922,True,0.0,122.51696 +60.413094,-2.2398093,-0.9874846,286.90234,True,0.0,122.51696 +225.02382,1.1281108,1.4800456,384.05463,True,6.7194858,384.9638 +154.74246,0.61292917,-1.7854422,184.73093,True,1.379493,384.9638 +121.51947,-0.09569447,1.2611226,122.076294,True,0.0,138.34181 +60.579105,-0.633244,-0.4621662,73.1365,True,0.0,138.34181 +2.0822985,-0.17200181,1.1552973,2.1131766,False,0.0,138.34181 +100.76533,0.66700065,-1.1518757,124.02349,True,0.0,162.70547 +57.300713,-0.26886246,1.3831983,59.384266,True,2.7101624,162.70547 +6.202547,-0.3397289,1.3516839,6.5639386,False,4.888515,162.70547 +2.3291736,1.0226787,2.1474736,3.6571095,False,0.0,162.70547 +56.634274,1.5681504,-1.5783873,141.76115,True,0.0,90.044846 +40.33493,1.6428024,2.2521377,108.1596,True,0.0,90.044846 +66.34605,-0.6046411,-2.6492553,78.84782,True,0.0,54.758686 +31.598831,-0.4577379,-1.3786173,34.967392,True,0.0,54.758686 +2.0964615,1.2949097,-2.4313319,4.113875,False,4.276572,54.758686 +2.779374,-1.2100642,0.34125677,5.074967,False,2.0319524,54.758686 +2.7073498,1.1695888,-3.1364646,4.7800465,False,1.2108334,54.758686 +2.2969766,-0.06444219,-1.7314311,2.3017476,False,0.0,54.758686 +53.836975,2.25308,0.14009036,259.01178,True,2.8147705,90.22303 +34.20435,1.6109664,-2.9229743,89.056885,True,0.0,90.22303 +2.0917444,0.592347,1.9951042,2.469571,False,0.0,90.22303 +93.69458,0.24991867,-1.685102,96.63589,True,0.0,146.70102 +88.81419,-0.5499438,-0.15851155,102.58652,True,0.0,146.70102 +2.7482986,0.028235732,-0.8004787,2.7493942,False,0.0,146.70102 +2.0135903,0.29640806,-2.9905672,2.1026947,False,0.0,146.70102 +60.728508,-1.9177717,-0.3378471,211.11386,True,0.0,87.390915 +33.54736,-1.7976533,2.282349,104.01618,True,1.0668956,87.390915 +90.47313,-1.5852226,-1.8641671,230.0406,True,4.738162,4.37857 +38.537197,-1.5855795,-1.7899684,98.01837,True,0.0,4.37857 +6.9657955,-1.1740898,-0.76159734,12.344424,False,1.837568,4.37857 +2.22247,1.5159296,3.0287166,5.304209,False,0.0,4.37857 +217.3185,-0.8760912,-1.7783415,306.1911,True,0.0,437.55984 +218.34767,-0.67804664,1.2963039,270.49274,True,0.0,437.55984 +54.798794,0.5377818,-1.1023071,62.91578,True,0.0,90.02668 +34.18577,1.1853527,1.7094434,61.149433,True,0.0,90.02668 +2.080707,-1.7297493,2.0646331,6.051288,False,0.0,90.02668 +65.55409,-2.1892905,-2.7113698,296.3331,True,1.7027572,19.609468 +36.688984,-1.8188432,-2.8566687,116.06444,True,0.0,19.609468 +1.9901559,-0.08385937,-0.7909871,1.9971578,False,0.0,19.609468 +57.809834,1.9886234,-1.3795656,215.1206,True,0.0,98.109634 +45.892372,2.2701838,1.0766016,224.51634,True,0.0,98.109634 +3.1538024,0.30695266,2.3105798,3.3035483,False,0.0,98.109634 +1.9240056,1.2081082,-0.9358385,3.507374,False,0.0,98.109634 +1.7268404,0.36202133,-0.53273726,1.841241,False,0.0,98.109634 +50.97322,2.1416936,0.53633106,219.98259,True,0.0,88.49704 +38.347622,2.033583,-2.5337327,149.02426,True,0.0,88.49704 +2.2334392,-1.1472647,2.7361262,3.8717453,False,0.0,88.49704 +208.49182,1.9318761,-1.0968237,734.6547,True,0.0,417.6157 +209.5476,1.9536731,2.137326,753.98425,True,0.0,417.6157 +1.8580055,-0.65230244,2.777312,2.2675114,False,0.0,417.6157 +117.2215,-2.1974607,1.7682611,534.1321,True,2.0081084,91.53346 +99.01716,-2.0344946,2.628335,385.1338,True,0.0,91.53346 +2.942223,0.16014415,-1.4542949,2.9800322,False,0.0,91.53346 +98.3251,-1.581051,0.7938034,249.04861,True,5.251228,19.347359 +32.449177,-1.5433903,0.45169276,79.40454,True,0.0,19.347359 +2.9947875,0.6311275,-3.0289829,3.6112947,False,2.9800737,19.347359 +3.3146229,-1.9813126,0.9341072,12.24777,False,0.0,19.347359 +66.432915,-0.59895694,0.96073264,78.70984,True,0.0,93.615135 +39.225056,-2.0859838,0.08888459,160.36563,True,1.4266471,93.615135 +2.6862967,-0.81645733,-1.6705742,3.6324978,False,2.1325743,93.615135 +126.15938,2.0316498,2.5464563,489.3582,True,0.0,125.0415 +55.375942,2.2289789,0.87600005,260.2119,True,0.0,125.0415 +57.401554,-2.24791,0.44896492,274.76825,True,0.0,121.027565 +58.213284,-1.6007003,-2.4680734,150.13956,True,1.4481528,121.027565 +4.3624806,1.7631407,0.4265721,13.092298,False,6.929539,121.027565 +2.3941793,0.11911218,0.5365025,2.4111836,False,0.0,121.027565 +76.28649,-0.7003753,0.29557905,95.77417,True,0.0,153.99985 +78.22409,-0.8115249,-3.0416286,105.42725,True,0.0,153.99985 +63.945225,0.958209,-0.91309094,95.61737,True,1.4209833,86.63741 +34.63255,0.25083107,-2.9326837,35.72775,True,0.0,86.63741 +136.09296,0.64692664,1.3665789,165.57854,True,3.3786082,104.00668 +61.5712,-0.12541583,2.2059846,62.05607,True,0.0,104.00668 +54.808758,0.21858338,0.24589904,56.123325,True,0.0,32.570477 +30.605438,-0.47542983,0.6100006,34.130013,True,0.0,32.570477 +3.3260026,1.3440645,0.64353883,6.810624,False,0.0,32.570477 +59.310436,0.098629214,-2.9094257,59.599148,True,0.0,87.22149 +33.665264,0.5213137,-0.38698703,38.344383,True,0.0,87.22149 +93.906555,0.18574107,-2.838234,95.53109,True,1.5449427,122.58458 +66.26005,0.87213117,1.9116051,93.09745,True,1.5336701,122.58458 +3.2515619,-0.58000386,-1.0420675,3.8139868,False,0.0,122.58458 +60.90923,1.0526129,2.718792,97.88577,True,0.0,121.600365 +45.044613,2.183688,-0.602595,202.51195,True,0.0,121.600365 +59.537106,0.8216053,1.2884645,80.78806,True,0.0,115.162125 +47.97721,-0.06155622,-1.414854,48.06814,True,2.1291196,115.162125 +4.026148,-0.06438133,-1.3080491,4.034495,False,20.577248,115.162125 +1.9436041,-2.2642698,1.7017646,9.4536915,False,2.0744047,115.162125 +68.07185,1.991644,1.8962471,254.04556,True,3.2984333,89.22566 +60.464085,2.2094848,0.38217252,278.76297,True,0.0,89.22566 +305.2589,2.0002155,-1.8412789,1148.6824,True,0.0,522.76575 +202.3273,1.3523079,1.2007698,417.29813,True,0.0,522.76575 +3.0562847,-1.5912671,-1.9932461,7.81436,False,0.0,522.76575 +70.78911,1.8815557,-0.93814075,237.71198,True,0.0,116.54771 +72.795296,0.68431914,-1.9985517,90.51568,True,0.0,116.54771 +2.4339128,-0.2634812,-0.49290326,2.5188868,False,0.0,116.54771 +2.5274818,-1.6265373,-0.08387374,6.6761427,False,0.0,116.54771 +56.01415,1.7011224,-2.9207704,158.59212,True,0.0,90.274666 +51.278927,1.7050775,1.3597044,145.7237,True,0.0,90.274666 +2.8165495,-1.8231032,2.483904,8.9461565,False,0.0,90.274666 +1.9254347,0.12812246,-2.7186272,1.9412596,False,0.0,90.274666 +2.0580595,-0.6632347,1.187801,2.5275474,False,0.0,90.274666 +79.734375,-1.9375329,0.5460228,282.48547,True,0.0,16.87176 +51.865166,-1.914858,0.28387755,179.79935,True,0.0,16.87176 +8.251768,1.295249,-2.195152,16.197128,False,1.271809,16.87176 +5.17409,1.033829,1.1894164,8.194346,False,0.0,16.87176 +2.93084,-0.22213405,2.79322,3.0034468,False,0.0,16.87176 +285.00885,1.0510923,-2.4191356,457.4862,True,0.0,558.9242 +211.03163,2.0976803,0.7937153,872.6147,True,5.3606853,558.9242 +14.080583,0.19275503,2.632527,14.342973,True,0.0,558.9242 +2.2331324,0.988489,1.9484084,3.4159214,False,0.0,558.9242 +251.54005,-0.7893294,0.14695169,334.0538,True,0.0,392.7282 +196.97209,-0.89499325,2.3011765,281.26923,True,0.0,392.7282 +86.22526,2.2485704,2.6994603,413.00745,True,0.0,134.64595 +66.94982,2.1731646,0.5252898,297.92206,True,2.672215,134.64595 +97.95676,0.44259822,-0.09966103,107.70894,True,0.0,86.156 +83.705505,-0.47602478,-0.08031805,93.36977,True,0.0,86.156 +3.2196748,-1.9408307,2.9589584,11.442915,False,1.683354,86.156 +161.31789,-1.6893966,-2.1637988,451.75806,True,0.0,284.38782 +125.68078,-1.7474037,0.85815936,371.63223,True,0.0,284.38782 +3.5951598,-1.5836992,-2.5091963,9.128404,False,5.830667,284.38782 +140.39926,-2.1864336,0.050217163,632.9002,True,0.0,294.9962 +149.60362,-1.6880171,-2.7574022,418.41373,True,0.0,294.9962 +2.5487487,-0.08819328,-2.5353963,2.5586674,False,1.0913928,294.9962 +1.789275,-2.2492173,-0.03181467,8.575811,False,0.0,294.9962 +56.544518,1.5657028,3.0767474,141.21931,True,0.0,85.49278 +30.533014,1.043842,0.14787154,48.73385,True,0.0,85.49278 +4.351866,-0.31753927,-1.2740312,4.5731173,False,0.0,85.49278 +2.381749,-0.51945704,-2.0926569,2.7103806,False,0.0,85.49278 +161.87227,1.363746,1.9124941,337.22177,True,0.0,254.58366 +103.14301,1.1402688,-1.6421629,177.78462,True,0.0,254.58366 +2.638765,-1.8418803,1.6055267,8.532326,False,0.0,254.58366 +2.5419247,0.29265356,-0.7640174,2.651557,False,0.0,254.58366 +1.9188367,-0.9696478,-1.9856122,2.8938284,False,0.0,254.58366 +127.1971,-0.47069365,-1.3460355,141.54959,True,1.089903,91.634636 +48.352516,-0.49126887,-2.5936666,54.305637,True,0.0,91.634636 +2.5021365,-0.03424446,0.91381645,2.5036037,False,0.0,91.634636 +1.792567,0.76101416,2.4768236,2.3371832,False,0.0,91.634636 +55.38606,1.3628129,-0.16662544,115.28908,True,0.0,84.3553 +30.978,2.0249465,2.4132469,119.38466,True,0.0,84.3553 +2.3515882,0.50321823,-1.3370421,2.6556692,False,0.0,84.3553 +54.795055,1.9017012,-0.9336786,187.57971,True,0.0,93.67288 +40.649887,1.8282104,1.9502424,129.74307,True,0.0,93.67288 +2.783687,-0.29779685,0.8860828,2.9080348,False,0.0,93.67288 +2.0064657,-1.1554133,0.84771615,3.5015464,False,0.0,93.67288 +310.0923,1.0089124,-2.1227455,481.7643,True,0.0,662.4399 +305.66766,0.23460692,1.0391889,314.11835,True,0.0,662.4399 +79.86502,-1.9165727,1.6434087,277.32056,True,3.350476,12.778767 +50.661354,-1.8082808,1.4740543,158.6685,True,1.0056436,12.778767 +85.315,0.6676033,-1.9611752,105.04391,True,2.0851293,191.64632 +87.95831,-0.25104493,1.0775733,90.74462,True,0.0,191.64632 +1.809092,-0.4531435,-2.1218703,1.9980308,False,0.0,191.64632 +142.02994,-0.044769168,2.50575,142.1723,True,0.0,252.70068 +110.94417,-0.30322847,-0.7568456,116.08389,True,0.0,252.70068 +189.22324,-1.1380689,0.08514531,325.57498,True,1.6434866,352.51498 +126.13901,-2.2124326,-2.804149,583.22595,True,0.0,352.51498 +57.620247,2.0712028,1.8438886,232.22096,True,0.0,86.394264 +32.379818,1.877484,-1.1047875,108.31068,True,0.0,86.394264 +2.2738264,0.22816157,-2.910248,2.3332686,False,0.0,86.394264 +84.57321,0.97932845,-1.4926586,128.47647,True,0.0,95.13962 +35.667416,1.0186268,2.6966348,55.828056,True,0.0,95.13962 +4.3390293,0.37067205,1.3438182,4.6405444,False,1.5563776,95.13962 +2.3132696,-0.27476045,-0.7619905,2.4011385,False,0.0,95.13962 +1.9782544,-0.20072067,0.66373956,2.018239,False,1.8657821,95.13962 +1.969276,-0.1107827,2.6846302,1.9813726,False,0.0,95.13962 +205.24518,-1.7419219,0.43600565,603.7787,True,0.0,413.29166 +173.43242,-0.8247238,-3.0284727,235.83398,True,5.9779,413.29166 +8.719711,-0.48572966,-3.0011609,9.76873,False,6.4444866,413.29166 +74.8918,-2.2769396,-1.1815814,368.81976,True,0.0,137.40997 +63.967983,-2.1895316,1.7017069,289.23117,True,0.0,137.40997 +1.9867786,0.26099673,2.8254023,2.0548325,False,2.6128156,137.40997 +50.55475,-1.9999851,2.249944,190.19414,True,1.0760221,88.39334 +30.977396,-1.0017984,-0.58599687,47.86617,True,1.203809,88.39334 +2.7819645,0.12562875,-2.182374,2.8039467,False,0.0,88.39334 +1.9089195,0.40510088,-0.32725066,2.0677066,False,0.0,88.39334 +112.47279,2.3803911,1.6229572,613.0692,True,0.0,252.93317 +112.4848,1.3539064,-1.8243874,232.32349,True,3.4700022,252.93317 +1.8783242,0.891579,2.975465,2.6756592,False,4.9674444,252.93317 +234.75795,1.8509072,-2.1336086,765.6263,True,0.0,443.4411 +206.20573,1.5977633,1.0562644,530.3936,True,0.0,443.4411 +2.3951244,0.61413026,-2.5034313,2.8611677,False,0.0,443.4411 +127.186844,0.8182238,0.4831262,172.19096,True,0.0,306.4296 +115.53243,2.2493591,-2.8383398,553.8119,True,0.0,306.4296 +57.86666,-1.9815336,2.156776,213.86699,True,0.0,89.112114 +47.453743,-1.5434793,-2.199716,116.130806,True,0.0,89.112114 +253.91573,0.72333616,-1.9962987,323.28925,True,0.0,518.80676 +264.6008,0.8032348,1.1596414,354.64838,True,0.0,518.80676 +3.1642694,0.09596475,-1.4536769,3.178851,False,0.0,518.80676 +1.9554809,0.13726406,-0.9847362,1.9739319,False,0.0,518.80676 +106.69767,2.0534606,2.776466,422.6892,True,0.0,192.82513 +87.31496,1.989919,-0.25088018,325.32013,True,0.0,192.82513 +9.749335,2.0026805,-0.33672628,36.77382,False,0.0,192.82513 +1.9760637,2.3345582,0.907242,10.297022,False,0.0,192.82513 +120.187836,1.8410357,-0.7152877,388.30984,True,0.0,103.02806 +50.751553,1.7691447,-2.1532066,153.17612,True,0.0,103.02806 +7.633807,-0.33762437,-1.5138035,8.073046,False,3.346696,103.02806 +2.8964615,-0.9635022,-1.4589952,4.3481874,False,0.0,103.02806 +1.7557815,-0.6268223,-1.3964171,2.1121528,False,11.385038,103.02806 +106.46162,0.80738324,-0.5682104,143.08745,True,0.0,178.17479 +70.054855,1.3238839,2.44614,140.95346,True,0.0,178.17479 +101.79158,1.6458554,2.9526834,273.7324,True,0.0,88.41601 +50.269062,0.48050085,2.8585,56.184666,True,0.0,88.41601 +15.846546,2.0543487,0.32046542,62.83101,True,0.0,88.41601 +2.6316526,-0.75035787,1.64468,3.4079313,False,0.0,88.41601 +256.2858,1.2229109,2.7982476,473.03104,True,0.0,245.65855 +159.64626,1.9662297,-2.4985898,581.4057,True,0.0,245.65855 +177.73613,1.9290652,-1.5857295,624.5965,True,0.0,415.38986 +149.68135,0.4506294,1.1958715,165.13792,True,0.0,415.38986 +3.603478,-1.0774559,-2.7433197,5.905484,False,0.0,415.38986 +177.03204,-0.2288077,2.0777338,181.68637,True,0.0,301.72583 +124.07997,0.15284143,-1.0096376,125.532074,True,0.0,301.72583 +2.6923785,-0.13470769,-0.9876656,2.7168436,False,0.0,301.72583 +2.615285,1.0500522,2.1470678,4.1945505,False,0.0,301.72583 +90.38589,1.678434,-0.13771439,250.54184,True,4.1636734,147.39572 +82.108734,1.551755,1.906192,202.4646,True,0.0,147.39572 +1.8686382,-0.50256115,0.12339516,2.1096258,False,0.0,147.39572 +1.9140251,-0.15606682,-2.9017572,1.9373822,False,0.0,147.39572 +162.01694,2.2986012,2.2250328,814.99695,True,0.0,46.25338 +78.10868,1.8923323,2.2664015,265.00497,True,0.0,46.25338 +2.9339137,-1.0348773,0.86196524,4.6502986,False,0.0,46.25338 +2.0857258,0.28803307,2.8354764,2.1728446,False,0.0,46.25338 +79.04793,1.610524,2.053288,205.73079,True,0.0,126.10561 +57.4909,1.9383923,-0.28649622,203.84857,True,0.0,126.10561 +1.7459738,0.62193316,2.383901,2.0946715,False,0.0,126.10561 +52.008274,2.280963,0.9839507,257.13632,True,0.0,52.063213 +46.571476,1.8449142,1.9878126,151.02188,True,0.0,52.063213 +3.68139,-1.7649828,2.0714238,11.067477,False,0.0,52.063213 +2.7601225,-0.06169354,1.4115218,2.7653768,False,0.0,52.063213 +60.121147,-1.5906987,2.761993,153.63838,True,0.0,102.377594 +42.98293,-1.9175804,-0.15126152,149.39655,True,0.0,102.377594 +71.55688,2.3006563,0.38914865,360.67972,True,0.0,83.518616 +39.75754,1.337068,1.6809651,80.91608,True,0.0,83.518616 +2.1019325,-1.153625,0.27800855,3.6627786,False,0.0,83.518616 +85.914,-1.9010812,1.1050057,293.93475,True,0.0,128.54716 +78.817665,-2.0567682,-0.6753177,313.2419,True,0.0,128.54716 +63.11758,-0.5311672,0.5236969,72.23286,True,0.0,117.57544 +56.99684,-2.2213483,1.0162278,265.83942,True,0.0,117.57544 +96.235725,-1.6664968,0.9685236,263.8061,True,0.0,116.58309 +49.47245,-0.20614992,1.5375632,50.527412,True,0.0,116.58309 +2.2756646,1.5594165,-0.4144844,5.650821,False,0.0,116.58309 +2.4743078,-0.8881238,1.8906269,3.5159817,False,0.0,116.58309 +1.7239829,0.042899337,2.3995068,1.7255695,False,1.7362067,116.58309 +1.8453299,-0.22714835,-0.79070216,1.893141,False,1.0431136,116.58309 +79.314095,-1.8316429,0.5388818,253.9751,True,0.0,166.28555 +61.226677,-0.595905,-2.4086673,72.42308,True,0.0,166.28555 +140.43222,-1.6559086,-1.8896203,381.18607,True,0.0,72.20122 +30.649832,-0.6553505,-1.5361042,37.470608,True,0.0,72.20122 +2.8967724,-0.65484977,-1.4503111,3.540397,False,0.0,72.20122 +2.7184184,-0.76786286,-2.0148294,3.5599852,False,0.0,72.20122 +2.1095047,-0.07144318,0.3201143,2.1148906,False,0.0,72.20122 +1.7372023,0.21057421,2.8805916,1.7758598,False,0.0,72.20122 +142.29387,-1.2364439,-2.15049,265.64572,True,0.0,94.362495 +99.284584,-1.071521,-2.9479961,161.94827,True,0.0,94.362495 +2.393516,2.2879703,1.2682352,11.915386,False,0.0,94.362495 +171.40118,-0.99566543,-2.2679942,263.6152,True,0.0,235.36627 +83.156525,-0.7424717,1.2984188,107.14961,True,0.0,235.36627 +82.136505,2.0404704,-0.8098902,321.32602,True,3.5403311,92.877525 +50.04906,1.1961926,0.42579234,90.33463,True,0.0,92.877525 +3.1204731,1.6333008,2.196643,8.29427,False,2.935156,92.877525 +2.0766606,1.7302221,2.9295442,6.042202,False,0.0,92.877525 +180.00873,-0.55612355,-2.6740248,208.56953,True,0.0,108.12484 +39.087475,0.5145722,2.9644964,44.377556,True,0.0,108.12484 +2.3988304,0.10249709,-1.3518858,2.411442,False,0.0,108.12484 +91.28859,0.23274441,-1.45905,93.772316,True,0.0,174.10115 +79.59126,0.6465557,1.6387475,96.81487,True,0.0,174.10115 +109.917946,-2.289508,1.3698504,548.01776,True,1.8644987,86.8015 +37.48489,-1.5850635,0.15046874,95.29663,True,0.0,86.8015 +2.9507825,0.711206,3.0438137,3.7290475,False,0.0,86.8015 +1.9636387,0.71482825,-0.061305188,2.4870582,False,0.0,86.8015 +53.010273,0.3508474,-2.020767,56.3065,True,0.0,121.64021 +43.144897,-1.123553,0.76123357,73.36543,True,0.0,121.64021 +2.2577698,-0.73261124,0.2696404,2.891253,False,0.0,121.64021 +1.9796073,2.3055668,2.2277868,10.026279,False,0.0,121.64021 +52.274315,-0.24978226,-1.8658663,53.91354,True,1.7443298,86.14112 +31.861607,0.8375085,2.2328048,43.704414,True,0.0,86.14112 +68.7856,0.678438,-1.6538378,85.232445,True,3.3271585,19.200678 +30.810621,0.3000792,-1.8245808,32.20827,True,0.0,19.200678 +5.255834,1.3686366,1.29185,10.996367,False,0.0,19.200678 +50.508614,-0.23715846,-0.37865227,51.935688,True,0.0,82.750244 +33.54542,-0.4592771,2.8527725,37.14601,True,0.0,82.750244 +2.3631058,0.9582288,-0.31291956,3.5336068,False,0.0,82.750244 +92.95182,1.6117183,1.5463605,242.18408,True,0.0,190.92656 +83.05051,0.77922416,-1.7045326,109.56614,True,0.0,190.92656 +2.09067,0.7071635,-1.8397675,2.6355727,False,0.0,190.92656 +161.74702,0.81374174,-0.9474368,218.3206,True,0.0,299.25894 +112.127754,1.7628826,2.3750496,336.4262,True,0.0,299.25894 +3.1567214,0.13240495,2.102808,3.1844323,False,0.0,299.25894 +1.7736666,-0.5189535,0.1499849,2.0179107,False,4.0507426,299.25894 +57.830524,0.47866902,1.2380719,64.583176,True,0.0,96.5838 +40.32705,0.46323103,-1.920393,44.731728,True,0.0,96.5838 +50.94447,-2.0070958,-2.7777333,192.97897,True,0.0,88.073524 +37.71429,-1.6538547,0.06473379,102.175575,True,0.0,88.073524 +53.61331,1.853754,-1.9006544,175.32591,True,0.0,93.16786 +41.24912,1.8539982,0.9663158,134.92397,True,0.0,93.16786 +92.51961,1.6991488,-0.9959301,261.46637,True,0.0,97.72754 +57.80592,1.6934584,0.46752986,162.49644,True,0.0,97.72754 +108.34313,-0.32552794,-1.9280488,114.13448,True,0.0,61.069298 +30.245575,-0.38276103,-0.8046109,32.488335,True,0.0,61.069298 +227.57661,2.2071564,-0.7640793,1046.8347,True,0.0,98.574844 +48.378487,2.2868352,-1.7382344,240.56982,True,0.0,98.574844 +5.0779295,0.049613964,-2.0783286,5.084181,False,0.0,98.574844 +54.596214,-1.1032315,1.4414103,91.330925,True,0.0,108.02926 +47.043957,-1.8253355,-1.7271528,149.74185,True,0.0,108.02926 +62.64278,1.608146,0.13726331,162.67712,True,0.0,96.82168 +47.89585,2.1149971,-1.8791442,201.40674,True,0.0,96.82168 +10.358943,0.7060979,-2.9027781,13.0503845,False,0.0,96.82168 +3.3499587,0.40936112,-2.6877098,3.6345878,False,3.0723953,96.82168 +57.393272,-0.85935843,1.1922737,79.92239,True,1.1905836,105.35782 +48.017475,-0.33546072,-1.4409149,50.744705,True,0.0,105.35782 +4.530311,0.95221937,-3.135993,6.7441344,False,3.7336447,105.35782 +1.7698042,-1.3337553,2.8561764,3.5916007,False,0.0,105.35782 +155.56207,1.0605922,-0.3775213,251.56966,True,0.0,224.39127 +113.27272,-0.47452885,-0.36482596,126.267075,True,0.0,224.39127 +333.33163,1.2693008,-1.774059,639.8953,True,0.0,378.16483 +153.74625,1.3321899,2.5341449,311.58456,True,0.0,378.16483 +6.704253,-0.8759315,1.9152203,9.444901,False,0.0,378.16483 +7.1732383,0.9803653,2.5887003,10.905487,False,0.0,378.16483 +2.0313761,-1.558837,-0.8289499,5.0415416,False,0.0,378.16483 +1.8943636,-1.9000336,1.336806,6.474634,False,0.0,378.16483 +217.5285,1.5703986,-2.7436283,545.6188,True,0.0,75.676735 +30.696346,2.1229293,-1.987853,130.07973,True,0.0,75.676735 +3.0031838,0.8241206,-0.50980914,4.082071,False,3.1951454,75.676735 +2.4687803,-0.6377324,-1.4821314,2.9880571,False,0.0,75.676735 +53.530815,2.1684062,-3.081669,237.10663,True,0.0,89.18757 +34.595654,1.5954424,-0.14572363,88.795425,True,0.0,89.18757 +50.53918,-0.47976395,-1.3423105,56.46799,True,0.0,116.364265 +49.343334,-1.6153623,1.8662624,128.99652,True,0.0,116.364265 +3.1149802,-0.28502956,2.2329535,3.2423725,False,0.0,116.364265 +2.0261767,-0.19242862,2.317494,2.063806,False,0.0,116.364265 +51.66206,-2.1576052,2.2728562,226.43475,True,0.0,70.6146 +30.050692,-2.227793,0.054168742,141.04488,True,0.0,70.6146 +2.5269642,-1.2898275,0.65229887,4.9370284,False,0.0,70.6146 +2.2802143,-0.53384095,-1.327178,2.612919,False,0.0,70.6146 +55.97275,0.8098682,-2.8750904,75.35411,True,0.0,102.818794 +48.083755,0.7763522,-0.004764493,63.31694,True,0.0,102.818794 +2.3864136,1.6389595,-3.1266325,6.376486,False,0.0,102.818794 +2.2781587,-0.2942335,1.3951267,2.3774862,False,3.7248404,102.818794 +155.44484,-0.5174441,1.028554,176.72337,True,0.0,304.46182 +141.08409,-0.045308944,-2.096099,141.22893,True,0.0,304.46182 +2.698818,-0.66798306,2.7116456,3.3236501,False,0.0,304.46182 +63.843456,1.6701645,2.8768306,175.60965,True,0.0,89.16444 +37.553192,2.1133778,-1.2433549,157.66667,True,0.0,89.16444 +3.854351,1.5251915,-0.09778347,9.276658,False,0.0,89.16444 +1.7517515,-0.019682756,-2.2062647,1.7520909,False,0.0,89.16444 +325.1174,-1.5358413,0.44673333,790.1177,True,0.0,594.6095 +253.54005,-1.0034829,-2.6639166,392.2729,True,0.0,594.6095 +67.15996,1.2760336,0.53288597,129.6706,True,0.0,113.36735 +47.5993,1.1028727,-2.7072272,79.60328,True,1.4312559,113.36735 +2.6406493,-1.138765,-0.21462943,4.546041,False,0.0,113.36735 +2.074802,-0.6655832,3.1178527,2.55159,False,0.0,113.36735 +1.7871196,-1.8227799,-1.8038449,5.6746545,False,0.0,113.36735 +179.33377,1.093449,-1.7805808,297.659,True,0.0,322.52835 +142.27777,0.8168979,1.3580275,192.4497,True,3.2612681,322.52835 +3.1282284,0.24025092,0.506868,3.218945,False,0.0,322.52835 +3.1159613,0.5167365,-3.0042593,3.5413077,False,0.0,322.52835 +2.4352202,-0.48789772,2.317119,2.7308607,False,0.0,322.52835 +3.316896,-1.6647779,0.7746465,9.0779,False,1.4503888,322.52835 +1.8813057,0.6653945,1.0740421,2.3133743,False,0.0,322.52835 +103.97237,-0.22200763,1.0033042,106.54517,True,1.8469037,86.71555 +37.081734,-0.67135364,2.446269,45.757023,True,0.0,86.71555 +2.7682016,-0.94716054,-1.8334421,4.105546,False,5.6119223,86.71555 +161.7194,0.5410543,-0.7649522,185.97337,True,0.0,273.15976 +100.105354,1.307331,2.290581,198.55077,True,0.0,273.15976 +158.0274,-0.1602984,-3.0750926,160.06206,True,0.0,139.52008 +122.69194,0.7459891,2.852897,158.4438,True,0.0,139.52008 +2.8096993,-0.21439156,2.6711085,2.874519,False,1.0220574,139.52008 +2.6292539,-0.12488528,2.8222399,2.6497838,False,1.0220574,139.52008 +2.4143283,-0.55259424,0.18327503,2.7924247,False,0.0,139.52008 +137.89229,1.7161127,-1.8439679,395.9319,True,0.0,306.59653 +136.12248,0.74972457,1.327476,176.20468,True,0.0,306.59653 +2.628654,-0.22913553,-2.209679,2.6979628,False,0.0,306.59653 +2.4893978,0.61232805,-2.9926069,2.9708576,False,0.0,306.59653 +72.26202,1.0553546,0.6487427,116.38024,True,0.0,145.6073 +55.35879,-0.26784477,-1.6153965,57.356434,True,0.0,145.6073 +4.0520563,-0.8587789,1.6920682,5.6403728,False,0.0,145.6073 +4.420665,-0.9347865,2.5408456,6.496917,False,0.0,145.6073 +50.60526,-2.203667,0.27125388,231.98882,True,1.6082299,90.18678 +41.30684,-2.2863965,-2.5284448,205.31667,True,1.1006185,90.18678 +4.2057967,0.48852924,-2.250129,4.7177377,False,0.0,90.18678 +2.5909457,-2.202706,0.3476932,11.866497,False,1.6082299,90.18678 +131.12537,1.7128161,0.692588,375.34048,True,0.0,260.17517 +121.96842,2.2073877,-2.5799289,561.17194,True,0.0,260.17517 +177.38914,-0.717344,-0.29219577,225.02084,True,0.0,355.11148 +173.40164,-1.031965,2.8379145,274.22443,True,0.0,355.11148 +2.721195,0.38940164,-2.865702,2.9301276,False,0.0,355.11148 +2.2144408,0.14538035,1.4896083,2.2378838,False,1.0023823,355.11148 +61.251102,-2.038781,1.2212214,239.22925,True,0.0,92.40629 +39.70783,-2.175107,-2.6489673,177.03185,True,0.0,92.40629 +3.4562902,-0.94737846,-1.0911252,5.1268816,False,2.6709824,92.40629 +1.9728845,0.2573325,-0.6510315,2.038568,False,0.0,92.40629 +50.422947,1.0073293,-0.60002255,78.24308,True,0.0,89.702415 +36.745567,0.31367216,2.1415267,38.56814,True,0.0,89.702415 +107.37327,-1.0947915,-0.91908467,178.40974,True,0.0,197.7018 +85.69302,-0.20991504,1.4359009,87.58797,True,0.0,197.7018 +51.58649,-1.7840885,-0.6827385,157.90884,True,0.0,89.12163 +36.330837,-1.2829199,2.3226032,70.56145,True,0.0,89.12163 +97.24348,1.0505958,0.39590496,156.03122,True,0.0,129.7018 +65.33795,-0.43212336,0.52150804,71.53377,True,0.0,129.7018 +1.9277755,1.8490369,1.4906712,6.275956,False,0.0,129.7018 +140.0316,-2.3470814,-2.0901122,738.7128,True,0.0,244.58945 +90.56912,-1.523599,1.0338985,217.66643,True,1.2405545,244.58945 +2.2354922,1.5916026,-0.30555063,5.7175093,False,2.6782947,244.58945 +121.35988,-1.2662069,0.58963865,232.35988,True,0.0,189.74094 +70.488754,-1.719672,-2.5779936,203.07182,True,2.95348,189.74094 +110.02641,1.7574147,-0.1986085,328.42444,True,0.0,88.72192 +33.52616,1.2057285,1.2829593,60.995228,True,0.0,88.72192 +126.8002,0.6437121,2.5151858,153.99077,True,0.0,188.67648 +79.03603,0.39722663,-1.3558586,85.353966,True,0.0,188.67648 +67.746544,1.2589738,-0.8269642,128.91324,True,0.0,87.86193 +53.663845,1.7452506,-2.3388493,158.36034,True,0.0,87.86193 +63.492844,0.3201449,-1.2024657,66.774506,True,1.2571954,93.19748 +33.464783,-0.007134209,1.7968264,33.465633,True,0.0,93.19748 +2.7180085,1.0323769,0.4753535,4.2997413,False,0.0,93.19748 +184.23709,1.0561903,0.24084598,296.9141,True,0.0,340.8023 +155.00021,0.7102223,-3.13298,195.7636,True,0.0,340.8023 +17.393175,-0.72261137,2.361981,22.13532,False,0.0,340.8023 +2.7476132,1.877902,-0.8752359,9.194449,False,0.0,340.8023 +58.611656,1.9487298,-0.5767595,209.89479,True,0.0,85.71223 +31.633015,2.070993,2.3351169,127.46139,True,1.5648702,85.71223 +5.738947,-0.884905,0.023152938,8.136414,False,0.0,85.71223 +2.1262124,0.56373197,1.3999505,2.4731033,False,0.0,85.71223 +1.5172827,1.7337712,-3.0296476,4.429391,False,0.0,85.71223 +1.6732876,1.8331248,-1.2015729,5.365656,False,0.0,85.71223 +143.52144,0.76388866,0.5191161,187.47192,True,0.0,165.72842 +59.380817,1.0332032,-1.6641694,93.9974,True,0.0,165.72842 +7.464716,-1.1464348,-2.3199396,12.931579,False,2.0462031,165.72842 +2.466998,-1.0852534,2.5086412,4.068087,False,0.0,165.72842 +168.95659,0.6827034,-1.2024859,209.88382,True,0.0,287.2326 +122.09446,0.62794465,1.9989971,146.96773,True,1.3663478,287.2326 +50.446873,0.26343226,-1.9424269,52.207436,True,0.0,85.208275 +36.100845,0.13533162,1.0264777,36.431934,True,0.0,85.208275 +2.2552924,0.67933786,2.6229968,2.7960255,False,0.0,85.208275 +143.61224,-0.06678082,2.2441123,143.9326,True,0.0,253.22829 +115.47579,-0.3276169,-0.44449776,121.72859,True,0.0,253.22829 +3.0839071,-0.1332906,1.4717346,3.1113427,False,0.0,253.22829 +2.4731276,0.1901568,0.14684115,2.5179763,False,0.0,253.22829 +2.8318071,1.5611547,0.66807204,7.043006,False,0.0,253.22829 +1.8176943,-0.49985483,-1.247237,2.049542,False,2.3531792,253.22829 +52.913128,2.2732239,1.1905415,259.6351,True,0.0,89.60669 +37.937656,2.3642905,-2.0427816,203.5451,True,0.0,89.60669 +154.64333,2.1145985,-2.1104345,650.0386,True,0.0,277.08313 +118.13299,1.6256891,0.827729,311.79407,True,0.0,277.08313 +4.8218603,-1.2867873,2.604838,9.396096,False,0.0,277.08313 +3.0706527,-1.9147952,-1.5726156,10.644297,False,0.0,277.08313 +1.7520337,2.1825356,-2.0221887,7.867964,False,0.0,277.08313 +61.943947,-1.1431617,1.7568903,107.02301,True,0.0,102.93443 +44.122856,-1.2742863,-1.0075772,85.06398,True,1.3483287,102.93443 +9.029608,-1.2727697,-0.93210673,17.385532,False,8.784466,102.93443 +2.7144253,-0.77021146,2.3021533,3.5601563,False,0.0,102.93443 +119.99372,-0.711412,0.33206907,151.66101,True,0.0,190.59941 +67.08533,0.1731099,2.8984704,68.09302,True,0.0,190.59941 +52.016945,1.5904542,-1.0838145,132.89835,True,0.0,87.875046 +37.10912,1.5613896,2.078407,92.314186,True,0.0,87.875046 +3.8219748,-0.17091288,-0.63588554,3.877933,False,0.0,87.875046 +2.9516592,-1.0148582,-1.7740334,4.606693,False,2.6805418,87.875046 +2.1697288,0.285168,1.1078627,2.2585502,False,0.0,87.875046 +1.622987,-0.2785433,2.251685,1.6863561,False,0.0,87.875046 +354.81052,1.6584953,0.9003122,965.409,True,0.0,764.011 +363.39566,0.9473698,-2.2566836,539.0388,True,0.0,764.011 +1.8168648,1.7710922,-1.9555074,5.4936686,False,0.0,764.011 +54.392548,2.2218995,2.9491818,253.82935,True,0.0,84.32906 +32.97675,1.9644239,0.1283106,119.887634,True,0.0,84.32906 +2.3979585,0.059114207,-1.0171584,2.4021494,False,0.0,84.32906 +2.2239418,0.11117355,2.771586,2.2376995,False,0.0,84.32906 +165.36473,-0.3552911,-0.8784871,175.91212,True,0.0,339.87585 +125.543205,-1.557652,2.0089948,311.23984,True,0.0,339.87585 +1.9806868,-0.70243025,-1.6158262,2.4897554,False,2.743526,339.87585 +117.506775,1.7627978,2.4812534,352.53717,True,0.0,87.050095 +87.69442,1.2633805,-3.0938952,167.49881,True,0.0,87.050095 +2.0049443,-0.00015044231,-0.5107673,2.0049443,False,0.0,87.050095 +136.46085,1.2545177,1.9046322,258.6861,True,0.0,208.63113 +78.509705,1.6116515,-1.4947485,204.54283,True,0.0,208.63113 +2.329065,0.27847293,-1.0797364,2.4199564,False,0.0,208.63113 +2.1332443,-0.7796757,-0.3125446,2.815157,False,0.0,208.63113 +135.27744,-1.0547676,1.584062,217.76834,True,0.0,275.02283 +127.69211,-1.7230296,-1.8496311,369.03003,True,0.0,275.02283 +114.95258,-0.89869565,0.53363806,164.5832,True,0.0,275.02283 +2.4680362,0.63400304,-1.5741886,2.9809012,False,0.0,275.02283 +151.6708,-2.2412546,1.9662193,721.30457,True,0.0,239.1345 +88.18024,-1.7180152,-1.1095566,253.64503,True,0.0,239.1345 +1.787744,0.31465042,-2.8798323,1.8769742,False,0.0,239.1345 +65.41043,0.6205845,2.0993192,78.4155,True,0.0,123.558205 +43.867565,-0.4959864,-1.2904202,49.37486,True,0.0,123.558205 +118.58205,0.8793554,-3.091818,167.46135,True,0.0,218.83575 +99.97366,0.6661273,-0.02832672,122.986496,True,0.0,218.83575 +3.5128114,1.0665609,0.3047618,5.7075467,False,0.0,218.83575 +2.374224,0.36741668,-2.3095977,2.536289,False,0.0,218.83575 +2.1455324,0.09299579,2.485168,2.1548166,False,0.0,218.83575 +90.857216,-1.5911952,-0.49537385,232.2899,True,0.0,187.3922 +91.96285,-1.1391426,2.7178826,158.36841,True,2.1341558,187.3922 +82.69733,2.123499,-2.5293024,350.63464,True,0.0,94.61757 +51.80694,1.6807903,2.2379253,143.92032,True,0.0,94.61757 +9.246749,0.8864902,0.9816178,13.124362,False,8.092227,94.61757 +3.8338459,0.62703294,0.85711426,4.6125426,False,0.0,94.61757 +3.8997085,1.7459445,1.4535829,11.515434,False,1.1118461,94.61757 +2.4353948,-0.59336543,-1.1113364,2.8768523,False,0.0,94.61757 +82.896835,0.15209948,-2.1867232,83.85757,True,2.180908,163.11746 +78.01136,0.5050227,0.84774095,88.17293,True,0.0,163.11746 +74.66564,1.706533,2.1795886,212.473,True,0.0,65.57725 +58.464226,2.1362655,1.25379,250.98256,True,0.0,65.57725 +3.5963054,-1.7665688,1.7323333,10.827868,False,0.0,65.57725 +50.346306,0.14611995,2.7107036,50.884735,True,0.0,84.8136 +45.458717,-0.06501083,0.55857784,45.554817,True,0.0,84.8136 +75.23419,-1.606854,2.4179447,195.14299,True,0.0,116.51886 +43.52038,-1.2230328,-0.77472854,80.33453,True,0.0,116.51886 +1.8393823,1.326032,-0.8192044,3.707826,False,0.0,116.51886 +151.86307,1.7782192,-0.27639782,462.28976,True,0.0,299.44507 +119.69862,0.8094695,2.5788887,161.10298,True,0.0,299.44507 +3.201552,2.0723143,-2.8180523,12.916787,False,0.0,299.44507 +1.9754876,-2.1818454,0.91677153,8.865474,False,2.4293249,299.44507 +90.758804,-1.5999744,-0.19325988,233.92207,True,0.0,156.53789 +67.7281,-1.6265082,2.8286304,178.8936,True,1.4744977,156.53789 +3.7364187,0.77127737,2.9374452,4.903954,False,0.0,156.53789 +3.0582457,-0.1873457,-0.877252,3.1120725,False,0.0,156.53789 +1.8872741,0.6576606,2.6719303,2.310338,False,0.0,156.53789 +145.61891,-2.1532412,1.0578045,635.54175,True,0.0,286.86908 +138.40073,-1.8545297,-2.164821,452.93155,True,0.0,286.86908 +142.66693,-0.0020679543,0.0038300697,142.66724,True,5.418032,37.628998 +103.42815,-0.26672176,-0.15605107,107.128975,True,0.0,37.628998 +3.8554084,2.3349998,-2.5329719,20.098763,False,0.0,37.628998 +2.8328059,0.42112917,2.1960802,3.0877392,False,0.0,37.628998 +60.660267,-2.0252397,-2.7241392,233.84196,True,0.0,88.62165 +34.634705,-2.220305,0.97224003,161.37547,True,1.5036308,88.62165 +2.7960825,-2.0247822,-2.8254511,10.773982,False,33.558796,88.62165 +146.255,0.078481644,-0.22690858,146.70566,True,0.0,99.460045 +89.62327,0.69880337,0.38018996,112.41107,True,0.0,99.460045 +60.035152,-1.6101797,-2.5809057,156.19832,True,0.0,92.03252 +36.87207,-2.1771667,1.2863489,164.71933,True,1.6425002,92.03252 +3.2658975,1.834443,2.4317183,10.485731,False,0.0,92.03252 +2.510697,-1.7438475,-2.2872899,7.3992147,False,0.0,92.03252 +2.1557548,-2.3676941,0.61950016,11.604914,False,0.0,92.03252 +1.9947909,-2.0764637,0.1667522,8.080484,False,1.4184589,92.03252 +91.23835,-1.7993358,-0.64745396,283.3425,True,0.0,129.99272 +57.36493,-1.5785924,1.554203,144.97243,True,0.0,129.99272 +118.9488,-0.08319902,-1.2220657,119.36072,True,0.0,253.87296 +120.647484,-0.7721563,1.9707041,158.43694,True,0.0,253.87296 +51.969814,-0.6618077,0.5578295,63.77244,True,0.0,88.718666 +36.843895,-1.0362326,-2.4070022,58.459602,True,0.0,88.718666 +155.11766,-0.18933189,-2.8282685,157.90619,True,4.4880233,23.688078 +57.442837,-0.25718725,-2.586083,59.35312,True,0.0,23.688078 +79.31845,0.92631453,3.049338,115.85238,True,1.0684495,66.86263 +39.484806,0.30565464,1.9850712,41.34364,True,0.0,66.86263 +80.6321,-1.8532573,-0.45703876,263.55792,True,0.0,52.146652 +37.626553,-1.1047416,0.10660167,63.019596,True,0.0,52.146652 +65.85946,1.9900129,1.8024776,245.40294,True,0.0,107.063324 +37.60429,1.0980532,-0.8641136,62.645794,True,0.0,107.063324 +156.58379,1.9860501,3.0622828,581.23364,True,0.0,216.64386 +78.59863,1.6661536,-0.62421554,215.38959,True,0.0,216.64386 +81.34339,-0.049107682,-0.35584202,81.44149,True,1.5810624,126.39128 +52.76532,1.0432737,1.4189192,84.181625,True,0.0,126.39128 +2.1162746,0.6689406,-2.405515,2.607694,False,5.3247595,126.39128 +150.28885,0.3986363,2.4734244,162.38908,True,0.0,100.19348 +51.467438,0.5640805,-2.612382,59.874996,True,0.0,100.19348 +2.1677372,0.54381984,-2.505706,2.4962587,False,0.0,100.19348 +1.8423724,0.97209805,-0.7798654,2.783616,False,0.0,100.19348 +1.6076598,0.22528169,-2.0641322,1.6486285,False,0.0,100.19348 +106.91773,-2.0824184,1.3850406,435.60846,True,0.0,156.9995 +57.01633,-2.323785,-1.6335815,293.98093,True,0.0,156.9995 +6.595539,-1.7741774,0.54467815,20.001146,False,0.0,156.9995 +164.17284,0.2755094,-1.9787002,170.44316,True,0.0,338.53375 +160.1504,0.8662815,1.1830281,224.09558,True,3.2492557,338.53375 +2.7616389,-0.9959811,2.540354,4.2484226,False,0.0,338.53375 +119.6834,0.4779915,1.2741911,133.6181,True,0.0,159.33656 +58.76643,1.6743404,2.8446658,162.27487,True,0.0,159.33656 +2.0202818,-0.49155262,1.3265634,2.2693105,False,0.0,159.33656 +53.42164,1.7078708,2.298796,152.21034,True,0.0,73.68588 +35.120605,2.1379044,0.3671453,151.01064,True,0.0,73.68588 +2.392663,0.15298624,-1.0470418,2.4207177,False,0.0,73.68588 +1.7557174,-0.42767426,1.8227233,1.9187447,False,0.0,73.68588 +124.27444,-0.934504,0.51738614,182.60457,True,0.0,64.53058 +43.149918,-1.2633522,1.3589668,82.415565,True,0.0,64.53058 +87.42103,-1.0281016,-0.536921,137.83842,True,0.0,102.01795 +36.352398,0.07031197,1.0049429,36.442295,True,0.0,102.01795 +3.135191,-0.5177321,0.4544939,3.5648496,False,0.0,102.01795 +149.39291,0.13878469,-1.1648163,150.83395,True,0.0,284.1687 +120.45519,0.9212743,1.578223,175.29251,True,0.0,284.1687 +3.491415,-0.5370082,0.29501125,4.0070534,False,0.0,284.1687 +83.99814,-0.9076615,-0.36393306,121.04075,True,0.0,160.20766 +76.79271,-0.93001604,2.924336,112.46666,True,0.0,160.20766 +4.2894483,-0.9432017,3.0246768,6.3431716,False,0.0,160.20766 +117.26336,1.8359828,-2.2709422,377.04575,True,1.2703261,59.106632 +42.938927,2.0185657,-3.1077974,164.46394,True,0.0,59.106632 +2.17537,0.7936608,1.1587169,2.897227,False,0.0,59.106632 +138.77109,-1.082837,-1.9833435,228.39494,True,4.3753576,30.968481 +38.40162,-0.82800853,-1.6430657,52.33516,True,0.0,30.968481 +12.93664,-1.1316031,-1.9159404,22.141958,False,4.3753576,30.968481 +241.1961,-0.5907356,2.224002,284.51923,True,0.0,202.34558 +89.0087,-1.0010849,0.7853977,137.46117,True,0.0,202.34558 +15.392319,-2.1908724,-1.9424797,69.68742,False,4.1963634,202.34558 +4.231307,-2.0282042,2.9813774,16.358227,False,99.34828,202.34558 +3.9453297,-1.6239625,-1.5055485,10.396474,False,0.0,202.34558 +2.5612488,-2.0842962,2.9108574,10.454155,False,60.48797,202.34558 +2.3835564,-2.1660957,-2.0561073,10.533866,False,8.325237,202.34558 +2.3407285,0.14093578,2.2755353,2.364014,False,0.0,202.34558 +77.255844,0.9552877,0.79002255,115.27035,True,0.0,123.372284 +49.361057,1.0688584,-2.204582,80.34631,True,0.0,123.372284 +2.7447257,0.21438637,-1.272493,2.8080435,False,0.0,123.372284 +2.0240061,0.9498752,1.6315116,3.0078514,False,0.0,123.372284 +52.805157,-2.1736748,-2.48006,235.09615,True,0.0,93.71999 +37.71663,-1.5344309,0.54931736,91.54322,True,0.0,93.71999 +4.448063,-1.1950911,-2.8782077,8.021048,False,0.0,93.71999 +204.19672,0.65708256,1.6499338,249.8875,True,1.6303536,310.94397 +128.70427,1.3217326,-0.5773494,258.47586,True,0.0,310.94397 +83.27716,1.3546005,0.8295577,172.10321,False,16.72124,310.94397 +3.1592832,-1.7997237,0.1822824,9.81482,False,0.0,310.94397 +133.75989,0.9042846,-1.1695257,192.27954,True,0.0,261.33755 +126.26455,0.69391257,1.9484699,157.90321,True,0.0,261.33755 +152.90497,-0.833663,1.7226824,209.18849,True,3.3884435,46.0516 +32.305286,-0.95659745,1.0674386,48.248318,True,0.0,46.0516 +2.998161,2.0503283,-0.6698823,11.841454,False,0.0,46.0516 +69.66626,-1.328878,1.9173008,140.78079,True,0.0,86.05656 +34.02868,-1.0268496,-2.2529078,53.601784,True,0.0,86.05656 +3.1154172,-1.7622035,-1.9998937,9.341462,False,0.0,86.05656 +2.210761,-0.66959524,2.9400315,2.7251632,False,4.492619,86.05656 +50.11937,1.6582214,0.5218981,136.33577,True,0.0,84.60965 +35.84075,1.894854,-2.3524618,121.89291,True,0.0,84.60965 +109.2183,0.6877618,0.4702654,136.08371,True,0.0,226.43912 +108.50673,-0.13393134,-2.038407,109.48135,True,0.0,226.43912 +81.63266,1.6193955,1.7306901,214.20633,True,0.0,96.38035 +34.394886,2.2393348,-0.31339473,163.2659,True,0.0,96.38035 +3.3715148,1.0719198,-2.0518842,5.501187,False,0.0,96.38035 +3.143262,-1.8340143,-0.20072113,10.087879,False,0.0,96.38035 +124.78788,2.1833541,1.5589416,560.83984,True,0.0,200.70984 +78.443245,1.5484992,-1.0265172,192.8516,True,0.0,200.70984 +2.5841112,1.9793447,0.05234121,9.530407,False,0.0,200.70984 +1.5990721,2.1853058,1.4542347,7.200471,False,164.84265,200.70984 +2.122068,-0.19331239,0.7561338,2.161842,False,0.0,200.70984 +1.7502966,1.6044936,-1.5126711,4.5300574,False,0.0,200.70984 +131.99803,0.44212708,-2.7177281,145.11081,True,0.0,222.37149 +90.474754,0.04630789,0.55860656,90.571785,True,0.0,222.37149 +4.49465,0.037605923,0.63859314,4.4978285,False,0.0,222.37149 +64.30806,2.1628845,-1.9153905,283.31488,True,0.0,91.48096 +35.89843,2.0590696,0.594737,142.98787,True,0.0,91.48096 +2.013581,-0.20554622,2.4582806,2.0562673,False,0.0,91.48096 +2.2322872,-0.27276206,2.2719097,2.3158433,False,0.0,91.48096 +193.36656,-1.130831,2.344282,330.75302,True,0.0,151.65231 +64.553,0.07714713,2.791804,64.7452,True,0.0,151.65231 +25.761663,-0.10464967,-0.43976322,25.902859,False,36.270004,151.65231 +2.5161836,-0.16463351,-0.36864156,2.5503602,False,84.24318,151.65231 +2.1933396,-0.22089979,-0.5726375,2.2470715,False,37.977654,151.65231 +160.9844,-0.5043375,-2.3132122,181.89577,True,0.0,33.242832 +38.52823,-0.18256171,-2.0408316,39.172066,True,0.0,33.242832 +3.7990844,1.0508319,-2.035666,6.0969152,False,0.0,33.242832 +2.4427183,0.68388754,0.042797487,3.0365644,False,0.0,33.242832 +1.912715,0.650328,2.3634346,2.3316414,False,0.0,33.242832 +100.57226,2.1077523,-3.0208623,419.9512,True,0.0,91.156975 +58.379242,2.1770918,-1.7492832,260.77972,True,0.0,91.156975 +1.825929,1.2193336,0.83620745,3.3600366,False,0.0,91.156975 +52.371258,1.6845231,-2.8877015,145.9957,True,0.0,92.64381 +38.92059,2.1624775,0.4025628,171.40018,True,0.0,92.64381 +2.6699193,0.6402841,-2.6603103,3.2361588,False,0.0,92.64381 +2.0628533,0.45705035,-3.0513628,2.2820902,False,0.0,92.64381 +87.43109,1.9604824,3.022423,316.65543,True,1.7865115,41.448765 +59.213024,1.8497113,-2.6876504,192.8943,True,0.0,41.448765 +2.2157843,0.1771067,1.5041445,2.2506263,False,0.0,41.448765 +1.7214954,-0.49037847,1.0297005,1.9326614,False,1.1655132,41.448765 +121.89246,-0.50806016,1.4709377,137.96553,True,0.0,217.436 +76.17901,0.5093656,-1.4805505,86.276985,True,1.2173927,217.436 +86.15918,1.6221269,-0.9302576,226.65584,True,0.0,171.32886 +82.67063,1.2666433,2.292863,158.34302,True,0.0,171.32886 +99.90853,-1.1973629,1.5548501,180.50287,True,0.0,103.416595 +39.96186,-1.0541041,-2.8221922,64.29679,True,0.0,103.416595 +2.5969427,-1.1433492,1.9372514,4.487527,False,0.0,103.416595 +52.3176,1.6657827,-2.3026063,143.32027,True,0.0,90.85222 +36.787006,2.2597299,0.56509984,178.13887,True,0.0,90.85222 +101.28819,0.7356248,2.0519958,129.95232,True,0.0,155.46649 +58.0215,0.2842448,-1.3982912,60.381252,True,0.0,155.46649 +53.217716,2.0733695,-2.4575772,214.92857,True,0.0,37.380016 +54.39795,2.083558,3.116152,221.87527,True,0.0,37.380016 +158.9558,-0.47005442,-1.3374933,176.84225,True,0.0,365.22528 +129.37405,-1.917263,1.7924384,449.5311,True,4.200904,365.22528 +2.894169,1.1691403,-0.50486517,5.108003,False,0.0,365.22528 +59.321686,-2.0874891,-2.14758,242.88193,True,1.5336722,113.03139 +47.38287,-1.3619541,1.061871,98.555756,True,0.0,113.03139 +2.5137012,-2.0858223,-2.2727256,10.275274,False,0.0,113.03139 +54.8591,2.1540904,0.64674115,239.62605,True,2.6755278,10.604392 +30.033724,2.0886269,0.90032023,123.1034,True,0.0,10.604392 +5.3701344,0.73679715,-1.8372927,6.894924,False,0.0,10.604392 +2.486667,1.1679245,-2.6303616,4.384397,False,0.0,10.604392 +2.3598342,0.63591075,0.7779533,2.853269,False,0.0,10.604392 +82.14563,-1.1409692,0.32089317,141.67285,True,0.0,155.63966 +73.83786,-1.2282788,-2.7026832,136.90063,True,0.0,155.63966 +4.722021,-1.7653453,1.3619959,14.200811,False,0.0,155.63966 +2.8584166,-2.0234203,0.34304124,10.999694,False,0.0,155.63966 +57.958347,1.3133674,0.3600267,115.557,True,0.0,103.7385 +37.49982,0.28341386,-2.3231602,39.015984,True,0.0,103.7385 +2.493148,-0.7673627,1.9797714,3.263922,False,4.478755,103.7385 +2.1843479,1.131343,2.7030463,3.737874,False,0.0,103.7385 +166.63026,-1.0633897,-2.5356498,270.06223,True,0.0,342.4585 +157.08725,-0.3819711,0.5597536,168.68692,True,0.0,342.4585 +4.2208157,-0.66877145,1.4157947,5.200415,False,0.0,342.4585 +50.905704,1.150005,-2.4295053,88.44469,True,0.0,88.062004 +37.76707,0.9528703,0.78521615,56.249798,True,0.0,88.062004 +2.839436,0.42701387,1.0579937,3.1022663,False,0.0,88.062004 +3.045789,1.6150829,0.83008254,7.960442,False,0.0,88.062004 +2.2543852,2.2529228,0.5970198,10.844268,False,0.0,88.062004 +1.9193268,-1.8333437,2.2940872,6.155899,False,0.0,88.062004 +1.9101263,0.8861558,2.312255,2.7104921,False,0.0,88.062004 +95.512085,-0.1847516,1.345494,97.14679,True,0.0,17.568338 +55.823414,-0.08427137,1.564524,56.02175,True,2.097137,17.568338 +2.2097623,0.09312899,-2.1958146,2.219352,False,0.0,17.568338 +1.7003871,-1.3456647,1.3070722,3.4867332,False,0.0,17.568338 +62.844196,-1.7660816,-0.06888347,189.12633,True,0.0,81.04021 +49.028194,-2.371707,1.3782868,264.97263,True,0.0,81.04021 +9.679733,-1.6845975,-0.04212647,26.986128,False,2.9563248,81.04021 +1.9552306,0.255288,-0.21013103,2.0192904,False,0.0,81.04021 +53.85996,2.160916,-1.4755869,236.83043,True,0.0,94.92271 +42.758457,1.7609348,2.1709805,128.0564,True,0.0,94.92271 +1.8108503,-0.09458803,-2.8435874,1.818957,False,0.0,94.92271 +56.73944,-0.39566588,-1.0645744,61.23901,True,0.0,89.268936 +32.768852,0.2693227,2.4956727,33.964493,True,0.0,89.268936 +27.352606,-1.2807918,-2.6449258,53.027206,True,1.2297628,89.268936 +96.33338,-0.1892796,0.9036783,98.0642,True,0.0,197.45589 +92.72727,0.40872213,-2.1772778,100.58092,True,0.0,197.45589 +3.2052913,-0.9323418,-1.6552261,4.7022943,False,0.0,197.45589 +217.99466,-0.27383372,-2.800949,226.21901,True,0.0,391.67267 +177.001,0.018647058,0.0069029583,177.03177,True,5.404436,391.67267 +3.1522753,-0.04068079,-1.3066933,3.154884,False,0.0,391.67267 +93.37046,0.29134947,-3.0937526,97.36143,True,0.0,164.64851 +58.074184,1.2699909,0.2410188,111.55047,True,0.0,164.64851 +4.2227325,2.3456476,1.0937036,22.244967,False,0.0,164.64851 +4.2339983,-0.468869,-1.5557699,4.7079844,False,45.737915,164.64851 +2.0158572,-0.48511076,-0.13730264,2.257744,False,0.0,164.64851 +50.736645,-2.2523258,-3.1395524,243.91597,True,0.0,93.726 +42.674538,-1.9764873,0.14129314,156.95485,True,0.0,93.726 +3.0695066,0.21078125,-1.558568,3.1379466,False,0.0,93.726 +158.85564,-1.0961771,2.0862317,264.2444,True,5.69203,305.0167 +146.50917,-0.72911525,-1.4301535,187.20802,True,0.0,305.0167 +144.15134,0.8261859,-0.34439412,196.21188,True,0.0,289.15335 +118.787834,-0.08289352,2.7506428,119.19618,True,0.0,289.15335 +7.5775824,1.0784829,3.0508692,12.4284725,False,21.343906,289.15335 +129.31392,0.48776865,0.35925007,145.00441,True,0.0,188.2494 +68.552124,1.1413952,2.820695,118.2698,True,0.0,188.2494 +4.664279,-0.11643802,-1.7362765,4.6959333,False,0.0,188.2494 +2.6464953,0.75422895,2.8350003,3.4356072,False,0.0,188.2494 +56.269184,-1.6335714,2.947257,149.60193,True,0.0,83.15223 +30.819807,-1.8056175,-0.40124103,96.28261,True,0.0,83.15223 +19.011408,-1.8056655,-0.32526,59.39529,True,2.135995,83.15223 +125.87332,2.055198,-0.39678335,499.4937,True,0.0,159.48668 +63.236298,1.7344137,1.7514682,184.71667,True,0.0,159.48668 +3.996228,-1.7797399,-1.7658824,12.182493,False,0.0,159.48668 +3.6981573,0.27850106,-1.6443336,3.8425064,False,0.0,159.48668 +243.47186,0.9299897,-1.6232489,356.56952,True,0.0,481.29703 +228.13329,0.5196235,1.5019374,259.63153,True,0.0,481.29703 +6.401984,-0.7380172,1.4192628,8.226053,False,1.2318823,481.29703 +5.715461,0.6604365,1.772561,7.0079064,False,0.0,481.29703 +204.37086,-0.34395373,-2.6017969,216.57947,True,0.0,403.66937 +174.89615,0.38721272,0.54527915,188.17221,True,3.0118673,403.66937 +2.3895705,2.0365605,0.7391575,9.312968,False,0.0,403.66937 +2.3352358,0.16301976,-0.15568943,2.3663347,False,0.0,403.66937 +1.7773325,-0.22618961,-1.4113742,1.8229924,False,0.0,403.66937 +410.82996,-0.095767744,0.16007362,412.71536,True,0.0,222.15546 +84.88103,-0.90000176,1.0447122,121.64199,True,0.0,222.15546 +5.3326764,0.29034477,0.81019497,5.5590324,False,0.0,222.15546 +70.12063,1.9876822,-1.3379219,260.69482,True,0.0,139.12323 +60.96652,1.1611416,1.3579248,106.89582,True,0.0,139.12323 +2.8460343,0.0924429,2.319618,2.8582034,False,0.0,139.12323 +1.8943175,0.20219205,-1.1354678,1.933171,False,0.0,139.12323 +134.89311,1.3168566,-0.90221643,269.76257,True,0.0,168.91643 +68.100876,0.58601767,-2.750393,80.132866,True,0.0,168.91643 +5.1264567,-1.9275787,-0.8328637,17.98963,False,0.0,168.91643 +2.4449344,-1.9176495,-0.74239683,8.498466,False,1.141177,168.91643 +121.07512,1.5952296,1.6303471,310.6983,True,0.0,232.9077 +101.720825,2.26494,-1.2636985,495.09476,True,0.0,232.9077 +7.9775667,0.33734375,-0.08723552,8.435815,False,15.008359,232.9077 +145.48,-0.33246124,1.0199878,153.59431,True,0.0,272.10568 +126.74437,-0.20710887,-2.1074464,129.4724,True,0.0,272.10568 +183.22581,-0.19164436,-0.43721452,186.60085,True,0.0,224.3911 +80.00395,0.04853619,1.8929513,80.098206,True,0.0,224.3911 +1.7107425,0.3215273,-1.2533852,1.799935,False,3.9728484,224.3911 +51.740414,-1.8833966,-2.467819,174.05153,True,0.0,89.96761 +39.087048,-1.8284004,0.64695305,124.77744,True,0.0,89.96761 +79.79868,-0.09357528,1.9561433,80.14831,True,0.0,11.327037 +32.47196,0.10650513,2.0528698,32.6563,True,0.0,11.327037 +2.5692632,1.2646073,-2.0101256,4.912498,False,0.0,11.327037 +1.9159204,-1.0126771,2.4464815,2.9852016,False,5.1675797,11.327037 +59.012432,-0.11747959,-2.4981332,59.42013,True,0.0,91.42221 +36.8822,0.26973578,0.07762895,38.23208,True,0.0,91.42221 +16.593,0.88284266,1.5798512,23.490448,True,38.519825,91.42221 +131.67473,-2.0954032,-1.987694,543.2727,True,0.0,248.96812 +94.34916,-1.0599911,1.5837613,152.50618,True,0.0,248.96812 +1.8504184,0.2246885,0.23632447,1.8973244,False,0.0,248.96812 +244.64569,-1.2619354,-1.6614759,466.70526,True,1.0650527,132.19942 +61.91161,-1.128814,-2.7856228,105.72657,True,0.0,132.19942 +63.888626,-1.071158,-0.5250733,104.1822,True,0.0,55.91424 +30.424599,-1.3590269,0.8059154,63.120617,True,0.0,55.91424 +2.0517707,0.6235245,-2.8420217,2.463708,False,0.0,55.91424 +1.9313617,1.1139412,2.9673626,3.25879,False,0.0,55.91424 +73.83787,0.58633465,1.0498139,86.89798,True,0.0,62.427677 +56.38263,1.0329082,1.9347681,89.23098,True,0.0,62.427677 +14.938509,0.41928515,0.8626111,16.270954,False,3.065898,62.427677 +173.3197,1.5220404,-2.056921,415.95255,True,0.0,432.6407 +161.41283,0.023921978,1.1631743,161.45901,True,0.0,432.6407 +52.42853,2.0672243,1.0308799,210.48463,True,0.0,102.12202 +48.2394,1.7134593,-2.0563598,138.16637,True,0.0,102.12202 +100.778015,2.1315737,-2.0773206,430.66327,True,0.0,93.437645 +36.177933,1.3155015,2.790267,72.26468,True,0.0,93.437645 +4.088837,0.34848842,-2.532949,4.3396425,False,0.0,93.437645 +2.7146344,0.6220718,-1.7333835,3.257038,False,0.0,93.437645 +136.93315,0.45414436,1.6042784,151.29857,True,0.0,78.132576 +46.536484,-0.1270004,2.407107,46.912285,True,0.0,78.132576 +2.4312835,-0.8103222,1.2528563,3.2741451,False,2.7811625,78.132576 +78.99155,-2.241417,-0.86884975,375.72165,True,0.0,87.701645 +43.11888,-1.1363524,0.1241201,74.08626,True,0.0,87.701645 +2.0184863,2.0775476,2.3371906,8.185061,False,0.0,87.701645 +2.0700731,-0.3192978,0.057133008,2.176496,False,0.0,87.701645 +103.17288,1.5542991,1.311245,254.99727,True,2.4717057,46.70787 +48.55023,1.74074,1.9553078,142.66365,True,0.0,46.70787 +12.031477,1.5777283,1.2010374,30.38178,False,2.4717057,46.70787 +3.1512575,-1.9641621,-2.5494206,11.453577,False,0.0,46.70787 +67.86052,-1.9279296,1.4386224,238.21451,True,0.0,113.549965 +50.95329,-1.7280512,-2.2682822,147.95058,True,0.0,113.549965 +64.34823,-2.094427,0.84109783,265.2411,True,2.4972043,143.77008 +60.134354,-0.9898124,-2.2126775,92.077,True,0.0,143.77008 +3.7950711,-2.3423736,2.219909,19.927929,False,0.0,143.77008 +127.48552,-0.8667889,-0.7631249,178.45152,True,0.0,179.08318 +64.61425,-0.7821961,2.0394464,85.40934,True,0.0,179.08318 +98.67413,-0.32034692,1.155687,103.780655,True,1.5431985,160.49098 +64.974815,-0.502672,-1.8598772,73.35802,True,2.0200777,160.49098 +57.278866,-1.6655278,1.0380207,156.87407,True,1.8210806,89.68008 +51.286907,-1.0818694,2.8036945,84.345184,True,0.0,89.68008 +7.9796567,0.58628196,-2.9567623,9.390802,False,0.0,89.68008 +2.6550217,-0.60138303,-1.1960548,3.1497767,False,0.0,89.68008 +1.9874159,-0.8693826,1.3320098,2.787001,False,0.0,89.68008 +1.736315,-0.9969917,0.024353331,2.6731477,False,0.0,89.68008 +365.2424,-0.57591736,-2.526571,427.5072,True,0.0,678.06854 +313.00623,-0.72414994,0.5982146,398.72504,True,0.0,678.06854 +4.2216277,0.36448157,0.59349614,4.505161,False,3.9036853,678.06854 +56.923023,0.120429255,2.6533947,57.336308,True,0.0,91.660736 +36.157497,0.44478908,-0.6434839,39.793503,True,0.0,91.660736 +135.7724,-0.13333799,-0.76824206,136.98114,True,0.0,119.82933 +56.162487,-0.62235117,0.6211314,67.39456,True,0.0,119.82933 +4.8117604,0.093563266,1.8453002,4.832837,False,0.0,119.82933 +178.15224,-1.1189653,-1.6153876,301.8168,True,0.0,128.86916 +56.207127,-0.41463742,-2.742562,61.10843,True,0.0,128.86916 +4.79101,-0.40356588,-2.5917757,5.1864786,False,0.0,128.86916 +51.924923,-1.0831352,0.07689793,85.48033,True,0.0,92.70829 +38.18615,0.6389977,0.84355164,46.251102,True,1.0676073,92.70829 +1.8954885,0.30656338,-1.4541706,1.9852583,False,0.0,92.70829 +2.0147185,-1.3085225,-0.0344199,4.000144,False,0.0,92.70829 +50.77933,-1.0109928,-1.4537733,79.01736,True,0.0,118.31714 +49.977657,0.20369208,1.2981484,51.018044,True,1.155178,118.31714 +61.46515,0.18205939,0.064101554,62.486614,True,0.0,92.14069 +34.6498,0.21224461,-2.9566662,35.43318,True,0.0,92.14069 +2.3392274,-0.14264458,-2.7989995,2.3630667,False,0.0,92.14069 +78.49575,-2.2751606,-2.5483046,385.89536,True,0.0,95.777084 +36.943027,-2.1801496,1.5488371,165.51685,True,0.0,95.777084 +3.1343844,-1.0184791,3.092951,4.9055057,False,0.0,95.777084 +2.3557456,0.82615125,-0.9210419,3.2064526,False,0.0,95.777084 +105.56786,-1.2737926,0.60067666,203.43729,True,0.0,214.86453 +79.91546,0.7152921,0.437401,101.24622,True,0.0,214.86453 +2.5675595,0.118565015,-2.2330494,2.5856276,False,0.0,214.86453 +55.851578,-1.7774321,1.8724108,169.89268,True,0.0,88.15673 +37.481922,-1.953263,-0.69694585,134.81255,True,0.0,88.15673 +2.3864968,0.45472553,-1.4905592,2.6375122,False,0.0,88.15673 +1.97713,0.24182567,-0.60392606,2.0352232,False,0.0,88.15673 +69.08,0.4215364,2.2091002,75.30894,True,1.7750608,94.47576 +37.96836,0.31768736,-1.7333082,39.900513,True,0.0,94.47576 +110.74657,1.2621465,1.0924604,211.30682,True,0.0,175.39874 +65.814,1.7372153,-2.144447,192.75308,True,0.0,175.39874 +3.6998017,0.42301556,0.92431706,4.035793,False,0.0,175.39874 +2.531065,0.64447457,0.81488276,3.0751479,False,0.0,175.39874 +92.47395,-0.76770115,2.846387,121.089355,True,2.5503545,216.5743 +86.243484,0.51505846,-0.34639987,97.93819,True,0.0,216.5743 +134.19028,1.9079338,1.0515409,462.12024,True,0.0,349.8317 +125.07227,0.27184048,-2.2852473,129.72205,True,2.586551,349.8317 +1.6240128,-0.42071652,-0.25656837,1.7698724,False,0.0,349.8317 +2.691099,-1.2206882,1.2806945,4.95774,False,0.0,349.8317 +172.13138,-0.04100115,3.0456877,172.27608,True,1.25994,196.0275 +92.61931,0.34098113,1.3432041,98.056015,True,0.0,196.0275 +3.318009,0.5604068,0.22509526,3.852808,False,12.398679,196.0275 +5.7367773,1.6132033,1.9261944,14.967569,False,0.0,196.0275 +2.6338367,0.013678026,1.8436754,2.634083,False,3.498569,196.0275 +1.9725782,1.0501494,-0.19508927,3.1639795,False,0.0,196.0275 +51.15786,1.8046552,-1.3331236,159.67407,True,0.0,122.04676 +47.57242,0.4498991,1.692877,52.468723,True,0.0,122.04676 +112.972435,-2.11803,-1.5272634,476.46182,True,0.0,225.89171 +95.12198,-1.2777828,1.6028234,183.93396,True,0.0,225.89171 +2.564847,-1.1643832,-0.3775304,4.5090795,False,6.986574,225.89171 +1.8886344,0.47438177,-0.90795934,2.105157,False,0.0,225.89171 +125.77344,2.0617166,0.0061182594,502.2564,True,5.7001123,183.7517 +67.07763,1.9164819,3.0099266,232.89781,True,0.0,183.7517 +2.9474282,-0.5923607,1.3617952,3.4798403,False,0.0,183.7517 +81.42288,1.189856,2.6106253,146.18962,True,0.0,133.68465 +52.783657,0.59576976,-0.9878438,62.43159,True,0.0,133.68465 +4.1186466,-1.2902066,0.18551427,8.049381,False,0.0,133.68465 +1.8494389,-0.6935972,-0.9697139,2.3124232,False,0.0,133.68465 +94.59596,-1.5882093,2.7759907,241.18501,True,0.0,103.61249 +41.202396,-1.6249464,-1.550353,108.67274,True,0.0,103.61249 +7.9100695,-1.2136072,2.2638936,14.486211,False,0.0,103.61249 +6.203006,1.2914424,1.3283163,12.135884,False,0.0,103.61249 +128.68706,0.74204534,-0.6823803,165.77248,True,0.0,276.46448 +117.43673,1.7326844,2.5413835,342.4822,True,0.0,276.46448 +2.65641,0.14890182,2.0139062,2.685913,False,0.0,276.46448 +108.16274,-1.066652,-1.6233257,175.75333,True,0.0,141.37236 +53.799282,-0.4967589,2.5061457,60.57492,True,0.0,141.37236 +50.6748,-2.108553,-3.064277,211.76309,True,0.0,91.44132 +41.108006,-2.3614902,-0.1476794,219.94891,True,0.0,91.44132 +54.819653,1.0642262,1.6578081,88.906235,True,0.0,94.59364 +39.98083,1.8492619,-0.7124777,130.1872,True,0.0,94.59364 +3.9979308,-1.7502222,2.3235092,11.853099,False,0.0,94.59364 +2.9694316,-0.46718162,2.9516466,3.2994208,False,3.392244,94.59364 +2.4507277,-2.13957,-0.20898266,10.554659,False,0.0,94.59364 +173.54872,-1.0406873,1.834914,276.32202,True,0.0,297.39047 +138.5068,-1.2074437,-0.70732164,252.35135,True,0.0,297.39047 +3.9240758,-0.06950247,-0.043023862,3.9335575,False,0.0,297.39047 +58.60749,0.626535,-2.859259,70.49181,True,1.2990049,110.87678 +51.98453,0.9935671,-0.037040792,79.82498,True,1.3168627,110.87678 +8.848284,0.6892737,2.756666,11.034733,False,11.490372,110.87678 +3.3745124,0.32983658,0.28231218,3.559743,False,0.0,110.87678 +89.371765,1.1420164,0.23561737,154.26703,True,0.0,60.460342 +63.96454,1.906406,0.397481,219.95728,True,2.877248,60.460342 +6.307272,-1.7715125,-0.16923884,19.078915,False,0.0,60.460342 +5.1716104,0.7783851,-0.8124206,6.8190246,False,0.0,60.460342 +3.7727263,1.9068692,0.3218102,12.979167,False,40.902603,60.460342 +3.7888794,0.7997614,2.4517205,5.066577,False,0.0,60.460342 +2.0275133,-1.9566103,0.46208438,7.3159165,False,0.0,60.460342 +1.888339,-0.97239006,1.747285,2.8536909,False,0.0,60.460342 +53.903008,-1.9236041,-0.031599212,188.43591,True,0.0,92.28298 +39.500534,-1.9364836,3.1319346,139.80295,True,0.0,92.28298 +138.46329,-0.8274871,2.6099598,188.63611,True,0.0,84.00997 +30.371262,-1.002242,-2.2795231,46.945446,True,0.0,84.00997 +216.84967,0.54440296,-1.7850764,249.78557,True,0.0,416.6466 +193.90065,0.1864366,1.3875477,197.28029,True,0.0,416.6466 +2.3676374,-1.301893,1.3527354,4.674031,False,0.0,416.6466 +170.53177,1.9026735,2.639947,584.32385,True,0.0,401.23996 +167.93492,0.7020279,-0.54198074,211.04549,True,0.0,401.23996 +5.373824,0.5424872,1.4024893,6.1841455,False,0.0,401.23996 +3.4363396,0.44700816,0.570781,3.7854128,False,0.0,401.23996 +3.4778948,0.6074377,1.523413,4.139506,False,0.0,401.23996 +2.9920688,2.3234694,-0.38761464,15.422578,False,0.0,401.23996 +52.336185,-1.8851085,2.3729768,176.34367,True,0.0,90.87766 +43.188393,-1.5689437,-1.45031,108.18345,True,0.0,90.87766 +2.4871726,1.1459469,-0.71665114,4.3069634,False,0.0,90.87766 +1.7817996,0.5660256,-2.1774776,2.074933,False,0.0,90.87766 +96.05172,-0.042776927,0.3553627,96.13961,True,0.0,182.36188 +83.972374,0.30634034,-2.78695,87.94345,True,0.0,182.36188 +2.4554286,0.8217393,0.9999104,3.3321624,False,0.0,182.36188 +68.610016,-0.010224133,0.902704,68.6136,True,3.609973,58.825127 +42.84247,0.3861096,-0.15490612,46.075832,True,0.0,58.825127 +2.2198493,-0.23620531,2.6857374,2.2820637,False,0.0,58.825127 +50.48991,0.9980555,0.3229952,77.79477,True,0.0,90.43045 +34.323868,1.9087256,-2.4039645,118.293045,True,0.0,90.43045 +199.7892,1.1140271,-1.2348518,337.12802,True,0.0,396.717 +139.13347,2.3297956,1.8199196,721.62665,True,0.0,396.717 +85.20714,2.0572364,2.6080046,338.78885,True,0.0,144.42271 +53.08631,1.2922816,-0.58910674,103.93578,True,0.0,144.42271 +6.29447,0.7131392,-0.9436163,7.964045,False,3.8370588,144.42271 +3.6992345,1.1860125,2.8356867,6.620588,False,0.0,144.42271 +2.393635,0.3586953,-0.037816066,2.5492785,False,0.0,144.42271 +103.599174,1.2897182,-2.5606823,202.38673,True,2.3294325,32.764427 +37.9483,1.0958613,-2.070656,63.108215,True,0.0,32.764427 +3.06108,-0.48411348,-1.3278639,3.426847,False,0.0,32.764427 +2.9209898,0.70222616,-0.61971873,3.6712778,False,0.0,32.764427 +2.1485088,-0.46216872,-1.2511232,2.382083,False,0.0,32.764427 +136.51718,0.27210608,-2.1879766,141.60243,True,0.0,271.9326 +127.87869,0.75306535,0.95253503,165.88553,True,0.0,271.9326 +2.560774,-1.8640796,-2.742345,8.457002,False,0.0,271.9326 +1.690454,-0.14187573,0.8962945,1.7074959,False,0.0,271.9326 +126.287346,-1.1929426,3.071193,227.32324,True,0.0,189.16083 +66.69701,-0.6925198,-0.15749349,83.33989,True,1.2556376,189.16083 +72.4818,-1.8520011,2.4317849,236.63428,True,0.0,122.575935 +48.19502,-1.3099371,-0.70809466,95.80634,True,0.0,122.575935 +82.193565,0.1571573,0.66529775,83.21068,True,1.16017,127.481964 +48.073307,0.5776156,-2.217829,56.31836,True,0.0,127.481964 +52.980335,-0.39330012,0.31243357,57.13106,True,0.0,103.8303 +47.350876,-0.96617013,-3.0291352,71.22515,True,0.0,103.8303 +3.6344001,0.039909855,-0.9234509,3.637295,False,1.2991446,103.8303 +86.68804,1.5681026,-2.3033783,216.97917,True,0.0,80.75314 +31.52269,1.8436435,2.2533972,102.098236,True,0.0,80.75314 +149.17227,-0.77293664,-0.97437376,195.99545,True,0.0,291.1816 +128.79091,-0.04160035,2.5515625,128.90236,True,0.0,291.1816 +2.7476702,-0.5450427,-2.2862682,3.1660016,False,0.0,291.1816 +2.2228005,0.52792484,0.028648587,2.5398142,False,0.0,291.1816 +90.74129,-0.3684572,-2.5783782,96.97084,True,1.0652341,174.47513 +81.06744,-0.7489427,0.47216806,104.88623,True,3.8041725,174.47513 +2.0136864,-0.13097309,-2.7592294,2.0309825,False,0.0,174.47513 +120.19475,-0.806145,-1.1289948,161.41165,True,0.0,13.648632 +47.554962,-0.9341824,-1.2562581,69.85916,True,0.0,13.648632 +4.302741,1.7669766,0.87173206,12.959811,False,0.0,13.648632 +3.5667984,-0.16578618,-0.87377244,3.6159275,False,0.0,13.648632 +2.9076953,-0.31794652,0.008988619,3.055907,False,0.0,13.648632 +2.792611,-1.9959515,2.7973049,10.46543,False,0.0,13.648632 +64.244,1.723876,-3.0104413,185.81259,True,0.0,91.8226 +41.74257,2.3325415,1.311082,217.08525,True,0.0,91.8226 +2.3372996,-2.0801222,-1.8543246,9.501546,False,0.0,91.8226 +148.5924,-1.7766893,0.30972397,451.68036,True,0.0,334.183 +149.51791,-0.80202377,-2.801089,200.23961,True,0.0,334.183 +3.672597,0.97068846,-2.1011574,5.54302,False,0.0,334.183 +3.783316,1.6495898,-2.3959239,10.209227,False,0.0,334.183 +177.8712,0.24833511,2.4007607,183.38414,True,0.0,293.06323 +125.18756,0.36124107,-1.1380342,133.44496,True,0.0,293.06323 +2.5112898,1.5274955,-1.9853222,6.056859,False,11.396056,293.06323 +246.73434,-0.6164756,3.0827396,295.12286,True,1.2856647,461.34286 +199.05743,-1.201898,0.0795078,360.9954,True,0.0,461.34286 +59.76621,1.8388047,-1.291293,192.68697,True,0.0,96.48494 +38.677666,2.2425673,1.4765795,184.17653,True,0.0,96.48494 +1.8823104,0.3858485,-0.091355555,2.024176,False,1.50965,96.48494 +125.28057,0.6877618,-2.8999937,156.09697,True,0.0,262.32162 +119.703674,-0.06329675,0.19115815,119.94355,True,0.0,262.32162 +3.1040316,-1.0534612,-0.18557842,4.9917293,False,1.0093268,262.32162 +2.6059105,0.10446268,-1.4185201,2.620142,False,0.0,262.32162 +55.060333,0.049919162,-2.5410962,55.12895,True,0.0,30.524693 +43.790268,-0.55294466,-2.4321527,50.65697,True,0.0,30.524693 +2.9905314,0.09018043,-2.379104,3.0027,False,1.1305417,30.524693 +93.27038,0.19776493,-0.842292,95.10027,True,0.0,107.46575 +43.628048,0.18703851,1.1608503,44.393402,True,0.0,107.46575 +181.05783,1.6015733,-1.116422,467.3474,True,4.106289,76.44279 +67.168465,2.0595863,-1.6391003,267.67407,True,0.0,76.44279 +2.819552,-1.28698,1.881057,5.495216,False,0.0,76.44279 +2.4967618,0.5410421,-2.4096427,2.8711977,False,0.0,76.44279 +4.1092525,1.5730865,-2.039528,10.332532,False,0.0,76.44279 +67.58988,1.5806427,-0.09961836,171.13487,True,0.0,92.052086 +35.942204,2.2953854,-2.168251,180.23189,True,0.0,92.052086 +2.2652318,-0.5374713,0.45894855,2.6003695,False,0.0,92.052086 +123.22813,-0.342803,1.8815942,130.53981,True,2.4971795,66.86666 +53.27131,-0.33825126,1.0308926,56.347965,True,0.0,66.86666 +1.7589393,1.6026602,-2.425229,4.544735,False,4.1860485,66.86666 +1.7711191,0.3286927,2.646063,1.8676585,False,0.0,66.86666 +127.14298,-1.7332569,2.2964923,370.98816,True,0.0,202.07239 +75.71065,-1.2451553,-0.8124514,142.3879,True,0.0,202.07239 +2.6041448,-0.63687104,-2.6399574,3.1503656,False,0.0,202.07239 +1.6443039,-1.2466532,-0.8891098,3.0963447,False,0.0,202.07239 +1.8875084,1.9833515,-0.8613444,6.9881835,False,0.0,202.07239 +2.1296523,-1.5926824,-1.1746162,5.452229,False,0.0,202.07239 +141.0905,1.0850264,-3.0789332,232.61667,True,0.0,239.93042 +99.0982,1.6194934,0.48443568,260.0599,True,0.0,239.93042 +124.1041,-1.3012125,1.522154,244.8543,True,0.0,238.96387 +99.79987,-0.5354696,-1.5481759,114.45272,True,0.0,238.96387 +195.72804,-0.15875164,2.2476323,198.19962,True,0.0,478.6733 +184.28406,-1.5719684,-0.8832198,462.89902,True,0.0,478.6733 +1.9339129,0.9132962,0.5433886,2.7981055,False,0.0,478.6733 +14.102145,-1.4927775,-0.8705411,32.95801,False,0.0,478.6733 +78.94325,-0.3364708,1.973562,83.454254,True,0.0,190.76642 +76.72247,-2.1345487,-2.8365562,328.81445,True,3.5051575,190.76642 +2.1227825,0.24509026,-1.6066127,2.1868591,False,0.0,190.76642 +124.48111,-0.7520836,-1.2023817,161.37724,True,0.0,142.66711 +57.543873,-0.71265686,3.0766006,72.785576,True,0.0,142.66711 +15.881946,0.045233767,2.8523598,15.898196,True,3.1691196,142.66711 +7.1799707,0.08823233,1.3547533,7.207937,False,0.0,142.66711 +5.122665,0.6698608,-0.6611488,6.3155932,False,0.0,142.66711 +2.185338,-0.28341997,-1.3279955,2.2736979,False,4.3220363,142.66711 +55.870045,0.006858458,1.9077618,55.871357,True,0.0,107.11861 +44.335663,-1.1073673,-2.125047,74.413155,True,0.0,107.11861 +2.7452514,-0.6545514,-1.0085915,3.3546345,False,0.0,107.11861 +50.273705,1.9976888,-2.7239609,188.7186,True,0.0,88.018555 +39.893154,2.0340142,0.04335492,155.09503,True,1.8742185,88.018555 +3.3526,0.34476212,-2.3473494,3.553828,False,0.0,88.018555 +1.9170326,-0.34863898,-1.0835037,2.0347242,False,0.0,88.018555 +1.7467306,1.9409534,-0.027190004,6.208715,False,1.8742185,88.018555 +171.29126,0.73598695,-1.5456132,219.81583,True,0.0,332.4874 +136.0525,1.6061661,1.3451099,352.67007,True,2.473494,332.4874 +3.6943626,0.60978734,-1.3049296,4.4027686,False,0.0,332.4874 +2.0767217,0.63602805,1.5522022,2.5111241,False,0.0,332.4874 +1.7830206,-0.43519723,2.8597708,1.9545515,False,2.0991626,332.4874 +112.987495,-1.0316577,0.026625438,178.64049,True,0.0,92.627106 +75.17975,-1.9220549,0.43373528,262.42603,True,0.0,92.627106 +1.6688782,-1.91971,0.5473563,5.812394,False,1.3290554,92.627106 +1.6519413,1.8292178,1.2352214,5.2775817,False,0.0,92.627106 +143.24178,2.011742,1.0191934,545.04114,True,0.0,242.67043 +100.10853,1.6857018,-2.0990465,279.38046,True,3.7686756,242.67043 +1.8224189,0.56035,-0.40746257,2.1160967,False,0.0,242.67043 +117.61102,-0.045899987,-1.654165,117.73494,True,0.0,256.2717 +101.00725,1.1228282,1.4718161,171.65642,True,0.0,256.2717 +53.39025,1.0408916,1.3597052,85.02078,True,0.0,96.07315 +35.65075,1.9373325,-1.6836329,126.28033,True,0.0,96.07315 +3.4841752,0.5597667,2.5526671,4.044442,False,0.0,96.07315 +50.481953,-0.19576025,1.0439627,51.45233,True,0.0,90.16212 +32.759617,-1.3183469,-1.3880986,65.59811,True,0.0,90.16212 +2.5819972,-1.5648016,0.43071064,6.443187,False,0.0,90.16212 +2.3608124,0.39610022,-3.133075,2.548447,False,0.0,90.16212 +1.984696,-0.86408645,-2.4128308,2.772892,False,0.0,90.16212 +59.668022,-1.8763119,-1.9628724,199.36678,True,0.0,90.636375 +35.085663,-1.6507624,1.5370632,94.78137,True,0.0,90.636375 +149.95564,0.5539339,1.6045784,173.55637,True,0.0,340.17276 +135.5014,-0.6721293,-1.6160825,167.27805,True,1.2569594,340.17276 +3.0564456,0.10144397,2.775501,3.0721858,False,0.0,340.17276 +1.8274822,0.53444594,0.023149956,2.094748,False,0.0,340.17276 +74.48678,0.026241781,-0.677416,74.51243,True,0.0,94.533714 +53.98427,1.2494477,0.06776842,101.89744,True,0.0,94.533714 +50.284378,0.9430682,2.2425375,74.35247,True,0.0,77.93074 +33.08434,-0.14606266,0.4997025,33.43788,True,0.0,77.93074 +2.2105455,1.8139687,0.4325481,6.960734,False,1.0655146,77.93074 +125.39458,-0.86630994,0.18506522,175.46587,True,0.0,48.657124 +31.30869,-0.24674313,-0.27363697,32.266605,True,0.0,48.657124 +2.2001147,0.51940763,-2.6358752,2.5036254,False,0.0,48.657124 +1.9388822,0.8908262,1.9086488,2.760444,False,0.0,48.657124 +164.56224,-2.2474792,2.0387325,787.3903,True,0.0,271.91544 +111.05666,-2.0297172,-1.1465474,429.97287,True,0.0,271.91544 +2.813273,0.35803807,-1.792511,2.995526,False,0.0,271.91544 +1.7151626,2.1028998,0.74051315,7.128204,False,0.0,271.91544 +94.34772,0.77873737,-3.085462,124.43072,True,0.0,53.948723 +40.135326,0.14849475,2.59002,40.578648,True,0.0,53.948723 +72.95219,2.3025024,2.695694,368.3787,True,0.0,133.93077 +49.6717,1.3421226,-0.23257656,101.5401,True,0.0,133.93077 +73.01913,0.609503,-2.1502035,87.007324,True,0.0,157.55734 +67.46132,-0.37044966,1.004723,72.143456,True,1.452322,157.55734 +1.9928436,-0.94961315,-3.0314534,2.9609673,False,0.0,157.55734 +50.955917,-2.0184047,2.564812,195.14017,True,0.0,86.59036 +40.151997,-1.6909821,0.102124095,112.60917,True,1.577061,86.59036 +2.4424322,-2.017714,2.647932,9.347275,False,0.0,86.59036 +2.0759425,-0.50456655,-0.8098164,2.3458512,False,0.0,86.59036 +1.6252352,0.5993557,1.0532048,1.9259936,False,0.0,86.59036 +197.22992,1.8970017,1.892267,672.14935,True,0.0,386.4865 +147.26709,0.8730127,-1.2767352,207.0431,True,1.253109,386.4865 +2.520924,-0.6840893,1.5215607,3.1341584,False,0.0,386.4865 +1.7800583,1.2333841,-0.27980924,3.314586,False,0.0,386.4865 +166.15285,2.1756854,0.58878714,741.18713,True,0.0,29.795134 +79.53614,2.2292004,0.33443666,373.82172,True,2.050884,29.795134 +6.092789,0.6905257,-2.50802,7.6040335,False,188.09184,29.795134 +5.352774,0.63596976,-2.7983663,6.472239,False,49.611755,29.795134 +2.2453108,0.4173199,-2.48029,2.443682,False,145.93817,29.795134 +2.0226202,0.82395685,-2.643652,2.748937,False,52.194542,29.795134 +155.23227,-1.3417426,-2.9125617,317.22446,True,0.0,82.921036 +34.7506,-0.37737948,2.8446913,37.254612,True,0.0,82.921036 +151.59673,-0.5972046,-0.87399167,179.44354,True,0.0,269.34146 +146.70917,-0.4471182,1.3650683,161.61977,True,0.0,269.34146 +2.003998,-0.23209997,-2.6969736,2.058219,False,0.0,269.34146 +53.18467,-1.8317617,-0.2024785,170.32416,True,1.1988775,78.245834 +30.629526,-0.313014,0.8289713,32.142323,True,0.0,78.245834 +63.90458,2.2049704,-0.7539485,293.32956,True,0.0,108.07918 +46.24861,2.1787968,2.6080058,206.93587,True,1.7241976,108.07918 +3.1539803,-0.6135761,-0.18435504,3.76654,False,1.7106893,108.07918 +1.916157,-2.1921003,-2.1391532,8.685635,False,0.0,108.07918 +131.1012,1.2061297,-1.9765681,238.5966,True,0.0,247.99722 +117.311165,1.2261791,1.2029496,217.11914,True,0.0,247.99722 +3.535291,-1.2142217,-1.3610622,6.477737,False,0.0,247.99722 +2.403428,-0.6895981,1.814955,2.9979064,False,0.0,247.99722 +147.28532,-0.7403919,-2.4435217,189.53294,True,0.0,268.74887 +127.16156,-1.0116446,0.22718284,197.97406,True,0.0,268.74887 +2.691786,-0.49119097,-0.8941305,3.0230894,False,0.0,268.74887 +51.359283,2.1292496,-2.2496953,218.98267,True,0.0,88.10279 +35.958115,1.5754068,0.55623984,90.6078,True,0.0,88.10279 +3.0119085,1.144482,-2.0383863,5.209401,False,0.0,88.10279 +147.45435,0.2849861,1.1344801,153.48288,True,0.0,19.469528 +48.44667,0.13472304,1.3091815,48.886997,True,2.1268237,19.469528 +3.9741218,0.011819487,-0.16402814,3.9743993,False,3.3865087,19.469528 +3.1975553,-0.37544057,-1.1515763,3.4255717,False,0.0,19.469528 +2.8938684,1.0360291,-2.407406,4.590928,False,0.0,19.469528 +103.88497,1.1870337,-1.7905301,186.0824,True,0.0,176.41774 +75.7086,1.2266427,1.5621221,140.17593,True,0.0,176.41774 +6.7460027,-1.97756,0.0065246364,24.837091,False,0.0,176.41774 +3.0417418,0.16567323,2.072275,3.0835817,False,0.0,176.41774 +88.88401,1.9911487,2.6870124,331.55872,True,0.0,153.92226 +55.756443,1.1135845,-0.2537439,94.05093,True,1.2624217,153.92226 +1.8439093,-0.8299995,0.96483386,2.5163527,False,0.0,153.92226 +1.896186,0.3213914,-3.047101,1.9949627,False,0.0,153.92226 +1.7153524,0.43223158,-0.46528104,1.8780973,False,0.0,153.92226 +92.13714,1.1748995,0.33528736,163.3899,True,0.0,181.61798 +85.49752,1.6189868,-2.921368,224.2631,True,0.0,181.61798 +133.82416,-2.125624,-2.3241491,568.58417,True,0.0,70.97755 +38.188877,-1.9792635,-1.2976986,140.8326,True,0.0,70.97755 +2.3418546,1.9859484,-0.803082,8.692033,False,0.0,70.97755 +1.6453885,-0.12731935,-2.6126385,1.6587425,False,0.0,70.97755 +57.4817,-1.7232748,-0.6534139,166.16026,True,0.0,89.85661 +33.065556,-2.277305,2.2290504,162.89624,True,0.0,89.85661 +3.3995197,-2.0887806,-1.1819227,13.936163,False,0.0,89.85661 +1.7550312,-1.9713888,-0.9494231,6.4233313,False,0.0,89.85661 +71.01209,2.2003675,0.7167466,324.49307,True,0.0,145.90494 +53.47619,1.001351,-2.3132994,82.60305,True,1.9797783,145.90494 +54.98939,2.0229445,1.4126245,211.51172,True,0.0,10.921596 +38.59972,2.0956483,1.6387398,159.29526,True,0.0,10.921596 +2.2246106,1.9717293,-2.568273,8.144637,False,8.328792,10.921596 +126.49099,-0.6708896,-0.89898956,156.0412,True,0.0,191.06491 +79.461815,-0.4958648,1.6001619,89.43274,True,0.0,191.06491 +2.9650512,-0.5249016,0.25677618,3.3829844,False,0.0,191.06491 +59.346706,2.2626145,-2.8487961,288.19516,True,0.0,126.63919 +54.12389,1.3006219,0.21441464,106.73073,True,0.0,126.63919 +159.06398,1.6351478,2.9854798,423.51898,True,0.0,83.8546 +80.1328,1.9524812,2.3013093,288.00006,True,1.6786596,83.8546 +6.0420213,1.9238398,0.4273205,21.126669,False,0.0,83.8546 +5.1216855,1.8542328,2.3400128,16.75654,False,7.446527,83.8546 +3.9394271,0.34096697,2.7736824,4.1706505,False,0.0,83.8546 +91.78289,2.127036,-1.4169091,390.4973,True,0.0,229.83173 +96.358215,0.8172379,1.7758718,130.36723,True,0.0,229.83173 +1.771585,-0.61385053,2.787508,2.115976,False,0.0,229.83173 +1.6387635,2.1649492,-0.7263902,7.234252,False,0.0,229.83173 +256.37558,1.6258671,-2.0807586,676.7759,True,0.0,457.64355 +193.17091,0.9976521,0.63474715,297.5461,True,0.0,457.64355 +16.909363,-0.043389726,1.821948,16.925283,False,4.2167563,457.64355 +4.1295004,0.998095,0.55820245,6.362919,False,0.0,457.64355 +2.343415,0.1348798,-1.9397311,2.3647637,False,1.7476964,457.64355 +2.171857,0.85782963,1.64387,3.0211823,False,0.0,457.64355 +156.86797,0.7410346,-0.3375242,201.946,True,0.0,305.17673 +143.88017,1.1153015,2.9280572,243.03549,True,4.9914627,305.17673 +50.858734,-1.9800246,-0.99115753,187.69382,True,1.1983161,21.877142 +40.936577,-2.1180782,-1.4544129,172.65831,True,1.6348803,21.877142 +5.3013353,0.46412742,2.291395,5.882651,False,7.1627574,21.877142 +167.57774,-0.13939674,-2.4811325,169.20853,True,0.0,349.43338 +148.19853,1.0591335,1.5238281,239.3871,True,0.0,349.43338 +2.134968,0.25740796,3.0096357,2.2060897,False,0.0,349.43338 +128.29497,-0.5820061,-0.5545429,150.64403,True,0.0,238.5781 +109.63882,-0.31807384,2.433619,115.23187,True,0.0,238.5781 +2.8327315,0.50671154,-2.3778677,3.2042406,False,5.925748,238.5781 +2.6318777,-0.28402942,-2.5649722,2.7387536,False,1.6018338,238.5781 +2.778077,-2.1499362,-2.733756,12.085749,False,0.0,238.5781 +50.483284,-1.2239099,-3.061239,93.256134,True,0.0,97.73299 +45.85382,-0.8702152,0.069328986,64.33946,True,0.0,97.73299 +2.7401352,0.8717878,-0.8910851,3.8490477,False,0.0,97.73299 +86.164,-2.1005206,-1.1401182,357.27106,True,0.0,62.96924 +78.18885,-2.2673051,-1.9076103,381.44205,True,0.0,62.96924 +5.1312847,-0.6853918,2.9553208,6.384452,False,1.0648623,62.96924 +3.3776102,0.94113433,0.81630677,4.9871626,False,1.7072381,62.96924 +55.956406,-1.6587083,1.3132744,152.28275,True,0.0,87.96344 +38.584805,-1.5566831,-1.1629195,95.57257,True,0.0,87.96344 +3.1460884,-0.8322284,0.88633245,4.2999377,False,0.0,87.96344 +2.4736617,-0.86910385,-2.7515342,3.468197,False,0.0,87.96344 +69.79416,1.9355837,-2.4731872,246.80704,True,2.9517257,15.954036 +33.191044,2.1539004,-2.7228754,144.95256,True,0.0,15.954036 +2.2333267,0.16602847,0.4520616,2.2641788,False,0.0,15.954036 +112.62193,1.3173747,2.2244766,225.32518,True,0.0,131.24815 +56.03693,1.584481,0.31855926,142.38463,True,0.0,131.24815 +2.405608,0.112104945,-2.9441264,2.4207401,False,0.0,131.24815 +63.244675,2.2790184,0.10884548,312.09583,True,0.0,99.91254 +35.22319,1.5983778,-3.0505123,90.65091,True,0.0,99.91254 +2.5121846,0.36148292,1.4169145,2.678113,False,1.6587765,99.91254 +1.6838567,2.2485,0.014999606,8.064894,False,40.213966,99.91254 +52.804512,0.35672185,1.0828558,56.19999,True,0.0,94.262245 +42.204002,0.44984287,-2.205959,46.546673,True,0.0,94.262245 +7.9228735,-0.3593503,-1.1168637,8.439953,False,0.0,94.262245 +141.92479,1.7792944,1.0084068,432.47543,True,0.0,262.92572 +114.583,2.281272,-2.0532656,566.68616,True,0.0,262.92572 +1.9734818,-0.6063755,-2.81536,2.347552,False,1.763439,262.92572 +2.0866823,-0.57342815,-0.432028,2.439258,False,0.0,262.92572 +52.21123,-2.167126,-2.4639904,230.97346,True,0.0,88.79137 +35.949566,-1.7216175,0.6394255,103.75665,True,0.0,88.79137 +4.3807755,-2.1659718,-2.3659878,19.358017,False,0.0,88.79137 +227.75304,-0.95016474,1.4467092,338.53357,True,0.0,165.64117 +150.67749,-1.7982471,1.2563832,467.44986,True,0.0,165.64117 +32.33115,-0.9504951,1.2959205,48.068977,False,19.349985,165.64117 +153.21991,-1.5917333,-1.7369486,391.9234,True,0.0,83.55463 +35.981003,-1.6577563,-2.9297986,97.83397,True,0.0,83.55463 +2.0484455,0.31732133,-1.77622,2.1524458,False,0.0,83.55463 +55.040943,-1.8055454,1.1146238,171.93892,True,1.2250572,92.696625 +39.65987,-1.8705297,-1.7656308,131.78531,True,0.0,92.696625 +7.5788746,-0.17548029,2.9727724,7.6958637,False,0.0,92.696625 +3.3029459,-1.8763562,1.1347277,11.0364895,False,5.7829714,92.696625 +1.8821557,0.34769192,0.8759346,1.9970729,False,0.0,92.696625 +137.8724,-0.7037234,-1.0097947,173.44379,True,0.0,66.01846 +70.29444,-0.053952836,-0.8981885,70.396774,True,0.0,66.01846 +3.8718739,-0.78201646,-1.5266315,5.1173744,False,0.0,66.01846 +90.60348,-0.6555316,0.9064736,110.7778,True,0.0,167.9675 +60.97675,-1.6754401,-2.399187,168.55104,True,0.0,167.9675 +122.82908,1.3040712,-0.71875894,242.93687,True,0.0,202.3717 +81.55125,0.9170913,2.1709824,118.3179,True,0.0,202.3717 +20.561853,0.8149587,1.1615078,27.77639,False,6.0840073,202.3717 +1.8103006,-2.193894,3.0010529,8.220173,False,0.0,202.3717 +129.11595,0.62949973,-2.8758268,155.55437,True,0.0,250.72542 +100.651375,1.5310197,0.08646419,243.53624,True,0.0,250.72542 +99.68804,-2.0603795,-0.9298903,397.57352,True,0.0,269.4227 +98.007385,-0.40168205,2.3268406,106.020935,True,0.0,269.4227 +4.878714,0.8459749,1.108626,6.7311306,False,0.0,269.4227 +2.3361301,0.089797996,-1.9917226,2.3455553,False,0.0,269.4227 +97.5078,-0.34559098,1.415748,103.38881,True,0.0,159.92671 +60.45096,-1.0021183,-2.0554142,93.431404,True,0.0,159.92671 +118.63826,1.7507005,-1.0723915,351.8981,True,0.0,228.1449 +109.290474,1.5962162,1.9713743,280.71194,True,0.0,228.1449 +2.468628,0.4687981,-2.9185793,2.7448997,False,0.0,228.1449 +2.2543454,0.15392442,-2.7959597,2.281104,False,0.0,228.1449 +52.988735,1.6040827,-1.2980161,137.09164,True,0.0,102.57341 +50.606342,1.1795678,1.3286246,90.0889,True,0.0,102.57341 +2.3074007,2.2812014,0.90955895,11.410782,False,0.0,102.57341 +1.9350948,0.2650849,0.7987013,2.0034835,False,0.0,102.57341 +2.077366,-2.2325988,2.6703773,9.796147,False,0.0,102.57341 +87.114296,0.49672267,-2.718735,98.0841,True,0.0,142.38939 +54.550663,1.0119505,0.35253912,84.94823,True,0.0,142.38939 +3.117367,1.972153,1.5882108,11.417806,False,0.0,142.38939 +1.7483342,-0.26253346,3.0113046,1.8089321,False,0.0,142.38939 +167.21138,0.5873992,-3.0655522,196.89754,True,0.0,135.9115 +51.11128,1.776968,2.4424891,155.40523,True,0.0,135.9115 +3.6425364,0.02135214,-0.20603536,3.6433668,False,0.0,135.9115 +3.3773406,1.004963,2.1625142,5.2312717,False,0.0,135.9115 +60.922215,1.0743047,0.8058719,99.59233,True,0.0,87.03755 +32.912468,1.3618321,-2.8953636,68.45019,True,0.0,87.03755 +158.01428,0.9773139,1.0524327,239.67838,True,0.0,328.9459 +137.45482,1.9382902,-2.2112887,487.3332,True,0.0,328.9459 +121.13384,-2.191053,-2.96067,548.5198,True,0.0,285.5627 +99.95729,-0.48786834,-0.8305304,112.090805,True,1.2780148,285.5627 +3.699058,1.2032455,-1.2593656,6.715877,False,0.0,285.5627 +3.3315694,0.5420496,2.1178358,3.8331082,False,0.0,285.5627 +2.2181933,-0.14105086,1.0516319,2.240296,False,0.0,285.5627 +824.763,-0.9414454,-0.9755917,1218.071,True,0.0,1643.7712 +818.7297,-0.90374583,2.162917,1176.4668,True,0.0,1643.7712 +98.899796,2.171565,-2.133698,439.41183,True,3.5789182,91.08701 +55.55187,1.8626654,2.8760715,183.21394,True,0.0,91.08701 +9.880371,2.0884168,-0.017227838,40.489803,False,9.433059,91.08701 +4.662348,0.24886806,1.7553477,4.8074765,False,0.0,91.08701 +4.301376,1.1519208,1.3114687,7.485027,False,1.7187668,91.08701 +2.4185522,-0.38488355,2.4533796,2.5999112,False,5.3650756,91.08701 +2.0336077,0.35838062,-1.9620779,2.1656065,False,0.0,91.08701 +1.9173489,-0.21361908,2.4825497,1.9612628,False,5.3650756,91.08701 +125.58984,-0.18916893,1.3096738,127.84366,True,0.0,210.30888 +74.98663,-1.0014017,-1.8483584,115.83405,True,0.0,210.30888 +2.0673215,0.1480533,1.6093767,2.0900207,False,0.0,210.30888 +227.38542,-1.6839669,-2.6257787,633.55475,True,0.0,472.6796 +228.82527,-1.1406116,0.6081499,394.52963,True,0.0,472.6796 +2.2691953,-0.5817869,-1.707218,2.6641846,False,0.0,472.6796 +75.14138,-0.49868932,-2.7828932,84.68013,True,0.0,37.390114 +45.60917,0.09958964,-2.5846188,45.835533,True,0.0,37.390114 +6.250501,0.15121068,-2.4193578,6.322095,False,0.0,37.390114 +2.7652452,-1.1476321,1.9408959,4.7950883,False,0.0,37.390114 +2.4898744,0.29283717,-0.75827456,2.5973973,False,0.0,37.390114 +1.7542917,0.13134436,-2.0868971,1.7694453,False,0.0,37.390114 +115.07993,-0.1103461,-0.943357,115.781265,True,0.0,217.61328 +102.74324,-0.18868995,2.229838,104.577705,True,1.4864006,217.61328 +4.2413526,-0.059956014,1.8630109,4.248978,False,0.0,217.61328 +2.9290361,0.8037724,1.0450356,3.9272363,False,0.0,217.61328 +133.36678,-1.8792611,1.8869305,446.8699,True,0.0,294.50784 +105.43877,-0.5118883,-1.1460563,119.5571,True,0.0,294.50784 +3.1926744,1.5440401,-1.4440894,7.817248,False,0.0,294.50784 +2.2369044,0.97497106,2.0130029,3.3870018,False,0.0,294.50784 +61.89595,-1.8230622,-0.6979986,196.59135,True,0.0,110.695526 +49.502205,-1.9253674,2.3373868,173.34409,True,0.0,110.695526 +3.0631058,-0.114471495,2.8979437,3.0831966,False,0.0,110.695526 +2.0940146,-0.4411692,2.5368934,2.3011205,False,1.4260696,110.695526 +119.06404,2.0584779,0.43319327,473.97516,True,0.0,238.81897 +119.50387,1.9651945,-2.6922512,434.7807,True,0.0,238.81897 +2.568165,1.1609503,1.5398943,4.5021915,False,0.0,238.81897 +2.1314344,1.1443545,-0.70858616,3.6861482,False,0.0,238.81897 +67.9833,1.1784036,-1.6467988,120.906685,True,0.0,116.49825 +41.11874,2.0729818,1.4966993,166.00249,True,0.0,116.49825 +3.257989,1.018758,-1.8647559,5.100049,False,0.0,116.49825 +131.93077,2.2017028,-0.4295981,603.64984,True,0.0,229.93587 +98.43582,1.8935573,2.555124,334.36154,True,0.0,229.93587 +59.155567,-1.2969426,0.3004425,116.28392,True,0.0,129.37723 +55.89838,-2.2940927,-2.708719,279.94714,True,2.1976717,129.37723 +3.1910067,-0.99164563,-0.8486016,4.8928223,False,0.0,129.37723 +131.27066,0.69612217,-2.515487,164.38194,True,0.0,288.7007 +117.67005,-0.43530226,0.78988767,128.99574,True,0.0,288.7007 +97.40806,1.5789236,1.6497377,246.24414,True,0.0,80.902626 +41.001484,2.1132905,2.88762,172.1297,True,0.0,80.902626 +8.997576,0.13030119,0.7389596,9.074066,False,0.0,80.902626 +2.253152,-0.3538991,2.2844765,2.395728,False,0.0,80.902626 +163.72473,-1.9083792,-2.2436607,564.07043,True,0.0,32.59026 +30.891457,-2.0736146,-1.8130132,124.78991,True,0.0,32.59026 +4.361005,-0.42007524,0.28110906,4.751475,False,0.0,32.59026 +117.18188,-0.44027352,-1.9126059,128.72383,True,0.0,24.335867 +36.78797,-0.32343444,-1.5590338,38.728996,True,0.0,24.335867 +3.001028,1.3171461,1.1163741,6.003034,False,58.801086,24.335867 +1.825319,-2.0162086,2.173471,6.9754186,False,1.4108613,24.335867 +58.17855,1.0589405,0.05909949,93.962364,True,0.0,87.01416 +31.247683,0.6099924,-2.8818755,37.24368,True,0.0,87.01416 +153.62364,-0.9800506,1.8682642,233.49896,True,0.0,304.8715 +151.27478,-0.9715973,-1.2965299,228.47328,True,0.0,304.8715 +56.1845,-2.2821488,-2.3713748,278.107,True,0.0,83.812386 +48.166435,-2.1205878,2.0522268,203.64761,True,0.0,83.812386 +2.2087753,0.4859238,-0.4060291,2.4747171,False,13.998142,83.812386 +128.7059,-0.7772091,-0.8779931,169.57516,True,0.0,206.98042 +79.81725,0.24084534,-2.996319,82.14342,True,0.0,206.98042 +2.1344755,-0.60941297,2.9054182,2.5432503,False,0.0,206.98042 +57.631218,2.1819859,-1.0357349,258.6693,True,0.0,87.33632 +41.156918,1.6348126,-3.0782595,109.54913,True,0.0,87.33632 +20.26349,0.09859695,2.3689647,20.362064,False,5.0879226,87.33632 +133.7939,0.37269554,1.171349,143.19408,True,0.0,142.22598 +71.31115,-0.7101593,0.22641228,90.061745,True,1.8833178,142.22598 +3.6591249,-0.8066201,-0.58744484,4.915462,False,0.0,142.22598 +2.2710168,-1.6490468,-1.7660283,6.1252184,False,0.0,142.22598 +1.8150203,-0.24042335,-1.1937878,1.8677306,False,0.0,142.22598 +63.648766,-2.1123133,1.2152375,266.9525,True,0.0,85.33079 +31.6154,-2.308944,-2.58662,160.65614,True,0.0,85.33079 +4.6099043,1.0968271,0.2275825,7.6722136,False,0.0,85.33079 +2.2006667,-2.1072905,1.3261722,9.185021,False,0.0,85.33079 +150.53128,-0.7829468,-1.1986789,199.07516,True,1.4923301,20.808088 +31.21632,-1.0542554,-1.0641174,50.23157,True,0.0,20.808088 +3.69577,1.3794646,-2.0430398,7.806367,False,0.0,20.808088 +1.6891489,-0.18278854,1.3201311,1.7174462,False,0.0,20.808088 +53.18818,-1.1348672,-2.6189759,91.27691,True,0.0,100.98136 +46.1737,-0.70656955,0.70758516,58.187157,True,0.0,100.98136 +2.2854216,-0.8389559,2.213803,3.138011,False,0.0,100.98136 +100.069305,-1.8303043,0.8960974,320.02905,True,0.0,177.53618 +71.15777,-0.92839456,-2.9245746,104.09068,True,0.0,177.53618 +2.0688446,-1.067442,0.24900308,3.3637536,False,0.0,177.53618 +59.89764,1.1633991,-1.642894,105.216705,True,2.3567295,38.298683 +33.10137,1.9682828,-1.4052213,120.78806,True,0.0,38.298683 +66.183365,0.64948094,-0.36136216,80.63992,True,0.0,133.26987 +65.776024,0.9714278,2.9374518,99.33021,True,0.0,133.26987 +67.899605,0.14823271,-1.6563152,68.64694,True,0.0,117.898026 +51.009193,0.2882465,1.4054112,53.142986,True,0.0,117.898026 +16.469797,0.19964586,-2.8200037,16.79912,True,0.0,117.898026 +139.25426,1.7006166,-0.618068,394.08218,True,0.0,286.06577 +120.28554,0.7869551,2.428725,159.4942,True,0.0,286.06577 +2.9194198,-1.250291,-0.7839207,5.514463,False,0.0,286.06577 +1.5458016,-1.8423177,0.06730418,5.000358,False,0.0,286.06577 +140.62517,0.78558266,-1.4456551,186.29593,True,0.0,228.90227 +93.137695,0.762637,1.6888226,121.561325,True,0.0,228.90227 +87.951004,1.1638777,-3.0854685,154.5563,True,0.0,147.94044 +60.33831,1.6559039,0.40839,163.78024,True,0.0,147.94044 +97.72174,-1.2513644,0.5628971,184.75381,True,0.0,195.50876 +98.45113,-1.3505433,-2.3864994,202.74146,True,0.0,195.50876 +1.9655639,0.36016196,-2.0926392,2.094431,False,0.0,195.50876 +85.46699,-2.2881367,-0.7230597,425.54056,True,0.0,93.72666 +39.81622,-1.8357716,-2.4816275,127.9984,True,0.0,93.72666 +124.47637,1.3436123,0.058161106,254.78854,True,0.0,197.0497 +70.18813,0.677822,3.0747046,86.938705,True,0.0,197.0497 +3.489721,0.6313825,1.8963946,4.2087154,False,0.0,197.0497 +1.8659984,0.54803133,1.9998351,2.1532977,False,0.0,197.0497 +201.88531,0.42251775,-2.0105808,220.1754,True,0.0,280.3322 +102.134964,-0.018706253,0.49875128,102.15283,True,1.564429,280.3322 +2.0255315,0.16617788,-2.3167782,2.0535636,False,0.0,280.3322 +2.0206966,-0.80100155,2.196797,2.7043488,False,0.0,280.3322 +84.876366,0.020853084,-0.6308064,84.89482,True,0.0,84.58121 +40.884453,0.36742955,0.91012067,43.675434,True,0.0,84.58121 +2.518279,-0.5947415,2.001726,2.9769428,False,0.0,84.58121 +181.25917,-1.5355318,-2.1312618,440.38144,True,0.0,470.06577 +164.87952,0.114620544,0.9310256,165.96379,True,1.5614265,470.06577 +83.178856,-2.1271803,3.0201309,353.94043,True,3.0101583,129.15948 +49.364967,-1.8180835,-0.30486858,156.052,True,0.0,129.15948 +2.4363647,0.31941032,-0.48519158,2.5617075,False,0.0,129.15948 +2.6384284,-1.1529435,-1.6179763,4.5950985,False,1.1293643,129.15948 +107.725365,0.5654843,-2.191279,125.41306,True,0.0,196.02214 +78.41883,1.301518,0.8156378,154.75914,True,3.8031461,196.02214 +2.2647488,1.5324268,2.3834956,5.486817,False,0.0,196.02214 +93.14163,-0.547323,-0.27715304,107.44426,True,0.0,137.40416 +62.46108,-0.45411494,-2.5144913,69.01289,True,2.7292814,137.40416 +3.1252065,1.1488906,1.6459464,5.4248576,False,1.1520984,137.40416 +2.9706078,-0.41299242,2.8620079,3.2275665,False,8.028775,137.40416 +2.4477797,-0.16890623,0.30582014,2.4827793,False,0.0,137.40416 +2.296449,-0.75992256,0.54856354,2.9920585,False,0.0,137.40416 +2.110911,0.1814548,0.17306568,2.1457582,False,0.0,137.40416 +1.8108195,-0.84743047,2.1899066,2.500884,False,2.8690536,137.40416 +1.6115184,-0.5300261,-2.8389246,1.8432276,False,1.2547742,137.40416 +128.23044,-0.9469936,-0.764712,190.15633,True,0.0,84.00211 +35.993744,-0.76054364,0.55029273,46.915165,True,0.0,84.00211 +89.030495,1.3213146,2.4036226,178.7345,True,0.0,166.50269 +71.74846,0.7417807,-0.6647972,92.40973,True,0.0,166.50269 +89.40615,-1.1919147,-0.64048934,160.79787,True,0.0,168.63109 +78.86804,-1.0075767,2.5368204,122.405495,True,0.0,168.63109 +2.2273006,-1.7834127,-1.3574698,6.8135257,False,0.0,168.63109 +2.1593075,-0.8411328,0.8359084,2.969279,False,3.2323482,168.63109 +51.087833,-1.6851411,1.2027369,142.50006,True,0.0,93.01932 +41.580914,-2.1107223,-2.2730994,174.12738,True,1.3807296,93.01932 +5.904295,1.5633122,2.7755182,14.713653,False,0.0,93.01932 +151.71068,-1.9557983,1.608458,546.9937,True,0.0,255.54733 +111.21951,-1.6603037,-1.0622612,303.1282,True,0.0,255.54733 +2.3198092,0.3133922,-2.6988683,2.4346642,False,0.0,255.54733 +1.8049859,-0.24822217,-1.0687478,1.8608783,False,0.0,255.54733 +244.64896,0.9852345,-0.7893017,373.3088,True,0.0,531.82996 +237.49686,1.8860996,2.3484132,800.9894,True,0.0,531.82996 +2.9189453,-0.370501,0.25502965,3.1215909,False,0.0,531.82996 +3.1554923,1.8862419,2.2384272,10.643759,False,101.03788,531.82996 +61.20339,-1.9946194,-1.9968572,229.06807,True,1.8955259,94.84642 +43.65562,-1.8752384,0.3166592,145.71574,True,1.0007983,94.84642 +2.6914291,-2.0032225,-1.9261118,10.157192,False,1.8955259,94.84642 +2.5256133,-2.1370082,2.3765523,10.850103,False,0.0,94.84642 +2.043009,-0.8496679,-2.4630203,2.8259177,False,0.0,94.84642 +126.7433,2.3061833,-1.3211447,642.3153,True,0.0,242.59148 +114.5851,2.0661223,1.7450714,459.53372,True,0.0,242.59148 +2.9694643,-1.2415736,1.2404236,5.567723,False,0.0,242.59148 +2.4164207,0.71554005,1.794648,3.0618694,False,0.0,242.59148 +1.9084027,0.64253783,2.1413882,2.3160908,False,3.3732493,242.59148 +58.61675,-0.82723624,-0.34825718,79.84321,True,0.0,89.74821 +32.792046,-1.2782413,2.6651063,63.433697,True,0.0,89.74821 +117.136024,-0.238874,-0.26500514,120.49388,True,0.0,15.114989 +38.142956,-0.18201627,-0.045706,38.77654,True,0.0,15.114989 +3.9313745,0.39501217,0.35989234,4.242099,False,0.0,15.114989 +2.3307447,-0.030766634,-2.6926749,2.331848,False,0.0,15.114989 +1.9201663,0.6433337,2.6469343,2.331419,False,0.0,15.114989 +120.49668,1.7562364,2.004698,359.27872,True,0.0,91.21112 +50.240005,1.9467087,-3.0451179,179.5662,True,0.0,91.21112 +55.418934,-1.8018599,-1.4350389,172.5164,True,0.0,91.618095 +38.03507,-2.1677556,1.3125936,168.36382,True,0.0,91.618095 +9.465788,1.2566849,2.3944252,17.977186,False,0.0,91.618095 +2.3661783,-1.1739783,1.3538564,4.1928334,False,0.0,91.618095 +132.2404,-0.008233433,0.87669796,132.24489,True,0.0,133.75307 +52.222027,-0.6125187,-0.80136764,62.328472,True,0.0,133.75307 +6.494201,-0.8310491,-1.5392402,8.868864,False,6.4386525,133.75307 +1.6266911,0.6965991,-1.9655464,2.0375874,False,0.0,133.75307 +84.815,-2.258306,0.6909986,410.13977,True,0.0,33.84847 +32.57032,-2.2898357,0.0361234,162.43793,True,0.0,33.84847 +2.3559153,0.52513283,-2.9771547,2.688288,False,2.7219212,33.84847 +112.1009,0.5588521,1.9445244,130.0667,True,0.0,247.06174 +93.3245,-0.83210164,-1.8675734,127.54087,True,0.0,247.06174 +3.9819462,-0.8660192,1.9270921,5.5708437,False,1.3115054,247.06174 +2.559081,-0.10876884,2.3029072,2.5742338,False,0.0,247.06174 +82.206924,1.7820671,2.61682,251.15926,True,1.342388,178.6419 +84.67683,1.035021,-0.52551407,134.22903,True,0.0,178.6419 +3.1706655,0.8841767,0.24036695,4.492903,False,0.0,178.6419 +62.31206,2.039565,-0.8961081,243.55762,True,0.0,87.73424 +31.283157,2.2247384,2.5392966,146.39201,True,0.0,87.73424 +6.6894736,-0.34030318,0.8211155,7.0805674,False,1.3074193,87.73424 +4.4522276,1.6665381,1.47775,12.205134,False,1.2266253,87.73424 +4.5828557,-1.3373964,2.5156739,9.329872,False,0.0,87.73424 +2.7952487,-1.7500149,-2.0432649,8.28576,False,0.0,87.73424 +1.9681461,0.15634404,-0.7757603,1.9922493,False,0.0,87.73424 +151.33696,-0.44565675,2.4994543,166.61584,True,0.0,218.03104 +80.78818,-0.6981569,-1.0647256,101.29004,True,0.0,218.03104 +2.5887222,1.0000037,-2.4680882,3.9946182,False,0.0,218.03104 +87.16969,-0.67226857,1.8052832,107.62078,True,0.0,96.05612 +44.94043,0.32442212,0.6044132,47.32623,True,0.0,96.05612 +3.2017221,-0.7598656,2.6970863,4.171393,False,0.0,96.05612 +2.191315,-0.2064615,-1.4758176,2.238185,False,0.0,96.05612 +237.26163,-2.198262,1.1067291,1081.953,True,0.0,412.23962 +168.40417,-1.7001284,-2.0426123,476.35736,True,0.0,412.23962 +5.5756974,-2.2078185,1.0263042,25.664356,False,0.0,412.23962 +3.0269835,0.23011504,-1.8669751,3.1074815,False,0.0,412.23962 +2.6120625,0.90178293,-2.8208787,3.7480977,False,2.4913857,412.23962 +2.7130618,1.604805,-1.8150142,7.0238695,False,0.0,412.23962 +1.8402956,0.28546295,0.30842325,1.915788,False,0.0,412.23962 +88.35347,0.20699827,-2.77844,90.253136,True,1.594186,193.01483 +88.430916,1.0579647,0.38996783,142.71263,True,0.0,193.01483 +89.32813,0.36618516,1.4175426,95.38443,True,0.0,181.0186 +81.590355,1.063084,-1.8226676,132.20392,True,0.0,181.0186 +99.1496,2.1670425,-2.3499167,438.58502,True,0.0,150.64165 +75.449005,1.8149525,1.8910815,237.80132,True,0.0,150.64165 +138.8913,-0.5141259,2.353602,157.65546,True,0.0,63.355675 +49.220764,-0.3004776,3.1070473,51.459526,True,0.0,63.355675 +100.147514,1.2255818,1.3150649,185.25958,True,0.0,203.90025 +87.57789,2.1653543,-2.2887478,386.76144,True,0.0,203.90025 +1.9242498,0.93610805,-1.8728766,2.8307528,False,4.9164324,203.90025 +119.746,0.877413,-2.9155147,168.87347,True,0.0,178.66415 +70.61012,0.6091587,0.77816135,84.121086,True,0.0,178.66415 +105.074394,1.6245526,0.009358492,277.03638,True,0.0,113.64439 +41.77897,2.158185,1.9113817,183.2206,True,0.0,113.64439 +3.6920898,0.71971893,-1.6646532,4.690329,False,0.0,113.64439 +3.2564688,-0.9292781,0.48118907,4.766687,False,0.0,113.64439 +1.9244683,-0.51146305,-0.9317471,2.1817188,False,1.4247856,113.64439 +87.84915,-1.5989628,-1.268933,226.21172,True,0.0,230.73589 +86.930725,-0.03752585,1.9367718,86.99194,True,0.0,230.73589 +4.39175,-0.39354935,-2.9067292,4.736262,False,0.0,230.73589 +120.61053,-1.6382875,-0.09680533,322.07,True,0.0,101.25764 +61.743782,-1.2014488,-1.2467571,111.93187,True,0.0,101.25764 +5.693525,-0.09652312,-2.517712,5.720068,False,0.0,101.25764 +90.497635,-0.29038993,-0.7468012,94.34019,True,3.7725458,57.91899 +79.91857,-0.87738335,-0.4147367,112.70393,True,0.0,57.91899 +2.3463569,-2.0790946,1.0037392,9.528871,False,0.0,57.91899 +1.955795,-0.5500297,-0.5882868,2.2591753,False,2.643523,57.91899 +59.812237,-0.48839802,-0.23425251,67.08875,True,0.0,74.90536 +54.437866,-1.2727214,0.85620624,104.8099,True,0.0,74.90536 +4.1352725,-0.8373371,1.5095718,5.671668,False,0.0,74.90536 +73.02378,-0.36355355,-0.7485506,77.90299,True,0.0,112.30056 +41.32692,-0.8500137,2.1425805,57.17761,True,0.0,112.30056 +1.8860587,0.6877792,2.2167952,2.350014,False,0.0,112.30056 +72.21529,-0.3999382,2.7103817,78.06812,True,0.0,141.18346 +49.93288,-1.6284201,-0.0025141875,132.12383,True,0.0,141.18346 +129.41986,-0.09587825,-2.2572548,130.01518,True,0.0,78.30505 +45.994102,0.8768416,-2.174105,64.83771,True,0.0,78.30505 +2.7373984,0.1115326,2.6912177,2.754442,False,0.0,78.30505 +68.93908,0.31602457,2.5922778,72.41035,True,0.0,112.99058 +49.227547,0.37403065,-0.05287233,52.71132,True,1.0601827,112.99058 +2.3091521,0.16605909,0.21370296,2.3410635,False,0.0,112.99058 +2.0570045,0.64652735,-0.6683426,2.5021012,False,0.0,112.99058 +67.34339,-0.5440858,0.5875075,77.55954,True,0.0,69.495476 +36.24937,-1.7485595,-0.007367892,107.30437,True,0.0,69.495476 +3.3118558,-2.3700712,-1.6509552,17.870157,False,0.0,69.495476 +115.91121,-1.5930954,-0.17162855,296.8629,True,0.0,101.42677 +54.738007,-1.5221269,-1.5494105,131.37689,True,0.0,101.42677 +3.3139942,0.7968466,2.6064372,4.4229927,False,1.654781,101.42677 +1.8491524,1.8511323,2.0938826,6.032013,False,0.0,101.42677 +200.45639,-0.34836543,0.552033,212.74344,True,1.0559516,313.83847 +120.96411,0.90556556,2.2595,174.04579,True,0.0,313.83847 +2.2866592,-0.02503368,1.9891226,2.2873757,False,0.0,313.83847 +2.3430533,2.3617554,-0.09337397,12.539803,False,0.0,313.83847 +100.7161,-0.77269167,-0.028420083,132.30852,True,0.0,144.17743 +60.86479,0.54598314,-1.2866827,70.16422,True,1.4829415,144.17743 +4.5251236,-1.311943,0.652238,9.011056,False,0.0,144.17743 +3.713351,-1.5126702,-0.9997237,8.836206,False,0.0,144.17743 +84.39589,-0.7624345,-0.953876,110.137375,True,1.9576825,131.70134 +48.12528,-1.2861202,2.2877715,93.725426,True,0.0,131.70134 +3.3741567,1.452522,-1.1628352,7.605112,False,0.0,131.70134 +58.484985,-0.44930977,-3.0641558,64.48843,True,0.0,76.67805 +32.134663,-0.16542411,1.0971167,32.57535,True,1.6292872,76.67805 +246.9168,-1.8896406,-0.030011829,835.58075,True,0.0,154.6581 +63.423653,-1.0739197,-0.97237915,103.64997,True,0.0,154.6581 +1.7038286,-1.2049111,-2.656041,3.0977147,False,0.0,154.6581 +50.856873,2.3355517,-1.3509479,265.26733,True,0.0,100.01187 +48.256023,2.0591233,1.8252693,192.21967,True,1.7768512,100.01187 +2.129422,-1.6915905,-1.4928873,5.975513,False,0.0,100.01187 +135.3517,2.1317325,1.7230022,578.4992,True,0.0,87.38027 +32.304714,2.248182,-3.123466,154.67648,True,0.0,87.38027 +9.288971,-0.3849068,-1.7305776,9.985603,False,14.55747,87.38027 +2.3935926,0.7375813,-0.54989725,3.074739,False,0.0,87.38027 +82.56602,1.6897305,-0.08896366,231.29176,True,0.0,198.89734 +74.816574,0.26317656,3.0338933,77.42253,True,0.0,198.89734 +2.569852,-1.2774924,-1.6788964,4.967996,False,0.0,198.89734 +2.3683755,0.124957025,-0.112797685,2.3868897,False,0.0,198.89734 +1.9955989,0.39080557,1.4864278,2.1499412,False,0.0,198.89734 +1.748456,-0.65635496,2.8515239,2.1387913,False,0.0,198.89734 +1.6806984,1.821581,2.3884788,5.3306656,False,0.0,198.89734 +128.03867,-2.2538185,0.54668844,616.44415,True,0.0,254.56384 +97.539085,-1.2035788,-2.7339966,177.13774,True,0.0,254.56384 +54.61509,1.3012992,1.7813061,107.76226,True,0.0,117.06592 +50.71263,2.2485259,-1.4958156,242.89613,True,0.0,117.06592 +2.4272485,-1.7411382,-0.80287665,7.1350822,False,0.0,117.06592 +2.5006456,0.44368964,-0.7229781,2.7508495,False,0.0,117.06592 +64.77451,-1.6922313,1.4179894,181.87695,True,0.0,84.15089 +31.024729,-0.79793036,-2.9532042,41.43662,True,0.0,84.15089 +3.2202458,-0.6817425,0.5953949,3.998024,False,0.0,84.15089 +110.06748,-2.3022258,2.821214,555.6451,True,0.0,29.424692 +87.408295,-2.0896018,2.609656,358.61145,True,0.0,29.424692 +3.897496,0.6838252,2.088427,4.844832,False,0.0,29.424692 +2.0534625,-0.4487177,-1.4495384,2.2636843,False,0.0,29.424692 +1.9121095,1.2402776,-1.8062651,3.5812633,False,0.0,29.424692 +141.26903,1.3420401,-2.5729957,288.76483,True,0.0,271.92117 +108.50012,0.43585035,0.8034855,118.96995,True,0.0,271.92117 +6.2627335,1.2882924,-2.6997674,12.219625,False,23.201647,271.92117 +1.9518888,-2.3413,-2.8480532,10.238578,False,0.0,271.92117 +57.424603,1.8323838,1.720611,184.01128,True,0.0,92.67454 +36.42352,2.1995401,-1.5946468,166.30466,True,0.0,92.67454 +89.82767,2.0723166,1.1504563,362.41406,True,0.0,193.4973 +90.764175,1.3203515,-1.9726981,182.0629,True,0.0,193.4973 +5.715519,1.1759713,1.4594947,10.1445,False,0.0,193.4973 +133.67133,1.598128,-1.9883565,343.93924,True,0.0,233.28162 +102.2899,1.662477,1.3085737,279.3549,True,0.0,233.28162 +95.07776,0.35378206,1.290494,101.090126,True,1.9643438,220.8805 +82.47947,1.7492815,-1.5988871,244.31938,True,0.0,220.8805 +9.448302,0.45519057,-2.8048558,10.444158,False,2.9228415,220.8805 +2.4837468,1.2854339,2.2983606,4.8343244,False,0.0,220.8805 +117.00258,0.2830247,-1.2881776,121.72007,True,0.0,81.94015 +73.5141,-0.50019664,-1.6579131,82.903946,True,0.0,81.94015 +2.8898466,-0.8802154,0.77067876,4.083516,False,0.0,81.94015 +2.30751,0.2405258,-1.545375,2.3745801,False,0.0,81.94015 +1.8136698,0.20701815,-2.0336306,1.8526726,False,0.0,81.94015 +1.8302445,-0.87200546,-2.6736863,2.5713239,False,0.0,81.94015 +137.31595,0.12975581,-3.0692656,138.47354,True,1.3985368,223.37079 +88.7026,0.798906,-0.5443472,118.54785,True,1.0977409,223.37079 +2.3273902,0.29253194,-2.1838071,2.4276855,False,0.0,223.37079 +92.51722,-2.1260612,1.1635898,393.24878,True,0.0,178.33028 +81.79352,-1.6794698,-1.9612027,226.94366,True,0.0,178.33028 +196.15048,-0.57343745,1.655182,229.2941,True,0.0,350.0256 +161.40427,-0.7412531,-1.887039,207.81444,True,0.0,350.0256 +2.3683531,0.86122155,-1.8720202,3.3023067,False,0.0,350.0256 +1.752347,1.1156379,-1.3905922,2.9607832,False,0.0,350.0256 +61.536,1.7203218,-2.4757068,177.3878,True,0.0,121.19325 +65.12363,1.562087,0.056536682,162.10774,True,0.0,121.19325 +5.115821,0.30844283,1.3402001,5.3611083,False,0.0,121.19325 +2.3347538,0.2751511,2.0058494,2.4236925,False,0.0,121.19325 +1.9883256,-2.1029022,1.4072416,8.263487,False,2.0646527,121.19325 +130.44656,0.72762764,-2.2843456,166.52922,True,0.0,269.74033 +97.187744,1.9948001,1.1638595,363.81134,True,0.0,269.74033 +9.914227,1.739828,1.0236349,29.107744,False,4.515074,269.74033 +127.31608,-0.10852557,-1.7155004,128.06656,True,0.0,211.94899 +88.3272,-0.0831405,1.3490199,88.63265,True,0.0,211.94899 +148.05055,-2.0507848,-0.70154214,584.9946,True,0.0,63.19019 +43.651165,-2.359398,-1.4406794,233.07655,True,0.0,63.19019 +96.87083,1.9929373,-1.8843324,361.9747,True,0.0,207.47198 +88.93092,0.49073854,-0.17186886,99.85592,True,0.0,207.47198 +3.9314985,1.1592534,2.801806,6.882624,False,0.0,207.47198 +3.8455458,0.68506664,0.85641605,4.783783,False,0.0,207.47198 +2.1822863,0.48451644,0.9789974,2.4434896,False,0.0,207.47198 +60.13289,-0.61456263,-1.6847385,71.85054,True,0.0,93.48755 +34.17895,-1.1120397,1.4711444,57.58199,True,0.0,93.48755 +62.852257,0.599491,1.9432613,74.48881,True,0.0,103.021385 +37.53437,1.3267604,-0.9659326,75.70963,True,0.0,103.021385 +3.2277727,-1.299106,-1.0096487,6.356765,False,0.0,103.021385 +1.8057704,0.37793618,-0.45942563,1.936277,False,0.0,103.021385 +199.0424,0.25223926,1.387686,205.40805,True,3.5285647,117.55502 +64.578186,0.37604982,2.4690533,69.19836,True,0.0,117.55502 +182.17467,1.12942,-0.5297712,311.25293,True,0.0,255.05016 +104.758995,1.1826625,-2.8799877,186.96925,True,0.0,255.05016 +61.330257,-0.93378836,-0.969735,90.069336,True,35.418564,255.05016 +4.6290784,0.25262445,1.8963983,4.777578,False,0.0,255.05016 +3.7518435,0.46581152,3.0005188,4.166295,False,4.1150117,255.05016 +51.806606,1.859563,-2.2965193,170.3575,True,0.0,92.17809 +36.546043,1.1638799,0.71832806,64.22247,True,0.0,92.17809 +3.3943045,0.7181321,-1.4275041,4.3078165,False,0.0,92.17809 +2.1035292,-0.6339006,-2.0334482,2.5405028,False,0.0,92.17809 +142.60657,2.2775135,-0.52490455,702.6895,True,0.0,242.6864 +102.14994,1.8747835,2.2666407,340.81284,True,0.0,242.6864 +2.264218,2.0921323,-1.0415007,9.312272,False,0.0,242.6864 +1.7963996,0.39359266,-0.45057347,1.9373499,False,0.0,242.6864 +123.04416,0.63636714,-1.5724285,148.81053,True,0.0,259.6954 +98.13162,-0.62093306,2.0369725,117.66502,True,0.0,259.6954 +1.8163967,-0.073094875,-0.36029196,1.8212513,False,0.0,259.6954 +151.36084,-1.1148462,3.1120896,255.5777,True,0.0,294.82654 +113.09951,-2.2317414,0.5300684,532.8919,True,0.0,294.82654 +7.565125,-0.299303,1.9324745,7.9065127,False,0.0,294.82654 +2.6516185,0.35870463,2.8418636,2.824046,False,0.0,294.82654 +2.332317,0.438016,-1.5620233,2.559654,False,0.0,294.82654 +133.65857,0.55556303,-2.2933362,154.82147,True,0.0,259.03284 +119.74569,1.009359,0.717075,186.10242,True,0.0,259.03284 +1.7221515,-0.3988752,-0.16384827,1.8609759,False,0.0,259.03284 +179.73062,0.17841703,0.4159592,182.59888,True,0.0,448.0231 +176.46255,-1.2291064,-2.6843448,327.40225,True,0.0,448.0231 +182.64244,1.08816,-3.1058102,301.87527,True,0.0,360.40326 +158.05722,0.3953301,0.028406298,170.56998,True,0.0,360.40326 +2.8483717,-1.405459,-0.24701118,6.156261,False,0.0,360.40326 +2.6449816,1.7544726,2.1018612,7.873313,False,0.0,360.40326 +315.0024,-0.8918643,0.58246356,448.80984,True,6.294477,503.5192 +200.45187,-1.0233798,-2.5131624,314.90607,True,10.307909,503.5192 +3.6190042,0.63162297,1.0927062,4.365222,False,0.0,503.5192 +704.1484,0.61612386,-1.188567,842.0805,True,0.0,1414.4655 +694.827,0.91377765,1.9519683,1005.6689,True,0.0,1414.4655 +3.9960115,0.98187095,1.9718431,6.0820403,False,1443.3434,1414.4655 +2.0870664,0.9846031,1.8957893,3.1831276,False,1443.3434,1414.4655 +2.2859266,-0.20892137,1.2474842,2.3359964,False,0.0,1414.4655 +1.7353233,0.11599067,1.4614551,1.7470099,False,0.0,1414.4655 +84.502396,1.2552838,2.2989652,160.29382,True,2.5604613,47.421894 +52.994366,0.72235644,2.7628796,67.43233,True,0.0,47.421894 +3.119587,1.2606255,2.404144,5.944535,False,2.5604613,47.421894 +2.6958244,0.8320305,2.4034233,3.6840394,False,0.0,47.421894 +1.9385041,2.216586,2.5455093,8.99944,False,0.0,47.421894 +162.08276,0.6581935,-0.34163758,198.47733,True,0.0,78.126625 +36.739017,1.0378706,0.63424724,58.367405,True,0.0,78.126625 +155.5695,0.09205055,1.9577073,156.22906,True,6.4354744,58.778965 +30.851614,0.26050624,1.1001626,31.904396,True,0.0,58.778965 +2.3678205,-2.1493473,1.2326326,10.295067,False,0.0,58.778965 +103.70286,-0.5847924,-2.61141,121.94626,True,3.3510377,191.14027 +87.866974,-0.69152576,0.48632035,109.72701,True,0.0,191.14027 +2.2585845,-0.29465446,-1.4023753,2.3573425,False,0.0,191.14027 +218.96205,1.583231,-2.250205,555.72327,True,0.0,8.428004 +46.19056,1.5835004,-2.3340356,117.26016,True,0.0,8.428004 +101.86232,-0.29052576,-0.6581442,106.1915,True,0.0,17.03873 +32.061153,-0.09336712,-0.8819899,32.201,True,0.0,17.03873 +1.7957265,0.49898082,-1.046914,2.0239553,False,0.0,17.03873 +128.77242,0.19993119,0.9364794,131.35468,True,0.0,247.54326 +88.41444,1.3167531,-2.222261,176.79753,True,0.0,247.54326 +2.513882,-0.64722574,-2.4293468,3.0590549,False,0.0,247.54326 +159.4322,1.3046172,-2.4457858,315.48077,True,0.0,248.52646 +100.07324,0.58817536,1.535335,117.88825,True,2.445652,248.52646 +2.854501,-1.1803726,-2.5807133,5.0849385,False,0.0,248.52646 +129.56174,-1.8050451,2.7137938,404.5379,True,3.478752,74.670105 +40.239586,-1.5225661,1.6728829,96.617744,True,0.0,74.670105 +2.3360345,1.1762229,-1.4483407,4.1471,False,1.4866536,74.670105 +135.40369,0.34017554,2.8987114,143.31395,True,1.576678,221.15134 +87.75906,-0.32620868,0.35320607,92.46993,True,0.0,221.15134 +5.18457,0.7281358,-0.45771495,6.620758,False,0.0,221.15134 +2.6345084,-0.7879038,1.468709,3.4954388,False,0.0,221.15134 +2.247851,0.49344796,-0.6341434,2.5271146,False,0.0,221.15134 +102.01436,0.014819473,-2.707653,102.02556,True,0.0,206.96742 +90.23381,1.0625718,1.1926328,146.15033,True,3.0804548,206.96742 +2.3955474,0.045431133,0.402047,2.39802,False,6.3672543,206.96742 +2.3361394,0.28423512,-0.8824387,2.4311442,False,6.472457,206.96742 +2.1726034,-0.11602873,1.359401,2.1872442,False,0.0,206.96742 +52.094433,-2.144534,-2.1291046,225.44348,True,0.0,94.94896 +39.49081,-1.3359026,1.5749284,80.29169,True,0.0,94.94896 +2.9051688,0.8957672,2.7482193,4.150772,False,0.0,94.94896 +126.446625,0.6729605,-0.058288928,156.17595,True,0.0,162.17159 +90.2441,2.073726,-0.05200468,364.59167,True,0.0,162.17159 +333.1482,-1.2787924,-1.2755272,644.7537,True,11.187315,601.2404 +274.39255,-1.2184227,1.6438096,504.54556,True,7.0907307,601.2404 +3.6117883,1.9586942,1.7405056,13.058611,False,6.798943,601.2404 +128.26677,0.06018802,-0.74619716,128.49916,True,1.9562107,200.36964 +79.561844,0.234879,2.0834901,81.766594,True,0.0,200.36964 +2.0480888,0.2904717,0.49504137,2.1351006,False,0.0,200.36964 +201.14925,-1.6300503,-2.5276423,533.05066,True,0.0,67.66969 +42.45645,-1.9884491,-1.8788518,157.96146,True,0.0,67.66969 +5.9195094,-0.4714698,0.08455019,6.589692,False,0.0,67.66969 +2.5871787,0.39421916,-2.6147935,2.7908309,False,0.0,67.66969 +2.524985,-0.35797533,-3.016604,2.688504,False,0.0,67.66969 +2.1177335,1.3826689,-2.3499,4.485817,False,0.0,67.66969 +227.13867,0.9766569,-1.0819263,344.35715,True,0.0,143.79662 +55.53727,2.1539464,-0.7884915,242.5543,True,0.0,143.79662 +180.31163,-0.89233476,3.1118393,256.99094,True,7.7381487,104.572754 +42.565445,-1.1324862,1.8631567,72.90596,True,0.0,104.572754 +383.3835,-1.3058702,-0.8023779,759.4513,True,0.0,708.4529 +332.09064,-1.187012,2.0700674,594.8417,True,14.409106,708.4529 +56.151436,-0.27551636,0.34016162,58.29616,True,0.0,100.70325 +48.210236,-1.9916651,0.28233936,179.92525,True,0.0,100.70325 +3.5009277,-2.0663073,-1.9152185,14.042686,False,21.061121,100.70325 +2.4101324,-2.1487622,-2.0402365,10.47307,False,30.724524,100.70325 +2.150129,-1.9918613,-2.0775669,8.026007,False,29.310617,100.70325 +138.63281,0.0075380057,2.0826085,138.63675,True,0.0,156.05695 +56.3679,0.08602495,-2.0412102,56.5766,True,0.0,156.05695 +2.891433,2.3503277,-0.9426388,15.301962,False,0.0,156.05695 +2.193427,0.25998795,0.5773516,2.2679765,False,0.0,156.05695 +156.55197,0.92904305,1.474137,229.1151,True,0.0,336.2956 +140.06548,1.9732643,-1.856116,513.5588,True,0.0,336.2956 +4.6981254,-1.9919842,-2.3834913,17.53925,False,0.0,336.2956 +2.3221455,1.9724294,-0.40265328,8.507455,False,0.0,336.2956 +2.2459495,0.66978663,0.84779847,2.7688494,False,0.0,336.2956 +1.634535,0.10603434,1.5899726,1.6437323,False,0.0,336.2956 +69.5595,-0.008784149,-3.0381546,69.56219,True,0.0,11.57052 +36.774506,0.21907431,-3.0519903,37.660507,True,0.0,11.57052 +103.56503,1.5412914,2.649108,252.9432,True,0.0,3.8507304 +48.912045,1.54112,2.5949638,119.44221,True,0.0,3.8507304 +56.036263,0.946152,1.2101238,83.04605,True,0.0,26.82874 +60.202324,1.3665742,1.025507,125.72867,True,0.0,26.82874 +3.3361435,1.607242,-1.9347296,8.656412,False,0.0,26.82874 +59.717182,1.7603765,-1.5925503,178.75163,True,0.0,83.13665 +30.77237,2.0920749,2.149492,126.5535,True,0.0,83.13665 +12.45007,-0.5789468,0.9926806,14.595509,True,0.0,83.13665 +2.1722586,1.7728841,-1.6967064,6.579394,False,8.002028,83.13665 +1.7496476,-0.8803209,-1.4878479,2.472535,False,0.0,83.13665 +204.27745,-0.13618363,0.36611402,206.17465,True,0.0,29.79474 +64.93116,-0.2985542,0.5677108,67.84652,True,0.0,29.79474 +171.54759,2.087742,3.0662072,702.5429,True,0.0,313.66086 +153.71675,2.2135017,0.4649601,711.47876,True,0.0,313.66086 +8.0204115,0.42348498,-1.6907257,8.750413,False,12.7665825,313.66086 +7.121886,0.43911293,-1.547886,7.8196115,False,12.7665825,313.66086 +50.563152,0.04057483,2.215277,50.60478,True,2.116824,7.712295 +45.022594,-0.10064768,2.2937253,45.250824,True,2.116824,7.712295 +3.771804,-1.3172393,0.1141583,7.545447,False,1.5175525,7.712295 +2.599339,0.6661711,2.3213806,3.1977599,False,0.0,7.712295 +3.394251,-1.2283806,-0.07596387,6.293722,False,1.5175525,7.712295 +1.7277571,0.36468273,1.2679114,1.8439263,False,0.0,7.712295 +70.00352,-2.3551157,-2.702884,372.21674,True,0.0,119.70968 +50.639454,-2.135085,0.51670414,217.142,True,0.0,119.70968 +101.29714,-1.0135075,0.18099312,157.93196,True,0.0,202.0425 +100.17906,-1.1662118,-2.9874446,176.38303,True,1.2736427,202.0425 +2.1756358,-0.100832224,2.6301758,2.186705,False,1.4861151,202.0425 +172.88028,1.2165235,1.2324036,317.3815,True,0.0,292.00577 +125.97307,1.2184656,-2.20135,231.64418,True,1.3724663,292.00577 +2.2445285,-0.53738815,-1.8683159,2.5764978,False,0.0,292.00577 +132.4809,0.13202389,1.380335,133.63716,True,0.0,276.072 +129.79874,-0.5150454,-1.7972592,147.39867,True,0.0,276.072 +3.2789955,-0.51823384,-1.8721379,3.7292526,False,0.0,276.072 +120.65067,-1.8201245,0.6466639,382.13882,True,0.0,80.71845 +65.2266,-1.1888741,1.3034174,117.01478,True,0.0,80.71845 +5.3514075,-1.1530411,-0.9016487,9.320781,False,0.0,80.71845 +4.101042,-1.5499994,2.811903,10.096182,False,21.826109,80.71845 +3.4225361,-0.3299563,-1.8141456,3.6105404,False,0.0,80.71845 +2.2895293,-0.64651644,1.8032048,2.7849228,False,0.0,80.71845 +2.4207928,0.83574694,1.42551,3.316591,False,0.0,80.71845 +2.1279597,-0.34999326,0.21710561,2.259628,False,0.0,80.71845 +111.92212,2.2271965,1.6585774,525.0076,True,0.0,224.12888 +112.240105,2.2317994,-1.4486387,528.87256,True,0.0,224.12888 +4.165441,-0.46179652,1.8092631,4.617543,False,0.0,224.12888 +2.4598176,-1.2579453,1.6704478,4.6766334,False,0.0,224.12888 +79.143295,1.6806384,0.58836186,219.82991,True,0.0,65.64583 +73.41002,1.5740716,-0.29466286,184.75314,True,3.7932525,65.64583 +49.488724,1.5734787,-0.3922074,124.48198,False,77.71243,65.64583 +3.2414885,1.0368019,-2.8937426,5.1454906,False,0.0,65.64583 +2.0302544,1.8962387,-1.0519023,6.913956,False,0.0,65.64583 +125.845856,0.79713273,1.2625858,167.99088,True,0.0,287.83713 +112.94881,2.066029,-1.7822566,452.9306,True,2.330867,287.83713 +5.792232,0.58918685,-0.6521848,6.827015,False,0.0,287.83713 +95.27438,0.21358567,-2.393945,97.45581,True,1.0807682,128.24461 +49.070168,-0.105922475,-0.03722805,49.3457,True,1.3131566,128.24461 +59.86292,-1.0134375,-1.8749329,93.32702,True,0.0,107.92228 +46.19716,-2.2954156,2.6715097,231.66216,True,0.0,107.92228 +3.3875122,0.34459305,-1.2191774,3.5906343,False,0.0,107.92228 +102.0351,-0.7804152,-0.78687596,134.71663,True,0.0,72.34909 +59.639362,-0.33631855,0.049497906,63.044186,True,2.8862004,72.34909 +78.18054,0.9403489,-0.37359798,115.369705,True,0.0,88.26843 +36.562893,1.0851135,1.5572611,60.285618,True,0.0,88.26843 +1.8050983,0.49766263,1.4382966,2.0332828,False,0.0,88.26843 +72.74721,-0.03879667,1.9930296,72.80196,True,0.0,145.68723 +54.612995,-1.1420573,-1.0899305,94.27212,True,0.0,145.68723 +2.8456142,-1.2812155,3.005028,5.5186615,False,0.0,145.68723 +2.1078992,0.75309634,-2.5573409,2.734442,False,0.0,145.68723 +129.4301,-0.43374908,-0.8296627,141.79756,True,0.0,26.151154 +36.575367,-0.76795816,-0.6513127,47.901302,True,0.0,26.151154 +3.9812741,-0.56978846,-0.7588257,4.6452274,False,0.0,26.151154 +2.0311093,0.7858483,-2.820305,2.6912205,False,0.0,26.151154 +1.6493549,0.65216655,3.0711584,2.0127172,False,0.0,26.151154 +1.8797776,0.025332693,-0.30396852,1.8803807,False,0.0,26.151154 +157.14412,-0.42649865,3.065456,171.65443,True,0.0,214.26834 +114.959984,-0.054259907,-1.4449527,115.12926,True,0.0,214.26834 +2.02174,-1.3107985,1.8048716,4.021988,False,0.0,214.26834 +210.29858,-0.946682,1.0866028,311.7856,True,1.070128,7.174717 +30.053568,-0.9467263,0.996337,44.55844,True,1.070128,7.174717 +84.50413,-1.3114886,-2.2041266,168.21027,True,1.4118519,90.30186 +32.118095,-1.7535806,-0.21863994,95.52559,True,0.0,90.30186 +52.198803,0.31268594,-1.9660283,54.77147,True,0.0,112.692535 +46.052887,-0.76679206,1.1725296,60.268253,True,0.0,112.692535 +5.1547103,-1.7763826,1.5173874,15.664375,False,1.1994305,112.692535 +4.5869412,1.2454562,-2.9907944,8.628792,False,1.7280955,112.692535 +131.70676,-0.7154941,0.15804799,166.88216,True,0.0,294.86896 +105.34604,0.6806548,-2.8400204,130.70578,True,0.0,294.86896 +7.065748,0.12456601,-1.4085418,7.1206374,False,0.0,294.86896 +3.1505928,0.4124492,-2.8786585,3.4223938,False,0.0,294.86896 +2.4093754,-0.9881012,-2.812288,3.6844316,False,0.0,294.86896 +96.862404,0.60798854,0.013321006,115.32332,True,0.0,86.1646 +57.326878,0.81240153,-1.1972923,77.30827,True,0.0,86.1646 +2.2346644,-2.1277986,-3.1177263,9.5146,False,1.158045,86.1646 +124.25507,-1.2610605,-1.9696901,236.86218,True,2.048379,348.9873 +122.86481,0.49775475,1.182162,138.40215,True,0.0,348.9873 +3.245497,-0.96155417,-0.5446696,4.8650923,False,0.0,348.9873 +2.4072654,0.13187665,2.8911724,2.4282286,False,1.1968912,348.9873 +1.6668433,0.5810117,-2.733365,1.9561893,False,0.0,348.9873 +103.5857,0.07420644,-2.448046,103.87103,True,0.0,129.74269 +47.839844,-0.3666719,1.6212753,51.09203,True,0.0,129.74269 +1.8311957,-0.6594475,0.33017585,2.2440026,False,3.8943985,129.74269 +60.49907,-0.53284967,-2.0613654,69.29293,True,1.6195992,103.098175 +39.54522,0.98282963,-0.65599495,60.23245,True,1.5320479,103.098175 +3.660228,0.100979604,0.6820523,3.6789052,False,0.0,103.098175 +2.7109034,1.1254704,1.7108438,4.6168933,False,0.0,103.098175 +2.0600624,-0.16780534,1.2901481,2.089135,False,0.0,103.098175 +123.2241,-1.9453834,2.7607849,439.86362,True,1.9133471,182.63916 +66.385544,-2.2611806,-0.53206116,321.92468,True,0.0,182.63916 +3.2440577,0.002246353,2.5561645,3.2440658,False,0.0,182.63916 +2.4610968,0.14497568,-1.9320486,2.4870057,False,2.4798648,182.63916 +2.0641642,-0.08587238,0.08643331,2.0717795,False,0.0,182.63916 +53.829983,-1.5573325,2.650544,133.41335,True,0.0,67.71534 +46.882557,-1.164451,-2.2323823,82.42557,True,0.0,67.71534 +25.395487,-1.5578206,2.7220185,62.968815,False,5.5462565,67.71534 +3.3912985,1.255718,2.4312496,6.4353776,False,0.0,67.71534 +2.9596238,-1.0018612,0.5321535,4.5734196,False,10.254012,67.71534 +2.3021526,-0.10315905,-2.7171938,2.314413,False,1.5060185,67.71534 +2.0143185,1.8910861,2.6076107,6.825991,False,2.124212,67.71534 +130.40926,-0.6914077,-2.3938286,162.84169,True,0.0,252.67107 +123.24267,-0.87671155,0.49783388,173.71878,True,0.0,252.67107 +7.56657,-0.87678117,0.5840636,10.666109,False,0.0,252.67107 +3.115289,0.9771083,1.0625571,4.724586,False,0.0,252.67107 +1.7954565,1.3241787,2.076924,3.6134622,False,0.0,252.67107 +214.42184,-2.267289,0.25814137,1046.0342,True,0.0,377.47186 +163.23766,-1.9961084,-2.9400153,611.8327,True,0.0,377.47186 +72.29581,0.7163542,0.34439197,91.652534,True,0.0,139.29062 +67.47236,0.36474827,-2.410802,72.01064,True,0.0,139.29062 +166.3306,0.07313641,0.39620978,166.77563,True,0.0,293.13925 +116.39156,0.72459525,-2.7147768,148.30707,True,4.9526024,293.13925 +1.8058254,-1.7543364,-1.6941464,5.3747077,False,0.0,293.13925 +57.62314,2.3088658,-3.0983481,292.79407,True,0.0,94.22231 +47.42911,1.6664625,-1.1043804,130.01088,True,0.0,94.22231 +2.6322699,-0.7932064,1.034328,3.504689,False,10.583792,94.22231 +2.9046037,-2.0833464,1.9238657,11.844702,False,0.0,94.22231 +51.38829,2.148375,1.6646149,223.22028,True,0.0,99.36046 +47.29918,1.8770691,-1.5881673,158.1534,True,0.0,99.36046 +64.72527,1.7096518,-2.9632463,184.72481,True,3.4913628,112.53964 +48.8344,1.8041726,0.22308664,152.35243,True,1.893892,112.53964 +3.76869,1.7196285,1.641951,10.856817,False,0.0,112.53964 +1.9383823,0.9219501,-1.6052488,2.822218,False,0.0,112.53964 +132.88979,-2.19833,-0.66793275,606.04,True,6.3217244,280.63666 +117.50988,-1.214257,2.5494387,215.3205,True,0.0,280.63666 +2.8847406,-2.1522725,0.23997119,12.578347,False,0.0,280.63666 +57.17352,0.015467574,2.7701037,57.18036,True,0.0,88.81475 +36.044476,1.3155277,1.2565107,71.99974,True,0.0,88.81475 +1.8840443,-0.3593304,1.410038,2.006991,False,0.0,88.81475 +70.67602,0.8595693,1.8781716,98.43358,True,0.0,84.4846 +53.044117,0.98712945,-2.89044,81.055786,True,0.0,84.4846 +51.282337,-0.5774274,-0.54666173,60.071877,True,0.0,87.51173 +35.97721,-1.2595197,2.0097997,68.49196,True,0.0,87.51173 +3.8439295,0.31944373,2.3693664,4.0417285,False,2.6710277,87.51173 +72.95088,1.6059396,2.778857,189.06097,True,0.0,141.54935 +68.89295,1.524308,-0.5042881,165.67847,True,0.0,141.54935 +1.7322948,2.3239636,1.2311014,8.93342,False,0.0,141.54935 +65.142044,1.9450529,-2.5561419,232.45879,True,0.0,110.956215 +46.988678,2.101536,0.63524467,195.02632,True,2.0287895,110.956215 +2.9269178,1.93305,0.8160728,10.325086,False,5.207237,110.956215 +1.8720227,0.67869335,-0.30737022,2.3199787,False,0.0,110.956215 +65.54547,0.120012954,-0.8985286,66.01807,True,0.0,96.00175 +34.110455,-0.32786417,2.5300164,35.960285,True,0.0,96.00175 +57.091293,1.3558882,-2.8323545,118.11972,True,0.0,66.51536 +34.948895,0.07986702,-2.2265768,35.060417,True,0.0,66.51536 +2.665185,-1.9511753,0.6685049,9.566762,False,0.0,66.51536 +2.0115323,2.0516243,0.29445684,7.954659,False,0.0,66.51536 +310.05484,1.130889,-3.0045838,530.373,True,0.0,479.4705 +171.6137,1.7330743,-0.09421487,500.6625,True,0.0,479.4705 +84.2041,-2.0718677,2.0936244,339.57782,True,0.0,187.25755 +78.24259,-0.97154623,-1.1727741,118.16681,True,0.0,187.25755 +7.6613655,-1.5815002,-0.8353698,19.413559,False,0.0,187.25755 +50.926426,2.154981,0.57433563,222.64093,True,0.0,83.96595 +34.876602,1.9076465,-2.8718386,120.07392,True,0.0,83.96595 +8.046018,1.9089448,-2.762729,27.735441,False,22.660381,83.96595 +67.31455,-0.41725126,0.58436126,73.25975,True,0.0,119.7423 +51.172733,-0.014172366,-2.5098155,51.177876,True,0.0,119.7423 +126.34437,-1.0125316,-1.7287382,196.8356,True,1.0441439,185.35638 +70.598564,-0.8741487,1.8248892,99.333984,True,1.8476415,185.35638 +37.140232,-0.63273984,-2.1255114,44.826336,False,7.1030912,185.35638 +4.7254686,-0.640018,-1.4871589,5.726791,False,0.0,185.35638 +3.3428514,-0.87124956,1.9043772,4.6939044,False,1.8476415,185.35638 +123.51603,-2.0624187,2.9423132,493.5772,True,4.259574,240.29799 +116.38485,-2.3041196,0.005696607,588.62823,True,0.0,240.29799 +56.064987,1.7801656,2.1100974,170.98276,True,0.0,92.760864 +38.315823,1.8683875,-1.079,127.05939,True,0.0,92.760864 +59.22467,1.7579412,1.8552785,176.87102,True,0.0,77.31637 +39.84903,1.2624036,-2.7154884,76.04945,True,0.0,77.31637 +3.1633,-1.0127163,-0.8878533,4.928896,False,0.0,77.31637 +2.2155087,-1.2702365,-1.0020624,4.256502,False,0.0,77.31637 +131.71106,-0.7049033,0.40345937,165.81154,True,0.0,251.36195 +120.32192,-0.7908648,-2.5947464,159.95328,True,0.0,251.36195 +2.7290072,1.7000154,-2.881891,7.718605,False,0.0,251.36195 +52.426483,-2.1916842,1.4666165,237.5445,True,0.0,92.37593 +40.419334,-2.027613,-1.6703569,156.17186,True,0.0,92.37593 +2.9421856,0.4342108,1.9850216,3.2239292,False,0.0,92.37593 +68.74239,1.2585777,0.996548,130.76413,True,0.0,96.82098 +65.40952,1.2774117,2.609602,126.43989,True,2.062365,96.82098 +4.1507573,1.157836,1.1522589,7.2580204,False,0.0,96.82098 +90.50976,1.0598176,2.9189553,146.28021,True,1.0824821,146.81621 +59.575047,-0.5062533,-2.3165507,67.37382,True,0.0,146.81621 +2.1634045,-0.11586244,-0.29739296,2.1779416,False,3.1644676,146.81621 +97.20922,-0.68930095,1.2953591,121.232,True,0.0,76.09852 +69.09166,-1.5861082,1.2444686,175.81831,True,0.0,76.09852 +3.2651563,0.021587469,2.7635279,3.265917,False,0.0,76.09852 +2.110045,-0.18059403,0.63263863,2.1445472,False,0.0,76.09852 +54.681854,0.28517652,-0.10820958,56.920483,True,0.0,82.905045 +33.09587,0.6746004,2.427795,40.91656,True,0.0,82.905045 +1.959015,0.19303143,2.2102213,1.9956261,False,0.0,82.905045 +1.7444197,1.2468886,2.9515097,3.2855253,False,0.0,82.905045 +50.115368,1.9247462,1.4008046,175.38678,True,0.0,87.49817 +37.453175,1.6419406,-1.7001157,100.3518,True,1.3510962,87.49817 +2.8946018,-0.12501624,-1.9529712,2.9172513,False,1.9530828,87.49817 +193.63496,-0.6890419,1.4490436,241.44955,True,0.0,502.86282 +198.49947,0.78090465,-1.6929795,262.16202,True,0.0,502.86282 +2.5829892,0.2953193,-3.0416265,2.696446,False,1.0181825,502.86282 +58.307278,-2.01685,-0.77581596,222.95801,True,0.0,120.82962 +51.856266,-1.1250832,2.2216072,88.28785,True,0.0,120.82962 +101.483955,-0.2752266,1.0935596,105.35197,True,0.0,195.71422 +93.4574,-0.010716543,-2.2264497,93.46277,True,0.0,195.71422 +3.7474556,-1.6865921,2.3552673,10.467004,False,0.0,195.71422 +3.5540621,-0.80951226,0.3648251,4.7835665,False,3.5547707,195.71422 +2.4305797,0.20751931,0.5207268,2.4831033,False,0.0,195.71422 +2.5989006,-1.0178168,0.21423928,4.065369,False,0.0,195.71422 +206.91632,-0.38993216,2.295004,222.84717,True,0.0,118.30189 +42.313747,-0.6158458,0.95257515,50.59466,True,0.0,118.30189 +4.967827,-1.9539686,0.19054222,17.880072,False,0.0,118.30189 +84.500595,0.98814636,2.3288283,129.22324,True,1.3179628,228.23994 +80.48534,-0.7182059,-0.6371975,102.15106,True,0.0,228.23994 +56.253128,-0.15696809,-1.0514339,56.947563,True,1.5275654,125.26558 +47.73449,-1.5377692,1.4585776,116.210945,True,0.0,125.26558 +7.744354,-0.028696185,0.5560938,7.747543,False,0.0,125.26558 +3.9436772,0.39617503,1.0482305,4.2572355,False,3.474476,125.26558 +101.35951,-2.0873725,2.7636106,414.9513,True,4.4404354,148.14552 +54.616524,-1.8319912,-0.6972735,174.94781,True,2.0565262,148.14552 +1.9544978,-1.0079277,0.559865,3.034252,False,2.5579407,148.14552 +67.720604,-0.83867824,-1.2522491,92.96646,True,0.0,117.43951 +51.332184,-1.0097078,2.1386118,79.79907,True,0.0,117.43951 +4.7695804,-0.72675043,1.4139327,6.08557,False,0.0,117.43951 +105.78198,0.19938955,-1.6431354,107.8917,True,1.049451,33.64091 +32.792274,-0.15742117,-1.1948884,33.199432,True,0.0,33.64091 +63.451496,1.1161163,-0.87335527,107.24964,True,0.0,103.37322 +42.13643,2.1501281,1.1247933,183.34462,True,0.0,103.37322 +2.2896059,-0.38039747,-2.3474827,2.4572687,False,0.0,103.37322 +112.604195,0.96767807,0.25754958,169.57013,True,0.0,221.24588 +99.77009,0.3759405,-2.8256311,106.90383,True,2.3599505,221.24588 +52.946663,-2.2658267,0.24415345,257.9253,True,0.0,88.471924 +33.44977,-1.5733143,-2.61453,84.12555,True,1.1889932,88.471924 +174.1297,0.41209763,-0.71934795,189.12589,True,0.0,332.25327 +157.76587,0.79176325,2.063262,209.85466,True,0.0,332.25327 +110.14304,1.9342405,1.838567,388.98785,True,4.323044,214.17633 +106.4808,2.295877,-0.82847613,534.2044,True,0.0,214.17633 +4.1310406,-0.8567011,1.7530471,5.742018,False,0.0,214.17633 +2.1540134,-0.644617,-2.405383,2.6172564,False,0.0,214.17633 +126.37541,-1.0523938,0.15283473,203.06007,True,1.5574754,108.16114 +38.900913,-0.12764715,1.4511858,39.218266,True,0.0,108.16114 +8.4508915,0.91645193,2.457716,12.255223,False,0.0,108.16114 +2.5935948,0.7584542,2.3805022,3.3760347,False,0.0,108.16114 +60.84104,1.9135357,-1.8224952,210.6489,True,0.0,49.955135 +36.02559,2.1834233,-0.7380091,161.92236,True,1.116714,49.955135 +3.0982704,-0.10513918,-2.760098,3.1154108,False,0.0,49.955135 +3.0712156,1.529405,-3.0206409,7.420202,False,0.0,49.955135 +388.99362,0.65616393,0.09129889,475.78244,True,12.286448,573.5933 +208.56175,0.9760395,-2.8311765,316.04666,True,0.0,573.5933 +2.1298585,2.1711695,-2.7231624,9.459316,False,0.0,573.5933 +1.7218248,-1.1590267,-1.7405249,3.0137284,False,1.80098,573.5933 +158.8154,0.7601077,-1.45173,206.94621,True,0.0,164.4867 +73.33332,2.1509624,-1.688834,319.34814,True,1.3590751,164.4867 +2.5096867,2.3041,-0.7476557,12.692753,False,0.0,164.4867 +1.64988,2.1951437,-1.576032,7.500878,False,1.3590751,164.4867 +103.438126,-0.77207226,2.688531,135.82983,True,0.0,114.258545 +47.400154,-2.158119,-2.9399023,207.85878,True,0.0,114.258545 +69.09366,2.1188774,1.2106693,291.64282,True,0.0,88.442955 +45.676582,2.3532119,-0.5734396,242.41397,True,0.0,88.442955 +65.2898,-2.1826575,-2.7813742,293.23572,True,0.0,74.34117 +38.61242,-0.91713464,2.8879123,56.02224,True,1.8565409,74.34117 +63.616783,1.809445,0.4272763,199.46413,True,0.0,86.629326 +63.038258,0.6483905,1.0409248,76.76001,True,0.0,86.629326 +2.454708,2.0377886,-2.8813298,9.578195,False,0.0,86.629326 +1.9505998,0.58467543,-0.16622125,2.293608,False,0.0,86.629326 +2.06558,-1.8203287,-0.5189679,6.5436125,False,0.0,86.629326 +129.21475,0.6414005,0.82402825,156.71767,True,0.0,258.8928 +101.33967,-0.37275222,-2.2833767,108.461845,True,0.0,258.8928 +51.88686,-2.167143,-0.94166255,229.54234,True,0.0,89.76009 +39.10638,-2.0346572,1.9828835,152.13075,True,0.0,89.76009 +3.5941122,-2.0357704,1.8916508,13.996783,False,41.986343,89.76009 +2.115308,-0.4704059,0.5490287,2.3536954,False,0.0,89.76009 +89.00219,2.2271082,2.4193068,417.45816,True,0.0,214.66354 +82.78292,0.8387132,-0.782459,113.64666,True,1.6982931,214.66354 +4.019473,0.48047057,2.9881046,4.4924192,False,0.0,214.66354 +137.88596,-1.2792709,1.5406502,266.96503,True,0.0,211.16489 +97.293396,-1.3280854,-0.7519333,196.47406,True,0.0,211.16489 +2.2346582,0.6281888,0.44215652,2.6902719,False,0.0,211.16489 +92.588165,-0.9490781,2.2077816,137.51308,True,0.0,186.93874 +90.55299,-1.5441124,-0.48679557,221.73322,True,0.0,186.93874 +2.2837958,0.086490706,2.0624464,2.2923434,False,0.0,186.93874 +1.8000333,0.11547202,0.18635267,1.8120472,False,0.0,186.93874 +227.6453,0.2762159,1.5806264,236.38478,True,0.0,353.8719 +136.0588,-0.48572826,-0.7895389,152.42719,True,0.0,353.8719 +1.7966317,-0.4348307,0.5122978,1.9691764,False,0.0,353.8719 +106.30903,1.3510594,0.98765564,219.02213,True,0.0,6.5580344 +38.217625,1.3183488,0.8900551,76.52739,True,0.0,6.5580344 +161.95811,-0.28784916,-2.0845754,168.71426,True,0.0,345.6512 +159.99431,0.4931708,0.8809641,179.84857,True,0.0,345.6512 +148.90999,-1.0200394,1.0975032,233.33337,True,0.0,308.20947 +147.75542,-0.4217915,-2.2710228,161.09488,True,0.0,308.20947 +61.537647,-0.2569432,-2.9935553,63.5802,True,0.0,119.26426 +54.04734,0.5862681,-0.5575032,63.604763,True,0.0,119.26426 +2.8622305,-0.6578817,1.4615804,3.504294,False,0.0,119.26426 +51.725628,2.0162206,2.111298,197.67068,True,0.0,79.5987 +42.713097,0.80912334,-2.9990392,57.474453,True,0.0,79.5987 +3.1928172,0.36376235,-2.6797128,3.4063985,False,0.0,79.5987 +2.85259,-0.7621331,-1.0968037,3.7219343,False,3.3506134,79.5987 +156.76097,1.6580051,0.6312948,426.33875,True,0.0,27.88593 +100.618286,1.8031377,0.46314988,313.59903,True,0.0,27.88593 +3.6584864,-0.5451597,-0.5670619,4.215734,False,1.6707662,27.88593 +90.215614,-1.2411525,2.5565324,169.09335,True,0.0,85.8525 +33.36837,-1.3022228,-1.9316268,65.892334,True,0.0,85.8525 +12.810196,-2.1195493,-3.0922732,54.10687,True,0.0,85.8525 +6.860551,1.212451,-2.4560757,12.552,False,0.0,85.8525 +134.83156,-0.6931726,1.7552495,168.54202,True,0.0,238.34932 +91.07133,-1.5590334,-1.8031383,226.06467,True,0.0,238.34932 +137.68974,-1.9227936,2.3662577,480.9667,True,0.0,36.591923 +43.60324,-2.2222106,2.732589,203.54161,True,0.0,36.591923 +54.843044,-1.591919,0.3836455,140.30777,True,0.0,144.16039 +50.818752,0.09061541,-2.4272287,51.02754,True,0.0,144.16039 +4.552252,1.3252494,2.1900084,9.170195,False,9.421515,144.16039 +3.0201292,-1.5773972,3.0869899,7.6240864,False,0.0,144.16039 +2.8417826,1.9291749,0.99687356,9.987581,False,0.0,144.16039 +2.1723125,-0.8800881,1.4450331,3.0693238,False,0.0,144.16039 +1.8055097,-0.44811806,1.9387919,1.9898456,False,0.0,144.16039 +176.77278,1.7783812,-0.8802566,538.2003,True,0.0,211.42937 +82.83143,1.9802805,-2.9816267,305.76416,True,0.0,211.42937 +1.6849108,-0.5368737,-2.8399277,1.9336233,False,0.0,211.42937 +95.053345,-2.2466023,-2.393824,454.41733,True,0.0,184.49365 +80.432846,-1.5859625,0.72647756,204.65094,True,0.0,184.49365 +62.947258,-0.098253526,0.27866784,63.251343,True,0.0,79.50856 +37.025265,0.19163817,-1.6114086,37.70723,True,0.0,79.50856 +4.102011,0.5940889,-3.0608761,4.8474393,False,0.0,79.50856 +2.1491227,-0.9718414,1.7601652,3.2464564,False,0.0,79.50856 +53.787514,0.58546376,0.85339105,63.272167,True,0.0,121.9053 +47.959957,-0.6607549,-2.3509164,58.816048,True,0.0,121.9053 +207.90865,1.6617699,-2.2508013,567.42737,True,0.0,392.71857 +169.72649,2.2624485,0.85645175,824.0796,True,0.0,392.71857 +2.7258964,1.1002979,-0.02128881,4.5492935,False,0.0,392.71857 +54.57022,1.8355714,-2.3148232,175.39517,True,0.0,87.12751 +51.194965,2.272051,-0.479103,250.91612,True,0.0,87.12751 +5.501935,-0.73979205,-2.1323872,7.0774493,False,0.0,87.12751 +84.538536,2.3591518,-1.8376839,451.2867,True,0.0,126.71634 +64.70349,1.8079367,0.050349195,202.5816,True,0.0,126.71634 +68.702095,1.7217518,-1.2680299,198.3111,True,0.0,132.59079 +55.79011,0.97330827,1.8629036,84.36907,True,1.8244519,132.59079 +219.8653,-0.72139776,2.0459297,279.6004,True,0.0,428.55542 +196.7426,-1.229773,-0.960412,365.23413,True,0.0,428.55542 +98.20564,0.6621714,1.3395877,120.53409,True,0.0,149.58606 +62.457485,1.207782,-0.9673773,113.82609,True,0.0,149.58606 +10.982796,0.055082664,-2.904124,10.999461,True,0.0,149.58606 +5.361917,1.2106546,-1.0426325,9.795372,False,0.0,149.58606 +4.196892,1.2124057,-0.8531324,7.6783023,False,0.0,149.58606 +59.501614,1.8730679,2.563824,198.19641,True,1.4417235,84.91719 +30.395742,1.814575,-0.44971102,95.76746,True,0.0,84.91719 +2.9989572,1.8178258,-0.5578563,9.477953,False,0.0,84.91719 +3.6347044,1.5671312,0.5208839,9.089525,False,0.0,84.91719 +58.352734,-2.1043718,-1.9410154,242.86032,True,0.0,104.2159 +46.099323,-1.8747978,1.076306,153.80779,True,1.191769,104.2159 +2.5601265,0.64023405,3.030254,3.1029935,False,0.0,104.2159 +2.6751664,0.35163945,0.37883928,2.8422701,False,0.0,104.2159 +2.6271634,-0.100890025,-0.06542419,2.6405454,False,0.0,104.2159 +63.842373,-1.1095823,2.8899364,107.34418,True,0.0,92.7885 +33.852695,-1.1963081,-0.09712043,61.107338,True,0.0,92.7885 +56.341396,-1.9737998,-0.86197865,206.68568,True,0.0,91.8262 +34.364693,-1.1886748,1.7308254,61.639133,True,0.0,91.8262 +95.655785,0.9659571,2.2978978,143.86246,True,0.0,116.11555 +95.59965,0.34460646,-2.89489,101.33245,True,0.0,116.11555 +4.227185,1.8249243,-1.9559904,13.449962,False,4.8101425,116.11555 +147.56232,-0.6502267,1.3928511,179.87128,True,0.0,278.94678 +120.11135,-0.026090976,-1.8590991,120.15224,True,0.0,278.94678 +54.563213,-2.1962743,-3.0934772,248.33542,True,0.0,99.30406 +44.588333,-1.9598496,0.10108346,161.39056,True,0.0,99.30406 +3.317298,-0.4728544,3.1035144,3.6951191,False,0.0,99.30406 +1.8219646,0.06512863,2.6336806,1.8258301,False,7.6927295,99.30406 +55.387756,-2.1053863,-1.6367296,230.7474,True,0.0,92.65574 +37.65945,-1.6130646,1.8694845,98.243004,True,0.0,92.65574 +4.572924,-1.5277718,1.9536649,11.03199,False,0.0,92.65574 +1.7929549,1.8402745,-0.24954651,5.7885914,False,2.2427433,92.65574 +53.55548,1.3139328,0.45581615,106.83084,True,0.0,92.08679 +33.118824,2.183573,-2.5301366,148.8792,True,0.0,92.08679 +5.0159025,-0.20907551,-2.7339768,5.1259313,False,0.0,92.08679 +2.5552065,0.48832607,-1.0096432,2.8659694,False,0.0,92.08679 +2.7751575,0.26173672,-2.2399657,2.870759,False,0.0,92.08679 +1.6885593,-0.5824852,2.2265735,1.9832056,False,1.0026573,92.08679 +52.747395,0.05884185,1.1491203,52.838737,True,0.0,87.77541 +33.30335,0.6705769,-2.0049152,41.07599,True,0.0,87.77541 +3.5772388,-1.1537312,0.6986686,6.2341547,False,0.0,87.77541 +81.11382,-2.168134,-0.93947023,359.18607,True,0.0,140.70842 +56.927135,-1.572033,2.4827995,143.00247,True,0.0,140.70842 +4.1567435,-0.83221525,3.1045737,5.6812067,False,0.0,140.70842 +2.1842647,0.53658074,2.4653218,2.5063276,False,0.0,140.70842 +2.385546,2.134221,-2.4651182,10.220631,False,0.0,140.70842 +67.13206,-2.1480296,1.655708,291.50998,True,0.0,45.92666 +30.46925,-1.2047689,1.9276205,55.38928,True,0.0,45.92666 +87.31243,0.4880497,-1.4622,97.91907,True,0.0,167.01309 +89.70195,0.93914443,2.5061996,132.25452,True,0.0,167.01309 +3.385532,-0.59126383,2.095287,3.9947534,False,0.0,167.01309 +63.16118,-1.1658506,2.1115618,111.17342,True,0.0,53.88941 +41.572372,-1.06148,-3.0703452,67.27635,True,0.0,53.88941 +8.110155,0.48015076,-1.1764017,9.063131,False,0.0,53.88941 +128.379,0.30476907,0.91586727,134.38747,True,0.0,252.1823 +103.91534,-0.54666704,-2.1737967,119.833176,True,0.0,252.1823 +3.696774,-1.6312939,-0.14370386,9.807836,False,0.0,252.1823 +1.629151,1.858098,1.1510124,5.3497243,False,0.0,252.1823 +67.13035,-0.5001759,2.5508707,75.70408,True,0.0,137.69281 +59.87662,-1.3569492,-0.842966,123.9976,True,0.0,137.69281 +3.5910125,1.5988923,-2.2236273,9.2462635,False,0.0,137.69281 +1.8976965,1.1534083,0.65878826,3.3062947,False,0.0,137.69281 +1.9727192,0.38346288,2.6731517,2.1195433,False,0.0,137.69281 +101.1962,-1.7908305,0.6351722,311.74756,True,0.0,147.0832 +60.34974,-1.1377695,2.788598,103.81165,True,1.9622798,147.0832 +2.201158,-0.31793055,-0.7384906,2.3133445,False,1.3214909,147.0832 +2.018586,-0.72998196,0.14461717,2.5807226,False,5.7066274,147.0832 +124.363464,0.024546968,-1.0693569,124.40093,True,0.0,141.52377 +81.8312,0.0134979235,-2.6241412,81.83866,True,0.0,141.52377 +1.7422365,0.39792132,-0.33265823,1.8820002,False,0.0,141.52377 +124.61423,-1.5618287,1.5607922,310.1202,True,0.0,173.2559 +70.97927,-1.5492157,-0.7809069,174.61578,True,1.0300796,173.2559 +42.294983,-1.5766158,-2.1007028,106.69389,False,0.0,173.2559 +4.4758773,-0.20313995,-2.7535403,4.568546,False,0.0,173.2559 +201.94736,-0.38835752,-2.025993,217.36874,True,0.0,411.14105 +165.76343,0.6005157,1.2187238,196.56122,True,0.0,411.14105 +55.19248,1.0229911,1.8546412,86.680336,True,1.4510863,108.47346 +49.872723,0.26623505,-1.8658363,51.650703,True,0.0,108.47346 +2.2782888,1.840946,-2.8340707,7.3601995,False,0.0,108.47346 +139.2807,-0.63889253,0.79559314,168.68694,True,7.0012035,250.47755 +101.813805,-1.3008881,-2.1719348,200.81992,True,0.0,250.47755 +2.7707086,-0.010731055,-2.1698458,2.770868,False,0.0,250.47755 +66.853386,-2.2324543,-2.41395,315.21317,True,0.0,124.7624 +45.786087,-1.2235954,0.5795941,84.55679,True,0.0,124.7624 +1.9772954,-0.1915217,-0.4808596,2.0136704,False,0.0,124.7624 +60.091183,2.2477179,-2.440963,287.58884,True,0.0,91.010735 +35.18686,2.1739922,0.99853563,156.7054,True,0.0,91.010735 +3.4854403,2.2917817,1.6074219,17.416105,False,0.0,91.010735 +86.41775,1.941304,0.1677988,307.27332,True,0.0,155.42622 +68.69185,1.6488707,-2.8446894,185.24028,True,0.0,155.42622 +1.7068402,-2.0312614,-0.07145647,6.6181593,False,0.0,155.42622 +73.02819,-1.887149,-2.6863062,246.54414,True,0.0,152.79114 +64.80886,-0.9429001,0.6207122,95.817085,True,3.1130743,152.79114 +4.0577354,0.36682114,-1.7467554,4.3338103,False,0.0,152.79114 +3.9127026,-1.0325354,-2.1862102,6.1904426,False,0.0,152.79114 +3.3283186,-0.10952569,0.3295075,3.3483016,False,0.0,152.79114 +2.8116379,-0.22435874,-0.7019667,2.8826997,False,0.0,152.79114 +1.8737315,-0.5082221,0.071675315,2.1209676,False,0.0,152.79114 +194.13553,-0.3107275,0.21876985,203.58322,True,0.0,286.62567 +128.71817,-0.23471908,2.4852808,132.28021,True,0.0,286.62567 +2.2213652,-0.4563618,3.0155108,2.4567254,False,18.192122,286.62567 +117.35201,-1.9550719,-1.8780072,422.8182,True,1.0018206,130.42383 +59.83023,-1.1813111,2.937797,106.66294,True,0.0,130.42383 +63.352043,-0.3758614,-1.2560257,67.879906,True,0.0,122.42849 +48.45764,-1.2839606,1.9054878,94.198044,True,0.0,122.42849 +1.9935156,-2.1466758,1.0241412,8.64512,False,0.0,122.42849 +124.48948,2.0305042,2.8739269,482.34668,True,0.0,223.28961 +98.26098,1.742173,-0.17924497,289.12686,True,0.0,223.28961 +3.0420341,-0.07099608,-2.985006,3.049704,False,0.0,223.28961 +123.38254,1.5443469,2.3946254,302.1862,True,2.1493506,40.855118 +45.801685,1.9252502,2.006815,160.3678,True,0.0,40.855118 +3.1930363,0.09735565,-0.4188159,3.2081804,False,0.0,40.855118 +109.07034,2.2799265,1.6691189,538.7123,True,0.0,89.708206 +84.29826,2.2183301,2.6403818,392.01895,True,0.0,89.708206 +3.6126254,0.92004097,-0.45298213,5.252569,False,0.0,89.708206 +151.17493,-0.44376022,1.0823084,166.30571,True,0.0,277.4479 +97.52029,1.1555307,2.6880386,170.2021,True,0.0,277.4479 +6.004409,-0.06254706,-1.3089027,6.0161576,False,30.346382,277.4479 +5.977082,-0.35123357,-1.5906174,6.349569,False,4.8862376,277.4479 +5.0136576,-0.67012286,-1.5880673,6.1821485,False,0.0,277.4479 +160.42438,-0.44099495,2.5102885,176.27821,True,0.0,304.2532 +150.70265,-0.52735144,-0.20558292,172.14798,True,0.0,304.2532 +6.5464306,-1.910002,-1.549033,22.589056,False,0.0,304.2532 +3.218769,-0.29363373,1.9685266,3.3585312,False,0.0,304.2532 +2.2434413,-0.7523689,-2.3962932,2.9089246,False,0.0,304.2532 +128.63322,0.40989226,-0.47328594,139.59131,True,0.0,234.74469 +105.89012,0.16692185,2.5510828,107.36876,True,0.0,234.74469 +11.125328,0.70661414,2.1984446,14.020293,False,0.0,234.74469 +160.39648,-0.90213114,-1.5160381,230.21342,True,0.0,284.32343 +122.39025,-0.5551329,1.6859508,141.73822,True,0.0,284.32343 +2.4777086,-2.17594,0.5006172,11.055491,False,0.0,284.32343 +186.79115,2.2022684,1.0021969,855.1356,True,0.0,90.370766 +121.23717,1.6416403,0.8069312,324.75162,True,0.0,90.370766 +3.301318,2.1593704,0.9166089,14.494565,False,169.88466,90.370766 +3.3196602,1.5644114,-0.7081544,8.281012,False,6.004267,90.370766 +73.74915,0.57612634,-0.7001992,86.33094,True,2.3213358,16.587275 +33.370216,0.37726706,-0.96957046,35.773315,True,0.0,16.587275 +1.788615,0.39215064,-2.0202446,1.927915,False,0.0,16.587275 +248.56345,1.5616875,-0.74880147,618.50543,True,0.0,325.23953 +167.65515,0.5096376,0.4780637,189.90308,True,0.0,325.23953 +2.7987733,0.67270076,3.1021383,3.4562762,False,0.0,325.23953 +72.82791,2.1042817,-0.3546003,303.07858,True,0.0,131.21756 +60.08497,1.9641445,2.4945624,218.38142,True,0.0,131.21756 +2.2650054,0.606878,-1.7890576,2.695067,False,0.0,131.21756 +159.085,-2.160054,2.542594,698.93396,True,0.0,337.03735 +153.25873,-1.3651036,-0.5162685,319.6581,True,0.0,337.03735 +3.1312866,0.3266137,-1.4812306,3.299794,False,0.0,337.03735 +2.0350425,0.4538399,-1.548267,2.2482443,False,0.0,337.03735 +60.587933,-2.0067875,-2.9467747,229.44044,True,0.0,17.488388 +54.20103,-1.7303212,-2.8193893,157.71669,True,0.0,17.488388 +81.98759,1.6351308,-1.7764454,218.29424,True,0.0,21.109276 +30.312271,1.2244579,-1.6855352,56.020687,True,0.0,21.109276 +153.96178,-0.56654906,-2.3817031,179.33897,True,0.0,281.69202 +128.29733,-0.8113582,0.55196625,172.89459,True,0.0,281.69202 +1.9320154,-0.96534264,-1.6615927,2.9043405,False,0.0,281.69202 +57.41651,-0.93345493,-0.096034266,84.30104,True,0.0,129.26627 +53.58214,-2.1754034,2.4722767,238.95755,True,1.7565441,129.26627 +2.3381088,1.3343478,-2.0544822,4.747353,False,4.9200406,129.26627 +52.90512,-1.178899,2.8619764,94.12907,True,0.0,103.4983 +36.70571,-2.3446643,-0.21712977,193.17575,True,0.0,103.4983 +1.9728268,0.5328604,-1.9733914,2.2595994,False,0.0,103.4983 +51.199104,2.176346,-0.25567257,228.53992,True,0.0,100.015274 +42.27497,1.3623475,-3.1162183,87.96173,True,0.0,100.015274 +6.0248322,1.1938773,-1.1607397,10.853418,False,0.0,100.015274 +2.0418077,0.43455595,0.4100456,2.2376468,False,0.0,100.015274 +62.61403,2.3138866,-0.46805054,319.7239,True,0.0,85.514435 +32.743675,1.9374995,-2.830799,116.00161,True,0.0,85.514435 +136.21167,-0.25593528,-1.7961187,140.6972,True,0.0,205.05089 +78.02761,-0.38920438,1.5946076,84.012405,True,0.0,205.05089 +2.0629227,0.98076797,0.6522635,3.1372166,False,2.0214572,205.05089 +54.12361,1.5632387,-1.7434461,134.86835,True,0.0,75.85136 +41.713657,0.37574857,-2.7700453,44.69318,True,0.0,75.85136 +62.483173,1.9479586,2.1125107,223.59349,True,0.0,91.51046 +37.949738,1.6621522,-1.7893175,103.60985,True,0.0,91.51046 +59.477676,-1.8393325,-2.2357917,191.85298,True,0.0,119.196396 +58.860397,-2.0855188,0.9562993,240.53328,True,0.0,119.196396 +1.6751299,0.9027278,0.61089635,2.4053054,False,0.0,119.196396 +133.85553,1.1145965,2.9630969,225.97394,True,0.0,246.54482 +108.926704,0.6734231,-0.34874967,134.5734,True,0.0,246.54482 +2.5199585,0.15231386,0.22091864,2.549246,False,1.2330362,246.54482 +131.0667,1.659106,-0.120766245,356.82388,True,0.0,49.385918 +32.907898,2.245361,0.3436487,157.13051,True,0.0,49.385918 +2.4360592,-0.019222261,-2.7000315,2.4365094,False,0.0,49.385918 +2.9518104,1.2160187,2.8035414,5.4167743,False,0.0,49.385918 +1.9996176,1.8134563,3.024389,6.2934895,False,9.55849,49.385918 +53.28188,0.61614406,-1.6831225,63.71971,True,0.0,109.747955 +40.799,-0.6065525,1.068606,48.537033,True,0.0,109.747955 +2.3563366,1.3241049,-1.9214855,4.741963,False,0.0,109.747955 +103.333084,-0.83997506,-0.27834627,141.98123,True,0.0,147.51361 +67.11939,0.455623,-1.4433662,74.20748,True,0.0,147.51361 +78.27689,0.3681575,0.26511467,83.6419,True,0.0,143.6935 +54.657337,1.2632575,-2.702786,104.38611,True,1.0490057,143.6935 +2.920946,1.6124026,-2.990847,7.6152754,False,0.0,143.6935 +2.2355752,-0.62815034,1.5401496,2.691318,False,0.0,143.6935 +1.6778139,-0.31309897,0.22508602,1.7607267,False,0.0,143.6935 +1.6401832,1.6066192,-2.922372,4.253398,False,2.0030475,143.6935 +114.39685,2.1203992,-0.09616298,483.58112,True,3.7922883,111.956184 +44.515068,1.8013557,1.6549536,138.50706,True,0.0,111.956184 +1.8404894,-0.74845827,-2.3222518,2.3805203,False,0.0,111.956184 +144.68259,0.9187622,0.9346842,210.16586,True,1.2806313,220.31877 +77.40744,0.28138474,-1.9125203,80.49217,True,0.0,220.31877 +2.1680923,0.6586025,2.8218467,2.6555493,False,0.0,220.31877 +2.0991778,0.7235399,1.913995,2.6730413,False,0.0,220.31877 +61.185287,1.8836352,-1.084659,205.87038,True,0.0,93.17541 +34.090298,2.3359284,2.2714658,177.87933,True,0.0,93.17541 +6.632886,-0.47076952,2.9206924,7.381564,False,0.0,93.17541 +3.2341416,-0.21124215,0.93535644,3.3065693,False,0.0,93.17541 +2.1829562,-0.23674455,0.13193418,2.2444177,False,3.0344703,93.17541 +2.2293336,2.2338653,1.2489386,10.525794,False,0.0,93.17541 +53.66994,-1.6012124,2.100508,138.48705,True,0.0,97.40713 +39.816704,-2.2649946,-1.1715078,193.80588,True,0.0,97.40713 +12.527461,0.468787,-1.2728248,13.92938,False,0.0,97.40713 +59.83322,2.3194644,2.481076,307.2003,True,0.0,99.85427 +42.601803,2.200497,-0.33899918,194.69551,True,0.0,99.85427 +2.3000832,-0.17579418,1.4118104,2.3357153,False,0.0,99.85427 +51.83592,2.044246,-3.09763,203.52882,True,0.0,88.3033 +32.008015,1.1494609,0.44136712,55.58669,True,0.0,88.3033 +124.08664,-1.5953106,-3.0331576,318.45007,True,0.0,264.4364 +105.17765,-0.42307904,0.5371212,114.73208,True,0.0,264.4364 +4.666054,1.3448088,2.1488268,9.5608425,False,1.6706218,264.4364 +1.6351603,-0.502034,0.07619337,1.8455862,False,2.01963,264.4364 +60.669518,0.99220407,-1.4420825,93.06495,True,0.0,83.335266 +38.832962,0.5267836,2.8981938,44.34681,True,2.0161598,83.335266 +3.508464,-0.1752561,1.7409359,3.5624828,False,0.0,83.335266 +2.6702724,-1.7036071,1.2513974,7.5779047,False,0.0,83.335266 +223.68008,0.16020274,0.669771,226.5566,True,0.0,516.8931 +204.1688,-1.120128,-2.6313162,346.21768,True,0.0,516.8931 +2.6150606,-0.4257911,-2.1024773,2.8557165,False,0.0,516.8931 +2.42271,-1.5480324,-1.3044406,5.953658,False,0.0,516.8931 +111.59671,-0.6812561,2.8808522,138.51047,True,0.0,75.595345 +52.457165,-0.61900526,1.8497146,62.832134,True,0.0,75.595345 +2.8365884,-0.63832736,0.6492584,3.4343803,False,0.0,75.595345 +97.36686,-1.5343959,-2.1898732,236.31465,True,0.0,118.41872 +72.24307,-0.25766596,-1.8277066,74.65454,True,0.0,118.41872 +153.81712,-1.2565488,2.174755,292.0918,True,0.0,319.09924 +126.928406,-0.20029119,-1.0559723,129.4829,True,0.0,319.09924 +3.0726542,0.71869856,3.1163242,3.9009612,False,0.0,319.09924 +105.16875,1.9416807,1.9904728,374.08096,True,0.0,94.33385 +90.81643,2.2265923,1.0322767,425.75308,True,0.0,94.33385 +2.4236968,-0.5616158,2.4631112,2.8160818,False,0.0,94.33385 +119.00978,-1.7851843,2.4294813,364.67242,True,0.0,234.28122 +108.47824,-2.2844605,-0.6578029,538.1723,True,0.0,234.28122 +93.71808,-2.3447678,0.4470484,493.27197,True,0.0,117.02136 +46.791794,-1.9946814,2.5408413,175.13976,True,0.0,117.02136 +2.0359983,-1.0291777,-1.0095068,3.2128706,False,4.48834,117.02136 +133.15834,2.1085622,2.631708,556.4556,True,2.2556028,57.45406 +44.91416,1.8220981,-2.9522777,142.52403,True,0.0,57.45406 +50.717583,1.228627,1.6728405,94.06158,True,0.0,102.226105 +44.919884,2.0721998,-1.8813666,181.21094,True,0.0,102.226105 +3.7868853,-0.23620784,1.0461569,3.8930204,False,0.0,102.226105 +2.2036345,-1.0267121,2.781767,3.4707837,False,0.0,102.226105 +2.0507612,2.080231,-1.9706831,8.337594,False,25.70861,102.226105 +53.561523,0.55925864,-2.1376038,62.158356,True,0.0,91.00475 +33.91537,-0.1731269,1.0452406,34.42491,True,0.0,91.00475 +4.2713904,1.7751783,-2.4770303,12.96535,False,0.0,91.00475 +67.72269,-1.341093,2.9953308,138.31612,True,0.0,93.87787 +34.888313,-2.2000408,-1.2245061,159.37296,True,0.0,93.87787 +62.69991,0.15698385,-2.215898,63.474083,True,0.0,91.622604 +33.28762,-0.08536905,1.1180778,33.408993,True,0.0,91.622604 +83.30925,-1.7683557,2.7213578,251.25325,True,0.0,144.88681 +63.146305,-1.778735,-0.32169282,192.31876,True,0.0,144.88681 +2.1642056,-0.47225273,-2.18369,2.4100578,False,0.0,144.88681 +97.46842,0.8566391,-2.2086205,135.47226,True,0.0,166.8513 +96.87961,0.39979476,2.126977,104.7257,True,0.0,166.8513 +4.211214,-1.1166626,-2.1264694,7.1211905,False,0.0,166.8513 +2.5838127,-0.49690774,0.57089823,2.9094248,False,0.0,166.8513 +114.07958,-1.2589228,2.7639644,217.06982,True,0.0,29.830643 +42.080006,-1.621704,2.534736,110.655045,True,0.0,29.830643 +4.326119,0.6673981,2.577592,5.325887,False,0.0,29.830643 +2.6975794,0.30907184,0.34910372,2.827452,False,0.0,29.830643 +1.8928927,-0.6833275,-1.7900381,2.352289,False,0.0,29.830643 +50.408325,2.3204765,-1.4773166,259.06732,True,0.0,30.335365 +30.816309,1.99838,-2.1907332,115.756065,True,0.0,30.335365 +80.51436,-2.2591138,0.33607352,389.65097,True,2.907796,16.37834 +52.19566,-2.3653436,0.10630958,280.3328,True,1.128159,16.37834 +6.339643,-2.2319772,0.22849551,29.877432,False,26.66608,16.37834 +2.9807498,1.7299455,2.2355626,8.670465,False,0.0,16.37834 +2.2947888,-0.653747,-1.0939428,2.8028839,False,1.4463289,16.37834 +192.40456,-1.5749103,3.0528123,484.60306,True,0.0,281.6485 +105.40545,-2.2543561,-0.8617,507.74313,True,1.2783741,281.6485 +22.543186,0.47602344,0.3614278,25.145905,False,0.0,281.6485 +3.298244,-0.11804329,-0.70233,3.3212497,False,0.0,281.6485 +174.86024,1.3109314,-1.1181298,347.90164,True,0.0,100.86338 +47.28999,1.3413248,-2.2933736,96.60412,True,0.0,100.86338 +2.8639023,-0.9508869,-0.3399246,4.2591987,False,0.0,100.86338 +174.76567,1.0113174,2.6206741,272.01926,True,0.0,348.75885 +173.9946,1.0725763,-0.5823018,284.04843,True,1.67753,348.75885 +158.49213,-0.023005597,-0.070409864,158.53407,True,0.0,318.12885 +150.52252,0.47174412,-3.1250544,167.58427,True,0.0,318.12885 +1.7249027,-1.9135442,2.8655794,5.9721494,False,1.4772907,318.12885 +121.27501,-1.8592224,0.19083212,398.66354,True,1.2497917,165.48715 +59.74318,-1.583583,2.7807949,151.6766,True,0.0,165.48715 +223.69604,-1.5871551,-3.1049638,569.79016,True,0.0,542.0489 +206.23291,-0.16610734,0.15533343,209.08461,True,0.0,542.0489 +1.8896998,1.980945,-1.9587865,6.9801064,False,0.0,542.0489 +60.10241,1.9831082,-0.11132182,222.46698,True,1.185668,90.751724 +35.11626,2.3173242,-2.789904,179.9185,True,0.0,90.751724 +3.0084937,1.5468955,2.273656,7.385512,False,2.5932877,90.751724 +2.068238,-0.15487659,3.0440366,2.093093,False,1.3802081,90.751724 +57.973442,0.83554584,-2.2181997,79.415215,True,0.0,19.153267 +35.630764,1.043121,-1.8495743,56.838448,True,0.0,19.153267 +117.29073,-2.1456232,1.4702735,508.12466,True,0.0,140.33287 +87.42339,-2.3154373,-0.046325177,447.0865,True,0.0,140.33287 +3.1735508,1.799458,-1.8759695,9.856665,False,0.0,140.33287 +2.6592534,1.3368019,0.50874937,5.4109607,False,0.0,140.33287 +2.0467062,-0.25587577,-1.2104677,2.114074,False,0.0,140.33287 +92.59021,1.5577502,-0.92451906,229.56522,True,2.0784073,13.437936 +81.119286,1.5736152,-1.078914,204.06981,True,3.341405,13.437936 +2.1280963,1.3557059,-1.6457616,4.402248,False,0.0,13.437936 +159.9638,-0.934964,2.1639476,235.12456,True,0.0,264.30005 +109.62838,-0.792515,-1.170211,145.89618,True,0.0,264.30005 +56.88625,0.9189137,1.2232088,82.64202,True,0.0,99.53039 +42.447517,1.3204472,-2.1657453,85.152084,True,0.0,99.53039 +134.7365,-1.9202402,1.6644334,469.5007,True,0.0,199.42041 +72.75723,-2.2986193,-1.7751577,365.99863,True,0.0,199.42041 +50.97043,0.068462096,-0.4681723,51.089928,True,0.0,87.38181 +33.562374,-0.60479397,2.5885324,39.889923,True,0.0,87.38181 +3.733395,-0.6952594,3.0429442,4.6726685,False,0.0,87.38181 +2.2450967,-0.6181201,-1.2834079,2.6878223,False,0.0,87.38181 +165.52919,-0.58289236,0.6441065,194.45483,True,0.0,16.097239 +30.001778,-0.8089808,0.6731606,40.366337,True,0.0,16.097239 +144.44734,-0.9556828,2.3186347,215.58731,True,0.0,91.71508 +45.37987,-1.9833586,2.68235,168.01253,True,0.0,91.71508 +2.2427301,0.09219626,-0.47295693,2.2522688,False,3.3013003,91.71508 +138.75078,-0.67330974,-1.6059014,171.40813,True,0.0,176.28185 +75.08606,-0.39685997,2.6364377,81.07703,True,0.0,176.28185 +3.3819923,-1.5970592,0.7357302,8.693377,False,12.4785185,176.28185 +2.352728,-1.1470604,0.875238,4.0778556,False,7.475867,176.28185 +82.00494,-1.8498056,-1.2701759,267.166,True,0.0,147.41946 +66.4112,-1.7044917,1.6961199,188.62292,True,0.0,147.41946 +1.931608,0.455455,0.49177757,2.1354408,False,1.7363731,147.41946 +1.8634524,0.7528432,0.530999,2.4169471,False,0.0,147.41946 +64.414185,2.2483058,-1.2619563,308.45547,True,0.0,128.11177 +61.440567,1.8606877,1.9509933,202.2538,True,0.0,128.11177 +3.7301748,-0.6816017,-2.1078517,4.6307287,False,0.0,128.11177 +1.9877015,-0.6311999,2.040284,2.3969872,False,0.0,128.11177 +55.426662,-2.3553956,0.57559574,294.791,True,0.0,19.362495 +39.873085,-2.0547316,0.85675937,158.154,True,0.0,19.362495 +177.30186,0.962187,1.4049956,265.90588,True,8.193726,74.39212 +78.02371,1.3119202,1.9370683,155.36859,True,0.0,74.39212 +3.0457096,0.5393033,-0.25179216,3.4994688,False,0.0,74.39212 +2.0961795,-0.12471504,-2.5533016,2.1125023,False,0.0,74.39212 +97.20355,-1.7590266,-2.921384,290.58978,True,5.3193364,23.925993 +46.615932,-1.986532,3.0882847,173.11707,True,0.0,23.925993 +2.0161402,0.169628,-0.5563621,2.0452158,False,0.0,23.925993 +1.6479727,-0.6579739,2.2243776,2.0177577,False,0.0,23.925993 +53.240093,1.9493005,2.2380643,190.76315,True,0.0,106.06108 +50.66217,2.3633797,-0.96190435,271.57224,True,0.0,106.06108 +3.217433,-1.8603657,2.649867,10.588093,False,0.0,106.06108 +128.068,1.2773328,2.8924694,247.54514,True,0.0,306.75925 +110.14271,-0.3157408,0.4357647,115.67866,True,0.0,306.75925 +3.491008,-0.8327286,1.7949648,4.7729864,False,0.0,306.75925 +2.4423342,0.20535393,-1.8946798,2.4940124,False,0.0,306.75925 +2.0252154,0.5984022,-0.20232749,2.3987653,False,0.0,306.75925 +104.56772,-1.5651367,1.3413962,261.0213,True,0.0,260.23468 +92.595436,0.004379274,-1.665251,92.59633,True,0.0,260.23468 +2.6391008,-1.1041733,1.7727132,4.4181376,False,0.0,260.23468 +1.9447058,2.0376945,-0.094855934,7.587491,False,0.0,260.23468 +2.1349518,-0.90186965,-2.2040098,3.0636733,False,0.0,260.23468 +2.2101738,-1.2564634,-0.87430847,4.1967163,False,0.0,260.23468 +1.9171814,1.1238469,2.6485965,3.2608323,False,0.0,260.23468 +73.01843,-0.7213054,-1.0728444,92.85148,True,0.0,104.22826 +39.35773,-0.79680586,2.5482583,52.527023,True,0.0,104.22826 +2.558681,-0.18779352,-1.6240569,2.6039314,False,0.0,104.22826 +1.8534403,0.060706306,-0.06586995,1.8568566,False,0.0,104.22826 +102.27669,-2.077778,-2.6928332,414.8297,True,0.0,198.32391 +93.72052,-1.7494432,0.5222947,277.6597,True,0.0,198.32391 +4.307428,-0.5293847,2.4009993,4.92523,False,0.0,198.32391 +1.8542798,-0.25649402,1.1142901,1.9156107,False,0.0,198.32391 +77.16502,2.0158112,-1.752913,294.77142,True,0.0,117.13067 +44.63849,1.9236109,1.2288281,156.04971,True,0.0,117.13067 +171.04669,-1.7126975,-1.5800923,489.5591,True,0.0,250.07524 +89.122826,-0.8481728,2.4199245,123.14869,True,0.0,250.07524 +62.581272,1.9608986,2.8151991,226.74577,True,0.0,92.04916 +44.599537,2.3436239,0.78464055,234.47992,True,0.0,92.04916 +2.7196426,1.6790011,-0.47937655,7.542601,False,1.7876817,92.04916 +2.2396762,-0.46406257,-1.6503384,2.485197,False,0.0,92.04916 +2.3046017,-1.2728474,1.891724,4.437556,False,0.0,92.04916 +63.616272,-2.3256292,-0.2673864,328.60474,True,0.0,97.980705 +34.99732,-1.766259,2.778471,105.34022,True,0.0,97.980705 +66.54175,-0.9184935,1.0222268,96.63968,True,0.0,131.22908 +52.795067,-1.8530109,-2.3114142,172.52798,True,0.0,131.22908 +87.44415,-1.016283,1.733087,136.62466,True,0.0,115.64925 +47.92672,-1.0366261,-0.47556964,76.06777,True,0.0,115.64925 +81.36745,1.1501135,0.24072185,141.38213,True,0.0,101.391396 +39.21762,-0.26876286,-0.7157154,40.642582,True,0.0,101.391396 +1.8593711,0.045035325,-2.273186,1.861257,False,0.0,101.391396 +67.10116,0.22058187,-2.0007865,68.740234,True,0.0,110.06589 +45.085194,0.29617915,1.1050214,47.07718,True,1.2961177,110.06589 +94.72668,-0.45997834,0.40076217,104.92576,True,0.0,120.71846 +92.888435,-0.5309187,-0.9947209,106.290306,True,0.0,120.71846 +2.2570796,-0.35786015,-2.264668,2.4031537,False,0.0,120.71846 +66.41424,-0.22132449,-1.9422998,68.04752,True,0.0,59.135395 +33.667778,0.77994585,-1.2388362,44.437847,True,1.240924,59.135395 +2.8974473,-0.20435289,1.44718,2.9581568,False,0.0,59.135395 +55.10244,-1.7685589,-0.8834277,166.2159,True,0.0,104.20885 +49.372715,-1.8351766,2.1449583,158.63023,True,0.0,104.20885 +58.128834,2.3724608,2.4026177,314.3898,True,0.0,86.71541 +35.123436,2.3260965,-0.16626577,181.51048,True,0.0,86.71541 +2.3691826,2.3298178,-0.2350915,12.2882185,False,32.195454,86.71541 +120.91486,-0.8162897,1.7940999,163.48657,True,0.0,24.340761 +33.953983,-0.96541506,2.1452293,51.044765,True,0.0,24.340761 +1.8427233,-0.990376,2.4529812,2.8227606,False,0.0,24.340761 +1.7994438,-2.2190738,1.4311217,8.374177,False,0.0,24.340761 +70.59046,-0.65540206,-0.36502886,86.30213,True,0.0,87.01701 +38.444862,-0.38048348,1.5708591,41.261383,True,0.0,87.01701 +1.8390945,-0.56542987,-1.5645407,2.1410003,False,1.0017111,87.01701 +1.9597728,-0.5149483,-1.3932036,2.2254038,False,0.0,87.01701 +1.6855389,0.66228306,0.5329177,2.0689042,False,0.0,87.01701 +67.688095,-2.092671,2.875077,278.53296,True,0.0,61.250637 +53.67475,-1.6504322,-2.45983,144.95396,True,0.0,61.250637 +7.814339,-2.1059196,-2.583628,32.571682,False,0.0,61.250637 +53.846085,-0.69064826,3.0174792,67.2069,True,0.0,79.57711 +33.932076,-1.282857,0.8614515,65.89904,True,0.0,79.57711 +4.2657995,0.4767173,-0.1434137,4.7597704,False,1.4719676,79.57711 +3.4249845,0.4752283,-0.09746938,3.8190708,False,6.6466928,79.57711 +1.8641258,-0.07105148,2.811505,1.8688332,False,0.0,79.57711 +120.89781,0.5729357,2.4428644,141.28925,True,0.0,90.27019 +60.588257,0.42776525,-2.7411442,66.21661,True,0.0,90.27019 +2.4089541,0.8737274,-1.6105548,3.3884556,False,0.0,90.27019 +52.29671,1.5919396,-1.6660321,133.7959,True,0.0,96.01674 +42.245235,1.1714616,1.5560948,74.702644,True,0.0,96.01674 +271.60733,0.10769153,1.6488714,273.18384,True,0.0,301.2435 +130.19867,0.6825076,-2.949989,161.71858,True,0.0,301.2435 +155.78151,0.9507127,0.8818334,231.64856,True,0.0,136.50974 +80.442696,1.7920064,1.7688378,248.08958,True,0.0,136.50974 +9.131964,1.167107,1.6548419,16.090296,False,0.0,136.50974 +58.95745,1.6812278,-1.6297628,163.8514,True,0.0,93.53594 +45.59934,0.20317851,-0.8054681,46.543785,True,0.0,93.53594 +2.6981645,-1.0115907,-1.9215287,4.2005186,False,0.0,93.53594 +111.319855,2.0314112,1.4443814,431.69778,True,0.0,198.27223 +90.71518,2.2024684,-1.3257002,415.37793,True,0.0,198.27223 +1.9565767,-0.17326647,-0.30297047,1.9860196,False,0.0,198.27223 +2.0062838,-1.501469,-2.5980613,4.7258816,False,0.0,198.27223 +261.11935,-1.6625903,-1.9623125,713.19507,True,0.0,381.27908 +135.06326,-2.1226268,1.4860485,572.1798,True,0.0,381.27908 +2.8028436,0.70764786,-1.1527559,3.5344062,False,0.0,381.27908 +2.7390802,-1.071828,-2.3611758,4.4689403,False,0.0,381.27908 +190.92818,-0.3731246,-1.1913253,204.37378,True,0.0,366.07883 +164.24309,0.14433035,1.9645996,165.95676,True,5.0483527,366.07883 +187.74875,1.6814226,2.0260556,521.87616,True,0.0,255.98059 +140.24976,0.854196,0.57340634,194.60423,True,0.0,255.98059 +2.3324158,-0.18799786,-1.3446584,2.3737547,False,0.0,255.98059 +146.83116,0.39887345,0.8699617,158.66727,True,1.3187815,37.675114 +81.62891,0.7365581,0.8124437,104.79082,True,0.0,37.675114 +19.914753,-0.32859388,2.0685818,20.9996,False,9.098251,37.675114 +3.3653498,0.020924805,-0.8201337,3.3660867,False,0.0,37.675114 +50.964046,-2.2707138,-0.44461796,249.45757,True,0.0,86.09751 +48.73295,-2.0065274,-2.4902809,184.50052,True,0.0,86.09751 +5.0273423,0.5137604,0.5673711,5.705548,False,0.0,86.09751 +3.6507878,-0.255693,2.0020745,3.7707818,False,0.0,86.09751 +135.42091,-1.2141416,-0.4690171,248.11595,True,0.0,300.18713 +105.40037,0.18892537,2.6867037,107.28699,True,0.0,300.18713 +85.4771,0.85746706,-1.2832252,118.87376,True,1.4827435,131.79874 +49.261204,0.43611765,1.6238179,54.020634,True,0.0,131.79874 +142.15193,-0.6637408,-2.0741029,174.63118,True,0.0,268.80176 +121.076225,-0.2159756,0.99151677,123.91105,True,1.0363349,268.80176 +2.176235,-0.1749502,-3.09808,2.2096245,False,1.3895211,268.80176 +1.705121,1.8216093,-0.17989568,5.4082723,False,0.0,268.80176 +135.68019,-0.9464596,-2.9625149,201.12445,True,0.0,87.47013 +30.857784,-0.13540317,-1.840232,31.14109,True,0.0,87.47013 +2.5780022,-0.7144705,-1.8342441,3.2644672,False,0.0,87.47013 +140.56578,1.7835037,-0.8999171,430.04114,True,0.0,254.34732 +102.15455,1.0862176,2.2732494,168.58238,True,0.0,254.34732 +2.7737145,-2.3027015,-3.014554,14.008857,False,0.0,254.34732 +2.5108733,1.0700767,-2.5807912,4.0909476,False,0.0,254.34732 +1.699143,-0.3708637,-0.13629007,1.8173385,False,0.0,254.34732 +56.085163,0.79808915,0.64604723,74.915215,True,0.0,94.88889 +38.784542,1.5868121,-1.7609982,98.75937,True,0.0,94.88889 +123.43127,0.8327462,0.13146563,168.76009,True,0.0,177.39589 +62.951015,1.0655046,-3.076333,102.19647,True,0.0,177.39589 +56.777996,0.5797118,2.7984602,66.58877,True,1.6343113,87.75246 +33.780178,0.17316835,-0.7363645,34.287933,True,0.0,87.75246 +96.87581,-0.55240834,2.6191509,112.0366,True,0.0,90.292625 +33.813293,-0.9080879,0.86684984,48.73969,True,0.0,90.292625 +2.6300704,-0.7133282,-0.8493899,3.3280685,False,0.0,90.292625 +172.71544,-2.0077562,-0.11620276,654.6675,True,2.3275518,134.9148 +52.15384,-2.1318226,-1.6896468,222.92738,True,0.0,134.9148 +3.6568134,1.0181236,3.0627165,5.7215753,False,0.0,134.9148 +247.4029,-0.66969776,0.006844388,304.98715,True,0.0,573.75507 +206.63129,-2.1052523,-3.1133404,860.72144,True,2.2824085,573.75507 +1.7647816,-0.89824975,0.25466165,2.5259178,False,0.0,573.75507 +57.05111,0.73573345,-1.6800559,73.20131,True,0.0,122.6009 +51.51054,-0.29822415,1.2308352,53.81818,True,0.0,122.6009 +3.277967,0.5715517,-2.8134289,3.828111,False,1.3054646,122.6009 +3.568518,1.7563574,-3.0166645,10.641278,False,0.0,122.6009 +59.624767,-2.2367704,0.6148757,282.3187,True,0.0,119.25167 +45.622154,-1.1649053,-2.7148657,80.23959,True,0.0,119.25167 +80.38166,2.1088066,0.16548748,335.9868,True,0.0,125.84111 +47.539925,1.7232901,-2.8961124,137.4239,True,1.283074,125.84111 +5.734674,0.6687851,-2.335753,7.0656776,False,10.1328,125.84111 +52.250183,2.1633635,-1.8899038,230.30025,True,0.0,110.14862 +45.072643,1.1358691,1.2382903,77.41276,True,0.0,110.14862 +50.407158,0.7068854,0.40764865,63.534286,True,1.2046884,17.500055 +36.199654,0.8319405,0.015033498,49.46641,True,0.0,17.500055 +2.3103435,2.0871897,0.016479788,9.456537,False,0.0,17.500055 +145.6816,-1.7102168,0.50266564,415.99283,True,0.0,242.35762 +94.63995,-1.1796143,-2.4715044,168.48355,True,0.0,242.35762 +3.4744503,1.9805847,-3.025633,12.829352,False,0.0,242.35762 +1.9005121,-0.5068379,1.8040527,2.1498888,False,1.0908436,242.35762 +57.546024,1.8000858,-0.72418827,178.83725,True,0.0,86.152885 +42.43324,1.7450877,-2.839842,125.19998,True,0.0,86.152885 +1.8203901,0.59708124,-1.4894861,2.1546357,False,0.0,86.152885 +52.559658,1.2048953,-1.4861273,95.55695,True,0.0,89.416214 +35.68296,0.568643,2.0525575,41.60923,True,0.0,89.416214 +2.8108337,0.57364905,1.9336556,3.2861414,False,0.0,89.416214 +1.872265,-2.1959352,-1.6431994,8.518486,False,0.0,89.416214 +95.514854,1.5309223,-2.199354,231.0874,True,1.2806804,129.0371 +59.012753,1.2408596,-0.17891604,110.581665,True,0.0,129.0371 +5.9739285,-0.2785732,1.0039276,6.2072287,False,0.0,129.0371 +10.513693,1.1426941,-0.1931247,18.157999,False,0.0,129.0371 +2.906798,2.341814,0.12811537,15.255222,False,0.0,129.0371 +1.8837291,-1.0475664,-1.5833764,3.0153754,False,0.0,129.0371 +2.0900204,-1.0472894,-3.0081916,3.3448722,False,0.0,129.0371 +71.61417,0.8946736,2.754642,102.239174,True,3.6430073,68.45897 +68.69797,0.029291382,2.357303,68.72744,True,0.0,68.45897 +3.3285003,-1.0195255,-1.7985862,5.2135053,False,0.0,68.45897 +93.35935,0.68632144,-0.77017707,116.22397,True,0.0,160.04298 +64.83015,1.2642924,2.035893,123.923645,True,0.0,160.04298 +4.205549,1.2334645,-2.4479132,7.8315406,False,0.0,160.04298 +180.66052,-1.3505483,-2.7349772,372.03775,True,5.614258,8.168155 +39.585762,-1.3505197,-2.831604,81.51769,True,2.1237938,8.168155 +54.57648,1.2890809,-2.272312,106.55984,True,0.0,96.7764 +34.912834,0.36141983,0.9630379,37.218,True,0.0,96.7764 +343.5867,-1.2655756,2.262332,657.48914,True,0.0,727.427 +336.54852,-0.5230821,-0.8476767,383.65033,True,1.0479916,727.427 +3.174124,0.100543305,-1.6516644,3.190181,False,0.0,727.427 +2.7481823,-0.425221,1.8318155,3.000402,False,0.0,727.427 +90.03602,1.6258696,0.32322136,237.67607,True,0.0,172.54025 +82.80753,1.8024454,-3.0143642,257.91873,True,0.0,172.54025 +168.73395,-0.43783054,-2.232254,185.16673,True,0.0,140.40427 +117.3353,-0.36668643,3.009147,125.31247,True,0.0,140.40427 +82.43372,0.91505927,-1.7682503,119.4224,True,0.0,41.51054 +52.219406,0.38778988,-2.1101782,56.195263,True,1.6608448,41.51054 +181.46812,-0.6514179,-0.9165858,221.35164,True,0.0,387.94824 +164.09656,0.33682433,2.157225,173.49333,True,0.0,387.94824 +3.378089,-0.66224986,-0.027208744,4.1463337,False,0.0,387.94824 +264.96768,1.9038332,1.7420722,908.9144,True,0.0,551.58093 +277.95148,1.5350589,-1.480251,675.0109,True,1.6254767,551.58093 +2.2577674,0.6385339,2.471851,2.7338948,False,0.0,551.58093 +1.7050132,0.48581687,0.023897205,1.9102087,False,1.9934798,551.58093 +59.80457,0.61625373,-1.4720991,71.52449,True,0.0,113.71818 +51.333885,0.15940319,1.6764772,51.98745,True,0.0,113.71818 +1.8232659,0.5017566,-0.94749045,2.057634,False,0.0,113.71818 +115.96596,1.8235956,1.9384054,368.51282,True,1.0243433,164.97263 +99.311745,1.742928,0.18832734,292.42627,True,0.0,164.97263 +1.9025843,2.0740104,-0.06447623,7.6886754,False,0.0,164.97263 +163.72112,1.711762,-0.4156679,468.18173,True,0.0,24.661457 +100.49884,1.8061019,-0.5833426,314.10754,True,4.1969547,24.661457 +4.428694,1.8897021,-0.5173098,14.987838,False,0.0,24.661457 +2.9241793,0.76741225,-0.79493076,3.8283315,False,0.0,24.661457 +2.5707743,0.23604892,2.4361513,2.642728,False,0.0,24.661457 +50.65388,-0.81105256,1.5644429,68.247635,True,0.0,13.198899 +41.07342,-1.0958035,1.5186174,68.302155,True,0.0,13.198899 +1.9900548,0.5860699,0.7474857,2.3417199,False,0.0,13.198899 +174.71295,0.35961857,0.18454349,186.13266,True,0.0,338.86844 +162.09462,0.6242242,-2.831931,194.71405,True,0.0,338.86844 +2.2277353,0.55949324,2.9981384,2.5856035,False,0.0,338.86844 +147.50342,0.03389852,2.778649,147.58818,True,0.0,269.5351 +121.421265,0.38697413,-0.6275871,130.62663,True,0.0,269.5351 +213.85512,0.42476076,2.9424198,233.43898,True,0.0,425.65225 +181.04967,-0.41547874,-0.4628116,196.90239,True,0.0,425.65225 +57.865444,-1.343951,0.36151344,118.47879,True,1.5200393,53.943565 +32.563694,-1.157774,-0.96151435,56.93803,True,0.0,53.943565 +53.350613,1.2358083,0.040961478,99.5458,True,0.0,131.12866 +50.764164,-0.18374248,-2.9325564,51.62351,True,0.0,131.12866 +83.40601,-0.29082605,0.7894207,86.958176,True,0.0,154.73485 +60.889652,0.6394336,-2.8202448,73.76776,True,0.0,154.73485 +321.94058,-1.6869594,-0.33953923,899.51953,True,0.0,214.87613 +141.5343,-2.177987,-1.2462518,632.7847,True,0.0,214.87613 +2.6021578,-1.070247,1.1716224,4.240247,False,1.6210164,214.87613 +1.6989635,-0.5847049,1.8292122,1.9977531,False,0.0,214.87613 +246.09587,1.1969982,2.0162976,444.4818,True,9.411771,77.21834 +43.07696,0.51541793,1.7331505,48.926575,True,0.0,77.21834 +131.58911,-1.8662909,2.4510639,435.4923,True,0.0,15.601482 +45.3268,-1.8968387,2.2510953,154.44731,True,0.0,15.601482 +8.325433,-0.5946024,1.9010245,9.841045,False,0.0,15.601482 +2.1046488,0.2611231,1.9106593,2.1768105,False,7.739331,15.601482 +1.8296444,-0.8405952,-0.2719287,2.515029,False,0.0,15.601482 +54.74851,-0.09445664,-1.3843712,54.992924,True,0.0,97.75604 +38.68808,0.6432084,1.9978046,46.970783,True,0.0,97.75604 +2.263463,-1.3151911,2.936714,4.520007,False,0.0,97.75604 +51.52633,-1.2762398,-2.571337,99.50315,True,1.7320367,49.155445 +44.10777,-1.7720443,-1.636398,133.4889,True,0.0,49.155445 +79.30061,0.60639,-0.7361943,94.33266,True,0.0,108.42179 +50.822334,1.9013145,-1.7788404,173.91559,True,0.0,108.42179 +11.732502,-1.6382873,0.28748226,31.329655,False,1.5025353,108.42179 +3.491299,0.073447034,0.013827244,3.50072,False,0.0,108.42179 +3.097081,-1.638301,0.37309146,8.270334,False,4.8532376,108.42179 +151.33961,0.40447184,0.5571407,163.88869,True,6.8476763,90.222275 +61.066143,0.93782747,1.3451737,89.94748,True,0.0,90.222275 +2.0565255,-0.046382677,1.2169847,2.058738,False,0.0,90.222275 +70.87361,1.2206001,0.2926657,130.5589,True,2.422601,10.418583 +40.78622,1.0271654,0.29687425,64.2619,True,0.0,10.418583 +17.768341,-1.1728132,-2.6518028,31.45498,True,27.132683,10.418583 +2.8573425,-1.184034,0.8969129,5.1054573,False,0.0,10.418583 +2.5404732,-0.19239594,1.4004179,2.5876377,False,0.0,10.418583 +2.4400542,-0.35864216,1.5945663,2.5986686,False,0.0,10.418583 +78.84358,-2.000315,0.3681482,296.7151,True,1.5329932,154.4478 +75.78905,-2.063357,-2.8830369,303.13272,True,0.0,154.4478 +62.128494,1.7845538,-2.324329,190.2621,True,1.6798939,106.88096 +55.347504,1.5427924,-0.069823146,135.36388,True,0.0,106.88096 +2.1718464,-1.7024577,2.526369,6.156807,False,0.0,106.88096 +78.88784,0.9010046,-1.2814513,113.13451,True,2.6247046,48.072617 +44.402145,1.2274884,-2.042816,82.269966,True,0.0,48.072617 +5.8934,1.2257702,-2.121085,10.903735,False,0.0,48.072617 +4.900054,0.2406763,1.7872912,5.042659,False,0.0,48.072617 +134.18178,0.14824347,2.8854346,135.65887,True,0.0,277.46692 +111.51499,-0.88310784,-0.38375038,157.89964,True,0.0,277.46692 +142.01942,-0.6129791,2.48654,169.54683,True,0.0,220.98253 +81.75321,-1.1603749,-0.33548626,143.25198,True,0.0,220.98253 +1.8052967,0.36399046,-0.6248373,1.9262139,False,0.0,220.98253 +133.94618,-1.530419,0.56243145,323.9192,True,0.0,133.33908 +64.258064,-0.53212744,1.6000766,73.57242,True,0.0,133.33908 +3.9305403,1.2180517,-1.64784,7.2251205,False,1.7282861,133.33908 +2.0753505,1.1548195,-2.8919132,3.6199977,False,0.0,133.33908 +2.4773629,-1.9736993,-2.1156292,9.087208,False,5.1426544,133.33908 +2.0398784,0.05761942,-0.35193467,2.0432653,False,0.0,133.33908 +64.21797,1.1782731,-1.9618224,114.19782,True,0.0,109.69171 +44.95038,0.74002093,1.3438743,57.830536,True,0.0,109.69171 +2.7219608,-0.4385411,-2.0659196,2.9879239,False,0.0,109.69171 +97.42614,-1.0572757,-3.0316556,157.14442,True,1.7976983,125.76357 +44.65573,-2.0000257,-1.1145473,168.00777,True,0.0,125.76357 +2.2662578,0.1144364,-1.4782403,2.2811131,False,4.939254,125.76357 +2.0282803,0.51861876,0.07754395,2.3072178,False,0.0,125.76357 +51.002647,1.6285229,-1.0079414,134.9673,True,0.0,90.934944 +38.603825,2.0776012,2.205691,156.54857,True,0.0,90.934944 +1.8330921,1.0822878,0.21596186,3.0156596,False,0.0,90.934944 +118.002716,0.29766902,-2.223996,123.26936,True,3.8268428,180.13797 +65.32403,1.0818124,1.5916429,107.42542,True,0.0,180.13797 +3.134442,0.56217027,2.8586733,3.642922,False,0.0,180.13797 +2.9976342,0.57529354,0.9041499,3.50752,False,0.0,180.13797 +87.30909,-0.5185058,-3.069803,99.310844,True,0.0,35.279602 +39.070858,-1.0581778,2.9548206,63.064354,True,0.0,35.279602 +3.4587734,1.2720793,2.542148,6.6555667,False,0.0,35.279602 +62.510506,1.051511,-0.71870726,100.37255,True,0.0,84.198105 +44.15961,1.8759975,0.77652663,147.50478,True,0.0,84.198105 +70.04343,2.3528593,1.9170533,371.60458,True,0.0,123.629105 +71.333405,2.0340729,-0.1524248,277.34296,True,0.0,123.629105 +2.3764367,-0.04285433,-1.6733878,2.3786192,False,4.452388,123.629105 +51.44924,-2.1501644,2.8436255,223.87454,True,0.0,92.948494 +42.014763,-2.0666616,-0.3993116,168.58463,True,0.0,92.948494 +2.3892138,-0.87533367,0.050814275,3.3644896,False,0.0,92.948494 +1.9716088,-2.1638157,3.1109068,8.69398,False,0.0,92.948494 +75.21875,2.3421426,-0.9391094,394.8843,True,0.0,128.0842 +50.62025,1.6716578,1.802315,139.43138,True,0.0,128.0842 +4.57331,-0.33292177,3.0298586,4.8291054,False,9.02559,128.0842 +220.08382,0.71307033,1.3813287,278.44815,True,0.0,408.48703 +185.79709,0.4260637,-1.8080978,202.91765,True,0.0,408.48703 +61.45653,-2.238327,-0.5792141,291.43506,True,0.0,92.55134 +35.062428,-2.106229,2.3563292,146.1909,True,0.0,92.55134 +55.015232,-2.04887,-2.5259175,216.98033,True,0.0,94.40575 +38.275223,-1.5584482,0.50217104,94.959,True,0.0,94.40575 +243.82552,0.99452186,0.94292146,374.67834,True,0.0,135.37794 +48.580544,0.99672353,2.2853487,74.77704,True,0.0,135.37794 +1.9679984,-1.2456796,1.9176198,3.7028296,False,0.0,135.37794 +74.83727,-2.1504538,-2.2833729,325.7362,True,0.0,144.14636 +65.3093,-1.6060591,1.0879344,169.27554,True,0.0,144.14636 +340.4907,1.5503147,0.27492386,838.48114,True,0.0,729.2892 +329.33835,0.7110144,-2.9281073,416.15213,True,0.0,729.2892 +69.797226,0.3590135,-1.9329113,74.34386,True,1.7250935,121.147644 +51.726627,0.07459926,1.0810077,51.870625,True,0.0,121.147644 +3.0774488,2.1688294,1.1057643,13.636713,False,0.0,121.147644 +183.55623,1.278292,2.8947744,355.09085,True,0.0,345.83575 +159.21407,1.5812856,-0.2450348,403.36182,True,0.0,345.83575 +4.888489,-1.6376015,1.4781332,13.045581,False,3.919425,345.83575 +102.318855,0.7961479,-1.522417,136.49577,True,0.0,140.07289 +53.73921,1.147819,2.3837554,93.201,True,2.1746762,140.07289 +2.248543,0.29398167,2.3351207,2.3464103,False,0.0,140.07289 +50.617195,0.8986886,0.16978176,72.47073,True,1.4832149,104.87782 +45.774216,1.7516345,-3.1313212,135.89235,True,0.0,104.87782 +2.7831738,1.7038046,0.41298455,7.899765,False,1.6567887,104.87782 +137.67181,1.7754582,2.954714,417.99854,True,0.0,261.27194 +107.3497,1.0076967,-0.19542143,166.62517,True,0.0,261.27194 +12.913339,0.6536709,-0.012690618,15.771826,False,0.0,261.27194 +1.7568387,-0.4617034,-0.60894454,1.9474415,False,2.3999693,261.27194 +2.218834,-1.48461,2.4085767,5.147511,False,0.0,261.27194 +108.07793,1.6249577,-0.72556186,285.06226,True,1.0701708,17.79396 +37.11861,1.8601342,-0.57256806,122.12488,True,0.0,17.79396 +5.6642766,-0.0050058146,1.3446865,5.664347,False,9.539705,17.79396 +2.4633172,1.7078848,-0.7879666,7.0186405,False,0.0,17.79396 +53.85119,2.085415,2.7166688,220.04094,True,0.0,80.984184 +30.92275,2.0900364,-0.67369395,126.92076,True,0.0,80.984184 +2.7189808,-0.22723982,2.5967407,2.7894845,False,1.5908666,80.984184 +77.33132,1.7451053,-3.1303504,228.17113,True,0.0,88.75141 +37.90299,2.0531998,1.281721,150.11707,True,0.0,88.75141 +147.44641,0.9322836,-1.4227481,216.30074,True,2.1180418,71.098465 +57.387234,0.9501327,-0.6293898,85.29874,True,0.0,71.098465 +7.18763,0.93503094,-1.3463825,10.565335,False,14.980879,71.098465 +6.2724814,0.99965185,-0.76949996,9.676379,False,4.7126837,71.098465 +72.20418,-0.055071272,0.48070586,72.3137,True,0.0,140.34392 +58.58052,0.8943327,3.053862,83.611496,True,0.0,140.34392 +4.0702896,-0.62417567,3.0094972,4.8892508,False,10.21423,140.34392 +79.69546,-1.7258822,-3.1115048,230.93713,True,0.0,93.21632 +54.218204,-1.648298,1.5984151,146.13167,True,1.5032527,93.21632 +2.8023846,1.6422857,-0.1558033,7.511096,False,2.4567819,93.21632 +69.25996,0.7179908,-0.08409696,87.892296,True,1.7147568,130.14145 +58.187614,0.21758968,-2.9948182,59.57051,True,0.0,130.14145 +2.3178258,-2.1910174,-2.6586761,10.495244,False,0.0,130.14145 +2.294736,-0.12211585,1.3455904,2.311867,False,0.0,130.14145 +1.9080263,0.5581461,1.6830949,2.2130234,False,0.0,130.14145 +86.470764,-1.2564969,-1.6771767,164.19685,True,0.0,156.44371 +55.288986,-0.22850223,1.2800217,56.738686,True,0.0,156.44371 +5.596627,0.6214519,2.3573222,6.7125754,False,0.0,156.44371 +2.1468785,0.18009809,0.2043624,2.1817899,False,0.0,156.44371 +53.23438,-0.6330909,-0.93587065,64.26378,True,0.0,78.63299 +37.3146,-1.9250605,-2.0940788,130.62779,True,0.0,78.63299 +22.235441,-1.0603646,-1.4042084,35.951965,False,0.0,78.63299 +3.0976431,-0.27726114,-2.4080477,3.2174714,False,0.0,78.63299 +2.1246963,-0.36318418,1.1866022,2.26637,False,0.0,78.63299 +115.24277,-1.0878853,2.9786153,190.434,True,0.0,220.51361 +86.11016,-2.0042167,-0.1665202,325.28308,True,0.0,220.51361 +2.9009926,0.071902096,-2.5908942,2.908495,False,0.0,220.51361 +3.0707126,-0.8467559,-1.683018,4.2389235,False,0.0,220.51361 +155.32745,-1.1098177,1.4555686,261.21606,True,0.0,116.71617 +75.38611,-0.86549145,0.34964028,105.42816,True,3.5174537,116.71617 +10.893404,-0.71838695,2.845502,13.827325,False,0.0,116.71617 +57.115234,0.74192053,-2.8275652,73.569084,True,0.0,128.19669 +45.367653,2.1650026,0.09350504,200.28398,True,0.0,128.19669 +9.039549,-1.2156044,2.877576,16.582432,False,1.6947783,128.19669 +2.7772915,0.30211672,-0.29604483,2.9050064,False,0.0,128.19669 +2.3799307,-0.73715854,1.0220926,3.0563784,False,0.0,128.19669 +2.214155,0.6523595,-2.659398,2.7022448,False,0.0,128.19669 +74.38696,-0.44507906,-2.8743498,81.87725,True,0.0,132.1607 +58.689453,-0.40721917,0.29223597,63.623234,True,0.0,132.1607 +2.3739772,-0.26776537,-2.652157,2.459592,False,0.0,132.1607 +2.130247,0.07780732,1.8728033,2.1366985,False,0.0,132.1607 +122.88528,0.93958205,3.097714,181.23752,True,0.0,151.61923 +84.66899,0.85296446,1.425773,117.38267,True,0.0,151.61923 +121.697296,-0.46083155,-0.16904636,134.84978,True,0.0,97.73455 +38.951332,-1.2176726,-1.4426905,71.57758,True,0.0,97.73455 +3.4039907,-0.7407623,-2.628784,4.3814197,False,2.8070972,97.73455 +2.1751428,-0.9807353,-1.6834282,3.3077955,False,7.9966908,97.73455 +186.11266,-0.57129115,-0.726171,217.31885,True,0.0,222.28247 +141.72743,-1.2669407,0.52386457,271.5262,True,0.0,222.28247 +4.00747,-1.2651792,-0.61035955,7.666123,False,0.0,222.28247 +2.7655191,0.17874552,-2.7476842,2.809816,False,1.2478415,222.28247 +82.42851,-0.045589615,1.8155348,82.51419,True,0.0,152.60115 +61.760574,0.6952909,-1.3384707,77.30019,True,0.0,152.60115 +3.7653525,1.6481339,-0.5623636,10.147024,False,0.0,152.60115 +122.50141,0.89546883,-2.7153146,174.98712,True,0.0,111.748146 +81.85345,0.18302335,-1.8416436,83.22822,True,0.0,111.748146 +131.34435,1.2910296,-0.3757034,256.87778,True,0.0,222.35841 +93.62301,1.6378821,2.4471943,249.91043,True,0.0,222.35841 +2.6710443,0.092896275,2.4586933,2.6825778,False,0.0,222.35841 +2.43399,1.3157052,-2.4090912,4.8627024,False,0.0,222.35841 +124.404465,2.0282464,-1.2179972,480.96704,True,0.0,42.866436 +47.182293,1.675576,-0.7816482,130.43713,True,0.0,42.866436 +102.12693,0.07215504,-1.4401222,102.3929,True,0.0,193.53127 +89.06987,-1.6936748,-1.7577028,250.4322,True,4.5376034,193.53127 +53.406384,-0.68477994,2.2326505,66.42516,True,0.0,73.205635 +34.792076,-1.209558,-2.173805,63.50131,True,0.0,73.205635 +6.3466845,-1.2100506,-2.1126308,11.588527,False,0.0,73.205635 +2.1881337,0.3484444,-0.3280866,2.3223178,False,0.0,73.205635 +1.8606564,0.46152088,-1.7441356,2.06236,False,0.0,73.205635 +60.021225,-1.0085146,0.55375665,93.22156,True,0.0,76.07629 +41.716682,-2.1431644,1.5300615,180.29239,True,0.0,76.07629 +8.866222,-1.7986462,-3.0984054,27.51626,False,0.0,76.07629 +2.6385736,-0.40108997,1.3833396,2.8536723,False,0.0,76.07629 +2.607709,-1.7228587,2.7915866,7.535067,False,1.4010171,76.07629 +2.0928845,-1.7975048,3.0667052,6.4882383,False,0.0,76.07629 +2.1839075,-0.024263958,2.0588589,2.1845503,False,0.0,76.07629 +77.69124,-0.14437094,-0.48059157,78.502304,True,0.0,48.77195 +73.14495,-0.7711816,-0.36801305,95.99493,True,0.0,48.77195 +3.8123698,0.017329192,-0.7039821,3.8129423,False,2.6205733,48.77195 +1.7536541,-0.07010413,-2.756276,1.7579652,False,0.0,48.77195 +1.7039756,0.18485117,-1.9109479,1.733171,False,0.0,48.77195 +108.492775,-0.51861256,-2.7362247,123.41278,True,0.0,210.00366 +107.13264,-0.35025725,-0.08333547,113.77162,True,0.0,210.00366 +1.9121355,1.8106868,-0.26853606,6.0023727,False,0.0,210.00366 +128.2112,-1.6679313,-1.0267464,351.92862,True,7.007146,112.284935 +45.666485,-0.39607087,-0.4666582,49.295456,True,0.0,112.284935 +11.692109,0.67782736,-0.56950974,14.482506,True,0.0,112.284935 +56.908134,-1.1425081,2.413533,98.27006,True,0.0,15.001693 +30.199131,-0.85324067,2.197028,41.87522,True,0.0,15.001693 +1.9552152,-0.19546457,1.3314966,1.9926852,False,0.0,15.001693 +54.85995,1.8132726,0.7652671,172.6332,True,2.245847,18.013016 +55.166855,2.1387148,0.746265,237.392,True,0.0,18.013016 +49.101677,0.31422848,0.92793006,51.545826,False,0.0,18.013016 +3.7399702,1.5518376,0.8640377,9.222755,False,0.0,18.013016 +2.3712177,2.0215135,0.74045384,9.108082,False,23.242672,18.013016 +121.822685,-2.2027369,0.6684934,557.963,True,0.0,214.50145 +94.060196,-2.3454025,-2.4019718,495.38126,True,0.0,214.50145 +3.5931394,-0.93956953,-2.595291,5.299298,False,0.0,214.50145 +1.8937777,-0.18527676,0.68484664,1.9263752,False,0.0,214.50145 +144.81111,0.76913315,0.087572694,189.79736,True,0.0,83.975555 +46.063023,0.41225055,1.0929518,50.03299,True,0.0,83.975555 +2.758941,-1.7192799,-1.3881437,7.945341,False,0.0,83.975555 +2.1054893,0.7896388,1.1045961,2.7967315,False,0.0,83.975555 +199.4135,-0.111204304,1.8725057,200.64778,True,0.0,308.688 +154.63467,-0.41296992,-2.317217,168.00916,True,0.0,308.688 +174.87097,-1.5928658,-2.237694,447.77148,True,0.0,93.68656 +46.580112,-0.7815407,-2.866384,61.544815,True,1.5582349,93.68656 +2.0552843,-0.27937073,0.4811621,2.1360126,False,5.955235,93.68656 +301.81158,-1.075465,-1.3535093,493.8384,True,0.0,744.1652 +281.083,0.38200027,1.7959973,301.842,True,8.514561,744.1652 +7.880228,-0.70381665,1.6892741,9.913905,False,1.2475749,744.1652 +1.9121963,-0.6581312,2.2928004,2.3414824,False,0.0,744.1652 +62.460217,0.43357894,-2.6790586,68.42374,True,0.0,7.779995 +41.820267,0.28359517,-2.70427,43.51329,True,1.5960542,7.779995 +172.07428,-1.1038889,-2.4603434,288.0051,True,0.0,386.93152 +139.62045,0.27851027,0.6198126,145.07059,True,0.0,386.93152 +2.6725967,1.6328646,2.097582,7.100936,False,1.2447249,386.93152 +100.71591,0.8650093,-0.5921495,140.80467,True,0.0,253.67313 +89.327866,-0.7376645,2.6722076,114.75396,True,0.0,253.67313 +2.6963987,-0.19864962,2.6818957,2.7497761,False,0.0,253.67313 +122.019,-1.2278163,1.8724527,226.14381,True,0.0,66.76515 +33.599422,-0.9981365,2.9393384,51.773125,True,0.0,66.76515 +139.7107,-1.7571918,2.847688,416.94324,True,0.0,5.4629436 +30.641489,-1.757126,2.9312394,91.43874,True,0.0,5.4629436 +291.64355,-0.17994985,1.5855123,296.37833,True,0.0,709.9737 +285.50266,1.239169,-2.1311483,534.22797,True,0.0,709.9737 +1.7979585,-0.7153469,1.721787,2.27794,False,0.0,709.9737 +80.94096,-0.11436681,2.8479402,81.47089,True,0.0,87.81991 +35.516914,-0.44731495,0.9876779,39.12986,True,0.0,87.81991 +176.20657,0.52870196,-0.49619144,201.41275,True,0.0,325.52945 +149.48239,0.37415132,2.6177819,160.06798,True,0.0,325.52945 +3.3021855,-0.110714264,1.0068029,3.3224447,False,0.0,325.52945 +1.7837586,-0.2320974,0.60374403,1.8320196,False,0.0,325.52945 +50.20754,1.8549255,0.11620183,164.37161,True,0.0,10.090605 +39.690147,2.0689116,0.044638783,159.6045,True,0.0,10.090605 +53.266563,1.2529714,1.8816078,100.84384,True,0.0,28.804228 +39.87571,1.2125125,2.5158672,72.959984,True,0.0,28.804228 +93.03285,-1.5572766,0.6435876,230.56274,True,0.0,141.72867 +50.59149,-2.0699687,-2.527568,203.6501,True,2.4737806,141.72867 +2.3644235,-0.4284151,-2.0484643,2.5847452,False,0.0,141.72867 +2.206229,0.36771378,-0.10375607,2.357073,False,0.0,141.72867 +101.95315,-0.64884746,1.9708922,124.178024,True,0.0,195.22195 +97.65738,0.32442248,-2.3281295,102.841835,True,0.0,195.22195 +3.1448689,0.57926863,-1.9865918,3.6874228,False,0.0,195.22195 +1.7033399,-0.141863,1.1420654,1.7205087,False,0.0,195.22195 +69.55842,-1.7451786,-0.77657217,205.25082,True,2.193694,20.212156 +57.675224,-1.6820116,-1.0906559,160.40517,True,1.449516,20.212156 +9.81869,-0.31249207,2.1476865,10.302009,False,16.701881,20.212156 +3.543527,-1.0961415,-0.13559112,5.8942223,False,0.0,20.212156 +248.5151,-0.961876,-2.8272347,372.62054,True,0.0,51.801907 +119.96319,-0.7347512,-3.0230021,153.82808,True,0.0,51.801907 +3.184164,0.26736814,0.25922045,3.2986548,False,62.502144,51.801907 +116.86895,0.66067106,0.7564439,143.31615,True,3.4717512,270.32455 +118.41157,1.7662011,-2.653019,356.39362,True,6.262283,270.32455 +6.3351603,-1.6857095,-2.0715818,17.680136,False,2.6987727,270.32455 +57.94246,0.96363175,-0.6115058,86.99202,True,0.0,105.07358 +43.62493,0.27320212,2.8900888,45.26315,True,0.0,105.07358 +2.7395012,-0.23802392,-0.8783766,2.817472,False,0.0,105.07358 +165.20326,-0.99200946,-3.073244,253.37874,True,0.0,248.13335 +99.99229,-1.3584745,0.7189696,207.34935,True,0.0,248.13335 +75.751045,0.22041951,0.65805036,77.59869,True,0.0,166.50598 +70.72099,1.261605,-2.585876,134.87495,True,0.0,166.50598 +6.7153153,1.2864236,-2.5110993,13.081684,False,0.0,166.50598 +137.10243,-1.6921886,0.3505453,384.9474,True,0.0,279.89584 +129.04832,-2.337304,-2.7366319,674.2694,True,0.0,279.89584 +2.1425931,1.7856797,-1.2942995,6.568457,False,0.0,279.89584 +202.38351,0.2693155,0.7582326,209.7675,True,0.0,29.361034 +79.83799,0.49720046,0.723653,89.91128,True,0.0,29.361034 +2.038366,0.69082487,-1.4982247,2.5444143,False,0.0,29.361034 +65.21242,-2.0779138,1.6652585,264.53345,True,0.0,87.974205 +46.32359,-0.9556607,2.8051867,69.13671,True,0.0,87.974205 +101.440765,-2.2228436,-0.66599846,473.82227,True,0.0,34.00827 +34.081615,-1.6650635,-0.78964806,93.30162,True,0.0,34.00827 +73.091385,-1.9812939,-1.4641268,270.07306,True,0.0,145.76105 +72.66729,-2.0038862,1.6586637,274.41486,True,0.0,145.76105 +107.858345,-0.27523917,-0.94090086,111.96969,True,1.824142,133.09972 +102.117035,0.92044604,-0.9515181,148.51653,True,0.0,133.09972 +6.1534233,0.96197313,1.645858,9.227036,False,0.0,133.09972 +1.8317875,-1.6213472,2.237164,4.815343,False,0.0,133.09972 +156.29597,0.79186094,0.15947884,207.91284,True,0.0,297.3287 +118.430695,1.7859778,-2.4307115,363.1703,True,0.0,297.3287 +1.7791106,-0.5312685,-1.6536334,2.0361454,False,0.0,297.3287 +206.13393,2.0450392,-3.0550795,809.9864,True,0.0,301.62912 +113.33284,1.9001287,-0.2712321,387.38892,True,0.0,301.62912 +2.0864027,0.43354577,1.4270701,2.2855754,False,0.0,301.62912 +1.8987298,-1.9490937,-2.0481882,6.801937,False,0.0,301.62912 +130.58766,-2.0994854,2.515539,540.92596,True,1.3616701,208.12842 +88.306915,-1.7962973,-0.037705578,273.45123,True,0.0,208.12842 +1.7816229,2.099471,-0.54654664,7.3798146,False,0.0,208.12842 +160.2101,0.23830043,-2.6202488,164.7806,True,0.0,245.76521 +110.78454,0.7659046,-0.4561564,144.898,True,1.1395756,245.76521 +55.14605,-0.051034443,0.18242592,55.21788,True,0.0,105.21308 +44.322323,-0.9060688,2.8210166,63.795006,True,0.0,105.21308 +11.246545,0.040479887,-1.9435196,11.25576,True,0.0,105.21308 +3.4468203,1.954423,0.96344626,12.411121,False,0.0,105.21308 +139.63303,0.86650425,-0.91647977,195.41643,True,4.671469,204.11748 +72.59144,1.2098514,2.318012,132.52394,True,0.0,204.11748 +2.5192044,-0.84227395,-2.987703,3.4668915,False,0.0,204.11748 +1.7446272,0.05242826,1.0489951,1.7470255,False,0.0,204.11748 +244.66194,1.611746,-1.8817903,637.47797,True,0.0,160.55179 +106.89394,1.92622,-0.9018125,374.62134,True,0.0,160.55179 +1.7793825,1.1313796,-2.565335,3.0449843,False,3.558211,160.55179 +96.90425,0.16665338,-1.0381786,98.253044,True,0.0,205.24562 +91.287415,1.0141072,2.115695,142.39134,True,1.6523883,205.24562 +3.4671283,-0.2638193,0.19597493,3.5884867,False,0.0,205.24562 +2.2479947,-0.069351636,0.16758035,2.2534027,False,0.0,205.24562 +55.034084,-2.0932343,-2.3264542,226.58618,True,0.0,96.92257 +42.32374,-1.9051192,0.8646458,145.36116,True,0.0,96.92257 +1.9086807,1.8915364,-1.3838347,6.470796,False,0.0,96.92257 +78.67359,-1.9569118,1.1973735,283.96176,True,0.0,132.86624 +47.242226,-1.050258,-2.306976,75.782104,True,0.0,132.86624 +450.67908,0.115169995,1.1279646,453.6713,True,0.0,386.96597 +251.44264,-0.1347693,2.3190088,253.72955,True,0.0,386.96597 +11.922906,1.351533,0.9882237,24.574224,True,1.5042366,386.96597 +6.228792,-0.7141118,-1.7196776,7.8856463,False,129.07379,386.96597 +59.097282,1.9131818,-2.7598717,204.54219,True,0.0,91.71968 +43.785507,0.30038437,-2.5727313,45.775806,True,0.0,91.71968 +7.060006,-0.32855248,-2.3568523,7.444499,False,0.0,91.71968 +2.0140836,-0.6622698,-2.1243558,2.4721553,False,0.0,91.71968 +118.48239,-0.1465485,0.14890626,119.75696,True,0.0,97.655785 +50.24115,-1.3399899,0.17095776,102.513374,True,0.0,97.655785 +2.4470477,-1.2616273,0.5003012,4.6669555,False,0.0,97.655785 +149.78949,-1.6202606,-1.2053336,393.36624,True,0.0,71.46131 +35.12138,-2.2245848,-1.9966968,164.32861,True,0.0,71.46131 +31.824518,-1.4600754,1.5151931,72.217834,False,209.29944,71.46131 +55.19645,2.1099632,1.1484814,230.9745,True,0.0,85.46738 +34.09071,2.2389205,-1.6240196,161.7565,True,0.0,85.46738 +3.4234183,-0.3878776,-2.1010904,3.6841881,False,0.0,85.46738 +127.62493,-1.5757697,-1.5281707,321.69836,True,0.0,76.3704 +65.517975,-0.8811453,-1.9737704,92.64146,True,1.7309444,76.3704 +1.7630882,0.059211463,2.4049265,1.7661798,False,0.0,76.3704 +81.48135,0.95909816,-1.3243285,121.919754,True,0.0,153.1175 +66.5757,1.5497217,1.6241238,163.8583,True,0.0,153.1175 +91.5997,-1.3234832,2.7210126,184.23859,True,0.0,104.105156 +37.150272,-1.1775305,0.5293326,66.02321,True,0.0,104.105156 +2.1196775,0.278427,0.47166598,2.20237,False,0.0,104.105156 +71.120026,-0.5650707,1.3253716,82.77987,True,0.0,119.22559 +52.661633,-2.0516407,2.4557185,208.25519,True,0.0,119.22559 +2.9052536,2.3469892,-2.64392,15.324782,False,0.0,119.22559 +3.8259964,-2.3233922,-2.723261,19.719551,False,0.0,119.22559 +125.08351,-1.174808,-0.7736678,221.79805,True,0.0,217.28584 +89.72352,-1.6631211,2.5589297,245.18286,True,0.0,217.28584 +2.5769894,-0.72838634,1.5579689,3.2913594,False,0.0,217.28584 +154.01015,0.08246351,0.29593948,154.53409,True,0.0,297.71967 +114.6449,-0.8913101,-2.7715464,163.27956,True,0.0,297.71967 +3.664996,1.7977513,0.22201635,11.364657,False,3.7430546,297.71967 +1.9157091,1.0227056,2.3809006,3.007978,False,0.0,297.71967 +1.9138982,-1.6116382,-2.4798706,4.986254,False,0.0,297.71967 +72.258804,-2.1812384,-2.1782315,324.08688,True,0.0,120.120255 +49.875267,-2.2448952,0.98359996,238.0388,True,0.0,120.120255 +3.8186917,-0.60056555,-2.6745136,4.5283017,False,1.008698,120.120255 +3.311462,0.34027278,2.9570982,3.5050285,False,3.6879387,120.120255 +168.91185,-0.8880252,-2.6776395,240.00626,True,6.701376,288.01083 +120.79992,-1.1434494,0.48166505,208.7598,True,3.8539279,288.01083 +3.7376153,1.568147,1.1961318,9.355588,False,0.0,288.01083 +2.4250276,0.014087407,1.2895596,2.4252682,False,0.0,288.01083 +128.78284,-0.22695754,2.7472932,132.11389,True,0.0,240.92874 +107.794395,0.20833993,-0.28897998,110.14231,True,0.0,240.92874 +50.024143,-2.335505,1.0289344,260.91193,True,0.0,90.9398 +41.27377,-2.21974,-2.202163,192.20316,True,0.0,90.9398 +2.6466851,-0.9965155,2.642008,4.073235,False,0.0,90.9398 +63.6601,1.8403114,2.532987,205.53514,True,0.0,94.80041 +38.669506,1.8170824,-0.008208598,122.125595,True,1.4006025,94.80041 +1.9030987,-0.0775771,1.8036759,1.9088283,False,0.0,94.80041 +2.0833209,-1.036019,3.0586095,3.3050227,False,0.0,94.80041 +51.878506,1.8799446,-2.6200469,173.94188,True,0.0,103.75083 +51.133263,1.635073,0.57099473,136.13644,True,0.0,103.75083 +1.8920127,1.8774153,-2.5218852,6.328378,False,51.792694,103.75083 +53.188465,-1.0715511,0.92664665,86.760544,True,1.3815808,114.57072 +50.732273,-1.9716119,-2.1735795,185.71756,True,0.0,114.57072 +2.110216,0.7850591,1.619491,2.7945898,False,0.0,114.57072 +3.8920672,-1.6616569,0.78949225,10.621171,False,0.0,114.57072 +51.72254,1.5873429,-2.6999261,131.76846,True,0.0,49.397522 +42.939205,0.58235484,-2.727668,50.428463,True,0.0,49.397522 +245.47762,1.072522,0.47927994,400.7282,True,0.0,490.64243 +224.42316,1.7128285,-2.4283154,642.40875,True,0.0,490.64243 +3.926842,0.5661602,-0.82425207,4.5731835,False,0.0,490.64243 +3.5089512,1.6459502,1.14989,9.436911,False,0.0,490.64243 +1.986795,0.14105932,2.845852,2.0065942,False,0.0,490.64243 +2.1905284,0.5697772,-0.913055,2.5558257,False,0.0,490.64243 +2.3926427,2.009988,-0.2683749,9.088716,False,0.0,490.64243 +101.57605,-2.2111104,-2.7675285,469.04886,True,0.0,201.1854 +97.38602,-1.9060624,0.41961277,334.77487,True,0.0,201.1854 +68.23045,-1.1372749,1.0819821,117.32059,True,0.0,115.818855 +44.615044,-1.9400767,-2.588541,158.44983,True,2.2747526,115.818855 +2.0371532,2.1668353,2.0149565,9.009463,False,0.0,115.818855 +114.85056,-1.0515925,-2.7608345,184.42625,True,0.0,119.835045 +105.421,-2.0598817,-2.476473,420.23502,True,0.0,119.835045 +52.357834,1.2821183,-2.7575343,101.61911,True,1.0088198,37.105896 +32.1371,1.3322037,2.5885406,65.13034,True,0.0,37.105896 +2.3805754,1.7304183,2.985147,6.9277415,False,0.0,37.105896 +91.416306,-0.43958494,1.7501824,100.39186,True,0.0,215.25555 +84.06843,-1.7754143,-1.1987678,255.23763,True,0.0,215.25555 +3.2503638,1.1317639,-2.6185913,5.5639496,False,0.0,215.25555 +1.9157139,-0.48515683,-2.1618166,2.1456287,False,0.0,215.25555 +64.738785,1.8881506,-0.4018124,218.76819,True,0.0,106.259926 +43.664555,1.8849179,2.6644847,147.09836,True,0.0,106.259926 +133.20078,0.113038994,3.0978897,134.05269,True,5.583047,226.59035 +88.39451,-1.0703382,-1.2089655,144.05026,True,0.0,226.59035 +57.687447,2.2784622,-2.5107515,284.51733,True,0.0,84.651215 +33.370575,2.2696767,1.1640935,163.17572,True,0.0,84.651215 +2.9549918,-1.8849703,-2.3760414,9.955356,False,0.0,84.651215 +118.63615,-2.3766253,0.30389932,644.2752,True,0.0,156.67462 +61.322823,-2.3015926,2.6282363,309.37915,True,0.0,156.67462 +4.1196632,1.0944358,0.39163876,6.843224,False,2.551095,156.67462 +2.8117607,-0.8649984,-0.60937595,3.9309182,False,0.0,156.67462 +2.3689725,-0.10819875,-1.8365277,2.382853,False,0.0,156.67462 +1.8735602,-0.0024659585,-2.263136,1.8735659,False,0.0,156.67462 +2.0923884,-1.1924957,2.8946993,3.7649999,False,0.0,156.67462 +145.35443,-0.8976691,1.6092073,207.95824,True,0.0,23.057673 +35.360157,-0.7960436,1.9155327,47.168034,True,0.0,23.057673 +3.0586798,-1.7421585,-0.8271269,8.999854,False,0.0,23.057673 +58.520535,-2.1355011,0.65384406,251.03763,True,0.0,112.388626 +45.39271,-1.2229599,-2.115253,83.785545,True,0.0,112.388626 +7.2318544,1.1032559,-2.4257965,12.097997,False,0.0,112.388626 +240.64537,1.7764148,0.67807394,731.30664,True,0.0,567.29974 +209.00844,0.34943253,-2.5504906,221.8991,True,0.0,567.29974 +3.5194435,0.38658527,1.2463803,3.7857225,False,0.0,567.29974 +2.5448966,-0.53018206,-0.804618,2.91103,False,0.0,567.29974 +2.254327,-0.42647725,-0.8171488,2.462465,False,0.0,567.29974 +2.2559469,0.38640305,0.64069575,2.4264674,False,1.400585,567.29974 +62.409275,1.8113718,-3.061366,196.03581,True,0.0,90.35762 +47.675312,2.2017977,-1.1913078,218.15881,True,0.0,90.35762 +1.8015363,-1.8871858,0.34618843,6.082225,False,0.0,90.35762 +94.30613,-1.2987205,1.2772112,185.66452,True,0.0,181.88466 +78.68628,-1.9774312,-1.7211899,289.66727,True,0.0,181.88466 +170.36871,0.301454,3.0407503,178.16861,True,6.855975,45.650635 +31.052105,0.13134864,2.4270818,31.320353,True,0.0,45.650635 +3.512369,-0.30309314,3.008915,3.6749403,False,0.0,45.650635 +1.7955146,-0.42018336,-2.659166,1.956363,False,2.4320776,45.650635 +126.79722,1.0672952,-0.059887756,206.13692,True,6.324214,257.11072 +107.47793,0.17426501,3.1157131,109.11402,True,0.0,257.11072 +10.155338,-0.40618706,1.1709769,11.004674,False,3.7471216,257.11072 +4.230933,1.0989316,-2.6985793,7.0533566,False,0.0,257.11072 +87.84729,-1.0798659,-0.25445646,144.24199,True,3.133812,146.9758 +58.107723,-0.5808882,3.0367596,68.19019,True,0.0,146.9758 +5.763226,-0.5808611,3.1208642,6.763127,False,0.0,146.9758 +139.28519,2.1812048,1.3957164,624.6854,True,0.0,154.49353 +65.74518,2.2651188,-0.47945565,320.05038,True,1.2537525,154.49353 +163.23172,1.008762,0.47208345,253.5702,True,1.4200377,262.36023 +105.19311,1.1737998,-2.8059683,186.37318,True,0.0,262.36023 +3.3507621,-0.14791068,-2.1038632,3.3874824,False,3.9157841,262.36023 +50.31743,-1.0377549,-2.7740746,79.93229,True,0.0,99.631294 +36.948208,-2.2347956,-0.16125971,174.60957,True,0.0,99.631294 +2.6033773,0.68880385,-0.2528963,3.245772,False,0.0,99.631294 +1.8699452,-2.2346146,-0.07082358,8.83541,False,34.040127,99.631294 +95.35012,-0.04860964,-1.6796,95.46279,True,0.0,33.726006 +41.050636,-0.39319015,-2.0957305,44.26491,True,0.0,33.726006 +2.3456242,0.37415713,2.112266,2.5117347,False,0.0,33.726006 +134.88222,-1.308236,0.6690193,267.73703,True,5.950618,75.04405 +77.357086,-1.2199855,1.4155778,142.42882,True,0.0,75.04405 +5.244655,1.8284084,-1.9522512,16.742622,False,0.0,75.04405 +4.4246874,-0.12699923,-0.9029611,4.4604177,False,3.9685364,75.04405 +2.5255551,1.8225963,0.85878766,8.018018,False,0.0,75.04405 +50.06116,0.0046527856,0.3166133,50.061703,True,1.2700499,84.39834 +37.914516,0.17477186,-2.2932281,38.495045,True,0.0,84.39834 +55.256817,-2.3373973,2.6797688,288.73984,True,0.0,89.793076 +37.169697,-1.6739439,-1.2076365,102.60073,True,0.0,89.793076 +3.240188,-1.5854577,-2.2671194,8.240412,False,1.0127592,89.793076 +110.17678,-0.07350622,-1.9902267,110.47456,True,0.0,41.38725 +56.163208,0.19820324,-1.5363029,57.269997,True,0.0,41.38725 +2.62613,1.6049236,1.4341298,6.7995553,False,0.0,41.38725 +2.2689743,0.30212325,-2.4527519,2.3733187,False,0.0,41.38725 +122.710144,0.79932475,-2.5593047,164.04327,True,1.1731343,215.21712 +93.817856,0.98064756,0.48416755,142.6618,True,0.0,215.21712 +3.4339972,0.25939003,3.0260453,3.5501714,False,0.0,215.21712 +51.57932,-0.7518531,-1.0608461,66.8576,True,0.0,92.668144 +43.026638,-0.70054096,1.7137307,54.023365,True,1.0992352,92.668144 +2.141,-1.1449745,-0.16651623,3.704565,False,0.0,92.668144 +155.47617,1.0010992,-2.971208,240.11327,True,0.0,48.46576 +67.71139,1.0759447,-2.5004854,110.83466,True,0.0,48.46576 +3.4319832,0.9080573,-2.9969885,4.946874,False,22.002571,48.46576 +3.062097,-1.0983739,-0.090447076,5.102522,False,0.0,48.46576 +2.802561,0.87199193,1.247112,3.9373012,False,0.0,48.46576 +84.72395,1.3553126,-1.1201792,175.20235,True,0.0,173.59714 +83.67585,1.8567812,2.0983014,274.42618,True,0.0,173.59714 +2.4208674,-0.6313044,-1.1532017,2.9195163,False,0.0,173.59714 +2.211218,-0.7190703,2.3301265,2.8079474,False,0.0,173.59714 +197.58032,0.9855737,-0.6042221,301.56424,True,0.0,318.2758 +120.54611,0.3682094,2.9140983,128.81056,True,0.0,318.2758 +1.8021724,-0.12812917,-2.605366,1.8169858,False,0.0,318.2758 +1.8357823,2.2289295,1.7646719,8.625937,False,0.0,318.2758 +55.69333,0.7365303,-2.2089553,71.494865,True,0.0,134.09183 +53.31099,2.2165577,1.703021,247.4876,True,0.0,134.09183 +3.193336,-0.7211059,0.24966225,4.0602,False,0.0,134.09183 +3.0525763,1.0302638,2.5997217,4.8211136,False,0.0,134.09183 +53.263252,-1.8162477,2.562157,168.08226,True,0.0,85.165764 +31.610533,-1.2603894,-0.6746899,60.22341,True,0.0,85.165764 +5.9711347,-0.8564867,0.11018838,8.298456,False,0.0,85.165764 +3.2198663,1.7731634,2.4417734,9.754987,False,0.0,85.165764 +2.3090909,-0.6046288,2.3735883,2.744181,False,0.0,85.165764 +120.8009,0.3142316,-1.7180121,126.81417,True,0.0,91.19912 +38.823483,0.57545793,-0.29535073,45.43108,True,0.0,91.19912 +5.243164,1.7250524,1.6655228,15.181525,False,0.0,91.19912 +2.1675794,1.8391601,1.25365,6.990663,False,0.0,91.19912 +58.70356,-1.8594285,-2.819033,193.01227,True,0.0,91.70235 +36.007492,-2.0701215,0.5805718,144.96538,True,0.0,91.70235 +1.7053865,-1.2975321,1.7847431,3.3540325,False,0.0,91.70235 +61.423367,-2.0994174,-0.901911,254.4138,True,3.1028628,90.774445 +43.2695,-2.1675904,1.2486742,191.50342,True,0.0,90.774445 +1.7892008,-2.1000235,-0.98966414,7.415178,False,3.1028628,90.774445 +1.7018621,-0.08864869,1.541402,1.7085536,False,0.0,90.774445 +76.0802,-1.8155211,2.9803998,239.92007,True,1.1437905,148.59593 +68.579216,-2.2980626,-0.23424865,344.79333,True,0.0,148.59593 +95.53311,0.9544059,-0.0010609891,142.44789,True,1.0649464,167.7945 +64.81349,1.6823874,-3.0609717,180.3212,True,1.6746031,167.7945 +139.25159,-0.02742905,2.3257432,139.30399,True,0.0,262.12738 +122.06171,0.2403275,-0.64339197,125.60368,True,0.0,262.12738 +2.7740684,-0.6419942,1.0827899,3.3656502,False,0.0,262.12738 +64.65545,-0.28503123,-0.11308181,67.29967,True,0.0,113.8233 +50.115734,-0.34434238,3.1002698,53.116364,True,0.0,113.8233 +2.0420167,-0.016906759,2.7962677,2.0423088,False,0.0,113.8233 +60.946457,-1.6113546,2.2912302,158.74144,True,0.0,86.70753 +35.525208,-2.2078333,0.13451879,163.5212,True,0.0,86.70753 +3.454332,1.7797289,0.72784704,10.530416,False,0.0,86.70753 +98.90768,-2.0148842,2.6942902,377.4908,True,0.0,152.20299 +68.78099,-1.7282047,0.40101483,199.7448,True,0.0,152.20299 +59.54122,1.7833581,1.8857847,182.1329,True,0.0,107.40657 +49.81343,2.3228803,-0.60510117,256.6143,True,1.1242679,107.40657 +2.7283607,-1.535018,2.0075595,6.6256337,False,1.903849,107.40657 +126.56581,-0.40400633,1.5893122,137.03618,True,0.0,233.23404 +106.8965,-0.5490657,-1.5333898,123.41861,True,0.0,233.23404 +73.253136,-1.8749557,-2.5305195,244.44174,True,0.0,72.55219 +72.29456,-0.91901225,-2.438917,105.034096,True,1.6990867,72.55219 +1.9534017,2.2935889,-1.7728555,9.77809,False,0.0,72.55219 +1.8135854,-0.15837073,2.9819524,1.8363765,False,0.0,72.55219 +1.7542694,0.60533255,-0.26145527,2.0856106,False,0.0,72.55219 +1.7875797,-0.31816262,2.7388103,1.8788216,False,0.0,72.55219 +122.85621,0.6420987,0.7258735,149.06465,True,0.0,202.66759 +72.5519,-0.1358343,-2.5838883,73.22226,True,0.0,202.66759 +52.708027,1.5541312,-0.5450296,130.25069,True,0.0,83.04244 +30.741846,2.1361027,2.901789,131.95155,True,0.0,83.04244 +1.7429961,0.36117056,-0.86849695,1.8579191,False,1.2485039,83.04244 +54.372757,-0.63865155,1.7929615,65.84348,True,0.0,80.54985 +32.485207,-0.7927201,-0.7476558,43.23797,True,0.0,80.54985 +102.324005,-0.8846105,1.862819,145.03996,True,0.0,213.82178 +97.36404,-1.8512824,-1.939109,317.65097,True,5.337389,213.82178 +3.4268591,0.6523433,0.2336274,4.1822395,False,0.0,213.82178 +3.4847593,-0.7096049,-2.8713377,4.3995543,False,0.0,213.82178 +122.85,1.6886731,0.14415108,343.79935,True,0.0,210.47795 +83.634575,2.2425632,-3.0519304,398.2522,True,0.0,210.47795 +1.9878354,2.298629,2.2529,9.999721,False,1.8949782,210.47795 +248.52043,-0.3526812,2.695047,264.1373,True,0.0,590.0058 +214.53961,-1.8252201,-0.19956422,682.8091,True,0.0,590.0058 +1.9889611,-0.044239223,-1.5774521,1.9909077,False,0.0,590.0058 +103.85922,0.91077584,-0.06473884,149.99675,True,0.0,151.43852 +69.99109,-0.08002045,1.5511912,70.215294,True,0.0,151.43852 +3.1306753,-0.70473325,1.387361,3.9408116,False,0.0,151.43852 +1.937558,0.53099686,0.73449194,2.2171917,False,1.0988822,151.43852 +2.1533139,-0.40591085,0.8020546,2.333157,False,0.0,151.43852 +1.9232888,-0.66425425,-0.7853168,2.3634317,False,0.0,151.43852 +88.26256,-0.8934395,-0.44381374,125.89618,True,0.0,175.27913 +86.4698,-1.5316166,-2.9454265,209.33624,True,0.0,175.27913 +107.48497,-0.41100496,2.3445928,116.69194,True,0.0,167.80193 +61.245556,-0.9447112,-0.67713785,90.66983,True,0.0,167.80193 +5.625441,1.3169972,1.5167755,11.251265,False,0.0,167.80193 +225.91422,-1.692393,-1.5184537,634.42847,True,0.0,418.9654 +158.4264,-0.7110328,1.2488184,200.18996,True,0.0,418.9654 +3.5245738,0.78955704,-0.6979217,4.681456,False,0.0,418.9654 +2.1138146,0.118297644,-2.755407,2.1286228,False,0.0,418.9654 +119.62413,-1.9872526,-2.432181,444.55524,True,0.0,224.78114 +105.18068,-1.8358406,0.79455584,338.1497,True,3.2832837,224.78114 +9.445836,-1.8352606,0.7421559,30.351072,False,3.2832837,224.78114 +1.9029405,-0.47369337,2.3021338,2.1204586,False,1.6980755,224.78114 +62.362343,-2.1728797,-1.6490238,277.43106,True,0.0,88.43005 +37.83307,-2.0686235,2.353467,152.09428,True,0.0,88.43005 +2.0404613,0.8268894,-1.121161,2.7787042,False,0.0,88.43005 +106.56612,1.206164,-2.8011937,193.94974,True,0.0,102.44106 +59.251945,2.1956537,2.6863482,269.51218,True,1.1338922,102.44106 +3.569589,1.642466,-1.338159,9.568996,False,0.0,102.44106 +2.3177624,-1.8960891,2.9212356,7.891926,False,0.0,102.44106 +1.8259223,0.44588333,-2.1744437,2.010457,False,0.0,102.44106 +58.3756,0.9060898,-2.0281425,84.02375,True,0.0,58.69751 +32.687935,0.69843346,2.803369,40.99009,True,0.0,58.69751 +8.3479805,-0.57168067,-0.894443,9.749679,False,0.0,58.69751 +3.666369,-0.54990333,-0.8087977,4.234823,False,0.0,58.69751 +3.1883333,0.4262655,-1.352571,3.4824097,False,0.0,58.69751 +2.6902158,0.773868,0.6247117,3.5367756,False,0.0,58.69751 +2.377748,-0.60342956,-2.7719831,2.8239458,False,0.0,58.69751 +2.1068425,-0.5827983,2.1256804,2.4748838,False,0.0,58.69751 +2.1487093,-2.295311,0.16577792,10.7739,False,0.0,58.69751 +108.77108,1.7397304,2.6629148,319.3179,True,3.8380458,24.287664 +46.752483,1.8571393,2.9839873,153.38335,True,0.0,24.287664 +92.45307,-2.313526,-2.9271038,471.92303,True,2.8676689,167.39119 +75.23114,-2.137306,0.1632696,323.28864,True,0.0,167.39119 +2.2626696,0.42449147,-0.9032212,2.4696078,False,0.0,167.39119 +73.846466,-0.72637254,0.21386908,94.19956,True,0.0,78.41467 +41.3371,-1.2602103,-1.2177213,78.742165,True,1.2811848,78.41467 +55.408325,-0.32954258,2.568061,58.444275,True,1.2142798,107.897484 +51.95787,-0.5728265,-0.69858617,60.718002,True,2.0131598,107.897484 +129.32953,-1.0916736,-0.2094925,214.35788,True,0.0,150.60687 +111.64222,-0.16512609,-1.0388234,113.16773,True,0.0,150.60687 +3.5671885,0.11356231,1.8386047,3.5902152,False,0.0,150.60687 +1.8817812,-0.5932896,-2.129713,2.2227972,False,0.0,150.60687 +51.761616,-1.9832925,1.9718227,191.62782,True,0.0,83.63621 +35.353764,-2.2236636,-1.6600381,165.2671,True,0.0,83.63621 +89.91602,-1.8004993,1.659988,279.54376,True,0.0,18.51182 +36.18233,-2.0249805,1.8944765,139.44598,True,0.0,18.51182 +2.1182823,2.0469165,-0.4536078,8.338743,False,1.0196067,18.51182 +177.33943,1.6929072,0.6254284,498.2567,True,0.0,361.1608 +153.45782,0.8003138,-2.2746296,205.28264,True,0.0,361.1608 +2.123824,-0.4448262,0.15864398,2.3374326,False,0.0,361.1608 +1.7785977,0.32194594,3.1137714,1.8715717,False,0.0,361.1608 +73.432304,-2.234765,-2.2679672,347.0155,True,0.0,128.33513 +56.405342,-2.3551152,1.0693061,299.91357,True,0.0,128.33513 +52.524864,-2.344414,1.9999642,276.36124,True,1.4234958,89.05195 +41.99811,-2.1683946,-0.46860653,186.02216,True,0.0,89.05195 +3.1379516,0.15490007,0.024774123,3.175673,False,2.4009392,89.05195 +2.7896152,-2.039396,-1.1296537,10.901918,False,0.0,89.05195 +151.72473,1.0358909,1.1044271,240.6753,True,0.0,129.14902 +72.732796,2.0869603,0.5484992,297.63864,True,0.0,129.14902 +3.3162527,0.4681069,-2.2377002,3.6862714,False,2.1333325,129.14902 +2.6779444,1.0716403,-0.89451414,4.3685465,False,5.8888965,129.14902 +66.55573,0.45660597,0.336176,73.61519,True,0.0,165.69374 +62.606415,-1.0190485,-2.6882923,98.02585,True,0.0,165.69374 +2.0449803,0.33959645,0.72905636,2.1640372,False,0.0,165.69374 +57.146294,-2.381742,2.3711715,311.9082,True,0.0,107.853485 +40.0408,-1.3450222,-1.0730788,82.05972,True,0.0,107.853485 +124.52078,0.41657573,-1.0232269,135.48232,True,0.0,213.93388 +76.153915,1.3003002,2.2003386,150.13167,True,0.0,213.93388 +78.941696,1.1220922,-1.9408367,134.0774,True,0.0,121.47228 +56.71625,0.9134915,2.0951562,82.07218,True,0.0,121.47228 +2.3100398,-2.3306758,1.6235545,11.991555,False,0.0,121.47228 +1.969062,2.010628,-0.71517336,7.4843163,False,0.0,121.47228 +142.35135,-1.0667176,-0.013951213,231.31824,True,4.660449,30.022778 +68.62355,-1.1063259,0.28837454,115.081764,True,0.0,30.022778 +3.1991255,-1.8072294,2.3683627,10.009503,False,0.0,30.022778 +1.789657,0.17327896,-1.0821549,1.816592,False,0.0,30.022778 +86.1451,-1.1621147,-0.3820917,151.16356,True,0.0,164.46356 +64.35121,-0.25472766,2.7128305,66.45028,True,1.1508389,164.46356 +3.469824,0.8231211,0.90971214,4.71316,False,0.0,164.46356 +2.6962538,0.23034671,-1.3801144,2.7681017,False,0.0,164.46356 +2.5094342,-1.3462497,-2.3098245,5.148356,False,0.0,164.46356 +154.90579,-0.33206543,2.5916553,163.5251,True,0.0,217.4402 +87.562325,-0.16799918,-1.303319,88.8009,True,0.0,217.4402 +1.7954983,-0.8318183,0.7336814,2.4533236,False,2.6201046,217.4402 +132.66017,-0.45026568,-0.8457991,146.33662,True,1.2899072,210.6954 +80.931335,-1.2210058,1.5812211,149.13742,True,0.0,210.6954 +8.96476,0.10959869,-0.5389755,9.018656,False,9.6132965,210.6954 +3.8674889,1.0777375,1.9740112,6.339567,False,0.0,210.6954 +2.9277682,-0.93089175,2.886767,4.290604,False,0.0,210.6954 +107.60379,0.8647807,-0.6920146,150.41016,True,1.6359478,236.59995 +94.3785,2.033424,2.3223505,366.7118,True,0.0,236.59995 +2.6146302,0.572665,2.918422,3.0552032,False,0.0,236.59995 +117.74815,0.18421134,0.10608351,119.75163,True,6.322819,233.58974 +112.12721,0.5597083,-3.1349535,130.15376,True,0.0,233.58974 +7.7223444,-0.52725124,-1.1390289,8.820824,False,0.0,233.58974 +3.189691,0.20916092,0.21255265,3.2597177,False,6.322819,233.58974 +2.2091908,1.1890773,-0.30424142,3.9638977,False,0.0,233.58974 +56.354553,-0.70050424,-1.0515269,70.75606,True,1.2870833,84.25348 +30.310553,-0.30832255,2.0875921,31.762705,True,0.0,84.25348 +3.4431252,0.28426763,-2.0981328,3.5831807,False,0.0,84.25348 +2.9380286,-0.7034547,-0.97049075,3.6954439,False,1.2870833,84.25348 +52.8515,-0.7151637,1.2012975,66.95316,True,0.0,108.489685 +43.9412,0.29254487,-1.749633,45.834946,True,0.0,108.489685 +107.0758,-0.16690582,2.6854916,108.570694,True,0.0,211.89494 +92.306526,-0.9764769,-0.84488297,139.92383,True,1.3767829,211.89494 +5.301243,0.39323884,-0.92287326,5.7164354,False,12.589704,211.89494 +4.3077145,0.50760025,-0.9589956,4.8746915,False,0.0,211.89494 +105.773636,-0.4261658,-0.71420044,115.52505,True,0.0,83.277794 +37.602993,-0.13299099,-2.112685,37.936016,True,0.0,83.277794 +58.73425,-1.5687004,-1.8876837,147.09175,True,0.0,97.6974 +34.798733,-0.771385,1.2406816,45.675632,True,0.0,97.6974 +2.1585627,0.67481315,1.2937189,2.668974,False,0.0,97.6974 +1.7113911,-0.8335196,-0.4842888,2.3411162,False,0.0,97.6974 +184.97441,-0.2710568,0.72839284,191.81131,True,0.0,365.74075 +177.28055,-0.5580135,-2.352196,205.60493,True,0.0,365.74075 +1.6536485,-0.06961013,0.6187277,1.6576564,False,0.0,365.74075 +80.801834,1.8093725,1.0615342,253.32877,True,0.0,15.447492 +35.947937,1.8758126,1.3412625,120.05444,True,1.0275705,15.447492 +2.135343,-0.065209396,-0.9488219,2.1398847,False,0.0,15.447492 +1.8220587,2.0646834,-1.1754093,7.2970357,False,1.2486192,15.447492 +1.7226671,0.21495976,1.9059289,1.7626208,False,0.0,15.447492 +131.42458,-1.5252371,-1.9456081,316.326,True,0.0,209.68094 +75.35991,-2.1854622,1.0827488,339.3903,True,0.0,209.68094 +55.718105,0.21242851,0.8714504,56.980003,True,0.0,46.67097 +30.619572,0.76382995,-0.15536188,39.994675,True,1.4082073,46.67097 +57.350918,0.046482235,-2.7046402,57.412884,True,1.7825835,112.03415 +54.324936,0.44166875,0.07505078,59.71025,True,1.2446139,112.03415 +6.67835,0.748086,0.3312955,8.635853,False,0.0,112.03415 +79.26942,-2.1693385,2.3215399,351.43085,True,0.0,148.19096 +68.786224,-2.3464565,-0.7572031,362.64746,True,0.0,148.19096 +2.869025,1.8204014,-0.311499,9.089498,False,0.0,148.19096 +66.20737,-1.7250407,-1.5910947,191.70062,True,0.0,109.01649 +42.044796,-2.3226216,1.2353793,216.53915,True,0.0,109.01649 +2.5769584,0.35768667,-3.0188124,2.7435713,False,0.0,109.01649 +1.9496955,-0.30876574,1.6780056,2.0433745,False,0.0,109.01649 +57.61612,-2.211398,0.7032364,266.1293,True,0.0,56.703724 +30.306532,-1.9308045,-0.74834096,106.6803,True,1.204229,56.703724 +2.245979,-0.39950138,2.6180096,2.427606,False,0.0,56.703724 +1.6470459,-0.6544265,0.45166972,2.012508,False,1.6874973,56.703724 +1.9515467,-0.07889059,2.5308986,1.9576228,False,0.0,56.703724 +128.99716,-1.1311915,-2.1186776,220.71387,True,0.0,122.42858 +49.29519,-0.8146399,-0.41949221,66.57712,True,0.0,122.42858 +4.245378,0.1437664,-1.4153831,4.289327,False,0.0,122.42858 +2.64478,1.1888056,-0.09032507,4.7443943,False,0.0,122.42858 +2.1110823,-0.15911333,-1.7392061,2.137862,False,0.0,122.42858 +60.73035,1.9575385,2.7981224,219.33006,True,1.6433469,84.94369 +30.166113,1.9113435,-0.09068137,104.22466,True,0.0,84.94369 +193.99916,-0.13123956,-2.9547856,195.67226,True,0.0,336.3328 +126.06601,0.90534234,-0.5721702,181.3574,True,0.0,336.3328 +2.5627146,-0.05607346,2.9927678,2.5667446,False,0.0,336.3328 +2.5308905,0.42937782,-1.5738412,2.767801,False,0.0,336.3328 +2.2290068,-0.49021685,2.6081398,2.5022428,False,0.0,336.3328 +71.684,-1.9281087,2.9855635,251.67949,True,0.0,91.59549 +49.005432,-2.3563483,1.3135659,260.88318,True,0.0,91.59549 +2.8144295,-0.97628284,0.1728883,4.265661,False,0.0,91.59549 +121.63092,-1.0801098,1.6786755,199.7521,True,1.6074324,210.6425 +94.14981,-1.314737,-1.8912551,187.93791,True,0.0,210.6425 +59.582146,0.2864638,-2.3346832,62.04361,True,0.0,96.22052 +47.039005,1.6354238,-1.180605,125.27667,True,0.0,96.22052 +2.8139422,-1.949247,1.6004735,10.082043,False,0.0,96.22052 +129.07239,-0.43575504,-0.39156675,141.52182,True,0.0,212.35358 +92.82049,-0.2758688,-3.0158598,96.37492,True,0.0,212.35358 +90.45473,2.1488824,-0.92449677,393.111,True,0.0,89.60617 +34.422832,1.8186665,0.8828094,108.87727,True,0.0,89.60617 +2.425374,-1.0341593,-1.2712874,3.8421147,False,0.0,89.60617 +56.54482,1.5573822,0.9569703,140.14822,True,0.0,83.74074 +31.12615,1.5891104,-2.3138804,79.42609,True,0.0,83.74074 +2.2381911,0.056912877,1.0111114,2.241817,False,2.3740385,83.74074 +1.8405753,-0.7271074,-1.9803838,2.3489347,False,0.0,83.74074 +157.04425,0.4371736,1.8323886,172.292,True,1.8074137,87.91091 +41.266808,0.43377164,2.9875727,45.210403,True,0.0,87.91091 +2.7305672,0.3116019,2.8011727,2.8642066,False,0.0,87.91091 +133.55205,0.41163686,-2.878495,145.02757,True,0.0,251.90254 +111.42634,-0.10045685,0.3257729,111.989044,True,0.0,251.90254 +2.813316,-1.6409496,-2.3932688,7.531055,False,0.0,251.90254 +85.27586,0.91072977,-2.495678,123.15399,True,1.2002981,123.11288 +43.574524,1.2410192,0.8226075,81.6636,True,0.0,123.11288 +2.2559502,-1.0483358,3.0767202,3.6133778,False,0.0,123.11288 +139.28914,0.93773323,-2.1612787,205.15196,True,0.0,260.88486 +122.30066,0.9751788,0.90231913,185.21004,True,0.0,260.88486 +2.5932684,2.08941,2.4883163,10.637466,False,0.0,260.88486 +70.25033,0.22173755,-1.7936553,71.984436,True,0.0,34.928833 +44.52486,0.82698745,-1.9050695,60.638077,True,0.0,34.928833 +4.7972198,-0.32444248,0.75784177,5.051927,False,7.0797367,34.928833 +3.6433744,0.8232855,1.9132769,4.9494495,False,2.274939,34.928833 +3.1122704,0.3081054,1.0171803,3.261165,False,0.0,34.928833 +2.2869139,-0.06330653,1.4800978,2.291498,False,0.0,34.928833 +1.9409786,0.96240395,0.07139738,2.911425,False,0.0,34.928833 +1.9946083,-0.50047904,-1.3758596,2.2496703,False,0.0,34.928833 +64.00396,0.3293883,-2.1546214,67.507576,True,0.0,127.09328 +57.671104,1.1385667,1.5561007,99.26835,True,0.0,127.09328 +4.210471,0.25526842,-1.1219485,4.348399,False,44.283836,127.09328 +2.1468503,1.3232331,-2.6372044,4.3171196,False,0.0,127.09328 +53.00799,-2.1127944,0.17127948,222.42741,True,0.0,90.62957 +42.838074,-2.3041675,2.653234,216.66809,True,1.0005666,90.62957 +1.9410561,1.8805505,-1.9395815,6.511874,False,2.0761495,90.62957 +124.21247,0.78823507,2.5076666,164.83972,True,0.0,89.096725 +44.424297,0.8105188,1.2216558,59.832905,True,0.0,89.096725 +3.0295439,-0.15643483,-0.7766089,3.0666888,False,0.0,89.096725 +2.1253588,-0.56801045,0.93887913,2.4775352,False,0.0,89.096725 +90.464386,2.2858007,0.47279114,449.3931,True,0.0,130.29773 +46.44976,1.8902464,-2.3232443,157.2797,True,0.0,130.29773 +54.452923,-1.5792061,-2.3942466,137.6908,True,0.0,81.3599 +35.13378,-1.2188064,1.59152,64.62385,True,0.0,81.3599 +1.9238684,1.3010595,-0.28953436,3.7952435,False,0.0,81.3599 +119.84697,0.04938664,-2.5848997,119.99316,True,0.0,230.43434 +99.93023,-0.6092914,0.43000287,119.06006,True,0.0,230.43434 +2.4088104,0.36866945,1.8469539,2.5743723,False,0.0,230.43434 +1.8853625,0.6316695,-2.4514313,2.2741725,False,2.9776483,230.43434 +120.67764,0.8575688,0.756332,167.83934,True,1.4837445,188.27498 +77.48513,1.2935108,-3.030591,151.86578,True,0.0,188.27498 +142.59198,0.6934916,2.2262757,178.27682,True,0.0,352.50412 +127.43639,2.2260878,-1.0046877,597.1353,True,0.0,352.50412 +5.086645,0.23994768,-2.5879705,5.2337804,False,0.0,352.50412 +1.676532,2.272443,-1.1090168,8.220151,False,0.0,352.50412 +58.42799,-1.1168286,1.3143592,98.81534,True,0.0,132.98026 +58.89075,-2.1415482,-1.9040256,254.11592,True,0.0,132.98026 +2.4203463,-0.9504438,-0.41437602,3.5983613,False,0.0,132.98026 +53.93087,0.59527117,-0.6676826,63.77152,True,0.0,88.92758 +39.471085,1.2395926,-2.9364097,73.88411,True,0.0,88.92758 +1.933614,1.242099,-3.0370145,3.6271234,False,17.03886,88.92758 +51.538506,2.2383888,-1.9372679,244.4172,True,0.0,98.49302 +47.20225,2.1749725,1.0762889,210.41711,True,0.0,98.49302 +4.2109513,0.02278402,0.51337606,4.2120442,False,11.736421,98.49302 +117.1697,1.2141645,2.7701006,214.68051,True,0.0,224.9948 +94.82623,2.1336699,-0.9726073,406.05576,True,0.0,224.9948 +163.95465,1.7473735,-0.7807958,484.7925,True,0.0,73.17125 +52.75129,2.1682496,-0.10525049,233.61818,True,0.0,73.17125 +136.24744,0.13046895,-0.7334104,137.40869,True,0.0,190.65918 +67.663765,0.22346689,2.665046,69.36028,True,0.0,190.65918 +2.4389098,-0.2609327,2.310825,2.5224094,False,0.0,190.65918 +1.8722548,-0.4657001,0.7456044,2.078975,False,0.0,190.65918 +63.250618,-2.1715446,1.6615524,281.0169,True,0.0,89.04037 +37.743397,-1.7488456,-0.5155445,111.757034,True,0.0,89.04037 +11.313251,-0.8746965,-1.6360396,15.92417,False,50.165592,89.04037 +1.7751918,0.24480894,1.6683288,1.8286529,False,0.0,89.04037 +119.87366,0.6419022,0.23102391,145.42966,True,0.0,225.95813 +83.41092,1.6515715,-2.9625278,225.49799,True,0.0,225.95813 +3.6281743,0.6900996,-0.40006137,4.526946,False,0.0,225.95813 +74.39609,2.169507,-1.0103252,329.87973,True,0.0,138.00192 +63.98277,2.0288463,1.9935482,247.51076,True,0.0,138.00192 +2.076812,1.5536993,-1.8330289,5.1301365,False,0.0,138.00192 +250.40825,-1.5941247,-0.57915825,641.9345,True,0.0,438.47006 +162.057,-0.7556664,2.475682,210.57097,True,0.0,438.47006 +2.8283908,-0.24022888,2.543688,2.9103973,False,0.0,438.47006 +2.1238923,-1.7588964,2.065705,6.3485913,False,0.0,438.47006 +70.603546,0.95572025,1.8614395,105.37855,True,0.0,129.49808 +59.2575,0.84406656,-1.3450512,81.64985,True,2.260794,129.49808 +3.1056998,-0.60780406,-2.9370215,3.6972418,False,0.0,129.49808 +126.48104,0.7235751,-2.524481,161.06136,True,0.0,240.85684 +91.39743,1.8260193,0.0387787,291.10876,True,0.0,240.85684 +119.73874,-1.1750414,2.9220204,212.36165,True,0.0,210.73936 +99.14904,-0.44833156,-1.1536818,109.28161,True,0.0,210.73936 +2.4189713,-0.6104094,0.9134288,2.8837929,False,9.327937,210.73936 +81.538765,-2.2082896,1.9309686,375.48712,True,0.0,134.68227 +51.96137,-1.6784921,-1.1329341,144.04019,True,0.0,134.68227 +4.7377467,-0.6756812,1.3352983,5.861021,False,0.0,134.68227 +3.4996836,2.1151972,-2.4920583,14.719372,False,0.0,134.68227 +212.37694,0.916618,1.179684,308.01956,True,0.0,94.54207 +99.12566,0.63529575,1.7757624,119.811165,True,1.141753,94.54207 +3.2393553,-0.24115945,-2.7157507,3.3340096,False,0.0,94.54207 +174.06824,-0.6505712,0.8677945,212.22252,True,0.0,339.16818 +159.77429,-1.0391914,-2.4031737,254.09471,True,0.0,339.16818 +1.7426383,-1.9390767,1.2880896,6.183025,False,2.2364492,339.16818 +89.45153,1.3505937,0.4810182,184.2166,True,2.833032,20.230507 +72.05866,1.22601,0.70044327,133.34697,True,0.0,20.230507 +19.592749,-2.1940484,0.7577596,88.97972,True,0.0,20.230507 +11.246174,1.2538649,-2.513469,21.30733,False,90.308136,20.230507 +6.649945,1.2680151,-2.4308078,12.751872,False,90.308136,20.230507 +2.4030855,-1.2743042,1.4250778,4.6329536,False,0.0,20.230507 +130.24527,-1.9531696,-0.76326925,468.41568,True,0.0,121.68491 +47.71365,-1.559156,-2.447028,118.45199,True,0.0,121.68491 +2.3351924,-1.9625418,-0.862743,8.474292,False,100.582535,121.68491 +2.3192406,-1.6724006,0.06190339,6.3926744,False,0.0,121.68491 +125.95636,0.46962506,2.7904472,140.10321,True,0.0,256.1326 +100.44776,-0.65589297,-0.82574654,122.839615,True,0.0,256.1326 +2.5486758,1.0599422,-1.3192255,4.119527,False,0.0,256.1326 +1.6750777,0.9167402,2.4694092,2.4296534,False,0.0,256.1326 +125.9296,-1.0587378,0.9953914,203.3526,True,0.0,80.32716 +35.74835,0.034778263,0.65684247,35.76997,True,0.0,80.32716 +8.016396,1.5128053,1.8905798,19.077974,False,0.0,80.32716 +4.2713842,-1.1064806,1.5432118,7.164006,False,0.0,80.32716 +169.3051,-0.8949902,-2.7436192,241.76118,True,0.0,253.94038 +92.30678,-0.52144617,0.52000654,105.14311,True,0.0,253.94038 +2.1254663,-0.4411787,0.48856118,2.3356922,False,12.808421,253.94038 +51.8116,1.7498759,-1.6453624,153.5614,True,0.0,92.21485 +46.763702,2.212338,0.6277284,216.20024,True,0.0,92.21485 +3.0815163,0.4237999,-0.04524587,3.3624132,False,0.0,92.21485 +1.985974,2.1798787,2.5829852,8.895464,False,20.15689,92.21485 +104.29788,-1.8561164,2.9741879,341.84238,True,0.0,200.77246 +87.563446,-1.2225975,-0.13300203,161.57477,True,2.28836,200.77246 +2.2411537,-1.3396573,-0.19411029,4.571584,False,2.28836,200.77246 +142.04547,1.2912693,0.44167334,277.86383,True,0.0,253.99908 +112.026115,1.5275167,-2.7418165,270.19562,True,0.0,253.99908 +3.653831,0.7808717,-2.364238,4.8255806,False,0.0,253.99908 +110.8977,0.10561969,-2.8997188,111.51683,True,0.0,163.93343 +60.200584,0.7304183,-0.38290384,76.986206,True,0.0,163.93343 +1.9373258,1.9402614,0.9189547,6.8816104,False,25.483274,163.93343 +55.17433,0.66320866,2.7230337,67.759766,True,0.0,87.02882 +32.612225,1.1458979,-0.5868633,56.471367,True,0.0,87.02882 +3.3276637,1.6115917,-1.2281399,8.669147,False,0.0,87.02882 +2.288455,0.01344484,2.3558574,2.288662,False,0.0,87.02882 +2.4845855,-2.2395992,0.47359297,11.796897,False,0.0,87.02882 +92.30003,0.5495905,2.856778,106.594055,True,0.0,210.64581 +89.396416,1.665058,-0.25002,244.72981,True,0.0,210.64581 +2.0413368,-0.28419083,2.9285114,2.1243267,False,0.0,210.64581 +56.291153,2.253468,-1.28038,270.92175,True,1.3758096,40.47395 +38.48965,1.6225523,-1.876224,101.293175,True,0.0,40.47395 +2.1207838,0.40421847,-0.6541961,2.2964158,False,0.0,40.47395 +1.7768688,0.22657509,-0.44704163,1.8226731,False,0.0,40.47395 +188.52364,-0.73116404,-1.1934091,241.20146,True,0.0,380.42987 +183.06967,-1.8892593,0.73253584,619.2928,True,0.0,380.42987 +2.0247636,-0.18682943,-1.1276671,2.060204,False,2.4247665,380.42987 +1.8058324,0.69715273,2.4935381,2.2627337,False,0.0,380.42987 +55.84423,-1.3376027,2.69344,113.709274,True,0.0,92.366394 +34.21656,-2.0521102,-0.18723002,135.37395,True,0.0,92.366394 +7.2964764,-1.1845722,-0.92735827,13.043054,False,0.0,92.366394 +3.1500032,-0.6160225,-1.1011367,3.7668324,False,0.0,92.366394 +2.1249852,-0.18886594,-2.960945,2.1629975,False,0.0,92.366394 +62.9789,-1.7302483,0.23261449,183.24641,True,0.0,128.7881 +63.48371,-2.114256,-2.9366374,266.7631,True,0.0,128.7881 +6.5706096,-1.6076634,0.2221818,17.055628,False,0.0,128.7881 +2.5033169,0.14048824,1.7542259,2.5280614,False,2.2765837,128.7881 +2.325938,-0.14990899,-2.6468577,2.352122,False,0.0,128.7881 +1.9083973,1.8626041,1.0741612,6.29366,False,0.0,128.7881 +54.91235,-1.2809615,-1.5430957,106.47147,True,0.0,96.53028 +45.3116,-1.195878,1.080599,81.762474,True,0.0,96.53028 +2.9024658,-1.0642389,-2.6838977,4.7072515,False,0.0,96.53028 +121.18095,1.7558035,0.39284816,361.1716,True,0.0,85.36265 +48.649124,2.081683,-0.72729313,198.06691,True,0.0,85.36265 +2.7674127,-1.2174106,1.6276016,5.0843234,False,1.502985,85.36265 +2.421911,2.0821335,2.845111,9.86472,False,2.494568,85.36265 +80.639946,0.07346743,-1.8136754,80.857666,True,2.2763445,162.79865 +64.27065,1.3152572,0.5069784,128.35217,True,0.0,162.79865 +1.9769038,-0.098287985,-1.552727,1.9864604,False,0.0,162.79865 +56.332573,-1.5993845,-1.0627315,145.11287,True,0.0,107.95406 +40.262817,-0.5686077,1.9313134,46.948864,True,0.0,107.95406 +3.555387,1.0001833,-2.4742718,5.487015,False,0.0,107.95406 +2.3022437,-0.0881572,-2.7221363,2.3111956,False,0.0,107.95406 +55.833874,-2.0113807,1.6513664,212.37622,True,1.2402394,87.87865 +39.844322,-2.092944,-2.2392528,164.00072,True,0.0,87.87865 +3.0197144,-2.0491433,-1.47784,11.912916,False,0.0,87.87865 +51.518738,-1.8248872,1.0656648,163.91539,True,0.0,91.2592 +39.50632,-2.1470952,-2.1893144,171.39383,True,0.0,91.2592 +2.0897095,-1.188314,-0.59673375,3.74714,False,0.0,91.2592 +1.8738798,0.97890216,2.0644495,2.8457263,False,0.0,91.2592 +55.620388,2.242159,-0.23393723,264.74918,True,0.0,87.394356 +39.259167,1.6645936,1.9524151,107.42865,True,0.0,87.394356 +2.849701,-0.3934256,-3.1333938,3.073104,False,0.0,87.394356 +2.353219,2.2894144,-1.3602583,11.731364,False,0.0,87.394356 +2.4216514,-1.9386685,-0.5096381,8.588855,False,0.0,87.394356 +132.48372,-2.2976842,1.5475719,665.8368,True,0.0,240.96642 +89.932396,-1.098857,-2.4860623,149.91669,True,0.0,240.96642 +51.23442,0.6553394,-2.1834908,62.635666,True,0.0,93.96038 +43.272213,0.7308461,1.1116986,55.352486,True,0.0,93.96038 +187.54657,-1.5701638,-2.1033714,470.3149,True,0.0,290.79343 +106.09312,-2.1131833,0.8089325,445.34665,True,1.6524966,290.79343 +2.910395,-0.25724828,0.6134753,3.0072274,False,0.0,290.79343 +2.1254063,0.63534814,1.7106147,2.5690107,False,0.0,290.79343 +2.2122583,-0.45596546,1.4556953,2.4462395,False,8.634096,290.79343 +2.478131,-0.9105997,-2.6778097,3.5785398,False,0.0,290.79343 +231.78496,0.42377073,1.1875856,252.91045,True,0.0,238.5694 +106.98801,0.17522258,2.87517,108.634636,True,2.1844728,238.5694 +14.527132,1.7043992,0.87863415,41.256786,False,4.916505,238.5694 +3.4768713,0.8495521,-1.6197095,4.8088703,False,8.962588,238.5694 +158.10959,-1.6412938,-1.1420586,423.3837,True,0.0,280.9781 +114.51017,-1.0325979,2.1464014,181.17987,True,0.0,280.9781 +1.7460587,0.69139886,-0.5100895,2.1802871,False,0.0,280.9781 +96.92394,-1.629702,-0.34480202,256.7681,True,0.0,196.06142 +87.4925,-0.7122863,-2.8688436,110.64163,True,0.0,196.06142 +2.2055886,0.23520502,3.137404,2.2668786,False,0.0,196.06142 +1.9006877,-0.07588016,-0.008308789,1.9061623,False,0.0,196.06142 +178.04242,-0.99346834,-1.473623,273.37302,True,0.0,339.1737 +143.6353,-0.27177355,1.4544207,148.97253,True,0.0,339.1737 +77.93076,-2.2639132,-1.43748,378.92297,True,0.0,29.157974 +46.794952,-1.8265798,-1.2401392,149.12534,True,0.0,29.157974 +2.802746,-0.6921514,-0.5112109,3.501341,False,0.0,29.157974 +1.7724695,0.5312175,-2.4831042,2.0284946,False,0.0,29.157974 +141.54442,0.22050026,-0.5744233,144.99936,True,0.0,279.51553 +137.43283,0.039378963,2.695988,137.5394,True,0.0,279.51553 +50.83382,2.019998,-2.5791035,194.97226,True,0.0,88.7069 +38.98397,2.0217686,0.3912705,149.77815,True,0.0,88.7069 +4.154979,-0.902248,-2.103876,5.964047,False,0.0,88.7069 +1.8760254,0.5395899,0.11822061,2.1558256,False,0.0,88.7069 +137.59848,-0.87282836,2.456937,193.42493,True,0.0,162.95244 +62.20014,-0.9364163,0.3046804,91.522964,True,0.0,162.95244 +50.443344,0.66371775,-1.3386763,61.967937,False,6.7830877,162.95244 +14.471161,-0.41825488,-0.36496967,15.755493,True,0.0,162.95244 +2.280235,-0.44788,-1.1303554,2.5127873,False,0.0,162.95244 +109.412094,-0.73743314,2.7989616,140.5345,True,0.0,200.76553 +91.94341,-0.9528963,-0.5425966,136.94199,True,0.0,200.76553 +85.48535,1.5634822,-1.0336752,213.06483,True,2.2185056,170.16196 +76.605965,2.3127139,1.6968995,390.72083,True,0.0,170.16196 +2.0571687,-0.55757,1.1552591,2.38531,False,1.4869756,170.16196 +283.42023,-0.64988685,2.3638792,345.40833,True,0.0,24.632612 +51.392365,-0.6990185,2.165453,64.467865,True,0.0,24.632612 +4.6071196,2.1340942,0.3702041,19.736305,False,0.0,24.632612 +3.59704,-1.3375356,0.46601143,7.323817,False,0.0,24.632612 +2.329017,-0.545204,1.0299135,2.6838236,False,0.0,24.632612 +132.19281,-1.2272408,-2.9395485,244.88077,True,0.0,242.17531 +112.80563,-0.7227949,0.7819163,143.57771,True,0.0,242.17531 +4.669408,-2.2549129,0.3005143,22.505016,False,0.0,242.17531 +3.389058,1.8457632,-0.53435934,10.99891,False,0.0,242.17531 +89.74198,2.0192826,0.5131283,343.9662,True,0.0,158.13107 +72.62722,2.347245,-2.100828,383.19406,True,3.6396134,158.13107 +3.0386348,-0.404618,1.5517324,3.290783,False,0.0,158.13107 +157.45842,-0.1908005,-2.1929483,160.33325,True,0.0,251.92656 +99.53897,-1.1815548,2.0045831,177.4899,True,0.0,251.92656 +1.9512451,0.21224192,2.3875647,1.9953588,False,0.0,251.92656 +173.34317,-1.9745753,-1.7628329,636.3757,True,0.0,91.58773 +68.25186,-1.1758261,-1.9538164,121.12599,True,1.0135121,91.58773 +21.721415,0.50768393,1.2119173,24.581327,False,130.71152,91.58773 +7.3761063,0.56733537,1.1125593,8.595362,False,211.72237,91.58773 +2.9988241,0.16561751,1.0210713,3.040046,False,4.2983327,91.58773 +1.7267672,-1.1159923,-2.058191,2.918397,False,7.1885996,91.58773 +132.94814,0.04515727,-1.8239008,133.08371,True,0.0,189.01343 +67.599846,0.45046794,0.87668735,74.57534,True,0.0,189.01343 +1.8665029,-1.8250977,-1.9635065,5.939775,False,0.0,189.01343 +136.32918,0.40517077,-1.4111423,147.67322,True,0.0,266.34982 +130.10933,0.43422106,1.6940156,142.5692,True,0.0,266.34982 +148.34346,-0.032946717,0.850676,148.42397,True,0.0,143.61186 +61.0455,0.24516818,2.521466,62.88935,True,0.0,143.61186 +142.70044,-1.5569149,0.13537888,353.53662,True,0.0,234.80724 +101.53939,-1.6057438,-2.5582786,263.10397,True,0.0,234.80724 +3.4462209,1.0403352,1.6521293,5.485525,False,0.0,234.80724 +61.88799,-2.0765367,-1.3606567,250.71313,True,0.0,90.63026 +33.06623,-1.934302,1.7003841,116.78559,True,0.0,90.63026 +3.864822,-1.11853,2.1124306,6.545293,False,0.0,90.63026 +62.859135,1.5397011,-2.9231365,153.30215,True,0.0,112.88232 +48.715862,1.0572371,0.49534264,78.57435,True,0.0,112.88232 +7.001588,-2.192102,-0.99745196,31.737133,False,0.0,112.88232 +2.458796,-0.011846396,2.0423846,2.4589686,False,0.0,112.88232 +220.42987,0.176407,1.7564816,223.8686,True,0.0,333.69073 +126.23249,0.21789424,-1.3866293,129.241,True,0.0,333.69073 +8.283296,-0.4209523,-0.78628224,9.028101,False,0.0,333.69073 +2.2545986,-0.12286228,-0.6638169,2.2716367,False,0.0,333.69073 +2.0656533,-0.06836403,0.120874755,2.0704823,False,1.5409828,333.69073 +1.8997201,-0.6430263,2.9985178,2.3061917,False,0.0,333.69073 +51.556602,0.295695,-0.50418985,53.82701,True,0.0,85.47441 +33.730892,-0.16664171,2.7660127,34.20032,True,0.0,85.47441 +3.4896133,2.0713193,-2.0837917,14.065418,False,10.2094345,85.47441 +2.1758513,0.65103054,-2.2833338,2.6534767,False,0.0,85.47441 +85.26475,-0.1331778,-0.9025021,86.02201,True,0.0,61.24259 +33.60448,0.009845668,-2.109588,33.60611,True,0.0,61.24259 +2.979059,0.73823696,1.9188008,3.828388,False,0.0,61.24259 +1.9014131,-0.2988986,0.280558,1.9869838,False,0.0,61.24259 +92.47108,-2.19262,0.61174256,419.3692,True,0.0,196.3491 +74.127975,-0.98204976,-2.359028,112.84005,True,0.0,196.3491 +3.3157117,-0.39850998,0.82166195,3.582499,False,0.0,196.3491 +4.55728,1.4050255,-2.345023,9.845984,False,0.0,196.3491 +61.63298,0.99593145,1.8743874,94.81075,True,0.0,106.57748 +43.02674,1.666691,-1.6992003,117.968346,True,0.0,106.57748 +4.62513,1.0682323,1.5119715,7.5247307,False,0.0,106.57748 +81.83818,-1.8837528,0.78662425,275.39218,True,0.0,129.27823 +51.0412,-1.8494694,-2.3444798,166.23523,True,0.0,129.27823 +3.2930028,-1.8519261,-2.47299,10.750033,False,54.05806,129.27823 +254.0128,0.7941559,-0.7306886,338.41302,True,0.0,431.8481 +169.63042,0.1722668,2.1432378,172.15361,True,0.0,431.8481 +1.8900185,0.51227903,-2.6622076,2.1434882,False,0.0,431.8481 +207.68701,1.21556,-2.3608594,380.97336,True,0.0,94.19967 +59.230328,0.6258446,-2.973194,71.21363,True,0.0,94.19967 +3.2780354,-1.9941914,1.6199087,12.263761,False,0.0,94.19967 +2.9000685,-2.0125399,1.477294,11.043383,False,0.0,94.19967 +1.7068336,0.6215861,0.8691148,2.0473218,False,24.68307,94.19967 +147.51244,-0.97563094,1.5180439,223.46622,True,1.3432472,168.45502 +59.226044,-0.0764539,-3.0013523,59.39922,True,0.0,168.45502 +183.72328,2.0714111,2.215117,740.5906,True,0.0,338.51236 +155.35214,1.9172263,-0.83164465,539.7772,True,0.0,338.51236 +55.26264,2.326864,2.1735733,285.80075,True,0.0,89.120964 +39.03386,2.2944741,-1.5406342,195.56027,True,0.0,89.120964 +4.446791,-1.1046578,-0.07401294,7.447298,False,0.0,89.120964 +112.28039,0.6372268,-0.95690954,135.85846,True,0.0,200.84839 +95.141396,1.6476777,-2.8668604,256.2823,True,0.0,200.84839 +6.5771823,-1.5441296,-1.2030694,16.105515,False,0.0,200.84839 +2.109886,-0.51673377,2.1288137,2.3978941,False,0.0,200.84839 +74.45811,-0.1580875,3.11942,75.390465,True,0.0,93.476906 +32.874287,-0.2444045,0.65210575,33.86103,True,1.1097815,93.476906 +7.1911206,0.18621469,0.9239004,7.3161607,False,0.0,93.476906 +138.483,-1.0791777,1.8314483,227.25989,True,0.0,18.526796 +55.69239,-0.91235894,1.9604274,80.52467,True,0.0,18.526796 +14.810726,-0.38141564,-1.3120258,15.901167,False,72.69435,18.526796 +56.10031,-2.0101411,2.8553598,213.13464,True,0.0,91.22765 +37.840683,-2.1505723,-0.6027946,164.7241,True,0.0,91.22765 +130.62215,-2.2513123,0.024527004,627.3426,True,0.0,14.847137 +43.922188,-2.0579784,0.055072125,174.76279,True,0.0,14.847137 +4.630838,-0.9448699,1.4309604,6.856439,False,1.4619429,14.847137 +2.234033,-0.60977656,3.0555751,2.6624007,False,0.0,14.847137 +2.0909941,-0.8552849,-2.5042133,2.9035614,False,0.0,14.847137 +127.758194,0.5599435,1.7704237,148.31544,True,0.0,252.91371 +123.349815,0.85009927,-1.5319548,170.66998,True,0.0,252.91371 +69.35377,1.9957116,0.3069354,259.84613,True,0.0,92.00399 +34.448757,0.42933175,1.062995,37.67272,True,0.0,92.00399 +1.9871099,-0.7719896,0.51484156,2.6092346,False,0.0,92.00399 +173.68661,-1.8027837,-0.30411434,541.1511,True,7.062532,138.57738 +48.60097,-0.50751925,-0.9039682,54.9957,True,0.0,138.57738 +1.9160128,0.6925474,-2.2723017,2.3941545,False,0.0,138.57738 +129.07692,0.4104138,-1.9562631,140.10118,True,0.0,83.111534 +46.070324,1.2141114,-2.6638498,84.40716,True,0.0,83.111534 +83.325386,-1.050402,-3.0907824,133.6788,True,0.0,150.84369 +67.14854,-0.78847903,0.002730558,89.125694,True,0.0,150.84369 +1.876449,0.7594681,-1.1168388,2.444126,False,0.0,150.84369 +2.3455186,-0.78726435,-1.228528,3.110703,False,0.0,150.84369 +51.669933,2.2924962,1.7693665,258.366,True,0.0,84.259415 +34.85374,1.3056055,-2.483696,69.026634,True,0.0,84.259415 +2.3763702,0.28631097,-2.567493,2.4744375,False,0.0,84.259415 +3.0135078,-2.0799258,0.14823428,12.248122,False,1.6471322,84.259415 +1.9105585,-0.43129805,-1.9033239,2.0910294,False,0.0,84.259415 +1.9995117,1.0476432,-1.4121768,3.2009058,False,0.0,84.259415 +100.12721,-0.16011247,-0.18027401,101.41338,True,0.0,241.1503 +88.020256,-1.7092243,-2.747168,251.10774,True,0.0,241.1503 +4.6608524,0.17523,2.1148949,4.732593,False,0.0,241.1503 +2.8822908,0.0821811,1.827388,2.8920293,False,0.0,241.1503 +202.06277,0.06574529,-2.2585437,202.49963,True,0.0,285.46213 +158.38026,-0.6905312,-0.71447074,197.66527,True,0.0,285.46213 +2.8914204,1.0160096,1.4718124,4.5166693,False,0.0,285.46213 +90.357605,-1.2737354,0.16393247,174.11743,True,0.0,152.49034 +63.511036,-0.99092793,3.1364915,97.32955,True,0.0,152.49034 +2.0844123,-0.2940856,1.2915107,2.1752005,False,0.0,152.49034 +173.93643,1.082393,-0.92600894,286.17053,True,0.0,228.77452 +82.85767,0.9473755,1.5832431,122.9065,True,0.0,228.77452 +3.5210855,-0.94995505,1.2480737,5.2329526,False,0.0,228.77452 +2.8683536,0.117518194,-2.4022362,2.888183,False,0.0,228.77452 +140.77803,0.843971,-2.3986835,193.96278,True,0.0,196.8195 +69.34138,1.0308611,1.0018758,109.56557,True,0.0,196.8195 +7.905324,0.50970346,-2.0851278,8.954642,False,0.0,196.8195 +113.50237,-0.5092946,-0.106057,128.5435,True,0.0,223.55869 +104.655624,-0.98182684,2.8937984,159.28348,True,0.0,223.55869 +3.4588444,0.35805175,-2.494492,3.6829371,False,0.0,223.55869 +4.5971036,1.7879678,-2.02882,14.123665,False,0.0,223.55869 +1.7875175,0.0523586,-2.226716,1.7899683,False,0.0,223.55869 +58.957066,-1.7151136,-2.2675803,169.12572,True,0.0,116.24563 +47.095272,-0.6760226,1.4416586,58.272827,True,0.0,116.24563 +2.4878497,0.17117745,-3.0919075,2.5243878,False,0.0,116.24563 +2.2805078,-0.83739895,0.08951874,3.127927,False,0.0,116.24563 +294.74188,0.80892056,-2.2457306,396.54886,True,2.5689363,159.53903 +79.84613,-0.1821772,-2.372975,81.17479,True,0.0,159.53903 +4.4276,-1.4767048,1.2067384,10.198718,False,0.0,159.53903 +55.90002,2.201508,-0.8011769,255.72218,True,1.0906671,87.35479 +34.011993,2.344425,2.2572896,178.9571,True,0.0,87.35479 +2.0120695,-1.745595,-1.5997698,5.9394784,False,0.0,87.35479 +282.59436,-1.256924,0.6755641,536.80524,True,0.0,509.33572 +195.82562,-2.0801032,-2.63621,796.05194,True,1.3143476,509.33572 +1.6482339,1.7190025,-1.9710321,4.7454348,False,0.0,509.33572 +54.499172,0.7048229,-0.8832174,68.60586,True,2.6368587,105.50409 +44.87696,-0.15999879,1.7587082,45.452602,True,0.0,105.50409 +6.113254,-0.5986455,2.5711243,7.2417846,False,0.0,105.50409 +2.5416884,0.2992983,-1.4079741,2.6563823,False,0.0,105.50409 +1.8290195,-0.49267513,1.6015992,2.0555239,False,0.0,105.50409 +138.03714,1.0976747,1.102996,229.88945,True,1.55504,161.86636 +125.94336,1.0559431,2.423878,202.92934,True,0.0,161.86636 +2.812874,1.8610234,0.737726,9.262552,False,0.0,161.86636 +98.04696,-2.1237848,0.40898797,415.8322,True,0.0,159.53311 +65.370544,-2.1566997,-2.5585558,286.26657,True,0.0,159.53311 +3.726136,1.7892969,-0.81824744,11.462191,False,0.0,159.53311 +120.603386,0.3255167,-0.79914767,127.04964,True,0.0,223.19385 +84.912346,1.2293535,2.2443485,157.5761,True,0.0,223.19385 +1.9899166,1.9986713,-0.35518506,7.4768724,False,0.0,223.19385 +100.69338,2.0243838,0.561508,387.8467,True,1.0943532,174.51746 +74.48581,1.732777,-2.4220347,217.24281,True,0.0,174.51746 +4.6229076,0.9275464,-1.6672053,6.7582774,False,0.0,174.51746 +2.715887,-1.3282732,-2.2527313,5.4853506,False,0.0,174.51746 +2.0247004,0.5906053,-1.6899587,2.3882074,False,0.0,174.51746 +89.56047,1.2364762,-0.99267393,167.2033,True,2.5660279,85.128395 +82.04732,2.1645901,-1.2406359,362.06775,True,0.0,85.128395 +4.009766,1.2324551,2.3170383,7.460601,False,0.0,85.128395 +67.04167,2.2550051,-2.249065,323.14807,True,0.0,90.30694 +35.09673,2.0934963,0.12544386,144.5369,True,0.0,90.30694 +2.3986764,0.63734484,-0.6684473,2.9025743,False,0.0,90.30694 +1.7948766,-0.07666136,-1.3337966,1.8001534,False,0.0,90.30694 +69.56963,-0.74298066,0.82525045,89.671295,True,0.0,137.98135 +50.855762,-1.8651876,-2.4427779,168.12952,True,0.0,137.98135 +2.705662,1.5873148,-2.8984225,6.892773,False,0.0,137.98135 +52.365295,1.3311177,2.7370274,106.02543,True,0.0,89.25453 +36.456394,1.7456267,-0.36793658,107.61976,True,1.6948475,89.25453 +3.157216,0.4663959,2.4203765,3.506873,False,0.0,89.25453 +2.4024875,-0.39004463,-1.3156008,2.5875673,False,0.0,89.25453 +2.8614688,1.0474977,-2.372095,4.580244,False,2.036761,89.25453 +220.2074,-0.64951086,-0.9922526,268.3123,True,0.0,98.19396 +40.862526,-0.70191294,-2.078737,51.34877,True,0.0,98.19396 +1.8109596,1.2305437,-0.59000194,3.3640602,False,0.0,98.19396 +128.43246,-1.6709809,-1.8473592,353.53888,True,0.0,100.03968 +51.891697,-2.2630837,-0.7206676,252.10841,True,0.0,100.03968 +5.217612,0.5964888,0.52697295,6.1736717,False,6.981135,100.03968 +2.476863,0.5723563,0.6359701,2.8937597,False,9.931667,100.03968 +58.18157,-2.060985,1.7695564,232.17444,True,0.0,120.56605 +46.798676,-0.9592793,-1.426341,70.03384,True,0.0,120.56605 +3.4554682,2.367001,0.004181427,18.5889,False,0.0,120.56605 +2.7215579,-0.73725736,-0.94228387,3.495323,False,0.0,120.56605 +2.1516178,-1.1618633,-0.91465956,3.7747822,False,4.1107755,120.56605 +50.16024,0.9386842,-0.3850845,73.93011,True,0.0,84.1071 +30.32942,1.7412249,2.928515,89.16291,True,0.0,84.1071 +5.8438535,1.6465716,2.9363484,15.725426,False,7.63548,84.1071 +3.0046275,-0.69976455,-0.6045574,3.7707787,False,0.0,84.1071 +2.0170429,-1.3662044,0.098781236,4.211097,False,0.0,84.1071 +136.109,-0.7721149,2.8785155,178.73654,True,0.0,220.86205 +91.503716,-0.60841835,-0.5965695,108.96874,True,1.0430721,220.86205 +2.7133527,-0.35933724,2.798886,2.8904243,False,0.0,220.86205 +124.1806,-0.7139169,-1.1704218,157.19377,True,0.0,278.84155 +110.020615,-1.9366795,1.9714462,389.46555,True,4.8097095,278.84155 +2.6659338,-0.5354816,-1.2478606,3.0573702,False,0.0,278.84155 +143.9503,1.932095,2.5119252,507.33868,True,0.0,274.7666 +127.52652,1.5977596,-0.64434874,328.01718,True,0.0,274.7666 +3.5718153,0.26668718,-2.7123845,3.699587,False,0.0,274.7666 +327.56802,-0.55468845,1.0357561,379.2664,True,1.4756969,759.53186 +328.73972,-1.6682173,-2.2335055,902.6024,True,1.1261457,759.53186 +3.156984,0.22317563,-0.011543908,3.2359316,False,16.030735,759.53186 +1.9480819,1.2137779,1.8994238,3.568156,False,0.0,759.53186 +134.00316,-0.8279092,-0.91780066,182.61218,True,0.0,19.561602 +58.65716,-0.61460227,-0.97266555,70.08877,True,0.0,19.561602 +180.09006,-0.6893048,-0.3875034,224.59526,True,0.0,400.09003 +179.23628,-1.6397458,2.8739827,479.26785,True,0.0,400.09003 +54.48811,-0.20376435,2.5960717,55.6232,True,1.4828912,41.57406 +48.756496,-0.6886594,1.9436007,60.782127,True,1.9731338,41.57406 +54.99952,-1.1386946,-1.4413867,94.67964,True,0.0,113.47374 +42.663094,-2.2957819,1.7867595,214.01688,True,0.0,113.47374 +117.376015,0.31006366,-3.130306,123.0636,True,3.464738,22.08126 +53.473915,0.5720586,-3.037279,62.464844,True,0.0,22.08126 +2.091173,-0.5188811,2.2268689,2.3790572,False,0.0,22.08126 +52.446926,-1.893124,2.1700504,178.07515,True,0.0,93.62441 +44.292908,-1.7253664,-1.4819272,128.28743,True,0.0,93.62441 +98.57632,2.271833,-2.9862247,483.03787,True,0.0,35.68438 +77.41051,2.0467894,2.9546978,304.69357,True,0.0,35.68438 +1.8941149,0.58141345,-0.47296962,2.2233803,False,0.0,35.68438 +92.868355,1.6129915,-0.36861157,242.25127,True,1.1754714,47.18075 +67.63608,1.1778096,-0.773869,120.2301,True,0.0,47.18075 +1.9188216,0.39540392,-2.6784067,2.0707843,False,0.0,47.18075 +59.14127,1.9268174,-2.076538,207.38565,True,0.0,89.545906 +46.629337,1.9837561,-0.0365097,172.70457,True,0.0,89.545906 +5.748521,-2.135005,-2.6973581,24.64774,False,0.0,89.545906 +3.245976,-0.36751503,1.9486411,3.467667,False,3.955079,89.545906 +78.61483,-1.861337,1.202553,258.9492,True,2.1935363,85.87113 +43.430367,-1.2817163,2.6803384,84.26313,True,0.0,85.87113 +5.180102,-0.08003017,1.7748611,5.1966996,False,0.0,85.87113 +133.9912,-1.6305181,-0.7575686,355.23398,True,7.150814,65.34022 +38.64187,-2.3132381,-1.349315,197.19023,True,0.0,65.34022 +5.4386554,1.9154991,-0.38489568,18.865595,False,1.3066721,65.34022 +3.9295442,-1.6546547,-0.31557718,10.653842,False,0.0,65.34022 +129.28053,-0.5303205,-2.5871403,147.89003,True,0.0,211.80676 +85.19558,-1.1171613,0.0177129,144.12424,True,0.0,211.80676 +2.5024471,0.12070722,-1.1091932,2.5206997,False,0.0,211.80676 +54.210373,1.7083684,-3.0277178,154.52962,True,0.0,97.02569 +41.89623,2.0929282,0.18312946,172.44382,True,0.0,97.02569 +5.793025,1.109324,-0.2595914,9.738335,False,0.0,97.02569 +2.6404328,0.942065,-0.21441716,3.9013653,False,1.4983037,97.02569 +1.7853483,-0.6640317,-3.0117073,2.1936398,False,0.0,97.02569 +128.31857,-0.12055525,-3.0876584,129.25217,True,0.0,237.6375 +101.22952,0.46329793,-0.003015183,112.28945,True,0.0,237.6375 +54.08562,2.1131165,-0.46538255,227.02028,True,1.7561443,109.447975 +51.26355,1.5541395,2.6603248,126.6821,True,2.2727137,109.447975 +121.16239,0.62900126,-2.812149,145.93164,True,0.0,292.57935 +108.1771,2.088027,0.27313435,443.14267,True,0.0,292.57935 +2.260464,-2.042155,-1.7445902,8.857571,False,0.0,292.57935 +62.859608,1.791141,2.8658102,193.70378,True,0.0,95.32457 +36.413055,1.6857654,-0.072420664,101.62669,True,0.0,95.32457 +5.59204,0.6454891,0.96459156,6.7980347,False,0.0,95.32457 +3.4693449,-0.1511874,0.6082492,3.509071,False,0.0,95.32457 +2.680066,0.25772277,-1.3073709,2.7695663,False,0.0,95.32457 +1.7767209,-0.656142,-2.782208,2.1730998,False,0.0,95.32457 +56.628975,1.1274958,2.1895516,96.60216,True,0.0,109.5969 +44.002903,2.0063229,-0.897067,166.55992,True,0.0,109.5969 +7.0445766,-0.29780135,-2.9051588,7.3592687,False,3.5639846,109.5969 +2.290945,-1.763308,-0.5611823,6.8764706,False,0.0,109.5969 +2.2390888,-0.7285515,-2.0645669,2.8600829,False,0.0,109.5969 +2.0719676,0.42177996,1.9499574,2.2590158,False,1.1947628,109.5969 +1.8123466,0.23541051,1.7905807,1.8627973,False,0.0,109.5969 +88.380844,0.9610404,-0.4933931,132.43471,True,0.0,151.85501 +65.354576,1.089487,2.4924302,108.133644,True,0.0,151.85501 +2.23611,1.1899977,1.224762,4.0152655,False,0.0,151.85501 +141.0837,0.05712149,-2.3222067,141.31392,True,0.0,253.81227 +105.99073,0.60525924,0.8217347,126.00495,True,0.0,253.81227 +3.048975,-1.7999624,1.6084552,9.474271,False,1.3303132,253.81227 +2.234554,0.088183,0.8012693,2.2432477,False,0.0,253.81227 +1.8941584,0.023816248,-2.7287228,1.8946955,False,0.0,253.81227 +66.2834,0.9996833,-0.43939912,102.25597,True,0.0,137.20692 +51.366898,-0.2068176,2.3662622,52.46939,True,0.0,137.20692 +4.680829,-0.2896361,1.3917952,4.8785405,False,0.0,137.20692 +81.55739,-1.2462652,0.46314713,153.52805,True,0.0,136.92589 +53.673466,-0.71741885,-2.621371,68.088745,True,0.0,136.92589 +2.6644795,1.0151258,2.8073812,4.1593423,False,5.8922067,136.92589 +72.14613,-1.7531484,1.6870415,214.48962,True,0.0,132.7708 +51.316452,-0.13083307,3.004726,51.75628,True,0.0,132.7708 +2.3669968,-0.20079695,-0.15733266,2.4148753,False,0.0,132.7708 +52.888466,0.08555484,0.70714736,53.082146,True,2.1716118,107.31976 +50.00383,-0.5166315,-2.2977762,56.826797,True,0.0,107.31976 +2.0670152,-0.42028514,-2.137959,2.2522767,False,0.0,107.31976 +55.64219,2.3088903,-0.12538972,282.7353,True,0.0,93.29925 +46.838894,1.9227917,-2.332864,163.61354,True,0.0,93.29925 +2.0645285,-0.21580817,-0.16444895,2.1127913,False,0.0,93.29925 +63.13872,0.9222688,-2.8196423,91.949104,True,1.2943226,96.89695 +36.621532,1.1929864,0.4367191,65.922905,True,0.0,96.89695 +3.9857996,1.3225054,0.5919902,8.010019,False,0.0,96.89695 +3.2129328,1.2038237,0.3292575,5.8361015,False,0.0,96.89695 +64.90272,1.2331543,-2.320928,120.82971,True,0.0,19.843529 +56.563858,1.5589428,-2.3073878,140.39578,True,0.0,19.843529 +1.6605072,0.0504089,-1.7315278,1.6626173,False,0.0,19.843529 +56.014603,1.7013663,0.32139677,158.6296,True,2.3692846,93.17008 +42.16024,1.8246849,2.8717892,134.11401,True,0.0,93.17008 +59.45416,-1.0522486,-2.3218849,95.52012,True,1.8909155,74.36983 +36.77996,-1.1319737,2.1259606,62.970398,True,0.0,74.36983 +128.73952,-0.88823855,-1.0748155,182.95326,True,5.5186744,32.619015 +30.158594,-0.69361496,-0.58406204,37.708828,True,0.0,32.619015 +2.2773566,0.68022555,0.008709267,2.8248625,False,0.0,32.619015 +130.56068,1.9162787,1.8109317,453.22684,True,0.0,233.23071 +104.40328,1.8787017,-1.4344404,349.63565,True,0.0,233.23071 +150.41075,0.7561749,2.0950243,195.50175,True,2.9251318,224.87024 +84.166855,1.5430601,-0.2116819,205.89789,True,0.0,224.87024 +1.9726826,-0.70510435,2.9412663,2.4837208,False,0.0,224.87024 +103.45059,1.9421496,3.015362,368.13522,True,0.0,88.011986 +38.810608,1.3051893,1.6922566,76.835464,True,1.1654596,88.011986 +1.9076996,-1.713528,2.4907098,5.464349,False,0.0,88.011986 +2.0490723,-2.2920322,-3.0398207,10.241352,False,0.0,88.011986 +1.654918,-0.10841223,-2.4832273,1.6646528,False,0.0,88.011986 +62.447098,-2.1647692,0.68585896,275.62173,True,0.0,83.298035 +36.30209,-0.605178,0.9930677,43.155117,True,0.0,83.298035 +5.7675743,-0.60546446,0.8911899,6.857426,False,0.0,83.298035 +2.2082381,1.3496768,0.936774,4.5440054,False,0.0,83.298035 +2.0154986,0.5660049,2.644355,2.3470542,False,0.0,83.298035 +1.7019539,-0.14606427,2.9422116,1.7201415,False,0.0,83.298035 +82.6016,0.41059932,-0.43644026,89.66296,True,0.0,46.0201 +44.487022,-0.096170664,0.13149503,44.69291,True,0.0,46.0201 +87.8325,1.2332913,-1.0518202,163.53711,True,0.0,144.4503 +54.708096,0.41811794,1.4806254,59.560276,True,0.0,144.4503 +14.17576,0.9719042,-1.4206517,21.414856,True,25.582039,144.4503 +4.0229177,1.1788675,-2.3980136,7.157409,False,2.5105205,144.4503 +3.2247133,-0.5810245,-2.2560487,3.7845144,False,0.0,144.4503 +2.3437614,0.117541805,0.14456928,2.3599708,False,0.0,144.4503 +2.426301,-1.0790746,0.8583401,3.9813972,False,0.0,144.4503 +91.58216,1.7266626,2.9082026,265.57626,True,0.0,171.70213 +76.036644,1.1944822,0.004420792,137.04495,True,0.0,171.70213 +2.0303009,-0.24546856,-1.8139198,2.0917764,False,0.0,171.70213 +133.67998,0.73347276,1.183231,171.28,True,0.0,264.16296 +122.42829,0.19713424,-2.1341798,124.8149,True,0.0,264.16296 +6.7190704,0.19484533,-2.1971908,6.8470182,False,0.0,264.16296 +1.614695,-0.6751145,2.0450475,1.9968578,False,0.0,264.16296 +50.76155,-1.5290558,0.3333499,122.603325,True,0.0,89.05901 +38.715683,-1.7183081,-2.8166878,111.393875,True,1.4223748,89.05901 +74.44019,2.2449148,-1.1542124,355.28622,True,0.0,107.07737 +47.153336,2.2892072,2.8737397,235.02304,True,0.0,107.07737 +2.260751,0.17066523,-0.4488412,2.293755,False,0.0,107.07737 +61.594006,1.0327517,-0.57928354,97.46666,True,0.0,98.98935 +38.3933,0.6541063,2.6002903,46.90374,True,0.0,98.98935 +133.73592,-0.73496634,1.7117217,171.51187,True,1.3265687,203.0632 +75.1131,-0.41124225,-1.4006708,81.554695,True,0.0,203.0632 +4.171155,-0.7876085,1.8025615,5.533172,False,4.621732,203.0632 +3.414302,-0.50663686,1.9666755,3.8619487,False,0.0,203.0632 +2.433193,0.75412637,1.6014748,3.1584973,False,0.0,203.0632 +52.83105,-0.82308364,-2.1321318,71.76009,True,0.0,95.71638 +48.76167,-0.8604981,1.6896148,67.956436,True,0.0,95.71638 +2.813118,-0.5303455,1.8271717,3.2180958,False,0.0,95.71638 +57.424,1.2088432,-1.3808107,104.74569,True,0.0,107.96999 +51.035717,1.5226033,2.1111307,122.544075,True,1.1970422,107.96999 +2.6007018,-2.3189332,-1.368106,13.345767,False,0.0,107.96999 +3.4569967,-1.7127997,1.7995895,9.895346,False,0.0,107.96999 +124.63029,-2.0315707,1.5778726,483.39008,True,0.0,175.23021 +62.65757,-1.3080965,-2.3692725,124.35836,True,1.58593,175.23021 +1.8149105,-0.032520197,-1.5266763,1.8158703,False,0.0,175.23021 +57.248756,0.19998513,0.7137205,58.397385,True,0.0,113.845375 +47.784706,1.0370672,-2.4971738,75.86836,True,1.3676474,113.845375 +92.51838,-1.6694399,-0.4273089,254.31203,True,0.0,152.04794 +57.357517,-0.79910076,-2.8848338,76.66617,True,0.0,152.04794 +2.8633287,-0.4597841,-0.18613628,3.171354,False,0.0,152.04794 +52.315052,1.8699545,0.65989435,173.74173,True,0.0,95.86273 +43.339287,1.5386589,-2.2410624,105.59633,True,0.0,95.86273 +5.7633653,0.13525964,1.671114,5.8161664,False,0.0,95.86273 +2.4927197,1.6912371,1.6825726,6.9926777,False,0.0,95.86273 +2.1508532,-0.8739349,0.5030143,3.0258503,False,0.0,95.86273 +60.665672,-2.3379743,1.295645,317.18292,True,0.0,108.976845 +47.52932,-1.9615461,-1.688783,172.31642,True,0.0,108.976845 +242.6505,0.15120783,0.57944864,245.42975,True,0.0,453.65808 +212.28209,0.2632583,-2.6931796,219.68077,True,0.0,453.65808 +2.3420477,0.28148708,-3.0729089,2.435448,False,0.0,453.65808 +2.3129926,0.005989367,1.1904082,2.313034,False,0.0,453.65808 +2.1905024,-0.25466177,0.59539664,2.261917,False,0.0,453.65808 +78.32171,-1.1304022,-0.17977738,133.9225,True,0.0,110.34278 +39.131153,-1.2399191,-3.1227171,73.26802,True,0.0,110.34278 +60.66587,-0.13262832,0.6279364,61.20022,True,0.0,103.84227 +45.44387,-0.8849814,-1.6624304,64.43171,True,0.0,103.84227 +2.405896,0.38661733,-0.3707752,2.587955,False,0.0,103.84227 +155.88087,-0.8648184,-1.2574731,217.8983,True,0.0,311.64246 +160.04628,-1.0559301,2.2655315,257.8759,True,0.0,311.64246 +125.54032,-0.9447153,-1.4550381,185.85437,True,0.0,197.17679 +77.59111,-0.88156116,1.7991884,109.74496,True,0.0,197.17679 +3.2638528,0.32808417,-1.2559657,3.4410934,False,0.0,197.17679 +64.67292,1.9573448,-2.6241286,233.52533,True,0.0,118.93519 +58.043053,1.7342196,1.0546143,169.51598,True,0.0,118.93519 +1.582409,1.8449988,-0.94242805,5.131846,False,0.0,118.93519 +64.93743,1.9406918,0.53996783,230.76074,True,2.5564857,109.23798 +44.68472,2.383238,-2.8971245,244.2511,True,0.0,109.23798 +50.169884,2.0899105,-0.58666605,205.89444,True,0.0,83.82599 +35.122272,2.2931333,2.3227546,175.73213,True,0.0,83.82599 +2.4121666,2.011191,-0.9555166,9.173517,False,0.0,83.82599 +58.794495,2.0787444,-0.2209388,238.69131,True,0.0,84.51082 +31.710592,2.3770761,2.4061723,172.28648,True,0.0,84.51082 +99.41225,0.03031868,-2.6886375,99.45795,True,0.0,98.73016 +38.329266,0.6404525,1.9365344,46.462605,True,0.0,98.73016 +138.06664,1.2163619,0.33793354,253.43466,True,0.0,207.61143 +73.05236,0.6896662,-2.9057918,91.12528,True,1.3671076,207.61143 +51.178547,-1.5870082,1.0749784,130.34245,True,0.0,90.45566 +36.369106,-2.2066643,-2.0447702,167.21474,True,1.3612132,90.45566 +2.6344292,1.388666,2.472166,5.609893,False,0.0,90.45566 +2.327192,0.5309457,1.4187542,2.6629925,False,0.0,90.45566 +1.6551903,0.6276191,0.08059914,1.9920272,False,0.0,90.45566 +78.20983,1.9405341,0.1495468,277.88327,True,0.0,87.07288 +49.283997,1.3010437,1.4902639,97.22195,True,1.9444902,87.07288 +4.812262,-1.0340421,-1.1951377,7.62257,False,0.0,87.07288 +3.192401,-1.2375445,2.587294,5.9653754,False,0.0,87.07288 +81.28372,0.9651735,1.1121006,122.17594,True,0.0,26.812937 +53.49667,1.3539691,1.2228624,110.496826,True,0.0,26.812937 +4.0444036,0.9704524,1.0063757,6.103105,False,54.731644,26.812937 +2.8073997,-0.19277757,0.77439415,2.8597274,False,1.8952962,26.812937 +1.7974094,2.245193,-1.8563302,8.580963,False,0.0,26.812937 +2.1779025,0.8844615,2.8209884,3.0867589,False,1.7860703,26.812937 +179.37999,-0.46616563,-2.917263,199.22607,True,0.0,367.11328 +180.29295,-0.8740948,0.18563548,253.66716,True,0.0,367.11328 +3.1767948,-2.0070045,1.3024132,12.0327215,False,0.0,367.11328 +2.182604,1.1108091,0.32988423,3.6734393,False,0.0,367.11328 +59.744553,-0.46653917,2.2700388,66.36531,True,0.0,100.17281 +42.61093,-0.4322219,-1.1161026,46.653477,True,0.0,100.17281 +2.0870016,0.20173569,-2.2810903,2.1296134,False,0.0,100.17281 +135.45633,0.12470281,-2.4415426,136.51093,True,0.0,262.09564 +126.84704,0.16289806,0.759092,128.53375,True,3.051858,262.09564 +2.6001394,-0.2294309,2.7565937,2.6688738,False,0.0,262.09564 +132.71141,-1.5734957,-3.0945158,333.82224,True,0.0,184.58412 +64.75654,-1.799549,-0.24852017,201.1433,True,0.0,184.58412 +219.78099,-1.6559402,-1.333044,596.5861,True,0.0,406.02017 +180.07843,-2.062418,1.7611167,719.6034,True,9.886545,406.02017 +5.379715,0.07622789,2.3508573,5.3953524,False,0.0,406.02017 +1.5470108,1.2358072,1.6182693,2.8865325,False,0.0,406.02017 +54.223083,1.0609406,-2.0948732,87.71173,True,2.1752183,10.810513 +48.828117,0.9345376,-1.9269242,71.748116,True,0.0,10.810513 +74.59844,1.8419997,0.6030507,241.23802,True,0.0,75.28954 +34.42301,1.711058,-1.0630246,98.37217,True,1.8371522,75.28954 +4.5596075,0.6962423,2.608551,5.7101207,False,29.21787,75.28954 +81.905655,2.299924,-0.3838337,412.54608,True,0.0,191.62993 +81.06061,0.95375204,-2.7498763,120.80958,True,2.969277,191.62993 +7.3996077,-0.3186266,1.4765654,7.778411,False,6.1110873,191.62993 +1.742662,0.35409653,-1.7887058,1.8530595,False,0.0,191.62993 +164.32576,-0.59924924,0.050354525,194.724,True,0.0,231.33723 +83.83728,0.064948715,2.4156315,84.01417,True,0.0,231.33723 +167.60582,-1.1874579,2.8863318,300.32712,True,8.881016,356.53735 +163.19437,-2.0903907,0.223366,670.0526,True,0.0,356.53735 +2.9264956,-2.3109136,2.4113233,14.899964,False,0.0,356.53735 +65.5856,1.7716459,2.966023,198.41537,True,0.0,91.44944 +38.298954,1.7706578,0.66813546,115.757385,True,0.0,91.44944 +2.131302,-0.3875258,0.17533827,2.2933502,False,0.0,91.44944 +61.563656,-1.0630001,0.8006442,99.74732,True,0.0,78.62342 +35.816193,-1.017752,-1.1824613,56.023224,True,1.5364141,78.62342 +83.37002,2.0851424,-1.6327122,340.5676,True,0.0,78.65818 +33.207603,1.2162755,-0.35031644,60.951344,True,0.0,78.65818 +5.6533513,-1.6856622,-1.4291496,15.776649,False,0.0,78.65818 +3.1761014,0.32070222,0.7418997,3.3408372,False,0.0,78.65818 +2.2972765,1.8665681,-2.7449765,7.6048136,False,0.0,78.65818 +1.6975354,-2.2351887,-1.9249502,8.025284,False,0.0,78.65818 +62.648365,-0.51455647,0.16129318,71.12663,True,0.0,110.41692 +48.613552,-0.672688,-2.832224,60.03366,True,0.0,110.41692 +8.479174,-0.105578564,-3.0502641,8.526476,False,0.0,110.41692 +7.479244,-0.5118687,0.09022972,8.480642,False,0.0,110.41692 +6.065736,-2.0544949,2.8291035,24.053835,False,1.2900289,110.41692 +3.1406412,-0.546321,-2.6273367,3.6211033,False,0.0,110.41692 +1.621694,-0.7186364,-2.8855236,2.0587811,False,1.1456791,110.41692 +62.03404,-0.3497992,-2.0335588,65.86812,True,0.0,131.15384 +62.20717,-1.0289356,0.9604986,98.14652,True,0.0,131.15384 +2.1738613,1.9622475,2.995594,7.886598,False,0.0,131.15384 +103.28215,0.7497,-2.6373377,133.6922,True,0.0,240.01276 +99.02291,1.9605687,0.6519095,358.66812,True,0.0,240.01276 +122.72862,-1.0970289,-1.7587363,204.28885,True,0.0,199.4817 +80.99999,-1.1606437,1.4166572,141.96349,True,0.0,199.4817 +7.686514,-1.1906309,1.4807874,13.809533,False,0.0,199.4817 +2.9315119,-0.6303643,-0.8268684,3.533487,False,0.0,199.4817 +3.6613755,-0.73104525,-2.367909,4.6841006,False,0.0,199.4817 +2.179128,0.6529399,1.9914443,2.6603818,False,0.0,199.4817 +67.418274,0.64089686,1.1456904,81.744736,True,0.0,17.83488 +33.427917,0.4667094,1.4799942,37.13508,True,1.5985872,17.83488 +2.2248433,-0.13714579,-2.8976836,2.2457995,False,0.0,17.83488 +2.0869296,-0.6401178,1.4011501,2.5292902,False,0.0,17.83488 +63.18242,-1.6504568,-2.5228333,170.63426,True,1.4927186,46.53275 +37.784958,-1.009025,3.051907,58.70837,True,0.0,46.53275 +1.8153601,-0.49046063,2.9889445,2.0381162,False,0.0,46.53275 +104.71052,0.68994284,-2.152975,130.63718,True,2.036801,205.92238 +81.88809,1.6549356,1.2350426,222.07426,True,0.0,205.92238 +4.9894657,-0.85580385,-1.4090519,6.930884,False,0.0,205.92238 +169.412,0.60918313,-1.4540426,201.83098,True,0.0,318.14926 +147.59784,0.87381405,1.8375821,207.62506,True,0.0,318.14926 +2.0355055,0.30520654,-0.47876817,2.1310484,False,0.0,318.14926 +140.7795,-0.79079473,1.1958133,187.14047,True,0.0,280.74594 +138.03625,-1.0462652,-2.0440736,220.73691,True,5.1964607,280.74594 +2.1530848,0.115608394,2.110019,2.167489,False,0.0,280.74594 +2.8554754,1.9996969,-1.7677859,10.739718,False,0.0,280.74594 +78.42324,-0.9730602,1.1948636,118.57414,True,0.0,144.44795 +51.868855,0.09530071,-2.3017461,52.104576,True,0.0,144.44795 +56.533825,-1.7568643,-0.54591817,168.66373,True,0.0,58.009193 +37.023457,-0.7162008,0.11683415,46.93182,True,0.0,58.009193 +2.1983955,0.29042262,-1.756241,2.2917612,False,3.7922003,58.009193 +1.5929377,0.70603293,-0.35352445,2.0067325,False,0.0,58.009193 +139.77022,-1.8452201,1.585963,453.37848,True,0.0,275.15906 +127.068245,-1.2558618,-1.2469809,241.156,True,0.0,275.15906 +2.6777086,-0.11993264,-2.1940296,2.6969898,False,0.0,275.15906 +2.0520442,0.05728861,1.3050617,2.0554125,False,0.0,275.15906 +2.088924,1.0016792,2.6540086,3.2275047,False,0.0,275.15906 +77.875374,-0.73945516,-2.6136866,100.15427,True,0.0,141.83865 +50.115646,0.29021,0.47883052,52.240913,True,0.0,141.83865 +3.953428,-1.1340011,-2.6276073,6.779755,False,0.0,141.83865 +2.7958353,-0.70587397,0.256929,3.5217643,False,0.0,141.83865 +2.1193073,0.47547573,-0.7519327,2.3634183,False,0.0,141.83865 +62.338764,-0.42201212,2.8315861,67.972725,True,0.0,110.35138 +45.68884,-0.951159,-0.41535726,67.96218,True,0.0,110.35138 +9.272731,-0.9365593,-1.9184537,13.645577,False,0.0,110.35138 +3.012805,0.09620589,-0.4584495,3.0267582,False,0.0,110.35138 +87.31043,0.5604088,-0.63154185,101.38329,True,0.0,68.17306 +34.919086,0.5396814,-1.9620126,40.12891,True,0.0,68.17306 +151.5873,1.9314032,0.41816494,533.9002,True,5.8773527,287.93533 +136.74309,1.7630236,-2.8932343,410.3362,True,0.0,287.93533 +2.5532537,1.9292452,0.5230421,8.974137,False,30.984446,287.93533 +2.114753,1.0932982,-1.4213039,3.5096538,False,0.0,287.93533 +127.43807,0.3673529,-0.035542294,136.13397,True,0.0,194.8863 +73.54413,0.6247587,2.986838,88.3701,True,0.0,194.8863 +3.3917832,-1.1295607,-2.380524,5.7956624,False,0.0,194.8863 +1.6190398,-2.1733642,1.8754565,7.206016,False,3.1900582,194.8863 +75.54607,1.3396087,-1.7351594,154.09499,True,0.0,80.1775 +31.321577,0.041461773,-0.81966096,31.348501,True,0.0,80.1775 +1.8643434,-0.35892645,1.456941,1.9857281,False,0.0,80.1775 +141.98906,1.8054535,-0.7774148,443.51202,True,0.0,282.74802 +140.76003,1.7973051,2.3605132,436.29355,True,0.0,282.74802 +126.55317,0.045528345,-0.2748079,126.68436,True,0.0,127.74271 +46.591938,-0.7024182,-1.9364842,58.566395,True,0.0,127.74271 +50.263035,-2.004649,0.3454773,189.9489,True,0.0,89.99101 +40.28844,-2.0576837,-2.7359393,160.2587,True,0.0,89.99101 +2.6432335,0.032122556,-2.2874985,2.6445975,False,0.0,89.99101 +1.9401468,-1.7540311,-0.11688483,5.772831,False,1.0492798,89.99101 +80.6369,2.2952518,-0.7775815,404.30017,True,0.0,116.318665 +46.93071,2.317966,3.0282598,240.60135,True,0.0,116.318665 +3.8147364,2.2076664,2.175636,17.556229,False,0.0,116.318665 +139.06204,-0.77706647,-2.5702877,183.20277,True,0.0,60.811634 +40.47553,-0.5058947,-1.7868444,45.76638,True,0.0,60.811634 +128.23662,-0.72937214,0.13012843,163.88576,True,0.0,275.85492 +101.15855,-2.0379767,2.946026,394.78928,True,0.0,275.85492 +3.664583,0.39132646,1.4643028,3.9487727,False,0.0,275.85492 +153.94945,1.5733247,-1.590522,387.18365,True,1.403891,302.64233 +148.67282,1.5314717,1.5506499,359.87714,True,0.0,302.64233 +2.624137,0.4858602,0.5544375,2.940005,False,0.0,302.64233 +1.8306701,0.24557377,-0.72872,1.8861488,False,0.0,302.64233 +77.80022,-0.6829962,2.598776,96.662964,True,0.0,140.45372 +56.3291,0.18753949,0.017158322,57.322586,True,0.0,140.45372 +42.107533,0.6842269,-1.6440611,52.354794,True,10.163729,140.45372 +2.1866326,-0.2373411,-1.7180815,2.2485096,False,0.0,140.45372 +2.5937533,-2.250795,-2.0306025,12.450789,False,0.0,140.45372 +126.64105,-1.9743292,2.967335,464.8133,True,0.0,302.61548 +119.57617,-0.6438037,-0.16749054,145.22519,True,1.7793822,302.61548 +3.414569,0.881234,-1.787887,4.828453,False,0.0,302.61548 +54.86049,1.8341824,-0.37397435,176.09552,True,0.0,94.303116 +41.407436,2.3499029,2.1607935,219.04388,True,0.0,94.303116 +2.9776094,-0.17156272,-1.0470415,3.021538,False,1.0118327,94.303116 +3.1334171,-0.14511497,-1.2211934,3.1664674,False,1.0118327,94.303116 +55.754627,-0.55411905,2.2383902,64.535576,True,0.0,38.553814 +53.462494,0.111348666,2.436774,53.794262,True,0.0,38.553814 +5.88069,-0.9068839,2.39365,8.469293,False,0.0,38.553814 +2.3706517,-0.16854803,-0.5301509,2.4044046,False,0.0,38.553814 +77.548904,1.7288703,0.9641404,225.3482,True,2.5361116,156.15367 +77.273254,2.0934517,-1.9212167,318.21634,True,0.0,156.15367 +8.464643,-2.2005467,-1.2852111,38.686344,False,0.0,156.15367 +118.61004,-0.5310328,3.0608096,135.73053,True,0.0,192.90605 +73.16964,-1.0622559,-0.11318224,118.48231,True,0.0,192.90605 +2.6757054,-1.0611967,-0.20985268,4.3291154,False,67.45895,192.90605 +124.052216,1.7364702,-2.8245785,363.0642,True,0.0,168.8135 +65.08183,1.5655162,1.039374,162.5134,True,0.0,168.8135 +5.151688,-0.124682374,-1.0097464,5.191783,False,4.877555,168.8135 +4.0839,-0.41090846,0.321688,4.433553,False,0.0,168.8135 +2.0787704,-1.1307746,1.8772146,3.5555692,False,0.0,168.8135 +1.9222199,-0.26481125,1.7764987,1.9900124,False,10.649744,168.8135 +144.19531,2.0342455,2.9831326,560.7222,True,0.0,161.77695 +75.68788,1.0648499,1.7262803,122.81052,True,0.0,161.77695 +4.954039,1.2285129,-0.6597692,9.186952,False,0.0,161.77695 +120.34283,-0.28952414,1.0530645,125.42198,True,1.1872342,243.22331 +118.61862,-0.67912406,-2.1862965,147.04027,True,0.0,243.22331 +2.929824,0.3456381,-0.19450612,3.1065803,False,0.0,243.22331 +2.7715466,-0.74259126,-1.6129892,3.5714881,False,0.0,243.22331 +186.08812,-1.0359583,-0.851381,295.2001,True,10.037869,87.44793 +79.238914,-1.2884909,-1.5390122,154.63454,True,0.0,87.44793 +4.942189,-1.286517,-0.08013164,9.628341,False,1.2115581,87.44793 +3.6267476,-1.2886033,-0.13191342,7.078272,False,1.2115581,87.44793 +57.396652,1.2453265,-1.1093569,107.960686,True,0.0,87.39268 +35.94808,1.2750156,2.5863771,69.347145,True,0.0,87.39268 +2.4458473,1.163617,0.04514104,4.297166,False,0.0,87.39268 +1.8621703,-0.1254783,2.9090993,1.8768493,False,0.0,87.39268 +2.2730372,-0.5844055,1.3492497,2.6723657,False,0.0,87.39268 +283.57635,-1.5812424,0.9386812,718.39966,True,6.2822704,600.73267 +223.20638,-0.3504028,-2.0816271,237.05003,True,0.0,600.73267 +3.427307,0.7995116,-1.0217986,4.582314,False,0.0,600.73267 +2.4665585,0.908012,-1.4787809,3.5551908,False,0.0,600.73267 +58.167847,-1.0197052,-1.2378293,91.122215,True,0.0,99.01588 +41.909294,-0.84670633,1.8129497,57.85114,True,0.0,99.01588 +3.5535274,-2.1683824,-2.3355331,15.739445,False,0.0,99.01588 +122.068474,0.07560504,1.3661437,122.41752,True,0.0,202.3824 +83.556854,0.47712508,-1.3887146,93.24944,True,0.0,202.3824 +118.862915,-0.3347297,1.3707852,125.58426,True,0.0,50.6282 +36.671486,-0.853466,0.8038772,50.85796,True,0.0,50.6282 +3.09495,-0.00102491,2.3278337,3.0949516,False,0.0,50.6282 +77.937546,0.67880917,0.38170555,96.59382,True,0.0,21.713285 +36.68868,0.53812236,-0.0014953013,42.130184,True,0.0,21.713285 +75.21513,2.0824754,-0.871753,306.4614,True,1.5008254,33.752316 +41.812634,1.9748163,-0.27061582,153.53772,True,0.0,33.752316 +2.9566946,0.6626632,0.77004576,3.6299763,False,4.817005,33.752316 +127.689095,-2.1642125,1.5373188,563.27374,True,0.0,153.54152 +55.749855,-2.3476372,-2.481883,294.2594,True,0.0,153.54152 +5.0742035,1.1896864,-2.8564715,9.109127,False,0.0,153.54152 +3.1821322,1.0249898,-0.6227252,5.005283,False,0.0,153.54152 +1.9078678,0.019867381,1.3249929,1.9082444,False,0.0,153.54152 +95.998,1.0364441,1.074502,152.34346,True,0.0,71.67625 +38.34516,0.2519363,0.18013059,39.56853,True,0.0,71.67625 +156.93127,-0.8003588,-0.70228344,209.9354,True,0.0,345.87665 +149.47801,-1.8061651,2.4329803,467.21912,True,0.0,345.87665 +2.6453195,-0.7320981,-2.6336324,3.386456,False,0.0,345.87665 +1.8384856,-1.3122882,-1.4861852,3.662141,False,0.0,345.87665 +69.484276,2.3237882,-2.0159106,358.26773,True,0.0,89.97639 +31.9379,2.0823524,1.7778881,130.11433,True,0.0,89.97639 +3.4373462,-1.0942674,1.543619,5.709051,False,0.0,89.97639 +2.6963272,-0.048408665,1.2506254,2.699487,False,0.0,89.97639 +1.6720889,0.07253756,-2.2574341,1.6764898,False,1.0787499,89.97639 +59.961727,2.3535104,-2.845151,318.32114,True,0.0,90.29959 +36.506107,2.0402882,0.9178515,142.7903,True,0.0,90.29959 +183.93953,-0.11174957,-2.1954389,185.08925,True,0.0,275.15808 +151.42366,0.38765326,-0.39068398,162.94446,True,0.0,275.15808 +2.216074,1.6422459,-2.3422124,5.9394164,False,0.0,275.15808 +140.12097,1.2652396,-2.9888906,268.05936,True,1.7395273,236.18346 +105.0078,1.0320582,0.6717742,166.0756,True,0.0,236.18346 +2.154539,-0.4779817,0.72758657,2.4053807,False,5.345057,236.18346 +149.38985,1.5549024,0.08112034,369.4287,True,0.0,5.4241934 +30.904102,1.6000276,0.14707334,79.65625,True,0.0,5.4241934 +54.47756,-1.7558529,-1.0637608,162.37425,True,0.0,122.752815 +54.025257,-0.73662627,1.9674224,69.3577,True,0.0,122.752815 +3.0717237,-1.8126097,-2.8264267,9.660021,False,0.0,122.752815 +60.913254,-0.76330966,0.1958024,79.537056,True,0.0,139.82668 +49.349525,-2.2161543,-2.8743465,229.00693,True,2.6899393,139.82668 +2.5590296,-0.7165639,-0.17526491,3.244611,False,0.0,139.82668 +2.3149018,-0.5828153,-0.21404411,2.719313,False,0.0,139.82668 +1.9125226,-0.87216824,1.6014229,2.6872244,False,1.7899319,139.82668 +1.8732451,-1.8470557,-2.9420981,6.0869436,False,0.0,139.82668 +55.024902,1.3049042,-1.1240907,108.90898,True,0.0,47.52565 +48.1505,1.6688789,-1.9994469,132.28564,True,0.0,47.52565 +4.603002,1.2137482,-1.6897882,8.430765,False,0.0,47.52565 +59.167873,0.35109055,-0.80181026,62.85214,True,0.0,56.049427 +45.692326,0.028909797,-1.8817961,45.71142,True,0.0,56.049427 +32.901833,-2.0340564,-0.8679925,127.91967,False,7.7986293,56.049427 +2.0075512,0.6008906,2.6181533,2.3810213,False,0.0,56.049427 +72.82733,-0.68467164,0.97857857,90.574486,True,0.0,55.016243 +60.225494,-0.32277215,1.7439035,63.39003,True,0.0,55.016243 +2.734603,-0.94118047,-0.1244251,4.0378766,False,0.0,55.016243 +82.99222,0.005255462,-3.1164284,82.99336,True,1.1706235,128.44975 +48.57054,0.30957112,0.011426365,50.91655,True,1.5177093,128.44975 +90.02463,-1.7716664,-3.0696802,272.35574,True,0.0,61.837868 +45.92805,-1.9441357,2.228053,163.74959,True,0.0,61.837868 +2.2134118,-0.07142341,1.2408837,2.21906,False,7.936049,61.837868 +160.28957,-2.2822826,2.307579,793.51935,True,0.0,104.91544 +59.82599,-2.0611253,1.2042823,238.76894,True,0.0,104.91544 +3.3450646,-2.2613575,2.2087066,16.224092,False,0.0,104.91544 +121.90916,1.1262695,2.329627,207.75577,True,0.0,25.984821 +41.468678,1.0403917,2.6867397,66.010704,True,0.0,25.984821 +81.60695,1.0308048,-1.558756,128.94063,True,0.0,211.92091 +82.165764,-0.4699934,1.4805229,91.409004,True,0.0,211.92091 +1.861878,0.51818454,-2.4175096,2.1174932,False,0.0,211.92091 +144.28659,-1.8354366,-2.6098144,463.69482,True,2.947797,34.011948 +33.322227,-2.1446989,-2.2277741,144.22813,True,0.0,34.011948 +13.143542,-1.804276,-2.539135,41.008934,False,8.267627,34.011948 +5.5473423,-0.91522413,2.6310828,8.037438,False,12.130859,34.011948 +5.823748,0.40759492,-2.31464,6.314243,False,0.0,34.011948 +2.0442286,0.19975598,-2.8640552,2.0851493,False,0.0,34.011948 +1.8627204,-0.60842013,-2.54419,2.218254,False,0.0,34.011948 +2.0042932,-1.3455857,-2.596854,4.1096253,False,1.268035,34.011948 +57.246265,-1.9065273,2.5616689,196.87773,True,1.1956758,89.2173 +38.39725,-1.892151,0.04587741,130.25056,True,0.0,89.2173 +2.410156,0.95929193,-2.3511026,3.606813,False,0.0,89.2173 +2.9590547,-1.9084164,2.6874068,10.195005,False,38.65667,89.2173 +1.7753956,-1.295195,1.5015677,3.4847043,False,0.0,89.2173 +1.9953899,-0.60892034,-0.6693156,2.3768916,False,0.0,89.2173 +89.92795,1.906034,-0.29635817,309.12857,True,0.0,138.22276 +60.726433,1.634258,-2.6596494,161.5551,True,0.0,138.22276 +1.9328713,-1.071292,-3.0002046,3.1522372,False,0.0,138.22276 +1.652815,-1.2076579,-0.4101516,3.011872,False,0.0,138.22276 +230.5104,-1.2625993,1.6370771,439.98846,True,6.5855155,450.50247 +217.18655,-1.0307277,-1.5157924,343.1387,True,0.0,450.50247 +5.208825,-1.2213762,1.5208509,9.601626,False,35.85757,450.50247 +56.779594,1.825526,0.14675595,180.76328,True,0.0,89.72571 +35.517666,1.8839052,-2.8882856,119.53723,True,0.0,89.72571 +2.0999634,1.8918679,-2.809221,7.1215367,False,0.0,89.72571 +2.2472177,-0.6123804,-1.4909662,2.6819158,False,0.0,89.72571 +2.3465512,1.8094826,-2.8448439,7.357641,False,0.0,89.72571 +3.3101623,1.9451113,1.9416955,11.812945,False,0.0,89.72571 +2.0149112,-0.5908395,-0.9238453,2.3769562,False,0.0,89.72571 +1.9924172,0.57150394,-0.4440252,2.3267488,False,0.0,89.72571 +63.830406,0.61395085,-1.6502911,76.24304,True,0.0,68.993034 +43.656334,1.7098416,-1.0218608,124.61657,True,0.0,68.993034 +2.4697332,-0.13470832,3.0302317,2.4921753,False,0.0,68.993034 +85.19853,0.45064864,-2.364088,93.99718,True,3.3866715,142.90839 +65.76533,0.9998985,-0.062062558,101.47336,True,0.0,142.90839 +3.1579697,1.7939485,0.45891878,9.757259,False,0.0,142.90839 +1.8398206,-1.6207372,1.6220585,4.833733,False,0.0,142.90839 +94.209076,0.6943394,-2.36846,117.84567,True,0.0,232.80615 +92.96505,-0.6761912,0.7179956,115.040726,True,0.0,232.80615 +3.1125765,-1.8626312,-1.2169352,10.26516,False,0.0,232.80615 +2.7439427,1.5489461,2.4089522,6.7486987,False,0.0,232.80615 +2.2590947,-0.26635164,1.5010208,2.3397033,False,0.0,232.80615 +2.024421,-1.7389354,-1.4401355,5.9386272,False,1.0446627,232.80615 +1.8157071,0.25152734,0.7293652,1.8734467,False,0.0,232.80615 +146.68622,-1.5370954,-2.7783952,356.8924,True,0.0,284.99704 +125.59081,-2.171178,0.28079322,557.78973,True,0.0,284.99704 +1.9200709,-1.1012686,-0.8005716,3.20693,False,0.0,284.99704 +141.6066,0.022178736,3.1395507,141.64142,True,0.0,320.97464 +124.494,-1.2634073,-0.22449906,237.79247,True,0.0,320.97464 +4.938083,0.045818232,0.24661875,4.9432673,False,0.0,320.97464 +3.002863,0.36282676,-1.780407,3.2026942,False,0.0,320.97464 +2.5541284,1.8183317,-1.1298081,8.075984,False,0.0,320.97464 +2.1344774,0.18533728,0.91375035,2.171242,False,0.0,320.97464 +118.37162,-0.49835098,-0.0049425806,133.37738,True,1.4696971,207.30124 +100.69893,-0.90648943,2.3670037,144.98412,True,2.5595877,207.30124 +1.9519682,0.4060421,-3.0502026,2.1151018,False,0.0,207.30124 +86.692566,1.8557885,0.5626136,284.0512,True,0.0,173.1052 +87.282486,1.7496332,-2.8055878,258.6324,True,0.0,173.1052 +70.864716,1.2713097,1.3044659,136.27226,True,1.9745133,79.85224 +35.25027,1.0531908,3.1304371,56.675507,True,1.3096654,79.85224 +2.013782,-0.53520894,0.5739834,2.3091555,False,0.0,79.85224 +83.3535,-0.4402968,-0.1972027,91.56438,True,0.0,210.9475 +75.294716,-2.0265856,2.9385552,290.63452,True,0.0,210.9475 +3.1206698,-1.2940277,0.87205404,6.1190286,False,0.0,210.9475 +233.60822,0.84602225,-2.3801215,322.3183,True,0.0,334.01346 +135.67407,1.2233745,1.5736004,250.51355,True,0.0,334.01346 +69.55596,0.5956903,-0.6584602,82.26609,False,23.488533,334.01346 +229.99867,-1.724652,-2.1250389,665.70856,True,0.0,475.44452 +222.96861,-2.3530173,1.0272382,1183.1091,True,0.0,475.44452 +2.400069,0.48993862,-1.1519381,2.6939335,False,0.0,475.44452 +2.1882603,0.34115863,-0.45712742,2.3168452,False,0.0,475.44452 +1.8622801,-0.43363953,-1.8181269,2.0401359,False,0.0,475.44452 +59.244595,2.2632983,0.7691122,287.89188,True,0.0,95.005264 +63.54909,1.3074536,2.0415225,126.05777,True,0.0,95.005264 +172.11945,-0.7606323,-0.5908784,224.35767,True,0.0,94.722206 +33.280327,-0.14615548,0.5556693,33.636417,True,0.0,94.722206 +3.3790092,-0.8197596,2.0912347,4.579388,False,0.0,94.722206 +3.1457207,-0.23047471,2.1585178,3.2296393,False,0.0,94.722206 +2.9727488,0.7355409,0.29126835,3.8138235,False,0.0,94.722206 +84.86627,1.5945667,-0.47500548,217.64764,True,0.0,165.35294 +79.92064,1.7796314,2.610037,243.61295,True,0.0,165.35294 +1.9280205,0.8547799,-2.6990378,2.6763177,False,0.0,165.35294 +91.25577,-0.5188799,-1.392643,103.81856,True,0.0,155.70566 +64.21052,-1.0978882,2.2081456,106.955574,True,0.0,155.70566 +130.73697,0.58687735,0.5413263,153.90518,True,0.0,42.040485 +47.535137,0.5473724,1.0796237,54.83588,True,0.0,42.040485 +50.164154,-0.002164009,2.2236724,50.16427,True,0.0,91.77166 +39.687767,-0.47753105,-0.91887987,44.29953,True,1.5477458,91.77166 +4.1165,1.6453952,2.8639522,11.06514,False,0.0,91.77166 +2.7422335,2.308396,-1.6193739,13.927392,False,0.0,91.77166 +129.64915,0.3016855,-2.3526177,135.594,True,0.0,195.31285 +70.70327,0.7039823,0.7388413,88.95885,True,0.0,195.31285 +52.412727,-1.92269,1.793084,183.06572,True,0.0,83.98377 +33.64252,-1.9312526,-1.343646,118.474014,True,0.0,83.98377 +1.7550468,-0.3663796,-0.13335009,1.874164,False,0.0,83.98377 +58.16876,2.3382065,-2.4239933,304.19745,True,0.0,107.949135 +46.826847,1.7952251,0.5624646,144.85698,True,1.2309456,107.949135 +4.2266536,0.9932193,-2.902665,6.4885364,False,0.0,107.949135 +3.9398952,-1.0271125,0.78975886,6.2073617,False,0.0,107.949135 +2.3244479,0.13582061,0.73608804,2.3459206,False,0.0,107.949135 +133.68074,0.36319134,1.7301152,142.59485,True,0.0,279.82782 +98.46928,1.6773531,-1.6161972,272.67328,True,3.256317,279.82782 +6.4525924,-1.6748699,2.225927,17.826683,False,0.0,279.82782 +3.4548469,-0.25619373,-0.85148156,3.5688484,False,4.3389072,279.82782 +97.3875,-0.15378106,-1.7077565,98.54131,True,0.0,190.65724 +94.68771,-0.028766887,1.7061744,94.72689,True,0.0,190.65724 +5.84128,-1.2340887,0.99965996,10.883316,False,0.0,190.65724 +2.1680615,-1.2861658,-2.1016467,4.2225304,False,0.0,190.65724 +138.66298,0.35942572,-2.8367605,147.71654,True,0.0,260.64478 +115.05992,-0.14723268,0.2402879,116.30928,True,0.0,260.64478 +1.851901,-0.2383209,-0.90325135,1.9047414,False,0.0,260.64478 +68.98669,-0.54449373,-1.3848052,79.46821,True,1.0591329,151.73672 +70.56307,0.28574708,1.7644964,73.46351,True,0.0,151.73672 +9.889213,-0.60934466,-1.468742,11.782664,False,1.0591329,151.73672 +51.975662,0.7082703,-1.5188147,65.56656,True,0.0,74.52919 +32.700794,0.9375554,0.70507354,48.157066,True,0.0,74.52919 +100.01438,-1.1279851,2.6463273,170.68005,True,0.0,215.36862 +97.432846,-0.2800293,-0.43808326,101.27804,True,0.0,215.36862 +163.20233,-0.82805806,-0.6811015,222.42572,True,0.0,296.54916 +109.95381,0.1449333,2.1077914,111.110664,True,0.0,296.54916 +4.0544853,1.3496549,-2.3789349,8.342963,False,0.0,296.54916 +127.30635,-0.5819432,1.7642633,149.47827,True,0.0,99.706604 +47.88015,-1.1743004,0.5672668,84.86549,True,0.0,99.706604 +98.162346,-0.25508437,-0.68411916,101.373314,True,0.0,82.04188 +31.652473,0.9253377,0.113659196,46.198643,True,0.0,82.04188 +2.764148,0.63054144,2.9278173,3.332085,False,0.0,82.04188 +137.86594,-0.32820284,0.7162285,145.3581,True,0.0,202.13194 +71.664,0.18520243,-2.0571182,72.89655,True,0.0,202.13194 +2.7643027,2.3021479,-1.9137443,13.953748,False,0.0,202.13194 +3.2925525,-0.88969666,-2.9974475,4.683938,False,0.0,202.13194 +157.04771,0.79676676,-0.20778054,209.59125,True,0.0,321.46402 +149.83488,0.0020496955,2.4042435,149.8352,True,0.0,321.46402 +3.021298,-1.938496,-1.7610271,10.713844,False,0.0,321.46402 +2.4744318,1.1524794,1.6866114,4.307844,False,0.0,321.46402 +2.076921,0.68034744,2.934783,2.5764253,False,6.478863,321.46402 +1.7411352,1.8219886,-1.3319051,5.52449,False,0.0,321.46402 +150.43124,-1.8849168,0.9402745,506.7764,True,0.0,256.94308 +111.35432,-1.7970924,-1.9426811,345.07944,True,0.0,256.94308 +2.7788355,0.3917543,0.8333823,2.9948125,False,0.0,256.94308 +167.33736,1.1546552,-0.3595722,291.84433,True,0.0,37.251152 +44.777832,0.75058484,-0.2191464,57.994656,True,2.0223722,37.251152 +26.523134,-0.74214196,2.6518807,34.16873,False,115.05557,37.251152 +1.6862018,-0.60578805,0.95225596,2.0051806,False,0.0,37.251152 +139.3777,1.0786055,0.3697884,228.62442,True,0.0,77.03591 +44.596027,0.74222094,1.3221865,57.4542,True,1.5542544,77.03591 +14.650882,-0.41297013,-1.309082,15.918051,True,0.0,77.03591 +1.7471634,0.14108226,-3.0543013,1.7645802,False,0.0,77.03591 +123.42695,1.0596391,0.8286332,199.45241,True,0.0,231.71329 +101.63298,1.6370351,-2.5638597,271.0787,True,0.0,231.71329 +3.2784019,-0.39305413,0.91818756,3.5349216,False,0.0,231.71329 +1.7917343,-0.65422314,2.9368804,2.1890454,False,0.0,231.71329 +63.524776,-2.095722,-1.0152427,262.176,True,0.0,98.51808 +39.863163,-2.2891486,2.5827763,198.67574,True,0.0,98.51808 +3.2741885,0.86118436,0.8383742,4.5652375,False,0.0,98.51808 +1.8197604,-1.5958999,-1.8269382,4.672683,False,0.0,98.51808 +1.9417236,-0.71688724,1.5935684,2.4624143,False,0.0,98.51808 +105.56305,-0.38899058,0.7138989,113.650826,True,0.0,99.794495 +48.402485,0.5621977,-0.31824002,56.255287,True,0.0,99.794495 +3.8015997,-0.67366064,1.0076549,4.6973386,False,0.0,99.794495 +126.370766,1.2157345,1.332126,231.84377,True,0.0,228.68079 +93.14788,0.553017,-1.6959206,107.75822,True,0.0,228.68079 +2.3297307,-0.33508962,0.12647462,2.4617562,False,0.0,228.68079 +2.2176883,-1.9857,-1.1437416,8.229208,False,0.0,228.68079 +220.98608,0.17756662,-0.7642312,224.47908,True,0.0,499.33987 +218.76553,1.2086762,2.3210254,398.989,True,0.0,499.33987 +2.508328,1.7460746,0.79392594,7.407738,False,0.0,499.33987 +148.00229,-1.6510413,-2.6027243,399.921,True,0.0,147.74297 +72.56617,-1.1626427,2.2153137,127.39112,True,0.0,147.74297 +2.3090062,-1.3279052,1.7244524,4.662071,False,0.0,147.74297 +1.9466805,-1.3597364,-1.1112605,4.041207,False,0.0,147.74297 +197.0414,-1.7602329,1.6737384,589.7248,True,9.02194,353.55145 +176.83,-1.9325118,-0.78992593,623.4691,True,0.0,353.55145 +2.3498116,-2.3113818,-2.682731,11.969328,False,1.5039414,353.55145 +130.16028,-0.9050151,2.025482,187.20334,True,0.0,231.16197 +111.09082,-0.5740113,-0.46017772,129.90048,True,0.0,231.16197 +2.8216164,-0.667313,-1.3400164,3.473521,False,5.598094,231.16197 +59.243847,1.6483225,-0.82830584,159.68066,True,1.0271525,128.52776 +55.822365,0.6857061,2.2401063,69.468346,True,0.0,128.52776 +1.9965799,0.44369859,-2.133937,2.196357,False,0.0,128.52776 +63.55344,2.0904067,-3.061892,260.94537,True,0.0,92.51018 +37.98873,1.7360452,-0.70311975,111.137405,True,1.2270283,92.51018 +2.5942154,-2.27294,-0.11276739,12.725804,False,0.0,92.51018 +118.25476,-0.84960264,-2.201608,163.5642,True,0.0,282.64316 +106.21671,-2.2663689,0.8616113,517.70056,True,0.0,282.64316 +2.0236375,-1.2333926,-0.83344483,3.7681735,False,0.0,282.64316 +141.03893,1.6974038,-2.3713522,397.93515,True,0.0,255.4923 +119.36383,1.8649529,0.3795517,394.52942,True,0.0,255.4923 +130.78654,-1.0900116,-0.3504887,216.48581,True,0.0,274.06796 +117.312904,-2.0046384,2.761417,443.33243,True,0.0,274.06796 +2.4047675,0.65062284,-0.54116124,2.9319587,False,0.0,274.06796 +4.060242,1.5719638,1.4973263,10.198787,False,0.0,274.06796 +126.47928,0.1687193,-1.7313396,128.28375,True,0.0,191.0707 +72.93657,0.32392603,1.6690731,76.79669,True,0.0,191.0707 +2.5254135,0.91725683,0.06177947,3.6644132,False,0.0,191.0707 +2.1900141,0.2824379,0.16466264,2.2779465,False,0.0,191.0707 +154.1485,-0.615822,2.5003633,184.31339,True,0.0,338.19122 +143.61107,0.41766995,-0.6519668,156.32057,True,7.688513,338.19122 +12.824182,0.35919312,-0.67820233,13.6604,False,7.688513,338.19122 +135.63887,0.6011868,-2.9270515,160.89777,True,0.0,48.008747 +35.084034,0.5119976,2.6514425,39.783863,True,0.0,48.008747 +78.25836,-0.66648597,-3.1047237,96.29269,True,0.0,207.35277 +76.13621,0.94755316,0.11513319,112.95108,True,0.0,207.35277 +108.20457,-0.44332555,0.8757909,119.01299,True,2.3773973,18.11406 +43.5574,-0.6319942,0.6913669,52.54959,True,0.0,18.11406 +175.90913,-0.46687052,-1.6617645,195.4312,True,0.0,363.9555 +157.02306,0.40755787,1.3419312,170.2456,True,1.3440638,363.9555 +8.030367,0.4756906,1.3745828,8.956191,False,0.0,363.9555 +3.3777442,0.32547095,-0.04529302,3.5582335,False,0.0,363.9555 +1.8877305,2.3277092,2.7573965,9.770839,False,2.92093,363.9555 +185.1667,1.7059895,2.9364674,526.6534,True,0.0,382.8124 +140.85283,0.430105,0.29217333,154.08311,True,0.0,382.8124 +124.52088,2.230736,-2.7354336,586.12994,True,0.0,247.12952 +115.4517,1.7343831,0.4632958,337.231,True,0.0,247.12952 +8.523259,0.22652008,-0.15142821,8.742866,False,0.0,247.12952 +2.2884545,2.0130587,-0.06909394,8.718737,False,0.0,247.12952 +53.91449,-1.9683062,-2.3354387,196.74028,True,0.0,88.90748 +33.270947,-1.2955829,0.55396175,65.32522,True,0.0,88.90748 +127.05759,0.6689146,-0.37683165,156.55919,True,0.0,255.94432 +126.34693,0.9701537,2.8688097,190.61801,True,4.4993396,255.94432 +13.301641,1.6990218,0.42187503,37.586834,False,5.5285473,255.94432 +2.5581117,-1.9310942,2.5399628,9.007165,False,0.0,255.94432 +2.7285287,1.7359477,0.30272523,7.981678,False,13.323492,255.94432 +53.254166,1.077201,-2.0248554,87.25685,True,0.0,83.97377 +33.13481,2.3091104,2.548733,168.40463,True,0.0,83.97377 +3.993138,-0.0046989424,3.0749893,3.9931822,False,0.0,83.97377 +3.2359705,-0.5796377,-1.9357792,3.7949727,False,0.0,83.97377 +191.34286,0.55918515,0.9400057,222.04585,True,0.0,326.80292 +144.43881,-0.20748526,-1.3041291,147.55904,True,0.0,326.80292 +3.215264,1.891682,0.6455635,10.901883,False,0.0,326.80292 +2.5097768,0.17307042,2.2000518,2.547459,False,0.0,326.80292 +60.621037,0.059494823,-1.2797363,60.728355,True,0.0,92.29898 +34.043255,-0.29717806,1.8857912,35.55761,True,0.0,92.29898 +2.0314546,1.2526035,-1.3271569,3.8447325,False,0.0,92.29898 +123.59361,0.051352102,-2.0961764,123.75661,True,0.0,251.45183 +109.068115,0.9055498,0.7534333,156.92781,True,0.0,251.45183 +2.333028,0.34978515,1.4448167,2.4772117,False,0.0,251.45183 +2.8605812,-1.5587841,-0.5291403,7.0991473,False,0.0,251.45183 +86.799736,1.8677053,-0.6760972,287.65012,True,1.4731838,142.08244 +84.40754,1.6166582,-2.6002073,220.92801,True,1.242486,142.08244 +123.07779,0.13877562,2.9913676,124.26485,True,0.0,86.7755 +31.507736,-0.6697917,-2.1045644,38.843452,True,0.0,86.7755 +50.55182,0.32829854,0.24956365,53.300613,True,0.0,85.92822 +36.083397,0.66394883,-2.634717,44.333183,True,0.0,85.92822 +3.5244644,-0.33745942,1.1929032,3.727057,False,0.0,85.92822 +1.9386616,1.2772046,1.0163282,3.7468662,False,0.0,85.92822 +164.45668,-0.59996843,-2.652279,194.95438,True,9.044003,286.2722 +115.11527,-1.2322251,0.7808288,214.1428,True,3.8486342,286.2722 +234.08192,0.42333195,0.81577104,255.37195,True,0.0,338.65424 +120.07322,-0.06318986,-1.9217753,120.31302,True,0.0,338.65424 +104.29766,-1.5455407,-0.59025383,255.72241,True,0.0,64.368324 +53.903255,-1.8762914,-1.404093,180.10162,True,0.0,64.368324 +35.06589,-0.4396506,2.1159945,38.509823,False,18.043234,64.368324 +2.7487347,-0.26707286,2.0345,2.8473494,False,10.871773,64.368324 +2.2437537,-0.6420913,2.1582966,2.7223933,False,5.9379992,64.368324 +83.29115,1.8129166,-2.3751945,262.01202,True,0.0,109.19664 +43.13454,2.3485165,1.7990279,227.86977,True,1.7318882,109.19664 +1.9466155,0.69456327,2.0651524,2.4353392,False,0.0,109.19664 +83.436775,-0.052709155,3.0138152,83.552704,True,0.0,63.536892 +38.36842,0.25615647,-2.1293447,39.63411,True,0.0,63.536892 +3.9019763,-0.48034337,0.5811685,4.3608494,False,0.0,63.536892 +2.3501744,0.12776248,0.8390425,2.3693817,False,0.0,63.536892 +121.77324,-0.15401691,0.85107136,123.220406,True,6.163087,44.25351 +44.112953,0.15950045,0.32996202,44.67527,True,0.0,44.25351 +2.8836603,0.0924166,-0.08730061,2.8959837,False,0.0,44.25351 +2.256276,-0.4438975,0.55859464,2.482244,False,0.0,44.25351 +1.9091064,0.9516245,0.40651652,2.8407757,False,0.0,44.25351 +80.13874,0.82206506,-3.1167457,108.776985,True,0.0,184.3871 +74.060555,-0.42403707,0.21489808,80.819244,True,0.0,184.3871 +62.217354,2.2343028,1.7727778,293.88474,True,0.0,122.69296 +47.515,1.2316476,-1.3866432,88.346596,True,0.0,122.69296 +4.2543774,1.5944926,1.0333737,10.910011,False,1.5859417,122.69296 +2.3086166,0.7396032,-2.371715,2.9693513,False,0.0,122.69296 +513.78864,0.6474963,2.3305712,625.3078,True,22.298399,74.012665 +50.90767,0.5576915,2.783163,59.03164,True,0.0,74.012665 +73.45453,0.30525687,-0.4309396,76.9035,True,0.0,130.24033 +49.181458,2.046012,-1.3696538,193.4364,True,0.0,130.24033 +88.66614,0.8034757,0.5695771,118.859604,True,0.0,114.39308 +47.137184,0.09479144,-1.3097694,47.349117,True,0.0,114.39308 +23.008701,2.0654106,2.1442926,92.21085,False,12.627529,114.39308 +2.2061472,-0.81435955,-2.9454594,2.9790182,False,0.0,114.39308 +2.666783,2.1076937,2.2140057,11.13483,False,20.72179,114.39308 +3.250932,2.252524,2.3009229,15.631855,False,25.342382,114.39308 +1.9757586,-0.26561087,1.0096499,2.0458634,False,0.0,114.39308 +96.14784,0.9924053,2.5759323,147.51,True,0.0,192.97891 +77.016266,2.0811641,-0.03206284,313.40143,True,0.0,192.97891 +6.455812,0.33628863,-1.416304,6.8243093,False,26.038597,192.97891 +3.1613834,1.7162608,2.280416,9.07858,False,0.0,192.97891 +51.530403,0.6672838,2.347057,63.43487,True,0.0,126.02604 +46.369102,2.2632096,-0.080484316,225.30544,True,0.0,126.02604 +5.6518774,-1.1830835,2.121167,10.090741,False,0.0,126.02604 +2.5801969,-1.9547735,-1.3273406,9.29376,False,0.0,126.02604 +134.5073,-1.1706951,1.7371012,237.70023,True,7.0000176,134.879 +87.42899,-1.8790393,2.7980483,292.8849,True,0.0,134.879 +2.8163214,-0.50822186,-0.54860187,3.1879306,False,1.7748275,134.879 +1.8260903,0.71276134,0.39000452,2.3099167,False,0.0,134.879 +363.82547,0.24009436,-2.2096364,374.36237,True,1.0319571,601.9098 +221.35054,0.9390676,1.032297,326.33575,True,0.0,601.9098 +4.5192094,-1.0818013,1.5248318,7.431779,False,0.0,601.9098 +106.01939,-1.092868,-1.7664437,175.88988,True,3.9111605,147.78838 +53.10916,-1.0916305,1.7246996,88.02302,True,0.0,147.78838 +2.261632,-0.68730295,-1.7979186,2.8171751,False,0.0,147.78838 +92.23237,1.1595025,-0.70003897,161.49837,True,0.0,119.60799 +44.441097,1.684086,1.5196801,123.83819,True,0.0,119.60799 +16.167183,1.1597192,-0.6122075,28.313684,False,75.00303,119.60799 +2.554457,0.89011735,0.668654,3.6350217,False,0.0,119.60799 +114.411865,-0.7026353,-2.570718,143.83545,True,1.2599572,199.99536 +79.36535,0.029184962,0.17461696,79.399155,True,0.0,199.99536 +15.749561,-0.07717011,-2.3974037,15.796481,True,0.0,199.99536 +2.78863,1.6358634,-1.8856874,7.429849,False,0.0,199.99536 +2.6600595,-1.8477367,-2.1628802,8.64923,False,0.0,199.99536 +1.9967463,-0.49923503,2.6647143,2.2507877,False,0.0,199.99536 +57.055973,1.5454029,1.0622,139.87518,True,0.0,110.1641 +52.29613,1.2866437,-2.0768888,101.894066,True,0.0,110.1641 +1.9758843,0.433131,-2.227059,2.1641405,False,0.0,110.1641 +62.060112,-2.2324333,-0.054850888,292.60693,True,0.0,106.40195 +51.610313,-2.110958,2.3791697,216.17676,True,0.0,106.40195 +131.58861,1.5326678,-0.7333753,318.87027,True,0.0,148.17752 +54.703114,1.1990824,-2.792286,98.97277,True,0.0,148.17752 +6.135075,-2.0193427,1.9930068,23.516092,False,0.0,148.17752 +2.5897276,2.3076043,0.74561316,13.142632,False,0.0,148.17752 +56.29804,-0.9477196,-0.20604566,83.53063,True,0.0,95.298225 +35.36292,-0.07685625,2.4344928,35.46741,True,0.0,95.298225 +3.308977,-0.62979823,-2.010972,3.987203,False,0.0,95.298225 +1.644077,-0.42413104,-2.9139984,1.7941811,False,0.0,95.298225 +59.491173,2.1741402,-2.9161804,264.9834,True,0.0,95.55888 +38.115593,1.9941165,0.29917544,142.58748,True,0.0,95.55888 +2.1862564,2.2076647,0.68423843,10.061601,False,0.0,95.55888 +1.9653447,2.1846037,-2.3677409,8.843705,False,0.0,95.55888 +54.461277,0.05035157,1.0471162,54.53033,True,0.0,93.56821 +39.22232,-0.52343774,-2.5891657,44.719334,True,1.7813625,93.56821 +2.7712617,-0.903936,-0.44605896,3.9826853,False,0.0,93.56821 +85.2419,-0.64186233,0.21020901,103.41238,True,2.13364,51.021786 +39.908638,-0.86901075,1.0822109,55.950253,True,0.0,51.021786 +2.1005723,-1.9173162,-2.0113204,7.2991505,False,2.3694034,51.021786 +65.91644,-0.696544,1.940614,82.563965,True,0.0,20.522425 +52.52525,-0.49763075,2.2278664,59.164154,True,0.0,20.522425 +3.3612533,0.7810922,-0.71497107,4.439815,False,3.3692174,20.522425 +2.102006,-0.3798825,0.6588255,2.2555096,False,0.0,20.522425 +3.0052514,2.2223463,-0.9200161,14.030488,False,0.0,20.522425 +2.5078804,-2.1886547,-0.10031309,11.329685,False,0.0,20.522425 +139.20815,0.39154398,-1.4457842,150.01593,True,0.0,248.19708 +107.4506,0.043262873,1.7607263,107.55117,True,0.0,248.19708 +5.275528,0.33066434,1.5986304,5.5665755,False,5.9735107,248.19708 +3.6608822,0.805679,-1.0043665,4.914735,False,0.0,248.19708 +2.9297514,0.29020366,-0.813542,3.053989,False,0.0,248.19708 +2.1443853,0.44374862,1.6540596,2.3590012,False,5.9735107,248.19708 +146.28293,0.57579064,-2.598211,171.20926,True,0.0,15.036155 +56.177525,0.5754752,-2.432155,65.739296,True,0.0,15.036155 +62.67573,1.7466702,2.7652853,185.20135,True,0.0,92.3056 +33.858364,1.5878761,-0.47746435,86.29996,True,0.0,92.3056 +239.45316,1.1656309,2.652505,421.39832,True,0.0,512.70276 +210.3067,0.07018993,-0.16354124,210.82497,True,7.488924,512.70276 +5.0759296,0.06946357,-0.07401417,5.0881805,False,41.795185,512.70276 +4.3815885,0.46122923,0.5367,4.8559623,False,1.4423343,512.70276 +1.793039,-1.861452,-0.5883951,5.906734,False,0.0,512.70276 +50.63103,-1.1432924,-1.631739,87.486565,True,1.4795581,89.32884 +39.697823,-0.6155362,2.0787117,47.458744,True,2.0307367,89.32884 +1.8952231,-0.7475764,1.9044482,2.4499438,False,4.8680353,89.32884 +55.85909,2.0188837,2.5407245,214.01624,True,0.0,90.743546 +39.27577,2.3660507,-1.2176083,211.08917,True,0.0,90.743546 +2.6374543,-0.2720165,-1.1076291,2.735634,False,0.0,90.743546 +75.72137,2.2779698,-1.0508889,373.28152,True,0.0,123.86257 +46.15406,1.6449859,1.9344256,124.014854,True,0.0,123.86257 +138.37148,0.6959302,0.1056119,173.25381,True,0.0,333.9971 +121.0893,2.1850417,-3.0061383,545.1133,True,0.0,333.9971 +3.1547718,-0.82918096,2.3995724,4.3028684,False,0.0,333.9971 +2.813847,0.88161117,0.5428675,3.9800494,False,0.0,333.9971 +94.36651,0.2898096,1.8616486,98.35722,True,1.5816338,185.44318 +91.654335,0.40545073,-1.4734991,99.29165,True,0.0,185.44318 +5.528248,-1.782204,0.9918908,16.892136,False,0.0,185.44318 +3.1041753,-2.0172672,1.5335664,11.874667,False,0.0,185.44318 +3.0223393,-0.5335765,-0.27335742,3.4628801,False,0.0,185.44318 +3.978135,1.5700022,2.0058632,9.974584,False,0.0,185.44318 +1.1437284,1.2974721,1.9980944,2.2492874,False,0.0,185.44318 +123.12506,0.93646705,0.897716,181.17628,True,3.2036288,230.18906 +108.12147,0.8654304,-2.401499,151.20241,True,0.0,230.18906 +4.049308,1.6479335,-2.7460785,10.910207,False,0.0,230.18906 +65.884125,0.42082524,0.6444543,71.804565,True,0.0,123.42221 +53.541386,1.0039347,-2.6746461,82.8669,True,0.0,123.42221 +1.7924272,-1.240525,1.3191555,3.3578079,False,0.0,123.42221 +65.626114,-2.3739676,-1.7334664,355.46487,True,0.0,137.4355 +56.88284,-1.3646864,1.6282495,118.599464,True,0.0,137.4355 +1.780127,0.3908037,2.4450717,1.9178032,False,0.0,137.4355 +170.5833,-1.7424147,2.720225,502.04495,True,0.0,277.92938 +112.10146,-1.9515564,-0.35452938,402.5389,True,0.0,277.92938 +10.575777,-0.39999008,0.3030906,11.433138,True,10.33075,277.92938 +2.8195734,-0.48396075,-0.4340323,3.1562662,False,0.0,277.92938 +148.08743,-1.2668283,0.7934483,283.68372,True,1.5291579,156.3712 +73.649536,-0.58874434,-0.65920186,86.78672,True,0.0,156.3712 +3.776456,-0.79062134,-2.661675,5.019531,False,13.671578,156.3712 +1.7481772,-0.40616176,1.0565568,1.8943665,False,0.0,156.3712 +140.98254,0.7692562,1.8491504,184.79414,True,0.0,265.724 +124.829834,0.62560654,-1.384747,150.0652,True,1.5393555,265.724 +3.0520825,0.22347547,-1.7240354,3.1286128,False,0.0,265.724 +2.3580906,-1.082603,-0.92157423,3.8803172,False,0.0,265.724 +75.74958,-0.014692573,0.53930455,75.75775,True,0.0,9.773109 +47.772137,0.1446934,0.50868785,48.273094,True,0.0,9.773109 +2.4414196,-0.22447295,2.326245,2.5031877,False,0.0,9.773109 +2.0905578,0.2986033,1.2155741,2.1844537,False,0.0,9.773109 +112.93644,2.2414737,-0.5288655,537.2096,True,0.0,41.48155 +30.17149,1.5563481,-0.6590993,74.71033,True,0.0,41.48155 +2.9624763,-0.06333974,-0.2406513,2.968421,False,0.0,41.48155 +2.048765,-1.79148,-0.10558266,6.315355,False,0.0,41.48155 +51.465607,-1.9388832,2.0389059,182.57033,True,0.0,91.17822 +40.09625,-2.10836,-1.0912172,167.52539,True,0.0,91.17822 +1.9059699,0.15649295,-1.0871882,1.9293562,False,0.0,91.17822 +54.450798,-0.18224262,-2.3549807,55.35752,True,0.0,88.476944 +51.411396,1.1507444,3.0387423,89.37732,True,0.0,88.476944 +8.825408,1.0807307,0.5534885,14.500937,False,0.0,88.476944 +5.0969114,-1.966652,-1.673235,18.569664,False,0.0,88.476944 +141.29012,1.1118387,-0.24739112,237.99586,True,0.0,272.43692 +127.92951,0.7474428,3.061648,165.35973,True,0.0,272.43692 +4.5345974,1.1203667,-3.083228,7.6909904,False,3.086168,272.43692 +83.18368,-0.49547145,1.7487116,93.604744,True,0.0,22.450378 +39.37972,-0.5694693,1.3610808,45.939484,True,0.0,22.450378 +113.223175,0.22093628,-2.6458433,115.9978,True,0.0,214.54706 +101.656525,0.33179837,0.38127482,107.30374,True,3.1650114,214.54706 +96.11097,-0.672367,2.9095063,118.66664,True,0.0,191.75491 +77.7323,0.25422618,-0.22497879,80.25781,True,0.0,191.75491 +120.240906,2.1714394,-2.3334222,534.16504,True,2.4926581,90.92717 +115.20845,2.3310115,-3.108527,598.25104,True,0.0,90.92717 +4.806375,-0.61719626,-1.5313485,5.751256,False,0.0,90.92717 +2.3427665,-0.24711818,-1.1279205,2.4146647,False,0.0,90.92717 +2.6653602,-1.6927155,-0.7160459,7.487312,False,0.0,90.92717 +74.612625,-0.5095236,1.0901076,84.50923,True,0.0,90.54209 +63.27637,0.15078743,-0.11472716,63.99709,True,0.0,90.54209 +6.9344516,1.3414358,-0.6530634,14.167088,False,5.163249,90.54209 +87.08174,-1.6418655,-2.5241637,233.31001,True,0.0,108.94369 +43.53431,-1.0706197,1.7791984,70.96055,True,2.0982175,108.94369 +8.379833,0.56400925,-0.33163255,9.748382,False,0.0,108.94369 +2.762872,0.8688963,-0.45573628,3.8731213,False,0.0,108.94369 +91.09638,-2.0465536,-1.8761591,358.48044,True,0.0,162.94247 +82.9941,-1.8597732,0.52529323,272.9671,True,0.0,162.94247 +6.1572876,-0.112362064,2.6334774,6.196197,False,21.892641,162.94247 +2.6905053,1.8410993,-0.9840705,8.693166,False,0.0,162.94247 +53.782516,-0.2844357,-0.7403967,55.972824,True,0.0,84.229454 +31.53427,0.28534088,2.0109527,32.826756,True,0.0,84.229454 +2.4174926,-1.181104,-0.602462,4.30907,False,0.0,84.229454 +1.7600955,0.2731812,2.1654158,1.826181,False,17.603174,84.229454 +78.907974,2.2928064,-2.036896,394.68475,True,0.0,194.51073 +68.44789,0.26306292,-0.8443174,70.82995,True,0.0,194.51073 +1.9363681,0.52655274,-1.3523048,2.2110646,False,0.0,194.51073 +1.7826324,0.2712824,-2.1348386,1.8486313,False,0.0,194.51073 +80.25291,-2.0154564,-0.53630316,306.46222,True,1.152061,111.90167 +53.289257,-0.83209944,0.70688456,72.82705,True,0.0,111.90167 +2.4195075,-0.44136,-2.3473644,2.6590164,False,0.0,111.90167 +149.80983,-1.2745173,-0.67901874,288.8738,True,0.0,232.77779 +87.7548,-1.6785961,2.6723874,243.28546,True,0.0,232.77779 +4.0853324,0.12933667,-0.28906882,4.1195498,False,0.0,232.77779 +2.117761,0.11989599,-1.6859117,2.1330006,False,0.0,232.77779 +1.954315,-0.2924586,0.7195283,2.0384905,False,0.0,232.77779 +1.700096,0.19556233,1.9159889,1.7327095,False,1.6446931,232.77779 +122.767166,2.2000887,1.328445,560.8377,True,0.0,228.00616 +106.63745,2.0552845,-1.5890656,423.1969,True,2.4865975,228.00616 +2.6157055,-0.2802278,0.57805234,2.7190819,False,1.4813662,228.00616 +2.3255067,0.41971245,2.150488,2.53336,False,0.0,228.00616 +51.726192,0.1830599,1.1707617,52.59531,True,0.0,84.31535 +31.6284,-0.47386357,-2.2914748,35.246372,True,0.0,84.31535 +4.9028473,-0.4234825,-2.1414201,5.3490887,False,0.0,84.31535 +233.33809,-0.5410246,-2.0882928,268.3292,True,0.0,468.06915 +230.15027,-0.82371473,1.0815632,312.74527,True,0.0,468.06915 +5.116161,0.83625865,1.3020272,7.0118146,False,0.0,468.06915 +2.1456542,-1.0251116,-0.53488225,3.375289,False,0.0,468.06915 +53.758026,2.2707345,2.354055,263.13882,True,0.0,103.61263 +50.31809,2.2658498,-0.96459407,245.12595,True,0.0,103.61263 +1.7548039,2.079972,-1.9246169,7.1325574,False,0.0,103.61263 +61.55893,-0.28791347,-0.76313424,64.128044,True,0.0,132.4154 +62.027287,-1.0437523,2.2947745,98.99505,True,2.1886883,132.4154 +2.5214238,-0.07066318,-2.4623652,2.5277216,False,0.0,132.4154 +1.8312052,-0.4248218,-2.494856,1.9989474,False,0.0,132.4154 +1.7015214,-0.16925618,-1.3767015,1.7259519,False,0.0,132.4154 +59.001984,0.16634469,-0.53411555,59.82018,True,0.0,96.776344 +41.114075,-0.6589574,1.6432856,50.368168,True,0.0,96.776344 +3.0551496,-0.6602706,1.5348912,3.7456553,False,43.341854,96.776344 +2.0359943,-0.42391852,-1.6275656,2.2216916,False,0.0,96.776344 +1.8587475,-0.9969072,2.778803,2.861455,False,0.0,96.776344 +71.655525,0.7708396,1.2767617,94.01939,True,0.0,179.85223 +68.23892,2.265356,-2.1229072,332.26718,True,0.0,179.85223 +18.810116,0.2658613,1.3743206,19.478811,False,0.0,179.85223 +60.100243,1.7240374,-2.3543313,173.85394,True,1.9828595,88.690254 +33.386497,1.5856831,0.47131285,84.92579,True,0.0,88.690254 +5.3252015,1.1932986,1.3890686,9.588455,False,0.0,88.690254 +3.7819679,-1.7476417,-0.5751867,11.185608,False,0.0,88.690254 +109.89527,0.06432677,-0.68178713,110.12272,True,0.0,97.281944 +47.99344,0.6102374,-1.9941368,57.210342,True,0.0,97.281944 +83.412834,1.2049217,1.163587,151.65343,True,0.0,93.11869 +34.846714,-0.25225824,0.47441643,35.961327,True,0.0,93.11869 +2.225199,-0.32535425,-2.4829757,2.3440163,False,0.0,93.11869 +173.26215,0.64233816,1.0207788,210.25198,True,0.0,86.816124 +85.16092,0.8142887,0.31239736,114.98954,True,0.0,86.816124 +122.2939,-1.1171455,3.043627,206.88034,True,0.0,123.73061 +60.595364,-1.7496234,1.6475351,179.5524,True,1.8208638,123.73061 +2.8088048,0.60310185,-1.145694,3.335303,False,0.0,123.73061 +102.22673,2.3243544,2.0499866,527.3839,True,4.6805735,103.77003 +39.126377,1.0928437,3.0820885,64.910774,True,0.0,103.77003 +2.9298365,0.3622267,3.1066253,3.1241565,False,0.0,103.77003 +2.5855412,0.7452692,-3.0989962,3.3374362,False,0.0,103.77003 +77.603584,-0.58991194,2.9443603,91.50261,True,0.0,202.95844 +76.17825,0.9792121,0.009959936,115.71342,True,0.0,202.95844 +1.5092363,1.7270297,-0.5730758,4.378095,False,3.4181802,202.95844 +121.27251,0.7130157,1.5701308,153.4278,True,0.0,198.96983 +81.73315,0.5352833,-1.765723,93.72485,True,1.6672685,198.96983 +107.92987,-1.6237494,-0.83615595,284.35364,True,0.0,185.48816 +77.835785,-1.3129008,2.348628,155.12589,True,0.0,185.48816 +2.388493,-0.3025991,-2.2628512,2.4986827,False,0.0,185.48816 +54.622627,1.5763674,0.94134593,137.76036,True,0.0,107.36414 +49.85381,1.07672,-2.0521264,81.65426,True,0.0,107.36414 +2.3227437,0.6899221,-0.20035204,2.8978264,False,1.7309241,107.36414 +1.8893411,1.9395635,1.364557,6.7066703,False,0.0,107.36414 +85.910065,1.3181121,-1.5532538,171.99199,True,0.0,170.6521 +84.66579,1.1477561,1.4291128,146.83005,True,0.0,170.6521 +119.643326,1.1929923,-0.89201313,215.3726,True,0.0,215.11241 +94.86644,0.8728265,2.4125075,133.35547,True,1.3483083,215.11241 +82.66086,2.3534913,-2.032349,438.81668,True,0.0,151.3704 +69.42397,2.37527,1.197077,376.5176,True,0.0,151.3704 +86.35196,-1.6441854,2.1474159,231.85333,True,0.0,149.88478 +56.16267,-0.8685828,-1.0006996,78.71413,True,0.0,149.88478 +131.4543,1.674086,-3.1005225,362.90567,True,0.0,236.56943 +102.78385,1.2935563,0.10803374,201.4575,True,0.0,236.56943 +56.635403,-0.013121839,-1.0212222,56.640278,True,0.0,28.18381 +46.57439,0.2610165,-1.5006846,48.169968,True,0.0,28.18381 +31.431019,2.2886338,2.1235065,156.57144,True,2.2041721,28.18381 +3.0927215,-1.9951361,-1.5281726,11.581003,False,0.0,28.18381 +154.67058,-0.11626785,0.6775911,155.7172,True,0.0,244.9198 +99.025246,-0.15339607,-2.1715598,100.19258,True,0.0,244.9198 +12.570834,1.625644,-2.5284498,33.177418,False,0.0,244.9198 +239.09938,0.77609825,2.5838642,314.7953,True,5.1582026,31.089462 +31.04947,0.78425735,2.9465845,41.097668,True,0.0,31.089462 +133.5942,-0.2456966,-2.6431909,137.64684,True,0.0,215.29337 +81.59446,-0.7427662,0.5021057,105.15638,True,0.0,215.29337 +3.8911047,-0.4532322,0.36959922,4.2976475,False,0.0,215.29337 +2.8758645,-0.028320825,-0.54055023,2.877018,False,0.0,215.29337 +2.9503295,1.0321704,-1.8279207,4.666514,False,5.208681,215.29337 +2.548741,0.9273202,2.254956,3.725417,False,0.0,215.29337 +84.18439,-0.6950405,2.2900553,105.35022,True,0.0,112.8149 +45.218884,-2.206537,3.0779068,207.87764,True,0.0,112.8149 +139.04141,0.3819998,-2.3218963,149.3101,True,0.0,49.67417 +127.16551,0.1001948,-2.0771284,127.80436,True,0.0,49.67417 +5.515658,1.2186123,-2.907042,10.143655,False,0.0,49.67417 +1.94133,-1.1652801,-1.2413015,3.4154365,False,0.0,49.67417 diff --git a/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/processed_photon_data.npz b/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/processed_photon_data.npz new file mode 100644 index 00000000..907a823b Binary files /dev/null and b/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/processed_photon_data.npz differ diff --git a/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/processed_photon_data_all_periods.npz b/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/processed_photon_data_all_periods.npz new file mode 100644 index 00000000..70ad15ea Binary files /dev/null and b/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/processed_photon_data_all_periods.npz differ diff --git a/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/processed_photon_data_converted.npz b/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/processed_photon_data_converted.npz new file mode 100644 index 00000000..5ca554e6 Binary files /dev/null and b/workspaces/ATLAS_Workspace/ATLAS_Project/config/old_code/processed_photon_data_converted.npz differ diff --git a/workspaces/ATLAS_Workspace/ATLAS_Project/output/.DS_Store b/workspaces/ATLAS_Workspace/ATLAS_Project/output/.DS_Store new file mode 100644 index 00000000..ee4d9d2c Binary files /dev/null and b/workspaces/ATLAS_Workspace/ATLAS_Project/output/.DS_Store differ diff --git a/workspaces/ATLAS_Workspace/ATLAS_Project/output/compressed_output/compressed.npz b/workspaces/ATLAS_Workspace/ATLAS_Project/output/compressed_output/compressed.npz new file mode 100644 index 00000000..60eb9c7a Binary files /dev/null and b/workspaces/ATLAS_Workspace/ATLAS_Project/output/compressed_output/compressed.npz differ diff --git a/workspaces/ATLAS_Workspace/ATLAS_Project/output/compressed_output/model.pt b/workspaces/ATLAS_Workspace/ATLAS_Project/output/compressed_output/model.pt new file mode 100644 index 00000000..af116060 Binary files /dev/null and b/workspaces/ATLAS_Workspace/ATLAS_Project/output/compressed_output/model.pt differ diff --git a/workspaces/ATLAS_Workspace/ATLAS_Project/output/decompressed_output/decompressed.npz b/workspaces/ATLAS_Workspace/ATLAS_Project/output/decompressed_output/decompressed.npz new file mode 100644 index 00000000..a8801d63 Binary files /dev/null and b/workspaces/ATLAS_Workspace/ATLAS_Project/output/decompressed_output/decompressed.npz differ diff --git a/workspaces/ATLAS_Workspace/ATLAS_Project/output/plotting/.DS_Store b/workspaces/ATLAS_Workspace/ATLAS_Project/output/plotting/.DS_Store new file mode 100644 index 00000000..5008ddfc Binary files /dev/null and b/workspaces/ATLAS_Workspace/ATLAS_Project/output/plotting/.DS_Store differ diff --git a/workspaces/ATLAS_Workspace/ATLAS_Project/output/plotting/Loss_plot.pdf b/workspaces/ATLAS_Workspace/ATLAS_Project/output/plotting/Loss_plot.pdf new file mode 100644 index 00000000..5614689d Binary files /dev/null and b/workspaces/ATLAS_Workspace/ATLAS_Project/output/plotting/Loss_plot.pdf differ diff --git a/workspaces/ATLAS_Workspace/ATLAS_Project/output/plotting/comparison.pdf b/workspaces/ATLAS_Workspace/ATLAS_Project/output/plotting/comparison.pdf new file mode 100644 index 00000000..fa519926 Binary files /dev/null and b/workspaces/ATLAS_Workspace/ATLAS_Project/output/plotting/comparison.pdf differ diff --git a/workspaces/ATLAS_Workspace/ATLAS_Project/output/training/activations.npy b/workspaces/ATLAS_Workspace/ATLAS_Project/output/training/activations.npy new file mode 100644 index 00000000..9645d009 Binary files /dev/null and b/workspaces/ATLAS_Workspace/ATLAS_Project/output/training/activations.npy differ diff --git a/workspaces/ATLAS_Workspace/ATLAS_Project/output/training/loss_data.npy b/workspaces/ATLAS_Workspace/ATLAS_Project/output/training/loss_data.npy new file mode 100644 index 00000000..d8f07222 Binary files /dev/null and b/workspaces/ATLAS_Workspace/ATLAS_Project/output/training/loss_data.npy differ diff --git a/workspaces/ATLAS_Workspace/ATLAS_Project/output/training/normalization_features.npy b/workspaces/ATLAS_Workspace/ATLAS_Project/output/training/normalization_features.npy new file mode 100644 index 00000000..60c31272 Binary files /dev/null and b/workspaces/ATLAS_Workspace/ATLAS_Project/output/training/normalization_features.npy differ diff --git a/workspaces/ATLAS_Workspace/V5_results/.DS_Store b/workspaces/ATLAS_Workspace/V5_results/.DS_Store new file mode 100644 index 00000000..359a704a Binary files /dev/null and b/workspaces/ATLAS_Workspace/V5_results/.DS_Store differ diff --git a/workspaces/ATLAS_Workspace/V5_results/README_V5.md b/workspaces/ATLAS_Workspace/V5_results/README_V5.md new file mode 100644 index 00000000..c5ad69e1 --- /dev/null +++ b/workspaces/ATLAS_Workspace/V5_results/README_V5.md @@ -0,0 +1,123 @@ +# V5 Results - ATLAS GamGam Data Analysis + +This directory contains updated scripts to work with the **2015-2016 ATLAS GamGam data** from CERN Open Data Portal. + +## ๐ŸŽฏ **What Changed from V4** + +- **Data source**: Updated from 2020 to 2015-2016 ATLAS data +- **File naming**: Changed from V4 to V5 +- **Memory management**: Added chunked processing for large datasets +- **Error handling**: Better error handling and progress reporting +- **Testing mode**: Limited to 100k events for initial testing + +## ๐Ÿ“ **Files** + +- **`generate_V5_data.py`** - Main data generation script +- **`generate_scales.py`** - Generate normalization scales from existing data +- **`V5_calc_masses_and_plot.py`** - Analysis and plotting (copied from V4) +- **`setup_atlas_data.py`** - Setup and dependency checking script +- **`data_files/`** - Directory for downloaded ROOT files + +## ๐Ÿš€ **Quick Start** + +### 1. **Setup and Dependencies** +```bash +cd V5_results +python setup_atlas_data.py +``` + +### 2. **Download ATLAS Data** +- Visit: https://opendata.cern/record/93915 +- Download ROOT files (start with 1-2 for testing) +- Place in: `V5_results/data_files/` + +### 3. **Generate Data** +```bash +python generate_V5_data.py +``` + +### 4. **Generate Scales (Alternative)** +If you have existing data: +```bash +python generate_scales.py +``` + +## ๐Ÿ“Š **Data Details** + +**Source**: ATLAS 2015-2016 GamGam skim +- **36.6M events** total +- **16 ROOT files** +- **9.2 GiB** total size +- **Diphoton selection**: โ‰ฅ25 GeV pT per photon + +**Processing**: +- Chunked processing (10k events per chunk) +- Memory-efficient for large datasets +- Limited to 100k events for testing (configurable) + +## ๐Ÿ”ง **Configuration** + +### **Data Path** +Update in `generate_V5_data.py`: +```python +local_data_path = "/Users/cartercapetz/Desktop/baler/V5_results/data_files/" +``` + +### **Event Limit** +Change in `generate_V5_data.py`: +```python +if length >= 100000: # Limit to 100k events for testing + print(f" Reached limit of {length} events, stopping for testing") + break +``` + +### **Chunk Size** +Adjust memory usage: +```python +chunk_size = 10000 # Process 10k events at a time +``` + +## ๐Ÿ“ˆ **Output Files** + +Generated in `carter_data/`: +- **`V5_precut_original.npz`** - Raw data in physical units +- **`V5_precut_normalised.npz`** - Normalized data (0-1 range) +- **`V5_precut_scales.npz`** - Normalization parameters + +## โš ๏ธ **Important Notes** + +1. **Large Dataset**: 36.6M events is much larger than original 2020 data +2. **Memory Usage**: Script processes in chunks to avoid memory issues +3. **Testing Mode**: Limited to 100k events by default +4. **ROOT Files**: Must download from CERN Open Data Portal +5. **Dependencies**: Requires `uproot`, `numpy`, `pandas` + +## ๐Ÿ› **Troubleshooting** + +### **No ROOT Files Found** +- Check `V5_results/data_files/` directory +- Download data from CERN Open Data Portal +- Verify file extensions are `.root` + +### **Memory Errors** +- Reduce `chunk_size` in the script +- Process fewer files initially +- Use smaller subset of data for testing + +### **Import Errors** +- Install dependencies: `pip install uproot numpy pandas` +- Check Python path and working directory + +## ๐Ÿ”— **Useful Links** + +- **CERN Open Data Portal**: https://opendata.cern +- **ATLAS GamGam Dataset**: https://opendata.cern/record/93915 +- **ATLAS Open Data Website**: http://opendata.atlas.cern + +## ๐Ÿ“ **Next Steps** + +After generating V5 data: +1. **Update analysis scripts** to use V5 file names +2. **Run BALER pipeline** to compress/decompress +3. **Generate plots** using `V5_calc_masses_and_plot.py` +4. **Compare results** with V4 analysis diff --git a/workspaces/ATLAS_Workspace/V5_results/V5_calc_masses_and_plot.py b/workspaces/ATLAS_Workspace/V5_results/V5_calc_masses_and_plot.py new file mode 100644 index 00000000..0f5625b1 --- /dev/null +++ b/workspaces/ATLAS_Workspace/V5_results/V5_calc_masses_and_plot.py @@ -0,0 +1,962 @@ +import argparse +import numpy as np +import matplotlib.pyplot as plt # for plotting +from matplotlib.ticker import MaxNLocator,AutoMinorLocator # for minor ticks +from lmfit.models import PolynomialModel, GaussianModel # for the signal and background fits +from mpl_toolkits.axes_grid1.inset_locator import inset_axes +import matplotlib.gridspec as gridspec +import scipy +import corner +from scipy.stats import chisquare, entropy +import matplotlib +import os + +params = {'backend': 'Agg', + 'axes.labelsize': 11.5, + "axes.titlesize": 11.5, + 'font.size': 11.5, + "text.usetex": False, # Disable LaTeX to avoid dependency issues + "font.family": "serif", + } # extend as needed +matplotlib.rcParams.update(params) + + +BALER_PATH = "/Users/cartercapetz/Desktop/baler/" + +def parse_args(): + parser = argparse.ArgumentParser() + parser.add_argument("--v", + type=str, + default="1", + help="Version/iteration number (e.g., 1, 2, 3, 4)") + args = parser.parse_args() + return args + +def load_data(args): + # Load normalised original and decompressed; scales optional + try: + with np.load(BALER_PATH+"carter_data/processed_diphoton_data_all_periods.npz") as orig_file: + orig_data = orig_file["data"] + names = orig_file["names"] if "names" in orig_file else None + print(f"โœ… Loaded original data: {orig_data.shape}") + print(f"๐Ÿ“‹ Column names: {names}") + except FileNotFoundError: + print("โŒ Error: processed_diphoton_data_all_periods.npz not found") + exit(1) + + try: + with np.load(BALER_PATH+f"carter_data/decompressed.npz") as decomp_file: + decomp_data = decomp_file["data"] + print(f"โœ… Loaded decompressed data: {decomp_data.shape}") + except FileNotFoundError: + print("โŒ Error: decompressed.npz not found") + exit(1) + + # Load scales if available + scales = None + try: + with np.load(BALER_PATH+"carter_data/V5_precut_scales.npz") as scales_file: + scales = scales_file["scales"] + print(f"โœ… Loaded V5 scales: {scales.shape}") + except FileNotFoundError: + print("โ„น๏ธ No V5 scales file found - will use data as-is") + + # Extract the 8 kinematic variables (columns 1-8: pt1, pt2, eta1, eta2, phi1, phi2, E1, E2) + # Skip column 0 which is 'mass' + orig_kinematic = orig_data[:, 1:9] # Columns 1-8 + decomp_kinematic = decomp_data[:, 1:9] # Columns 1-8 + + print(f"๐Ÿ”ง Extracted kinematic variables:") + print(f" Original: {orig_kinematic.shape}") + print(f" Decompressed: {decomp_kinematic.shape}") + + return orig_kinematic, decomp_kinematic, names, scales + +def unnormalise_E_pt(arr, scales): + try: + # Check for valid scales + if scales is None or len(scales) < 2: + print(f"โš ๏ธ Invalid scales for E/pt: {scales}") + return arr + + # Check for reasonable scale values to prevent overflow + scale_min, scale_max = scales[0], scales[1] + if abs(scale_max - scale_min) > 100 or abs(scale_min) > 100: + print(f"โš ๏ธ Scales too large, may cause overflow: [{scale_min}, {scale_max}]") + return arr + + result = 10**((arr*(scale_max - scale_min)) + scale_min) + + # Check for overflow/inf values + if np.any(np.isinf(result)) or np.any(np.isnan(result)): + print(f"โš ๏ธ Overflow detected in E/pt unnormalization") + return arr + + return result + except Exception as e: + print(f"โŒ Error in E/pt unnormalization: {e}") + return arr + +def unnormalise_eta_phi(arr, scales): + try: + # Check for valid scales + if scales is None or len(scales) < 2: + print(f"โš ๏ธ Invalid scales for eta/phi: {scales}") + return arr + + # Check for reasonable scale values + scale_min, scale_max = scales[0], scales[1] + if abs(scale_max - scale_min) > 1000: + print(f"โš ๏ธ Scales too large: [{scale_min}, {scale_max}]") + return arr + + result = (arr*(scale_max - scale_min)) + scale_min + + # Check for overflow/inf values + if np.any(np.isinf(result)) or np.any(np.isnan(result)): + print(f"โš ๏ธ Overflow detected in eta/phi unnormalization") + return arr + + return result + except Exception as e: + print(f"โŒ Error in eta/phi unnormalization: {e}") + return arr + +def prepare_data(args, decomp_cut=False): + orig_norm, decomp_norm, _, scales = load_data(args) + + # Since the data is already in physical units, skip unnormalization + print("โ„น๏ธ Data is already in physical units - skipping unnormalization") + print(f" Original shape: {orig_norm.shape}") + print(f" Decompressed shape: {decomp_norm.shape}") + + return orig_norm, decomp_norm + +def calc_masses(arr): + # arr should be (N, 8) with columns [pt1, pt2, eta1, eta2, phi1, phi2, E1, E2] + # All values should be in GeV + + # Check for NaN or inf values + if np.any(np.isnan(arr)) or np.any(np.isinf(arr)): + print(f"โš ๏ธ Warning: NaN or inf values detected in input data") + print(f" NaN count: {np.sum(np.isnan(arr))}") + print(f" Inf count: {np.sum(np.isinf(arr))}") + # Replace NaN/inf with reasonable values + arr = np.nan_to_num(arr, nan=0.0, posinf=1000.0, neginf=-1000.0) + + # Extract variables (all in GeV) + pt1 = arr[:, 0] # pt1 in GeV + pt2 = arr[:, 1] # pt2 in GeV + eta1 = arr[:, 2] # eta1 + eta2 = arr[:, 3] # eta2 + phi1 = arr[:, 4] # phi1 + phi2 = arr[:, 5] # phi2 + E1 = arr[:, 6] # E1 in GeV + E2 = arr[:, 7] # E2 in GeV + + # Check ranges + print(f"๐Ÿ” Data ranges:") + print(f" pt1: [{np.min(pt1):.2f}, {np.max(pt1):.2f}] GeV") + print(f" pt2: [{np.min(pt2):.2f}, {np.max(pt2):.2f}] GeV") + print(f" eta1: [{np.min(eta1):.2f}, {np.max(eta1):.2f}]") + print(f" eta2: [{np.min(eta2):.2f}, {np.max(eta2):.2f}]") + print(f" phi1: [{np.min(phi1):.2f}, {np.max(phi1):.2f}]") + print(f" phi2: [{np.min(phi2):.2f}, {np.max(phi2):.2f}]") + print(f" E1: [{np.min(E1):.2f}, {np.max(E1):.2f}] GeV") + print(f" E2: [{np.min(E2):.2f}, {np.max(E2):.2f}] GeV") + + # Calculate momentum components (all in GeV) + px_0 = pt1 * np.cos(phi1) # x-component of photon[0] momentum + py_0 = pt1 * np.sin(phi1) # y-component of photon[0] momentum + pz_0 = pt1 * np.sinh(eta1) # z-component of photon[0] momentum + + px_1 = pt2 * np.cos(phi2) # x-component of photon[1] momentum + py_1 = pt2 * np.sin(phi2) # y-component of photon[1] momentum + pz_1 = pt2 * np.sinh(eta2) # z-component of photon[1] momentum + + # Sum momenta + sumpx = px_0 + px_1 + sumpy = py_0 + py_1 + sumpz = pz_0 + pz_1 + sump = np.sqrt(sumpx**2 + sumpy**2 + sumpz**2) # magnitude of diphoton momentum + + # Sum energies + sumE = E1 + E2 + + # Calculate invariant mass (in GeV) + masses = np.sqrt(abs(sumE**2 - sump**2)) + + # Check for NaN or inf in masses + if np.any(np.isnan(masses)) or np.any(np.isinf(masses)): + print(f"โš ๏ธ Warning: NaN or inf values in mass calculation") + print(f" NaN count: {np.sum(np.isnan(masses))}") + print(f" Inf count: {np.sum(np.isinf(masses))}") + # Replace NaN/inf with reasonable values + masses = np.nan_to_num(masses, nan=0.0, posinf=1000.0, neginf=0.0) + + print(f"โœ… Mass calculation complete: {len(masses)} events") + print(f" Mass range: [{np.min(masses):.2f}, {np.max(masses):.2f}] GeV") + + return masses + +def calc_rmse(orig, decomp): + return np.sqrt(np.mean((orig - decomp)**2)) +#NOTE TO CARTER********************************************************************************************************************************************************************************* +def zvalue_poisson(D, B): + """ + Returns the Poisson z-value for observed count D and expected background B. + For an excess (D >= B): p-value = gammainc(D, B) + For a deficit (D < B): p-value = 1 - gammainc(D+1, B) + """ + if D >= B: + p = scipy.special.gammainc(D, B) + z = np.sqrt(2.0) * scipy.special.erfinv(1.0 - 2.0 * p) + else: + p = 1.0 - scipy.special.gammainc(D + 1, B) + z = -np.sqrt(2.0) * scipy.special.erfinv(1.0 - 2.0 * p) + return z + +def plot_both_data(orig_data, decomp_data, cut_type, args): + + xmin = 100 # GeV + xmax = 160 # GeV + step_size = 3 # GeV + + bin_edges = np.arange(start=xmin, # The interval includes this value + stop=xmax+step_size, # The interval doesn't include this value + step=step_size ) # Spacing between values + bin_centres = np.arange(start=xmin+step_size/2, # The interval includes this value + stop=xmax+step_size/2, # The interval doesn't include this value + step=step_size ) # Spacing between values + + orig_data_x,_ = np.histogram(orig_data, + bins=bin_edges) # histogram the data + orig_data_x_errors = np.sqrt(orig_data_x) # statistical error on the data + + decomp_data_x, _ = np.histogram(decomp_data, + bins=bin_edges) + + decomp_data_x_errors = np.sqrt(decomp_data_x) + + # data fit + orig_polynomial_mod = PolynomialModel( 4 ) # 4th order polynomial + orig_gaussian_mod = GaussianModel() # Gaussian + + # set initial guesses for the parameters of the polynomial model + # c0 + c1*x + c2*x^2 + c3*x^3 + c4*x^4 + orig_pars = orig_polynomial_mod.guess(orig_data_x, # data to use to guess parameter values + x=bin_centres, c0=orig_data_x.max(), c1=0, + c2=0, c3=0, c4=0 ) + + if int(args.v) != 2: + decomp_polynomial_mod = PolynomialModel( 4 ) # 4th order polynomial + decomp_gaussian_mod = GaussianModel() # Gaussian + decomp_pars = decomp_polynomial_mod.guess(decomp_data_x, # data to use to guess parameter values + x=bin_centres, c0=orig_data_x.max(), c1=0, + c2=0, c3=0, c4=0) + else: + decomp_polynomial_mod = PolynomialModel( 5 ) # 5th order polynomial + decomp_gaussian_mod = GaussianModel() # Gaussian + + decomp_pars = decomp_polynomial_mod.guess(decomp_data_x, # data to use to guess parameter values + x=bin_centres, c0=orig_data_x.max(), c1=0, + c2=0, c3=0, c4=0, c5=0) + + # set initial guesses for the parameters of the Gaussian model + orig_pars += orig_gaussian_mod.guess(orig_data_x, # data to use to guess parameter values + x=bin_centres, amplitude=100, + center=125, sigma=2 ) + + decomp_pars += decomp_gaussian_mod.guess(decomp_data_x, # data to use to guess parameter values + x=bin_centres, amplitude=100, + center=125, sigma=2 ) + + orig_model = orig_polynomial_mod + orig_gaussian_mod # combined model + decomp_model = decomp_polynomial_mod + decomp_gaussian_mod + + # fit the model to the data + orig_out = orig_model.fit(orig_data_x, # data to be fit + orig_pars, # guesses for the parameters + x=bin_centres, weights=1/orig_data_x_errors ) + decomp_out = decomp_model.fit(decomp_data_x, # data to be fit + decomp_pars, # guesses for the parameters + x=bin_centres, weights=1/decomp_data_x_errors ) + + # background part of fit + orig_params_dict = orig_out.params.valuesdict() # get the parameters from the fit to data + + cs = ["c0", "c1", "c2", "c3", "c4"] + + # get the background only part of the fit to data + orig_background = np.sum([orig_params_dict[c_val]*(bin_centres**i) for i, c_val in enumerate(cs)], axis=0) + + # data fit - background fit = signal fit + orig_signal_x = orig_data_x - orig_background + + # background part of fit + decomp_params_dict = decomp_out.params.valuesdict() # get the parameters from the fit to data + + # get the background only part of the fit to data + if int(args.v) == 2: + cs += ["c5"] + decomp_background = np.sum([decomp_params_dict[c_val]*(bin_centres**i) for i, c_val in enumerate(cs)], axis=0) + + # data fit - background fit = signal fit + decomp_signal_x = decomp_data_x - decomp_background +#NOTE TO CARTER********************************************************************************************************************************************************************************* + # Calculating z-values + orig_fit = orig_out.best_fit + decomp_fit = decomp_out.best_fit + + orig_peak_bin_idxs = np.where(abs(orig_fit - orig_background > 1))[0] + orig_z = zvalue_poisson(sum(orig_fit[orig_peak_bin_idxs]), sum(orig_background[orig_peak_bin_idxs])) + orig_big_z = zvalue_poisson(sum(orig_fit), sum(orig_background)) + # orig_z = sum(np.vectorize(zvalue_poisson)(orig_fit, orig_background)) + + decomp_peak_bin_idxs = np.where(abs(decomp_fit - decomp_background) > 1)[0] + decomp_z = zvalue_poisson(sum(decomp_fit[decomp_peak_bin_idxs]), sum(decomp_background[decomp_peak_bin_idxs])) + decomp_big_z = zvalue_poisson(sum(decomp_fit), sum(decomp_background)) + print(f"orig_z: {orig_z:.3f}\norig_big_z: {orig_big_z:.3f}") + print(f"\ndecomp_z: {decomp_z:.3f}\ndecomp_big_z: {decomp_big_z:.3f}") + + # Calculating Chisquare + + orig_bk_chi_val = orig_background * (sum(orig_data_x)/sum(orig_background)) + orig_fit_chi_val = orig_fit * (sum(orig_data_x)/sum(orig_fit)) + decomp_bk_chi_val = decomp_background * (sum(decomp_data_x)/sum(decomp_background)) + decomp_fit_chi_val = decomp_fit * (sum(decomp_data_x)/sum(decomp_fit)) + + bk_dof = len(orig_data_x) - 5 + fit_dof = len(orig_data_x) - len(orig_params_dict.keys()) + + orig_bk_chi = chisquare(orig_bk_chi_val, orig_data_x).statistic / bk_dof + orig_fit_chi = chisquare(orig_fit_chi_val, orig_data_x).statistic / fit_dof + decomp_bk_chi = chisquare(decomp_bk_chi_val, decomp_data_x).statistic / bk_dof + decomp_fit_chi = chisquare(decomp_fit_chi_val, decomp_data_x).statistic / fit_dof + + # ************* + # Main plot + # ************* + plt.axes([0.13,0.44,0.85,0.52]) # left, bottom, width, height + main_axes = plt.gca() # get current axes + + #ORIGINAL + # plot the original data points + main_axes.errorbar(x=bin_centres, y=orig_data_x, yerr=orig_data_x_errors, + color="#8B0000", + marker='o', # 'k' means black and 'o' means circles + markersize=3, + label='Original Data', + zorder=1, + alpha=0.6, + linestyle="None") + + # plot the signal + background fit + main_axes.plot(bin_centres, # x + orig_fit, # y + '-r', # single red line + label=f'Original Sig+Bkg Fit ($m_H={orig_params_dict["center"]:.2f}$ GeV)', + linewidth=2, + alpha=0.6) + + # plot the background only fit + main_axes.plot(bin_centres, # x + orig_background, # y + '--r', # dashed red line + label='Original Bkg (4th order polynomial)', + linewidth=1, + alpha=0.6) + + #DECOMPRESSED + main_axes.errorbar(x=bin_centres, y=decomp_data_x, yerr=decomp_data_x_errors, + color="#00008B", + marker='o', # 'k' means black and 'o' means circles + markersize=3, + label='Reconstructed Data', + zorder=1, + alpha=0.6, + linestyle="None") + + # plot the signal + background fit + main_axes.plot(bin_centres, # x + decomp_fit, # y + '-b', # single red line + label=f'Reconstructed Sig+Bkg Fit ($m_H={decomp_params_dict["center"]:.2f}$ GeV)', + linewidth=2, + alpha=0.6) + + if int(args.v) == 2: + order = 5 + else: + order = 4 + # plot the background only fit + main_axes.plot(bin_centres, # x + decomp_background, # y + '--b', # dashed red line + label=f'Reconstructed Bkg ({order}th order polynomial)', + linewidth=1, + alpha=0.6) + + + # set the x-limit of the main axes + main_axes.set_xlim( left=xmin, right=xmax ) + + # separation of x-axis minor ticks + main_axes.xaxis.set_minor_locator( AutoMinorLocator() ) + + # set the axis tick parameters for the main axes + main_axes.tick_params(which='both', # ticks on both x and y axes + direction='in', # Put ticks inside and outside the axes + top=True, # draw ticks on the top axis + labelbottom=False, # don't draw tick labels on bottom axis + right=True ) # draw ticks on right axis + + # write y-axis label for main axes + main_axes.set_ylabel('Events / '+str(step_size)+' GeV', + horizontalalignment='right', + ) + + # set the y-axis limit for the main axes + main_axes.set_ylim( bottom=0, top=np.amax(orig_data_x)*1.1 ) + + # set minor ticks on the y-axis of the main axes + main_axes.yaxis.set_minor_locator( AutoMinorLocator() ) + + # avoid displaying y=0 on the main axes + main_axes.yaxis.get_major_ticks()[0].set_visible(False) + + # Add text 'ATLAS Open Data' on plot + plt.text(0.34, # x + 0.92, # y + 'ATLAS Open Data', # text + transform=main_axes.transAxes, # coordinate system used is that of main_axes + fontsize=13 ) + + # Add text 'for education' on plot + plt.text(0.34, # x + 0.86, # y + 'for education', # text + transform=main_axes.transAxes, # coordinate system used is that of main_axes + style='italic', + fontsize=8 ) + + # Add energy and luminosity + lumi_used = str(10) # luminosity to write on the plot + plt.text(0.34, # x + 0.78, # y + r'$\sqrt{s}$=13 TeV,$\int$L dt = '+lumi_used+r' fb$^{-1}$', # text + transform=main_axes.transAxes ) # coordinate system used is that of main_axes + + # Add a label for the analysis carried out + plt.text(0.34, # x + 0.7, # y + r'$H \rightarrow \gamma\gamma$', # text + transform=main_axes.transAxes ) # coordinate system used is that of main_axes + + # Add the calculated significances + orig_z_str = r"$\sigma_\mathrm{original} =$"+f"{orig_z:.3f}\n" + decomp_z_str = r"$\sigma_\mathrm{reconstructed} =$"+f"{decomp_z:.3f}" + chi_bk_str = "\n\n"+rf"${{\chi_\nu^2}}_\mathrm{{Bkg}}={decomp_bk_chi:.3f}$" + chi_fit_str = "\n"+rf"${{\chi_\nu^2}}_\mathrm{{Sig}}={decomp_fit_chi:.3f}$" + kl_str = rf"$D_{{\mathrm{{KL}}}}(\mathrm{{Orig.}} \,\|\, \mathrm{{Rec.}})={entropy(orig_fit, decomp_fit):.2e}$" + if np.isnan(decomp_z): + decomp_z_str = r"$\sigma_\mathrm{reconstructed} =$"+"N/A" + plt.text(0.72, + 0.58, + orig_z_str+decomp_z_str+chi_bk_str+chi_fit_str, + transform=main_axes.transAxes, + fontsize=13) + + print(f"\n\n\n{args.v}: {entropy(orig_fit, decomp_fit)}\n\n\n") + main_axes.legend() + order = [4, 5, 1, 0, 3, 2] + + handles, labels = main_axes.get_legend_handles_labels() + main_axes.legend([handles[idx] for idx in order], + [labels[idx] for idx in order], + frameon=False, + loc="lower left", + fontsize=9) + + + # ************* + # Data-Bkg plot + # ************* + plt.axes([0.13,0.27,0.85,0.17]) # left, bottom, width, height + fit_axes = plt.gca() # get the current axes + + # set the y axis to be symmetric about Data-Background=0 + fit_axes.yaxis.set_major_locator( MaxNLocator(nbins='auto', + symmetric=True) ) + + # plot Data-Background + fit_axes.errorbar(x=bin_centres, y=orig_signal_x, yerr=orig_data_x_errors, + color="#8B0000", + marker="o", + markersize=3, + alpha=0.6, + linestyle="None") # 'k' means black and 'o' means circles + + # draw the fit to data + fit_axes.plot(bin_centres, # x + orig_out.best_fit-orig_background, # y + '-r', + linewidth=2, + alpha=0.6) # single red line + + fit_axes.errorbar(x=bin_centres, y=decomp_signal_x, yerr=decomp_data_x_errors, + color="#00008B", + marker="o", + markersize=3, + alpha=0.6, + linestyle="None") # 'k' means black and 'o' means circles + + # draw the fit to data + fit_axes.plot(bin_centres, # x + decomp_out.best_fit-decomp_background, # y + '-b', + linewidth=2, + alpha=0.6) # single red line + + # draw the background only fit + fit_axes.plot(bin_centres, # x + orig_background-orig_background, # y + '--k', + alpha=0.6) # dashed black line + + # set the x-axis limits on the sub axes + fit_axes.set_xlim( left=xmin, right=xmax ) + + # separation of x-axis minor ticks + fit_axes.xaxis.set_minor_locator( AutoMinorLocator() ) + + # # x-axis label + # fit_axes.set_xlabel(r'di-photon invariant mass $\mathrm{m_{\gamma\gamma}}$ [GeV]', + # x=1, horizontalalignment='right', + # fontsize=13 ) + + # set the tick parameters for the sub axes + fit_axes.tick_params(which='both', # ticks on both x and y axes + direction='in', # Put ticks inside and outside the axes + top=True, # draw ticks on the top axis + labelbottom=False, # don't draw tick labels on bottom axis + right=True ) # draw ticks on right axis + + # separation of y-axis minor ticks + fit_axes.yaxis.set_minor_locator( AutoMinorLocator() ) + + # y-axis label on the sub axes + fit_axes.set_ylabel( 'Events-Bkg') + + ### + # Difference between original and reconstructed + ### + plt.axes([0.13,0.1,0.85,0.17]) # left, bottom, width, height + diff_axes = plt.gca() # get the current axes + + # set the y axis to be symmetric about Data-Background=0 + diff_axes.yaxis.set_major_locator( MaxNLocator(nbins='auto', + symmetric=True) ) + + # plot Data-Background + diff_errs = np.sqrt(orig_data_x_errors**2 + decomp_data_x_errors**2)*0.6 + diff_axes.errorbar(x=bin_centres, y=decomp_signal_x - orig_signal_x, yerr=diff_errs, + color="#00008B", + marker="o", + markersize=3, + alpha=0.6, + linestyle="None") # 'k' means black and 'o' means circles + + # draw the background only fit + diff_axes.plot(bin_centres, # x + orig_background-orig_background, # y + linestyle='--', + color="#8B0000", + alpha=0.6) # dashed black line + + # set the x-axis limits on the sub axes + diff_axes.set_xlim( left=xmin, right=xmax ) + + # separation of x-axis minor ticks + diff_axes.xaxis.set_minor_locator( AutoMinorLocator() ) + + # x-axis label + diff_axes.set_xlabel(r'di-photon invariant mass $\mathrm{m_{\gamma\gamma}}$ [GeV]', + x=1, horizontalalignment='right', + fontsize=13 ) + + # set the tick parameters for the sub axes + diff_axes.tick_params(which='both', # ticks on both x and y axes + direction='in', # Put ticks inside and outside the axes + top=True, # draw ticks on the top axis + right=True ) # draw ticks on right axis + + diff_ylims = diff_axes.get_yticks()[-2] + diff_ytick_locs = [int(-diff_ylims*0.9), 0, int(diff_ylims*0.9)] + diff_ytick_labels = [str(x) for x in diff_ytick_locs] + + diff_axes.set(yticks=diff_ytick_locs, + yticklabels=diff_ytick_labels) + + # separation of y-axis minor ticks + diff_axes.yaxis.set_minor_locator( AutoMinorLocator() ) + + # y-axis label on the sub axes + diff_axes.set_ylabel("Rec. - Orig.\n (Events)") + + if np.mean(decomp_out.best_fit - decomp_background) > 10000: + main_fit_x = -0.105 + else: + main_fit_x = -0.085 + + # Generic features for both plots + main_axes.yaxis.set_label_coords( main_fit_x, 1 ) # x,y coordinates of the y-axis label on the main axes + fit_axes.yaxis.set_label_coords( main_fit_x, 0.5 ) # x,y coordinates of the y-axis label on the sub axes + diff_axes.yaxis.set_label_coords( main_fit_x + 0.03, 0.5 ) # x,y coordinates of the y-axis label on the sub axes + + plt.savefig(f"{cut_type}HyyAnalysis_comparison.png") + # plt.show() + plt.close() + + return bin_centres, (orig_out, orig_background, orig_params_dict, orig_model), (decomp_out, decomp_background, decomp_params_dict, decomp_model) + +def plot_resolutions( + original, + reconstructed, + variable, + bins=100, + hist_yscale="linear", + save=False, + savename="", + norm=False, + show=False, +): + """ + Function which plots three types of comparisons when reconstructing Hyy data with Baler + + Parameters: + original: 2xN numpy array, for N events after cuts for photon 1 and photon 2 + reconstructed: 2xN numpy array, which is the decompressed version of original + variable: What variable you want plotted, options are "pt", "eta", "phi", "E" + bins: Number of bins in the first histogram + hist_yscale: Whether you want the first histogram to have a "log" y-axis, default "linear" + save: bool whether to save the image created or not + savename: If saving, what you want to name the file (don't include .png at the end) + norm: Whether E and pt are normalised to [0,1] and eta and phi normalised to [-1,1] + + Practice use: + plot_resolutions(orig_Es, new_Es, "E", bins=200, hist_yscale="log", save=True, savename="E_resolution_plots") + + Will output the three plots, the first histogram of the data comparison will be on a log scale, and the + image will be saved to E_resolution_plots.png + + """ + + if variable[-1].isnumeric(): + name = variable[:-1] + else: + name = variable + + # Initialise figure and axes objects + fig, axs = plt.subplots(nrows=2, ncols=2, figsize=(8, 7)) + ax1, ax2, ax3, ax4 = axs.flatten() + + # Calculate the original and reconstructed histograms of distributions + # print("Calculating original histogram...") + orig_n, orig_bins = np.histogram(original, bins=bins) + # print("Calculating reconstructed histogram...") + rec_n, rec_bins = np.histogram(reconstructed, bins=orig_bins) + # print("Histograms complete\n") + + # Calculate the resolution histogram + diffs = original - reconstructed + diff_n, diff_bins = np.histogram(diffs, bins=100) + + # Calculate the resolution histogram + if np.any(abs(original) < 0.0001): + hist_ratios = (original - reconstructed) / (original + np.amax(abs(original)) * 1.1) + else: + hist_ratios = (original - reconstructed) / original + + ratio_n, ratio_bins = np.histogram(hist_ratios, bins=100) + + # Plot results on all the axes + # print("Plotting...") + ax1.stairs(orig_n, orig_bins, label="Original") + ax1.stairs(rec_n, rec_bins, label="Reconstructed") + + ax2.stairs(diff_n, diff_bins) + + ax3.scatter(np.hstack(original), np.hstack(reconstructed), label="Data", s=1) + + bounds = np.array([np.percentile(hist_ratios, 1), np.percentile(hist_ratios, 99)]) + resolution_xlims = [-np.amax(abs(bounds)), np.amax(abs(bounds))] + cut_hist_ratios = [x for x in hist_ratios if x > resolution_xlims[0] and x < resolution_xlims[1]] + ratio_n, ratio_bins = np.histogram(cut_hist_ratios, bins=100) + + ax4.stairs(ratio_n, ratio_bins) + # print("Plotting complete...\n") + + # Define the comparison x-axis and units for each variable + if norm: + xlims = (-0.1, 1.1) + unit = "" + elif name in ["E", "pt"] and hist_yscale == "log": + xlims = [0, np.amax(original)] + unit = "(MeV)" + elif name in ["E", "pt"]: + xlims = [0, np.amax(original) * 0.2] + unit = "(MeV)" + elif name == "phi": + maxi = np.amax((abs(original), abs(reconstructed))) * 1.1 + xlims = [-maxi, maxi] + unit = "(rad)" + elif name == "eta": + maxi = np.amax((abs(original), abs(reconstructed))) * 1.1 + xlims = [-maxi, maxi] + unit = "" + else: + xlims = ax1.get_xlim() + unit = "" + + if name == "eta": + xlabel = r"$\eta$" + elif name == "phi": + xlabel = r"$\phi$" + else: + xlabel=name + + if name == "mass": + unit = "(GeV)" + + # Set options for reconstruction comparison plot + ax1.set( + xlabel=f"{xlabel} {unit}", + ylabel="Events", + yscale=hist_yscale, + xlim=xlims, + title="Reconstruction comparison", + ) + + # Set options for difference plot + max_err = np.amax(abs(diffs)) + ax2.set( + xlabel=f"Original - Reconstructed {xlabel} {unit}", + ylabel="Events", + yscale="log", + xlim=[-max_err * 1.1, max_err * 1.1], + title="Difference plot", + ) + # if name == "pt": + # xticks = ax2.get_xticks()[::2].astype(int) + # ax2.set(xticks=xticks, xticklabels=xticks) + rmse = np.sqrt(np.mean(diffs**2)) + + ax2.text( + ax2.get_xlim()[0] + (abs(ax2.get_xlim()[0])) * 0.03, + np.amax(diff_n) * 0.035, + f"Max difference:\n{max_err:.2e} {unit}\n\nRMSE:\n{rmse:.2e} {unit}", + fontsize=8, + ) + + # Set options for event-by-event comparison plot + if name == "pt" or name == "E" or name == "mass": + xlims = [0, np.amax((original, reconstructed)) * 1.1] + else: + xlims = [np.amin((original, reconstructed)) * 1.1, np.amax((original, reconstructed)) * 1.1] + + ax3.plot(xlims, xlims, color="r", linewidth=0.5, label="No difference") + ax3.set( + xlabel=f"Original {xlabel} {unit}", + ylabel=f"Reconstructed {xlabel} {unit}", + title="Event-by-event comparison", + xlim=xlims, + ylim=xlims, + ) + + # Set options for resolution plot + iqr = np.percentile(hist_ratios, 75) - np.percentile(hist_ratios, 25) + + xlims = resolution_xlims + xlabel = r"$\frac{(\mathrm{original}-\mathrm{reconstructed})}{\mathrm{original}}$" + if name == "eta": + xlabel = r"$\frac{(\mathrm{original}-\mathrm{reconstructed})}{(\mathrm{original}+3)}$" + elif name == "phi": + xlabel = r"$\frac{(\mathrm{original}-\mathrm{reconstructed})}{(\mathrm{original}+2\pi)}$" + + + ax4.text( + xlims[0] + (abs(xlims[0])) * 0.03, + np.amax(ratio_n)*0.7, + f"Max: {np.amax(hist_ratios):.3f}\nMin: {np.amin(hist_ratios):.3f}" + + f"\nMean: {np.mean(hist_ratios):.3f}\nMedian: {np.median(hist_ratios):.3f}" + + f"\nIQR: {iqr:.3f}", + fontsize=8, + ) + + ax4.set( + ylabel="Events", + title="Resolution plot", + xlim=xlims, + # yscale=hist_yscale, + ) + ax4.set_xlabel(xlabel, fontsize=14) + + # Include legends where necessary + ax1.legend() + ax3.legend(loc="upper left") + + # Sort out a bug in difference/resolution xlims + # ax2.xaxis.set_major_locator(MaxNLocator(nbins=5)) + # ax4.xaxis.set_major_locator(MaxNLocator(nbins=5)) + # for tick in ax4.get_xticklabels(): + # tick.set_rotation(15) + + # Give a title and tight_layout the figure + fig.suptitle(f"{variable} plots") + fig.tight_layout() + + # Sort out a bug in difference/resolution xlims + ax2.xaxis.set_major_locator(MaxNLocator(nbins=5)) + ax4.xaxis.set_major_locator(MaxNLocator(nbins=3)) + + # Sort out a bug in the normalised xlims + if norm: + for ax in [ax1, ax3]: + xlim_gap = ax.get_xlim()[1] - 1 + ax.set_xlim((-xlim_gap, 1+xlim_gap)) + + # # Sort out a bug for the pt x-axis + # if name == "pt": + # xticks = ax1.get_xticks()[::2].astype(int) + # ax1.set(xticks=xticks, xticklabels=xticks) + + # Save if you want + if save or savename != "": + plt.savefig(f"{savename}.png") + + if show: + plt.show() + else: + plt.close() + +#NOTE TO CARTER********************************************************************************************************************************************************************************* + +def corner_plot(args, orig_data, decomp_data, orig_masses, decomp_masses, plot_all=False): + + pt_resolutions = (orig_data[:,0:2] - decomp_data[:,0:2])/(orig_data[:,0:2]) + eta_resolutions = (orig_data[:,2:4] - decomp_data[:,2:4])/(orig_data[:,2:4] + 10) + phi_resolutions = (orig_data[:,4:6] - decomp_data[:,4:6])/(orig_data[:,4:6] + 5*np.pi) + E_resolutions = (orig_data[:,6:8] - decomp_data[:,6:8])/(orig_data[:,6:8]) + if np.any(orig_masses < 0.001): + mass_resolutions = (orig_masses - decomp_masses)/(orig_masses + np.amin(orig_masses) + 1) + else: + mass_resolutions = (orig_masses - decomp_masses)/(orig_masses) + + all_resolutions = [pt_resolutions[:,0], + eta_resolutions[:,0], + phi_resolutions[:,0], + E_resolutions[:,0], + pt_resolutions[:,1], + eta_resolutions[:,1], + phi_resolutions[:,1], + E_resolutions[:,1], + mass_resolutions] + + res_xlims = [] + for res in all_resolutions: + bounds = np.array([np.percentile(res, 0.5), np.percentile(res, 99.5)]) + xlims = [-np.amax(abs(bounds)), np.amax(abs(bounds))] + res_xlims.append(xlims) + # cut_resolutions.append(res[(res > np.percentile(res, 1)) & (res < np.percentile(res, 99))]) + + # cut_resolutions = np.column_stack(cut_resolutions) + all_resolutions = np.column_stack(all_resolutions) + + if plot_all: + fig = corner.corner(all_resolutions, bins=150) + axes = np.array(fig.axes).reshape((9, 9)) + + for i, label in enumerate(["leading pt", "leading E", "leading eta", "leading phi", "secondary pt", "secondary E", "secondary eta", "secondary phi", "mass"]): + axes[i,0].set_ylabel(label, fontsize=10) + axes[8,i].set_xlabel(label, fontsize=10) + + + for i, xlim in enumerate(res_xlims): + axes[i, i].set(xlim=xlim) + + for yi, xlim in enumerate(res_xlims): + y = yi+1 + if y == 9: + break + for xi in range(y): + axes[y, xi].set(xlim=res_xlims[xi], ylim=res_xlims[y]) + + axes[0,6].text(0, 0, r"$E_{\mathrm{resolution}}\mathrm{, }pt_{\mathrm{resolution}} = \frac{(\mathrm{original}-\mathrm{reconstructed})}{\mathrm{original}}$"+ + "\n"+r"$\eta_{\mathrm{resolution}}=\frac{(\mathrm{original}-\mathrm{reconstructed})}{\mathrm{original}+3}$"+"\n"+ + r"$\phi_{\mathrm{resolution}}=\frac{(\mathrm{original}-\mathrm{reconstructed})}{\mathrm{original}+2\pi}$", fontsize=12) + + + fig.suptitle("Both photons", fontsize=14) + fig.set_size_inches(fig.get_size_inches()*0.5) + # fig.tight_layout() + # plt.show() + plt.close() + + fig2 = corner.corner(np.column_stack([all_resolutions[:,0], all_resolutions[:,3], all_resolutions[:,4], all_resolutions[:,7]]), bins=300) + axes = np.array(fig2.axes).reshape((4, 4)) + + res_xlims = [res_xlims[0], res_xlims[3], res_xlims[4], res_xlims[7]] + + for i, label in enumerate(["leading pt", "leading E", "secondary pt", "secondary E"]): + axes[i,0].set_ylabel(label, fontsize=10) + axes[3,i].set_xlabel(label, fontsize=10) + + + for i, xlim in enumerate(res_xlims): + axes[i, i].set(xlim=xlim) + + for yi, xlim in enumerate(res_xlims): + y = yi+1 + if y == 4: + break + for xi in range(y): + axes[y, xi].set(xlim=res_xlims[xi], ylim=res_xlims[y]) + + axes[0,2].text(0.5, + 0.5, + r"$\mathrm{Resolution}=\frac{\mathrm{original}-\mathrm{reconstructed}}{\mathrm{original}}$", + fontsize=14) + + fig2.suptitle("Energy and Transverse Momentum Resolution Relationship") + os.makedirs(f"V5_results/V{args.v}/", exist_ok=True) + fig2.savefig(f"V5_results/V{args.v}/Ept_corner_plot.png") + # plt.show() + plt.close() + + +def main(): + args = parse_args() + + print("\nPreparing data...") + orig_data, decomp_data = prepare_data(args, decomp_cut=False) + + print("Calculating mass and rmse...") + orig_masses = calc_masses(orig_data) + decomp_masses = calc_masses(decomp_data) + mass_rmse = calc_rmse(orig_masses, decomp_masses) + + print("Plotting Higgs analysis...") + os.makedirs(f"V5_results/V{args.v}/", exist_ok=True) + plot_both_data(orig_masses, decomp_masses, f"V5_results/V{args.v}/", args) +### Change matplotlib params + # print("Plotting resolutions...") + # plot_resolutions(orig_masses, decomp_masses, "mass", hist_yscale="log", savename=f"V5_results/V{args.v}/mass_resolution") + + # print("Plotting corner plot...") + # corner_plot(args, orig_data, decomp_data, orig_masses, decomp_masses) + + print(f"\nMass RMSE: {mass_rmse:.2f}") + +if __name__ == "__main__": + main() diff --git a/workspaces/ATLAS_Workspace/V5_results/V5_precut_scales.npz b/workspaces/ATLAS_Workspace/V5_results/V5_precut_scales.npz new file mode 100644 index 00000000..a7584bfd Binary files /dev/null and b/workspaces/ATLAS_Workspace/V5_results/V5_precut_scales.npz differ diff --git a/workspaces/ATLAS_Workspace/V5_results/V5_results/.DS_Store b/workspaces/ATLAS_Workspace/V5_results/V5_results/.DS_Store new file mode 100644 index 00000000..2b3cd301 Binary files /dev/null and b/workspaces/ATLAS_Workspace/V5_results/V5_results/.DS_Store differ diff --git a/workspaces/ATLAS_Workspace/V5_results/V5_results/V1/HyyAnalysis_comparison.png b/workspaces/ATLAS_Workspace/V5_results/V5_results/V1/HyyAnalysis_comparison.png new file mode 100644 index 00000000..398ee49c Binary files /dev/null and b/workspaces/ATLAS_Workspace/V5_results/V5_results/V1/HyyAnalysis_comparison.png differ diff --git a/workspaces/ATLAS_Workspace/V5_results/carter_data/processed_diphoton_data_all_periods.npz b/workspaces/ATLAS_Workspace/V5_results/carter_data/processed_diphoton_data_all_periods.npz new file mode 100644 index 00000000..70ad15ea Binary files /dev/null and b/workspaces/ATLAS_Workspace/V5_results/carter_data/processed_diphoton_data_all_periods.npz differ diff --git a/workspaces/ATLAS_Workspace/V5_results/create_proper_scales.py b/workspaces/ATLAS_Workspace/V5_results/create_proper_scales.py new file mode 100644 index 00000000..87d07e18 --- /dev/null +++ b/workspaces/ATLAS_Workspace/V5_results/create_proper_scales.py @@ -0,0 +1,73 @@ +#!/usr/bin/env python3 +""" +Create proper scales file for data that's already in physical units +""" + +import numpy as np +import os + +def create_scales_from_data(): + """Create scales file from existing data""" + + # Load the existing data + data_path = "../carter_data/processed_diphoton_data_all_periods.npz" + + if not os.path.exists(data_path): + print(f"โŒ Data file not found: {data_path}") + return + + print(f"๐Ÿ“‚ Loading data from: {data_path}") + data = np.load(data_path) + kinematic_data = data["data"] + names = data["names"] + print(f"โœ… Data loaded: {kinematic_data.shape}") + print(f"๐Ÿ“‹ Column names: {names}") + + # The 8 kinematic variables are columns 1-8 (pt1, pt2, eta1, eta2, phi1, phi2, E1, E2) + # Skip column 0 which is 'mass' + kinematic_cols = [1, 2, 3, 4, 5, 6, 7, 8] + kinematic_names = ['pt1', 'pt2', 'eta1', 'eta2', 'phi1', 'phi2', 'E1', 'E2'] + + # Create scales array (8 variables, 2 values each: min and max) + scales = np.zeros((8, 2)) + + # For pt and E (columns 1, 2, 7, 8): use log10 min/max + pt_e_cols = [0, 1, 6, 7] # Indices in the 8-variable array + for i, col in enumerate(pt_e_cols): + actual_col = kinematic_cols[col] # Map to actual data column + values = kinematic_data[:, actual_col] + # Filter out negative or zero values for log + valid_values = values[values > 0] + if len(valid_values) > 0: + log_min = np.log10(np.min(valid_values)) + log_max = np.log10(np.max(valid_values)) + scales[col, 0] = log_min + scales[col, 1] = log_max + print(f"{kinematic_names[col]} (col {actual_col}): log10 range [{log_min:.3f}, {log_max:.3f}]") + else: + print(f"โš ๏ธ {kinematic_names[col]} (col {actual_col}): No valid positive values for log") + + # For eta and phi (columns 3, 4, 5, 6): use min/max + eta_phi_cols = [2, 3, 4, 5] # Indices in the 8-variable array + for i, col in enumerate(eta_phi_cols): + actual_col = kinematic_cols[col] # Map to actual data column + values = kinematic_data[:, actual_col] + min_val = np.min(values) + max_val = np.max(values) + scales[col, 0] = min_val + scales[col, 1] = max_val + print(f"{kinematic_names[col]} (col {actual_col}): range [{min_val:.3f}, {max_val:.3f}]") + + # Save the scales + scales_path = "../carter_data/V5_precut_scales.npz" + np.savez(scales_path, scales=scales) + print(f"โœ… Scales saved to: {scales_path}") + print(f" Scales shape: {scales.shape}") + + return scales + +if __name__ == "__main__": + scales = create_scales_from_data() + if scales is not None: + print("\n๐Ÿ“Š Final scales array:") + print(scales) diff --git a/workspaces/ATLAS_Workspace/V5_results/generate_V5_data.py b/workspaces/ATLAS_Workspace/V5_results/generate_V5_data.py new file mode 100644 index 00000000..f2772d3f --- /dev/null +++ b/workspaces/ATLAS_Workspace/V5_results/generate_V5_data.py @@ -0,0 +1,174 @@ +import numpy as np +import uproot +import awkward +import pandas +import time +from tqdm import tqdm +import os + +# Create save directory if it doesn't exist +save_path = "/Users/cartercapetz/Desktop/baler/carter_data/" +os.makedirs(save_path, exist_ok=True) + +def cut_photon_pt(photon_pt): + return (photon_pt[:,0] > 40000) & (photon_pt[:,1] > 30000) + +def cut_photon_eta_transition(photon_eta): + return ((abs(photon_eta[:,0])>1.52) | (abs(photon_eta[:,0])<1.37)) & ((abs(photon_eta[:,1])>1.52) | (abs(photon_eta[:,1])<1.37)) + +def cut_tightID(tightIDs): + return tightIDs[:,0] & tightIDs[:,1] + +def cut_isolation_et(photon_etcone20): + return (photon_etcone20[:,0]<4000) & (photon_etcone20[:,1]<4000) + +def minmax(arr): + return (arr-min(arr))/(max(arr)-min(arr)), (np.astype(min(arr), np.float32), np.astype(max(arr), np.float32)) + +def log_minmax(arr): + return ((np.log10(arr)-np.log10(min(arr)))/(np.log10(max(arr))-np.log10(min(arr))), + (np.astype(np.log10(min(arr)), np.float32), + np.astype(np.log10(max(arr)), np.float32))) + +# Updated to use 2015-2016 ATLAS GamGam data from CERN Open Data Portal +# The data is available at: https://opendata.cern/record/93915 +# This dataset has 36.6M events, 16 files, 9.2 GiB total +# We'll use a subset for testing to avoid memory issues + +# For now, we'll create a script that can work with local ROOT files +# You'll need to download the ROOT files from the CERN Open Data Portal +# and place them in a local directory + +# Local path for downloaded ROOT files (update this path) +local_data_path = "/Users/cartercapetz/Desktop/baler/V5_results/data_files/" + +# Check if local data exists, otherwise provide instructions +if os.path.exists(local_data_path): + # List all ROOT files in the directory + root_files = [f for f in os.listdir(local_data_path) if f.endswith('.root')] + if root_files: + print(f"Found {len(root_files)} ROOT files in {local_data_path}") + samples = [os.path.join(local_data_path, f) for f in root_files] + else: + print("No ROOT files found in data directory") + print("Please download the ATLAS GamGam data from:") + print("https://opendata.cern/record/93915") + print(f"and place the ROOT files in: {local_data_path}") + exit(1) +else: + print(f"Data directory not found: {local_data_path}") + print("Please create the directory and download the ATLAS GamGam data from:") + print("https://opendata.cern/record/93915") + print("Then update the 'local_data_path' variable in this script") + exit(1) + +print(f"Processing {len(samples)} ROOT files...") + +full_data = np.empty((0, 8)) +full_norm_data = np.empty((0,8)) +length = 0 + +# Process each ROOT file +for i, path in enumerate(samples): + print(f"Processing file {i+1}/{len(samples)}: {os.path.basename(path)}") + start = time.time() + + try: + with uproot.open(path + ":mini") as t: + tree = t + print(f"File open, took {time.time() - start:.2f}s") + + # Process data in smaller chunks to avoid memory issues + chunk_size = 10000 # Process 10k events at a time + + for chunk_start in tqdm(range(0, len(tree), chunk_size), desc=f"File {i+1}"): + chunk_end = min(chunk_start + chunk_size, len(tree)) + + data = tree.arrays([ + "photon_pt", + "photon_eta", + "photon_phi", + "photon_E", + "photon_isTightID", + "photon_etcone20" + ], entry_start=chunk_start, entry_stop=chunk_end, library="pd") + + # Apply cuts + lens = data.photon_pt.apply(len) + len_mask = (lens == 2).to_numpy() + data = data[len_mask] + + if len(data) == 0: + continue + + data = data[cut_tightID(data.photon_isTightID.to_numpy())] + data = data[cut_isolation_et(data.photon_etcone20.to_numpy())] + data = data[cut_photon_pt(data.photon_pt.to_numpy())] + data = data[cut_photon_eta_transition(data.photon_eta.to_numpy())] + + if len(data) == 0: + continue + + # Stack data + chunk_data = np.column_stack([data.photon_pt, + data.photon_eta, + data.photon_phi, + data.photon_E]) + + full_data = np.vstack((full_data, chunk_data)) + length += len(chunk_data) + + # Print progress every 50k events + if length % 50000 == 0: + print(f" Processed {length} events so far...") + + # Limit total events for testing (remove this for full dataset) + if length >= 100000: # Limit to 100k events for testing + print(f" Reached limit of {length} events, stopping for testing") + break + + if length >= 100000: + break + + except Exception as e: + print(f"Error processing {path}: {e}") + continue + + print(f"Finished processing file {i+1}\nTook {time.time() - start:.2f}s") + print(f"Current Length {length}\n") + +if len(full_data) == 0: + print("No data processed successfully!") + exit(1) + +full_data = np.array(full_data, dtype=np.float32) + +print(f"Final data shape: {full_data.shape}") +print(f"Total events processed: {len(full_data)}") + +# Calculate normalization and scales +pt1, scale0 = log_minmax(full_data[:,0]) +pt2, scale1 = log_minmax(full_data[:,1]) +eta1, scale2 = minmax(full_data[:,2]) +eta2, scale3 = minmax(full_data[:,3]) +phi1, scale4 = minmax(full_data[:,4]) +phi2, scale5 = minmax(full_data[:,5]) +E1, scale6 = log_minmax(full_data[:,6]) +E2, scale7 = log_minmax(full_data[:,7]) + +full_norm_data = np.column_stack([pt1, pt2, eta1, eta2, phi1, phi2, E1, E2]) +scales = np.column_stack([[scale0, scale1], [scale2, scale3], [scale4, scale5], [scale6, scale7]]) + +names = ["pt1", "pt2", "eta1", "eta2", "phi1", "phi2", "E1", "E2"] + +# Save with V5 naming +np.savez(save_path+"V5_precut_original.npz", data=full_data, names=names) +np.savez(save_path+"V5_precut_normalised.npz", data=full_norm_data, names=names) +np.savez(save_path+"V5_precut_scales.npz", data=scales, names=names) + +print(f"โœ… Data saved successfully!") +print(f" Original data: {save_path}V5_precut_original.npz") +print(f" Normalized data: {save_path}V5_precut_normalised.npz") +print(f" Scales: {save_path}V5_precut_scales.npz") +print(f" Data shape: {full_data.shape}") +print(f" Data type: {full_data.dtype}") diff --git a/workspaces/ATLAS_Workspace/V5_results/generate_scales.py b/workspaces/ATLAS_Workspace/V5_results/generate_scales.py new file mode 100644 index 00000000..75cd1b69 --- /dev/null +++ b/workspaces/ATLAS_Workspace/V5_results/generate_scales.py @@ -0,0 +1,52 @@ +import numpy as np +import os + +# Path to your original data in physical units +data_path = "carter_data/processed_diphoton_data_all_periods.npz" + +# Check if the data file exists +if not os.path.exists(data_path): + print(f"โŒ Data file not found: {data_path}") + print("Please ensure the data file exists or update the path") + exit(1) + +try: + # Load your original data in physical units + print(f"๐Ÿ“‚ Loading data from: {data_path}") + orig_data = np.load(data_path)["data"] + print(f"โœ… Data loaded successfully: {orig_data.shape}") + + # Check if we have the expected 8 columns + if orig_data.shape[1] != 8: + print(f"โš ๏ธ Warning: Expected 8 columns, got {orig_data.shape[1]}") + print("This script assumes data columns in order: pt1, pt2, eta1, eta2, phi1, phi2, E1, E2") + + # Calculate scales using the same method as Oscar's scripts + print("๐Ÿ”ง Calculating normalization scales...") + scales = [] + for i in range(min(8, orig_data.shape[1])): + if i < 2 or i > 5: # pt and E: logarithmic + min_val = np.log10(np.min(orig_data[:, i])) + max_val = np.log10(np.max(orig_data[:, i])) + scales.append([min_val, max_val]) + print(f" Column {i}: log10 range [{min_val:.3f}, {max_val:.3f}]") + else: # eta and phi: min-max + min_val = np.min(orig_data[:, i]) + max_val = np.max(orig_data[:, i]) + scales.append([min_val, max_val]) + print(f" Column {i}: range [{min_val:.3f}, {max_val:.3f}]") + + scales = np.array(scales) + + # Save with V5 naming + output_path = "V5_precut_scales.npz" + names = ["pt1", "pt2", "eta1", "eta2", "phi1", "phi2", "E1", "E2"] + + np.savez(output_path, data=scales, names=names) + print(f"โœ… Scales saved to: {output_path}") + print(f" Scales shape: {scales.shape}") + print(f" Names: {names}") + +except Exception as e: + print(f"โŒ Error processing data: {e}") + exit(1) \ No newline at end of file diff --git a/workspaces/ATLAS_Workspace/V5_results/setup_atlas_data.py b/workspaces/ATLAS_Workspace/V5_results/setup_atlas_data.py new file mode 100644 index 00000000..1764eefd --- /dev/null +++ b/workspaces/ATLAS_Workspace/V5_results/setup_atlas_data.py @@ -0,0 +1,172 @@ +#!/usr/bin/env python3 +""" +Setup script for ATLAS GamGam data (2015-2016) +This script helps you download and prepare the data needed for V5 analysis. +""" + +import os +import sys +import subprocess +import requests +from pathlib import Path + +def print_header(): + print("=" * 80) + print("๐Ÿš€ ATLAS GamGam Data Setup for V5 Analysis") + print("=" * 80) + print() + +def check_dependencies(): + """Check if required packages are installed""" + print("๐Ÿ” Checking dependencies...") + + try: + import uproot + print(" โœ… uproot: OK") + except ImportError: + print(" โŒ uproot: Not installed") + print(" Install with: pip install uproot") + return False + + try: + import numpy + print(" โœ… numpy: OK") + except ImportError: + print(" โŒ numpy: Not installed") + print(" Install with: pip install numpy") + return False + + try: + import pandas + print(" โœ… pandas: OK") + except ImportError: + print(" โŒ pandas: Not installed") + print(" Install with: pip install pandas") + return False + + print(" โœ… All dependencies satisfied!") + return True + +def create_directories(): + """Create necessary directories""" + print("\n๐Ÿ“ Creating directories...") + + dirs = [ + "V5_results/data_files", + "carter_data", + "V5_results/output" + ] + + for dir_path in dirs: + Path(dir_path).mkdir(parents=True, exist_ok=True) + print(f" โœ… Created: {dir_path}") + + return True + +def download_data_info(): + """Provide information about downloading the data""" + print("\n๐Ÿ“ฅ Data Download Information") + print("-" * 40) + print("The ATLAS GamGam data (2015-2016) is available at:") + print(" ๐ŸŒ https://opendata.cern/record/93915") + print() + print("Dataset details:") + print(" ๐Ÿ“Š 36,564,144 events") + print(" ๐Ÿ“ 16 ROOT files") + print(" ๐Ÿ’พ 9.2 GiB total size") + print(" ๐ŸŽฏ GamGam skim (diphoton selection)") + print() + print("To download:") + print(" 1. Visit the URL above") + print(" 2. Click on individual ROOT files to download") + print(" 3. Place all .root files in: V5_results/data_files/") + print() + print("โš ๏ธ Note: This is a large dataset. For testing, you can:") + print(" - Download just 1-2 files initially") + print(" - The script will limit processing to 100k events for testing") + print() + +def check_data_files(): + """Check if ROOT files are present""" + print("\n๐Ÿ” Checking for ROOT files...") + + data_dir = Path("V5_results/data_files") + root_files = list(data_dir.glob("*.root")) + + if not root_files: + print(" โŒ No ROOT files found in V5_results/data_files/") + print(" ๐Ÿ“ฅ Please download the ATLAS data first") + return False + + print(f" โœ… Found {len(root_files)} ROOT files:") + for f in root_files[:5]: # Show first 5 files + print(f" - {f.name}") + if len(root_files) > 5: + print(f" ... and {len(root_files) - 5} more") + + return True + +def run_test(): + """Run a test to verify everything works""" + print("\n๐Ÿงช Running test...") + + try: + # Try to import and run the generate script + sys.path.append(".") + import generate_V5_data + print(" โœ… Script imports successfully") + + # Check if we can read a ROOT file + data_dir = Path("V5_results/data_files") + root_files = list(data_dir.glob("*.root")) + + if root_files: + print(f" โœ… Found {len(root_files)} ROOT files for processing") + print(" ๐Ÿš€ Ready to run: python V5_results/generate_V5_data.py") + else: + print(" โŒ No ROOT files found - download data first") + return False + + except Exception as e: + print(f" โŒ Test failed: {e}") + return False + + return True + +def main(): + """Main setup function""" + print_header() + + # Check dependencies + if not check_dependencies(): + print("\nโŒ Please install missing dependencies and run again") + return False + + # Create directories + create_directories() + + # Show download info + download_data_info() + + # Check for data files + has_data = check_data_files() + + # Run test + if has_data: + if run_test(): + print("\n๐ŸŽ‰ Setup complete! You can now run:") + print(" python V5_results/generate_V5_data.py") + else: + print("\nโŒ Setup incomplete - please check errors above") + else: + print("\n๐Ÿ“‹ Next steps:") + print(" 1. Download ATLAS GamGam data from CERN Open Data Portal") + print(" 2. Place .root files in V5_results/data_files/") + print(" 3. Run this setup script again") + print(" 4. Run the generate script") + + print("\n" + "=" * 80) + return True + +if __name__ == "__main__": + main() diff --git a/workspaces/ATLAS_Workspace/data/.DS_Store b/workspaces/ATLAS_Workspace/data/.DS_Store new file mode 100644 index 00000000..36c797bc Binary files /dev/null and b/workspaces/ATLAS_Workspace/data/.DS_Store differ diff --git a/workspaces/ATLAS_Workspace/data/photon_e.npz b/workspaces/ATLAS_Workspace/data/photon_e.npz new file mode 100644 index 00000000..ab47ae9b Binary files /dev/null and b/workspaces/ATLAS_Workspace/data/photon_e.npz differ diff --git a/workspaces/ATLAS_Workspace/data/photon_e_converted.npz b/workspaces/ATLAS_Workspace/data/photon_e_converted.npz new file mode 100644 index 00000000..0f928bd9 Binary files /dev/null and b/workspaces/ATLAS_Workspace/data/photon_e_converted.npz differ diff --git a/workspaces/ATLAS_Workspace/data/processed_diphoton_data_all_periods.npz b/workspaces/ATLAS_Workspace/data/processed_diphoton_data_all_periods.npz new file mode 100644 index 00000000..70ad15ea Binary files /dev/null and b/workspaces/ATLAS_Workspace/data/processed_diphoton_data_all_periods.npz differ diff --git a/workspaces/ATLAS_Workspace/data/processed_photon_data_all_periods copy.npz b/workspaces/ATLAS_Workspace/data/processed_photon_data_all_periods copy.npz new file mode 100644 index 00000000..03c6edce Binary files /dev/null and b/workspaces/ATLAS_Workspace/data/processed_photon_data_all_periods copy.npz differ diff --git a/workspaces/ATLAS_Workspace/data/processed_photon_data_all_periods.npz b/workspaces/ATLAS_Workspace/data/processed_photon_data_all_periods.npz new file mode 100644 index 00000000..08ec87e3 Binary files /dev/null and b/workspaces/ATLAS_Workspace/data/processed_photon_data_all_periods.npz differ diff --git a/workspaces/ATLAS_Workspace/data/processed_photon_data_converted.npz b/workspaces/ATLAS_Workspace/data/processed_photon_data_converted.npz new file mode 100644 index 00000000..5ca554e6 Binary files /dev/null and b/workspaces/ATLAS_Workspace/data/processed_photon_data_converted.npz differ