SiStrip cluster MC truth tools

Complete: 4

Goals of this page

Here we document several modules that examine the substructure of clusters in the strip tracker as revealed by the truth information in simulation data samples.

Introduction

In simulated data sets, information is saved at the strip digitization step to facilitate the subsequent association of simHits and simTracks with the individual RecHits, or clusters, produced by the local reconstruction. The container of this information is the StripDigiSimLink, described in SWGuideTrackMCTruth. From this truth information we can evaluate the accuracy of the local reconstruction in various aspects, including whether the sensor responses from more than one particle crossing have been merged. From correlations of this information with observables of the reconstructed cluster we may be able to develop algorithms for mitigating the effects of such reconstruction errors.

In this document we describe three modules that have been developed to perform MC truth-based studies of strip clusters.

ClusterRefinerTagMCmerged: flagging merged clusters

This EDProducer module, introduced in CMSSW_7_5_0, tags clusters as merged if they are associated with more than one simTrack, by setting the isMerged flag in the SiStripCluster container. It lives in RecoLocalTracker/SiStripClusterizer/test/. To activate it, start from a working configuration file, such as produced by runTheMatrix or more directly from cmsDriver, that includes tracking reconstruction. Add the following customization at the end:

from RecoLocalTracker.SiStripClusterizer.test.tagMCmergedCustomize_cff import tagMCmerged
process = tagMCmerged(process)
# process.siStripClusters.Clusterizer.associateRecoTracks = cms.bool(False)

The last, commented, line is to be activated if you are processing a file with pileup. In addition, make sure in this case that process.mix is on the path. The effect of these is to cause the algorithm to ignore overlaps with out-of-time pileup hits, since these contribute little charge to the cluster.

In addition to inserting ClusterRefinerTagMCmerged into the striptrackerlocalreco sequence, the customization configuration talks to StripCPEfromTrackAngleESProducer, changing its parameter maxChgOneMIP to a negative value so that the isMerged() state of the cluster, rather than a cut on dE/dx, will be used for the decision to inflate the CPE error.

ClusterMCsplitStrips: Splitting strip clusters per MC truth

This EDProducer module, introduced in CMSSW_7_5_0, replaces any reconstructed cluster that originates from multiple simTracks with the separate sub-clusters attributable to the separate simTracks. It lives in RecoLocalTracker/SubCollectionProducers/test/.

The algorithm is nearly the same as the one invoked by RecoLocalTracker/SubCollectionProducers/TrackClusterSplitter when that module's simSplitStrip parameter is set True. A difference is that rather than produce a new SiStripClusters container, ClusterMCsplitStrips "refines" the collection and places it in the event under the original name, insuring that consumers will all pick up the refined version.

To activate ClusterMCsplitStrips, start from a working configuration file, such as produced by runTheMatrix or more directly from cmsDriver, that includes tracking reconstruction. Add the following customization at the end:

from RecoLocalTracker.SubCollectionProducers.test.MCsplitStripsCustomize_cff import splitMCmerged
process = splitMCmerged(process)

In addition to inserting ClusterMCsplitStrips into the striptrackerlocalreco sequence, the customization config talks to StripCPEfromTrackAngleESProducer, changing its parameter maxChgOneMIP to a negative value so that the isMerged() state of the cluster, rather than a cut on dE/dx, will be used for the decision to inflate the CPE error.

The following plot illustrates the impact of ideal strip cluster splitting:

  • effandfake1.pdf: Tracking efficiency and fake rate, after vs before strip cluster splitting

StripClusterMCanalysis: Ntuple maker and plotting macro for clusters

This EDAnalyzer module introduced at CMSSW_7_6_0_pre7, matches Si strip clusters to their simTracks and simHits, and stores a number of attributes of the clusters in a flat ntuple (root tree). These can be used to correlate cluster properties, such as charge and width, with the originating particles' properties, such as particle ID and production mechanism. An application would be dE/dx distributions for clusters arising from one, or from two, crossing particles, as illustrated in this set of plots:

This module lives in Validation/TrackerRecHits/test/, and can be run in CMSSW with the configuration file

Validation/TrackerRecHits/test/stripClusterMCanalysis_cfg.py

Edit as desired the input file list (tier GEN-SIM-DIGI-RAW-HLTDEBUG, or a step2.root produced by runTheMatrix) or output TFileService filename.

If CMSSW release evolution has rendered stripClusterMCanalysis_cfg.py obsolete, one may instead edit a working step3_... .py file generated with runTheMatrix adding the following:

process.load('Validation.TrackerRecHits.test.StripClusterMCanalysis_cfi') 

process.TFileService = cms.Service("TFileService",
    fileName = cms.string('clusNtuple.root')
)

process.mixing_step = cms.Path(process.mix)
process.ntuplizer_step = cms.Path(process.StripClusterMCanalysis)

process.schedule = cms.Schedule(
   # process.mixing_step, process.raw2digi_step
   process.raw2digi_step
  , process.L1Reco_step
  , process.reconstruction_step
  , process.ntuplizer_step
)

(Here mixing_step is needed only for pileup samples with crossing frames.) This latter configuration will run slower than the custom one, since it invokes more reconstruction code, but getting that to work may assist in debugging the custom configuration.

A root macro is also available for making plots such as the example pdf above:

Validation/TrackerRecHits/test/stripClusterMCplot.C

Responsible: WilliamFord

-- WilliamFord - 2015-09-24

Topic attachments
I Attachment History Action Size Date Who Comment
PDFpdf clusNtp_relCharge.pdf r1 manage 31.9 K 2015-09-25 - 22:11 WilliamFord dE/dx for strip clusters
PDFpdf effandfake1.pdf r1 manage 46.1 K 2015-09-25 - 19:41 WilliamFord Tracking efficiency and fake rate, after (red) vs before (blue) strip cluster splitting
Edit | Attach | Watch | Print version | History: r9 < r8 < r7 < r6 < r5 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r9 - 2017-10-13 - WilliamFord
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    CMSPublic All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback