BCModelManager Class Reference

#include <BCModelManager.h>

Collaboration diagram for BCModelManager:

Collaboration graph
[legend]

List of all members.


Detailed Description

A class representing a set of BCModels.

Author:
Daniel Kollar

Kevin Kröninger

Version:
1.0
Date:
08.2008 This class represents a manager for BCModels. It handles common data sets and performs operations on BCModels simultaneously. Model comparsion in terms of a posteriori probabilities is only possible with this class.

Definition at line 34 of file BCModelManager.h.


Public Member Functions

Member functions (miscellaneous methods)


void AddDataPoint (BCDataPoint *datapoint)
void AddModel (BCModel *model, double probability=0.)
void CalculatePValue (bool flag_histogram=false)
void FindMode ()
void MarginalizeAll ()
void Normalize ()
void PrintModelComparisonSummary (const char *filename=0)
void PrintResults ()
void PrintSummary (const char *filename=0)
int ReadDataFromFile (const char *filename, int nvariables)
int ReadDataFromFile (const char *filename, const char *treename, const char *branchnames)
int ReadDataFromFileTree (const char *filename, const char *treename, const char *branchnames)
int ReadDataFromFileTxt (const char *filename, int nbranches)
void ResetDataSet ()
void WriteMarkovChain (bool flag)
Constructors and destructors


 BCModelManager (const BCModelManager &modelmanager)
 BCModelManager ()
virtual ~BCModelManager ()
Member functions (set)


void FixDataAxis (int index, bool fixed)
void SetDataBoundaries (int index, double lowerboundary, double upperboundary)
void SetDataPointLowerBoundaries (BCDataPoint *datasetlowerboundaries)
void SetDataPointLowerBoundary (int index, double lowerboundary)
void SetDataPointUpperBoundaries (BCDataPoint *datasetupperboundaries)
void SetDataPointUpperBoundary (int index, double upperboundary)
void SetDataSet (BCDataSet *dataset)
void SetFillErrorBand (bool flag=true)
void SetFitFunctionIndexX (int index)
void SetFitFunctionIndexY (int index)
void SetFitFunctionIndices (int indexx, int indexy)
void SetFlagPCA (bool flag)
void SetIntegrationMethod (BCIntegrate::BCIntegrationMethod method)
void SetMarginalizationMethod (BCIntegrate::BCMarginalizationMethod method)
void SetNbins (unsigned int n)
void SetNChains (unsigned int n)
void SetNiterationsPerDimension (unsigned int niterations)
void SetNSamplesPer2DBin (unsigned int n)
void SetOptimizationMethod (BCIntegrate::BCOptimizationMethod method)
void SetRelativePrecision (double relprecision)
void SetSingleDataPoint (BCDataSet *dataset, unsigned int index)
void SetSingleDataPoint (BCDataPoint *datapoint)
void UnetFillErrorBand ()
Member functions (get)


BCDataPointGetDataPoint (int index)
BCDataSetGetDataSet ()
BCModelGetModel (int index)
int GetNDataPoints ()
unsigned int GetNModels ()
Assignment operators


BCModelManageroperator= (const BCModelManager &modelmanager)

Private Member Functions

void Copy (BCModelManager &modelmanager) const

Private Attributes

BCDataSetfDataSet
BCModelContainerfModelContainer

Constructor & Destructor Documentation

BCModelManager::BCModelManager (  ) 

The default constructor.

Definition at line 25 of file BCModelManager.cxx.

00026 {
00027    fModelContainer = new BCModelContainer();
00028    fDataSet = 0;
00029 }

BCModelManager::BCModelManager ( const BCModelManager modelmanager  ) 

The default copy constructor.

Definition at line 43 of file BCModelManager.cxx.

00044 {
00045    modelmanager.Copy(*this);
00046 }

BCModelManager::~BCModelManager (  )  [virtual]

The default destructor.

Definition at line 33 of file BCModelManager.cxx.

00034 {
00035    delete fModelContainer;
00036 
00037    if (fDataSet)
00038       delete fDataSet;
00039 }


