Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
0319b0c
First ECAL PF cluster validation sequence
elenavernazza Sep 25, 2025
b838a86
Scan over associator score threshold, add reconstructable histograms,…
bfonta Oct 17, 2025
8a781db
Implement 2d histograms and slice projections.
bfonta Oct 23, 2025
a8ace6a
Redefine eta and energy for SimClusters, add cut on energy fraction a…
elenavernazza Oct 24, 2025
44fdc92
Correct simHitCollections to only use ECAL hits
elenavernazza Oct 29, 2025
e389089
Enable LogPrint for SC to PC matching
elenavernazza Nov 3, 2025
62fbf87
Fix normalization for shared energy fraction and re-arrange CpToPC as…
elenavernazza Nov 3, 2025
71a7b04
Add plots for fake, duplicate CaloParticles
elenavernazza Nov 5, 2025
db08d42
Redefine merge and split rates
elenavernazza Nov 10, 2025
ca28cdb
Add sequence for association by shared energy score
elenavernazza Nov 10, 2025
5c56000
Check HGCalGeometry to support RecHitTools in Run3
elenavernazza Oct 29, 2025
e2f10f8
Activate PF validation for Run3
elenavernazza Oct 28, 2025
832a3db
Template PFTester to support ticl barrel collections
elenavernazza Nov 25, 2025
9e37336
Adapt RecHitMapProducer and inheritances to RefProd logic
elenavernazza Dec 9, 2025
fa5431a
Make recHitMapProducer labels compatible with Run3 geometry
elenavernazza Dec 17, 2025
f5d4d4e
Remove reconstructable, only use one Pt EnFracCut as default, rename …
elenavernazza Dec 10, 2025
01b3d4e
Generalise to EB and EE for Run-3
elenavernazza Dec 10, 2025
985d6de
New RecoToSim and SimToReco score definition for LCToSC and LCToCP
elenavernazza Nov 3, 2025
2ed52fe
Event Display for ECAL barrel
bfonta Nov 25, 2025
1fd888d
Support Run3 in event display.
bfonta Jan 29, 2026
ff1c144
Use utils, color blind palette and finer response eta binning
bfonta Feb 20, 2026
0920d7a
Add missing space.
bfonta Feb 10, 2026
d7d87e6
[bugfix] Fix and add robustness to shared energy fraction computation.
bfonta Feb 13, 2026
8a2091f
Add RecHit and Digi tester.
bfonta Feb 18, 2026
38299e1
Add PF cluster timing.
bfonta Feb 27, 2026
72ef2e7
Add info on hits within the clusters.
bfonta Feb 20, 2026
012c130
Add digi and rechit tester to PF validation chain.
bfonta Feb 25, 2026
84c496b
Use less error-prone logz scale for PFRecHits.
bfonta Mar 3, 2026
c08a538
Support era and plot label.
bfonta Mar 3, 2026
82eed0f
Remove collections as they are already present in FEVTDEBUGHLTEventCo…
bfonta Mar 3, 2026
ba990a4
Code checks and format.
bfonta Mar 3, 2026
9c8186f
Order hits and fraction by det, subdet and rawId.
rovere Dec 12, 2025
5d280a6
Order hits and fraction by det in range min and max.
mmusich Dec 17, 2025
5d0b9fb
Option2: Use configurable hits_and_fractions_view in LCToCP and LSToS…
elenavernazza Dec 17, 2025
f7927cc
Rename hits_energies with representing fractions.
bfonta Feb 26, 2026
ac1c600
Remove redundant assert.
bfonta Feb 26, 2026
132b7bf
Ensure hits and fractions are not empty.
bfonta Feb 26, 2026
eff4155
Add views to PF cluster validation.
bfonta Mar 15, 2026
3841b5b
Optimize detector minmax.
bfonta Mar 19, 2026
86b915a
Code formats and checks.
bfonta Mar 19, 2026
c420bda
Store numPFClusters as a histogram.
bfonta Mar 19, 2026
f831f81
Update MtdSimLayerCluster and MtdSimTrackster class versions.
bfonta Mar 20, 2026
66beb7c
Add hit energy in calo truth accumulators.
bfonta Mar 23, 2026
e74b1ad
Fix filter_sim_hits type.
bfonta Mar 24, 2026
ecf57dc
Add hit finalization to premixing step.
bfonta Mar 25, 2026
59b73b6
Remove threshold value to reduce memory consumption.
bfonta Mar 26, 2026
465c2b1
Move detIds to constructors.
bfonta Mar 27, 2026
322aafa
Use unordered_map has O(1) search.
bfonta Mar 27, 2026
c64643d
Ensure enough events are present before attempting the gaussian core …
bfonta Mar 27, 2026
0136d02
Handle fit crashes due to low statistics.
bfonta Mar 27, 2026
8365046
Clamp scores between 0 and 1.
bfonta Mar 27, 2026
2566bc7
Remove unused fake vs pt + fix eff vs en label.
bfonta Mar 27, 2026
df1bce2
Remove superfluous includes.
bfonta Mar 30, 2026
b92ba2e
Avoid setting the sim cluster energy twice.
bfonta Mar 30, 2026
c0d675d
Set/unset CaloTruthAccumulator for procModifier combinations.
bfonta Apr 1, 2026
4950f9e
Add asserts.
bfonta Apr 7, 2026
49aaf25
Support premix workflow (mix -> mixData).
bfonta Apr 7, 2026
45986c3
Add dictionaries to reduce memory increase.
bfonta Apr 7, 2026
1c25b8a
Resolve compilation due to conflicts.
bfonta Apr 14, 2026
66704fa
Address premixing assertion errors and merge simplification.
bfonta Apr 14, 2026
092e638
Remove capture warning.
bfonta Apr 15, 2026
28012a9
Full view ordering not required + sanity checks.
bfonta Apr 16, 2026
2849a33
Keep old versions.
bfonta Apr 30, 2026
5d24a35
Address Theo's comments.
bfonta Apr 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions DataFormats/ParticleFlowReco/src/classes_def_2.xml
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@

