Cat
Public Types | Public Member Functions | Protected Member Functions | Private Attributes | List of all members
EmulateFE Class Reference

#include <inc/EmulateFE.h>

Inheritance diagram for EmulateFE:
Processus Object Attrib

Public Types

typedef unsigned long U32
 
typedef unsigned short U16
 
typedef unsigned char U8
 
- Public Types inherited from Processus
enum  states { ERR =-1, NOT_OK, OK }
 
- Public Types inherited from Attrib
enum  Attribut {
  UNDEFINED, PASSIVE, ACTIVE, INTERFACE,
  IO, IODATA, ELEMENT, HARDWARE,
  PROCESSUS, SOFTWARE
}
 

Public Member Functions

 EmulateFE ()
 Standard constructor. More...
 
virtual ~EmulateFE ()
 Destructor. More...
 
virtual StatusCode initialize ()
 
virtual StatusCode execute ()
 
virtual StatusCode finalize ()
 
StatusCode setFile (std::string filename)
 
std::string file ()
 
StatusCode setNTriggers (int ntriggersMax)
 
int nTriggers ()
 
StatusCode setGenerationType (bool type)
 
bool generationType ()
 
StatusCode setSignalRate (float signalRate)
 
float signalRate ()
 
StatusCode setPedestal (float pedestal)
 
float pedestal ()
 
StatusCode setNoise (float noise)
 
float noise ()
 
- Public Member Functions inherited from Processus
 Processus ()
 Standard constructor. More...
 
virtual ~Processus ()
 Destructor. More...
 
StatusCode startProcessing ()
 
StatusCode endProcessing ()
 
void clean ()
 
void setStorage (std::string storage)
 
Datadata ()
 
std::vector< double > data (unsigned int row)
 
std::vector< double > data (std::string name)
 
Histo1Dhist1d (unsigned int row)
 
Histo2Dhist2d (unsigned int row)
 
void addDataStream (std::string name, std::string title)
 
void addHisto1d (TH1D *h)
 
void addHisto2d (TH2D *h)
 
StatusCode dataFill (int i, double val)
 
StatusCode dataFill (std::string name, double val)
 
std::string storage ()
 
void setElement (Element *element)
 
Elementelement ()
 
void incNErrors ()
 
void setNErrors (unsigned int)
 
unsigned int nErrors ()
 
TFile * rootFile ()
 
void openRootFile ()
 
void closeRootFile ()
 
void startChrono ()
 
void setLogMsg (std::string logMsg)
 
std::string logMsg ()
 
void setState (int state)
 
double elapsedTime ()
 
double elapsedTime (time_t start)
 
- Public Member Functions inherited from Object
 Object ()
 Standard constructor. More...
 
virtual ~Object ()
 Destructor. More...
 
std::string name () const
 
std::string type ()
 
unsigned char id ()
 
std::string title ()
 
void msgSvc (int level, std::string msg, std::string name)
 
void msg (std::string mymsg)
 
void verbose (std::string mymsg)
 
void debug (std::string mymsg)
 
void info (std::string mymsg)
 
void warning (std::string mymsg)
 
void error (std::string mymsg)
 
void fatal (std::string mymsg)
 
void msg (std::string mymsg, std::string name)
 
void verbose (std::string mymsg, std::string name)
 
void debug (std::string mymsg, std::string name)
 
void info (std::string mymsg, std::string name)
 
void warning (std::string mymsg, std::string name)
 
void error (std::string mymsg, std::string name)
 
void fatal (std::string mymsg, std::string name)
 
void setName (std::string name)
 
void setType (std::string type)
 
void setId (unsigned char id)
 
void setTitle (std::string title)
 
void setDllName (std::string dllName)
 
std::string dllName ()
 
- Public Member Functions inherited from Attrib
 Attrib ()
 Standard constructor. More...
 
virtual ~Attrib ()
 Destructor. More...
 
bool is (int attribut)
 
void add (int attribut)
 
void remove (int attribut)
 
std::string attributs ()
 

Protected Member Functions

EmulateFEclone ()
 
StatusCode generateValues ()
 
StatusCode generateFile ()
 
StatusCode processingFE ()
 

Private Attributes

TRandom m_random
 
FEB_v1m_board
 
std::string m_filename
 
int m_nFile
 
Optionsm_options
 
int m_typeGeneration
 
float m_signalRate
 
float m_pedestal
 
float m_noise
 
int m_adcin [16384]
 
int m_ntriggersMax
 
int m_ntriggers
 

Additional Inherited Members

- Protected Attributes inherited from Processus
Elementm_element
 
- Protected Attributes inherited from Attrib
std::string m_attribString [10]
 

Detailed Description

Author
Date
2012-07-12

Definition at line 18 of file EmulateFE.h.

Member Typedef Documentation

◆ U16

typedef unsigned short EmulateFE::U16

Definition at line 21 of file EmulateFE.h.

◆ U32

typedef unsigned long EmulateFE::U32

Definition at line 20 of file EmulateFE.h.

◆ U8

typedef unsigned char EmulateFE::U8

Definition at line 22 of file EmulateFE.h.

Constructor & Destructor Documentation

◆ EmulateFE()

Standard constructor.

Definition at line 25 of file EmulateFE.cpp.

References Object::setName(), Object::setTitle(), and Object::setType().

Referenced by clone().

25  :
26  m_filename(std::string("")),
27  m_typeGeneration (0),
28  m_signalRate(0.05),
29  m_pedestal(128),
30  m_noise(30),
31  m_ntriggersMax(0),
32  m_ntriggers(0),
33  m_options(application()->options())
34 {
35  setName ( "EmulateFE" );
36  setType ( "FEB_v1" );
37  setTitle( "FEB_v1 EmulateFE processing" );
38 }
void setName(std::string name)
Definition: Object.h:51
Application * application()
Definition: Tools.cpp:42
void setType(std::string type)
Definition: Object.h:52
void setTitle(std::string title)
Definition: Object.h:54
Options * m_options
Definition: EmulateFE.h:101
float m_signalRate
Definition: EmulateFE.h:103
float m_noise
Definition: EmulateFE.h:105
std::string m_filename
Definition: EmulateFE.h:98
float m_pedestal
Definition: EmulateFE.h:104
int m_ntriggersMax
Definition: EmulateFE.h:107
int m_ntriggers
Definition: EmulateFE.h:108
int m_typeGeneration
Definition: EmulateFE.h:102

◆ ~EmulateFE()

EmulateFE::~EmulateFE ( )
virtual

Destructor.

Definition at line 42 of file EmulateFE.cpp.

42 {}

Member Function Documentation

◆ clone()

EmulateFE* EmulateFE::clone ( )
inlineprotectedvirtual

processus termination virtual function

Implements Processus.

Definition at line 87 of file EmulateFE.h.

References EmulateFE(), generateFile(), generateValues(), and processingFE().

87  {
88  return new EmulateFE (*this);
89  }
EmulateFE()
Standard constructor.
Definition: EmulateFE.cpp:25

◆ execute()

StatusCode EmulateFE::execute ( )
virtual

processus execution virtual function

Implements Processus.

Definition at line 76 of file EmulateFE.cpp.

References Options::dataStorage(), Object::debug(), generateFile(), generateValues(), m_filename, m_ntriggersMax, m_options, processingFE(), and StatusCode::SUCCESS.

76  {
77  debug("EmulateFE" , "execute");
79  if (m_filename!=std::string("") & m_options->dataStorage()){
80  generateFile();
81  }
82  if (m_ntriggersMax>0){
83  processingFE();
84  }
85  return StatusCode::SUCCESS;
86 }
StatusCode generateFile()
Definition: EmulateFE.cpp:133
bool dataStorage()
Definition: Options.h:252
void debug(std::string mymsg)
Definition: Object.h:37
Options * m_options
Definition: EmulateFE.h:101
StatusCode generateValues()
Definition: EmulateFE.cpp:98
StatusCode processingFE()
Definition: EmulateFE.cpp:173
std::string m_filename
Definition: EmulateFE.h:98
int m_ntriggersMax
Definition: EmulateFE.h:107

◆ file()

std::string EmulateFE::file ( )
inline

Definition at line 36 of file EmulateFE.h.

References m_filename.

36  {
37  return m_filename;
38  }
std::string m_filename
Definition: EmulateFE.h:98

◆ finalize()

StatusCode EmulateFE::finalize ( )
virtual

processus termination virtual function

Implements Processus.

Definition at line 91 of file EmulateFE.cpp.

References StatusCode::SUCCESS.

91  {
92  return StatusCode::SUCCESS;
93 }

◆ generateFile()