Member Function Documentation

void BCModelManager::AddDataPoint ( BCDataPoint datapoint  )  [inline]

Adds a data point to the data container.

Parameters:
datapoint The data point

Definition at line 240 of file BCModelManager.h.

00241          { fDataSet -> AddDataPoint(datapoint); };

void BCModelManager::AddModel ( BCModel model,
double  probability = 0. 
)

Adds a model to the container

Parameters:
model The model
probability The a priori probability
See also:
AddModel(BCModel * model)

SetModelPrior(BCModel * model, double probability)

Definition at line 96 of file BCModelManager.cxx.

00097 {
00098    // create index
00099    unsigned int index = fModelContainer -> size();
00100 
00101    // set index of new model
00102    model -> SetIndex(index);
00103 
00104    // set a priori probability of new model
00105    model -> SetModelAPrioriProbability(probability);
00106 
00107    // set data set
00108    model -> SetDataSet(fDataSet);
00109 
00110    // fill model into container
00111    fModelContainer -> push_back(model);
00112 }

void BCModelManager::CalculatePValue ( bool  flag_histogram = false  ) 

Definition at line 422 of file BCModelManager.cxx.

00423 {
00424    // calculate p-value for all models
00425    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00426       this -> GetModel(i) -> CalculatePValue(this -> GetModel(i) -> GetBestFitParameters(), flag_histogram);
00427 }

void BCModelManager::Copy ( BCModelManager modelmanager  )  const [private]

Definition at line 595 of file BCModelManager.cxx.

00596 {
00597    // don't copy the content only the pointers
00598    modelmanager.fModelContainer = this -> fModelContainer;
00599    modelmanager.fDataSet        = this -> fDataSet;
00600 }

void BCModelManager::FindMode (  ) 

Does the mode finding

Definition at line 395 of file BCModelManager.cxx.

00396 {
00397    // finds mode for all models registered
00398    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00399       this -> GetModel(i) -> FindMode();
00400 }

void BCModelManager::FixDataAxis ( int  index,
bool  fixed 
)

Definition at line 272 of file BCModelManager.cxx.

00273 {
00274    // fix axis for all models
00275    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00276       this -> GetModel(i) -> FixDataAxis(index, fixed);
00277 }

BCDataPoint* BCModelManager::GetDataPoint ( int  index  )  [inline]

Returns a data point of the common data set at an index.

Parameters:
index The index of the data point in the data set.
Returns:
The data point.

Definition at line 89 of file BCModelManager.h.

00090          { return fDataSet -> GetDataPoint(index); };

BCDataSet* BCModelManager::GetDataSet (  )  [inline]

Returns the common data set.

Returns:
The data set.

Definition at line 95 of file BCModelManager.h.

00096          { return fDataSet; };

BCModel* BCModelManager::GetModel ( int  index  )  [inline]

Returns the BCModel at a certain index of this BCModelManager.

Parameters:
index The index of the model in the BCModelManager.
Returns:
The BCModel at the index.

Definition at line 76 of file BCModelManager.h.

00077          { return fModelContainer -> at(index); };

int BCModelManager::GetNDataPoints (  )  [inline]

Returns the number of entries in the common data set.

Returns:
The number of entries.

Definition at line 82 of file BCModelManager.h.

00083          { return (fDataSet) ? fDataSet -> GetNDataPoints() : 0; };

unsigned int BCModelManager::GetNModels (  )  [inline]

Returns:
The number of models.

Definition at line 69 of file BCModelManager.h.

00070          { return fModelContainer -> size(); };

void BCModelManager::MarginalizeAll (  ) 

Marginalize all probabilities wrt. single parameters and all combinations of two parameters for all models.

Definition at line 404 of file BCModelManager.cxx.

00405 {
00406    // marginalizes all models registered
00407    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00408       this -> GetModel(i) -> MarginalizeAll();
00409 }

void BCModelManager::Normalize (  ) 

Calculates the normalization of the likelihood for each model in the container.

