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

constexpr float charge () const
 
constexpr float energy () const
 
constexpr raw_type getRaw (const unsigned which) const
 
constexpr HFQIE10Info ()
 
constexpr HFQIE10Info (const HcalDetId &id, float charge, float energy, float timeRising, float timeFalling, const raw_type *rawData, unsigned nData, unsigned soi)
 
constexpr HcalDetId id () const
 
bool isDataframeOK (bool checkAllTimeSlices=false) const
 
constexpr unsigned nRaw () const
 
constexpr unsigned soi () const
 
constexpr float timeFalling () const
 
constexpr 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

◆ key_type

Definition at line 17 of file HFQIE10Info.h.

◆ raw_type

Definition at line 18 of file HFQIE10Info.h.

Constructor & Destructor Documentation

◆ HFQIE10Info() [1/2]

constexpr HFQIE10Info::HFQIE10Info ( )
inline

Definition at line 23 of file HFQIE10Info.h.

References INVALID_RAW.

24  : charge_(0.f),
25  energy_(0.f),
26  timeRising_(0.f),
27  timeFalling_(-1.f),
29  nRaw_(0),
30  soi_(0) {}
float timeFalling_
Definition: HFQIE10Info.h:114
static const raw_type INVALID_RAW
Definition: HFQIE10Info.h:21
double f[11][100]
float timeRising_
Definition: HFQIE10Info.h:113
raw_type raw_[N_RAW_MAX]
Definition: HFQIE10Info.h:115
uint8_t soi_
Definition: HFQIE10Info.h:117
float charge_
Definition: HFQIE10Info.h:111
uint8_t nRaw_
Definition: HFQIE10Info.h:116
float energy_
Definition: HFQIE10Info.h:112

◆ HFQIE10Info() [2/2]

constexpr 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 34 of file HFQIE10Info.h.

References INVALID_RAW.

42  : id_(id),
43  charge_(charge),
44  energy_(energy),
48  nRaw_(std::min(nData, N_RAW_MAX)),
49  soi_(0) {
50  if (nData) {
51  unsigned tbegin = 0;
52  if (soi >= nData) {
53  // No SOI in the data. This situation is not normal
54  // but can not be addressed in this code.
55  if (nData > nRaw_)
56  tbegin = nData - nRaw_;
57  soi_ = nRaw_;
58  } else {
59  if (nData > nRaw_) {
60  // Want to keep at least 2 presamples
61  if (soi > 2U) {
62  tbegin = soi - 2U;
63  if (tbegin + nRaw_ > nData)
64  tbegin = nData - nRaw_;
65  }
66  }
67  soi_ = soi - tbegin;
68  }
69 
70  raw_type* to = &raw_[0];
71  const raw_type* from = rawData + tbegin;
72  for (unsigned i = 0; i < nRaw_; ++i)
73  *to++ = *from++;
74  }
75  }
constexpr float charge() const
Definition: HFQIE10Info.h:79
float timeFalling_
Definition: HFQIE10Info.h:114
static const raw_type INVALID_RAW
Definition: HFQIE10Info.h:21
constexpr float energy() const
Definition: HFQIE10Info.h:80
HcalDetId id_
Definition: HFQIE10Info.h:109
constexpr float timeFalling() const
Definition: HFQIE10Info.h:82
constexpr float timeRising() const
Definition: HFQIE10Info.h:81
QIE10DataFrame::Sample::wide_type raw_type
Definition: HFQIE10Info.h:18
float timeRising_
Definition: HFQIE10Info.h:113
raw_type raw_[N_RAW_MAX]
Definition: HFQIE10Info.h:115
uint8_t soi_
Definition: HFQIE10Info.h:117
static const unsigned N_RAW_MAX
Definition: HFQIE10Info.h:20
float charge_
Definition: HFQIE10Info.h:111
constexpr unsigned soi() const
Definition: HFQIE10Info.h:84
uint8_t nRaw_
Definition: HFQIE10Info.h:116
float energy_
Definition: HFQIE10Info.h:112

Member Function Documentation

◆ charge()

constexpr float HFQIE10Info::charge ( ) const
inline

Definition at line 79 of file HFQIE10Info.h.

References charge_.

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

79 { return charge_; }
float charge_
Definition: HFQIE10Info.h:111

◆ energy()

constexpr float HFQIE10Info::energy ( ) const
inline

◆ getRaw()

