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
ZdcSimpleRecAlgo Class Reference

#include <ZdcSimpleRecAlgo.h>

Public Member Functions

void initPulseCorr (int toadd, const HcalTimeSlew *hcalTimeSlew_delay)
 
ZDCRecHit reconstruct (const ZDCDataFrame &digi, const std::vector< unsigned int > &myNoiseTS, const std::vector< unsigned int > &mySignalTS, const HcalCoder &coder, const HcalCalibrations &calibs) const
 
HcalCalibRecHit reconstruct (const HcalCalibDataFrame &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
< HcalPulseContainmentCorrection
pulseCorr_
 
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::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.

12  : recoMethod_(recoMethod),
14  correctForPulse_(correctForPulse),
15  phaseNS_(phaseNS),
16  lowGainOffset_(lowGainOffset),
17  lowGainFrac_(lowGainFrac) {}
ZdcSimpleRecAlgo::ZdcSimpleRecAlgo ( int  recoMethod)

Simple constructor for PMT-based detectors

Definition at line 19 of file ZdcSimpleRecAlgo.cc.

19 : recoMethod_(recoMethod), correctForTimeslew_(false) {}

Member Function Documentation

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

Definition at line 21 of file ZdcSimpleRecAlgo.cc.

References correctForPulse_, MaximumFractionalError, phaseNS_, and pulseCorr_.

Referenced by ZdcSimpleReconstructor::produce().

21  {
22  if (correctForPulse_) {
23  pulseCorr_ = std::make_unique<HcalPulseContainmentCorrection>(
24  toadd, phaseNS_, false, MaximumFractionalError, hcalTimeSlew_delay);
25  }
26 }
constexpr double MaximumFractionalError
std::unique_ptr< HcalPulseContainmentCorrection > pulseCorr_
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.

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

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

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 }
Log< level::Error, false > LogError
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

Member Data Documentation

bool ZdcSimpleRecAlgo::correctForPulse_
private

Definition at line 62 of file ZdcSimpleRecAlgo.h.

Referenced by initPulseCorr().

bool ZdcSimpleRecAlgo::correctForTimeslew_
private

Definition at line 61 of file ZdcSimpleRecAlgo.h.

double ZdcSimpleRecAlgo::lowGainFrac_
private

Definition at line 66 of file ZdcSimpleRecAlgo.h.

Referenced by reconstruct().

int ZdcSimpleRecAlgo::lowGainOffset_
private

Definition at line 65 of file ZdcSimpleRecAlgo.h.

Referenced by reconstruct().

float ZdcSimpleRecAlgo::phaseNS_
private

Definition at line 63 of file ZdcSimpleRecAlgo.h.

Referenced by initPulseCorr().

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

Definition at line 67 of file ZdcSimpleRecAlgo.h.

Referenced by initPulseCorr().

int ZdcSimpleRecAlgo::recoMethod_
private

Definition at line 60 of file ZdcSimpleRecAlgo.h.

Referenced by reconstruct().