Definition at line 369 of file BCModelManager.cxx.

00370 {
00371    // initialize likelihood norm
00372    double normalization = 0.0;
00373 
00374    BCLog::Out(BCLog::summary, BCLog::summary, "Running normalization of all models.");
00375 
00376    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00377    {
00378       fModelContainer -> at(i) -> Normalize();
00379 
00380       // add to total normalization
00381       normalization += (fModelContainer -> at(i) -> GetNormalization() *
00382             fModelContainer -> at(i) -> GetModelAPrioriProbability());
00383    }
00384 
00385    // set model a posteriori probabilities
00386    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00387       fModelContainer -> at(i) -> SetModelAPosterioriProbability(
00388             (fModelContainer -> at(i) -> GetNormalization() *
00389             fModelContainer -> at(i) -> GetModelAPrioriProbability()) /
00390             normalization);
00391 }

BCModelManager & BCModelManager::operator= ( const BCModelManager modelmanager  ) 

The defaut assignment operator

Definition at line 50 of file BCModelManager.cxx.

00051 {
00052    if (this != &modelmanager)
00053       modelmanager.Copy(* this);
00054 
00055    return * this;
00056 }

void BCModelManager::PrintModelComparisonSummary ( const char *  filename = 0  ) 

Prints a summary of model comparison into a file. If filename is omitted the summary will be printed onto the screen

Parameters:
filename name of the file to write into.

Definition at line 508 of file BCModelManager.cxx.

00509 {
00510    ofstream out;
00511    std::streambuf * old_buffer = 0;
00512 
00513    if(file)
00514    {
00515       out.open(file);
00516       if (!out.is_open())
00517       {
00518          std::cerr<<"Couldn't open file "<<file<<std::endl;
00519          return;
00520       }
00521       old_buffer = std::cout.rdbuf(out.rdbuf());
00522    }
00523 
00524    // model summary
00525    int nmodels = fModelContainer -> size();
00526    std::cout
00527       <<std::endl
00528       <<"==========================================="<<std::endl
00529       <<" Model Comparison Summary"<<std::endl
00530       <<"==========================================="<<std::endl
00531       <<std::endl
00532       <<" Number of models               : "<<nmodels<<std::endl
00533       <<std::endl;
00534 
00535    // probability summary
00536    std::cout
00537       <<" - A priori probabilities:"<<std::endl
00538       <<std::endl;
00539   
00540    for (int i=0; i<nmodels; i++)
00541       std::cout
00542          <<"     p("<< fModelContainer -> at(i) -> GetName()
00543          <<") = "<< fModelContainer -> at(i) -> GetModelAPrioriProbability()
00544          <<std::endl;
00545    std::cout<<std::endl;
00546 
00547    std::cout
00548       <<" - A posteriori probabilities:"<<std::endl
00549       <<std::endl;
00550 
00551    for (int i = 0; i < nmodels; i++)
00552       std::cout
00553          <<"     p("<< fModelContainer -> at(i) -> GetName()
00554          <<"|data) = "<< fModelContainer -> at(i) -> GetModelAPosterioriProbability()
00555          <<std::endl;
00556    std::cout<<std::endl;
00557 
00558    std::cout
00559       <<" - p-values:"<<std::endl
00560       <<std::endl;
00561 
00562    for (int i = 0; i < nmodels; i++)
00563    {
00564       double p = fModelContainer -> at(i) -> GetPValue();
00565       std::cout
00566          <<"     "<< fModelContainer -> at(i) -> GetName();
00567       if(p>=0.)
00568          std::cout<<":  p-value = "<< p;
00569       else
00570          std::cout<<":  p-value not calculated";
00571       std::cout<<std::endl;
00572    }
00573    std::cout<<std::endl;
00574 
00575    std::cout
00576       <<"==========================================="<<std::endl
00577       <<std::endl;
00578 
00579    if (file)
00580       std::cout.rdbuf(old_buffer);
00581 
00582 }

void BCModelManager::PrintResults (  ) 

