CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Friends
OOTPileupCorrData Class Reference

#include <OOTPileupCorrData.h>

Inheritance diagram for OOTPileupCorrData:
AbsOOTPileupCorrection

Public Member Functions

void apply (const HcalDetId &id, const double *inputCharge, unsigned lenInputCharge, const BunchXParameter *bcParams, unsigned lenBcParams, unsigned firstTimeSlice, unsigned nTimeSlices, double *correctedCharge, unsigned lenCorrectedCharge, bool *pulseShapeCorrApplied, bool *leakCorrApplied, bool *readjustTiming) const
 
void apply (const HcalDetId &id, double *ts, const int tsTrig) const
 
const OOTPileupCorrDataFcngetCorrectionByID (const HcalDetId &id) const
 
bool inputIsEnergy () const
 
 OOTPileupCorrData (const std::vector< OOTPileupCorrDataFcn > &corrs, const std::vector< uint32_t > &iEtaLimits, double chargeLimit, int requireFirstTS, int requireNTS, bool readjustTiming)
 
 OOTPileupCorrData ()
 
virtual ~OOTPileupCorrData ()
 
- Public Member Functions inherited from AbsOOTPileupCorrection
bool operator!= (const AbsOOTPileupCorrection &r) const
 
bool operator== (const AbsOOTPileupCorrection &r) const
 
virtual ~AbsOOTPileupCorrection ()
 

Protected Member Functions

bool isEqual (const AbsOOTPileupCorrection &otherBase) const
 

Private Member Functions

template<class Archive >
void load (Archive &ar, const unsigned)
 
template<class Archive >
void save (Archive &ar, const unsigned) const
 
bool validate () const
 

Private Attributes

double chargeLimit_
 
std::vector< OOTPileupCorrDataFcncorrs_
 
std::vector< uint32_t > iEtaLimits_
 
uint8_t readjustTiming_
 
int32_t requireFirstTS_
 
int32_t requireNTS_
 

Friends

class boost::serialization::access
 

Detailed Description

Definition at line 14 of file OOTPileupCorrData.h.

Constructor & Destructor Documentation

OOTPileupCorrData::OOTPileupCorrData ( const std::vector< OOTPileupCorrDataFcn > &  corrs,
const std::vector< uint32_t > &  iEtaLimits,
double  chargeLimit,
int  requireFirstTS,
int  requireNTS,
bool  readjustTiming 
)

Definition at line 7 of file OOTPileupCorrData.cc.

References Exception, and validate().

14  : corrs_(corrs),
15  iEtaLimits_(iEtaLimits),
16  chargeLimit_(chargeLimit),
17  requireFirstTS_(requireFirstTS),
18  requireNTS_(requireNTS),
19  readjustTiming_(readjustTiming)
20 {
21  if (!validate()) throw cms::Exception(
22  "Invalid OOTPileupCorrData constructor arguments");
23 }
std::vector< uint32_t > iEtaLimits_
bool validate() const
std::vector< OOTPileupCorrDataFcn > corrs_
virtual OOTPileupCorrData::~OOTPileupCorrData ( )
inlinevirtual

Definition at line 57 of file OOTPileupCorrData.h.

OOTPileupCorrData::OOTPileupCorrData ( )
inline

Definition at line 122 of file OOTPileupCorrData.h.

Member Function Documentation

void OOTPileupCorrData::apply ( const HcalDetId id,
const double *  inputCharge,
unsigned  lenInputCharge,
const BunchXParameter *  bcParams,
unsigned  lenBcParams,
unsigned  firstTimeSlice,
unsigned  nTimeSlices,
double *  correctedCharge,
unsigned  lenCorrectedCharge,
bool *  pulseShapeCorrApplied,
bool *  leakCorrApplied,
bool *  readjustTiming 
) const
virtual

Implements AbsOOTPileupCorrection.

Definition at line 40 of file OOTPileupCorrData.cc.

References Exception, i, readjustTiming_, requireFirstTS_, and requireNTS_.

Referenced by editorTools.UserCodeTool::__call__(), metTools.AddMETCollection::__call__(), and editorTools.ChangeSource::__call__().

