Skip to content

[NGT] Adding SimDoublets class for Pixel Tracking Validation including corresponding EDProducers and EDAnalyzers #47441

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

Merged

Conversation

JanGerritSchulz
Copy link
Contributor

@JanGerritSchulz JanGerritSchulz commented Feb 25, 2025

PR description:

This PR proposes the addition of a new class of truth information for Pixel Tracking called SimDoublets.

Description of the class SimDoublets

The purpose of SimDoublets is to improve the validation of Patatrack Pixel Tracking and to facilitate its optimization. The focus lies on the first step of Patatrack Pixel Tracking which is connecting Pixel RecHits from close by layers to form doublets of compatible hits. The compatibility of two RecHits is defined by a number of cuts on $\phi$, $z$ and cluster sizes. Each of those cuts has one cut parameter that should be tuned for achieving optimal performance. The new SimDoublets are the true doublets of RecHits coming from the same TrackingParticle and, therefore in this context, represent the ideal target outcome of the doublet creation. Hence, having the SimDoublets at hand, one can plot the distributions of all variables that are cut on during the doublet creation and apply those cuts on the true doublets alone. This enables efficiency determination on the doublet level, helping quantifying the performance and optimizing the cut values according to the true distributions.
Additional material: Presentation on SimDoublets.

Proposed code changes

In order to implement this new class of SimDoublets, we propose the following changes:

  1. Addition of a persistent reference to SiPixelRecHit in SiPixelRecHitFwd.h:
    Since the SimDoublets are essentially pairs of SiPixelRecHits, we would like to store two persistent references to the RecHit objects in the SiPixelRecHitCollection. The reason why we prefer RecHits over clusters is that this is what is used in the Patatrack reconstruction.
  2. New class SimDoublets under SimDataFormats/TrackingAnalysis including EDProducer and EDAnalyzer:
    The new class that stores references to the RecHits of a TrackingParticle and is able to produce of vector of RecHit doublets on the fly. The class comes alongside its own EDProducer (under SimTracker/TrackerHitAssociation) and DQM EDAnalyzer (under Validation/TrackingMCTruth). There is one producer and one analyzer for Phase 1 and Phase 2 respectively. We also added respective config files for testing the developments in Validation/TrackingMCTruth/test.
  3. Adding a SingleMuPt15Eta0_0p4_cfi workflow:
    For testing purposes, we added this useful workflow to produce a pair of back-to-back muons of $p_T=15$ GeV in the barrel region of the Pixel Tracker with up to $|\eta|<0.4$.

Expected output changes

  • No changes in output expected since SimDoublets are not part of any sequence or workflow.

Dependencies

  • This PR does not depend on other PRs or externals.

PR validation:

The following tests were performed succesfully.

1. SimDoublets

The added test files in Validation/TrackingMCTruth/test were used to validate the SimDoublets code. For this the used data files were step-2 output files for SingleMu and TTbar. You can test the e.g. by producing TTbar samples with:

runTheMatrix.py --what upgrade -l 29634.0 --nThreads 10 --nEvents 10

Afterwards, go in cd 29634.0_TTbar_14TeV+Run4D110 and run first:

cmsRun PathToCMSSW/src/Validation/TrackingMCTruth/test/simDoubletsPhase2_TEST.py

And then:

cmsRun PathToCMSSW/src/Validation/TrackingMCTruth/test/simDoubletsPhase2_HARVESTING.py

2. Single muons workflow

Generate a step1.root file with the new SingleMuPt15Eta0_0p4_cfi workflow:

cmsDriver.py SingleMuPt15Eta0_0p4_cfi -s GEN,SIM -n 10 --conditions auto:phase2_realistic_T33 --beamspot DBrealisticHLLHC --datatier GEN-SIM --eventcontent FEVTDEBUG --geometry ExtendedRun4D110 --era Phase2C17I13M9 --relval 9000,100 --fileout file:step1.root 

