/* * TbUTPedestalRetreiver.cpp * * Created on: Jan 2, 2015 * Author: ADendek */ #include "TbUTPedestalRetreiver.h" #include "TbUTRawData.h" #include <iostream> #include <fstream> using namespace TbUT; using namespace std; PedestalRetreiver::PedestalRetreiver(Pedestal& p_pedestal, IFileValidator& p_fileValidator, const std::string& p_filename): m_isFillingPedestalRequited(true), m_pedestal(p_pedestal), m_fileValidator(p_fileValidator), m_filename(p_filename) { } void PedestalRetreiver::savePedestalToFile(const std::string& /*p_filename*/) { cout<<"Not saving Pedestal!"<<endl; // do not save nothing! } StatusCode PedestalRetreiver::processEvent(RawData<>* /*p_data*/) { if(!m_isFillingPedestalRequited){ cout<<"PedestalRetreiver===> pedestals ok!"<<endl; return StatusCode::SUCCESS; } if(!m_fileValidator.validateFile() ){ cout<<"validation error!"<<endl; return StatusCode::FAILURE; } getPedestalFromFile(); return StatusCode::SUCCESS; } void PedestalRetreiver::getPedestalFromFile() { cout<<"PedestalRetreiver===>getting pedestals from file: "<< m_filename<<endl; int l_channelsNumber=RawData<>::getnChannelNumber(); ifstream l_file(m_filename); if(!l_file.good()){ std::string lerrorMsg="Cannot open input pedestal file: "+m_filename; throw PedestalCalculatorError(lerrorMsg); } for(int channel=0;channel<l_channelsNumber;channel++) { double l_pedestalFromFile=0; l_file >> l_pedestalFromFile; m_pedestal.setPedestal(channel,l_pedestalFromFile); cout<<"PedestalRetreiver===> channel: "<< channel <<"pedestal: "<<l_pedestalFromFile<<endl; } m_pedestal.setNormalizationFlag(true); m_isFillingPedestalRequited=false; }