This is an example of how to perform a Bayesian Markov Chain Monte Carlo analysis with HEPfit and BAT.
#include <iostream>
#include <HEPfit.h>
#ifdef _MPI
#include <mpi.h>
#endif
int main(
int argc,
char** argv)
{
#ifdef _MPI
MPI_Init(&argc, &argv);
int rank;
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
#else
int rank = 0;
#endif
try {
if(argc < 3){
if (rank == 0) std::cout << "\nusage: " << argv[0] << " ModelConf.conf nEvents [OutputFolder]\n" << std::endl;
return EXIT_SUCCESS;
}
std::string ModelConf = argv[1];
int nIterations = atoi(argv[2]);
std::string outputFolder = "";
if(argc == 4) outputFolder = argv[3];
int seed = 1;
bool weight = true;
std::string JobTag = "";
GenerateEvent GE(ModelF, ThObsF, ModelConf, outputFolder, JobTag);
#ifdef _MPI
MPI_Finalize();
#endif
return EXIT_SUCCESS;
} catch (const std::runtime_error& e) {
std::cerr << e.what() << std::endl;
return EXIT_FAILURE;
}
}