From 3ca0c9b4e46ee9dc48c77d78ec84c8ff8b9de78b Mon Sep 17 00:00:00 2001 From: Kamil Skwarczynski Date: Thu, 13 Aug 2026 10:59:39 +0000 Subject: [PATCH] implement new NuOsc interfac which mathces params using names not hardcoded order --- CIValidations/SamplePDFValidations.cpp | 12 +++++++++++- TutorialConfigs/CovObjs/OscillationModel.yaml | 13 ++++++++++--- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/CIValidations/SamplePDFValidations.cpp b/CIValidations/SamplePDFValidations.cpp index 2271404..8fb647d 100755 --- a/CIValidations/SamplePDFValidations.cpp +++ b/CIValidations/SamplePDFValidations.cpp @@ -15,8 +15,18 @@ void SharedNuOscTest(const std::string& config, ParameterHandlerGeneric* xsec) { throw MaCh3Exception(__FILE__ , __LINE__ ); } std::string OscillatorConfig = std::string(std::getenv("MaCh3Tutorial_ROOT")) + "/TutorialConfigs/NuOscillator/CUDAProb3.yaml"; + + // get osc params for sample 0, later we check all have same number auto OscParams = xsec->GetOscParsFromSampleName("Tutorial_ATM"); - auto OscillatorObj = std::make_shared(OscillatorConfig, true, OscParams, 6); + + std::vector OscParamsValues(OscParams.size()); + std::vector NuOscName(OscParams.size()); + for(size_t ij = 0; ij < OscParams.size(); ij++){ + OscParamsValues[ij] = xsec->RetPointer(OscParams[ij].index); + NuOscName[ij] = OscParams[ij].NuOscName; + } + + auto OscillatorObj = std::make_shared(OscillatorConfig, true, OscParamsValues, NuOscName, 6); auto Sample1 = std::make_unique(config, xsec, OscillatorObj); auto Sample2 = std::make_unique(config, xsec, OscillatorObj); diff --git a/TutorialConfigs/CovObjs/OscillationModel.yaml b/TutorialConfigs/CovObjs/OscillationModel.yaml index 132c175..15ce6d5 100755 --- a/TutorialConfigs/CovObjs/OscillationModel.yaml +++ b/TutorialConfigs/CovObjs/OscillationModel.yaml @@ -1,7 +1,4 @@ Systematics: - -#WARNING !!! -#osc covariance require particular order of osc parameters, do not change order of dials here - Systematic: Names: FancyName: sin2th_12 @@ -19,6 +16,7 @@ Systematics: StepScale: MCMC: 0.9 Type: Oscillation + NuOscName: "sin2_th12" - Systematic: Names: @@ -41,6 +39,7 @@ Systematics: StepScale: MCMC: 0.9 Type: Oscillation + NuOscName: "sin2_th23" - Systematic: Names: @@ -59,6 +58,7 @@ Systematics: StepScale: MCMC: 5.0 Type: Oscillation + NuOscName: "sin2_th13" - Systematic: Names: @@ -77,6 +77,7 @@ Systematics: StepScale: MCMC: 0.9 Type: Oscillation + NuOscName: "dm2_12" - Systematic: Names: @@ -97,6 +98,7 @@ Systematics: StepScale: MCMC: 0.9 Type: Oscillation + NuOscName: "dm2_23" - Systematic: Names: @@ -118,6 +120,7 @@ Systematics: StepScale: MCMC: 0.9 Type: Oscillation + NuOscName: "delta_cp" - Systematic: Names: @@ -136,6 +139,7 @@ Systematics: StepScale: MCMC: 0.9 Type: Oscillation + NuOscName: "path_length" - Systematic: Names: @@ -154,6 +158,7 @@ Systematics: StepScale: MCMC: 0.9 Type: Oscillation + NuOscName: "matter_density" - Systematic: Names: @@ -172,6 +177,7 @@ Systematics: StepScale: MCMC: 0.9 Type: Oscillation + NuOscName: "electron_density" - Systematic: Names: @@ -190,3 +196,4 @@ Systematics: StepScale: MCMC: 0.9 Type: Oscillation + NuOscName: "production_height"