CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Static Public Attributes | Private Attributes
EcalMatacqDigi Class Reference

#include <EcalMatacqDigi.h>

Public Types

typedef int key_type
 

Public Member Functions

const float adcCount (const int &i) const
 
const float amplitudeV (const int &i) const
 
int attenuation_dB () const
 
void attenuation_dB (int value)
 
int bxId () const
 
void bxId (int value)
 
int chId () const
 
int delayA () const
 
void delayA (int value)
 
 EcalMatacqDigi ()
 
 EcalMatacqDigi (const std::vector< Short_t > &samples, const int &chId, const double &ts, const short &version=-1, const double &tTrig=999.)
 
int emtcDelay () const
 
void emtcDelay (int value)
 
int emtcPhase () const
 
void emtcPhase (int value)
 
int id () const
 
void init ()
 
int l1a () const
 
void l1a (int value)
 
int laserPower () const
 
void laserPower (int value)
 
UInt_t orbitId () const
 
void orbitId (UInt_t value)
 
int postTrig () const
 
void postTrig (int value)
 
int size () const
 
void swap (std::vector< short > &samples)
 
void swap (EcalMatacqDigi &a)
 
timeval timeStamp () const
 
void timeStamp (timeval value)
 
int triggerType () const
 
void triggerType (int value)
 
int trigRec () const
 
void trigRec (int value)
 
float ts () const
 
float tTrig () const
 
std::vector< int > vernier () const
 
void vernier (const std::vector< int > &value)
 
short version () const
 

Static Public Attributes

static const double lsb_ = 0.25e-3
 
static const int MAXSAMPLES = 2560
 

Private Attributes

char attenuation_dB_
 
Short_t bxId_
 
int chId_
 
std::vector< Short_t > data_
 
Int_t delayA_
 
Int_t emtcDelay_
 
Int_t emtcPhase_
 
int freq
 
Int_t l1a_
 
Int_t laserPower_
 
Int_t orbitId_
 
Short_t postTrig_
 
char triggerType_
 
Short_t trigRec_
 
double ts_
 
double tTrigS_
 
Long64_t tv_sec_
 
Long64_t tv_usec_
 
std::vector< Int_t > vernier_
 
short version_
 

Detailed Description

Definition at line 17 of file EcalMatacqDigi.h.

Member Typedef Documentation

Definition at line 28 of file EcalMatacqDigi.h.

Constructor & Destructor Documentation

EcalMatacqDigi::EcalMatacqDigi ( )
inline

Default constructor.

Definition at line 33 of file EcalMatacqDigi.h.

References init().

33  : chId_(-1), ts_(0.), tTrigS_(999.), version_(-1){
34  init();
35  }
EcalMatacqDigi::EcalMatacqDigi ( const std::vector< Short_t > &  samples,
const int &  chId,
const double &  ts,
const short &  version = -1,
const double &  tTrig = 999. 
)
inline

Constructor

Parameters
samplesadc time samples
chIdMatacq channel ID
tssampling time in seconds
versionMatacq raw data private version
tTriggtime position of the trigger in seconds

Definition at line 44 of file EcalMatacqDigi.h.

References init().

46  : chId_(chId), data_(samples), ts_(ts), tTrigS_(tTrig),
48  init();
49  };
float ts() const
float tTrig() const
short version() const
int chId() const
std::vector< Short_t > data_

Member Function Documentation

const float EcalMatacqDigi::adcCount ( const int &  i) const
inline

Gets amplitude in ADC count of time sample i. i between 0 and size()-1. Note: Amplitude is pedestal subtracted at acquisition time.

Definition at line 55 of file EcalMatacqDigi.h.

References data_, and i.

Referenced by EcalMatacqAnalyzer::analyze(), and EcalPerEvtMatacqAnalyzer::analyze().

55 { return data_[i]; }
int i
Definition: DBlmapReader.cc:9
std::vector< Short_t > data_
const float EcalMatacqDigi::amplitudeV ( const int &  i) const
inline

Gets amplitude in Volt of time sample i. i between 0 and size()-1. Note: Amplitude is pedestal subtracted at acquisition time.

Definition at line 60 of file EcalMatacqDigi.h.

References data_, i, and lsb_.

Referenced by operator<<().

60 { return data_[i]*lsb_;}
int i
Definition: DBlmapReader.cc:9
static const double lsb_
std::vector< Short_t > data_
int EcalMatacqDigi::attenuation_dB ( ) const
inline

Gets the laser logarithmic attenuator setting in -10dB unit. Between 0 and 5*(-10dB), -1 if unknown.

Returns
attenuation_dB

Definition at line 249 of file EcalMatacqDigi.h.

References attenuation_dB_.

Referenced by MatacqDataFormatter::interpretRawData().

249 { return attenuation_dB_; }
void EcalMatacqDigi::attenuation_dB ( int  value)
inline

Sets the laser Logarithmic attenuator setting in -10dB unit. Between 0 and 5*(-10dB), -1 if unknown.

Parameters
valuenew value

Definition at line 255 of file EcalMatacqDigi.h.

References attenuation_dB_, and relativeConstraints::value.

int EcalMatacqDigi::bxId ( ) const
inline

Sets the raw data format, the digi is issued from.

Parameters
versioninternal matacq raw data format version Gets the bunch crossing id field contents.
Returns
BX id

Definition at line 133 of file EcalMatacqDigi.h.

References bxId_.

Referenced by MatacqDataFormatter::interpretRawData().

133 { return bxId_; }
void EcalMatacqDigi::bxId ( int  value)
inline

Sets the bunch crossing id field contents.

Parameters
valuenew value

Definition at line 138 of file EcalMatacqDigi.h.

References bxId_, and relativeConstraints::value.

int EcalMatacqDigi::chId ( ) const
inline

Gets Matacq electronics channel id

Definition at line 64 of file EcalMatacqDigi.h.

References chId_.

64 { return chId_;}
int EcalMatacqDigi::delayA ( ) const
inline

Gets "Delay A" setting of laser delay box in ns.delayA

Returns
delayA

Definition at line 218 of file EcalMatacqDigi.h.

References delayA_.

Referenced by MatacqDataFormatter::interpretRawData().

218 { return delayA_; }
void EcalMatacqDigi::delayA ( int  value)
inline

Sets "Delay A" setting of laser delay box in ns.delayA

Parameters
valuenew value

Definition at line 223 of file EcalMatacqDigi.h.

References delayA_, and relativeConstraints::value.

int EcalMatacqDigi::emtcDelay ( ) const
inline

Gets the WTE-to-Laser delay of EMTC in LHC clock unit.

Returns
emtcDelay

Definition at line 228 of file EcalMatacqDigi.h.

References emtcDelay_.

Referenced by MatacqDataFormatter::interpretRawData().

228 { return emtcDelay_; }
void EcalMatacqDigi::emtcDelay ( int  value)
inline

Sets the WTE-to-Laser delay of EMTC in LHC clock unit.

Parameters
valuenew value

Definition at line 233 of file EcalMatacqDigi.h.

References emtcDelay_, and relativeConstraints::value.

int EcalMatacqDigi::emtcPhase ( ) const
inline

Gets the EMTC laser phase in 1/8th LHC clock unit.

Returns
emtcPhase

Definition at line 238 of file EcalMatacqDigi.h.

References emtcPhase_.

Referenced by MatacqDataFormatter::interpretRawData().

238 { return emtcPhase_; }
void EcalMatacqDigi::emtcPhase ( int  value)
inline

Sets the EMTC laser phase in 1/8th LHC clock unit.

Parameters
valuenew value

Definition at line 243 of file EcalMatacqDigi.h.

References emtcPhase_, and relativeConstraints::value.

int EcalMatacqDigi::id ( void  ) const
inline

For edm::SortedCollection.

Returns
as key the matacq channel id

Definition at line 69 of file EcalMatacqDigi.h.

References chId_.

69 { return chId_;}
void EcalMatacqDigi::init ( void  )
inline

Definition at line 269 of file EcalMatacqDigi.h.

References attenuation_dB_, bxId_, delayA_, emtcDelay_, emtcPhase_, l1a_, laserPower_, orbitId_, postTrig_, triggerType_, trigRec_, and vernier_.

Referenced by EcalMatacqDigi().

269  {
270 #if (ECAL_MATACQ_DIGI_VERS>=2)
271  bxId_ = -1;
272  l1a_ = -1;
273  triggerType_ = -1;
274  orbitId_ = -1;
275  trigRec_ = -1;
276  postTrig_ = -1;
277  vernier_ = std::vector<Int_t>(4,-1);
278  delayA_ = -1;
279  emtcDelay_ = -1;
280  emtcPhase_ = -1;
281  attenuation_dB_ = -1;
282  laserPower_ = -1;
283 #endif
284  }
std::vector< Int_t > vernier_
int EcalMatacqDigi::l1a ( ) const
inline

Gets level one accept counter of the event

Returns
l1a

Definition at line 143 of file EcalMatacqDigi.h.

References l1a_.

Referenced by MatacqDataFormatter::interpretRawData().

143 { return l1a_; }
void EcalMatacqDigi::l1a ( int  value)
inline

Sets level one accept counter of the event

Parameters
valuenew value

Definition at line 148 of file EcalMatacqDigi.h.

References l1a_, and relativeConstraints::value.

int EcalMatacqDigi::laserPower ( ) const
inline

Gets the laser power setting in percents (set with the linear attenuator),

Returns
laserPower

Definition at line 261 of file EcalMatacqDigi.h.

References laserPower_.

Referenced by MatacqDataFormatter::interpretRawData().

261 { return laserPower_; }
void EcalMatacqDigi::laserPower ( int  value)
inline

Sets the laser power setting in percents (set with the linear attenuator),

Parameters
valuenew value

Definition at line 267 of file EcalMatacqDigi.h.

References laserPower_, and relativeConstraints::value.

UInt_t EcalMatacqDigi::orbitId ( ) const
inline

Gets the LHC orbit ID of the event Available only for Matacq data format version >=3 and for P5 data.

Returns
the LHC orbit ID

Definition at line 176 of file EcalMatacqDigi.h.

References orbitId_.

Referenced by MatacqDataFormatter::interpretRawData().

176 { return orbitId_; }
void EcalMatacqDigi::orbitId ( UInt_t  value)
inline

Sets the LHC orbit ID of the event.

Parameters
valuenew value

Definition at line 181 of file EcalMatacqDigi.h.

References orbitId_, and relativeConstraints::value.

int EcalMatacqDigi::postTrig ( ) const
inline

Gets the Posttrig value (see Matacq documentation). Available only for Matacq data format version >=3.

Definition at line 197 of file EcalMatacqDigi.h.

References postTrig_.

Referenced by MatacqDataFormatter::interpretRawData().

197 { return postTrig_; }
void EcalMatacqDigi::postTrig ( int  value)
inline

Sets the Posttrig value (see Matacq documentation).

Parameters
valuenew value

Definition at line 202 of file EcalMatacqDigi.h.

References postTrig_, and relativeConstraints::value.

int EcalMatacqDigi::size ( void  ) const
inline

Sets Matacq electronics channel idNumber of time samples

Definition at line 77 of file EcalMatacqDigi.h.

References data_.

Referenced by EcalMatacqAnalyzer::analyze(), EcalPerEvtMatacqAnalyzer::analyze(), and operator<<().

77 { return data_.size();}
std::vector< Short_t > data_
void EcalMatacqDigi::swap ( std::vector< short > &  samples)
inline

Swaps samples with the passed samples. For package internal use.

Parameters
samplesnew time samples in unit used in raw data (a priori ADC count).

Definition at line 83 of file EcalMatacqDigi.h.

References data_, and std::swap().

83 { std::swap(data_, samples);}
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
std::vector< Short_t > data_
void EcalMatacqDigi::swap ( EcalMatacqDigi a)

Definition at line 25 of file EcalMatacqDigi.cc.

References attenuation_dB_, bxId_, chId_, data_, delayA_, emtcDelay_, emtcPhase_, l1a_, laserPower_, orbitId_, postTrig_, std::swap(), triggerType_, trigRec_, ts_, tTrigS_, tv_sec_, tv_usec_, vernier_, and version_.

25  {
26  data_.swap(a.data_);
27  std::swap(chId_, a.chId_);
28  std::swap(ts_, a.ts_);
31 #if (ECAL_MATACQ_DIGI_VERS>=2)
32  std::swap(bxId_, a.bxId_);
33  std::swap(l1a_, a.l1a_);
46 #endif
47 }
std::vector< Int_t > vernier_
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
std::vector< Short_t > data_
timeval EcalMatacqDigi::timeStamp ( ) const
inline

Gets the matacq data timestamp with fine granularity (89.1us)

Returns
acquisition date of the data expressed in number of "elapsed" second and microseconds since the EPOCH as defined in POSIX.1. See time() standard c function and gettimeofday UNIX function.

Definition at line 165 of file EcalMatacqDigi.h.

References tv_sec_, tv_usec_, and relativeConstraints::value.

Referenced by MatacqDataFormatter::interpretRawData().

165 { timeval value; value.tv_sec = tv_sec_; value.tv_usec = tv_usec_; return value; }
void EcalMatacqDigi::timeStamp ( timeval  value)
inline

Sets the matcq event timestmap

Parameters
valuenew value

Definition at line 170 of file EcalMatacqDigi.h.

References tv_sec_, and tv_usec_.

170 { tv_sec_ = value.tv_sec; tv_usec_ = value.tv_usec; }
int EcalMatacqDigi::triggerType ( ) const
inline

Gets type of test trigger

Returns
triggerType

Definition at line 153 of file EcalMatacqDigi.h.

References triggerType_.

Referenced by MatacqDataFormatter::interpretRawData().

153 { return triggerType_; }
void EcalMatacqDigi::triggerType ( int  value)
inline

Sets type of test trigger

Parameters
valuenew value

Definition at line 158 of file EcalMatacqDigi.h.

References triggerType_, and relativeConstraints::value.

int EcalMatacqDigi::trigRec ( ) const
inline

Gets the Trig Rec value (see Matacq documentation) Available only for Matacq data format version >=3.

Returns
the Trig Rec value

Definition at line 187 of file EcalMatacqDigi.h.

References trigRec_.

Referenced by MatacqDataFormatter::interpretRawData().

187 { return trigRec_; }
void EcalMatacqDigi::trigRec ( int  value)
inline

Sets the Trig Rec value (see Matacq documentation)

Parameters
valuenew value

Definition at line 192 of file EcalMatacqDigi.h.

References trigRec_, and relativeConstraints::value.

float EcalMatacqDigi::ts ( ) const
inline

Gets time of sample i. i between 0 and size()-1.Gets sampling time in seconds

Definition at line 93 of file EcalMatacqDigi.h.

References ts_.

93 { return ts_;}
float EcalMatacqDigi::tTrig ( ) const
inline

Sets sampling time period

Parameters
tssampling time period in seconds Gets time of trigger in seconds.
Returns
(t_trig-t_0), with t_trig the trigger time and t_0 the first. Returns 999 if not available. sample time.

Definition at line 107 of file EcalMatacqDigi.h.

References tTrigS_.

Referenced by EcalMatacqAnalyzer::analyze(), and EcalPerEvtMatacqAnalyzer::analyze().

107 { return tTrigS_;}
std::vector<int> EcalMatacqDigi::vernier ( ) const
inline

Gets the vernier values (see Matacq documentation)

Returns
verniers

Definition at line 207 of file EcalMatacqDigi.h.

References vernier_.

Referenced by MatacqDataFormatter::interpretRawData().

207 { return vernier_; }
std::vector< Int_t > vernier_
void EcalMatacqDigi::vernier ( const std::vector< int > &  value)
inline

Sets verniers

Parameters
valuenew value

Definition at line 212 of file EcalMatacqDigi.h.

References relativeConstraints::value, and vernier_.

212 { vernier_ = value; }
std::vector< Int_t > vernier_
short EcalMatacqDigi::version ( ) const
inline

Sets trigger time position

Parameters
tTrigS(t_trig-t_0) in seconds, with t_trig the time of MATACQ trigger and t_0 the time of the first sample of each MATACQ channel. version of raw data format, the digis originate from.
Returns
raw data format version, -1 if not available.

Definition at line 120 of file EcalMatacqDigi.h.

References version_.

120 {return version_;}

Member Data Documentation

char EcalMatacqDigi::attenuation_dB_
private

Logarithmic attenuator setting in -10dB unit. Between 0 and 5*(-10dB), -1 if unknown.

Definition at line 322 of file EcalMatacqDigi.h.

