Skip to content

Conversation

@tihsu99
Copy link
Contributor

@tihsu99 tihsu99 commented Sep 5, 2025

PR description:

A patch is added to include scouting egamma DQM monitoring in the online stream. The update is highly related to previous PR cmssw#48398 (New HLT Scouting DQM Online Client) i.e. here we introduce scouting egamma part into HLT Scouting DQM online client for the DQMOnlineScoutingstream. This progress has been mentioned in the scouting meeting at 28 Aug 2025.

Description of the current change

  • Add options useOfflineObject in the config files under the original HLTriggerOffline/Scouting. In online stream, we could choose not to use any offline object by such options.
  • Add EGM part to online stream config file accordingly.
  • Note: The current file HLTriggerOffline/Scouting/python/HLTScoutingEGammaPostProcessing_cff.py, which corresponds to the DQM Harvester, uses offline objects to achieve more accurate Tag-and-Probe measurements. Therefore, this postprocessor is not included in the online DQM sequence. (Similarly, in previous PR, for scouting muons, the harvester defined in HLTriggerOffline/Scouting/python/ScoutingMuonMonitoring_Client_cff.py is not used in Online DQM.) This is mentioned here for completeness.

PR validation:

This PR has been prepared from CMSSW_15_1_X_2025-08-27-2300

cmsrel CMSSW_15_1_X_2025-08-27-2300
cd CMSSW_15_1_X_2025-08-27-2300/src
cmsenv
git cms-init
git cms-addpkg DQM/Integration DQM/HLTEvF HLTriggerOffline/Scouting/
scram b && scram b code-checks && scram b code-format && scram b

Check the code dependency and its output

git cms-checkdeps -a -A

>> Checking DQM/Integration CMSSW_15_1_X_2025-08-27-2300
   x DQM/Integration/python/clients/scouting_dqm_sourceclient-live_cfg.py
>> Checking HLTriggerOffline/Scouting CMSSW_15_1_X_2025-08-27-2300
   x HLTriggerOffline/Scouting/plugins/ScoutingEGammaCollectionMonitoring.cc
   x HLTriggerOffline/Scouting/plugins/ScoutingElectronTagProbeAnalyzer.cc
   x HLTriggerOffline/Scouting/python/HLTScoutingEGammaDqmOffline_cff.py
   x HLTriggerOffline/Scouting/python/ScoutingEGammaCollectionMonitoring_cfi.py
   x HLTriggerOffline/Scouting/python/ScoutingElectronTagProbeAnalyzer_cfi.py
   x HLTriggerOffline/Scouting/test/runScoutingMonitoringDQM_EGammaOnly_step1_cfg.py
Checking out these packages: 1
DQMOffline/HLTScouting (python)

And

 runTheMatrix.py -l 145.314

Backport plan:

This is not backport but it will be backported to 15.0.X for 2025 data taking operations.

(c.c. TSG-scouting conveners @silviodonato @patinkaew )

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 5, 2025

cms-bot internal usage

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 5, 2025

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-48850/45990

  • Found files with invalid states:
    • HLTriggerOffline/Scouting/python/HLTScoutingEGammaDqmOnline_cff.py:

@mmusich
Copy link
Contributor

mmusich commented Sep 5, 2025

test parameters:

  • addpkg = DQM/Integration

@mmusich
Copy link
Contributor

mmusich commented Sep 5, 2025

please test

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 5, 2025

+1

Size: This PR adds an extra 40KB to repository
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-932ae0/47985/summary.html
COMMIT: 05f12f2
CMSSW: CMSSW_15_1_X_2025-09-05-1100/el8_amd64_gcc12
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week1/cms-sw/cmssw/48850/47985/install.sh to create a dev area with all the needed externals and cmssw changes.

Comparison Summary

