openModeller  Version 1.5.0
AverageModel.cpp
Go to the documentation of this file.
1 
2 #include <models/AverageModel.hh>
3 #include <Model.hh>
4 
5 #include <vector>
6 using std::vector;
7 
9  ModelImpl(),
10  _models(),
11  _size( Scalar(0.0) )
12 { }
13 
15 { }
16 
17 void
19 {
20  if ( _models.size() > 0 ) {
21  _models[0]->setNormalization( samp );
22  }
23 }
24 
25 void
27 {
28  if ( _models.size() > 0 ) {
29  _models[0]->setNormalization( env );
30  }
31 }
32 
33 Scalar
35 {
36  if ( _size == Scalar(0.0) )
37  return Scalar(0.0);
38 
39  Scalar total = 0.0;
40 
41  vector<Model>::const_iterator amodel;
42 
43  for ( amodel = _models.begin();
44  amodel != _models.end();
45  ++amodel ) {
46  total += (*amodel)->getValue( x );
47  }
48 
49  return total / _size;
50 
51 }
52 
53 void
55 {
56  _models.push_back( model );
57  _size += Scalar( 1.0 );
58 }
virtual ~AverageModelImpl()
double Scalar
Type of map values.
Definition: om_defs.hh:39
virtual Scalar getValue(const Sample &x) const
std::vector< Model > _models
Definition: AverageModel.hh:38
virtual void addModel(Model model)
virtual void setNormalization(const SamplerPtr &samp) const
Definition: Sample.hh:25