Difference: SWGuideIterativeTracking (7 vs. 8)

Revision 82011-10-02 - KevinStenson

Line: 1 to 1
 
META TOPICPARENT name="SWGuideTrackReco"

Iterative Tracking

Line: 25 to 25
 The results of the iterative tracking are summarized in the internal note 2007/065

Summary of the current iterative steps

Changed:
<
<
The current (4_2_X) default tracking in CMS contains 6 iterations, labeled 0 through 5. The main distinction between the iterations is the track seeding algorithm which is shown in the table below.
>
>
<!--/twistyPlugin twikiMakeVisibleInline-->
The 4_2_X default tracking in CMS contains 6 iterations, labeled 0 through 5. The main distinction between the iterations is the track seeding algorithm which is shown in the table below.
 
Iteration Seeding Layers pT cut (GeV) d0 cut (cm) z0 cut
Zero pixel triplets 0.8 0.2 3.0σ
1 pixel pairs 0.6 0.05 0.2cm*
Line: 101 to 102
  src = 'secTrackCandidates', clusterRemovalInfo = 'secClusters' )
Added:
>
>

<!--/twistyPlugin-->

The 4_4_X default tracking in CMS contains 7 iterations, labeled 0 through 6. These correspond to algo values 4-10. The main distinction between the iterations is the track seeding algorithm which is shown in the table below.

Iteration Seeding Layers pT cut (GeV) d0 cut (cm) z0 cut
InitialStep (0) pixel triplets 0.6 0.03 4.0σ
LowPtTripletStep (1) pixel triplets 0.2 0.03 4.0σ
PixelPairStep (2) pixel pairs 0.6 0.01 0.09cm*
DetachedTripletStep (3) pixel triplets 0.2 1.0
MixedTripletStep (4) Triplets: pixel, TIB1,2, TEC ring 1,2, wheels 1-3 0.35-0.5 2.0 10.0
PixelLessStep (5) Pairs: TIB1,2 & TID/TEC ring 1,2 0.6 2.0 10.0
TobTecStep (6) Pairs: TOB1,2 & TEC ring 5, wheels 1-7 0.6 6.0 30.0
 
Added:
>
>
In the table, d0 and z0 refer to the transverse and longitudinal impact parameters of seeds with respect to the beamspot. The * indicates the impact parameter with respect to a pixel vertex. Using triplet seeding is much faster and has a lower fake rate than pairs. Therefore, pixel triplet seeding is run first for higher pT (iteration 0) and lower pT (iteration 1), followed by pixel pairs (iteration 2) for additional efficiency. Iteration 3 uses pixel triplets like iterations 0,1 but searches for displaced tracks. Iteration 4 uses pixels and strip triplets to find tracks which miss a pixel layer and also tracks which may decay within a couple of cm of the production vertex. Iterations 4 and 5 do not use pixels to seed and are designed to find tracks which are significantly displaced from the beam line or tracks which do not leave sufficient pixel hits to be found in the earlier iterations. Other differences between iterations during track building include the minimum number of hits (3 for iterations 0-4 and 6 for iterations 5-6), the number of lost hits (1 for iterations 0-3 and 0 for iterations 4-6). The final cleaning stage is also different. The early steps have stricter requirements on tracks originating from the production vertex while the later steps have stricter requirements on the track quality. Details can be found by looking in the configuration steps which are linked in the table above and annotated more below.
 
Added:
>
>

Usage of the algorithm

In each tracking iteration the user must:
  • Identify the clusters used in the previous track collections such as:
mixedTripletStepClusters = cms.EDProducer("TrackClusterRemover",
    clusterLessSolution = cms.bool(True),
    oldClusterRemovalInfo = cms.InputTag("detachedTripletStepClusters"),
    trajectories = cms.InputTag("detachedTripletStepTracks"),
    overrideTrkQuals = cms.InputTag('detachedTripletStep'),
    TrackQuality = cms.string('highPurity'),
    pixelClusters = cms.InputTag("siPixelClusters"),
    stripClusters = cms.InputTag("siStripClusters"),
    Common = cms.PSet(
        maxChi2 = cms.double(9.0)
    )
)
 
Added:
>
>
  • Input this information at the seeding level. This is done by the skipClusters command in the seed layers definition below:
mixedTripletStepSeedLayersB = cms.ESProducer("SeedingLayersESProducer",
    ComponentName = cms.string('mixedTripletStepSeedLayersB'),
    layerList = cms.vstring('BPix2+BPix3+TIB1', 
        'BPix2+BPix3+TIB2','BPix3+TIB1+TIB2'),
    BPix = cms.PSet(
        useErrorsFromParam = cms.bool(True),
        hitErrorRPhi = cms.double(0.0027),
        hitErrorRZ = cms.double(0.006),
        TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'),
        HitProducer = cms.string('siPixelRecHits'),
        skipClusters = cms.InputTag('mixedTripletStepClusters')
    ),
    TIB = cms.PSet(
        matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
        TTRHBuilder = cms.string('WithTrackAngle'),
        skipClusters = cms.InputTag('mixedTripletStepClusters')
    )
)
  • The trajectory builder needs to be informed with the "clustersToSkip" parameter as shown below:
import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi
mixedTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi.GroupedCkfTrajectoryBuilder.clone(
    ComponentName = 'mixedTripletStepTrajectoryBuilder',
    MeasurementTrackerName = '',
    trajectoryFilterName = 'mixedTripletStepTrajectoryFilter',
    propagatorAlong = cms.string('mixedTripletStepPropagator'),
    propagatorOpposite = cms.string('mixedTripletStepPropagatorOpposite'),
    clustersToSkip = cms.InputTag('mixedTripletStepClusters'),
    maxCand = 2,
    estimator = cms.string('mixedTripletStepChi2Est')
    )
  • The track candidate maker needs the trajectory builder name and the track producer needs the track candidate name:
import RecoTracker.CkfPattern.CkfTrackCandidates_cfi
mixedTripletStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
    src = cms.InputTag('mixedTripletStepSeeds'),
    TrajectoryBuilder = 'mixedTripletStepTrajectoryBuilder',
    doSeedingRegionRebuilding = True,
    useHitsSplitting = True
)
import RecoTracker.TrackProducer.TrackProducer_cfi
mixedTripletStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
    AlgorithmName = cms.string('iter4'),
    src = 'mixedTripletStepTrackCandidates'
)
 

Software architecture

Changed:
<
<
The code for the hit removal is in the package CMS.RecoLocalTracker/SubCollectionProducers
Very good examples for the iterative tracking usage can be found in RecoTracker/CMS.IterativeTracking
>
>
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

Line: 115 to 199
 
Reviewer/Editor and Date (copy from screen) Comments
KatiLassilaPerini - 29 Jan 2008 created template page
KevinStenson - 06 Aug 2009 Added information on current iterative tracking steps
Added:
>
>
KevinStenson - 01 Oct 2011 Updated to reflect iterative tracking CMSSW440
 
<!-- In the following line, be sure to put a blank space AFTER your name; otherwise the Summary doesn't come out right. -->

Responsible: KevinStenson

 
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