#include <iostream>
#include <assert.h>
#include <time.h>
#include <chrono>
#include <random>
#include <algorithm>
#include <tclap/CmdLine.h>
#include <hydra/device/System.h>
#include <hydra/Function.h>
#include <hydra/Lambda.h>
#include <hydra/Random.h>
#include <hydra/LogLikelihoodFCN.h>
#include <hydra/Parameter.h>
#include <hydra/UserParameters.h>
#include <hydra/Pdf.h>
#include <hydra/AddPdf.h>
#include <hydra/DenseHistogram.h>
#include <hydra/functions/Gaussian.h>
#include <hydra/functions/Exponential.h>
#include <hydra/RandomFill.h>
#include "Minuit2/FunctionMinimum.h"
#include "Minuit2/MnUserParameterState.h"
#include "Minuit2/MnPrint.h"
#include "Minuit2/MnMigrad.h"
#include "Minuit2/MnMinimize.h"
Go to the source code of this file.
|
cmd | add (EArg) |
|
| catch (TCLAP::ArgException &e) |
|
| declarg (_X, double) int main(int argv |
|
TCLAP::ValueArg< size_t > | EArg ("n", "number-of-events","Number of events", true, 10e6, "size_t") |
|
Hist_Data | Fill (data_d.begin(), data_d.end()) |
|
std::cout<< std::endl<< "Generated data:"<< std::endl;for(size_t i=0;i< 10;i++) std::cout<< "["<< i<< "] :"<< data_d[i]<< std::endl;hydra::DenseHistogram< double, 1, hydra::device::sys_t > | Hist_Data (100, min, max) |
|
MnMigrad | migrad_d (fcn, fcn.GetParameters().GetMnState(), strategy) |
|
cmd | parse (argv, argc) |
|
model | SetExtended (1) |
|
MnStrategy | strategy (2) |
|
|
char ** | argc |
|
std::cout<< fcn.GetParameters().GetMnState()<< std::endl;auto start_d=std::chrono::high_resolution_clock::now();FunctionMinimum minimum_d=FunctionMinimum(migrad_d(std::numeric_limits< unsigned int >::max(), 1));auto end_d=std::chrono::high_resolution_clock::now();std::chrono::duration< double, std::milli > | elapsed_d = end_d - start_d |
|
auto | Exp_PDF |
|
auto | fcn = hydra::make_loglikehood_fcn( model, Hist_Data) |
|
auto | Gauss1_PDF |
|
auto | Gauss2_PDF |
|
double | max = 10.0 |
|
hydra::Parameter | mean1_p = hydra::Parameter::Create().Name("Mean_1").Value( 2.5) .Error(0.0001).Limits(0.0, 10.0) |
|
hydra::Parameter | mean2_p = hydra::Parameter::Create().Name("Mean_2").Value(5.0) .Error(0.0001).Limits(0.0, 10.0) |
|
double | min = 0.0 |
|
auto | model = hydra::add_pdfs( {N_Gauss_1_p, N_Gauss_2_p, N_Exp_p }, Gauss1_PDF, Gauss2_PDF, Exp_PDF) |
|
hydra::Parameter | N_Exp_p ("N_Exp", nentries, sqrt(nentries), nentries-nentries/2, nentries+nentries/2) |
|
hydra::Parameter | N_Gauss_1_p ("N_Gauss1", nentries, sqrt(nentries), nentries-nentries/2, nentries+nentries/2) |
|
hydra::Parameter | N_Gauss_2_p ("N_Gauss2", nentries, sqrt(nentries), nentries-nentries/2, nentries+nentries/2) |
|
| nentries = EArg.getValue() |
|
hydra::Parameter | sigma1_p = hydra::Parameter::Create().Name("Sigma_1").Value(0.5).Error(0.0001).Limits(0.01, 1.5) |
|
hydra::Parameter | sigma2_p = hydra::Parameter::Create().Name("Sigma_2").Value(0.5).Error(0.0001).Limits(0.01, 1.5) |
|
hydra::Parameter | tau_p = hydra::Parameter::Create().Name("Tau").Value(1.0).Error(0.0001).Limits(-2.0, 2.0) |
|
| try |
|
◆ BINNED_EXTENDED_LOGLL_FIT_INL_
#define BINNED_EXTENDED_LOGLL_FIT_INL_ |
◆ add()
◆ catch()
catch |
( |
TCLAP::ArgException & |
e | ) |
|
◆ declarg()
◆ EArg()
TCLAP::ValueArg<size_t> EArg |
( |
"n" |
, |
|
|
"number-of-events" |
, |
|
|
"Number of events" |
, |
|
|
true |
, |
|
|
10e6 |
, |
|
|
"size_t" |
|
|
) |
| |
◆ Fill()
Hist_Data Fill |
( |
data_d. |
begin(), |
|
|
data_d. |
end() |
|
) |
| |
◆ Hist_Data()
◆ migrad_d()
MnMigrad migrad_d |
( |
fcn |
, |
|
|
fcn. |
GetParameters).GetMnState(, |
|
|
strategy |
|
|
) |
| |
- Examples:
- basic_fit_range_semantics.inl, binned_extended_logLL_fit.inl, breit_wigner_plus_polynomial.inl, crystal_ball_plus_exponential.inl, dalitz_plot.C, dalitz_plot.inl, double_gaussian_plus_exponential.inl, extended_logLL_fit.inl, fit_convoluted_pdfs.inl, fit_johnson.C, fractional_logLL_fit.inl, gaussian_plus_argus.inl, multidimensional_fit.inl, and splot.inl.
◆ parse()
cmd parse |
( |
argv |
, |
|
|
argc |
|
|
) |
| |
◆ SetExtended()
◆ strategy()
MnStrategy strategy |
( |
2 |
| ) |
|
- Examples:
- basic_fit.inl, basic_fit_range_semantics.inl, binned_extended_logLL_fit.inl, breit_wigner_plus_polynomial.inl, crystal_ball_plus_exponential.inl, dalitz_plot.C, dalitz_plot.inl, double_gaussian_plus_exponential.inl, extended_logLL_fit.inl, fit_convoluted_pdfs.inl, fit_gaussian.C, fit_johnson.C, fractional_logLL_fit.inl, gaussian_plus_argus.inl, multidimensional_fit.inl, pseudo_experiment.inl, simultaneous_fit.inl, and splot.inl.
◆ argc
◆ elapsed_d
std::cout<<fcn.GetParameters().GetMnState()<<std::endl; auto start_d = std::chrono::high_resolution_clock::now(); FunctionMinimum minimum_d = FunctionMinimum(migrad_d(std::numeric_limits<unsigned int>::max(), 1)); auto end_d = std::chrono::high_resolution_clock::now(); std::chrono::duration<double, std::milli> elapsed_d = end_d - start_d |
◆ Exp_PDF
Initial value:Pdf< FUNCTOR, INTEGRATOR > make_pdf(FUNCTOR const &functor, INTEGRATOR integrator)
Build a hydra::Pdf given a shape described by a functor and a integrator (algorithm or functor)...
Definition: Pdf.h:299
https://en.wikipedia.org/wiki/Exponential_function
Definition: Exponential.h:57
double min
Definition: binned_extended_logLL_fit.inl:121
hydra::Parameter tau_p
Definition: binned_extended_logLL_fit.inl:147
Definition: AnalyticalIntegral.inl:39
double max
Definition: binned_extended_logLL_fit.inl:122
- Examples:
- binned_extended_logLL_fit.inl, and splot.inl.
◆ fcn
- Examples:
- basic_fit_range_semantics.inl, binned_extended_logLL_fit.inl, breit_wigner_plus_polynomial.inl, crystal_ball_plus_exponential.inl, dalitz_plot.C, dalitz_plot.inl, double_gaussian_plus_exponential.inl, extended_logLL_fit.inl, fit_convoluted_pdfs.inl, fit_johnson.C, fractional_logLL_fit.inl, gaussian_plus_argus.inl, multidimensional_fit.inl, pseudo_experiment.inl, and splot.inl.
◆ Gauss1_PDF
Initial value:Pdf< FUNCTOR, INTEGRATOR > make_pdf(FUNCTOR const &functor, INTEGRATOR integrator)
Build a hydra::Pdf given a shape described by a functor and a integrator (algorithm or functor)...
Definition: Pdf.h:299
double min
Definition: binned_extended_logLL_fit.inl:121
hydra::Parameter mean1_p
Definition: binned_extended_logLL_fit.inl:126
Gaussian functions are often used to represent the probability density function of a normally dist...
Definition: Gaussian.h:62
Definition: AnalyticalIntegral.inl:39
hydra::Parameter sigma1_p
Definition: binned_extended_logLL_fit.inl:127
double max
Definition: binned_extended_logLL_fit.inl:122
- Examples:
- binned_extended_logLL_fit.inl.
◆ Gauss2_PDF
Initial value:Pdf< FUNCTOR, INTEGRATOR > make_pdf(FUNCTOR const &functor, INTEGRATOR integrator)
Build a hydra::Pdf given a shape described by a functor and a integrator (algorithm or functor)...
Definition: Pdf.h:299
hydra::Parameter sigma2_p
Definition: binned_extended_logLL_fit.inl:137
double min
Definition: binned_extended_logLL_fit.inl:121
Gaussian functions are often used to represent the probability density function of a normally dist...
Definition: Gaussian.h:62
Definition: AnalyticalIntegral.inl:39
hydra::Parameter mean2_p
Definition: binned_extended_logLL_fit.inl:136
double max
Definition: binned_extended_logLL_fit.inl:122
- Examples:
- binned_extended_logLL_fit.inl.
◆ max
◆ mean1_p
◆ mean2_p
◆ min
◆ model
◆ N_Exp_p
◆ N_Gauss_1_p
◆ N_Gauss_2_p
◆ nentries
nentries = EArg.getValue() |
◆ sigma1_p
◆ sigma2_p
◆ tau_p
◆ try
Initial value:{
TCLAP::CmdLine cmd("Command line arguments for ", '=')