CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Attributes | Private Attributes
CaloSamples Class Reference

#include <CaloSamples.h>

Public Member Functions

 CaloSamples ()
 
 CaloSamples (const DetId &id, int size)
 
 CaloSamples (const DetId &id, int size, int preciseSize)
 
DetId id () const
 get the (generic) id More...
 
bool isBlank () const
 
CaloSamplesoffsetTime (double offset)
 shift all the samples by a time, in ns, interpolating More...
 
CaloSamplesoperator*= (double value)
 scale all samples More...
 
CaloSamplesoperator+= (const CaloSamples &other)
 
CaloSamplesoperator+= (double value)
 add a value to all samples More...
 
double & operator[] (int i)
 mutable operator to access samples More...
 
double operator[] (int i) const
 const operator to access samples More...
 
float preciseAt (int i) const
 const function to access precise samples More...
 
float & preciseAtMod (int i)
 mutable function to access precise samples More...
 
float preciseDeltaT () const
 
int precisePresamples () const
 
int preciseSize () const
 get the size More...
 
int presamples () const
 access presample information More...
 
void resetPrecise ()
 
CaloSamplesscale (double value)
 multiply each item by this value More...
 
void setBlank ()
 
void setDetId (DetId detId)
 
void setPrecise (int precisePresamples, float deltaT)
 
void setPreciseSize (unsigned int size)
 
void setPresamples (int pre)
 set presample information More...
 
void setSize (unsigned int size)
 
int size () const
 get the size More...
 

Static Public Attributes

static const int MAXSAMPLES = 10
 

Private Attributes

std::vector< double > data_
 
float deltaTprecise_
 
DetId id_
 
std::vector< float > preciseData_
 
int precisePresamples_
 
int preciseSize_
 
int presamples_
 
int size_
 

Detailed Description

Class which represents the charge/voltage measurements of an event/channel with the ADC decoding performed.

Definition at line 14 of file CaloSamples.h.

Constructor & Destructor Documentation

◆ CaloSamples() [1/3]

CaloSamples::CaloSamples ( )

Definition at line 6 of file CaloSamples.cc.

References setBlank().

◆ CaloSamples() [2/3]

CaloSamples::CaloSamples ( const DetId id,
int  size 
)
explicit

Definition at line 8 of file CaloSamples.cc.

9  : id_(id),
10  size_(size),
11  presamples_(0),
12  data_(size_, 0.0),
13  deltaTprecise_(0.0f),
14  preciseSize_(0),
16  setBlank();
17 }

References setBlank().

◆ CaloSamples() [3/3]

CaloSamples::CaloSamples ( const DetId id,
int  size,
int  preciseSize 
)
explicit

Definition at line 19 of file CaloSamples.cc.

20  : id_(id),
21  size_(size),
22  presamples_(0),
23  data_(size_, 0.0),
24  deltaTprecise_(0.0f),
25  preciseSize_(presize),
27  setBlank();
28 }

References setBlank().

Member Function Documentation

◆ id()

DetId CaloSamples::id ( ) const
inline

◆ isBlank()

bool CaloSamples::isBlank ( ) const

Definition at line 86 of file CaloSamples.cc.

87 {
88  for (int i(0); i != size_; ++i) {
89  if (1.e-6 < fabs(data_[i]))
90  return false;
91  }
92  return true;
93 }

References data_, MillePedeFileConverter_cfg::e, mps_fire::i, and size_.

◆ offsetTime()

CaloSamples & CaloSamples::offsetTime ( double  offset)

shift all the samples by a time, in ns, interpolating

Definition at line 69 of file CaloSamples.cc.

69  {
70  std::vector<double> data(size_, 0.0);
71  for (int i(0); i != size_; ++i) {
72  double t = i * 25. - offset;
73  int firstbin = floor(t / 25.);
74  double f = t / 25. - firstbin;
75  int nextbin = firstbin + 1;
76  double v1 = (firstbin < 0 || firstbin >= size_) ? 0. : data_[firstbin];
77  double v2 = (nextbin < 0 || nextbin >= size_) ? 0. : data_[nextbin];
78  data[i] = (v1 * (1. - f) + v2 * f);
79  }
80  for (int i(0); i != size_; ++i) {
81  data_[i] = data[i];
82  }
83  return (*this);
84 }

References data, data_, f, mps_fire::i, hltrates_dqm_sourceclient-live_cfg::offset, size_, and submitPVValidationJobs::t.

◆ operator*=()

CaloSamples& CaloSamples::operator*= ( double  value)
inline

scale all samples

Definition at line 43 of file CaloSamples.h.

43 { return scale(value); }

References scale().

◆ operator+=() [1/2]

CaloSamples & CaloSamples::operator+= ( const CaloSamples other)