47 {
48  // Check the arguments
49  if (inputCharge == 0 || correctedCharge == 0 ||
50  lenCorrectedCharge < lenInputCharge ||
51  pulseShapeCorrApplied == 0 || leakCorrApplied == 0 ||
52  readjustTiming == 0)
53  throw cms::Exception(
54  "Invalid arguments in OOTPileupCorrData::apply");
55 
56  for (unsigned i=0; i<lenInputCharge; ++i)
57  correctedCharge[i] = inputCharge[i];
58 
59  // Check whether the charge corrections should actually be applied
60  const bool fixCharge = (requireFirstTS_ < 0 ||
61  requireFirstTS_ == static_cast<int32_t>(firstTimeSlice)) &&
62  (requireNTS_ < 0 ||
63  requireNTS_ == static_cast<int32_t>(nTimeSlices));
64  if (fixCharge)
65  apply(id, correctedCharge, firstTimeSlice);
66 
67  *pulseShapeCorrApplied = false;
68  *leakCorrApplied = fixCharge;
69  *readjustTiming = readjustTiming_;
70 }
int i
Definition: DBlmapReader.cc:9
void apply(const HcalDetId &id, const double *inputCharge, unsigned lenInputCharge, const BunchXParameter *bcParams, unsigned lenBcParams, unsigned firstTimeSlice, unsigned nTimeSlices, double *correctedCharge, unsigned lenCorrectedCharge, bool *pulseShapeCorrApplied, bool *leakCorrApplied, bool *readjustTiming) const
void OOTPileupCorrData::apply ( const HcalDetId id,
double *  ts,
const int  tsTrig 
) const
inline
const OOTPileupCorrDataFcn& OOTPileupCorrData::getCorrectionByID ( const HcalDetId id) const
inline

Definition at line 90 of file OOTPileupCorrData.h.

bool OOTPileupCorrData::inputIsEnergy ( ) const
inlinevirtual

Implements AbsOOTPileupCorrection.

Definition at line 69 of file OOTPileupCorrData.h.

bool OOTPileupCorrData::isEqual ( const AbsOOTPileupCorrection otherBase) const
inlineprotectedvirtual

Implements AbsOOTPileupCorrection.

Definition at line 107 of file OOTPileupCorrData.h.

template<class Archive >
void OOTPileupCorrData::load ( Archive &  ar,
const unsigned   
)
inlineprivate
template<class Archive >
void OOTPileupCorrData::save ( Archive &  ar,
const unsigned   
) const
inlineprivate

Definition at line 137 of file OOTPileupCorrData.h.

bool OOTPileupCorrData::validate ( ) const
private

Definition at line 25 of file OOTPileupCorrData.cc.

References corrs_, i, and iEtaLimits_.

Referenced by OOTPileupCorrData().

26 {
27  const std::size_t nLimits(iEtaLimits_.size());
28  if (!nLimits)
29  return false;
30  if (nLimits >= static_cast<std::size_t>(UINT_MAX))
31  return false;
32  for (std::size_t i=0; i<nLimits-1; ++i)
33  if (!(iEtaLimits_[i] < iEtaLimits_[i+1]))
34  return false;
35  if (corrs_.size() != nLimits + 1)
36  return false;
37  return true;
38 }
int i
Definition: DBlmapReader.cc:9
std::vector< uint32_t > iEtaLimits_
std::vector< OOTPileupCorrDataFcn > corrs_

Friends And Related Function Documentation

friend class boost::serialization::access
friend

Definition at line 134 of file OOTPileupCorrData.h.

Member Data Documentation

double OOTPileupCorrData::chargeLimit_
private

Definition at line 129 of file OOTPileupCorrData.h.

std::vector<OOTPileupCorrDataFcn> OOTPileupCorrData::corrs_
private

Definition at line 127 of file OOTPileupCorrData.h.

Referenced by validate().

std::vector<uint32_t> OOTPileupCorrData::iEtaLimits_
private

Definition at line 128 of file OOTPileupCorrData.h.

Referenced by validate().

uint8_t OOTPileupCorrData::readjustTiming_
private

Definition at line 132 of file OOTPileupCorrData.h.

Referenced by apply().

int32_t OOTPileupCorrData::requireFirstTS_
private

Definition at line 130 of file OOTPileupCorrData.h.

Referenced by apply().

int32_t OOTPileupCorrData::requireNTS_
private

Definition at line 131 of file OOTPileupCorrData.h.

Referenced by apply().