|
|
#include <SimpleHBHEPhase1Algo.h>
|
void | beginRun (const edm::Run &, const edm::EventSetup &) override |
|
void | endRun () override |
|
int | getFirstSampleShift () const |
|
float | getPhaseNS () const |
|
int | getRunNumber () const |
|
int | getSamplesToAdd () const |
|
float | getTimeShift () const |
|
bool | isConfigurable () const override |
|
bool | isCorrectingForPhaseContainment () const |
|
HBHERecHit | reconstruct (const HBHEChannelInfo &info, const HcalRecoParam *params, const HcalCalibrations &calibs, bool isRealData) override |
|
| SimpleHBHEPhase1Algo (int firstSampleShift, int samplesToAdd, float phaseNS, float timeShift, bool correctForPhaseContainment, bool applyLegacyHBMCorrection, std::unique_ptr< PulseShapeFitOOTPileupCorrection > m2, std::unique_ptr< HcalDeterministicFit > detFit, std::unique_ptr< MahiFit > mahi, edm::ConsumesCollector iC) |
|
| ~SimpleHBHEPhase1Algo () override |
|
virtual bool | configure (const AbsHcalAlgoData *) |
|
virtual | ~AbsHBHEPhase1Algo () |
|
Definition at line 18 of file SimpleHBHEPhase1Algo.h.
◆ SimpleHBHEPhase1Algo()
◆ ~SimpleHBHEPhase1Algo()
SimpleHBHEPhase1Algo::~SimpleHBHEPhase1Algo |
( |
| ) |
|
|
inlineoverride |
◆ beginRun()
◆ endRun()
void SimpleHBHEPhase1Algo::endRun |
( |
| ) |
|
|
overridevirtual |
◆ getFirstSampleShift()
int SimpleHBHEPhase1Algo::getFirstSampleShift |
( |
| ) |
const |
|
inline |
◆ getPhaseNS()
float SimpleHBHEPhase1Algo::getPhaseNS |
( |
| ) |
const |
|
inline |
◆ getRunNumber()
int SimpleHBHEPhase1Algo::getRunNumber |
( |
| ) |
const |
|
inline |
◆ getSamplesToAdd()
int SimpleHBHEPhase1Algo::getSamplesToAdd |
( |
| ) |
const |
|
inline |
◆ getTimeShift()
float SimpleHBHEPhase1Algo::getTimeShift |
( |
| ) |
const |
|
inline |
◆ hbminusCorrectionFactor()
float SimpleHBHEPhase1Algo::hbminusCorrectionFactor |
( |
const HcalDetId & |
cell, |
|
|
float |
energy, |
|
|
bool |
isRealData |
|
) |
| const |
|
protected |
Definition at line 149 of file SimpleHBHEPhase1Algo.cc.
References applyLegacyHBMCorrection_, alignCSCRings::corr, HCALHighEnergyHPDFilter_cfi::energy, hbminus_special_ecorr(), HcalBarrel, LEDCalibrationChannels::ieta, HcalDetId::ieta(), LEDCalibrationChannels::iphi, HcalDetId::iphi(), runnum_, and HcalDetId::subdet().
Referenced by reconstruct().
◆ isConfigurable()
bool SimpleHBHEPhase1Algo::isConfigurable |
( |
| ) |
const |
|
inlineoverridevirtual |
◆ isCorrectingForPhaseContainment()
bool SimpleHBHEPhase1Algo::isCorrectingForPhaseContainment |
( |
| ) |
const |
|
inline |
◆ m0Energy()
float SimpleHBHEPhase1Algo::m0Energy |
( |
const HBHEChannelInfo & |
info, |
|
|
double |
reconstructedCharge, |
|
|
bool |
applyContainmentCorrection, |
|
|
double |
phaseNS, |
|
|
int |
nSamplesToAdd |
|
) |
| |
|
protected |
◆ m0Time()
float SimpleHBHEPhase1Algo::m0Time |
( |
const HBHEChannelInfo & |
info, |
|
|
double |
reconstructedCharge, |
|
|
int |
nSamplesToExamine |
|
) |
| const |
|
protected |
Definition at line 183 of file SimpleHBHEPhase1Algo.cc.
186 float time = -9999.f;
190 const int soi =
info.soi();
196 unsigned maxI =
info.peakEnergyTS((
unsigned)ibeg, (
unsigned)iend);
209 if (nSamplesToExamine < (
int)
nSamples)
213 if (emax0 > 0.
f && emax1 > 0.
f)
214 time += 25.f * emax1 / (emax0 + emax1);
References HcalTimeSlew::delay(), f, firstSampleShift_, dqmMemoryStats::float, hcalTimeSlew_delay_, info(), createfilelist::int, SiStripPI::max, findQualityFiles::maxI, HBHEChannelInfo::MAXSAMPLES, HcalTimeSlew::Medium, min(), PresampleTask_cfi::nSamples, position, protons_cff::time, and mitigatedMETSequence_cff::U.
Referenced by reconstruct().
◆ reconstruct()
Implements AbsHBHEPhase1Algo.
Definition at line 56 of file SimpleHBHEPhase1Algo.cc.
63 float m0t = 0.f, m0E = 0.f;
69 const double fc_ampl =
info.chargeInWindow(ibeg, ibeg + nSamplesToAdd);
72 m0E =
m0Energy(
info, fc_ampl, applyContainment, phasens, nSamplesToAdd);
78 float m2t = 0.f, m2E = 0.f,
chi2 = -1.f;
79 bool useTriple =
false;
91 float m3t = 0.f, m3E = 0.f;
100 float m4E = 0.f, m4chi2 = -1.f;
102 bool m4UseTriple =
false;
123 }
else if (method2) {
127 }
else if (method3) {
131 float tdcTime =
info.soiRiseTime();
134 rh =
HBHERecHit(channelId, rhE, rht, tdcTime);
143 if (useTriple || m4UseTriple)
References hltPixelTracks_cff::chi2, corrFPC_, firstSampleShift_, HcalPulseShapes::getShape(), HcalPhase1FlagLabels::HBHEPulseFitBit, hbminusCorrectionFactor(), hcalTimeSlew_delay_, hltOOTpuCorr_, info(), HLTBitAnalyser_cfi::isData, HcalSpecialTimes::isSpecial(), m0Energy(), m0Time(), mahiOOTpuCorr_, CalibrationSummaryClient_cfi::params, HcalDeterministicFit::phase1Apply(), PulseShapeFitOOTPileupCorrection::phase1Apply(), MahiFit::phase1Apply(), phaseNS_, psFitOOTpuCorr_, samplesToAdd_, HBHERecHitAuxSetter::setAux(), HBHERecHit::setAuxEnergy(), HBHERecHit::setChiSquared(), CaloRecHit::setFlagField(), HBHERecHit::setRawEnergy(), theHcalPulseShapes_, and timeShift_.
◆ applyLegacyHBMCorrection_
bool SimpleHBHEPhase1Algo::applyLegacyHBMCorrection_ |
|
private |
◆ corrFPC_
bool SimpleHBHEPhase1Algo::corrFPC_ |
|
private |
◆ delayToken_
◆ firstSampleShift_
int SimpleHBHEPhase1Algo::firstSampleShift_ |
|
private |
◆ hcalTimeSlew_delay_
const HcalTimeSlew* SimpleHBHEPhase1Algo::hcalTimeSlew_delay_ |
◆ hltOOTpuCorr_
◆ mahiOOTpuCorr_
std::unique_ptr<MahiFit> SimpleHBHEPhase1Algo::mahiOOTpuCorr_ |
|
private |
◆ phaseNS_
float SimpleHBHEPhase1Algo::phaseNS_ |
|
private |
◆ psFitOOTpuCorr_
◆ pulseCorr_
◆ runnum_
int SimpleHBHEPhase1Algo::runnum_ |
|
private |
◆ samplesToAdd_
int SimpleHBHEPhase1Algo::samplesToAdd_ |
|
private |
◆ theHcalPulseShapes_
◆ timeShift_
float SimpleHBHEPhase1Algo::timeShift_ |
|
private |
HcalPulseShapes theHcalPulseShapes_
std::unique_ptr< PulseShapeFitOOTPileupCorrection > psFitOOTpuCorr_
constexpr bool isSpecial(const float t)
constexpr void setAuxEnergy(const float en)
constexpr static void setAux(const HBHEChannelInfo &info, HBHERecHit *rechit)
constexpr int iphi() const
get the cell iphi
void phase1Apply(const HBHEChannelInfo &channelData, float &reconstructedEnergy, float &reconstructedTime, const HcalTimeSlew *hcalTimeSlew_delay) const
void phase1Apply(const HBHEChannelInfo &channelData, float &reconstructedEnergy, float &reconstructedTime, bool &useTriple, float &chi2) const
std::unique_ptr< HcalDeterministicFit > hltOOTpuCorr_
const HcalPulseContainmentCorrection * get(const HcalDetId &detId, int toAdd, float fixedphase_ns)
float delay(float fC, BiasSetting bias=Medium) const
Returns the amount (ns) by which a pulse of the given number of fC will be delayed by the timeslew ef...
void phase1Apply(const HBHEChannelInfo &channelData, float &reconstructedEnergy, float &reconstructedTime, bool &useTriple, float &chi2) const
const Shape & getShape(int shapeType) const
constexpr void setChiSquared(const float chi2)
constexpr void setRawEnergy(const float en)
float hbminusCorrectionFactor(const HcalDetId &cell, float energy, bool isRealData) const
std::unique_ptr< MahiFit > mahiOOTpuCorr_
constexpr int ieta() const
get the cell ieta
correctForPhaseContainment
float m0Time(const HBHEChannelInfo &info, double reconstructedCharge, int nSamplesToExamine) const
static int position[264][3]
constexpr HcalSubdetector subdet() const
get the subdetector
const HcalTimeSlew * hcalTimeSlew_delay_
bool getData(T &iHolder) const
float hbminus_special_ecorr(int ieta, int iphi, double energy, int runnum)
Special energy correction for some HB- cells.
static const unsigned MAXSAMPLES
edm::ESGetToken< HcalTimeSlew, HcalTimeSlewRecord > delayToken_
bool applyLegacyHBMCorrection_
constexpr void setFlagField(uint32_t value, int base, int width=1)
float m0Energy(const HBHEChannelInfo &info, double reconstructedCharge, bool applyContainmentCorrection, double phaseNS, int nSamplesToAdd)
HcalPulseContainmentManager pulseCorr_
void beginRun(edm::EventSetup const &es)