Definition at line 586 of file BCModelManager.cxx.

00587 {
00588    // print summary of all models
00589    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00590       this -> GetModel(i) -> PrintResults(Form("%s.txt", this -> GetModel(i) -> GetName().data()));
00591 }

void BCModelManager::PrintSummary ( const char *  filename = 0  ) 

Prints a summary into a file. If filename is omitted the summary will be printed onto the screen. This method is obsolete. Use PrintResults() instead.

Parameters:
filename name of the file to write into.

Definition at line 431 of file BCModelManager.cxx.

00432 {
00433    ofstream out;
00434    std::streambuf * old_buffer = 0;
00435 
00436    if(file)
00437    {
00438       out.open(file);
00439       if (!out.is_open())
00440       {
00441          std::cerr<<"Couldn't open file "<<file<<std::endl;
00442          return;
00443       }
00444       old_buffer = std::cout.rdbuf(out.rdbuf());
00445    }
00446 
00447    // model summary
00448    int nmodels = fModelContainer -> size();
00449    std::cout
00450       <<std::endl
00451       <<"======================================"<<std::endl
00452       <<" Summary"<<std::endl
00453       <<"======================================"<<std::endl
00454       <<std::endl
00455       <<" Number of models               : "<<nmodels<<std::endl
00456       <<std::endl
00457       <<" - Models:"<<std::endl;
00458 
00459    for (int i = 0; i < nmodels; i++)
00460       fModelContainer -> at(i) -> PrintSummary();
00461 
00462    // data summary
00463    std::cout
00464       <<" - Data:"<<std::endl
00465       <<std::endl
00466       <<"     Number of entries: "<<fDataSet -> GetNDataPoints()<<std::endl
00467       <<std::endl;
00468 
00469    std::cout
00470       <<"======================================"<<std::endl
00471       <<" Model comparison"<<std::endl
00472       <<std::endl;
00473 
00474    // probability summary
00475    std::cout
00476       <<" - A priori probabilities:"<<std::endl
00477       <<std::endl;
00478   
00479    for (int i=0; i<nmodels; i++)
00480       std::cout
00481          <<"     p("<< fModelContainer -> at(i) -> GetName()
00482          <<") = "<< fModelContainer -> at(i) -> GetModelAPrioriProbability()
00483          <<std::endl;
00484    std::cout<<std::endl;
00485 
00486    std::cout
00487       <<" - A posteriori probabilities:"<<std::endl
00488       <<std::endl;
00489 
00490    for (int i = 0; i < nmodels; i++)
00491       std::cout
00492          <<"     p("<< fModelContainer -> at(i) -> GetName()
00493          <<"|data) = "<< fModelContainer -> at(i) -> GetModelAPosterioriProbability()
00494          <<std::endl;
00495    std::cout<<std::endl;
00496 
00497    std::cout
00498       <<"======================================"<<std::endl
00499       <<std::endl;
00500 
00501    if (file)
00502       std::cout.rdbuf(old_buffer);
00503 
00504 }

int BCModelManager::ReadDataFromFile ( const char *  filename,
int  nvariables 
) [inline]

Definition at line 249 of file BCModelManager.h.

00250       { return this -> ReadDataFromFileTxt(filename, nvariables); };

int BCModelManager::ReadDataFromFile ( const char *  filename,
const char *  treename,
const char *  branchnames 
) [inline]

Reads data from a file. For a description see the following member functions.

Definition at line 246 of file BCModelManager.h.

00247       { return this ->  ReadDataFromFileTree(filename, treename, branchnames); };

int BCModelManager::ReadDataFromFileTree ( const char *  filename,
const char *  treename,
const char *  branchnames 
)

Reads tree data from a ROOT file. Opens a ROOT file and gets a ROOT tree. It creates data set containing the values read from the file.

Parameters:
filename The filename of the ROOT file
treename The name of the ROOT tree
branchnames A vector of the names of the branches
See also:
ReadDataFromFileHist(char * filename, char * histname, const char* branchnames);

