alpha_g_physics 0.1.5

Data analysis library for the ALPHA-g experiment
Documentation
use super::*;
use alpha_g_detector::alpha16::{aw_map::TPC_ANODE_WIRES, ADC_MAX, ADC_MIN};

fn all_within_limits(run_number: u32) -> bool {
    for i in 0..TPC_ANODE_WIRES {
        let wire = TpcWirePosition::try_from(i).unwrap();

        let baseline = try_wire_baseline(run_number, wire);
        if let Ok(baseline) = baseline {
            if !(ADC_MIN..=ADC_MAX).contains(&baseline) {
                return false;
            }
        }
    }
    true
}

#[test]
fn all_within_limits_in_baseline_map() {
    assert!(all_within_limits(7026));
    assert!(all_within_limits(u32::MAX));
}

#[test]
fn try_wire_baseline_wire_baseline_map_error() {
    for run_number in 0..=7025 {
        for i in 0..TPC_ANODE_WIRES {
            let wire = TpcWirePosition::try_from(i).unwrap();
            assert!(try_wire_baseline(run_number, wire).is_err());
        }
    }
}

#[test]
fn try_wire_baseline_correctness_7026() {
    for i in 0..TPC_ANODE_WIRES {
        let wire = TpcWirePosition::try_from(i).unwrap();
        let baseline = try_wire_baseline(7026, wire);
        assert!(baseline.is_ok());
    }

    assert_eq!(
        try_wire_baseline(7026, TpcWirePosition::try_from(0).unwrap()).unwrap(),
        2981
    );
    assert_eq!(
        try_wire_baseline(7026, TpcWirePosition::try_from(32).unwrap()).unwrap(),
        3036
    );
    assert_eq!(
        try_wire_baseline(7026, TpcWirePosition::try_from(64).unwrap()).unwrap(),
        2907
    );
    assert_eq!(
        try_wire_baseline(7026, TpcWirePosition::try_from(96).unwrap()).unwrap(),
        2866
    );
    assert_eq!(
        try_wire_baseline(7026, TpcWirePosition::try_from(128).unwrap()).unwrap(),
        3079
    );
    assert_eq!(
        try_wire_baseline(7026, TpcWirePosition::try_from(160).unwrap()).unwrap(),
        3024
    );
    assert_eq!(
        try_wire_baseline(7026, TpcWirePosition::try_from(192).unwrap()).unwrap(),
        3002
    );
    assert_eq!(
        try_wire_baseline(7026, TpcWirePosition::try_from(224).unwrap()).unwrap(),
        2966
    );
}

#[test]
fn try_wire_baseline_correctness_sim() {
    for i in 0..TPC_ANODE_WIRES {
        let wire = TpcWirePosition::try_from(i).unwrap();
        let baseline = try_wire_baseline(u32::MAX, wire).unwrap();
        assert_eq!(baseline, 3000);
    }
}