CMS 3D CMS Logo

CastorTriggerPrimitiveDigi.h
Go to the documentation of this file.
1 #ifndef CASTORTRIGGERPRIMITIVEDIGI_H
2 #define CASTORTRIGGERPRIMITIVEDIGI_H 1
3 
4 #include <ostream>
5 #include <vector>
8 
14 public:
16 
17  CastorTriggerPrimitiveDigi(); // for persistence
18  explicit CastorTriggerPrimitiveDigi(const HcalCastorDetId& id);
19 
20  const HcalCastorDetId& id() const { return id_; }
21  int size() const { return (size_ & 0xF); }
22  int presamples() const { return hcalPresamples_ & 0xF; }
23 
25  bool zsMarkAndPass() const { return (hcalPresamples_ & 0x10); }
27  bool zsUnsuppressed() const { return (hcalPresamples_ & 0x20); }
28 
29  void setZSInfo(bool unsuppressed, bool markAndPass);
30 
31  const HcalTriggerPrimitiveSample& operator[](int i) const { return data_[i]; }
32  const HcalTriggerPrimitiveSample& sample(int i) const { return data_[i]; }
33 
35  const HcalTriggerPrimitiveSample& t0() const { return data_[presamples()]; }
37  bool SOI_fineGrain() const { return t0().fineGrain(); }
39  int SOI_compressedEt() const { return t0().compressedEt(); }
40 
41  int tpchannel(int i) const { return ((data_[i].raw() & 0xf800) >> 11); }
42  int tpdata(int i) const { return (data_[i].raw() & 0x01ff); }
43  bool isSOI(int i) const { return ((data_[i].raw() & 0x0200) == 0x0200); }
44  int SOI_tpchannel() const { return ((data_[presamples()].raw() & 0xf800) >> 11); }
45  int SOI_tpdata() const { return (data_[presamples()].raw() & 0x01ff); }
46 
47  void setSize(int size);
48  void setPresamples(int ps);
49  void setSample(int i, const HcalTriggerPrimitiveSample& sam) { data_[i] = sam; }
50 
51  static const int MAXSAMPLES = 10;
52 
53 private:
55  int size_;
58 };
59 
60 std::ostream& operator<<(std::ostream& s, const CastorTriggerPrimitiveDigi& digi);
61 
62 #endif
std::ostream & operator<<(std::ostream &s, const CastorTriggerPrimitiveDigi &digi)
const HcalCastorDetId & id() const
int compressedEt() const
get the encoded/compressed Et
HcalCastorDetId key_type
For the sorted collection.
void setSample(int i, const HcalTriggerPrimitiveSample &sam)
HcalTriggerPrimitiveSample data_[MAXSAMPLES]
bool zsMarkAndPass() const
was ZS MarkAndPass?
bool fineGrain(int i=0) const
get fine-grain bit (traditional)
const HcalTriggerPrimitiveSample & operator[](int i) const
bool SOI_fineGrain() const
Fine-grain bit for the "Sample of Interest".
bool zsUnsuppressed() const
was ZS unsuppressed?
int SOI_compressedEt() const
Compressed ET for the "Sample of Interest".
const HcalTriggerPrimitiveSample & t0() const
Full "Sample of Interest".
void setZSInfo(bool unsuppressed, bool markAndPass)
const HcalTriggerPrimitiveSample & sample(int i) const