Definition at line 51 of file CaloSamples.cc.

51  {
52  if (size_ != other.size_ || presamples_ != other.presamples_ || preciseSize_ != other.preciseSize_) {
53  edm::LogError("CaloHitResponse") << "Mismatched calo signals ";
54  }
55  int i;
56  for (i = 0; i < size_; ++i) {
57  data_[i] += other.data_[i];
58  }
59  if (preciseData_.empty() && !other.preciseData_.empty())
60  resetPrecise();
61  if (!other.preciseData_.empty()) {
62  for (i = 0; i < preciseSize_; ++i) {
63  preciseData_[i] += other.preciseData_[i];
64  }
65  }
66  return *this;
67 }

References data_, mps_fire::i, trackingPlots::other, preciseData_, preciseSize_, presamples_, resetPrecise(), and size_.

◆ operator+=() [2/2]

CaloSamples & CaloSamples::operator+= ( double  value)

add a value to all samples

Definition at line 43 of file CaloSamples.cc.

43  {
44  for (int i = 0; i < size_; i++)
45  data_[i] += value;
46  for (std::vector<float>::iterator j = preciseData_.begin(); j != preciseData_.end(); ++j)
47  (*j) += value * deltaTprecise_ / 25.0; // note that the scale is conserved!
48  return (*this);
49 }

References data_, deltaTprecise_, mps_fire::i, dqmiolumiharvest::j, preciseData_, and size_.

◆ operator[]() [1/2]

double& CaloSamples::operator[] ( int  i)
inline

mutable operator to access samples

Definition at line 26 of file CaloSamples.h.

26 { return data_[i]; }

References data_, and mps_fire::i.

◆ operator[]() [2/2]

double CaloSamples::operator[] ( int  i) const
inline

const operator to access samples

Definition at line 28 of file CaloSamples.h.

28 { return data_[i]; }

References data_, and mps_fire::i.

◆ preciseAt()

float CaloSamples::preciseAt ( int  i) const
inline

const function to access precise samples

Definition at line 33 of file CaloSamples.h.

33 { return preciseData_[i]; }

References mps_fire::i, and preciseData_.

Referenced by HcalTDC::timing().

◆ preciseAtMod()

float& CaloSamples::preciseAtMod ( int  i)
inline

mutable function to access precise samples

Definition at line 31 of file CaloSamples.h.

31 { return preciseData_[i]; }

References mps_fire::i, and preciseData_.

Referenced by HcalSiPMHitResponse::makeSiPMSignal().

◆ preciseDeltaT()

float CaloSamples::preciseDeltaT ( ) const
inline

Definition at line 76 of file CaloSamples.h.

76 { return deltaTprecise_; }

References deltaTprecise_.

◆ precisePresamples()

int CaloSamples::precisePresamples ( ) const
inline

Definition at line 75 of file CaloSamples.h.

75 { return precisePresamples_; }

References precisePresamples_.

Referenced by setPrecise().

◆ preciseSize()

int CaloSamples::preciseSize ( ) const
inline

get the size

Definition at line 70 of file CaloSamples.h.

70  {
71  if (preciseData_.empty())
72  return 0;
73  return preciseSize_;
74  }

References preciseData_, and preciseSize_.

Referenced by HcalSiPMHitResponse::makeSiPMSignal(), and HcalTDC::timing().

◆ presamples()

int CaloSamples::presamples ( ) const
inline

◆ resetPrecise()

void CaloSamples::resetPrecise ( )

Definition at line 31 of file CaloSamples.cc.

31 { preciseData_.resize(preciseSize_, 0); }

References preciseData_, and preciseSize_.

Referenced by HcalSiPMHitResponse::makeSiPMSignal(), and operator+=().

◆ scale()

CaloSamples & CaloSamples::scale ( double  value)

multiply each item by this value

Definition at line 35 of file CaloSamples.cc.

35  {
36  for (int i = 0; i < size_; i++)
37  data_[i] *= value;
38  for (std::vector<float>::iterator j = preciseData_.begin(); j != preciseData_.end(); ++j)
39  (*j) *= value;
40  return (*this);
41 }

References data_, mps_fire::i, dqmiolumiharvest::j, preciseData_, size_, and relativeConstraints::value.

Referenced by operator*=().

◆ setBlank()

void CaloSamples::setBlank ( )

Definition at line 95 of file CaloSamples.cc.

96 {
97  std::fill(data_.begin(), data_.end(), (double)0.0);
98  std::fill(preciseData_.begin(), preciseData_.end(), (double)0.0);
99 }

References data_, ntuplemaker::fill, and preciseData_.

Referenced by CaloSamples().

◆ setDetId()

void CaloSamples::setDetId ( DetId  detId)
inline