Summary:

  • No significant changes to the logs found
  • Reco comparison results: 0 differences found in the comparisons
  • DQMHistoTests: Total files compared: 50
  • DQMHistoTests: Total histograms compared: 4115479
  • DQMHistoTests: Total failures: 19
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 4115440
  • DQMHistoTests: Total skipped: 20
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 49 files compared)
  • Checked 215 log files, 184 edm output root files, 50 DQM output files
  • TriggerResults: no differences found

@tihsu99 tihsu99 marked this pull request as ready for review September 5, 2025 14:23
Copy link
Contributor

@mmusich mmusich left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if ScoutingEGammaCollectionMonitoringOnline and ScoutingElectronTagProbeAnalysisOnline are clones of the offline ones, can't they just be cloned and then the relevant parameters be changed in-situ?

l1tAlgBlkInputTag = cms.InputTag("gtStage2Digis"),
l1tExtBlkInputTag = cms.InputTag("gtStage2Digis"),
ReadPrescalesFromFile = cms.bool(False),
triggerSelection = cms.vstring(["DST_PFScouting_ZeroBias_v", "DST_PFScouting_DoubleEG_v", "DST_PFScouting_SinglePhotonEB_v"]),
Copy link
Contributor

@mmusich mmusich Sep 5, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for the muon equivalent we had issues with these hardcoded bits when running scouting paths in a VdM scan, see e.g.: PR #48529 for a rationale.
I think these should be avoided here as well.

