BCModelManager Class Reference

A class representing a set of BCModels. More...

#include <BCModelManager.h>

Collaboration diagram for BCModelManager:
Collaboration graph
[legend]

List of all members.

Public Member Functions

Member functions (miscellaneous methods)



void AddDataPoint (BCDataPoint *datapoint)
void AddModel (BCModel *model, double probability=0.)
double BayesFactor (const unsigned int imodel1, const unsigned int imodel2)
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 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

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.


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 236 of file BCModelManager.h.

00237          { 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 }

double BCModelManager::BayesFactor ( const unsigned int  imodel1,
const unsigned int  imodel2 
)

Calculate Bayes factor for two models.

Parameters:
imodel1 index of model 1 (numerator)
imodel2 index of model 2 (denominator)
Returns:
Bayes factor or -1. on error

Definition at line 387 of file BCModelManager.cxx.

00388 {
00389    // Bayes Factors are the likelihoods integrated over the parameters
00390    // Is this equal to the posteriors?
00391    //    NOOOO
00392    // But it is equal to normalization factors.
00393 
00394    const double norm1 = fModelContainer -> at(imodel1) -> GetNormalization();
00395    const double norm2 = fModelContainer -> at(imodel2) -> GetNormalization();
00396 
00397    // check model 1
00398    if(norm1<0.)
00399    {
00400       BCLog::OutError(
00401          Form("Model %s (index %d) not normalized. Cannot calculate Bayes factor.",
00402             fModelContainer->at(imodel1)->GetName().data(),imodel1));
00403       return -1.;
00404    }
00405 
00406    // check model 2
00407    if(norm2<0.)
00408    {
00409       BCLog::OutError(
00410          Form("Model %s (index %d) not normalized. Cannot calculate Bayes factor.",
00411             fModelContainer->at(imodel2)->GetName().data(),imodel2));
00412       return -1.;
00413    }
00414 
00415    // denominator cannot be zero
00416    if(norm2==0. && norm1!=0.) // not good since norm2 is double !!!
00417    {
00418       BCLog::OutError(
00419          Form("Model %s (index %d) has ZERO probability. Bayes factor is infinite.",
00420             fModelContainer->at(imodel2)->GetName().data(),imodel2));
00421       return -1.;
00422    }
00423 
00424    // denominator cannot be zero unless also numerator is zero
00425    if(norm2==0. && norm1==0.) // not good since norm2 and norm1 are both double !!!
00426    {
00427       BCLog::OutWarning(
00428          Form("Models %s and %s have ZERO probability. Bayes factor is unknown. Returning 1.",
00429             fModelContainer->at(imodel2)->GetName().data(),fModelContainer->at(imodel1)->GetName().data()));
00430       return 1.;
00431    }
00432 
00433    // now calculate the factor
00434    return norm1/norm2;
00435 }

void BCModelManager::CalculatePValue ( bool  flag_histogram = false  ) 

Definition at line 466 of file BCModelManager.cxx.

00467 {
00468    // calculate p-value for all models
00469    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00470       this -> GetModel(i) -> CalculatePValue(this -> GetModel(i) -> GetBestFitParameters(), flag_histogram);
00471 }

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

Definition at line 652 of file BCModelManager.cxx.

00653 {
00654    // don't copy the content only the pointers
00655    modelmanager.fModelContainer = this -> fModelContainer;
00656    modelmanager.fDataSet        = this -> fDataSet;
00657 }

void BCModelManager::FindMode (  ) 

Does the mode finding

Definition at line 439 of file BCModelManager.cxx.

00440 {
00441    // finds mode for all models registered
00442    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00443       this -> GetModel(i) -> FindMode();
00444 }

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 448 of file BCModelManager.cxx.

00449 {
00450    // marginalizes all models registered
00451    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00452       this -> GetModel(i) -> MarginalizeAll();
00453 }

void BCModelManager::Normalize (  ) 

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

