CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
HcalCalibDataFrame.h
Go to the documentation of this file.
1 #ifndef DIGIHCAL_HcalCalibDATAFRAME_H
2 #define DIGIHCAL_HcalCalibDATAFRAME_H
3 
7 #include <vector>
8 #include <ostream>
9 
16 public:
18 
19  HcalCalibDataFrame(); // for persistence
20  explicit HcalCalibDataFrame(const HcalCalibDetId& id);
21 
22  const HcalCalibDetId& id() const { return id_; }
23  const HcalElectronicsId& elecId() const { return electronicsId_; }
24 
26  int size() const { return size_ & 0xF; }
28  int presamples() const { return hcalPresamples_ & 0xF; }
30  bool zsMarkAndPass() const { return (hcalPresamples_ & 0x10); }
32  bool zsUnsuppressed() const { return (hcalPresamples_ & 0x20); }
34  uint32_t zsCrossingMask() const { return (hcalPresamples_ & 0x3FF000) >> 12; }
35 
37  const HcalQIESample& operator[](int i) const { return data_[i]; }
39  const HcalQIESample& sample(int i) const { return data_[i]; }
40 
42  bool validate(int firstSample = 0, int nSamples = 100) const;
43 
45  int fiberIdleOffset() const;
46 
47  void setSize(int size);
48  void setPresamples(int ps);
49  void setSample(int i, const HcalQIESample& sam) { data_[i] = sam; }
50  void setZSInfo(bool unsuppressed, bool markAndPass, uint32_t crossingMask = 0);
51  void setReadoutIds(const HcalElectronicsId& eid);
52  void setFiberIdleOffset(int offset);
53 
54  static const int MAXSAMPLES = 10;
55 
56 private:
59  int size_;
62 };
63 
64 std::ostream& operator<<(std::ostream&, const HcalCalibDataFrame&);
65 
66 #endif
void setPresamples(int ps)
int fiberIdleOffset() const
offset of bunch number for this channel relative to nominal set in the unpacker (range is +7-&gt;-7...
void setZSInfo(bool unsuppressed, bool markAndPass, uint32_t crossingMask=0)
uint32_t zsCrossingMask() const
zs crossing mask (which sums considered)
bool zsUnsuppressed() const
was ZS unsuppressed?
int presamples() const
number of samples before the sample from the triggered beam crossing (according to the hardware) ...
bool validate(int firstSample=0, int nSamples=100) const
validate appropriate DV and ER bits as well as capid rotation for the specified samples (default is a...
std::ostream & operator<<(std::ostream &out, const ALILine &li)
Definition: ALILine.cc:167
HcalQIESample data_[MAXSAMPLES]
const HcalElectronicsId & elecId() const
int size() const
total number of samples in the digi
void setSize(int size)
const HcalQIESample & sample(int i) const
access a sample
const HcalCalibDetId & id() const
void setFiberIdleOffset(int offset)
constexpr size_t nSamples
HcalCalibDetId key_type
For the sorted collection.
void setReadoutIds(const HcalElectronicsId &eid)
const HcalQIESample & operator[](int i) const
access a sample
static const int MAXSAMPLES
HcalElectronicsId electronicsId_
bool zsMarkAndPass() const
was ZS MarkAndPass?
void setSample(int i, const HcalQIESample &sam)
Readout chain identification for Hcal.