scoutingMonitoringTagProbe = cms.Sequence(ScoutingElectronTagProbeAnalysis) # * ScoutingElectronEfficiencySummary)
ScoutingElectronTagProbeAnalysisOnline = DQMEDAnalyzer('ScoutingElectronTagProbeAnalyzer',
OutputInternalPath = cms.string('/HLT/ScoutingOffline/EGamma/TnP/Tag_ScoutingElectron'),
BaseTriggerSelection = cms.vstring(["DST_PFScouting_ZeroBias_v", "DST_PFScouting_SingleMuon_v", "DST_PFScouting_DoubleMuon_v", "DST_PFScouting_JetHT_v"]),
Copy link
Contributor

@mmusich mmusich Sep 5, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for the muon equivalent we had issues with these hardcoded bits when running scouting paths in a VdM scan, see e.g.: PR #48529 for a rationale.
I think these should be avoided here as well.

Copy link
Contributor Author

@tihsu99 tihsu99 Sep 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am still investigating this #48529 issue. So I think the goal is to make the code runable for following command (but I notice the data permission is not public)

cmsRun scouting_dqm_sourceclient-live_cfg.py runInputDir=/eos/user/d/dpapagia/data runNumber=394413 scanOnce=True

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so I think the goal is to make the code runable for following command

correct. @nothingface0 would you mind giving @tihsu99 read rights over that folder?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did a test using the branch proposed here and I don't observe issues.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just shared the directory with Ting-Hsiang. Having all those files under my personal space is probably suboptimal, I'll think about moving it somewhere where they can be shared centrally, perhaps.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for sharing.
I also run with it and as @mmusich observed, I also didn't see any issues.


scoutingMonitoringEGM = cms.Sequence(ScoutingEGammaCollectionMonitoring)
ScoutingEGammaCollectionMonitoringOnline = DQMEDAnalyzer('ScoutingEGammaCollectionMonitoring',
OutputInternalPath = cms.string('/HLT/ScoutingOffline/EGamma/Collection'),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in the online DQM we're using a different path:

/HLT/ScoutingOnline/...

please update.


scoutingMonitoringTagProbe = cms.Sequence(ScoutingElectronTagProbeAnalysis) # * ScoutingElectronEfficiencySummary)
ScoutingElectronTagProbeAnalysisOnline = DQMEDAnalyzer('ScoutingElectronTagProbeAnalyzer',
OutputInternalPath = cms.string('/HLT/ScoutingOffline/EGamma/TnP/Tag_ScoutingElectron'),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in the online DQM we're using a different path:

/HLT/ScoutingOnline/...

please update.

Comment on lines 4 to 5


Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change

Comment on lines 155 to 163
for (size_t i = 1; i < patEls->size(); ++i) {
if (patEls->ptrAt(i - 1)->pt() < patEls->ptrAt(i)->pt()) {
edm::LogWarning("ScoutingEGammaCollectionMonitoring")
<< "pat::Electron collection not sorted by PT in descending order"
<< " will result in random histo filling. \n"
<< "pat::Electron[" << i << "].pt() = " << patEls->ptrAt(i)->pt() << "\n"
<< "pat::Electron[" << i + 1 << "].pt() = " << patEls->ptrAt(i + 1)->pt();
}
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I notice this only now. Does it make sense to sort the input upfront then?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, this is redundant, just for developping purpose. Will remove it.

@mmusich
Copy link
Contributor

mmusich commented Sep 5, 2025

-hlt

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 5, 2025

A new Pull Request was created by @tihsu99 for master.

It involves the following packages:

  • DQM/HLTEvF (dqm, hlt)
  • DQM/Integration (dqm)
  • HLTriggerOffline/Scouting (dqm)

@antoniovagnerini, @ctarricone, @rseidita can you please review it and eventually sign? Thanks.
@batinkov, @francescobrivio, @missirol, @mmusich, @mtosi, @threus this is something you requested to watch as well.
@ftenchini, @mandrenguyen, @sextonkennedy you are the release manager for this.

cms-bot commands are listed here

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 8, 2025

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 8, 2025

Pull request #48850 was updated. @Martin-Grunewald, @antoniovagnerini, @cmsbuild, @ctarricone, @mmusich, @rseidita can you please check and sign again.

@mmusich
Copy link
Contributor

mmusich commented Sep 8, 2025

test parameters:

  • workflow = 145.314

@mmusich
Copy link
Contributor

mmusich commented Sep 8, 2025

@cmsbuild, please test

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 8, 2025

+1

Size: This PR adds an extra 28KB to repository
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-932ae0/48004/summary.html
COMMIT: 4f99474
CMSSW: CMSSW_15_1_X_2025-09-07-2300/el8_amd64_gcc12
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmssw/48850/48004/install.sh to create a dev area with all the needed externals and cmssw changes.

Comparison Summary

Summary:

  • You potentially added 2 lines to the logs
  • Reco comparison results: 0 differences found in the comparisons
  • DQMHistoTests: Total files compared: 51
  • DQMHistoTests: Total histograms compared: 4206286
  • DQMHistoTests: Total failures: 22
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 4206244
  • DQMHistoTests: Total skipped: 20
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 50 files compared)
  • Checked 219 log files, 188 edm output root files, 51 DQM output files
  • TriggerResults: no differences found

@mmusich
Copy link
Contributor

mmusich commented Sep 8, 2025

+hlt

@tihsu99 do you plan a 15_0_X backport? @cms-sw/dqm-l2 it would be nice to get the backport of this included in the next online release.

@tihsu99
Copy link
Contributor Author

tihsu99 commented Sep 8, 2025

+hlt

@tihsu99 do you plan a 15_0_X backport? @cms-sw/dqm-l2 it would be nice to get the backport of this included in the next online release.

Yes, I plan a 15_0_X backport. I will make another backport PR after this PR is approved,

@rseidita
Copy link
Contributor

rseidita commented Sep 9, 2025

+dqm

@tihsu99 please open the backport asap so we can get deploy it cleanly in the online release

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 9, 2025

This pull request is fully signed and it will be integrated in one of the next master IBs (tests are also fine). This pull request will now be reviewed by the release team before it's merged. @ftenchini, @sextonkennedy, @mandrenguyen (and backports should be raised in the release meeting by the corresponding L2)

@mmusich
Copy link
Contributor

mmusich commented Sep 9, 2025

@tihsu99 please open the backport asap so we can get deploy it cleanly in the online release

I second this, if you can make a backport by later today it will have a chance to enter the next data-taking release.

@mandrenguyen
Copy link
Contributor

+1

@cmsbuild cmsbuild merged commit 0d84072 into cms-sw:master Sep 9, 2025
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants