CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/L1Trigger/RPCTechnicalTrigger/src/RBCProcessTestSignal.cc

Go to the documentation of this file.
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