CMS 3D CMS Logo

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

#include <CastorSimpleRecAlgo.h>

Public Member Functions

 CastorSimpleRecAlgo (int firstSample, int samplesToAdd, bool correctForTimeslew, bool correctForContainment, float fixedPhaseNs)
 
 CastorSimpleRecAlgo (int firstSample, int samplesToAdd)
 
void checkADCSaturation (CastorRecHit &rechit, const CastorDataFrame &digi, const int &maxADCvalue) const
 
CastorRecHit reconstruct (const CastorDataFrame &digi, const CastorCoder &coder, const CastorCalibrations &calibs) const
 
void recoverADCSaturation (CastorRecHit &rechit, const CastorCoder &coder, const CastorCalibrations &calibs, const CastorDataFrame &digi, const int &maxADCvalue, const double &satCorrConst) const
 
void resetTimeSamples (int f, int t)
 

Private Attributes

bool correctForTimeslew_
 
int firstSample_
 
std::unique_ptr
< CastorPulseContainmentCorrection
pulseCorr_
 
int samplesToAdd_
 

Detailed Description

This class reconstructs RecHits from Digis for CASTOR by addition of selected time samples, pedestal subtraction, and gain application. The time of the hit is reconstructed using a weighted peak bin calculation supplemented by precise time lookup table. A consumer of this class also has the option of correcting the reconstructed time for energy-dependent time slew associated with the QIE.

Author
P. Katsas (Univ. of Athens)

Definition at line 22 of file CastorSimpleRecAlgo.h.

Constructor & Destructor Documentation

CastorSimpleRecAlgo::CastorSimpleRecAlgo ( int  firstSample,
int  samplesToAdd,
bool  correctForTimeslew,
bool  correctForContainment,
float  fixedPhaseNs 
)

Full featured constructor for HB/HE and HO (HPD-based detectors)

Definition at line 10 of file CastorSimpleRecAlgo.cc.

References MaximumFractionalError, pulseCorr_, and samplesToAdd_.

13  if (correctForPulse)
14  pulseCorr_ = std::make_unique<CastorPulseContainmentCorrection>(samplesToAdd_, phaseNS, MaximumFractionalError);
15 }
std::unique_ptr< CastorPulseContainmentCorrection > pulseCorr_
constexpr double MaximumFractionalError
CastorSimpleRecAlgo::CastorSimpleRecAlgo ( int  firstSample,
int  samplesToAdd 
)

Member Function Documentation

void CastorSimpleRecAlgo::checkADCSaturation ( CastorRecHit rechit,
const CastorDataFrame digi,
const int &  maxADCvalue 
) const

Definition at line 170 of file CastorSimpleRecAlgo.cc.

References HcalCaloFlagLabels::ADCSaturationBit, firstSample_, samplesToAdd_, and CaloRecHit::setFlagField().

Referenced by CastorSimpleReconstructor::produce().

172  {
173  if (CastorSimpleRecAlgoImpl::isSaturated<CastorDataFrame>(digi, maxADCvalue, firstSample_, samplesToAdd_))
175 }
constexpr void setFlagField(uint32_t value, int base, int width=1)
Definition: CaloRecHit.h:36
CastorRecHit CastorSimpleRecAlgo::reconstruct ( const CastorDataFrame digi,
const CastorCoder coder,
const CastorCalibrations calibs 
) const

Definition at line 163 of file CastorSimpleRecAlgo.cc.

References CastorTimeSlew::Fast, firstSample_, and samplesToAdd_.

Referenced by CastorSimpleReconstructor::produce().

165  {
166  return CastorSimpleRecAlgoImpl::reco<CastorDataFrame, CastorRecHit>(
167  digi, coder, calibs, firstSample_, samplesToAdd_, false, nullptr, CastorTimeSlew::Fast);
168 }
void CastorSimpleRecAlgo::recoverADCSaturation ( CastorRecHit rechit,
const CastorCoder coder,
const CastorCalibrations calibs,
const CastorDataFrame digi,
const int &  maxADCvalue,
const double &  satCorrConst 
) const

Definition at line 178 of file CastorSimpleRecAlgo.cc.

References firstSample_, samplesToAdd_, CaloRecHit::setFlagField(), and HcalCaloFlagLabels::UserDefinedBit0.

Referenced by CastorSimpleReconstructor::produce().

183  {
184  if (CastorSimpleRecAlgoImpl::corrSaturation<CastorDataFrame, CastorRecHit>(
185  rechit, coder, calibs, digi, maxADCvalue, satCorrConst, firstSample_, samplesToAdd_))
186  // use empty flag bit for recording saturation correction
187  // see also CMSSW/DataFormats/METReco/interface/HcalCaloFlagLabels.h
189 }
constexpr void setFlagField(uint32_t value, int base, int width=1)
Definition: CaloRecHit.h:36
void CastorSimpleRecAlgo::resetTimeSamples ( int  f,
int  t 
)
inline

Member Data Documentation

bool CastorSimpleRecAlgo::correctForTimeslew_
private

Definition at line 53 of file CastorSimpleRecAlgo.h.

int CastorSimpleRecAlgo::firstSample_
private
std::unique_ptr<CastorPulseContainmentCorrection> CastorSimpleRecAlgo::pulseCorr_
private

Definition at line 54 of file CastorSimpleRecAlgo.h.

Referenced by CastorSimpleRecAlgo().

int CastorSimpleRecAlgo::samplesToAdd_
private