StatusCode EmulateFE::generateFile ( )
protected

Definition at line 133 of file EmulateFE.cpp.

References itos(), m_adcin, m_filename, m_nFile, m_noise, m_options, m_pedestal, m_signalRate, m_typeGeneration, Options::storageFullPath(), and StatusCode::SUCCESS.

Referenced by clone(), and execute().

133  {
134  std::string filename = m_options->storageFullPath();
135  filename.append("/");
136  filename.append(m_filename);
137  filename.append("_");
138  filename.append(itos(m_nFile));
139  filename.append(".data");
140  std::ofstream inputData;
141  inputData.open( filename.c_str() );
142 
143  time_t rawtime;
144  struct tm * timeinfo;
145  time ( &rawtime );
146  timeinfo = localtime ( &rawtime );
147  char* timechar = asctime (timeinfo) ;
148  std::string timing = std::string(timechar,24) + " ";
149 
150  if ( !inputData.fail() ){
151  inputData<<"#################################################"<<std::endl;
152  inputData<<"# Date : "<<timing<<std::endl;
153  inputData<<"# Type of Generation : "<<m_typeGeneration<<std::endl;
154  inputData<<"# 0 : Flat generation "<<std::endl;
155  inputData<<"# 1 : Gaussian noise + Flat signal "<<std::endl;
156  inputData<<"# Signal rate : "<<m_signalRate<<std::endl;
157  inputData<<"# Pedestal : "<<m_pedestal<<std::endl;
158  inputData<<"# Noise width : "<<m_noise<<std::endl;
159  inputData<<"#################################################"<<std::endl;
160  for (int i=0; i<4096; ++i){
161  char buffer[50];
162  sprintf (buffer, "%5i %5i %5i %5i \n",m_adcin[4*i], m_adcin[4*i+1], m_adcin[4*i+2], m_adcin[4*i+3]);
163  inputData<<buffer;
164  }
165  }
166  m_nFile++;
167  return StatusCode::SUCCESS;
168 }
std::string itos(int)
Definition: Tools.cpp:46
int m_nFile
Definition: EmulateFE.h:99
int m_adcin[16384]
Definition: EmulateFE.h:106
Options * m_options
Definition: EmulateFE.h:101
float m_signalRate
Definition: EmulateFE.h:103
float m_noise
Definition: EmulateFE.h:105
std::string storageFullPath()
Definition: Options.h:159
std::string m_filename
Definition: EmulateFE.h:98
float m_pedestal
Definition: EmulateFE.h:104
int m_typeGeneration
Definition: EmulateFE.h:102

◆ generateValues()

StatusCode EmulateFE::generateValues ( )
protected

Definition at line 98 of file EmulateFE.cpp.

References m_adcin, m_noise, m_pedestal, m_random, m_signalRate, m_typeGeneration, and StatusCode::SUCCESS.

Referenced by clone(), and execute().

98  {
99  if (m_typeGeneration==0){
100  for (int i=0; i<4096; ++i){
101  m_adcin[4*i] = m_random.Rndm()*4096;
102  m_adcin[4*i+1] = m_random.Rndm()*4096;
103  m_adcin[4*i+2] = m_random.Rndm()*4096;
104  m_adcin[4*i+3] = m_random.Rndm()*4096;
105  }
106  }
107  else {
108  for (int i=0; i<4096; ++i){
109  float noise0 = m_random.Gaus(m_pedestal, m_noise);
110  float noise1 = m_random.Gaus(m_pedestal, m_noise);
111  float noise2 = m_random.Gaus(m_pedestal, m_noise);
112  float noise3 = m_random.Gaus(m_pedestal, m_noise);
113  float sig0 = m_random.Rndm();
114  float sig1 = m_random.Rndm();
115  float sig2 = m_random.Rndm();
116  float sig3 = m_random.Rndm();
117  if (m_random.Rndm()<m_signalRate){ m_adcin[4*i]=noise0+(m_random.Rndm()*(4096-noise0)); }
118  else m_adcin[4*i]=noise0;
119  if (m_random.Rndm()<m_signalRate){ m_adcin[4*i+1]=noise1+(m_random.Rndm()*(4096-noise1)); }
120  else m_adcin[4*i+1]=noise1;
121  if (m_random.Rndm()<m_signalRate){ m_adcin[4*i+2]=noise2+(m_random.Rndm()*(4096-noise2)); }
122  else m_adcin[4*i+2]=noise2;
123  if (m_random.Rndm()<m_signalRate){ m_adcin[4*i+3]=noise3+(m_random.Rndm()*(4096-noise3)); }
124  else m_adcin[4*i+3]=noise3;
125  }
126  }
127  return StatusCode::SUCCESS;
128 }
TRandom m_random
Definition: EmulateFE.h:96
int m_adcin[16384]
Definition: EmulateFE.h:106
float m_signalRate
Definition: EmulateFE.h:103
float m_noise
Definition: EmulateFE.h:105
float m_pedestal
Definition: EmulateFE.h:104
int m_typeGeneration
Definition: EmulateFE.h:102

