20 rechitMaker_ = std::make_unique<HGCalRecHitSimpleAlgo>();
21 tools_ = std::make_unique<hgcal::RecHitTools>();
22 constexpr
float keV2GeV = 1
e-6;
48 const auto& dweights = ps.
getParameter<std::vector<double> >(
"layerWeights");
49 for (
auto weight : dweights) {
52 const auto& weightnose = ps.
getParameter<std::vector<double> >(
"layerNoseWeights");
53 for (
auto const&
weight : weightnose)
61 const auto& rcorr = ps.
getParameter<std::vector<double> >(
"thicknessCorrection");
64 for (
auto corr : rcorr) {
72 const auto& rcorrnose = ps.
getParameter<std::vector<double> >(
"thicknessNoseCorrection");
75 for (
auto corr : rcorrnose) {
101 tools_->setGeometry(geom);
111 ddds_[1] = &(hgchefGeoHandle->topology().dddConstants());
118 ddds_[3] = &(hgchfnoseGeoHandle->topology().dddConstants());
136 float sigmaNoiseGeV = 0.f;
137 unsigned int layer =
tools_->getLayerWithOffset(detid);
138 float cce_correction = 1.0;
141 switch (detid.
det()) {
201 throw cms::Exception(
"NonHGCRecHit") <<
"Rechit with detid = " << detid.
rawId() <<
" is not HGC!";
207 double new_E = myrechit.
energy();
211 else if (idtype ==
hgcfh) {
218 myrechit.setEnergy(new_E);
219 float SoN = new_E / sigmaNoiseGeV;
220 myrechit.setSignalOverSigmaNoise(SoN);
223 myrechit.setTimeError(-1.);
226 myrechit.setTimeError(timeError);
constexpr float energy() const
std::vector< float > weights_
double hgchfnoseUncalib2GeV_
std::vector< double > hgcEE_cce_
int type() const
get the type
std::vector< float > weightsNose_
std::vector< double > hgcHEF_fCPerMIP_
std::vector< double > hgcEE_fCPerMIP_
constexpr uint32_t rawId() const
get the raw id
void push_back(T const &t)
HGCalRecHitWorkerSimple(const edm::ParameterSet &, edm::ConsumesCollector iC)
int deltasi_index_regemfac_
hgcalsimclustertime::ComputeClusterTime timeEstimatorSi_
std::vector< double > hgcEE_noise_fC_
constexpr std::array< uint8_t, layerIndexSize > layer
double hgchebUncalib2GeV_
bool getData(T &iHolder) const
std::vector< double > hgcHFNose_cce_
std::vector< double > hgcHEF_cce_
~HGCalRecHitWorkerSimple() override
std::vector< double > hgcHFNose_fCPerMIP_
std::vector< double > hgcHEF_noise_fC_
int type() const
get the type
std::vector< double > rcorr_
const HGCalTopology & topology() const
void set(const edm::EventSetup &es) override
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
std::unique_ptr< hgcal::RecHitTools > tools_
const HGCalDDDConstants & dddConstants() const
double hgchefUncalib2GeV_
T getParameter(std::string const &) const
float getTimeError(std::string type, float xVal)
bool run(const edm::Event &evt, const HGCUncalibratedRecHit &uncalibRH, HGCRecHitCollection &result) override
double hgcHFNose_keV2DIGI_
#define DEFINE_EDM_PLUGIN(factory, type, name)
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeomToken_
edm::ESGetToken< HGCalGeometry, IdealGeometryRecord > ee_geometry_token_
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
edm::ESGetToken< HGCalGeometry, IdealGeometryRecord > hfnose_geometry_token_
std::unique_ptr< HGCalRecHitSimpleAlgo > rechitMaker_
std::vector< double > rcorrNose_
std::array< const HGCalDDDConstants *, 4 > ddds_
edm::ESGetToken< HGCalGeometry, IdealGeometryRecord > hef_geometry_token_
constexpr Detector det() const
get the detector field from this detid
std::vector< double > hgcHFNose_noise_fC_