<class name="std::vector<reco::PFRecHit>"/>
<class name="edm::Wrapper<std::vector<reco::PFRecHit> >"/>
<class name="edm::RefProd<vector<reco::PFRecHit> >"/>
<class name="edm::RefProd<std::vector<reco::PFRecHit> >"/>
<class name="edm::Ref< std::vector<reco::PFRecHit>, reco::PFRecHit, edm::refhelper::FindUsingAdvance<std::vector<reco::PFRecHit>,reco::PFRecHit> >"/>
<class name="edm::RefVector<std::vector<reco::PFRecHit>,reco::PFRecHit,edm::refhelper::FindUsingAdvance<std::vector<reco::PFRecHit>,reco::PFRecHit> >"/>
<class name="edm::Wrapper<std::vector<edm::RefProd<std::vector<reco::PFRecHit> > > >"/>
Expand Down Expand Up @@ -223,9 +223,9 @@
<class name="edm::RefVector<std::vector<reco::GsfPFRecTrack>,reco::GsfPFRecTrack,edm::refhelper::FindUsingAdvance<std::vector<reco::GsfPFRecTrack>,reco::GsfPFRecTrack> >"/>
<class name="std::vector<edm::Ref<std::vector<reco::GsfPFRecTrack>,reco::GsfPFRecTrack,edm::refhelper::FindUsingAdvance<std::vector<reco::GsfPFRecTrack>,reco::GsfPFRecTrack> > >"/>

<class name="edm::refhelper::FindUsingAdvance<std::vector<reco::PFCluster>,reco::PFCluster>"/>
<class name="edm::Ref<std::vector<reco::PFCluster>,reco::PFCluster,edm::refhelper::FindUsingAdvance<std::vector<reco::PFCluster>,reco::PFCluster> >"/>


<class name="pftools::ParticleFiltrationDecision" ClassVersion="11">
<version ClassVersion="11" checksum="1016852148"/>
<version ClassVersion="10" checksum="2525480962"/>
Expand Down
2 changes: 2 additions & 0 deletions HLTriggerOffline/Common/python/HLTValidationHarvest_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,13 @@
from Validation.HGCalValidation.HLTHGCalPostProcessor_cff import *
from Validation.HLTrigger.HLTGenValidationHarvesting_cff import *
from Validation.HGCalValidation.BarrelPostProcessor_cff import *
from Validation.RecoParticleFlow.hltPFPostProcessor_cfi import hltPFClusterPostProcessor

