Skip to content

Missing CaloParticle From PU in CMSSW_15_0_0_pre2 #47342

Open
@waredjeb

Description

@waredjeb

Hello,

I suspect there's a problem with the Caloparticle starting from CMSSW_15_0_0_pre2. I was trying to generate some CloseByParticleGun events in PU 200 [1] and I noticed that the number of CaloParticle is always 1 (== number of particles generated), suggesting that the CaloParticle coming from the PU are not present.

For a quick check I generated 5 events with PU 50 and I used the TiclDebugger that runs some sort of debugging on the CaloParticle, adding a simple cout on the number of CP.
The same test have been done in CMSSW_15_0_0_pre1.
All the files / logs can be found here

Unfortunately the TiclDebugger is not up to date so it requires some changes in case one wants to use it [2]
But even inspecting the step2.root file from pre2 one can see how the number of CP represents only the CP from the generated particle. The SimCluster seem to be fine instead

I've also tried to look at recent PR tests but I couldn't find any Standard Mixing PU samples for Phase-2. But also in the Premixing the CP are not present, and only the SC are there.
Am I missing something?

Pre2

CaloParticle Plot
Image
SimCluster Plot
Image

Pre1

CaloParticle Plot

Image

SimCluster Plot

Image

PR47327 step2.root from 29834.999

CaloParticle Plot

Image

SimCluster Plot

Image

[1] WF = 29896.203
[2]

diff --git a/RecoHGCal/TICL/test/TiclDebugger.cc b/RecoHGCal/TICL/test/TiclDebugger.cc
index beaf4bbc872..2ed355ae345 100644
--- a/RecoHGCal/TICL/test/TiclDebugger.cc
+++ b/RecoHGCal/TICL/test/TiclDebugger.cc
@@ -105,6 +105,7 @@ void TiclDebugger::analyze(const edm::Event& iEvent, const edm::EventSetup& iSet
   edm::Handle<std::vector<CaloParticle>> caloParticlesH;
   iEvent.getByToken(caloParticlesToken_, caloParticlesH);
   auto const& caloParticles = *caloParticlesH.product();
+  LogVerbatim("TICLDebugger") << "Caloparticle size " << caloParticles.size() << std::endl;
   std::vector<std::pair<int, float>> bestCPMatches;
 
   auto bestCaloParticleMatches = [&](const ticl::Trackster& t) -> void {
diff --git a/RecoHGCal/TICL/test/ticlDebugger_cfg.py b/RecoHGCal/TICL/test/ticlDebugger_cfg.py
index 76cef2d34e4..1d92873b39b 100644
--- a/RecoHGCal/TICL/test/ticlDebugger_cfg.py
+++ b/RecoHGCal/TICL/test/ticlDebugger_cfg.py
@@ -3,21 +3,26 @@ import FWCore.ParameterSet.Config as cms
 process = cms.Process("TICLDEBUG")
 
 process.load("FWCore.MessageService.MessageLogger_cfi")
-process.load('Configuration.Geometry.GeometryExtendedRun4D49Reco_cff')
+process.load('Configuration.Geometry.GeometryExtendedRun4D110Reco_cff')
 process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
 from Configuration.AlCa.GlobalTag import GlobalTag
-process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase2_realistic_T15', '')
+process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase2_realistic_T33', '')
 
-process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(1) )
+process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(10) )
 
 process.source = cms.Source("PoolSource",
     # replace 'myfile.root' with the source file you want to use
     fileNames = cms.untracked.vstring(
-        'file:step3.root'
+        'file:/eos/user/w/wredjeb/HGCAL/TestCPFromPU/step3_pre1.root'
     )
 )
 
 process.load("RecoHGCal.TICL.ticlDebugger_cfi")
+from RecoHGCal.TICL.ticlDebugger_cfi import ticlDebugger as ticlDebugger_
+process.ticlDebugger = ticlDebugger_.clone(
+    trackstersMerge = cms.InputTag("ticlCandidate")
+)
+
 process.load("SimGeneral.Debugging.caloParticleDebugger_cfi")
 # MessageLogger customizations

@AuroraPerego @felicepantaleo @rovere FYI

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions