File indexing completed on 2024-09-07 04:38:12
0001 #ifndef DIGIECAL_ECALTBHODOSCOPEPLANERAWHITS_H
0002 #define DIGIECAL_ECALTBHODOSCOPEPLANERAWHITS_H 1
0003
0004 #include <ostream>
0005 #include <vector>
0006
0007
0008
0009
0010
0011
0012
0013 class EcalTBHodoscopePlaneRawHits {
0014 public:
0015 EcalTBHodoscopePlaneRawHits() : rawChannelHits_(0) {}
0016
0017 EcalTBHodoscopePlaneRawHits(unsigned int channels) {
0018 rawChannelHits_.reserve(channels);
0019 for (unsigned int i = 0; i < channels; i++)
0020 rawChannelHits_[i] = false;
0021 }
0022
0023
0024 unsigned int channels() const { return rawChannelHits_.size(); }
0025 const std::vector<bool>& hits() const { return rawChannelHits_; }
0026
0027 unsigned int numberOfFiredHits() const {
0028 int numberOfHits = 0;
0029 for (unsigned int i = 0; i < rawChannelHits_.size(); i++)
0030 if (rawChannelHits_[i])
0031 numberOfHits++;
0032 return numberOfHits;
0033 }
0034
0035 bool operator[](unsigned int i) const { return rawChannelHits_[i]; }
0036 bool isChannelFired(unsigned int i) const { return rawChannelHits_[i]; }
0037
0038
0039 void setChannels(unsigned int size) { rawChannelHits_.resize(size); };
0040
0041 void addHit(unsigned int i) {
0042 if (rawChannelHits_.size() < i + 1)
0043 rawChannelHits_.resize(i + 1);
0044 rawChannelHits_[i] = true;
0045 };
0046
0047 void setHit(unsigned int i, bool status) {
0048 if (rawChannelHits_.size() < i + 1)
0049 rawChannelHits_.resize(i + 1);
0050 rawChannelHits_[i] = status;
0051 };
0052
0053 private:
0054 std::vector<bool> rawChannelHits_;
0055 };
0056
0057 std::ostream& operator<<(std::ostream&, const EcalTBHodoscopePlaneRawHits&);
0058
0059 #endif