Referenced by attenuation_dB(), init(), and swap().

Short_t EcalMatacqDigi::bxId_
private

Bunch crossing Id

Definition at line 326 of file EcalMatacqDigi.h.

Referenced by bxId(), init(), and swap().

int EcalMatacqDigi::chId_
private

Electronic channel id

Definition at line 291 of file EcalMatacqDigi.h.

Referenced by chId(), id(), and swap().

std::vector<Short_t> EcalMatacqDigi::data_
private

ADC count of time samples

Definition at line 295 of file EcalMatacqDigi.h.

Referenced by adcCount(), amplitudeV(), size(), and swap().

Int_t EcalMatacqDigi::delayA_
private

"Delay A" setting of laser delay box in ns.

Definition at line 350 of file EcalMatacqDigi.h.

Referenced by delayA(), init(), and swap().

Int_t EcalMatacqDigi::emtcDelay_
private

WTE-to-Laser delay of EMTC in LHC clock unit.

Definition at line 354 of file EcalMatacqDigi.h.

Referenced by emtcDelay(), init(), and swap().

Int_t EcalMatacqDigi::emtcPhase_
private

EMTC laser phase in 1/8th LHC clock unit.

Definition at line 358 of file EcalMatacqDigi.h.

Referenced by emtcPhase(), init(), and swap().

int EcalMatacqDigi::freq
private

Frequency mode. 1->1GHz sampling, 2->2GHz sampling

Definition at line 299 of file EcalMatacqDigi.h.

Int_t EcalMatacqDigi::l1a_
private

Event id. Actually LV1 ID.

Definition at line 330 of file EcalMatacqDigi.h.

Referenced by init(), l1a(), and swap().

Int_t EcalMatacqDigi::laserPower_
private

Laser power in percents (set with the linear attenuator).

Definition at line 362 of file EcalMatacqDigi.h.

Referenced by init(), laserPower(), and swap().

const double EcalMatacqDigi::lsb_ = 0.25e-3
static

LSB of ADC count in Volt

Definition at line 21 of file EcalMatacqDigi.h.

Referenced by amplitudeV().

const int EcalMatacqDigi::MAXSAMPLES = 2560
static

Maximum number of time samples

Definition at line 25 of file EcalMatacqDigi.h.

Int_t EcalMatacqDigi::orbitId_
private

Definition at line 334 of file EcalMatacqDigi.h.

Referenced by init(), orbitId(), and swap().

Short_t EcalMatacqDigi::postTrig_
private

Posttrig value (see Matacq documentation)

Definition at line 342 of file EcalMatacqDigi.h.

Referenced by init(), postTrig(), and swap().

char EcalMatacqDigi::triggerType_
private

Type of test trigger

Returns
triggerType

Definition at line 317 of file EcalMatacqDigi.h.

Referenced by init(), swap(), and triggerType().

Short_t EcalMatacqDigi::trigRec_
private

Trig Rec value (see Matacq documentation)

Definition at line 338 of file EcalMatacqDigi.h.

Referenced by init(), swap(), and trigRec().

double EcalMatacqDigi::ts_
private

Sampling period in seconds. In priniciple 1ns or 0.5ns

Definition at line 303 of file EcalMatacqDigi.h.

Referenced by swap(), and ts().

double EcalMatacqDigi::tTrigS_
private

Trigger time in seconds

Definition at line 307 of file EcalMatacqDigi.h.

Referenced by swap(), and tTrig().

Long64_t EcalMatacqDigi::tv_sec_
private

Matacq acquisition time stampWe don't use timeval directly, because its typedef is platform dependent.

Definition at line 368 of file EcalMatacqDigi.h.

Referenced by swap(), and timeStamp().

Long64_t EcalMatacqDigi::tv_usec_
private

Definition at line 369 of file EcalMatacqDigi.h.

Referenced by swap(), and timeStamp().

std::vector<Int_t> EcalMatacqDigi::vernier_
private

Vernier values (see Matacq documentation)

Definition at line 346 of file EcalMatacqDigi.h.

Referenced by init(), swap(), and vernier().

short EcalMatacqDigi::version_
private

version of raw data format, the digis originate from.

Definition at line 311 of file EcalMatacqDigi.h.

Referenced by swap(), and version().