ReadDataFromFileTxt(char * filename, int nbranches);

Definition at line 299 of file BCModelManager.cxx.

00300 {
00301    if (fModelContainer -> size() < 0)
00302    {
00303       BCLog::Out(BCLog::warning, BCLog::warning, "BCModelManager::ReadDataFromFileTree : No model defined.");
00304       return ERROR_NOMODELS;
00305    }
00306 
00307    // create data set
00308    if (!fDataSet)
00309       fDataSet = new BCDataSet();
00310    else
00311       fDataSet -> Reset();
00312 
00313    // read data from tree
00314    int read_file = fDataSet -> ReadDataFromFileTree(filename, treename, branchnames);
00315 
00316    if (read_file >=0)
00317    {
00318       this -> SetDataSet(fDataSet);
00319 
00320       for (unsigned int i = 0; i < this -> GetNModels(); i++)
00321          fModelContainer -> at(i) -> SetDataSet(fDataSet);
00322    }
00323    else if (read_file == ERROR_FILENOTFOUND)
00324    {
00325       delete fDataSet;
00326       return ERROR_FILENOTFOUND;
00327    }
00328 
00329    return 0;
00330 }

int BCModelManager::ReadDataFromFileTxt ( const char *  filename,
int  nbranches 
)

Reads data from a txt file. Opens a txt file and creates data set containing the values read from the file.

Parameters:
filename The filename of the ROOT file
nbranches The number of variables
See also:
ReadDataFromFileTree(char * filename, char * treename, std::vector<char*> branchnames)

ReadDataFromFileHist(char * filename, char * histname, const char * branchnames);

Definition at line 334 of file BCModelManager.cxx.

00335 {
00336    if (fModelContainer -> size() < 0)
00337    {
00338       BCLog::Out(BCLog::warning, BCLog::warning, "BCModelManager::ReadDataFromFileTree. No model defined.");
00339       return ERROR_NOMODELS;
00340    }
00341 
00342    // create data set
00343    if (!fDataSet)
00344       fDataSet = new BCDataSet();
00345    else
00346       fDataSet -> Reset();
00347 
00348    // read data from txt file
00349    int read_file = fDataSet -> ReadDataFromFileTxt(filename, nbranches);
00350 
00351    if (read_file >=0)
00352    {
00353       this -> SetDataSet(fDataSet);
00354 
00355       for (unsigned int i = 0; i < this -> GetNModels(); i++)
00356          fModelContainer -> at(i) -> SetDataSet(fDataSet);
00357    }
00358    else
00359    {
00360       delete fDataSet;
00361       return ERROR_FILENOTFOUND;
00362    }
00363 
00364    return 0;
00365 }

void BCModelManager::ResetDataSet (  )  [inline]

Resets the data set

Definition at line 293 of file BCModelManager.h.

00294          { fDataSet -> Reset(); };

void BCModelManager::SetDataBoundaries ( int  index,
double  lowerboundary,
double  upperboundary 
)

Set the lower and upper boundaries for possible data values for a particular variable

Definition at line 263 of file BCModelManager.cxx.

00264 {
00265    // set lower and upper boundary values for all models registered
00266    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00267       this -> GetModel(i) -> SetDataBoundaries(index, lowerboundary, upperboundary);
00268 }

void BCModelManager::SetDataPointLowerBoundaries ( BCDataPoint datasetlowerboundaries  ) 

Sets the data point containing the lower boundaries of possible data values

Definition at line 227 of file BCModelManager.cxx.

00228 {
00229    // set lower boundary point for all models registered
00230    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00231       this -> GetModel(i) -> SetDataPointLowerBoundaries(datasetlowerboundaries);
00232 }

void BCModelManager::SetDataPointLowerBoundary ( int  index,
double  lowerboundary 
)

Sets the lower boundary of possible data values for a particular variable

Definition at line 245 of file BCModelManager.cxx.

00246 {
00247    // set lower bounday values for all models registered
00248    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00249       this -> GetModel(i) -> SetDataPointLowerBoundary(index, lowerboundary);
00250 }

