BCIntegrate.h
159 NOptMethods
171 NIntMethods
182 NMargMethods
191 NSAMethods
202 NCubaMethods
216 typedef double (BCIntegrate::*tEvaluator)(std::vector<double>&, const std::vector<double>&, bool&);
358 TH1* GetSlice(std::vector<unsigned> indices, unsigned& nIterations, double& log_max_val, const std::vector<double> parameters = std::vector<double>(0), int nbins = 0, bool normalize = true);
369 TH1* GetSlice(const std::string& name, unsigned& nIterations, double& log_max_val, const std::vector<double> parameters = std::vector<double>(0), int nbins = 0, bool normalize = true)
370 { return GetSlice(fParameters.Index(name), nIterations, log_max_val, parameters, nbins, normalize); }
381 TH1* GetSlice(unsigned index, unsigned& nIterations, double& log_max_val, const std::vector<double> parameters = std::vector<double>(0), int nbins = 0, bool normalize = true)
382 { return GetSlice(std::vector<unsigned>(1, index), nIterations, log_max_val, parameters, nbins, normalize); }
394 TH2* GetSlice(const std::string& name1, const std::string& name2, unsigned& nIterations, double& log_max_val, const std::vector<double> parameters = std::vector<double>(0), int nbins = 0, bool normalize = true)
395 { return GetSlice(fParameters.Index(name1), fParameters.Index(name2), nIterations, log_max_val, parameters, nbins, normalize); }
407 TH2* GetSlice(unsigned index1, unsigned index2, unsigned& nIterations, double& log_max_val, const std::vector<double> parameters = std::vector<double>(0), int nbins = 0, bool normalize = true);
582 double Integrate(BCIntegrationMethod type, tRandomizer randomizer, tEvaluator evaluator, tIntegralUpdater updater, std::vector<double>& sums);
586 double EvaluatorMC(std::vector<double>& sums, const std::vector<double>& point, bool& accepted);
590 static void IntegralUpdaterMC(const std::vector<double>& sums, const int& nIterations, double& integral, double& absprecision);
638 std::vector<double> FindMode(BCIntegrate::BCOptimizationMethod optmethod, std::vector<double> start = std::vector<double>());
698 virtual std::vector<double> GetProposalPointSACustom(const std::vector<double>& x, int t) const;
795 void SetBestFitParameters(const std::vector<double>& x, const double& new_value, double& old_value);
870 void LogOutputAtIntegrationStatusUpdate(BCIntegrationMethod type, double integral, double absprecision, int nIterations);
874 void LogOutputAtEndOfIntegration(double integral, double absprecision, double relprecision, int nIterations);
895 std::vector<double> FindModeMinuit(std::vector<double>& mode, std::vector<double>& errors, std::vector<double> start = std::vector<double>(0), int printlevel = -1);
916 std::vector<double> FindModeSA(std::vector<double>& mode, std::vector<double>& errors, std::vector<double> start = std::vector<double>(0));
937 static int CubaIntegrand(const int* ndim, const double xx[], const int* ncomp, double ff[], void* userdata);
BCIntegrate::BCMarginalizationMethod GetMarginalizationMethod() const
Definition: BCIntegrate.h:274
std::string DumpCubaIntegrationMethod() const
Return string with the name for the currently set Cuba integration type.
Definition: BCIntegrate.h:783
BCCubaMethod GetCubaIntegrationMethod() const
Definition: BCIntegrate.h:326
virtual double LogEval(const std::vector< double > &x)
Evaluate the natural logarithm of the Eval function.
Definition: BCIntegrate.h:555
bool fFlagIgnorePrevOptimization
Flag for ignoring older results of optimization.
Definition: BCIntegrate.h:838
void SetMarginalizationMethod(BCIntegrate::BCMarginalizationMethod method)
Definition: BCIntegrate.h:465
Base struct to hold options shared by all CUBA algorithms.
Definition: BCIntegrate.h:51
Wrapper to approximate RAII for TMinuitMinimizer that is not copyable.
Definition: BCIntegrate.h:126
void SetNIterationsPrecisionCheck(int niterations)
Definition: BCIntegrate.h:485
std::string DumpCurrentOptimizationMethod() const
Return string with the name for the currently set optimization type.
Definition: BCIntegrate.h:765
void SetCubaOptions(const BCCubaOptions::Vegas &options)
Set options for CUBA's Vegas.
Definition: BCIntegrate.h:506
std::string DumpUsedOptimizationMethod() const
Return string with the name for the optimization type used to find the current mode.
Definition: BCIntegrate.h:771
BCIntegrate::BCIntegrationMethod GetIntegrationMethod() const
Definition: BCIntegrate.h:269
virtual void MarginalizePreprocess()
Method executed for before marginalization.
Definition: BCIntegrate.h:610
virtual void MarginalizePostprocess()
Method executed after marginalization.
Definition: BCIntegrate.h:616
double fSALogProb
Log probability of current simulated annealing iteration.
Definition: BCIntegrate.h:858
void SetCubaOptions(const BCCubaOptions::Divonne &options)
Set options for CUBA's Divonne.
Definition: BCIntegrate.h:518
std::string DumpUsedMarginalizationMethod() const
Return string with the name for the marginalization type used.
Definition: BCIntegrate.h:753
Adapter to call Minuit on a user-defined function.
Definition: BCIntegrate.h:108
std::vector< double > fSAx
Current simulated annealing parameter point.
Definition: BCIntegrate.h:862
void SetSAT0(double T0)
Set starting temperature for Simulated Annealing.
Definition: BCIntegrate.h:530
void SetCubaOptions(const BCCubaOptions::Cuhre &options)
Set options for CUBA's Cuhre.
Definition: BCIntegrate.h:524
void SetCubaOptions(const BCCubaOptions::Suave &options)
Set options for CUBA's Suave.
Definition: BCIntegrate.h:512
int GetNIterationsPrecisionCheck() const
Definition: BCIntegrate.h:306
const BCCubaOptions::Divonne & GetCubaDivonneOptions() const
Definition: BCIntegrate.h:341
void SetFlagIgnorePrevOptimization(bool flag)
Definition: BCIntegrate.h:451
void SetAbsolutePrecision(double absprecision)
Set absolute precision of the numerical integation.
Definition: BCIntegrate.h:496
std::string DumpUsedIntegrationMethod() const
Return string with the name for the previously used integration type.
Definition: BCIntegrate.h:735
void SetSASchedule(BCIntegrate::BCSASchedule schedule)
Definition: BCIntegrate.h:470
std::string DumpCurrentIntegrationMethod() const
Return string with the name for the currently set integration type.
Definition: BCIntegrate.h:729
BCIntegrate::BCOptimizationMethod GetOptimizationMethod() const
Definition: BCIntegrate.h:264
const BCCubaOptions::Suave & GetCubaSuaveOptions() const
Definition: BCIntegrate.h:336
double fSATemperature
Current temperature of simulated annealing algorithm.
Definition: BCIntegrate.h:854
Definition: BCIntegrate.h:42
void SetRelativePrecision(double relprecision)
Definition: BCIntegrate.h:491
Definition: BCIntegrate.cxx:52
TH1 * GetSlice(unsigned index, unsigned &nIterations, double &log_max_val, const std::vector< double > parameters=std::vector< double >(0), int nbins=0, bool normalize=true)
Returns a one-dimensional slice of the pdf at the point and along a specific direction.
Definition: BCIntegrate.h:381
TH2 * GetSlice(const std::string &name1, const std::string &name2, unsigned &nIterations, double &log_max_val, const std::vector< double > parameters=std::vector< double >(0), int nbins=0, bool normalize=true)
Returns a two-dimensional slice of the pdf at the point and along two specified directions.
Definition: BCIntegrate.h:394
std::string DumpCurrentMarginalizationMethod() const
Return string with the name for the currently set marginalization type.
Definition: BCIntegrate.h:747
const BCCubaOptions::Cuhre & GetCubaCuhreOptions() const
Definition: BCIntegrate.h:346
double GetSATmin() const
Returns the Simulated Annealing threshhold temperature.
Definition: BCIntegrate.h:428
const BCCubaOptions::Vegas & GetCubaVegasOptions() const
Definition: BCIntegrate.h:331
void SetSATmin(double Tmin)
Set threshold temperature for Simulated Annealing.
Definition: BCIntegrate.h:536
BCIntegrate::BCSASchedule GetSASchedule() const
Definition: BCIntegrate.h:279
TH1 * GetSlice(const std::string &name, unsigned &nIterations, double &log_max_val, const std::vector< double > parameters=std::vector< double >(0), int nbins=0, bool normalize=true)
Returns a one-dimensional slice of the pdf at the point and along a specific direction.
Definition: BCIntegrate.h:369
void SetOptimizationMethod(BCIntegrate::BCOptimizationMethod method)
Definition: BCIntegrate.h:456
double GetSAT0() const
Returns the Simulated Annealing starting temperature.
Definition: BCIntegrate.h:423