• Main Page
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

BCParameter.cxx

Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2008-2010, Daniel Kollar and Kevin Kroeninger.
00003  * All rights reserved.
00004  *
00005  * For the licensing terms see doc/COPYING.
00006  */
00007 
00008 // ---------------------------------------------------------
00009 
00010 #include <iostream>
00011 #include <fstream>
00012 
00013 #include "BAT/BCParameter.h"
00014 
00015 // ---------------------------------------------------------
00016 
00017 BCParameter::BCParameter()
00018 {
00019    fName       = "parameter";
00020    fLowerLimit = 0.;
00021    fUpperLimit = 1.;
00022    fNuisance   = 0;
00023 }
00024 
00025 // ---------------------------------------------------------
00026 
00027 BCParameter::BCParameter(const char * name, double lowerlimit, double upperlimit)
00028 {
00029    fName       = "parameter";
00030    fLowerLimit = 0.;
00031    fUpperLimit = 1.;
00032    fNuisance   = 0;
00033 
00034    fName       = name;
00035    fLowerLimit = lowerlimit;
00036    fUpperLimit = upperlimit;
00037 }
00038 
00039 // ---------------------------------------------------------
00040 
00041 BCParameter::BCParameter(const BCParameter & parameter)
00042 {
00043    parameter.Copy(*this);
00044 }
00045 
00046 // ---------------------------------------------------------
00047 
00048 BCParameter & BCParameter::operator = (const BCParameter & parameter)
00049 {
00050    if (this != &parameter)
00051       parameter.Copy(* this);
00052 
00053    return * this;
00054 }
00055 
00056 // ---------------------------------------------------------
00057 
00058 BCParameter::~BCParameter()
00059 {}
00060 
00061 // ---------------------------------------------------------
00062 
00063 void BCParameter::PrintSummary()
00064 {
00065    std::cout
00066       <<"       > Parameter   : "<< fName << std::endl
00067       <<"         Index       : "<< fIndex << std::endl
00068       <<"         Lower Limit : "<< fLowerLimit << std::endl
00069       <<"         Upper Limit : "<< fUpperLimit << std::endl
00070       <<"         Nuisance    : ";
00071 
00072    if(fNuisance)
00073       std::cout<<"Yes"<<std::endl;
00074    else
00075       std::cout<<"No"<<std::endl;
00076 
00077    std::cout << std::endl;
00078 }
00079 
00080 // ---------------------------------------------------------
00081 
00082 void BCParameter::Copy(BCParameter & parameter) const
00083 {
00084    parameter.fName       = this -> fName;
00085    parameter.fIndex      = this -> fIndex;
00086    parameter.fLowerLimit = this -> fLowerLimit;
00087    parameter.fUpperLimit = this -> fUpperLimit;
00088    parameter.fNuisance   = this -> fNuisance;
00089 }
00090 
00091 // ---------------------------------------------------------
00092 
00093 bool BCParameter::IsAtLimit(double value)
00094 {
00095    if (fLowerLimit == fUpperLimit)
00096       return false;
00097 
00098    if ( ( (value-fLowerLimit)*(value-fLowerLimit)/fLowerLimit/fLowerLimit <= 1e-10) ||
00099          ( (value-fUpperLimit)*(value-fUpperLimit)/fUpperLimit/fUpperLimit <= 1e-10))
00100       return true;
00101    else
00102       return false;
00103 }
00104 
00105 // ---------------------------------------------------------

Generated on Mon Aug 30 2010 22:14:54 for Bayesian Analysis Toolkit by  doxygen 1.7.1