void BCModelManager::SetDataPointUpperBoundaries ( BCDataPoint datasetupperboundaries  ) 

Sets the data point containing the upper boundaries of possible data values

Definition at line 236 of file BCModelManager.cxx.

00237 {
00238    // set upper boundary point for all models registered
00239    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00240       this -> GetModel(i) -> SetDataPointUpperBoundaries(datasetupperboundaries);
00241 }

void BCModelManager::SetDataPointUpperBoundary ( int  index,
double  upperboundary 
)

Sets the upper boundary of possible data values for a particular variable

Definition at line 254 of file BCModelManager.cxx.

00255 {
00256    // set upper boundary values for all models registered
00257    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00258       this -> GetModel(i) -> SetDataPointUpperBoundary(index, upperboundary);
00259 }

void BCModelManager::SetDataSet ( BCDataSet dataset  ) 

Sets the data set common to all BCModels in this BCModelManager.

Parameters:
dataset A data set

Definition at line 60 of file BCModelManager.cxx.

00061 {
00062    // set data set
00063    fDataSet = dataset;
00064 
00065    // set data set of all models in the manager
00066    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00067       this -> GetModel(i) -> SetDataSet(fDataSet);
00068 }

void BCModelManager::SetFillErrorBand ( bool  flag = true  ) 

Turn on or off the filling of the error band during the MCMC run for all models added to the model manager before calling this method.

Parameters:
flag set to true for turning on the filling

Definition at line 192 of file BCModelManager.cxx.

00193 {
00194    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00195       this -> GetModel(i) -> SetFillErrorBand(flag);
00196 }

void BCModelManager::SetFitFunctionIndexX ( int  index  ) 

Sets index of the x values in function fits.

Parameters:
index Index of the x values

Definition at line 200 of file BCModelManager.cxx.

00201 {
00202    // set fit function x index for all models registered
00203    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00204       this -> GetModel(i) -> SetFitFunctionIndexX(index);
00205 }

void BCModelManager::SetFitFunctionIndexY ( int  index  ) 

Sets index of the y values in function fits.

Parameters:
index Index of the y values

Definition at line 209 of file BCModelManager.cxx.

00210 {
00211    // set  fit function y index for all models registered
00212    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00213       this -> GetModel(i) -> SetFitFunctionIndexY(index);
00214 }

void BCModelManager::SetFitFunctionIndices ( int  indexx,
int  indexy 
)

Definition at line 218 of file BCModelManager.cxx.

00219 {
00220    // set fit function indices for all models registered
00221    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00222       this -> GetModel(i) -> SetFitFunctionIndices(indexx, indexy);
00223 }

void BCModelManager::SetFlagPCA ( bool  flag  ) 

Definition at line 290 of file BCModelManager.cxx.

00291 {
00292    // sets the flag for PCA
00293    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00294       this -> GetModel(i) -> MCMCSetFlagPCA(flag);
00295 }

void BCModelManager::SetIntegrationMethod ( BCIntegrate::BCIntegrationMethod  method  ) 

Parameters:
method The integration method

Definition at line 128 of file BCModelManager.cxx.

00129 {
00130    // set integration method for all models registered
00131 
00132    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00133       this -> GetModel(i) -> SetIntegrationMethod(method);
00134 }

void BCModelManager::SetMarginalizationMethod ( BCIntegrate::BCMarginalizationMethod  method  ) 

Sets the maximum number of iterations for the Monte Carlo integration for all BCModels in this BCModelManager.

Parameters:
niterations 
method The marginalization method

Definition at line 138 of file BCModelManager.cxx.

00139 {
00140    // set marginalization method for all models registered
00141    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00142       this -> GetModel(i) -> SetMarginalizationMethod(method);
00143 };

void BCModelManager::SetNbins ( unsigned int  n  ) 

Parameters:
n Number of bins per dimension for the marginalized distributions. Default is 100. Minimum number allowed is 2.

Definition at line 183 of file BCModelManager.cxx.

