Cat
RegisterTest.cpp
Go to the documentation of this file.
1 // $Id: UsbFTInterfaceTest.cpp,v 1.4 2006/03/16 17:08:23 fmachefe Exp $
2 
3 // Include files
4 #include <ctime>
5 
6 // ROOT include files
7 #include "TRandom.h"
8 #include "TH1D.h"
9 
10 // local
11 #include "Register.h"
12 #include "RegisterTest.h"
13 
14 //-----------------------------------------------------------------------------
15 // Implementation file for class : RegisterTest
16 //
17 // 2004-07-23 : Fr�d�ric Machefert
18 //-----------------------------------------------------------------------------
19 
20 //=============================================================================
21 // Standard constructor, initializes variables
22 //=============================================================================
24  m_mean (30000.),
25  m_sigma(10000.)
26  {
27  setName ( "RegisterTest" );
28  setType ( "Register" );
29  setTitle( "Register test" );
30 }
31 
32 //=========================================================================
33 // virtual function intialize
34 //=========================================================================
36  openRootFile ();
37  m_write=new TH1D( "Write" , "Write" , 1000 , 0. , 65535. );
38  m_read =new TH1D( "Read" , "Read" , 1000 , 0. , 65535. );
39  m_error=new TH1D( "Error" , "Error" , 1000 , 0. , 65535. );
40  m_rnd =new TRandom();
41  addDataStream("Write","Written values");
42  addDataStream("ErrorWrite","Error - Written values if Error");
43  addDataStream("ErrorRead","Error - Read values if Error");
44  addDataStream("TimeWrite","Time to write");
45  addDataStream("TimeRead","Time to read");
46  // addHisto1d( m_write );
47  // addHisto1d( m_read );
48  return StatusCode::SUCCESS;
49 }
50 
51 //=========================================================================
52 // Virtual function execute
53 //=========================================================================
55  /*
56  // fetch the usb interface
57  Register *reg=dynamic_cast<Register*>( element() );
58  IOdata::WordSize size=reg->io()->wordSize();
59  if(IOdata::Byte!=size){
60  warning("Cannot perform test on a ");
61  return StatusCode::FAILURE;
62  }
63  U8 *buffer=reg->io()->dataU8(write);
64 
65  // prepare vector to be written
66  U8 write[m_size];
67  U8 read[m_size];
68  for (unsigned int i=0; i<m_size; ++i){
69  write[i]=(U16)(m_rnd->Gaus(m_mean,m_sigma));
70  }
71 
72  // write / read and measure times
73  float tw,tr;
74  clock_t start;
75  start=clock();
76  reg->write()
77  tw=elapsedTime(start);
78  start=clock();
79  reg->read()
80  tr=elapsedTime(start);
81  dataFill("TimeWrite",tw);
82  dataFill("TimeRead",tr);
83 
84  // store values and check errors
85  float w,r;
86  for (unsigned int i=0; i<m_size; ++i){
87  w=write[i];
88  r=read[i];
89  dataFill("Write",w);
90  m_write->Fill(w);
91  m_read->Fill(r);
92  if (w!=r){
93  warning("Error!");
94  m_error->Fill(w);
95  dataFill("ErrorWrite",w);
96  dataFill("ErrorRead",r);
97  }
98  }
99  */
100  return StatusCode::SUCCESS;
101 }
102 
103 //=========================================================================
104 // Virtual function finalize
105 //=========================================================================
107  closeRootFile(); // Deletes the histos -> do not make it yourself !!!
108  return StatusCode::SUCCESS;
109 }
void openRootFile()
Definition: Processus.cpp:146
void setName(std::string name)
Definition: Object.h:51
void addDataStream(std::string name, std::string title)
Definition: Processus.h:153
virtual StatusCode initialize()
Destructor.
void closeRootFile()
Definition: Processus.cpp:160
void setType(std::string type)
Definition: Object.h:52
TH1D * m_read
Definition: RegisterTest.h:56
void setTitle(std::string title)
Definition: Object.h:54
RegisterTest()
Standard constructor.
TH1D * m_error
Definition: RegisterTest.h:56
virtual StatusCode finalize()
TH1D * m_write
Definition: RegisterTest.h:56
virtual StatusCode execute()
TRandom * m_rnd
Definition: RegisterTest.h:55