◆ generationType()

bool EmulateFE::generationType ( )
inline

Definition at line 54 of file EmulateFE.h.

References m_typeGeneration.

54  {
55  return m_typeGeneration;
56  }
int m_typeGeneration
Definition: EmulateFE.h:102

◆ initialize()

StatusCode EmulateFE::initialize ( )
virtual

processus initialisation virtual function

Implements Processus.

Definition at line 49 of file EmulateFE.cpp.

References Options::dataStorage(), Object::debug(), Processus::element(), StatusCode::FAILURE, Object::info(), m_board, m_filename, m_nFile, m_ntriggersMax, m_options, Object::name(), StatusCode::SUCCESS, Object::type(), and Object::warning().

49  {
50  debug("EmulateFE" , "initialize");
51 
52  info("" );
53  info("____________________________");
54  info("FE emulation");
55  info(" =>" + element()->path() + " " +
56  element()->name() + " " + element()->type() );
57 
58  if (m_filename==std::string("")){
59  warning("No ADC output data storage.");
60  if (m_ntriggersMax<1){
61  warning("No output file storage and no trigger. There is no processing to perform. Bad configuration.");
62  return StatusCode::FAILURE;
63  }
64  }
65  if ((m_filename!=std::string(""))&(m_options->dataStorage())){
66  info("Input data will be stored in files "+m_filename);
67  }
68  m_nFile = 0;
69  m_board=dynamic_cast<FEB_v1*>( element() );
70  return StatusCode::SUCCESS;
71 }
void info(std::string mymsg)
Definition: Object.h:38
int m_nFile
Definition: EmulateFE.h:99
bool dataStorage()
Definition: Options.h:252
void debug(std::string mymsg)
Definition: Object.h:37
Definition: FEB_v1.h:21
FEB_v1 * m_board
Definition: EmulateFE.h:97
Options * m_options
Definition: EmulateFE.h:101
std::string name() const
Definition: Object.h:28
std::string m_filename
Definition: EmulateFE.h:98
Element * element()
Definition: Processus.h:231
int m_ntriggersMax
Definition: EmulateFE.h:107
std::string type()
Definition: Object.h:29
void warning(std::string mymsg)
Definition: Object.h:39

◆ noise()

float EmulateFE::noise ( )
inline

Definition at line 81 of file EmulateFE.h.

References m_noise.

Referenced by setNoise().

81  {
82  return m_noise;
83  }
float m_noise
Definition: EmulateFE.h:105

◆ nTriggers()

int EmulateFE::nTriggers ( )
inline

Definition at line 45 of file EmulateFE.h.

References m_ntriggersMax.

45  {
46  return m_ntriggersMax;
47  }
int m_ntriggersMax
Definition: EmulateFE.h:107

◆ pedestal()

float EmulateFE::pedestal ( )
inline

Definition at line 72 of file EmulateFE.h.

References m_pedestal.

Referenced by setPedestal().

72  {
73  return m_pedestal;
74  }
float m_pedestal
Definition: EmulateFE.h:104

◆ processingFE()

StatusCode EmulateFE::processingFE ( )
protected

Definition at line 173 of file EmulateFE.cpp.

References StatusCode::SUCCESS.

Referenced by clone(), and execute().

173  {
174  return StatusCode::SUCCESS;
175 }

◆ setFile()

StatusCode EmulateFE::setFile ( std::string  filename)
inline

Definition at line 31 of file EmulateFE.h.

References m_filename, and StatusCode::SUCCESS.

31  {
32  m_filename=filename;
33  return StatusCode::SUCCESS;
34  };
std::string m_filename
Definition: EmulateFE.h:98

◆ setGenerationType()

