CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Static Public Attributes | Private Attributes
HFQIE10Info Class Reference

#include <HFQIE10Info.h>

Public Types

typedef HcalDetId key_type
 
typedef QIE10DataFrame::Sample::wide_type raw_type
 

Public Member Functions

float charge () const
 
float energy () const
 
raw_type getRaw (const unsigned which) const
 
 HFQIE10Info ()
 
 HFQIE10Info (const HcalDetId &id, float charge, float energy, float timeRising, float timeFalling, const raw_type *rawData, unsigned nData, unsigned soi)
 
HcalDetId id () const
 
bool isDataframeOK (bool checkAllTimeSlices=false) const
 
unsigned nRaw () const
 
unsigned soi () const
 
float timeFalling () const
 
float timeRising () const
 

Static Public Attributes

static const raw_type INVALID_RAW = std::numeric_limits<raw_type>::max()
 
static const unsigned N_RAW_MAX = 5
 

Private Attributes

float charge_
 
float energy_
 
HcalDetId id_
 
uint8_t nRaw_
 
raw_type raw_ [N_RAW_MAX]
 
uint8_t soi_
 
float timeFalling_
 
float timeRising_
 

Detailed Description

Class to contain the info needed to perform HF reconstruction using QIE10 chips and dual-anode readout. Intended for use inside HFPreRecHit.

Definition at line 15 of file HFQIE10Info.h.

Member Typedef Documentation

Definition at line 18 of file HFQIE10Info.h.

Definition at line 19 of file HFQIE10Info.h.

Constructor & Destructor Documentation

HFQIE10Info::HFQIE10Info ( )
inline

Definition at line 24 of file HFQIE10Info.h.

References INVALID_RAW, nRaw_, and soi_.

25  : charge_(0.f), energy_(0.f), timeRising_(0.f), timeFalling_(-1.f),
27  nRaw_(0), soi_(0)
28  {}
float timeFalling_
Definition: HFQIE10Info.h:105
static const raw_type INVALID_RAW
Definition: HFQIE10Info.h:22
double f[11][100]
float timeRising_
Definition: HFQIE10Info.h:104
raw_type raw_[N_RAW_MAX]
Definition: HFQIE10Info.h:106
uint8_t soi_
Definition: HFQIE10Info.h:108
float charge_
Definition: HFQIE10Info.h:102
uint8_t nRaw_
Definition: HFQIE10Info.h:107
float energy_
Definition: HFQIE10Info.h:103
HFQIE10Info::HFQIE10Info ( const HcalDetId id,
float  charge,
float  energy,
float  timeRising,
float  timeFalling,
const raw_type rawData,
unsigned  nData,
unsigned  soi 
)
inline

Definition at line 32 of file HFQIE10Info.h.

References mps_fire::i, INVALID_RAW, min(), nRaw_, raw_, soi(), soi_, and mitigatedMETSequence_cff::U.

38  nRaw_(std::min(nData, N_RAW_MAX)), soi_(0)
39  {
40  if (nData) {
41  unsigned tbegin = 0;
42  if (soi >= nData)
43  {
44  // No SOI in the data. This situation is not normal
45  // but can not be addressed in this code.
46  if (nData > nRaw_)
47  tbegin = nData - nRaw_;
48  soi_ = nRaw_;
49  } else {
50  if (nData > nRaw_) {
51  // Want to keep at least 2 presamples
52  if (soi > 2U) {
53  tbegin = soi - 2U;
54  if (tbegin + nRaw_ > nData)
55  tbegin = nData - nRaw_;
56  }
57  }
58  soi_ = soi - tbegin;
59  }
60 
61  raw_type* to = &raw_[0];
62  const raw_type* from = rawData + tbegin;
63  for (unsigned i=0; i<nRaw_; ++i)
64  *to++ = *from++;
65  }
66  }
float timeFalling_
Definition: HFQIE10Info.h:105
float timeRising() const
Definition: HFQIE10Info.h:72
static const raw_type INVALID_RAW
Definition: HFQIE10Info.h:22
HcalDetId id_
Definition: HFQIE10Info.h:100
float energy() const
Definition: HFQIE10Info.h:71
T min(T a, T b)
Definition: MathUtil.h:58
QIE10DataFrame::Sample::wide_type raw_type
Definition: HFQIE10Info.h:19
float timeRising_
Definition: HFQIE10Info.h:104
raw_type raw_[N_RAW_MAX]
Definition: HFQIE10Info.h:106
uint8_t soi_
Definition: HFQIE10Info.h:108
unsigned soi() const
Definition: HFQIE10Info.h:75
float timeFalling() const
Definition: HFQIE10Info.h:73
static const unsigned N_RAW_MAX
Definition: HFQIE10Info.h:21
float charge_
Definition: HFQIE10Info.h:102
uint8_t nRaw_
Definition: HFQIE10Info.h:107
float charge() const
Definition: HFQIE10Info.h:70
float energy_
Definition: HFQIE10Info.h:103

