CMS 3D CMS Logo

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

#include <ZdcSimpleRecAlgo.h>

Public Member Functions

void initPulseCorr (int toadd, const HcalTimeSlew *hcalTimeSlew_delay)
 
HcalCalibRecHit reconstruct (const HcalCalibDataFrame &digi, const std::vector< unsigned int > &myNoiseTS, const std::vector< unsigned int > &mySignalTS, const HcalCoder &coder, const HcalCalibrations &calibs) const
 
ZDCRecHit reconstruct (const ZDCDataFrame &digi, const std::vector< unsigned int > &myNoiseTS, const std::vector< unsigned int > &mySignalTS, const HcalCoder &coder, const HcalCalibrations &calibs) const
 
 ZdcSimpleRecAlgo (bool correctForTimeslew, bool correctForContainment, float fixedPhaseNs, int recoMethod, int lowGainOffset, double lowGainFrac)
 
 ZdcSimpleRecAlgo (int recoMethod)
 

Private Attributes

bool correctForPulse_
 
bool correctForTimeslew_
 
double lowGainFrac_
 
int lowGainOffset_
 
float phaseNS_
 
std::unique_ptr< HcalPulseContainmentCorrectionpulseCorr_
 
int recoMethod_
 

Detailed Description

This class reconstructs RecHits from Digis for ZDC 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.

A sencon method based on a based on a event by event substraction is also implelented. signal = (S4 + S5 - 2*(S1+S2+S3 + S7+S8+S9+S10))*(ft-Gev constant) where SN is the signal in the nth time slice

Author
E. Garcia CSU & J. Gomez UMD

Definition at line 36 of file ZdcSimpleRecAlgo.h.

Constructor & Destructor Documentation

◆ ZdcSimpleRecAlgo() [1/2]

ZdcSimpleRecAlgo::ZdcSimpleRecAlgo ( bool  correctForTimeslew,
bool  correctForContainment,
float  fixedPhaseNs,
int  recoMethod,
int  lowGainOffset,
double  lowGainFrac 
)

Full featured constructor for ZDC

Definition at line 10 of file ZdcSimpleRecAlgo.cc.

◆ ZdcSimpleRecAlgo() [2/2]

ZdcSimpleRecAlgo::ZdcSimpleRecAlgo ( int  recoMethod)

Simple constructor for PMT-based detectors

Definition at line 19 of file ZdcSimpleRecAlgo.cc.

Member Function Documentation

◆ initPulseCorr()

void ZdcSimpleRecAlgo::initPulseCorr ( int  toadd,
const HcalTimeSlew hcalTimeSlew_delay 
)

Definition at line 21 of file ZdcSimpleRecAlgo.cc.

21  {
22  if (correctForPulse_) {
23  pulseCorr_ =
24  std::make_unique<HcalPulseContainmentCorrection>(toadd, phaseNS_, MaximumFractionalError, hcalTimeSlew_delay);
25  }
26 }

References correctForPulse_, MaximumFractionalError, phaseNS_, and pulseCorr_.

Referenced by ZdcSimpleReconstructor::produce().

◆ reconstruct() [1/2]

HcalCalibRecHit ZdcSimpleRecAlgo::reconstruct ( const HcalCalibDataFrame digi,
const std::vector< unsigned int > &  myNoiseTS,
const std::vector< unsigned int > &  mySignalTS,
const HcalCoder coder,
const HcalCalibrations calibs 
) const

◆ reconstruct() [2/2]

ZDCRecHit ZdcSimpleRecAlgo::reconstruct ( const ZDCDataFrame digi,
const std::vector< unsigned int > &  myNoiseTS,
const std::vector< unsigned int > &  mySignalTS,
const HcalCoder coder,
const HcalCalibrations calibs 
) const

Definition at line 265 of file ZdcSimpleRecAlgo.cc.

