From c0a70ef7f52697e604202267e6e63de37942adef Mon Sep 17 00:00:00 2001 From: Kamil Skwarczynski Date: Wed, 12 Feb 2025 09:49:00 +0000 Subject: [PATCH 1/2] Expand tutorial --- CIValidations/pValueValidations.cpp | 3 +-- README.md | 10 +++++++--- samplePDF/samplePDFTutorial.cpp | 16 +++++++++------- samplePDF/samplePDFTutorial.h | 4 ++-- 4 files changed, 19 insertions(+), 14 deletions(-) diff --git a/CIValidations/pValueValidations.cpp b/CIValidations/pValueValidations.cpp index f40cdba6..2ba0f06b 100755 --- a/CIValidations/pValueValidations.cpp +++ b/CIValidations/pValueValidations.cpp @@ -3,12 +3,11 @@ #include "samplePDF/samplePDFTutorial.h" #include "mcmc/SampleSummary.h" -class samplePDFpValue : virtual public samplePDFTutorial +class samplePDFpValue : public samplePDFTutorial { public: samplePDFpValue(std::string mc_version, covarianceXsec* xsec_cov, covarianceOsc* osc_cov) : samplePDFTutorial(mc_version, xsec_cov, osc_cov), - samplePDFFDBase(mc_version, xsec_cov, osc_cov), SampleBlarbTitle({ "FGD1_numuCC_0pi_0_protons_no_photon", "FGD1_numuCC_0pi_N_protons_no_photon", diff --git a/README.md b/README.md index 69cc356b..2ced0f9f 100644 --- a/README.md +++ b/README.md @@ -53,14 +53,18 @@ To run MCMC simply ./bin/MCMCTutorial TutorialConfigs/FitterConfig.yaml ``` Congratulations! 🎉 -You have just completed finished you first MCMC chain. +You have just completed finished you first MCMC chain. You can view `Test.root` for example in TBrowser like in plot below. + + +Single entry in tree represent single MCMC step. Other then debug purposes it is highly recommended to use MaCh3 processing tools. ### MCMC Chain Being able to visualise and analyse output of MCMC is standard procedure after chain has finished, you can produce simple plots with ```bash ./bin/ProcessMCMC bin/TutorialDiagConfig.yaml Test.root ``` -where **Test.root** is the output of running MCMCTutorial as described [here](#how-to-run-mcmc) +where **Test.root** is the output of running MCMCTutorial as described [here](#how-to-run-mcmc). +You can find results in **Test_drawCorr.pdf** One of plots you will encounter is: Posterior example @@ -76,7 +80,7 @@ It is good homework to increase number of steps and see how much more smooth pos **Warning**: If you modified files in main folder not build you will have to call make install! -Alternatively you can achieve samy way of modifying configs by using command line +Alternatively you can achieve same way of modifying configs by using command line ```bash ./bin/MCMCTutorial TutorialConfigs/FitterConfig.yaml General:MCMC:NSteps:100000 ``` diff --git a/samplePDF/samplePDFTutorial.cpp b/samplePDF/samplePDFTutorial.cpp index d58bfac6..0a26f390 100755 --- a/samplePDF/samplePDFTutorial.cpp +++ b/samplePDF/samplePDFTutorial.cpp @@ -1,13 +1,12 @@ -#include "samplePDF/samplePDFTutorial.h" -#include -#include +#include "splines/splineFDBase.h" #include "StructsTutorial.h" #include "splines/BinnedSplinesTutorial.h" +#include "samplePDF/samplePDFTutorial.h" +#include "splines/splineFDBase.h" // ************************************************ samplePDFTutorial::samplePDFTutorial(std::string mc_version_, covarianceXsec* xsec_cov_, covarianceOsc* osc_cov_) : samplePDFFDBase(mc_version_, xsec_cov_, osc_cov_) { // ************************************************ - KinematicParameters = &KinematicParametersTutorial; ReversedKinematicParameters = &ReversedKinematicParametersTutorial; @@ -15,7 +14,10 @@ samplePDFTutorial::samplePDFTutorial(std::string mc_version_, covarianceXsec* xs Initialise(); } +// ************************************************ samplePDFTutorial::~samplePDFTutorial() { +// ************************************************ + } // ************************************************ @@ -36,15 +38,13 @@ void samplePDFTutorial::Init() { void samplePDFTutorial::SetupSplines() { // ************************************************ SplineHandler = nullptr; - + if(XsecCov->GetNumParamsFromDetID(SampleDetID, SystType::kSpline) > 0){ SplineHandler = std::unique_ptr(new BinnedSplineTutorial(XsecCov)); InitialiseSplineObject(); } else { MACH3LOG_WARN("Not using splines"); } - - return; } // ************************************************ void samplePDFTutorial::SetupWeightPointers() { @@ -59,7 +59,9 @@ void samplePDFTutorial::SetupWeightPointers() { } } +// ************************************************ int samplePDFTutorial::setupExperimentMC(int iSample) { +// ************************************************ tutorial_base *tutobj = &(TutorialSamples[iSample]); int nutype = sample_nupdgunosc[iSample]; diff --git a/samplePDF/samplePDFTutorial.h b/samplePDF/samplePDFTutorial.h index fb54e5d0..e85e7a10 100755 --- a/samplePDF/samplePDFTutorial.h +++ b/samplePDF/samplePDFTutorial.h @@ -4,11 +4,11 @@ #include "samplePDF/samplePDFFDBase.h" #include "samplePDF/StructsTutorial.h" -class samplePDFTutorial : virtual public samplePDFFDBase +class samplePDFTutorial : public samplePDFFDBase { public: samplePDFTutorial(std::string mc_version, covarianceXsec* xsec_cov, covarianceOsc* osc_cov = nullptr); - ~samplePDFTutorial(); + virtual ~samplePDFTutorial(); enum KinematicTypes {kTrueNeutrinoEnergy, kTrueQ2}; std::vector ReturnKinematicParameterBinning(std::string KinematicParameter) override; From 1bb237df55ec7f3c69321e97d6caea77eba47a22 Mon Sep 17 00:00:00 2001 From: Kamil <45295406+KSkwarczynski@users.noreply.github.com> Date: Wed, 12 Feb 2025 09:50:09 +0000 Subject: [PATCH 2/2] Add TBrowser plot --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2ced0f9f..91bc8c7e 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,7 @@ To run MCMC simply Congratulations! 🎉 You have just completed finished you first MCMC chain. You can view `Test.root` for example in TBrowser like in plot below. +Posterior example Single entry in tree represent single MCMC step. Other then debug purposes it is highly recommended to use MaCh3 processing tools.