MaCh3  2.6.1
Reference Guide
ProcessMCMCModule.hpp
Go to the documentation of this file.
1 
4 //MaCh3 includes
5 #pragma once
6 // yaml Includes
7 #include "yaml-cpp/yaml.h"
9 #include "CLI/API/plugin.hpp"
10 
11 namespace M3{
12 
18 
30 
31  public:
33  virtual ~ProcessMCMCModule();
34 
37  MaCh3ArgumentParser* get_parser() override;
38 
41  int Run() override;
42 
43 
44  private:
48  std::map<std::string, std::pair<double, double>> GetCustomBinning(const YAML::Node& Settings);
49 
52  void ProcessMCMC(const std::string& inputFile);
53 
55  void MultipleProcessMCMC();
56 
59  void CalcBayesFactor(MCMCProcessor* Processor);
60 
63  void CalcSavageDickey(MCMCProcessor* Processor);
64 
67  void CalcParameterEvolution(MCMCProcessor* Processor);
68 
71  void CalcBipolarPlot(MCMCProcessor* Processor);
72 
75  void GetTrianglePlot(MCMCProcessor* Processor);
76 
80  void DiagnoseCovarianceMatrix(MCMCProcessor* Processor, const std::string& inputFile);
81 
86  TH2D* TMatrixIntoTH2D(TMatrixDSym* Matrix, const std::string& title);
87 
92  void KolmogorovSmirnovTest(const std::vector<std::unique_ptr<MCMCProcessor>>& Processor,
93  const std::unique_ptr<TCanvas>& Posterior,
94  const TString& canvasname);
95 
96  int nFiles;
97  std::vector <std::string> FileNames;
98  std::vector <std::string> TitleNames;
99  std::string config;
100  };
101 }
Extended ArgumentParser with MaCh3-specific functionality.
Definition: m3argparse.hpp:17
Module for processing MCMC chains and producing various diagnostic plots.
virtual ~ProcessMCMCModule()
Destructor.
void CalcBipolarPlot(MCMCProcessor *Processor)
Create bipolar plots for parameter visualization.
std::vector< std::string > FileNames
List of MCMC chain file paths.
std::map< std::string, std::pair< double, double > > GetCustomBinning(const YAML::Node &Settings)
Parse custom binning edges from YAML configuration.
void CalcSavageDickey(MCMCProcessor *Processor)
Calculate Savage-Dickey ratios for Bayes factor estimation.
void CalcParameterEvolution(MCMCProcessor *Processor)
Calculate parameter evolution over MCMC steps.
void CalcBayesFactor(MCMCProcessor *Processor)
Calculate Bayes factors for hypothesis testing.
std::string config
Path to the configuration file.
void GetTrianglePlot(MCMCProcessor *Processor)
Generate triangle plots showing parameter correlations.
void DiagnoseCovarianceMatrix(MCMCProcessor *Processor, const std::string &inputFile)
Diagnose covariance matrix stability across burn-in cuts.
MaCh3ArgumentParser * get_parser() override
Get the argument parser for this module.
std::vector< std::string > TitleNames
List of titles for each chain.
TH2D * TMatrixIntoTH2D(TMatrixDSym *Matrix, const std::string &title)
Convert TMatrixDSym to TH2D histogram for plotting.
void ProcessMCMC(const std::string &inputFile)
Process a single MCMC chain.
void KolmogorovSmirnovTest(const std::vector< std::unique_ptr< MCMCProcessor >> &Processor, const std::unique_ptr< TCanvas > &Posterior, const TString &canvasname)
Perform Kolmogorov-Smirnov test between posterior distributions.
int Run() override
Execute the MCMC processing.
int nFiles
Number of MCMC files being processed.
void MultipleProcessMCMC()
Compare and process multiple MCMC chains.
Class responsible for processing MCMC chains, performing diagnostics, generating plots,...
Definition: MCMCProcessor.h:61
Main namespace for MaCh3 software.
Plugin interface and registration macros for MaCh3.