Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[HGCAL] Corrections in noise vector in CLUE #32021

Merged
merged 7 commits into from Nov 10, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
13 changes: 3 additions & 10 deletions RecoLocalCalo/HGCalRecProducers/plugins/HGCalCLUEAlgo.h
Expand Up @@ -45,15 +45,10 @@ class HGCalCLUEAlgoT : public HGCalClusteringAlgoBase {
maxNumberOfThickIndices_(ps.getParameter<unsigned>("maxNumberOfThickIndices")),
fcPerMip_(ps.getParameter<std::vector<double>>("fcPerMip")),
fcPerEle_(ps.getParameter<double>("fcPerEle")),
nonAgedNoises_(ps.getParameter<edm::ParameterSet>("noises").getParameter<std::vector<double>>("values")),
nonAgedNoises_(ps.getParameter<std::vector<double>>("noises")),
noiseMip_(ps.getParameter<edm::ParameterSet>("noiseMip").getParameter<double>("noise_MIP")),
use2x2_(ps.getParameter<bool>("use2x2")),
initialized_(false) {
// repeat same noises for CE-H as well
if (!isNose_) {
nonAgedNoises_.insert(std::end(nonAgedNoises_), std::begin(nonAgedNoises_), std::end(nonAgedNoises_));
}
}
initialized_(false) {}

~HGCalCLUEAlgoT() override {}

Expand Down Expand Up @@ -107,9 +102,7 @@ class HGCalCLUEAlgoT : public HGCalClusteringAlgoBase {
iDesc.add<unsigned>("maxNumberOfThickIndices", 6);
iDesc.add<std::vector<double>>("fcPerMip", {});
iDesc.add<double>("fcPerEle", 0.0);
edm::ParameterSetDescription descNestedNoises;
descNestedNoises.add<std::vector<double>>("values", {});
iDesc.add<edm::ParameterSetDescription>("noises", descNestedNoises);
iDesc.add<std::vector<double>>("noises", {});
edm::ParameterSetDescription descNestedNoiseMIP;
descNestedNoiseMIP.add<bool>("scaleByDose", false);
descNestedNoiseMIP.add<unsigned int>("scaleByDoseAlgo", 0);
Expand Down
44 changes: 25 additions & 19 deletions RecoLocalCalo/HGCalRecProducers/python/hgcalLayerClusters_cff.py
Expand Up @@ -6,30 +6,36 @@

from RecoLocalCalo.HGCalRecProducers.HGCalUncalibRecHit_cfi import HGCalUncalibRecHit

from SimCalorimetry.HGCalSimProducers.hgcalDigitizer_cfi import fC_per_ele, hgceeDigitizer, hgchebackDigitizer, hfnoseDigitizer
from SimCalorimetry.HGCalSimProducers.hgcalDigitizer_cfi import fC_per_ele, HGCAL_noises, hgceeDigitizer, hgchebackDigitizer, hfnoseDigitizer

hgcalLayerClusters = hgcalLayerClusters_.clone()

hgcalLayerClusters.timeOffset = hgceeDigitizer.tofDelay
hgcalLayerClusters.plugin.dEdXweights = cms.vdouble(dEdX.weights)
hgcalLayerClusters.plugin.fcPerMip = cms.vdouble(HGCalUncalibRecHit.HGCEEConfig.fCPerMIP + HGCalUncalibRecHit.HGCHEFConfig.fCPerMIP)
hgcalLayerClusters.plugin.thicknessCorrection = cms.vdouble(HGCalRecHit.thicknessCorrection)
hgcalLayerClusters.plugin.sciThicknessCorrection = HGCalRecHit.sciThicknessCorrection
hgcalLayerClusters.plugin.deltasi_index_regemfac = HGCalRecHit.deltasi_index_regemfac
hgcalLayerClusters.plugin.fcPerEle = cms.double(fC_per_ele)
hgcalLayerClusters.plugin.noises = cms.PSet(refToPSet_ = cms.string('HGCAL_noises'))
hgcalLayerClusters.plugin.noiseMip = hgchebackDigitizer.digiCfg.noise
hgcalLayerClusters = hgcalLayerClusters_.clone(
timeOffset = hgceeDigitizer.tofDelay,
plugin = dict(
dEdXweights = dEdX.weights.value(),
#With the introduction of 7 regional factors (6 for silicon plus 1 for scintillator),
#we extend fcPerMip (along with noises below) so that it is guaranteed that they have 6 entries.
fcPerMip = HGCalUncalibRecHit.HGCEEConfig.fCPerMIP.value() + HGCalUncalibRecHit.HGCHEFConfig.fCPerMIP.value(),
thicknessCorrection = HGCalRecHit.thicknessCorrection.value(),
sciThicknessCorrection = HGCalRecHit.sciThicknessCorrection.value(),
deltasi_index_regemfac = HGCalRecHit.deltasi_index_regemfac.value(),
fcPerEle = fC_per_ele,
#Extending noises as fcPerMip, see comment above.
noises = HGCAL_noises.values.value() + HGCAL_noises.values.value(),
noiseMip = hgchebackDigitizer.digiCfg.noise.value()
)
)

hgcalLayerClustersHFNose = hgcalLayerClusters_.clone(
detector = 'HFNose',
timeOffset = hfnoseDigitizer.tofDelay,
nHitsTime = cms.uint32(3),
timeOffset = hfnoseDigitizer.tofDelay.value(),
nHitsTime = 3,
plugin = dict(
dEdXweights = dEdX.weightsNose,
fcPerMip = HGCalUncalibRecHit.HGCHFNoseConfig.fCPerMIP,
thicknessCorrection = HGCalRecHit.thicknessNoseCorrection,
dEdXweights = dEdX.weightsNose.value(),
maxNumberOfThickIndices = 3,
fcPerMip = HGCalUncalibRecHit.HGCHFNoseConfig.fCPerMIP.value(),
thicknessCorrection = HGCalRecHit.thicknessNoseCorrection.value(),
fcPerEle = fC_per_ele,
noises = dict(refToPSet_ = cms.string('HGCAL_noises')),
noiseMip = hgchebackDigitizer.digiCfg.noise
noises = HGCAL_noises.values.value(),
noiseMip = hgchebackDigitizer.digiCfg.noise.value()
)
)