CMS 3D CMS Logo

SiStripFedIdListReader.cc

Go to the documentation of this file.
00001 #include "CalibTracker/SiStripCommon/interface/SiStripFedIdListReader.h"
00002 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00003 #include <sstream>
00004 
00005 // -----------------------------------------------------------------------------
00006 //
00007 SiStripFedIdListReader::SiStripFedIdListReader( std::string filePath ) {
00008   fedIds_.clear();
00009   inputFile_.open( filePath.c_str() );
00010 
00011   if ( inputFile_.is_open() ) {
00012     
00013     for(;;) {
00014       
00015       uint32_t fed_id; 
00016       inputFile_ >> fed_id;
00017 
00018       if ( !( inputFile_.eof() || inputFile_.fail() ) ) {
00019         
00020         std::vector<uint16_t>::const_iterator it = find( fedIds_.begin(), fedIds_.end(), fed_id );
00021         if( it == fedIds_.end() ) { fedIds_.push_back(fed_id); }
00022         else {
00023           edm::LogWarning("Unknown") 
00024             << "[SiStripFedIdListReader::" << __func__ << "]"
00025             << " FedId " << fed_id << " has already been found in file!" << std::endl;
00026           continue;
00027         }
00028 
00029       } else if ( inputFile_.eof() ) {
00030         edm::LogVerbatim("Unknown") 
00031           << "[SiStripFedIdListReader::" << __func__ << "]"
00032           << " End of file reached! Found " << fedIds_.size() 
00033           << " valid FedIds!" << std::endl;
00034         break;
00035       } else if ( inputFile_.fail() ) {
00036         edm::LogVerbatim("Unknown") 
00037           << "[SiStripFedIdListReader::" << __func__ << "]"
00038           << " Error while reading file \"" << filePath << "\"!" << std::endl;
00039         break;
00040       }
00041     }
00042 
00043     inputFile_.close();
00044   } else {
00045     edm::LogVerbatim("Unknown") 
00046       << "[SiStripFedIdListReader::" << __func__ << "]"
00047       << " Unable to open file \"" << filePath << "\"!" << std::endl;
00048     return;
00049     
00050   }
00051 
00052 }
00053 
00054 // -----------------------------------------------------------------------------
00055 //
00056 SiStripFedIdListReader::SiStripFedIdListReader( const SiStripFedIdListReader& copy ) {
00057   edm::LogVerbatim("Unknown") 
00058     << "[SiStripFedIdListReader::" << __func__ << "]";
00059   fedIds_ = copy.fedIds_;
00060 }
00061 
00062 // -----------------------------------------------------------------------------
00063 //
00064 SiStripFedIdListReader& SiStripFedIdListReader::operator=( const SiStripFedIdListReader& copy ) {
00065   edm::LogVerbatim("Unknown") 
00066     << "[SiStripFedIdListReader::" << __func__ << "]";
00067   fedIds_ = copy.fedIds_;
00068   return *this;  
00069 }
00070 
00071 // -----------------------------------------------------------------------------
00072 //
00073 SiStripFedIdListReader::~SiStripFedIdListReader(){
00074   edm::LogVerbatim("Unknown") 
00075     << "[SiStripFedIdListReader::" << __func__ << "]";
00076 }
00077 
00078 
00079 // -----------------------------------------------------------------------------
00080 //
00081 std::ostream& operator<< ( std::ostream& os, const SiStripFedIdListReader& in ) {
00082   std::vector<uint16_t> fed_ids = in.fedIds();
00083   std::stringstream ss;
00084   ss << "[SiStripFedIdListReader::" << __func__ << "]"
00085      << " Found " << fed_ids.size() << " valid FED ids with values: ";
00086   std::vector<uint16_t>::const_iterator iter = fed_ids.begin();
00087   for ( ; iter != fed_ids.end(); ++iter ) { ss << *iter << " "; }
00088   os << ss.str();
00089   return os;
00090 }
00091 

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