Definition at line 360 of file BCModelManager.cxx.

00361 {
00362    // initialize likelihood norm
00363    double normalization = 0.0;
00364 
00365 // BCLog::Out(BCLog::summary, BCLog::summary, "Running normalization of all models.");
00366    BCLog::OutSummary("Running normalization of all models.");
00367 
00368    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00369    {
00370       fModelContainer -> at(i) -> Normalize();
00371 
00372       // add to total normalization
00373       normalization += (fModelContainer -> at(i) -> GetNormalization() *
00374             fModelContainer -> at(i) -> GetModelAPrioriProbability());
00375    }
00376 
00377    // set model a posteriori probabilities
00378    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00379       fModelContainer -> at(i) -> SetModelAPosterioriProbability(
00380             (fModelContainer -> at(i) -> GetNormalization() *
00381             fModelContainer -> at(i) -> GetModelAPrioriProbability()) /
00382             normalization);
00383 }

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 552 of file BCModelManager.cxx.

00553 {
00554    ofstream out;
00555    std::streambuf * old_buffer = 0;
00556 
00557    if(file)
00558    {
00559       out.open(file);
00560       if (!out.is_open())
00561       {
00562          std::cerr<<"Couldn't open file "<<file<<std::endl;
00563          return;
00564       }
00565       old_buffer = std::cout.rdbuf(out.rdbuf());
00566    }
00567 
00568    // model summary
00569    int nmodels = fModelContainer -> size();
00570    std::cout
00571       <<std::endl
00572       <<"==========================================="<<std::endl
00573       <<" Model Comparison Summary"<<std::endl
00574       <<"==========================================="<<std::endl
00575       <<std::endl
00576       <<" Number of models               : "<<nmodels<<std::endl
00577       <<std::endl;
00578 
00579    // probability summary
00580    std::cout
00581       <<" - A priori probabilities:"<<std::endl
00582       <<std::endl;
00583   
00584    for (int i=0; i<nmodels; i++)
00585       std::cout
00586          <<"     p("<< fModelContainer -> at(i) -> GetName()
00587          <<") = "<< fModelContainer -> at(i) -> GetModelAPrioriProbability()
00588          <<std::endl;
00589    std::cout<<std::endl;
00590 
00591    std::cout
00592       <<" - A posteriori probabilities:"<<std::endl
00593       <<std::endl;
00594 
00595    for (int i = 0; i < nmodels; i++)
00596       std::cout
00597          <<"     p("<< fModelContainer -> at(i) -> GetName()
00598          <<" | data) = "<< fModelContainer -> at(i) -> GetModelAPosterioriProbability()
00599          <<std::endl;
00600    std::cout<<std::endl;
00601 
00602    // Bayes factors summary
00603    std::cout
00604       <<" - Bayes factors:"<<std::endl
00605       <<std::endl;
00606    for (int i = 0; i < nmodels-1; i++)
00607       for (int j = i+1; j < nmodels; j++)
00608          std::cout
00609             <<"     K = p(data | "<<fModelContainer -> at(i) -> GetName()<<") / "
00610             <<"p(data | "<<fModelContainer -> at(j) -> GetName()<<") = "
00611             <<BayesFactor(i,j)<<std::endl;
00612    std::cout<<std::endl;
00613 
00614    // p-values summary
00615    std::cout
00616       <<" - p-values:"<<std::endl
00617       <<std::endl;
00618 
00619    for (int i = 0; i < nmodels; i++)
00620    {
00621       double p = fModelContainer -> at(i) -> GetPValue();
00622       std::cout
00623          <<"     "<< fModelContainer -> at(i) -> GetName();
00624       if(p>=0.)
00625          std::cout<<":  p-value = "<< p;
00626       else
00627          std::cout<<":  p-value not calculated";
00628       std::cout<<std::endl;
00629    }
00630    std::cout<<std::endl;
00631 
00632    std::cout
00633       <<"==========================================="<<std::endl
00634       <<std::endl;
00635 
00636    if (file)
00637       std::cout.rdbuf(old_buffer);
00638 
00639 }

