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{
12 class MinuitExpression;
13
15 {
16 public:
17 typedef std::vector<MinuitParameter*>::iterator iterator;
18 typedef std::vector<MinuitParameter*>::const_iterator const_iterator;
19
21 explicit MinuitParameterSet(const std::vector<MinuitParameter*>& params );
22
23 MinuitParameterSet( const MinuitParameterSet& other ) = delete;
24 ~MinuitParameterSet(); // = default;
25
26 bool add( MinuitParameter* parPtr );
27 MinuitParameter* add(const std::string& name, const Flag& flag, const double& mean, const double& sigma, const double& min = 0, const double& max = 0 );
28 bool unregister( MinuitParameter* patPtr );
29 MinuitParameter* addOrGet(const std::string& name, const Flag& flag, const double& mean,
30 const double& sigma, const double& min = 0, const double& max = 0 );
32 void loadFromFile( const std::string& name );
34 void print( std::ostream& os = std::cout ) const;
35 void printVariable( std::ostream& os = std::cout ) const;
36 void set( const MinuitParameterSet& mps );
37 bool rename(const std::string& name, const std::string& new_name);
38 unsigned int size() const;
39
46
47 MinuitParameter* at( const std::string& key );
48 MinuitParameter* at( const size_t& index ) const;
49 MinuitParameter* operator[]( const std::string& key );
50 MinuitParameter* operator[]( const std::string& key ) const;
51 MinuitParameter* operator[]( const size_t& key );
52 MinuitParameter* find( const std::string& key ) const;
53 double operator()( const std::string& name );
54
55 void setFromMinuit( const double* x );
56 void setMapping( const std::vector<unsigned>& m );
57 void setFromMinuitIndex(const unsigned index, double v);
58 double getFromMinuitIndex(const unsigned index);
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)
MinuitParameter * operator[](const std::string &key) const
std::vector< MinuitParameter * >::iterator iterator
void printVariable(std::ostream &os=std::cout) const
bool unregister(MinuitParameter *patPtr)
void set(const MinuitParameterSet &mps)
MinuitParameter * operator[](const std::string &key)
MinuitParameter * addOrGet(const std::string &name, const Flag &flag, const double &mean, const double &sigma, const double &min=0, const double &max=0)
bool add(MinuitParameter *parPtr)
void setFromMinuitIndex(const unsigned index, double v)
MinuitParameter * add(const std::string &name, const Flag &flag, const double &mean, const double &sigma, const double &min=0, const double &max=0)
MinuitParameter * at(const size_t &index) const
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
MinuitParameter * operator[](const size_t &key)
MinuitParameter * at(const std::string &key)
double operator()(const std::string &name)
const_iterator begin() const
void loadFromFile(const std::string &name)
MinuitParameter * find(const std::string &key) const
unsigned int size() const
const_iterator end() const
MinuitParameterSet(const std::vector< MinuitParameter * > &params)
double getFromMinuitIndex(const unsigned index)