AmpTools
ParameterList.h
Go to the documentation of this file.
1 #if !defined(MINUITINTERFACE_PARAMETERLIST_H)
2 #define MINUITINTERFACE_PARAMETERLIST_H
3 
4 // This file is a part of MinuitInterface - a front end for the Minuit minimization
5 // package (Minuit itself was authored by Fred James, of CERN)
6 //
7 //
8 // Copyright Cornell University 1993, 1996, All Rights Reserved.
9 //
10 // This software written by Lawrence Gibbons, Cornell University.
11 //
12 // Redistribution and use in source and binary forms, with or without
13 // modification, are permitted provided that the following conditions
14 // are met:
15 // 1. Redistributions of source code must retain the above copyright
16 // notice and author attribution, this list of conditions and the
17 // following disclaimer.
18 // 2. Redistributions in binary form must reproduce the above copyright
19 // notice and author attribution, this list of conditions and the
20 // following disclaimer in the documentation and/or other materials
21 // provided with the distribution.
22 // 3. Neither the name of the University nor the names of its contributors
23 // may be used to endorse or promote products derived from this software
24 // without specific prior written permission.
25 //
26 // Creation of derivative forms of this software for commercial
27 // utilization may be subject to restriction; written permission may be
28 // obtained from Cornell University.
29 //
30 // CORNELL MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. By way
31 // of example, but not limitation, CORNELL MAKES NO REPRESENTATIONS OR
32 // WARRANTIES OF MERCANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT
33 // THE USE OF THIS SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY PATENTS,
34 // COPYRIGHTS, TRADEMARKS, OR OTHER RIGHTS. Cornell University shall not be
35 // held liable for any liability with respect to any claim by the user or any
36 // other party arising from use of the program.
37 //
38 
39 #include <vector>
40 #include <algorithm>
41 #include <functional>
42 
46 
47 class ParameterList : public std::vector<Parameter*>
48 {
49 public:
50  ParameterList() : std::vector<Parameter*>() {}
51  ParameterList( int size ) : std::vector<Parameter*>(size) {}
52  ParameterList( int size, Parameter*& param ) : std::vector<Parameter*>(size,param) {}
54 
55  typedef std::vector<Parameter*> lType;
56 
59 
60  void addParameter( Parameter& aParameter ) { push_back(&aParameter); }
61  void addParameter( Parameter* aParameter ) { push_back(aParameter); }
62 
63  void attach( MIObserver* observer) {
64  for( iterator par = begin(); par != end(); ++par ) par->attach( observer );
65  }
66  void detach( MIObserver* observer) {
67  for( iterator par = begin(); par != end(); ++par ) par->detach( observer );
68  }
69 };
70 #endif
void addParameter(Parameter &aParameter)
Definition: ParameterList.h:60
MIPointerListIterator< lType::iterator, Parameter, Parameter > iterator
Definition: ParameterList.h:57
void addParameter(Parameter *aParameter)
Definition: ParameterList.h:61
ParameterList(int size)
Definition: ParameterList.h:51
std::vector< Parameter * > lType
Definition: ParameterList.h:55
void attach(MIObserver *observer)
Definition: ParameterList.h:63
ParameterList(int size, Parameter *&param)
Definition: ParameterList.h:52
MIPointerListIterator< lType::const_iterator, const Parameter, Parameter > const_iterator
Definition: ParameterList.h:58
void detach(MIObserver *observer)
Definition: ParameterList.h:66