Member Function Documentation

float HFQIE10Info::charge ( ) const
inline

Definition at line 70 of file HFQIE10Info.h.

References charge_.

Referenced by HFPreRecHit::charge(), HFPreRecHit::chargeAsymmetry(), and HFFlexibleTimeCheck::determineAnodeStatus().

70 {return charge_;}
float charge_
Definition: HFQIE10Info.h:102
float HFQIE10Info::energy ( ) const
inline
raw_type HFQIE10Info::getRaw ( const unsigned  which) const
inline

Definition at line 76 of file HFQIE10Info.h.

References nRaw_, raw_, and eostools::which().

Referenced by HFRecHitAuxSetter::setAux().

77  {return which >= nRaw_ ? INVALID_RAW : raw_[which];}
static const raw_type INVALID_RAW
Definition: HFQIE10Info.h:22
raw_type raw_[N_RAW_MAX]
Definition: HFQIE10Info.h:106
def which(cmd)
Definition: eostools.py:335
uint8_t nRaw_
Definition: HFQIE10Info.h:107
HcalDetId HFQIE10Info::id ( ) const
inline

Definition at line 68 of file HFQIE10Info.h.

References id_.

Referenced by HFPreReconstructor::fillInfos().

68 {return id_;}
HcalDetId id_
Definition: HFQIE10Info.h:100
bool HFQIE10Info::isDataframeOK ( bool  checkAllTimeSlices = false) const
inline

Definition at line 86 of file HFQIE10Info.h.

References mps_fire::i, nRaw_, QIE10DataFrame::Sample::ok(), raw_, alignCSCRings::s, and soi_.

Referenced by HFFlexibleTimeCheck::determineAnodeStatus(), and HFSimpleTimeCheck::determineAnodeStatus().

86  {
87  bool hardwareOK = true;
88  if (soi_ >= nRaw_ || checkAllTimeSlices)
89  for (unsigned i=0; i<nRaw_ && hardwareOK; ++i) {
91  hardwareOK = s.ok();
92  } else {
94  hardwareOK = s.ok();
95  }
96  return hardwareOK;
97  }
raw_type raw_[N_RAW_MAX]
Definition: HFQIE10Info.h:106
uint8_t soi_
Definition: HFQIE10Info.h:108
uint8_t nRaw_
Definition: HFQIE10Info.h:107
unsigned HFQIE10Info::nRaw ( ) const
inline

Definition at line 74 of file HFQIE10Info.h.

References nRaw_.

Referenced by HFRecHitAuxSetter::setAux().

74 {return nRaw_;}
uint8_t nRaw_
Definition: HFQIE10Info.h:107
unsigned HFQIE10Info::soi ( ) const
inline

Definition at line 75 of file HFQIE10Info.h.

References soi_.

Referenced by HFQIE10Info(), and HFRecHitAuxSetter::setAux().

75 {return soi_;}
uint8_t soi_
Definition: HFQIE10Info.h:108
float HFQIE10Info::timeFalling ( ) const
inline

Definition at line 73 of file HFQIE10Info.h.

References timeFalling_.

Referenced by HFSimpleTimeCheck::reconstruct().

73 {return timeFalling_;}
float timeFalling_
Definition: HFQIE10Info.h:105
float HFQIE10Info::timeRising ( ) const
inline

Member Data Documentation

float HFQIE10Info::charge_
private

Definition at line 102 of file HFQIE10Info.h.

Referenced by charge().

float HFQIE10Info::energy_
private

Definition at line 103 of file HFQIE10Info.h.

Referenced by energy().

HcalDetId HFQIE10Info::id_
private

Definition at line 100 of file HFQIE10Info.h.

Referenced by id().

const raw_type HFQIE10Info::INVALID_RAW = std::numeric_limits<raw_type>::max()
static

Definition at line 22 of file HFQIE10Info.h.

Referenced by HFQIE10Info().

const unsigned HFQIE10Info::N_RAW_MAX = 5
static

Definition at line 21 of file HFQIE10Info.h.

Referenced by HFPreRecAlgo::reconstruct().

uint8_t HFQIE10Info::nRaw_
private

Definition at line 107 of file HFQIE10Info.h.

Referenced by getRaw(), HFQIE10Info(), isDataframeOK(), and nRaw().

raw_type HFQIE10Info::raw_[N_RAW_MAX]
private

Definition at line 106 of file HFQIE10Info.h.

Referenced by getRaw(), HFQIE10Info(), and isDataframeOK().

uint8_t HFQIE10Info::soi_
private

Definition at line 108 of file HFQIE10Info.h.

Referenced by HFQIE10Info(), isDataframeOK(), and soi().

float HFQIE10Info::timeFalling_
private

Definition at line 105 of file HFQIE10Info.h.

Referenced by timeFalling().

float HFQIE10Info::timeRising_
private

Definition at line 104 of file HFQIE10Info.h.

Referenced by timeRising().