269  {
270  if (recoMethod_ == 1)
271  return ZdcSimpleRecAlgoImpl::reco1<ZDCDataFrame, ZDCRecHit>(
272  digi, coder, calibs, myNoiseTS, mySignalTS, lowGainOffset_, lowGainFrac_, false, nullptr, HcalTimeSlew::Fast);
273  if (recoMethod_ == 2)
274  return ZdcSimpleRecAlgoImpl::reco2<ZDCDataFrame, ZDCRecHit>(
275  digi, coder, calibs, myNoiseTS, mySignalTS, lowGainOffset_, lowGainFrac_, false, nullptr, HcalTimeSlew::Fast);
276 
277  edm::LogError("ZDCSimpleRecAlgoImpl::reconstruct, recoMethod was not declared");
278  throw cms::Exception("ZDCSimpleRecoAlgos::exiting process");
279 }

References Exception, HcalTimeSlew::Fast, lowGainFrac_, lowGainOffset_, and recoMethod_.

Referenced by ZdcSimpleReconstructor::produce(), and ZdcHitReconstructor::produce().

Member Data Documentation

◆ correctForPulse_

bool ZdcSimpleRecAlgo::correctForPulse_
private

Definition at line 62 of file ZdcSimpleRecAlgo.h.

Referenced by initPulseCorr().

◆ correctForTimeslew_

bool ZdcSimpleRecAlgo::correctForTimeslew_
private

Definition at line 61 of file ZdcSimpleRecAlgo.h.

◆ lowGainFrac_

double ZdcSimpleRecAlgo::lowGainFrac_
private

Definition at line 66 of file ZdcSimpleRecAlgo.h.

Referenced by reconstruct().

◆ lowGainOffset_

int ZdcSimpleRecAlgo::lowGainOffset_
private

Definition at line 65 of file ZdcSimpleRecAlgo.h.

Referenced by reconstruct().

◆ phaseNS_

float ZdcSimpleRecAlgo::phaseNS_
private

Definition at line 63 of file ZdcSimpleRecAlgo.h.

Referenced by initPulseCorr().

◆ pulseCorr_

std::unique_ptr<HcalPulseContainmentCorrection> ZdcSimpleRecAlgo::pulseCorr_
private

Definition at line 67 of file ZdcSimpleRecAlgo.h.

Referenced by initPulseCorr().

◆ recoMethod_

int ZdcSimpleRecAlgo::recoMethod_
private

Definition at line 60 of file ZdcSimpleRecAlgo.h.

Referenced by reconstruct().

ZdcSimpleRecAlgo::correctForTimeslew_
bool correctForTimeslew_
Definition: ZdcSimpleRecAlgo.h:61
MaximumFractionalError
constexpr double MaximumFractionalError
Definition: ZdcSimpleRecAlgo.cc:8
ZdcSimpleRecAlgo::pulseCorr_
std::unique_ptr< HcalPulseContainmentCorrection > pulseCorr_
Definition: ZdcSimpleRecAlgo.h:67
ZdcSimpleRecAlgo::phaseNS_
float phaseNS_
Definition: ZdcSimpleRecAlgo.h:63
HcalHitReconstructor_zdc_cfi.recoMethod
recoMethod
Definition: HcalHitReconstructor_zdc_cfi.py:13
HcalHitReconstructor_zdc_cfi.lowGainOffset
lowGainOffset
Definition: HcalHitReconstructor_zdc_cfi.py:14
ZdcSimpleRecAlgo::lowGainFrac_
double lowGainFrac_
Definition: ZdcSimpleRecAlgo.h:66
HcalHitReconstructor_zdc_cfi.lowGainFrac
lowGainFrac
Definition: HcalHitReconstructor_zdc_cfi.py:15
ZdcSimpleRecAlgo::lowGainOffset_
int lowGainOffset_
Definition: ZdcSimpleRecAlgo.h:65
edm::LogError
Definition: MessageLogger.h:183
ZdcSimpleRecAlgo::correctForPulse_
bool correctForPulse_
Definition: ZdcSimpleRecAlgo.h:62
ZdcSimpleRecAlgo::recoMethod_
int recoMethod_
Definition: ZdcSimpleRecAlgo.h:60
castor_dqm_sourceclient-live_cfg.correctForTimeslew
correctForTimeslew
Definition: castor_dqm_sourceclient-live_cfg.py:66
Exception
Definition: hltDiff.cc:246
HcalTimeSlew::Fast
Definition: HcalTimeSlew.h:71