From ada5ef5e862d67f118f3c0caa8bb2017828d561f Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Wed, 30 Oct 2024 10:30:59 +0100 Subject: [PATCH] Remove `Mu2` struct --- pineappl/src/subgrid.rs | 11 ----------- pineappl/src/v0.rs | 17 +++++++++-------- pineappl_cli/src/import/applgrid.rs | 29 ++++++----------------------- pineappl_cli/src/import/fastnlo.rs | 18 +++--------------- 4 files changed, 18 insertions(+), 57 deletions(-) diff --git a/pineappl/src/subgrid.rs b/pineappl/src/subgrid.rs index fc2165cb..c57c8f5c 100644 --- a/pineappl/src/subgrid.rs +++ b/pineappl/src/subgrid.rs @@ -23,17 +23,6 @@ pub enum SubgridEnum { ImportSubgridV1, } -/// Structure denoting renormalization and factorization scale values. -#[derive(Debug, Deserialize, Clone, PartialEq, PartialOrd, Serialize)] -pub struct Mu2 { - /// The (squared) renormalization scale value. - pub ren: f64, - /// The (squared) factorization scale value. - pub fac: f64, - /// The (squared) fragmentation scale value. - pub frg: f64, -} - /// Size-related statistics for a subgrid. #[derive(Debug, Eq, PartialEq)] pub struct Stats { diff --git a/pineappl/src/v0.rs b/pineappl/src/v0.rs index 08147ced..5d4ba6c0 100644 --- a/pineappl/src/v0.rs +++ b/pineappl/src/v0.rs @@ -6,7 +6,7 @@ use super::import_subgrid::ImportSubgridV1; use super::interpolation::{Interp, InterpMeth, Map, ReweightMeth}; use super::packed_array::PackedArray; use super::pids::PidBasis; -use super::subgrid::Mu2; +use float_cmp::assert_approx_eq; use pineappl_v0::grid::Grid as GridV0; use std::io::BufRead; use std::iter; @@ -117,17 +117,18 @@ pub fn read_uncompressed_v0(mut reader: impl BufRead) -> Result for (new_subgrid, old_subgrid) in result.subgrids_mut().iter_mut().zip(grid.subgrids().iter()) { if !old_subgrid.is_empty() { - let mu2_grid: Vec<_> = old_subgrid + let scale_node_values: Vec<_> = old_subgrid .mu2_grid() .iter() - .map(|mu2v0| Mu2 { - ren: mu2v0.ren, - fac: mu2v0.fac, - frg: -1.0, + .map(|mu2v0| { + // TODO: implement importing flexible-scale grids + assert_approx_eq!(f64, mu2v0.ren, mu2v0.fac, ulps = 4); + + mu2v0.fac }) .collect(); - let mut dim = vec![mu2_grid.len()]; + let mut dim = vec![scale_node_values.len()]; if convolutions[0].is_some() { dim.push(old_subgrid.x1_grid().len()); } @@ -150,7 +151,7 @@ pub fn read_uncompressed_v0(mut reader: impl BufRead) -> Result } } - let mut node_values = vec![mu2_grid.iter().map(|&Mu2 { ren, .. }| ren).collect()]; + let mut node_values = vec![scale_node_values]; if convolutions[0].is_some() { node_values.push(old_subgrid.x1_grid().into_owned()); } diff --git a/pineappl_cli/src/import/applgrid.rs b/pineappl_cli/src/import/applgrid.rs index 873a4b41..70ad4561 100644 --- a/pineappl_cli/src/import/applgrid.rs +++ b/pineappl_cli/src/import/applgrid.rs @@ -8,7 +8,6 @@ use pineappl::import_subgrid::ImportSubgridV1; use pineappl::interpolation::{Interp, InterpMeth, Map, ReweightMeth}; use pineappl::packed_array::PackedArray; use pineappl::pids::PidBasis; -use pineappl::subgrid::Mu2; use pineappl_applgrid::ffi::{self, grid}; use std::f64::consts::TAU; use std::pin::Pin; @@ -182,16 +181,7 @@ pub fn convert_applgrid(grid: Pin<&mut grid>, alpha: u8) -> Result { let igrid = unsafe { &*igrid }; let reweight = ffi::igrid_m_reweight(igrid); - let mu2_values: Vec<_> = (0..igrid.Ntau()) - .map(|i| { - let q2 = igrid.getQ2(i); - Mu2 { - ren: q2, - fac: q2, - frg: -1.0, - } - }) - .collect(); + let scale_values: Vec<_> = (0..igrid.Ntau()).map(|i| igrid.getQ2(i)).collect(); let x1_values: Vec<_> = (0..igrid.Ny1()) .map(|i| igrid.getx1(i).clamp(0.0, 1.0)) .collect(); @@ -223,12 +213,12 @@ pub fn convert_applgrid(grid: Pin<&mut grid>, alpha: u8) -> Result { let matrix = unsafe { &*matrix }; let mut array = PackedArray::new(if dis { - vec![mu2_values.len(), x1_values.len()] + vec![scale_values.len(), x1_values.len()] } else { - vec![mu2_values.len(), x1_values.len(), x2_values.len()] + vec![scale_values.len(), x1_values.len(), x2_values.len()] }); - for itau in 0..mu2_values.len() { + for itau in 0..scale_values.len() { for ix1 in 0..x1_values.len() { for ix2 in 0..x2_values.len() { let value = ffi::sparse_matrix_get( @@ -255,16 +245,9 @@ pub fn convert_applgrid(grid: Pin<&mut grid>, alpha: u8) -> Result { ImportSubgridV1::new( array, if dis { - vec![ - mu2_values.iter().map(|&Mu2 { ren, .. }| ren).collect(), - x1_values.clone(), - ] + vec![scale_values.clone(), x1_values.clone()] } else { - vec![ - mu2_values.iter().map(|&Mu2 { ren, .. }| ren).collect(), - x1_values.clone(), - x2_values.clone(), - ] + vec![scale_values.clone(), x1_values.clone(), x2_values.clone()] }, ) .into(); diff --git a/pineappl_cli/src/import/fastnlo.rs b/pineappl_cli/src/import/fastnlo.rs index f84e4733..c31a62e5 100644 --- a/pineappl_cli/src/import/fastnlo.rs +++ b/pineappl_cli/src/import/fastnlo.rs @@ -10,7 +10,6 @@ use pineappl::import_subgrid::ImportSubgridV1; use pineappl::interpolation::{Interp, InterpMeth, Map, ReweightMeth}; use pineappl::packed_array::PackedArray; use pineappl::pids::PidBasis; -use pineappl::subgrid::Mu2; use pineappl_fastnlo::ffi::{ self, fastNLOCoeffAddBase, fastNLOCoeffAddFix, fastNLOCoeffAddFlex, fastNLOLHAPDF, fastNLOPDFLinearCombinations, EScaleFunctionalForm, @@ -212,17 +211,10 @@ fn convert_coeff_add_fix( } let q_values = ffi::GetScaleNodes(table, obs, j); - let mu2_values: Vec<_> = q_values - .iter() - .map(|q| Mu2 { - ren: q * q, - fac: q * q, - frg: -1.0, - }) - .collect(); + let scale_values: Vec<_> = q_values.into_iter().map(|q| q * q).collect(); let mut array = - PackedArray::new(vec![mu2_values.len(), x1_values.len(), x2_values.len()]); + PackedArray::new(vec![scale_values.len(), x1_values.len(), x2_values.len()]); // TODO: figure out what the general case is supposed to be assert_eq!(j, 0); @@ -278,11 +270,7 @@ fn convert_coeff_add_fix( [[0, obs.try_into().unwrap(), subproc.try_into().unwrap()]] = ImportSubgridV1::new( array, - vec![ - mu2_values.iter().map(|&Mu2 { ren, .. }| ren).collect(), - x1_values.clone(), - x2_values.clone(), - ], + vec![scale_values.clone(), x1_values.clone(), x2_values.clone()], ) .into(); }