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 private:
57 // ElecId not yet specified HcalElectronicsId electronicsId_;
58  int size_;
61 };
62 
63 std::ostream& operator<<(std::ostream&, const CastorDataFrame&);
64 
65 #endif
void setFiberIdleOffset(int offset)
void setSample(int i, const HcalQIESample &sam)
int presamples() const
number of samples before the sample from the triggered beam crossing (according to the hardware) ...
int fiberIdleOffset() const
offset of bunch number for this channel relative to nominal set in the unpacker (range is +7->-7...
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)
bool zsMarkAndPass() const
was ZS MarkAndPass?
uint32_t zsCrossingMask() const
zs crossing mask (which sums considered)
constexpr size_t nSamples
HcalQIESample data_[MAXSAMPLES]
bool zsUnsuppressed() const
was ZS unsuppressed?
const HcalQIESample & operator[](int i) const
access a sample
const HcalCastorDetId & id() const
void setPresamples(int ps)
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...
int size() const
total number of samples in the digi
HcalCastorDetId id_
static const int MAXSAMPLES
void setSize(int size)