StatusCode EmulateFE::setGenerationType ( bool  type)
inline

Definition at line 49 of file EmulateFE.h.

References m_typeGeneration, StatusCode::SUCCESS, and Object::type().

49  {
51  return StatusCode::SUCCESS;
52  };
std::string type()
Definition: Object.h:29
int m_typeGeneration
Definition: EmulateFE.h:102

◆ setNoise()

StatusCode EmulateFE::setNoise ( float  noise)
inline

Definition at line 76 of file EmulateFE.h.

References m_noise, noise(), and StatusCode::SUCCESS.

76  {
77  m_noise=noise;
78  return StatusCode::SUCCESS;
79  };
float noise()
Definition: EmulateFE.h:81
float m_noise
Definition: EmulateFE.h:105

◆ setNTriggers()

StatusCode EmulateFE::setNTriggers ( int  ntriggersMax)
inline

Definition at line 40 of file EmulateFE.h.

References m_ntriggersMax, and StatusCode::SUCCESS.

40  {
41  m_ntriggersMax = ntriggersMax;
42  return StatusCode::SUCCESS;
43  };
int m_ntriggersMax
Definition: EmulateFE.h:107

◆ setPedestal()

StatusCode EmulateFE::setPedestal ( float  pedestal)
inline

Definition at line 67 of file EmulateFE.h.

References m_pedestal, pedestal(), and StatusCode::SUCCESS.

67  {
69  return StatusCode::SUCCESS;
70  };
float pedestal()
Definition: EmulateFE.h:72
float m_pedestal
Definition: EmulateFE.h:104

◆ setSignalRate()

StatusCode EmulateFE::setSignalRate ( float  signalRate)
inline

Definition at line 58 of file EmulateFE.h.

References m_signalRate, signalRate(), and StatusCode::SUCCESS.

58  {
60  return StatusCode::SUCCESS;
61  };
float signalRate()
Definition: EmulateFE.h:63
float m_signalRate
Definition: EmulateFE.h:103

◆ signalRate()

float EmulateFE::signalRate ( )
inline

Definition at line 63 of file EmulateFE.h.

References m_signalRate.

Referenced by setSignalRate().

63  {
64  return m_signalRate;
65  }
float m_signalRate
Definition: EmulateFE.h:103

Member Data Documentation

◆ m_adcin

int EmulateFE::m_adcin[16384]
private

Definition at line 106 of file EmulateFE.h.

Referenced by generateFile(), and generateValues().

◆ m_board

FEB_v1* EmulateFE::m_board
private

Definition at line 97 of file EmulateFE.h.

Referenced by initialize().

◆ m_filename

std::string EmulateFE::m_filename
private

Definition at line 98 of file EmulateFE.h.

Referenced by execute(), file(), generateFile(), initialize(), and setFile().

◆ m_nFile

int EmulateFE::m_nFile
private

Definition at line 99 of file EmulateFE.h.

Referenced by generateFile(), and initialize().

◆ m_noise

float EmulateFE::m_noise
private

Definition at line 105 of file EmulateFE.h.

Referenced by generateFile(), generateValues(), noise(), and setNoise().

◆ m_ntriggers

int EmulateFE::m_ntriggers
private

Definition at line 108 of file EmulateFE.h.

◆ m_ntriggersMax

int EmulateFE::m_ntriggersMax
private

Definition at line 107 of file EmulateFE.h.

Referenced by execute(), initialize(), nTriggers(), and setNTriggers().

◆ m_options

Options* EmulateFE::m_options
private

Definition at line 101 of file EmulateFE.h.

Referenced by execute(), generateFile(), and initialize().

◆ m_pedestal

float EmulateFE::m_pedestal
private

Definition at line 104 of file EmulateFE.h.

Referenced by generateFile(), generateValues(), pedestal(), and setPedestal().

◆ m_random

TRandom EmulateFE::m_random
private

Definition at line 96 of file EmulateFE.h.

Referenced by generateValues().

◆ m_signalRate

float EmulateFE::m_signalRate
private

Definition at line 103 of file EmulateFE.h.

Referenced by generateFile(), generateValues(), setSignalRate(), and signalRate().

◆ m_typeGeneration

int EmulateFE::m_typeGeneration
private

Definition at line 102 of file EmulateFE.h.

Referenced by generateFile(), generateValues(), generationType(), and setGenerationType().


The documentation for this class was generated from the following files: