CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
IterativeInitialStep_cff.py
Go to the documentation of this file.
2 
3 ### STEP 0 ###
4 
5 # seeding
7 iterativeInitialSeeds = FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone()
8 iterativeInitialSeeds.firstHitSubDetectorNumber = [1]
9 iterativeInitialSeeds.firstHitSubDetectors = [1]
10 iterativeInitialSeeds.secondHitSubDetectorNumber = [2]
11 iterativeInitialSeeds.secondHitSubDetectors = [1, 2]
12 iterativeInitialSeeds.thirdHitSubDetectorNumber = [2]
13 iterativeInitialSeeds.thirdHitSubDetectors = [1, 2]
14 iterativeInitialSeeds.seedingAlgo = ['InitialPixelTriplets']
15 iterativeInitialSeeds.minRecHits = [3]
16 iterativeInitialSeeds.pTMin = [0.4] # it was 0.3
17 iterativeInitialSeeds.maxD0 = [1.]
18 iterativeInitialSeeds.maxZ0 = [30.]
19 iterativeInitialSeeds.numberOfHits = [3]
20 iterativeInitialSeeds.originRadius = [1.0] # note: standard tracking uses 0.03, but this value gives a much better agreement in rate and shape for initialStep
21 iterativeInitialSeeds.originHalfLength = [999] # it was 15.9
22 iterativeInitialSeeds.originpTMin = [0.6]
23 iterativeInitialSeeds.zVertexConstraint = [-1.0]
24 iterativeInitialSeeds.primaryVertices = ['none']
25 
26 iterativeInitialSeeds.newSyntax = True
27 #iterativeInitialSeeds.layerList = ['BPix1+BPix2+BPix3',
28 # 'BPix1+BPix2+FPix1_pos',
29 # 'BPix1+BPix2+FPix1_neg',
30 # 'BPix1+FPix1_pos+FPix2_pos',
31 # 'BPix1+FPix1_neg+FPix2_neg']
32 from RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi import PixelLayerTriplets
33 iterativeInitialSeeds.layerList = PixelLayerTriplets.layerList
34 
35 # candidate producer
37 iterativeInitialTrackCandidates = FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone()
38 iterativeInitialTrackCandidates.SeedProducer = cms.InputTag("iterativeInitialSeeds","InitialPixelTriplets")
39 #iterativeInitialTrackCandidates.TrackProducers = ['globalPixelWithMaterialTracks'] # why was it needed? I removed it (see line below) in order to solve a cyclic dependence issue that was troubling unscheduled execution, and I found no difference at all.
40 iterativeInitialTrackCandidates.TrackProducers = []
41 iterativeInitialTrackCandidates.MinNumberOfCrossedLayers = 3
42 
43 # track producer
45 iterativeInitialTracks = RecoTracker.TrackProducer.CTFFinalFitWithMaterial_cfi.ctfWithMaterialTracks.clone()
46 iterativeInitialTracks.src = 'iterativeInitialTrackCandidates'
47 iterativeInitialTracks.TTRHBuilder = 'WithoutRefit'
48 iterativeInitialTracks.Fitter = 'KFFittingSmootherWithOutlierRejection'
49 iterativeInitialTracks.Propagator = 'PropagatorWithMaterial'
50 
51 # track merger
52 initialStepTracks = cms.EDProducer("FastTrackMerger",
53  TrackProducers = cms.VInputTag(cms.InputTag("iterativeInitialTrackCandidates"),
54  cms.InputTag("iterativeInitialTracks")),
55  trackAlgo = cms.untracked.uint32(4) # initialStep
56  )
57 
58 #vertices
60 firstStepPrimaryVertices=RecoVertex.PrimaryVertexProducer.OfflinePrimaryVertices_cfi.offlinePrimaryVertices.clone()
61 firstStepPrimaryVertices.TrackLabel = cms.InputTag("initialStepTracks")
62 firstStepPrimaryVertices.vertexCollections = cms.VPSet(
63  [cms.PSet(label=cms.string(""),
64  algorithm=cms.string("AdaptiveVertexFitter"),
65  minNdof=cms.double(0.0),
66  useBeamConstraint = cms.bool(False),
67  maxDistanceToBeam = cms.double(1.0)
68  )
69  ]
70  )
71 
72 
73 # Final selection
74 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
75 initialStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
76  src='initialStepTracks',
77  trackSelectors= cms.VPSet(
78  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
79  name = 'initialStepLoose',
80  ), #end of pset
81  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
82  name = 'initialStepTight',
83  preFilterName = 'initialStepLoose',
84  ),
85  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
86  name = 'initialStep',
87  preFilterName = 'initialStepTight',
88  ),
89  ) #end of vpset
90  ) #end of clone
91 
92 
93 
94 # Final sequence
95 iterativeInitialStep = cms.Sequence(iterativeInitialSeeds
96  +iterativeInitialTrackCandidates
97  +iterativeInitialTracks
98  +initialStepTracks
99  +firstStepPrimaryVertices
100  +initialStepSelector)
101 
102 
103 
104 
105