Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
#include "DataFormats/EcalDigi/interface/EcalPseudoStripInputDigi.h"

EcalPseudoStripInputDigi::EcalPseudoStripInputDigi() : size_(0), data_(MAXSAMPLES) {}

EcalPseudoStripInputDigi::EcalPseudoStripInputDigi(const EcalTriggerElectronicsId& id)
    : id_(id), size_(0), data_(MAXSAMPLES) {}

int EcalPseudoStripInputDigi::sampleOfInterest() const {
  if (size_ == 1)
    return 0;
  else if (size_ == 5)
    return 2;
  else
    return -1;
}

/// get the pseudoStrip input of interesting sample
int EcalPseudoStripInputDigi::pseudoStripInput() const {
  int sample = sampleOfInterest();
  if (sample != -1)
    return data_[sample].pseudoStripInput();
  else
    return -1;
}

/// get the fine-grain bit of interesting sample
bool EcalPseudoStripInputDigi::fineGrain() const {
  int sample = sampleOfInterest();
  if (sample != -1)
    return data_[sample].fineGrain();
  else
    return false;
}

bool EcalPseudoStripInputDigi::isDebug() const {
  if (size_ == 1)
    return false;
  else if (size_ > 1)
    return true;
  return false;
}

void EcalPseudoStripInputDigi::setSize(int size) {
  if (size < 0)
    size_ = 0;
  else if (size > MAXSAMPLES)
    size_ = MAXSAMPLES;
  else
    size_ = size;
}

std::ostream& operator<<(std::ostream& s, const EcalPseudoStripInputDigi& digi) {
  s << digi.id() << " " << digi.size() << " samples " << std::endl;
  for (int i = 0; i < digi.size(); i++)
    s << "  " << digi.sample(i) << std::endl;
  return s;
}