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)
 
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< 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::ZdcSimpleRecAlgo ( bool  correctForTimeslew,
bool  correctForContainment,
float  fixedPhaseNs,
int  recoMethod,
int  lowGainOffset,
double  lowGainFrac 
)
ZdcSimpleRecAlgo::ZdcSimpleRecAlgo ( int  recoMethod)

Simple constructor for PMT-based detectors

Definition at line 22 of file ZdcSimpleRecAlgo.cc.

Member Function Documentation

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

Definition at line 27 of file ZdcSimpleRecAlgo.cc.

References correctForPulse_, MaximumFractionalError, phaseNS_, and pulseCorr_.

Referenced by ZdcSimpleReconstructor::produce().

27  {
28  if (correctForPulse_) {
29  pulseCorr_ = std::make_unique<HcalPulseContainmentCorrection>(toadd,phaseNS_,MaximumFractionalError, hcalTimeSlew_delay);
30  }
31 }
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 234 of file ZdcSimpleRecAlgo.cc.

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

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

234  {
235 
236  if(recoMethod_ == 1)
237  return ZdcSimpleRecAlgoImpl::reco1<ZDCDataFrame,ZDCRecHit>(digi,coder,calibs,
238  myNoiseTS,mySignalTS,lowGainOffset_,lowGainFrac_,false,
239  nullptr,
241  if(recoMethod_ == 2)
242  return ZdcSimpleRecAlgoImpl::reco2<ZDCDataFrame,ZDCRecHit>(digi,coder,calibs,
243  myNoiseTS,mySignalTS,lowGainOffset_,lowGainFrac_,false,
244  nullptr,HcalTimeSlew::Fast);
245 
246  edm::LogError("ZDCSimpleRecAlgoImpl::reconstruct, recoMethod was not declared");
247  throw cms::Exception("ZDCSimpleRecoAlgos::exiting process");
248 
249 }
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 49 of file ZdcSimpleRecAlgo.h.

Referenced by initPulseCorr().

bool ZdcSimpleRecAlgo::correctForTimeslew_
private

Definition at line 48 of file ZdcSimpleRecAlgo.h.

double ZdcSimpleRecAlgo::lowGainFrac_
private

Definition at line 53 of file ZdcSimpleRecAlgo.h.

Referenced by reconstruct().

int ZdcSimpleRecAlgo::lowGainOffset_
private

Definition at line 52 of file ZdcSimpleRecAlgo.h.

Referenced by reconstruct().

float ZdcSimpleRecAlgo::phaseNS_
private

Definition at line 50 of file ZdcSimpleRecAlgo.h.

Referenced by initPulseCorr().

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

Definition at line 54 of file ZdcSimpleRecAlgo.h.

Referenced by initPulseCorr().

int ZdcSimpleRecAlgo::recoMethod_
private

Definition at line 47 of file ZdcSimpleRecAlgo.h.

Referenced by reconstruct().