Go to the documentation of this file.00001 #include "../interface/HcalADCSaturationFlag.h"
00002 #include "RecoLocalCalo/HcalRecAlgos/interface/HcalCaloFlagLabels.h"
00003
00004
00005
00006 namespace HcalSaturation
00007 {
00008
00009
00010
00011 template <class T, class V>
00012 void checkADCSaturation(T &rechit, const V &digi, int level)
00013 {
00014
00015 for (int i=0;i<digi.size();++i)
00016 {
00017 if (digi.sample(i).adc()>=level)
00018 {
00019 rechit.setFlagField(1,HcalCaloFlagLabels::ADCSaturationBit);
00020 break;
00021 }
00022 }
00023 return;
00024 }
00025 }
00026
00027 using namespace HcalSaturation;
00028
00029 HcalADCSaturationFlag::HcalADCSaturationFlag()
00030 {
00031 SaturationLevel_=127;
00032 }
00033
00034 HcalADCSaturationFlag::HcalADCSaturationFlag(int level)
00035 {
00036 SaturationLevel_=level;
00037 }
00038
00039 HcalADCSaturationFlag::~HcalADCSaturationFlag()
00040 {}
00041
00042 void HcalADCSaturationFlag::setSaturationFlag(HBHERecHit& rechit, const HBHEDataFrame& digi)
00043 {
00044 checkADCSaturation<HBHERecHit, HBHEDataFrame>(rechit, digi, SaturationLevel_);
00045 return;
00046 }
00047
00048 void HcalADCSaturationFlag::setSaturationFlag(HORecHit& rechit, const HODataFrame& digi)
00049 {
00050 checkADCSaturation<HORecHit, HODataFrame>(rechit, digi, SaturationLevel_);
00051 return;
00052 }
00053
00054 void HcalADCSaturationFlag::setSaturationFlag(HFRecHit& rechit, const HFDataFrame& digi)
00055 {
00056 checkADCSaturation<HFRecHit, HFDataFrame>(rechit, digi, SaturationLevel_);
00057 return;
00058 }
00059
00060 void HcalADCSaturationFlag::setSaturationFlag(ZDCRecHit& rechit, const ZDCDataFrame& digi)
00061 {
00062 checkADCSaturation<ZDCRecHit, ZDCDataFrame>(rechit, digi, SaturationLevel_);
00063 return;
00064 }