CMS 3D CMS Logo

LinearCalibration.cc

Go to the documentation of this file.
00001 #include "RecoParticleFlow/PFClusterTools/interface/LinearCalibration.h"
00002 
00003 using namespace pftools;
00004 
00005 LinearCalibration::LinearCalibration() :
00006         a_(0), b_(0), c_(0) {
00007 }
00008 
00009 LinearCalibration::LinearCalibration(CalibrationTarget t, double a, double b,
00010                 double c) :
00011          a_(a), b_(b), c_(c) {
00012         targ_ = t;
00013         prov_ = LINEAR;
00014 }
00015 
00016 LinearCalibration::LinearCalibration(CalibrationTarget t, double b, double c) :
00017          a_(-1.0), b_(b), c_(c) {
00018         targ_ = t;
00019         prov_ = LINEAR;
00020 
00021 }
00022 
00023 LinearCalibration::~LinearCalibration() {
00024 }
00025 
00026 void LinearCalibration::calibrateCore(const CalibrationResultWrapper& crwInput,
00027                 CalibrationResultWrapper& crwOutput) {
00028         if (targ_ == UNDEFINED) {
00029                 std::cout << __PRETTY_FUNCTION__ << ": WARNING! Target is undefined!\n";
00030                 return;
00031         } else {
00032                 crwOutput.reset();
00033                 crwOutput.target_ = Calibration::targ_;
00034                 crwOutput.provenance_ = LINEAR;
00035 
00036                 crwOutput.ecalEnergy_ = b_ * crwInput.ecalEnergy_;
00037                 crwOutput.hcalEnergy_ = c_ * crwInput.hcalEnergy_;
00038                 crwOutput.particleEnergy_ = a_ + crwOutput.ecalEnergy_
00039                                 + crwOutput.hcalEnergy_;
00040                 crwOutput.truthEnergy_ = crwInput.truthEnergy_;
00041                 crwOutput.compute();
00042 
00043         }
00044 
00045 }
00046 
00047 std::ostream& pftools::operator<<(std::ostream& s, const LinearCalibration& lc) {
00048         s << "LinearCalibration:  a, b, c = {" << lc.a_ << ", " << lc.b_ << ", " << lc.c_ << "}\n";
00049         return s;
00050 }

Generated on Tue Jun 9 17:44:44 2009 for CMSSW by  doxygen 1.5.4