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

BCParameter.cxx

Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2008-2012, 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 <TROOT.h>
00014 
00015 #include "BCLog.h"
00016 #include "BCParameter.h"
00017 
00018 // ---------------------------------------------------------
00019 
00020 BCParameter::BCParameter()
00021 {
00022    fName       = "parameter";
00023    fLowerLimit = 0.;
00024    fUpperLimit = 1.;
00025    fNuisance   = 0;
00026 }
00027 
00028 // ---------------------------------------------------------
00029 
00030 BCParameter::BCParameter(const char * name, double lowerlimit, double upperlimit)
00031 {
00032    fName       = "parameter";
00033    fLowerLimit = 0.;
00034    fUpperLimit = 1.;
00035    fNuisance   = 0;
00036 
00037    fName       = name;
00038    fLowerLimit = lowerlimit;
00039    fUpperLimit = upperlimit;
00040 }
00041 
00042 // ---------------------------------------------------------
00043 
00044 BCParameter::BCParameter(const BCParameter & parameter)
00045 {
00046    fName       = parameter.fName;
00047    fIndex      = parameter.fIndex;
00048    fLowerLimit = parameter.fLowerLimit;
00049    fUpperLimit = parameter.fUpperLimit;
00050    fNuisance   = parameter.fNuisance;
00051 }
00052 
00053 // ---------------------------------------------------------
00054 
00055 BCParameter & BCParameter::operator = (const BCParameter & parameter)
00056 {
00057    fName       = parameter.fName;
00058    fIndex      = parameter.fIndex;
00059    fLowerLimit = parameter.fLowerLimit;
00060    fUpperLimit = parameter.fUpperLimit;
00061    fNuisance   = parameter.fNuisance;
00062 
00063    // return this
00064    return *this;
00065 }
00066 
00067 // ---------------------------------------------------------
00068 
00069 BCParameter::~BCParameter()
00070 {}
00071 
00072 // ---------------------------------------------------------
00073 
00074 void BCParameter::PrintSummary()
00075 {
00076    BCLog::OutSummary("Parameter summary:");
00077    BCLog::OutSummary(Form("Parameter   : %s", fName.c_str()));
00078    BCLog::OutSummary(Form("Index       : %d", fIndex));
00079    BCLog::OutSummary(Form("Lower limit : %f", fLowerLimit));
00080    BCLog::OutSummary(Form("Upper limit : %f", fUpperLimit));
00081 }
00082 
00083 // ---------------------------------------------------------
00084 
00085 bool BCParameter::IsAtLimit(double value)
00086 {
00087    if (fLowerLimit == fUpperLimit)
00088       return false;
00089 
00090    if ( ( (value-fLowerLimit)*(value-fLowerLimit)/fLowerLimit/fLowerLimit <= 1e-10) ||
00091          ( (value-fUpperLimit)*(value-fUpperLimit)/fUpperLimit/fUpperLimit <= 1e-10))
00092       return true;
00093    else
00094       return false;
00095 }
00096 
00097 // ---------------------------------------------------------

Generated by  doxygen 1.7.1