constexpr raw_type HFQIE10Info::getRaw ( const unsigned  which) const
inline

Definition at line 85 of file HFQIE10Info.h.

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

Referenced by HFRecHitAuxSetter::setAux().

85 { return which >= nRaw_ ? INVALID_RAW : raw_[which]; }
static const raw_type INVALID_RAW
Definition: HFQIE10Info.h:21
raw_type raw_[N_RAW_MAX]
Definition: HFQIE10Info.h:115
def which(cmd)
Definition: eostools.py:336
uint8_t nRaw_
Definition: HFQIE10Info.h:116

◆ id()

constexpr HcalDetId HFQIE10Info::id ( ) const
inline

Definition at line 77 of file HFQIE10Info.h.

References id_.

77 { return id_; }
HcalDetId id_
Definition: HFQIE10Info.h:109

◆ isDataframeOK()

bool HFQIE10Info::isDataframeOK ( bool  checkAllTimeSlices = false) const
inline

Definition at line 94 of file HFQIE10Info.h.

References mps_fire::i, nRaw_, raw_, alignCSCRings::s, and soi_.

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

94  {
95  bool hardwareOK = true;
96  if (soi_ >= nRaw_ || checkAllTimeSlices)
97  for (unsigned i = 0; i < nRaw_ && hardwareOK; ++i) {
99  hardwareOK = s.ok();
100  }
101  else {
103  hardwareOK = s.ok();
104  }
105  return hardwareOK;
106  }
raw_type raw_[N_RAW_MAX]
Definition: HFQIE10Info.h:115
uint8_t soi_
Definition: HFQIE10Info.h:117
uint8_t nRaw_
Definition: HFQIE10Info.h:116

◆ nRaw()

constexpr unsigned HFQIE10Info::nRaw ( ) const
inline

Definition at line 83 of file HFQIE10Info.h.

References nRaw_.

Referenced by HFRecHitAuxSetter::setAux().

83 { return nRaw_; }
uint8_t nRaw_
Definition: HFQIE10Info.h:116

◆ soi()

constexpr unsigned HFQIE10Info::soi ( ) const
inline

Definition at line 84 of file HFQIE10Info.h.

References soi_.

Referenced by HFRecHitAuxSetter::setAux().

84 { return soi_; }
uint8_t soi_
Definition: HFQIE10Info.h:117

◆ timeFalling()

constexpr float HFQIE10Info::timeFalling ( ) const
inline

Definition at line 82 of file HFQIE10Info.h.

References timeFalling_.

Referenced by HFSimpleTimeCheck::reconstruct().

82 { return timeFalling_; }
float timeFalling_
Definition: HFQIE10Info.h:114

◆ timeRising()

constexpr float HFQIE10Info::timeRising ( ) const
inline

Member Data Documentation

◆ charge_

float HFQIE10Info::charge_
private

Definition at line 111 of file HFQIE10Info.h.

Referenced by charge().

◆ energy_

float HFQIE10Info::energy_
private

Definition at line 112 of file HFQIE10Info.h.

Referenced by energy().

◆ id_

HcalDetId HFQIE10Info::id_
private

Definition at line 109 of file HFQIE10Info.h.

Referenced by id().

◆ INVALID_RAW

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

Definition at line 21 of file HFQIE10Info.h.

Referenced by getRaw(), and HFQIE10Info().

◆ N_RAW_MAX

const unsigned HFQIE10Info::N_RAW_MAX = 5
static

Definition at line 20 of file HFQIE10Info.h.

Referenced by HFPreRecAlgo::reconstruct().

◆ nRaw_

uint8_t HFQIE10Info::nRaw_
private

Definition at line 116 of file HFQIE10Info.h.

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

◆ raw_

raw_type HFQIE10Info::raw_[N_RAW_MAX]
private

Definition at line 115 of file HFQIE10Info.h.

Referenced by getRaw(), and isDataframeOK().

◆ soi_

uint8_t HFQIE10Info::soi_
private

Definition at line 117 of file HFQIE10Info.h.

Referenced by isDataframeOK(), and soi().

◆ timeFalling_

float HFQIE10Info::timeFalling_
private

Definition at line 114 of file HFQIE10Info.h.

Referenced by timeFalling().

◆ timeRising_

float HFQIE10Info::timeRising_
private

Definition at line 113 of file HFQIE10Info.h.

Referenced by timeRising().