hltpostvalidation = cms.Sequence(
postProcessorHLTtrackingSequence
+postProcessorHLTvertexing
+postProcessorHLTvertexingReconstructableSim
+hltPFClusterPostProcessor
+HLTMuonPostVal
+HLTTauPostVal
+EgammaPostVal
Expand Down
18 changes: 14 additions & 4 deletions HLTriggerOffline/Common/python/HLTValidation_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
# Gen-level Validation
from Validation.HLTrigger.HLTGenValidation_cff import *
from Validation.Configuration.globalValidation_cff import *
# PF
from Validation.RecoParticleFlow.hltPFValidation_cfi import *

# HGCAL Rechit Calibration
from Validation.HGCalValidation.hgcalHitCalibrationDefault_cfi import hgcalHitCalibrationDefault as _hgcalHitCalibrationDefault
Expand All @@ -31,7 +33,12 @@
recHitsBH = ("hltHGCalRecHit", "HGCHEBRecHits", "HLT"),
hgcalMultiClusters = "None",
electrons = "None",
photons = "None"
photons = "None",
caloParticles = cms.InputTag("mix", "MergedCaloTruth")
)
from Configuration.ProcessModifiers.premix_stage2_cff import premix_stage2
premix_stage2.toModify(hgcalHitCalibrationHLT,
caloParticles = cms.InputTag("mixData", "MergedCaloTruth")
)

# HGCAL validation
Expand All @@ -56,6 +63,7 @@
+ExoticaValidationProdSeq
+hltMultiTrackValidationGsfTracks
+hltJetPreValidSeq
+hltRecHitMapProducer
)
from Configuration.Eras.Modifier_phase1Pixel_cff import phase1Pixel

Expand Down Expand Up @@ -98,14 +106,15 @@
+SMPValidationSequence
+hltbtagValidationSequence #too noisy for now
+hltHCALdigisAnalyzer+hltHCALRecoAnalyzer+hltHCALNoiseRates # HCAL
+PFValSeq
)

# Exclude everything except Muon and JetMET for now. Add HGCAL Hit Calibration
_hltvalidationWithMC_Phase2 = hltvalidationWithMC.copyAndExclude([#HLTMuonVal,
HLTTauVal,
egammaValidationSequence,
heavyFlavorValidationSequence,
#HLTJetMETValSeq,
HLTJetMETValSeq,
HLTSusyExoValSeq,
HiggsValidationSequence,
ExoticaValidationSequence,
Expand All @@ -116,8 +125,9 @@
hltHCALRecoAnalyzer,
hltHCALNoiseRates])
_hltvalidationWithMC_Phase2.insert(-1, hgcalHitCalibrationHLT)
_hltvalidationWithMC_Phase2.insert(-1, hltHgcalValidator)
_hltvalidationWithMC_Phase2.insert(-1, hltGENValidation)
_hltvalidationWithMC_Phase2.insert(-1, hltHgcalValSeq)
_hltvalidationWithMC_Phase2.insert(-1, hltGENValidation) # must go before HLTJetMETValSeq
_hltvalidationWithMC_Phase2.insert(-1, HLTJetMETValSeq)
phase2_common.toReplaceWith(hltvalidationWithMC, _hltvalidationWithMC_Phase2)

