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

Enable DNN supercluster in Phase2 HLT #46010

Open
wants to merge 8 commits into
base: master
Choose a base branch
from

Conversation

RSalvatico
Copy link
Contributor

PR description:

Enable the usage of the DNN superclustering developed for the endcaps (PR #45333) in the Phase2 HLT reconstruction. In particular, this PR allows us to use:

  • Superclustering DNN (TracksterLinkingBySuperClusteringDNN)
  • Superclustering with Mustache inside TICL (TracksterLinkingbySuperClusteringMustache)

using process modifiers.

PR validation:

Successfully run several upgrade workflows such as
29691.203 SingleElectronPt15Eta1p7_2p7_2026D110 + ticl_v5
29691.204 SingleElectronPt15Eta1p7_2p7_2026D110 + ticl_v5_mustache

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 17, 2024

cms-bot internal usage

@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-46010/41813

@cmsbuild
Copy link
Contributor

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

It involves the following packages:

  • Configuration/PyReleaseValidation (upgrade, pdmv)
  • HLTrigger/Configuration (hlt)

@AdrianoDee, @Martin-Grunewald, @cmsbuild, @kskovpen, @miquork, @mmusich, @srimanob, @subirsarkar, @sunilUIET can you please review it and eventually sign? Thanks.
@Martin-Grunewald, @SohamBhattacharya, @VourMa, @fabiocos, @makortel, @missirol, @mmusich, @rovere, @silviodonato, @slomeo this is something you requested to watch as well.
@antoniovilela, @mandrenguyen, @rappoccio, @sextonkennedy you are the release manager for this.

cms-bot commands are listed here

@felicepantaleo
Copy link
Contributor

test parameters:

  • workflow_opts= -w upgrade
  • workflows = 29888.203,29688.203

@felicepantaleo
Copy link
Contributor

@cmsbuild please test

@felicepantaleo
Copy link
Contributor

@cmsbuild
Copy link
Contributor

+1

Size: This PR adds an extra 68KB to repository
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-eb053e/41547/summary.html
COMMIT: a85bda5
CMSSW: CMSSW_14_2_X_2024-09-16-2300/el8_amd64_gcc12
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week1/cms-sw/cmssw/46010/41547/install.sh to create a dev area with all the needed externals and cmssw changes.

  • DAS Queries: The DAS query tests failed, see the summary page for details.

Comparison Summary

Summary:

  • You potentially removed 2 lines from the logs
  • Reco comparison results: 10 differences found in the comparisons
  • DQMHistoTests: Total files compared: 46
  • DQMHistoTests: Total histograms compared: 3532200
  • DQMHistoTests: Total failures: 511
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 3531669
  • DQMHistoTests: Total skipped: 20
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 45 files compared)
  • Checked 202 log files, 171 edm output root files, 46 DQM output files
  • TriggerResults: found differences in 2 / 44 workflows

@mmusich
Copy link
Contributor

mmusich commented Sep 17, 2024

enable hlt_p2_timing

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.

cosmetics

@@ -5,3 +5,6 @@
scHybridBarrelProducer = cms.InputTag("hltParticleFlowSuperClusterECALL1Seeded","particleFlowSuperClusterECALBarrel"),
scIslandEndcapProducer = cms.InputTag("hltParticleFlowSuperClusterHGCalFromTICLL1Seeded")
)

from Configuration.ProcessModifiers.ticl_v5_cff import ticl_v5
ticl_v5.toModify(hltEgammaCandidatesL1Seeded, scIslandEndcapProducer = cms.InputTag("hltTiclEGammaSuperClusterProducerL1Seeded"))
Copy link
Contributor

Choose a reason for hiding this comment

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

missing newline.

@@ -5,3 +5,6 @@
scHybridBarrelProducer = cms.InputTag("hltParticleFlowSuperClusterECALUnseeded","particleFlowSuperClusterECALBarrel"),
scIslandEndcapProducer = cms.InputTag("hltParticleFlowSuperClusterHGCalFromTICLUnseeded")
)

from Configuration.ProcessModifiers.ticl_v5_cff import ticl_v5
ticl_v5.toModify(hltEgammaCandidatesUnseeded, scIslandEndcapProducer = cms.InputTag("hltTiclEGammaSuperClusterProducerUnseeded"))
Copy link
Contributor

Choose a reason for hiding this comment

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

missing newline.

regressionAndPid = cms.bool(True),
tfDnnLabel = cms.string('tracksterSelectionTf'),
tracksters_collections = cms.VInputTag("hltTiclTrackstersCLUE3DHighL1Seeded", "hltTiclTrackstersPassthrough")
)
Copy link
Contributor

Choose a reason for hiding this comment

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

missing newline.

regressionAndPid = cms.bool(True),
tfDnnLabel = cms.string('tracksterSelectionTf'),
tracksters_collections = cms.VInputTag("hltTiclTrackstersCLUE3DHigh", "hltTiclTrackstersPassthrough")
)
Copy link
Contributor

Choose a reason for hiding this comment

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

missing newline.

ticlSuperClusters=cms.InputTag("hltTiclTracksterLinksSuperclusteringMustacheL1Seeded"),
ticlTrackstersEM=cms.InputTag("hltTiclTrackstersCLUE3DHighL1Seeded"),
layerClusters=cms.InputTag("hltHgcalMergeLayerClustersL1Seeded")
)
Copy link
Contributor

Choose a reason for hiding this comment

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

missing newline.

(alpaka & ticl_superclustering_mustache_ticl).toModify(hltTiclEGammaSuperClusterProducerUnseeded,
ticlSuperClusters=cms.InputTag("hltTiclTracksterLinksSuperclusteringMustacheUnseeded"),
ticlTrackstersEM=cms.InputTag("hltTiclTrackstersCLUE3DHigh"),
layerClusters=cms.InputTag("hltHgcalMergeLayerClusters"))
Copy link
Contributor

Choose a reason for hiding this comment

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

missing newline.

Comment on lines 99 to 112
(alpaka & ticl_superclustering_dnn).toReplaceWith(_HgcalLocalRecoUnseededSequence,
cms.Sequence(
hltHgcalDigis
+ hltHGCalUncalibRecHit
+ hltHGCalRecHit+hltParticleFlowRecHitHGC
+ hltHgcalSoARecHitsProducer
+ hltHgcalSoARecHitsLayerClustersProducer
+ hltHgcalSoALayerClustersProducer
+ hltHgCalLayerClustersFromSoAProducer
+ hltHgcalLayerClustersHSci
+ hltHgcalLayerClustersHSi
+ hltHgcalMergeLayerClusters
)
)
Copy link
Contributor

Choose a reason for hiding this comment

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

How does this differ from

# Alpaka
from Configuration.ProcessModifiers.alpaka_cff import alpaka
alpaka.toReplaceWith(_HgcalLocalRecoUnseededSequence,
cms.Sequence(
hltHgcalDigis
+ hltHGCalUncalibRecHit
+ hltHGCalRecHit+hltParticleFlowRecHitHGC
+ hltHgcalSoARecHitsProducer
+ hltHgcalSoARecHitsLayerClustersProducer
+ hltHgcalSoALayerClustersProducer
+ hltHgCalLayerClustersFromSoAProducer
+ hltHgcalLayerClustersHSci
+ hltHgcalLayerClustersHSi
+ hltHgcalMergeLayerClusters
)
)
?

Don't the aforementioned lines cover the heterogeneous workflow more in general? Maybe I am missing how the ticl_superclustering_dnn modifier changes anything here.

Copy link
Contributor Author

@RSalvatico RSalvatico Sep 17, 2024

Choose a reason for hiding this comment

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

No, I think you're right. In fact all the (alpaka & ticl_superclustering) modifiers are pointless, as alpaka and ticl_superclustering modify independent sequences. Thanks

Comment on lines 128 to 141
(alpaka & ticl_superclustering_mustache_ticl).toReplaceWith(_HgcalLocalRecoUnseededSequence,
cms.Sequence(
hltHgcalDigis
+ hltHGCalUncalibRecHit
+ hltHGCalRecHit+hltParticleFlowRecHitHGC
+ hltHgcalSoARecHitsProducer
+ hltHgcalSoARecHitsLayerClustersProducer
+ hltHgcalSoALayerClustersProducer
+ hltHgCalLayerClustersFromSoAProducer
+ hltHgcalLayerClustersHSci
+ hltHgcalLayerClustersHSi
+ hltHgcalMergeLayerClusters
)
)
Copy link
Contributor

Choose a reason for hiding this comment

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

Same comment as above.

Comment on lines 113 to 115
(alpaka & ticl_superclustering_dnn).toModify(hltHgcalMergeLayerClusters,
layerClustersEE = cms.InputTag("hltHgCalLayerClustersFromSoAProducer"),
time_layerclustersEE = cms.InputTag("hltHgCalLayerClustersFromSoAProducer", "timeLayerCluster"))
Copy link
Contributor

Choose a reason for hiding this comment

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

Similar comment as above when compared to lines

alpaka.toModify(hltHgcalMergeLayerClusters,
layerClustersEE = cms.InputTag("hltHgCalLayerClustersFromSoAProducer"),
time_layerclustersEE = cms.InputTag("hltHgCalLayerClustersFromSoAProducer", "timeLayerCluster"))

Similarly applied to
(alpaka & ticl_superclustering_mustache_ticl).toModify(hltHgcalMergeLayerClusters,
layerClustersEE = cms.InputTag("hltHgCalLayerClustersFromSoAProducer"),
time_layerclustersEE = cms.InputTag("hltHgCalLayerClustersFromSoAProducer", "timeLayerCluster"))

In general the "# Alpaka & DNN" part seems to be duplicating modifications from above, potentially making the maintenance of the code harder. Maybe try to simplify - unless there is some reason for the duplication which I failed to see (potentially having to do with the order the modifiers are applied)?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes indeed, I'll clean up.

@RSalvatico
Copy link
Contributor Author

It worked @mmusich, thank you!

@cmsbuild
Copy link
Contributor

@cmsbuild
Copy link
Contributor

Pull request #46010 was updated. @AdrianoDee, @Martin-Grunewald, @Moanwar, @cmsbuild, @kskovpen, @miquork, @mmusich, @srimanob, @subirsarkar, @sunilUIET can you please check and sign again.

@mmusich
Copy link
Contributor

mmusich commented Sep 27, 2024

@cmsbuild, please test

Comment on lines 4 to 5
detector = cms.string('HGCAL'),
eid_input_name = cms.string('input'),
Copy link
Contributor

Choose a reason for hiding this comment

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

something doesn't look right here, when comparing with the fillDescriptions of this producer:

void TracksterLinksProducer::fillDescriptions(edm::ConfigurationDescriptions &descriptions) {
edm::ParameterSetDescription desc;
edm::ParameterSetDescription linkingDesc;
linkingDesc.addNode(edm::PluginDescription<TracksterLinkingPluginFactory>("type", "Skeletons", true));
// Inference Plugins
edm::ParameterSetDescription inferenceDesc;
inferenceDesc.addNode(edm::PluginDescription<TracksterInferenceAlgoFactory>("type", "TracksterInferenceByDNN", true));
desc.add<edm::ParameterSetDescription>("pluginInferenceAlgoTracksterInferenceByDNN", inferenceDesc);
edm::ParameterSetDescription inferenceDescCNNv4;
inferenceDescCNNv4.addNode(
edm::PluginDescription<TracksterInferenceAlgoFactory>("type", "TracksterInferenceByCNNv4", true));
desc.add<edm::ParameterSetDescription>("pluginInferenceAlgoTracksterInferenceByCNNv4", inferenceDescCNNv4);
desc.add<edm::ParameterSetDescription>("linkingPSet", linkingDesc);
desc.add<std::vector<edm::InputTag>>("tracksters_collections", {edm::InputTag("ticlTrackstersCLUE3DHigh")});
desc.add<std::vector<edm::InputTag>>("original_masks",
{edm::InputTag("hgcalMergeLayerClusters", "InitialLayerClustersMask")});
desc.add<edm::InputTag>("layer_clusters", edm::InputTag("hgcalMergeLayerClusters"));
desc.add<edm::InputTag>("layer_clustersTime", edm::InputTag("hgcalMergeLayerClusters", "timeLayerCluster"));
desc.add<bool>("regressionAndPid", false);
desc.add<std::string>("detector", "HGCAL");
desc.add<std::string>("propagator", "PropagatorWithMaterial");
desc.add<std::string>("inferenceAlgo", "TracksterInferenceByDNN");
descriptions.add("tracksterLinksProducer", desc);
}

I am getting runtime exceptions as:

