From e76125e718723aecd0755fc508d82f654e6f2f7a Mon Sep 17 00:00:00 2001 From: Kamil Skwarczynski Date: Thu, 12 Feb 2026 01:09:14 +0000 Subject: [PATCH] udpate tutorial to wrok with recent sigma var changes --- CIValidations/CMakeLists.txt | 1 - CIValidations/MaCh3CLI | 1 - CIValidations/SigmaVarLegacyValidations.cpp | 140 -------------------- CIValidations/pValueValidations.cpp | 24 +++- 4 files changed, 23 insertions(+), 143 deletions(-) delete mode 100755 CIValidations/SigmaVarLegacyValidations.cpp diff --git a/CIValidations/CMakeLists.txt b/CIValidations/CMakeLists.txt index aabaf48..f5c5dfc 100755 --- a/CIValidations/CMakeLists.txt +++ b/CIValidations/CMakeLists.txt @@ -9,7 +9,6 @@ foreach(app NuMCMCconversion NuOscillatorInterfaceValidations pValueValidations - SigmaVarLegacyValidations SigmaVarValidation LLHValidation PredictiveValidations diff --git a/CIValidations/MaCh3CLI b/CIValidations/MaCh3CLI index c22960a..4483d30 100755 --- a/CIValidations/MaCh3CLI +++ b/CIValidations/MaCh3CLI @@ -67,7 +67,6 @@ run_covariance_validations() { ./CIValidations/MaCh3ModeValidations ./CIValidations/pValueValidations ./CIValidations/SigmaVarValidation - ./CIValidations/SigmaVarLegacyValidations if [ "$HAVE_UNITTEST_SUPPORT" -eq 0 ]; then ./CIValidations/UnitTests/manager_tests ./CIValidations/UnitTests/histogram_tests diff --git a/CIValidations/SigmaVarLegacyValidations.cpp b/CIValidations/SigmaVarLegacyValidations.cpp deleted file mode 100755 index ccf0690..0000000 --- a/CIValidations/SigmaVarLegacyValidations.cpp +++ /dev/null @@ -1,140 +0,0 @@ -// MaCh3 spline includes -#include "Utils/Comparison.h" -#include "SamplesTutorial/SampleHandlerTutorial.h" -#include "Fitters/SampleSummary.h" -#include "Fitters/MaCh3Factory.h" - -class samplePDFSigmaVar : public SampleHandlerBase -{ - public: - samplePDFSigmaVar() : - SampleBlarbTitle({ - "FGD1_numuCC_0pi_0_protons_no_photon", - "FGD1_numuCC_0pi_N_protons_no_photon", - "FGD1_numuCC_1pi_no_photon", - "FGD1_numuCC_other_no_photon", - "FGD1_numuCC_photon", - - "FGD2_numuCC_0pi_0_protons_no_photon", - "FGD2_numuCC_0pi_N_protons_no_photon", - "FGD2_numuCC_1pi_no_photon", - "FGD2_numuCC_other_no_photon", - "FGD2_numuCC_photon", - - "FGD1_anti-numuCC_0pi", - "FGD1_anti-numuCC_1pi", - "FGD1_anti-numuCC_other", - - "FGD2_anti-numuCC_0pi", - "FGD2_anti-numuCC_1pi", - "FGD2_anti-numuCC_other", - - "FGD1_NuMuBkg_CC0pi_in_AntiNu_Mode", - "FGD1_NuMuBkg_CC1pi_in_AntiNu_Mode", - "FGD1_NuMuBkg_CCother_in_AntiNu_Mode", - - "FGD2_NuMuBkg_CC0pi_in_AntiNu_Mode", - "FGD2_NuMuBkg_CC1pi_in_AntiNu_Mode", - "FGD2_NuMuBkg_CCother_in_AntiNu_Mode" - }), - KinemBlarbTitle({"RecoLeptonMomentum", "RecoLeptonCosTheta"}) - { - TRandom3 rng(42); - PolyHist.resize(GetNsamples()); - for(int iSam = 0; iSam < GetNsamples(); iSam++) - { - auto BinArray_x = ReturnKinematicParameterBinning(0, GetKinVarName(0, 0)); - auto BinArray_y = ReturnKinematicParameterBinning(0, GetKinVarName(0, 1)); - - PolyHist[iSam] = new TH2Poly(); - PolyHist[iSam]->SetName(SampleBlarbTitle[iSam].c_str()); - PolyHist[iSam]->SetTitle(SampleBlarbTitle[iSam].c_str()); - PolyHist[iSam]->SetDirectory(nullptr); - double xmax, xmin, ymax, ymin; - for(unsigned int iy = 0; iy < BinArray_y.size()-1; iy++) - { - ymax = BinArray_y[iy+1]; - ymin = BinArray_y[iy]; - for(unsigned int ix = 0; ix < BinArray_x.size()-1; ix++) - { - xmax = BinArray_x[ix+1]; - xmin = BinArray_x[ix]; - double binofx[] = {xmin, xmax, xmax, xmin}; - double binofy[] = {ymin, ymin, ymax, ymax}; - PolyHist[iSam]->AddBin(4,binofx,binofy); - } - } - // Fixed seed for reproducibility - - for (int i = 1; i <= PolyHist[iSam]->GetNumberOfBins(); i++) { - const double value = rng.Uniform(0.0, 1.0); - PolyHist[iSam]->SetBinContent(i, value); - } - for (int i = 1; i <= PolyHist[iSam]->GetNumberOfBins(); i++) { - const double value = rng.Uniform(0.0, 1.0); - PolyHist[iSam]->SetBinError(i, value); - } - } - } // end constructor - - inline M3::int_t GetNsamples() override { return 22; }; - std::string GetSampleTitle(int Sample) const override {return SampleBlarbTitle[Sample];}; - std::string GetKinVarName(const int sample, const int Dimension) const override {return KinemBlarbTitle[Dimension];} - - std::vector ReturnKinematicParameterBinning(const int Sample, const std::string &KinematicParameter) const override { - if(KinematicParameter == "RecoLeptonMomentum") { - return {0., 350., 500., 600., 650., 700., 800., 900., 1000., 1150., 1250., 1500., 2000., 5000., 30000.}; - } else if(KinematicParameter == "RecoLeptonCosTheta") { - return {-1.0, 0.6, 0.7, 0.8, 0.85, 0.88, 0.9, 0.92, 0.94, 0.96, 0.98, 1.0}; - } - } - - void CleanMemoryBeforeFit() override {}; - std::string GetName() const override {return "samplePDFSigmaVar";}; - double GetLikelihood() const override {return 666;}; - double GetSampleLikelihood(const int iSample) const override {return iSample;}; - int GetNOscChannels(const int iSample) const override {return iSample;}; - void Reweight() override {return;}; - - void PrintRates(const bool DataOnly = false) override {return;}; - - TH1* GetDataHist(const int Selection) override {return PolyHist[Selection];} - TH1* GetMCHist(const int Selection) override {return PolyHist[Selection];} - TH1* GetW2Hist(const int Selection) override {return PolyHist[Selection];} - TH1* GetPDFMode(const int Selection, const int Mode) override {return PolyHist[Selection];} - - std::vector SampleBlarbTitle; - std::vector KinemBlarbTitle; - std::vector PolyHist; -}; - -int main(int argc, char *argv[]) -{ - SetMaCh3LoggerFormat(); - - if (argc != 1) { - MACH3LOG_CRITICAL("You specified arguments, but none are needed. (Program name: {})", argv[0]); - throw MaCh3Exception(__FILE__ , __LINE__ ); - } - std::string TutorialPath = std::getenv("MaCh3Tutorial_ROOT"); - - std::vector xsecCovMatrixFile = {TutorialPath + "/TutorialConfigs/CovObjs/SystematicModel.yaml", - TutorialPath + "/TutorialConfigs/CovObjs/OscillationModel.yaml" - }; - auto xsec = std::make_unique(xsecCovMatrixFile, "xsec_cov"); - - auto SampleTutorial = std::make_unique(); - - std::string ManagerInput = TutorialPath + "/TutorialConfigs/FitterConfig.yaml"; - auto FitManager = std::make_unique(ManagerInput); - - // Create MCMC Class - std::unique_ptr MaCh3Fitter = MaCh3FitterFactory(FitManager.get()); - // Add covariance to MCM - MaCh3Fitter->AddSystObj(xsec.get()); - MaCh3Fitter->AddSampleHandler(SampleTutorial.get()); - - MaCh3Fitter->RunSigmaVarLegacy(); - - return 0; -} diff --git a/CIValidations/pValueValidations.cpp b/CIValidations/pValueValidations.cpp index 31f5e7c..9fac395 100755 --- a/CIValidations/pValueValidations.cpp +++ b/CIValidations/pValueValidations.cpp @@ -61,7 +61,29 @@ class samplePDFpValue : public SampleHandlerBase TH1* GetDataHist(const int Selection) override {return PolyHist[Selection];} TH1* GetMCHist(const int Selection) override {return PolyHist[Selection];} TH1* GetW2Hist(const int Selection) override {return PolyHist[Selection];} - TH1* GetPDFMode(const int Selection, const int Mode) override {return PolyHist[Selection];} + + + std::string GetFlavourName(const int iSample, const int iChannel) const override { + return "null"; (void) iSample; (void) iChannel; + }; + int GetNDim(const int Sample) const override { return 2; } + + TH1 *Get1DVarHist(const int iSample, const std::string &ProjectionVar, + const std::vector &EventSelectionVec = {}, int WeightStyle = 0, + TAxis *Axis = nullptr, const std::vector &SubEventSelectionVec = {}) override {return PolyHist[iSample];} + TH2* Get2DVarHist(const int iSample, const std::string& ProjectionVarX, const std::string& ProjectionVarY, + const std::vector< KinematicCut >& EventSelectionVec = {}, + int WeightStyle = 0, TAxis* AxisX = nullptr, TAxis* AxisY = nullptr, + const std::vector< KinematicCut >& SubEventSelectionVec = {}) override {return PolyHist[iSample];} + + + TH1* Get1DVarHistByModeAndChannel(const int iSample, const std::string& ProjectionVar_Str, + int kModeToFill = -1, int kChannelToFill = -1, + int WeightStyle = 0, TAxis* Axis = nullptr) override {return PolyHist[iSample];} + TH2* Get2DVarHistByModeAndChannel(const int iSample, const std::string& ProjectionVar_StrX, + const std::string& ProjectionVar_StrY, int kModeToFill = -1, + int kChannelToFill = -1, int WeightStyle = 0, + TAxis* AxisX = nullptr, TAxis* AxisY = nullptr) override {return PolyHist[iSample];} std::vector SampleBlarbTitle; std::vector KinemBlarbTitle;