CMS 3D CMS Logo

CastorDataFrame.h
Go to the documentation of this file.
1 #ifndef DIGIHCAL_CASTORDATAFRAME_H
2 #define DIGIHCAL_CASTORDATAFRAME_H
3 
7 #include <vector>
8 #include <ostream>
9 
16 public:
18 
19  CastorDataFrame(); // for persistence
20  explicit CastorDataFrame(const HcalCastorDetId& id);
21 
22  const HcalCastorDetId& id() const { return id_; }
23  // ElecId not yet specified 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]; }
41  int fiberIdleOffset() const;
42 
44  bool validate(int firstSample = 0, int nSamples = 100) const;
45 
46  void setSize(int size);
47  void setPresamples(int ps);
48  void setZSInfo(bool unsuppressed, bool markAndPass, uint32_t crossingMask = 0);
49  void setSample(int i, const HcalQIESample& sam) { data_[i] = sam; }
50  void setFiberIdleOffset(int offset);
51 
52  // ElecId not yet specified void setReadoutIds(const HcalElectronicsId& eid);
53 
54  static const int MAXSAMPLES = 10;
55 
56 private:
58  // ElecId not yet specified HcalElectronicsId electronicsId_;
59  int size_;
62 };
63 
64 std::ostream& operator<<(std::ostream&, const CastorDataFrame&);
65 
66 #endif
void setFiberIdleOffset(int offset)
void setSample(int i, const HcalQIESample &sam)
const HcalQIESample & sample(int i) const
access a sample
std::ostream & operator<<(std::ostream &, const CastorDataFrame &)
HcalCastorDetId key_type
For the sorted collection.
void setZSInfo(bool unsuppressed, bool markAndPass, uint32_t crossingMask=0)
int size() const
total number of samples in the digi
bool zsUnsuppressed() const
was ZS unsuppressed?
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...
uint32_t zsCrossingMask() const
zs crossing mask (which sums considered)
int fiberIdleOffset() const
offset of bunch number for this channel relative to nominal set in the unpacker (range is +7->-7...
bool zsMarkAndPass() const
was ZS MarkAndPass?
int presamples() const
number of samples before the sample from the triggered beam crossing (according to the hardware) ...
const HcalCastorDetId & id() const
HcalQIESample data_[MAXSAMPLES]
const HcalQIESample & operator[](int i) const
access a sample
void setPresamples(int ps)
HcalCastorDetId id_
static const int MAXSAMPLES
void setSize(int size)