----- Begin Fatal Exception 27-Sep-2024 18:45:08 CEST-----------------------
An exception of category 'Configuration' occurred while
   [0] Constructing the EventProcessor
   [1] Validating configuration of module: class=TracksterLinksProducer label='hltTiclTracksterLinksSuperclusteringDNNL1Seeded'
Exception Message:
Illegal parameters found in configuration.  The parameters are named:
 'eid_input_name'
 'eid_min_cluster_energy'
 'eid_n_clusters'
 'eid_n_layers'
 'eid_output_name_energy'
 'eid_output_name_id'
 'tfDnnLabel'
You could be trying to use parameter names that are not
allowed for this plugin or they could be misspelled.
----- End Fatal Exception -------------------------------------------------

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, the problem is that with the PR #45821 the TracksterLinksProducer has changed and so have the related configs, which I had looked at to create this one (and the unseeded version). Will change them accordingly.

@cmsbuild
Copy link
Contributor

-1

Failed Tests: RelVals HLTP2Timing
Size: This PR adds an extra 44KB to repository
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-eb053e/41785/summary.html
COMMIT: 8b04f56
CMSSW: CMSSW_14_2_X_2024-09-27-1100/el8_amd64_gcc12
Additional Tests: HLT_P2_TIMING
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmssw/46010/41785/install.sh to create a dev area with all the needed externals and cmssw changes.

  • DAS Queries: The DAS query tests failed, see the summary page for details.

RelVals

----- Begin Fatal Exception 27-Sep-2024 20:09:04 CEST-----------------------
An exception of category 'Configuration' occurred while
   [0] Constructing the EventProcessor
   [1] Validating configuration of module: class=TracksterLinksProducer label='hltTiclTracksterLinksSuperclusteringMustacheUnseeded'
Exception Message:
Illegal parameters found in configuration.  The parameters are named:
 'eid_input_name'
 'eid_min_cluster_energy'
 'eid_n_clusters'
 'eid_n_layers'
 'eid_output_name_energy'
 'eid_output_name_id'
 'tfDnnLabel'
You could be trying to use parameter names that are not
allowed for this plugin or they could be misspelled.
----- End Fatal Exception -------------------------------------------------
----- Begin Fatal Exception 27-Sep-2024 20:09:07 CEST-----------------------
An exception of category 'Configuration' occurred while
   [0] Constructing the EventProcessor
   [1] Validating configuration of module: class=TracksterLinksProducer label='hltTiclTracksterLinksSuperclusteringDNNUnseeded'
Exception Message:
Illegal parameters found in configuration.  The parameters are named:
 'eid_input_name'
 'eid_min_cluster_energy'
 'eid_n_clusters'
 'eid_n_layers'
 'eid_output_name_energy'
 'eid_output_name_id'
 'tfDnnLabel'
You could be trying to use parameter names that are not
allowed for this plugin or they could be misspelled.
----- End Fatal Exception -------------------------------------------------

@cmsbuild
Copy link
Contributor

@cmsbuild
Copy link
Contributor

Pull request #46010 was updated. @AdrianoDee, @Martin-Grunewald, @Moanwar, @cmsbuild, @kskovpen, @miquork, @mmusich, @srimanob, @subirsarkar, @sunilUIET can you please check and sign again.

@RSalvatico
Copy link
Contributor Author

@cmsbuild, please test

@cmsbuild
Copy link
Contributor

-1

Failed Tests: HLTP2Timing
Size: This PR adds an extra 44KB to repository
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-eb053e/41793/summary.html
COMMIT: 7d57246
CMSSW: CMSSW_14_2_X_2024-09-27-1100/el8_amd64_gcc12
Additional Tests: HLT_P2_TIMING
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmssw/46010/41793/install.sh to create a dev area with all the needed externals and cmssw changes.

  • DAS Queries: The DAS query tests failed, see the summary page for details.

Comparison Summary

Summary:

  • You potentially removed 1 lines from the logs
  • ROOTFileChecks: Some differences in event products or their sizes found
  • Reco comparison results: 97 differences found in the comparisons
  • DQMHistoTests: Total files compared: 46
  • DQMHistoTests: Total histograms compared: 3532408
  • DQMHistoTests: Total failures: 3406
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 3528982
  • DQMHistoTests: Total skipped: 20
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 45 files compared)
  • Checked 203 log files, 171 edm output root files, 46 DQM output files
  • TriggerResults: found differences in 2 / 44 workflows

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.

5 participants