Back to home page

Project CMSSW displayed by LXR

 
 

    


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 // This is the number of digi samples one wants to put in the TP digis. In Phase I was 5, but this setting was used. In the end in Phase I one one sample, corresponding to BC0 was filled. For Phase2 we have not decided yet. We leave this setting as it is while we decide what to do
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   // sample  of interest to be save in the TP digis
0019   if (size_ == 1)
0020     return 0;
0021   else if (size_ == 5)
0022     return 2;
0023   else
0024     return -1;
0025 }
0026 
0027 /// get the encoded/compressed Et of interesting sample
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 }