void BCModelManager::PrintResults (  ) 

Definition at line 643 of file BCModelManager.cxx.

00644 {
00645    // print summary of all models
00646    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00647       this -> GetModel(i) -> PrintResults(Form("%s.txt", this -> GetModel(i) -> GetName().data()));
00648 }

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 475 of file BCModelManager.cxx.

00476 {
00477    ofstream out;
00478    std::streambuf * old_buffer = 0;
00479 
00480    if(file)
00481    {
00482       out.open(file);
00483       if (!out.is_open())
00484       {
00485          std::cerr<<"Couldn't open file "<<file<<std::endl;
00486          return;
00487       }
00488       old_buffer = std::cout.rdbuf(out.rdbuf());
00489    }
00490 
00491    // model summary
00492    int nmodels = fModelContainer -> size();
00493    std::cout
00494       <<std::endl
00495       <<"======================================"<<std::endl
00496       <<" Summary"<<std::endl
00497       <<"======================================"<<std::endl
00498       <<std::endl
00499       <<" Number of models               : "<<nmodels<<std::endl
00500       <<std::endl
00501       <<" - Models:"<<std::endl;
00502 
00503    for (int i = 0; i < nmodels; i++)
00504       fModelContainer -> at(i) -> PrintSummary();
00505 
00506    // data summary
00507    std::cout
00508       <<" - Data:"<<std::endl
00509       <<std::endl
00510       <<"     Number of entries: "<<fDataSet -> GetNDataPoints()<<std::endl
00511       <<std::endl;
00512 
00513    std::cout
00514       <<"======================================"<<std::endl
00515       <<" Model comparison"<<std::endl
00516       <<std::endl;
00517 
00518    // probability summary
00519    std::cout
00520       <<" - A priori probabilities:"<<std::endl
00521       <<std::endl;
00522   
00523    for (int i=0; i<nmodels; i++)
00524       std::cout
00525          <<"     p("<< fModelContainer -> at(i) -> GetName()
00526          <<") = "<< fModelContainer -> at(i) -> GetModelAPrioriProbability()
00527          <<std::endl;
00528    std::cout<<std::endl;
00529 
00530    std::cout
00531       <<" - A posteriori probabilities:"<<std::endl
00532       <<std::endl;
00533 
00534    for (int i = 0; i < nmodels; i++)
00535       std::cout
00536          <<"     p("<< fModelContainer -> at(i) -> GetName()
00537          <<" | data) = "<< fModelContainer -> at(i) -> GetModelAPosterioriProbability()
00538          <<std::endl;
00539    std::cout<<std::endl;
00540 
00541    std::cout
00542       <<"======================================"<<std::endl
00543       <<std::endl;
00544 
00545    if (file)
00546       std::cout.rdbuf(old_buffer);
00547 
00548 }

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

Definition at line 245 of file BCModelManager.h.

00246       { 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 242 of file BCModelManager.h.

00243       { 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 290 of file BCModelManager.cxx.

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

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 325 of file BCModelManager.cxx.

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

void BCModelManager::ResetDataSet (  )  [inline]

Resets the data set

Definition at line 296 of file BCModelManager.h.

00297          { 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::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) -> BCIntegrate::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 457 of file BCModelManager.cxx.

00458 {
00459    // marginalizes all models registered
00460    for (unsigned int i = 0; i < this -> GetNModels(); i++)
00461       this -> GetModel(i) -> WriteMarkovChain(flag);
00462 }


Member Data Documentation

The data set common to all models.

Definition at line 334 of file BCModelManager.h.

The BCModelContainer containing all BCModels.

Definition at line 330 of file BCModelManager.h.


The documentation for this class was generated from the following files:

Generated on Tue Oct 6 09:48:22 2009 for Bayesian Analysis Toolkit by  doxygen 1.6.1