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 iter0
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) # iter0
56  )
57 
58 # Final selection
59 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
60 initialStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
61  src='initialStepTracks',
62  trackSelectors= cms.VPSet(
63  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
64  name = 'initialStepLoose',
65  ), #end of pset
66  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
67  name = 'initialStepTight',
68  preFilterName = 'initialStepLoose',
69  ),
70  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
71  name = 'initialStep',
72  preFilterName = 'initialStepTight',
73  ),
74  ) #end of vpset
75  ) #end of clone
76 
77 
78 
79 # Final sequence
80 iterativeInitialStep = cms.Sequence(iterativeInitialSeeds
81  +iterativeInitialTrackCandidates
82  +iterativeInitialTracks
83  +initialStepTracks
84  +initialStepSelector)
85 
86 
87 
88 
89