Credits:

Authored together with with @elenavernazza, @Parsifal-2045 and @mmusich.

@cmsbuild
Copy link
Contributor

cmsbuild commented Feb 25, 2025

cms-bot internal usage

@JanGerritSchulz
Copy link
Contributor Author

type ngt

@cmsbuild cmsbuild added the ngt label Feb 25, 2025
@cmsbuild
Copy link
Contributor

@cmsbuild
Copy link
Contributor

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

It involves the following packages:

  • Configuration/Generator (generators)
  • Configuration/PyReleaseValidation (pdmv, upgrade)
  • DataFormats/TrackerRecHit2D (reconstruction)
  • SimDataFormats/TrackingAnalysis (simulation)
  • SimTracker/TrackerHitAssociation (simulation)
  • Validation/Configuration (dqm, simulation)
  • Validation/TrackingMCTruth (dqm)

@AdrianoDee, @Moanwar, @antoniovagnerini, @bbilin, @civanch, @cmsbuild, @DickyChant, @jfernan2, @kpedro88, @lviliani, @mandrenguyen, @mdhildreth, @menglu21, @miquork, @mkirsano, @rseidita, @srimanob, @subirsarkar can you please review it and eventually sign? Thanks.
@CeliaFernandez, @Fedespring, @GiacomoSguazzoni, @HuguesBrun, @Martin-Grunewald, @VinInn, @VourMa, @abbiendi, @andrea21z, @apsallid, @bsunanda, @cericeci, @denizsun, @dgulhan, @fabiocos, @gpetruc, @jhgoh, @makortel, @martinamalberti, @missirol, @mmusich, @mtosi, @rovere, @salimcerci, @slomeo, @threus, @trocino, @wmtford, @youyingli 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

@rovere
Copy link
Contributor

rovere commented Feb 25, 2025

@cmsbuild please test

@cmsbuild
Copy link
Contributor

-1

Failed Tests: RelVals RelVals-INPUT
Size: This PR adds an extra 16KB to repository
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-c30cc5/44658/summary.html
COMMIT: 387a08e
CMSSW: CMSSW_15_1_X_2025-02-25-1200/el8_amd64_gcc12
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmssw/47441/44658/install.sh to create a dev area with all the needed externals and cmssw changes.

RelVals

ValueError: Undefined workflows: 29696.0, 29634.0, 24834.911, 29634.911, 29700.0, 29634.75, 29834.999

RelVals-INPUT

ERROR importing file  relval_Run4 29751.85

@JanGerritSchulz JanGerritSchulz force-pushed the jgs_ph2_pixelTracking_addSimDoublets branch from 387a08e to f1d6ef3 Compare February 25, 2025 20:15
@jfernan2
Copy link
Contributor

jfernan2 commented Mar 4, 2025

+1

@Moanwar
Copy link
Contributor

Moanwar commented Mar 4, 2025

+Upgrade

@kpedro88
Copy link
Contributor

kpedro88 commented Mar 4, 2025

+simulation

@lviliani
Copy link
Contributor

lviliani commented Mar 4, 2025

+generators

@AdrianoDee
Copy link
Contributor

+pdmv

@mmusich
Copy link
Contributor

mmusich commented Mar 6, 2025

@cms-sw/dqm-l2 can you have a look?

@antoniovagnerini
Copy link

+dqm

@cmsbuild
Copy link
Contributor

cmsbuild commented Mar 7, 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. @sextonkennedy, @mandrenguyen, @antoniovilela, @rappoccio (and backports should be raised in the release meeting by the corresponding L2)

@mandrenguyen
Copy link
Contributor

+1

@cmsbuild cmsbuild merged commit 3735724 into cms-sw:master Mar 7, 2025
11 checks passed
@mmusich
Copy link
Contributor

mmusich commented Mar 8, 2025

I think this PR has lead to compilation issues in the UBSAN IB log.

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.