AmpGen 2.1
Loading...
Searching...
No Matches
MinuitParameterSet.h
Go to the documentation of this file.
1#ifndef AMPGEN_MINUITPARAMETERSET_H
2#define AMPGEN_MINUITPARAMETERSET_H
3
4#include <iostream>
5#include <map>
6#include <vector>
7
9
10namespace AmpGen {
11 class MinuitExpression;
12
14 public:
15 typedef std::vector<MinuitParameter *>::iterator iterator;
16 typedef std::vector<MinuitParameter *>::const_iterator const_iterator;
17
19 explicit MinuitParameterSet(const std::vector<MinuitParameter *> &params);
20 MinuitParameterSet(const MinuitParameterSet &other) = delete;
23
24 bool add(MinuitParameter *parPtr);
25 MinuitParameter *add(const std::string &name, const Flag &flag, const double &mean, const double &sigma, const double &min = 0, const double &max = 0);
27 MinuitProxy addOrGet(const std::string &name, const Flag &flag, const double &mean, const double &sigma, const double &min = 0, const double &max = 0);
29 void loadFromFile(const std::string &name);
30 void set(const double *x, const std::vector<unsigned> &mapping, const double *errX = 0);
32 void print(std::ostream &os = std::cout) const;
33 void printVariable(std::ostream &os = std::cout) const;
34 void set(const MinuitParameterSet &mps);
35 bool rename(const std::string &name, const std::string &new_name);
36 unsigned int size() const;
37
44
45 MinuitProxy at(const std::string &key);
46 MinuitProxy at(const size_t &index) const;
47 MinuitProxy operator[](const std::string &key);
48 MinuitProxy operator[](const std::string &key) const;
49 MinuitProxy operator[](const size_t &key);
50 MinuitProxy find(const std::string &key) const;
51 bool contains(const std::string &key) const;
52 double operator()(const std::string &name);
53
54 void setFromMinuit(const double *x);
55 void setMapping(const std::vector<unsigned> &m);
56 void setFromMinuitIndex(const unsigned index, double v);
57 double getFromMinuitIndex(const unsigned index);
58
59 private:
60 void tryParameter(const std::vector<std::string> &line);
61 void tryAlias(const std::vector<std::string> &line);
62 bool addToEnd(MinuitParameter *parPtr);
63
64 std::vector<MinuitParameter *> m_parameters;
65 std::vector<unsigned> m_mapping;
66 std::map<std::string, MinuitParameter *> m_keyAccess;
67 };
68} // namespace AmpGen
69#endif
70//
void print(std::ostream &os=std::cout) const
void setFromMinuit(const double *x)
void setMapping(const std::vector< unsigned > &m)
std::vector< MinuitParameter * >::iterator iterator
void printVariable(std::ostream &os=std::cout) const
bool unregister(MinuitParameter *patPtr)
void set(const MinuitParameterSet &mps)
bool add(MinuitParameter *parPtr)
void setFromMinuitIndex(const unsigned index, double v)
MinuitProxy operator[](const std::string &key)
MinuitProxy operator[](const std::string &key) const
MinuitProxy at(const size_t &index) const
MinuitParameter * add(const std::string &name, const Flag &flag, const double &mean, const double &sigma, const double &min=0, const double &max=0)
MinuitProxy find(const std::string &key) const
MinuitProxy operator[](const size_t &key)
bool rename(const std::string &name, const std::string &new_name)
const_iterator cend() const
const_iterator cbegin() const
MinuitParameterSet(const MinuitParameterSet &other)=delete
std::vector< MinuitParameter * >::const_iterator const_iterator
MinuitProxy addOrGet(const std::string &name, const Flag &flag, const double &mean, const double &sigma, const double &min=0, const double &max=0)
MinuitProxy at(const std::string &key)
double operator()(const std::string &name)
const_iterator begin() const
void loadFromFile(const std::string &name)
unsigned int size() const
void set(const double *x, const std::vector< unsigned > &mapping, const double *errX=0)
bool contains(const std::string &key) const
const_iterator end() const
MinuitParameterSet * clone() const
MinuitParameterSet(const std::vector< MinuitParameter * > &params)
double getFromMinuitIndex(const unsigned index)