00001 // $Id: RBCProcessTestSignal.cc,v 1.2 2009/05/16 19:43:32 aosorio Exp $ 00002 // Include files 00003 00004 00005 // local 00006 #include "L1Trigger/RPCTechnicalTrigger/interface/RBCProcessTestSignal.h" 00007 #include "L1Trigger/RPCTechnicalTrigger/interface/RBCLinkBoardSignal.h" 00008 //----------------------------------------------------------------------------- 00009 // Implementation file for class : RBCProcessTestSignal 00010 // 00011 // 2008-10-10 : Andres Osorio 00012 //----------------------------------------------------------------------------- 00013 00014 //============================================================================= 00015 // Standard constructor, initializes variables 00016 //============================================================================= 00017 RBCProcessTestSignal::RBCProcessTestSignal( const char * f_name ) 00018 { 00019 00020 m_in = new std::ifstream(); 00021 m_in->open(f_name); 00022 00023 if(!m_in->is_open()) { 00024 std::cout << "RBCProcessTestSignal> cannot open file" << std::endl; 00025 } else { 00026 std::cout << "RBCProcessTestSignal> file is now open" << std::endl; 00027 } 00028 00029 m_input = new RBCInput(); 00030 m_lbin = dynamic_cast<RPCInputSignal*>( new RBCLinkBoardSignal( m_input ) ); 00031 00032 showfirst(); 00033 00034 } 00035 //============================================================================= 00036 // Destructor 00037 //============================================================================= 00038 RBCProcessTestSignal::~RBCProcessTestSignal() 00039 { 00040 m_in->close(); 00041 delete m_in; 00042 00043 if ( m_lbin ) delete m_lbin; 00044 00045 if ( m_input ) delete m_input; 00046 00047 } 00048 00049 //============================================================================= 00050 00051 int RBCProcessTestSignal::next() 00052 { 00053 00054 if ( m_in->fail()) return 0; 00055 (*m_in) >> (*m_input); 00056 if ( m_in->eof() ) return 0; 00057 return 1; 00058 00059 } 00060 00061 void RBCProcessTestSignal::showfirst() 00062 { 00063 rewind(); 00064 (*m_in) >> (*m_input); 00065 std::cout << (*m_input); 00066 rewind(); 00067 00068 } 00069 00070 void RBCProcessTestSignal::rewind() 00071 { 00072 m_in->clear(); 00073 m_in->seekg(0,std::ios::beg); 00074 } 00075