A class representing a set of BCModels. More...
#include <BCModelManager.h>
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) | |
BCDataPoint * | GetDataPoint (int index) |
BCDataSet * | GetDataSet () |
BCModel * | GetModel (int index) |
int | GetNDataPoints () |
unsigned int | GetNModels () |
Assignment operators | |
BCModelManager & | operator= (const BCModelManager &modelmanager) |
Private Member Functions | |
void | Copy (BCModelManager &modelmanager) const |
Private Attributes | |
BCDataSet * | fDataSet |
BCModelContainer * | fModelContainer |
A class representing a set of BCModels.
Definition at line 34 of file BCModelManager.h.
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 }
void BCModelManager::AddDataPoint | ( | BCDataPoint * | datapoint | ) | [inline] |
Adds a data point to the data container.
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
model | The model | |
probability | The a priori 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.
imodel1 | index of model 1 (numerator) | |
imodel2 | index of model 2 (denominator) |
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.
index | The index of the data point in the data set. |
Definition at line 89 of file BCModelManager.h.
00090 { return fDataSet -> GetDataPoint(index); };
BCDataSet* BCModelManager::GetDataSet | ( | ) | [inline] |
Returns the common 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.
index | The index of the model in the BCModelManager. |
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.
Definition at line 82 of file BCModelManager.h.
00083 { return (fDataSet) ? fDataSet -> GetNDataPoints() : 0; };
unsigned int BCModelManager::GetNModels | ( | ) | [inline] |
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
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.
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.
filename | The filename of the ROOT file | |
treename | The name of the ROOT tree | |
branchnames | A vector of the names of the branches |
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.
filename | The filename of the ROOT file | |
nbranches | The number of variables |
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.
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.
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.
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.
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 | ) |
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.
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 | ) |
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 | ) |
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 | ) |
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 | ) |
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 | ) |
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.
dataset | A data set. | |
index | The index of the data point in the data set specified. |
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.
datapoint | A data point |
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 }
BCDataSet* BCModelManager::fDataSet [private] |
The data set common to all models.
Definition at line 334 of file BCModelManager.h.
BCModelContainer* BCModelManager::fModelContainer [private] |
The BCModelContainer containing all BCModels.
Definition at line 330 of file BCModelManager.h.