CMS 3D CMS Logo

Classes | Functions
HcalTTPDigi.h File Reference
#include <cstdint>
#include <vector>
#include <ostream>

Go to the source code of this file.

Classes

class  HcalTTPDigi
 

Functions

std::ostream & operator<< (std::ostream &, const HcalTTPDigi &)
 

Function Documentation

◆ operator<<()

std::ostream& operator<< ( std::ostream &  ,
const HcalTTPDigi  
)

Definition at line 88 of file HcalTTPDigi.cc.

References HcalTTPDigi::algorithm(), HcalTTPDigi::algorithmWord(), HcalTTPDigi::fwVersion(), mps_fire::i, HcalTTPDigi::id(), HcalTTPDigi::inputPattern(), dqmiolumiharvest::j, MillePedeFileConverter_cfg::out, HcalTTPDigi::pipelineLength(), HcalTTPDigi::presamples(), HcalTTPDigi::size(), and HcalTTPDigi::triggerOutput().

88  {
89  out << "HcalTTPDigi " << digi.id() << " with " << digi.size() << " samples, " << digi.presamples() << " presamples. "
90  << std::endl;
91  out << "Firmware version " << digi.fwVersion() << " and flavor/algo " << digi.algorithm();
92  out << "; pipeline length " << digi.pipelineLength() << std::endl;
93  int relativeSize = digi.size() - digi.presamples();
94  for (int i = -digi.presamples(); i < relativeSize; i++) {
95  for (unsigned int j = digi.inputPattern(i).size(); j > 0; j--) {
96  if (!(j % 16))
97  out << " ";
98  out << digi.inputPattern(i).at(j - 1);
99  }
100  if (i < 0)
101  out << " (PRE)"; // Indicates presamples
102  out << std::endl;
103  out << "ALGO: ";
104  for (int j = 19; j >= 0; j--)
105  out << bool((digi.algorithmWord(i)) & (1 << j));
106 
107  out << " TRIG: ";
108  for (int j = 3; j >= 0; j--)
109  out << bool((digi.triggerOutput(i)) & (1 << j));
110  out << std::endl;
111  }
112 
113  return out;
114 }