hltvalidationWithData = cms.Sequence(
Expand Down
5 changes: 4 additions & 1 deletion RecoLocalCalo/HGCalRecAlgos/src/RecHitTools.cc
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,8 @@ void RecHitTools::setGeometry(const CaloGeometry& geom) {
bhFirstLayer_ = bhOffset_ + (geomBH->topology().dddConstants()).firstLayer();
bhLastLayer_ = bhOffset_ + (geomBH->topology().dddConstants()).lastLayer(true);
bhMaxIphi_ = geomBH->topology().dddConstants().maxCells(true);
} else {
} else if (static_cast<const HGCalGeometry*>(
geom_->getSubdetectorGeometry(DetId::Forward, ForwardSubdetector::HGCEE))) {
geometryType_ = 0;
geomEE =
static_cast<const HGCalGeometry*>(geom_->getSubdetectorGeometry(DetId::Forward, ForwardSubdetector::HGCEE));
Expand Down Expand Up @@ -526,11 +527,13 @@ bool RecHitTools::isScintillatorFine(const DetId& id) const {
return false;
}
}

bool RecHitTools::isBarrel(const DetId& id) const {
return (id.det() == DetId::Ecal && id.subdetId() == EcalBarrel) ||
(id.det() == DetId::Hcal && id.subdetId() == HcalBarrel) ||
(id.det() == DetId::Hcal && id.subdetId() == HcalOuter);
}

bool RecHitTools::isOnlySilicon(const unsigned int layer) const {
// HFnose TODO
bool isonlysilicon = (layer % bhLastLayer_) < bhOffset_;
Expand Down
151 changes: 85 additions & 66 deletions RecoLocalCalo/HGCalRecProducers/plugins/RecHitMapProducer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

#include "DataFormats/HGCRecHit/interface/HGCRecHitCollections.h"
#include "DataFormats/ParticleFlowReco/interface/PFRecHit.h"
#include "DataFormats/ParticleFlowReco/interface/PFRecHitFwd.h"
#include "DataFormats/Common/interface/RefProdVector.h"
#include "DataFormats/Common/interface/MultiSpan.h"

Expand All @@ -24,33 +25,35 @@ class RecHitMapProducer : public edm::global::EDProducer<> {
void produce(edm::StreamID, edm::Event&, const edm::EventSetup&) const override;

private:
std::vector<edm::InputTag> hgcal_hits_tag_;
std::vector<edm::InputTag> pf_hits_tag_;
std::vector<edm::EDGetTokenT<HGCRecHitCollection>> hgcal_hits_token_;
std::vector<edm::EDGetTokenT<reco::PFRecHitCollection>> barrel_hits_token_;
std::vector<edm::EDGetTokenT<reco::PFRecHitCollection>> pf_hits_token_;

bool hgcalOnly_;
bool doHgcalHits_;
bool doPFHits_;
};

DEFINE_FWK_MODULE(RecHitMapProducer);

using DetIdRecHitMap = std::unordered_map<DetId, const unsigned int>;

RecHitMapProducer::RecHitMapProducer(const edm::ParameterSet& ps) : hgcalOnly_(ps.getParameter<bool>("hgcalOnly")) {
RecHitMapProducer::RecHitMapProducer(const edm::ParameterSet& ps)
: doHgcalHits_(ps.getParameter<bool>("doHgcalHits")), doPFHits_(ps.getParameter<bool>("doPFHits")) {
std::vector<edm::InputTag> tags = ps.getParameter<std::vector<edm::InputTag>>("hits");
for (auto& tag : tags) {
if (tag.label().find("HGCalRecHit") != std::string::npos) {
hgcal_hits_tag_.push_back(tag);
hgcal_hits_token_.push_back(consumes<HGCRecHitCollection>(tag));
} else {
barrel_hits_token_.push_back(consumes<reco::PFRecHitCollection>(tag));
pf_hits_tag_.push_back(tag);
pf_hits_token_.push_back(consumes<reco::PFRecHitCollection>(tag));
}
}

produces<edm::RefProdVector<HGCRecHitCollection>>("RefProdVectorHGCRecHitCollection");
produces<DetIdRecHitMap>("hgcalRecHitMap");

if (!hgcalOnly_) {
produces<edm::RefProdVector<reco::PFRecHitCollection>>("RefProdVectorPFRecHitCollection");
produces<DetIdRecHitMap>("barrelRecHitMap");
}
produces<edm::RefProdVector<reco::PFRecHitCollection>>("RefProdVectorPFRecHitCollection");
produces<DetIdRecHitMap>("pfRecHitMap");
}

void RecHitMapProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
Expand All @@ -59,69 +62,85 @@ void RecHitMapProducer::fillDescriptions(edm::ConfigurationDescriptions& descrip
{edm::InputTag("HGCalRecHit", "HGCEERecHits"),
edm::InputTag("HGCalRecHit", "HGCHEFRecHits"),
edm::InputTag("HGCalRecHit", "HGCHEBRecHits")});
desc.add<bool>("hgcalOnly", true);
desc.add<bool>("doHgcalHits", true);
desc.add<bool>("doPFHits", false);
descriptions.add("recHitMapProducer", desc);
}

void RecHitMapProducer::produce(edm::StreamID, edm::Event& evt, const edm::EventSetup& es) const {
auto hitMapHGCal = std::make_unique<DetIdRecHitMap>();

// Retrieve collections
assert(hgcal_hits_token_.size() == 3);
const auto& ee_hits = evt.getHandle(hgcal_hits_token_[0]);
const auto& fh_hits = evt.getHandle(hgcal_hits_token_[1]);
const auto& bh_hits = evt.getHandle(hgcal_hits_token_[2]);

// Check validity of all handles
if (!ee_hits.isValid() || !fh_hits.isValid() || !bh_hits.isValid()) {
edm::LogWarning("HGCalRecHitMapProducer") << "One or more HGCal hit collections are unavailable. Returning an "
"empty map and an empty RefProdVectorHGCRecHitCollection";
evt.put(std::make_unique<edm::RefProdVector<HGCRecHitCollection>>(), "RefProdVectorHGCRecHitCollection");
evt.put(std::move(hitMapHGCal), "hgcalRecHitMap");
} else {
// Fix order by storing a edm::RefProdVector<HGCRecHitCollection>
auto mcHGCRecHit = std::make_unique<edm::RefProdVector<HGCRecHitCollection>>();
mcHGCRecHit->push_back(edm::RefProd<HGCRecHitCollection>(ee_hits));
mcHGCRecHit->push_back(edm::RefProd<HGCRecHitCollection>(fh_hits));
mcHGCRecHit->push_back(edm::RefProd<HGCRecHitCollection>(bh_hits));

edm::MultiSpan<HGCRecHit> rechitSpan(*mcHGCRecHit);
for (unsigned int i = 0; i < rechitSpan.size(); ++i) {
const auto recHitDetId = rechitSpan[i].detid();
hitMapHGCal->emplace(recHitDetId, i);
if (doHgcalHits_) {
auto hitMapHGCal = std::make_unique<DetIdRecHitMap>();

// Retrieve collections
assert(hgcal_hits_token_.size() == 3);
const auto& ee_hits = evt.getHandle(hgcal_hits_token_[0]);
const auto& fh_hits = evt.getHandle(hgcal_hits_token_[1]);
const auto& bh_hits = evt.getHandle(hgcal_hits_token_[2]);

// Check validity of all handles
if (!ee_hits.isValid() || !fh_hits.isValid() || !bh_hits.isValid()) {
edm::LogWarning("HGCalRecHitMapProducer")
<< "One or more of the following HGCal hit collections are unavailable: ";
for (auto& tag : hgcal_hits_tag_) {
edm::LogWarning("HGCalRecHitMapProducer") << " - " << tag;
}
edm::LogWarning("HGCalRecHitMapProducer")
<< "Returning an empty map and an empty RefProdVectorHGCRecHitCollection";
evt.put(std::make_unique<edm::RefProdVector<HGCRecHitCollection>>(), "RefProdVectorHGCRecHitCollection");
evt.put(std::move(hitMapHGCal), "hgcalRecHitMap");
} else {
// Fix order by storing a edm::RefProdVector<HGCRecHitCollection>
auto mcHGCRecHit = std::make_unique<edm::RefProdVector<HGCRecHitCollection>>();
mcHGCRecHit->push_back(edm::RefProd<HGCRecHitCollection>(ee_hits));
mcHGCRecHit->push_back(edm::RefProd<HGCRecHitCollection>(fh_hits));
mcHGCRecHit->push_back(edm::RefProd<HGCRecHitCollection>(bh_hits));

edm::MultiSpan<HGCRecHit> rechitSpan(*mcHGCRecHit);
for (unsigned int i = 0; i < rechitSpan.size(); ++i) {
const auto recHitDetId = rechitSpan[i].detid();
hitMapHGCal->emplace(recHitDetId, i);
}

evt.put(std::move(mcHGCRecHit), "RefProdVectorHGCRecHitCollection");
evt.put(std::move(hitMapHGCal), "hgcalRecHitMap");
}

evt.put(std::move(mcHGCRecHit), "RefProdVectorHGCRecHitCollection");
evt.put(std::move(hitMapHGCal), "hgcalRecHitMap");
}

if (hgcalOnly_) {
return;
} else {
evt.put(std::make_unique<edm::RefProdVector<HGCRecHitCollection>>(), "RefProdVectorHGCRecHitCollection");
evt.put(std::make_unique<DetIdRecHitMap>(), "hgcalRecHitMap");
}

auto hitMapBarrel = std::make_unique<DetIdRecHitMap>();

assert(barrel_hits_token_.size() == 2);
const auto& ecal_hits = evt.getHandle(barrel_hits_token_[0]);
const auto& hbhe_hits = evt.getHandle(barrel_hits_token_[1]);

if (!ecal_hits.isValid() || !hbhe_hits.isValid()) {
edm::LogWarning("HGCalRecHitMapProducer") << "One or more barrel hit collections are unavailable. Returning an "
"empty map and an empty RefProdVectorPFRecHitCollection";
evt.put(std::make_unique<edm::RefProdVector<reco::PFRecHitCollection>>(), "RefProdVectorPFRecHitCollection");
evt.put(std::move(hitMapBarrel), "barrelRecHitMap");
} else {
auto mcPFRecHit = std::make_unique<edm::RefProdVector<reco::PFRecHitCollection>>();
mcPFRecHit->push_back(edm::RefProd<reco::PFRecHitCollection>(ecal_hits));
mcPFRecHit->push_back(edm::RefProd<reco::PFRecHitCollection>(hbhe_hits));

edm::MultiSpan<reco::PFRecHit> barrelRechitSpan(*mcPFRecHit);
for (unsigned int i = 0; i < barrelRechitSpan.size(); ++i) {
const auto recHitDetId = barrelRechitSpan[i].detId();
hitMapBarrel->emplace(recHitDetId, i);
if (doPFHits_) {
auto hitMapPF = std::make_unique<DetIdRecHitMap>();

assert(pf_hits_token_.size() == 2);
const auto& ecal_hits = evt.getHandle(pf_hits_token_[0]);
const auto& hbhe_hits = evt.getHandle(pf_hits_token_[1]);

if (!ecal_hits.isValid() || !hbhe_hits.isValid()) {
edm::LogWarning("HGCalRecHitMapProducer") << "One or more of the following PF hit collections are unavailable: ";
for (auto& tag : pf_hits_tag_) {
edm::LogWarning("HGCalRecHitMapProducer") << " - " << tag;
}
edm::LogWarning("HGCalRecHitMapProducer") << "Returning an empty map.";
evt.put(std::make_unique<edm::RefProdVector<reco::PFRecHitCollection>>(), "RefProdVectorPFRecHitCollection");
evt.put(std::move(hitMapPF), "pfRecHitMap");
} else {
// Fix order by storing a edm::RefProdVector<PFRecHitCollection>
auto mcPFRecHit = std::make_unique<edm::RefProdVector<reco::PFRecHitCollection>>();
mcPFRecHit->push_back(edm::RefProd<reco::PFRecHitCollection>(ecal_hits));
mcPFRecHit->push_back(edm::RefProd<reco::PFRecHitCollection>(hbhe_hits));

edm::MultiSpan<reco::PFRecHit> pfRechitSpan(*mcPFRecHit);
for (unsigned int i = 0; i < pfRechitSpan.size(); ++i) {
const auto recHitDetId = pfRechitSpan[i].detId();
hitMapPF->emplace(recHitDetId, i);
}

evt.put(std::move(mcPFRecHit), "RefProdVectorPFRecHitCollection");
evt.put(std::move(hitMapPF), "pfRecHitMap");
}

evt.put(std::move(mcPFRecHit), "RefProdVectorPFRecHitCollection");
evt.put(std::move(hitMapBarrel), "barrelRecHitMap");
} else {
evt.put(std::make_unique<edm::RefProdVector<reco::PFRecHitCollection>>(), "RefProdVectorPFRecHitCollection");
evt.put(std::make_unique<DetIdRecHitMap>(), "pfRecHitMap");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@
"particleFlowRecHitHBHE"]

from Configuration.ProcessModifiers.ticl_barrel_cff import ticl_barrel
ticl_barrel.toModify(recHitMapProducer, hits = hits, hgcalOnly = False)
ticl_barrel.toModify(recHitMapProducer, hits = hits, doHgcalHits = True, doPFHits = True)
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,10 @@
run2_common.toModify( SimCalorimetryFEVTDEBUG.outputCommands, func=lambda outputCommands: outputCommands.append('keep *_simHcalUnsuppressedDigis_*_*') )
run2_common.toModify( SimCalorimetryRAW.outputCommands, func=lambda outputCommands: outputCommands.append('keep *_simHcalUnsuppressedDigis_*_*') )

from Configuration.Eras.Modifier_run3_common_cff import run3_common
run3_common.toModify( SimCalorimetryFEVTDEBUG.outputCommands, func=lambda outputCommands: outputCommands.append('keep *_mix_MergedCaloTruth_*') )
run3_common.toModify( SimCalorimetryRAW.outputCommands, func=lambda outputCommands: outputCommands.append('keep *_mix_MergedCaloTruth_*') )

from Configuration.Eras.Modifier_run3_ecal_devel_cff import run3_ecal_devel
run3_ecal_devel.toModify(SimCalorimetryFEVTDEBUG.outputCommands, func=lambda outputCommands: outputCommands.append('keep *_mix_EBTimeDigi_*') )
run3_ecal_devel.toModify(SimCalorimetryRAW.outputCommands, func=lambda outputCommands: outputCommands.append('keep *_mix_EBTimeDigi_*') )
Expand Down
Loading