File indexing completed on 2024-04-06 12:04:04
0001 #include "DataFormats/EcalDigi/interface/EcalEBPhase2TriggerPrimitiveDigi.h"
0002 #include <iostream>
0003 #include <algorithm>
0004
0005 static constexpr int MAXSAMPLES = 20;
0006
0007
0008 EcalEBPhase2TriggerPrimitiveDigi::EcalEBPhase2TriggerPrimitiveDigi() : size_(0), data_(MAXSAMPLES) {}
0009
0010 EcalEBPhase2TriggerPrimitiveDigi::EcalEBPhase2TriggerPrimitiveDigi(const EBDetId& id)
0011 : id_(id), size_(0), data_(MAXSAMPLES) {}
0012
0013 void EcalEBPhase2TriggerPrimitiveDigi::setSample(int i, const EcalEBPhase2TriggerPrimitiveSample& sam) {
0014 data_[i] = sam;
0015 }
0016
0017 int EcalEBPhase2TriggerPrimitiveDigi::sampleOfInterest() const {
0018
0019 if (size_ == 1)
0020 return 0;
0021 else if (size_ == 5)
0022 return 2;
0023 else
0024 return -1;
0025 }
0026
0027
0028 int EcalEBPhase2TriggerPrimitiveDigi::encodedEt() const {
0029 int sample = sampleOfInterest();
0030 if (sample != -1)
0031 return data_[sample].encodedEt();
0032 else
0033 return -1;
0034 }
0035
0036 bool EcalEBPhase2TriggerPrimitiveDigi::l1aSpike() const {
0037 int sample = sampleOfInterest();
0038 if (sample != -1)
0039 return data_[sample].l1aSpike();
0040 else
0041 return -1;
0042 }
0043
0044 int EcalEBPhase2TriggerPrimitiveDigi::time() const {
0045 int sample = sampleOfInterest();
0046 if (sample != -1)
0047 return data_[sample].time();
0048 else
0049 return -1;
0050 }
0051
0052 bool EcalEBPhase2TriggerPrimitiveDigi::isDebug() const { return (size_ > 1); }
0053
0054 void EcalEBPhase2TriggerPrimitiveDigi::setSize(int size) { size_ = std::clamp(size_, 0, MAXSAMPLES); }
0055
0056 std::ostream& operator<<(std::ostream& s, const EcalEBPhase2TriggerPrimitiveDigi& digi) {
0057 s << digi.id() << " " << digi.size() << " samples " << std::endl;
0058 for (int i = 0; i < digi.size(); i++)
0059 s << " " << digi.sample(i) << std::endl;
0060 return s;
0061 }