CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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

Definition at line 17 of file HFQIE10Info.h.

Definition at line 18 of file HFQIE10Info.h.

Constructor & Destructor Documentation

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
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
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  }
float timeFalling_
Definition: HFQIE10Info.h:114
static const raw_type INVALID_RAW
Definition: HFQIE10Info.h:21
HcalDetId id_
Definition: HFQIE10Info.h:109
constexpr unsigned soi() const
Definition: HFQIE10Info.h:84
constexpr float timeRising() const
Definition: HFQIE10Info.h:81
T min(T a, T b)
Definition: MathUtil.h:58
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
constexpr float charge() const
Definition: HFQIE10Info.h:79
constexpr float energy() const
Definition: HFQIE10Info.h:80
static const unsigned N_RAW_MAX
Definition: HFQIE10Info.h:20
float charge_
Definition: HFQIE10Info.h:111
constexpr float timeFalling() const
Definition: HFQIE10Info.h:82
uint8_t nRaw_
Definition: HFQIE10Info.h:116
float energy_
Definition: HFQIE10Info.h:112

Member Function Documentation

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
constexpr float HFQIE10Info::energy ( ) const
inline

Definition at line 80 of file HFQIE10Info.h.

References energy_.

Referenced by HFPreRecHit::energy(), HFPreRecHit::energyAsymmetry(), Jet.Jet::rawEnergy(), and HFSimpleTimeCheck::reconstruct().

80 { return energy_; }
float energy_
Definition: HFQIE10Info.h:112
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]; }
def which
Definition: eostools.py:336
static const raw_type INVALID_RAW
Definition: HFQIE10Info.h:21
raw_type raw_[N_RAW_MAX]
Definition: HFQIE10Info.h:115
uint8_t nRaw_
Definition: HFQIE10Info.h:116
constexpr HcalDetId HFQIE10Info::id ( ) const
inline

Definition at line 77 of file HFQIE10Info.h.

References id_.

Referenced by HFPreReconstructor::fillInfos().

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

Definition at line 94 of file HFQIE10Info.h.

References mps_fire::i, nRaw_, QIE10DataFrame::Sample::ok(), 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
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
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
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
constexpr float HFQIE10Info::timeRising ( ) const
inline

Member Data Documentation

float HFQIE10Info::charge_
private

Definition at line 111 of file HFQIE10Info.h.

Referenced by charge().

float HFQIE10Info::energy_
private

Definition at line 112 of file HFQIE10Info.h.

Referenced by energy().

HcalDetId HFQIE10Info::id_
private

Definition at line 109 of file HFQIE10Info.h.

Referenced by id().

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().

const unsigned HFQIE10Info::N_RAW_MAX = 5
static

Definition at line 20 of file HFQIE10Info.h.

Referenced by HFPreRecAlgo::reconstruct().

uint8_t HFQIE10Info::nRaw_
private

Definition at line 116 of file HFQIE10Info.h.

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

raw_type HFQIE10Info::raw_[N_RAW_MAX]
private

Definition at line 115 of file HFQIE10Info.h.

Referenced by getRaw(), and isDataframeOK().

uint8_t HFQIE10Info::soi_
private

Definition at line 117 of file HFQIE10Info.h.

Referenced by isDataframeOK(), and soi().

float HFQIE10Info::timeFalling_
private

Definition at line 114 of file HFQIE10Info.h.

Referenced by timeFalling().

float HFQIE10Info::timeRising_
private

Definition at line 113 of file HFQIE10Info.h.

Referenced by timeRising().