CMS 3D CMS Logo

Public Member Functions | Private Attributes

CastorSimpleRecAlgo Class Reference

#include <CastorSimpleRecAlgo.h>

List of all members.

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::auto_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_.

                                                                                                                                        : 
  firstSample_(firstSample), 
  samplesToAdd_(samplesToAdd), 
  correctForTimeslew_(correctForTimeslew) {
  if (correctForPulse) 
    pulseCorr_=std::auto_ptr<CastorPulseContainmentCorrection>(new CastorPulseContainmentCorrection(samplesToAdd_,phaseNS,MaximumFractionalError));
}
CastorSimpleRecAlgo::CastorSimpleRecAlgo ( int  firstSample,
int  samplesToAdd 
)

Simple constructor for PMT-based detectors

Definition at line 18 of file CastorSimpleRecAlgo.cc.


Member Function Documentation

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

Definition at line 156 of file CastorSimpleRecAlgo.cc.

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

Referenced by CastorSimpleReconstructor::produce().

                                                                                                                            {
  if(CastorSimpleRecAlgoImpl::isSaturated<CastorDataFrame>(digi,maxADCvalue,firstSample_,samplesToAdd_))
    rechit.setFlagField(1,HcalCaloFlagLabels::ADCSaturationBit);
}
CastorRecHit CastorSimpleRecAlgo::reconstruct ( const CastorDataFrame digi,
const CastorCoder coder,
const CastorCalibrations calibs 
) const

Definition at line 149 of file CastorSimpleRecAlgo.cc.

References CastorTimeSlew::Fast, firstSample_, and samplesToAdd_.

Referenced by CastorSimpleReconstructor::produce().

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

Definition at line 162 of file CastorSimpleRecAlgo.cc.

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

Referenced by CastorSimpleReconstructor::produce().

                                                                                                                                      {
  if(CastorSimpleRecAlgoImpl::corrSaturation<CastorDataFrame,CastorRecHit>(rechit,coder,calibs,digi,
                                                                           maxADCvalue,satCorrConst,
                                                                           firstSample_,samplesToAdd_))
    // use empty flag bit for recording saturation correction
    // see also CMSSW/RecoLocalCalo/HcalRecAlgos/interface/HcalCaloFlagLabels.h
    rechit.setFlagField(1,HcalCaloFlagLabels::UserDefinedBit0);
} 
void CastorSimpleRecAlgo::resetTimeSamples ( int  f,
int  t 
) [inline]

Member Data Documentation

Definition at line 48 of file CastorSimpleRecAlgo.h.

Definition at line 49 of file CastorSimpleRecAlgo.h.

Referenced by CastorSimpleRecAlgo().