00184 {
00185    // set number of bins for all models registered
00186    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00187       this -> GetModel(i) -> SetNbins(n);
00188 }

void BCModelManager::SetNChains ( unsigned int  n  ) 

Definition at line 281 of file BCModelManager.cxx.

00282 {
00283    // set number of Markov chains for all models registered
00284    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00285       this -> GetModel(i) -> MCMCSetNChains(n);
00286 }

void BCModelManager::SetNiterationsPerDimension ( unsigned int  niterations  ) 

Parameters:
niterations Number of iterations per dimension for Monte Carlo integration.

Definition at line 156 of file BCModelManager.cxx.

00157 {
00158    // set number of iterations per dimension for all models registered
00159    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00160       this -> GetModel(i) -> SetNiterationsPerDimension(niterations);
00161 }

void BCModelManager::SetNSamplesPer2DBin ( unsigned int  n  ) 

Parameters:
n Number of samples per 2D bin per variable in the Metropolis marginalization. Default is 100.

Definition at line 165 of file BCModelManager.cxx.

00166 {
00167    // set samples per 2d bin for all models registered
00168    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00169       this -> GetModel(i) -> SetNSamplesPer2DBin(n);
00170 }

void BCModelManager::SetOptimizationMethod ( BCIntegrate::BCOptimizationMethod  method  ) 

Parameters:
method The mode finding method

Definition at line 147 of file BCModelManager.cxx.

00148 {
00149    // set mode finding method for all models registered
00150    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00151       this -> GetModel(i) -> SetOptimizationMethod(method);
00152 }

void BCModelManager::SetRelativePrecision ( double  relprecision  ) 

Parameters:
relprecision The relative precision envisioned for Monte Carlo integration

Definition at line 174 of file BCModelManager.cxx.

00175 {
00176    // set relative precision for all models registered
00177    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00178       this -> GetModel(i) -> SetRelativePrecision(relprecision);
00179 }

void BCModelManager::SetSingleDataPoint ( BCDataSet dataset,
unsigned int  index 
)

Sets a single data point as a common data set.

Parameters:
dataset A data set.
index The index of the data point in the data set specified.
See also:
SetSingleDataPoint(BCDataPoint * datapoint)

SetDataSet(BCDataSet * dataset)

Definition at line 86 of file BCModelManager.cxx.

00087 {
00088    if (index < 0 || index > dataset -> GetNDataPoints())
00089       return;
00090 
00091    this -> SetSingleDataPoint(dataset -> GetDataPoint(index));
00092 }

void BCModelManager::SetSingleDataPoint ( BCDataPoint datapoint  ) 

Sets a single data point as a common data set.

Parameters:
datapoint A data point
See also:
SetSingleDataPoint(BCDataSet * dataset, int index)

SetDataSet(BCDataSet * dataset)

Definition at line 72 of file BCModelManager.cxx.

00073 {
00074    // create new data set consisting of a single data point
00075    BCDataSet * dataset = new BCDataSet();
00076 
00077    // add the data point
00078    dataset -> AddDataPoint(datapoint);
00079 
00080    // set this new data set
00081    this -> SetDataSet(dataset);
00082 }

void BCModelManager::UnetFillErrorBand (  )  [inline]

Turn off the filling of the error band during the MCMC run for all models added to the model manager before calling this method.

Definition at line 172 of file BCModelManager.h.

00173          { SetFillErrorBand(false); };

void BCModelManager::WriteMarkovChain ( bool  flag  ) 

Definition at line 413 of file BCModelManager.cxx.

00414 {
00415    // marginalizes all models registered
00416    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00417       this -> GetModel(i) -> WriteMarkovChain(flag);
00418 }


Member Data Documentation

The data set common to all models.

Definition at line 331 of file BCModelManager.h.

The BCModelContainer containing all BCModels.

Definition at line 327 of file BCModelManager.h.


Generated on Fri Jan 16 10:24:10 2009 for BAT - Bayesian Analysis Toolkit by  doxygen 1.5.6