Definition at line 53 of file CaloSamples.h.

53 { id_ = detId; }

References id_.

◆ setPrecise()

void CaloSamples::setPrecise ( int  precisePresamples,
float  deltaT 
)
inline

Definition at line 78 of file CaloSamples.h.

78  {
80  deltaTprecise_ = deltaT;
81  }

References deltaTprecise_, precisePresamples(), and precisePresamples_.

◆ setPreciseSize()

void CaloSamples::setPreciseSize ( unsigned int  size)
inline

Definition at line 60 of file CaloSamples.h.

60  {
62  preciseData_.resize(preciseSize_, 0.);
63  }

References preciseData_, preciseSize_, and size().

Referenced by HcalSiPMHitResponse::finalizeHits().

◆ setPresamples()

void CaloSamples::setPresamples ( int  pre)

set presample information

Definition at line 33 of file CaloSamples.cc.

33 { presamples_ = pre; }

References presamples_.

Referenced by CastorNominalCoder::adc2fC(), HcalNominalCoder::adc2fC(), CastorCoderDb::adc2fC_(), and HcalCoderDb::adc2fC_().

◆ setSize()

void CaloSamples::setSize ( unsigned int  size)
inline

Definition at line 55 of file CaloSamples.h.

55  {
56  size_ = size;
57  data_.resize(size, 0.);
58  }

References data_, size(), and size_.

◆ size()

int CaloSamples::size ( void  ) const
inline

Member Data Documentation

◆ data_

std::vector<double> CaloSamples::data_
private

Definition at line 91 of file CaloSamples.h.

Referenced by isBlank(), offsetTime(), operator+=(), operator[](), scale(), setBlank(), and setSize().

◆ deltaTprecise_

float CaloSamples::deltaTprecise_
private

Definition at line 92 of file CaloSamples.h.

Referenced by operator+=(), preciseDeltaT(), and setPrecise().

◆ id_

DetId CaloSamples::id_
private

Definition at line 89 of file CaloSamples.h.

Referenced by id(), and setDetId().

◆ MAXSAMPLES

const int CaloSamples::MAXSAMPLES = 10
static

◆ preciseData_

std::vector<float> CaloSamples::preciseData_
private

◆ precisePresamples_

int CaloSamples::precisePresamples_
private

Definition at line 94 of file CaloSamples.h.

Referenced by precisePresamples(), and setPrecise().

◆ preciseSize_

int CaloSamples::preciseSize_
private

Definition at line 94 of file CaloSamples.h.

Referenced by operator+=(), preciseSize(), resetPrecise(), and setPreciseSize().

◆ presamples_

int CaloSamples::presamples_
private

Definition at line 90 of file CaloSamples.h.

Referenced by operator+=(), presamples(), and setPresamples().

◆ size_

int CaloSamples::size_
private

Definition at line 90 of file CaloSamples.h.

Referenced by isBlank(), offsetTime(), operator+=(), scale(), setSize(), and size().

mps_fire.i
i
Definition: mps_fire.py:428
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
CaloSamples::size
int size() const
get the size
Definition: CaloSamples.h:24
CaloSamples::scale
CaloSamples & scale(double value)
multiply each item by this value
Definition: CaloSamples.cc:35
CaloSamples::precisePresamples_
int precisePresamples_
Definition: CaloSamples.h:94
CaloSamples::size_
int size_
Definition: CaloSamples.h:90
CaloSamples::preciseData_
std::vector< float > preciseData_
Definition: CaloSamples.h:93
CaloSamples::resetPrecise
void resetPrecise()
Definition: CaloSamples.cc:31
trackingPlots.other
other
Definition: trackingPlots.py:1460
CaloSamples::setBlank
void setBlank()
Definition: CaloSamples.cc:95
ntuplemaker.fill
fill
Definition: ntuplemaker.py:304
CaloSamples::data_
std::vector< double > data_
Definition: CaloSamples.h:91
value
Definition: value.py:1
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
CaloSamples::deltaTprecise_
float deltaTprecise_
Definition: CaloSamples.h:92
CaloSamples::presamples_
int presamples_
Definition: CaloSamples.h:90
CaloSamples::precisePresamples
int precisePresamples() const
Definition: CaloSamples.h:75
relativeConstraints.value
value
Definition: relativeConstraints.py:53
CaloSamples::preciseSize_
int preciseSize_
Definition: CaloSamples.h:94
data
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
hltrates_dqm_sourceclient-live_cfg.offset
offset
Definition: hltrates_dqm_sourceclient-live_cfg.py:82
submitPVValidationJobs.t
string t
Definition: submitPVValidationJobs.py:644
CaloSamples::id_
DetId id_
Definition: CaloSamples.h:89
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37