Iterative Tracking Algorithm

Complete: 5

Goal of the page

The reader of the page is expected to get familiar with the iterative tracking approach, and to be able to add tracking steps in the whole tracking chain.

Contacts

Michele Pioppi: michele.pioppi@cernNOSPAMPLEASE.ch
Kevin Stenson: stenson@fnalNOSPAMPLEASE.gov

Introduction

The approach is based on the selection of first track collection with very tight settings in order to reduce as minimum as possible the fake rate. All the hits attached to the first track collection are removed and a second track reconstruction is applied with the remaining hits. The second collection is obtained loosening all the tracking cuts.
See the following presentations for a detailed description:
Tracking meeting 23 may 2007
PFlow meeting 05 july 2007
Tracking meeting 01 august 2007
ParticleFlow meeting 13 september 2007
Tracking meeting 31 january 2008
Tracking meeting 05 february 2008
Tracking meeting 14 february 2008
The results of the iterative tracking are summarized in the internal note 2007/065

Usage of the algorithm

In each tracking iteration the user must:
  • Create a new cluster collection by remove the clusters used in the previous track collections
e.g.
 secClusters = cms.EDFilter("TrackClusterRemover",
    oldClusterRemovalInfo = cms.InputTag("newClusters"), # clusters used in the previous iteration
    trajectories = cms.InputTag("firstfilter"),    # trajectories of the previous iteration
    pixelClusters = cms.InputTag("newClusters"), # pixel clusters used in the previous iteration
    stripClusters = cms.InputTag("newClusters"), # strip clusters used in the previous iteration
    Common = cms.PSet(
        maxChi2 = cms.double(30.0)
    )
                           
                           
)

  • Create new pixel and strip collections with the new cluster collection
e.g.
import RecoLocalTracker.SiPixelRecHits.SiPixelRecHits_cfi
secPixelRecHits = RecoLocalTracker.SiPixelRecHits.SiPixelRecHits_cfi.siPixelRecHits.clone(
    src = 'secClusters' 
    )
import RecoLocalTracker.SiStripRecHitConverter.SiStripRecHitConverter_cfi
secStripRecHits = RecoLocalTracker.SiStripRecHitConverter.SiStripRecHitConverter_cfi.siStripMatchedRecHits.clone(
    ClusterProducer = 'secClusters'
    )

  • Run the new tracking algorithm with the new cluster and hit collections.

  • The new hit and cluster collection must be put in the seeding
e.g.
import RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi
seclayertriplets = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.pixellayertriplets.clone(
    ComponentName = 'SecLayerTriplets'
    )
seclayertriplets.BPix.HitProducer = 'secPixelRecHits'
seclayertriplets.FPix.HitProducer = 'secPixelRecHits'

  • in the measurement tracker
e.g.
import RecoTracker.MeasurementDet.MeasurementTrackerESProducer_cfi
secMeasurementTracker = RecoTracker.MeasurementDet.MeasurementTrackerESProducer_cfi.MeasurementTracker.clone(
    ComponentName = 'secMeasurementTracker',
    pixelClusterProducer = 'secClusters',
    stripClusterProducer = 'secClusters'
    )
  • and in the fitter
e.g.
import RecoTracker.TrackProducer.TrackProducer_cfi
secWithMaterialTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
    AlgorithmName = cms.string('iter2'),
    src = 'secTrackCandidates',
    clusterRemovalInfo = 'secClusters'
    )


Software architecture

The code for the hit removal is in the package RecoLocalTracker/SubCollectionProducers
Very good examples for the iterative tracking usage can be found in RecoTracker/IterativeTracking

Review status

Reviewer/Editor and Date (copy from screen) Comments
KatiLassilaPerini - 29 Jan 2008 created template page

Responsible: ResponsibleIndividual
Last reviewed by: Most recent reviewer

Edit | Attach | Watch | Print version | History: r9 | r7 < r6 < r5 < r4 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r5 - 2009-04-23 - MichelePioppi
 
    • 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