CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
LowPtBarrelTripletStep_cff.py
Go to the documentation of this file.
2 
3 # NEW CLUSTERS (remove previously used clusters)
4 lowPtBarrelTripletStepClusters = cms.EDProducer("TrackClusterRemover",
5  clusterLessSolution= cms.bool(True),
6  trajectories = cms.InputTag("lowPtForwardTripletStepTracks"),
7  oldClusterRemovalInfo = cms.InputTag("lowPtForwardTripletStepClusters"),
8  overrideTrkQuals = cms.InputTag('lowPtForwardTripletStepSelector','lowPtForwardTripletStep'),
9  TrackQuality = cms.string('highPurity'),
10  pixelClusters = cms.InputTag("siPixelClusters"),
11  stripClusters = cms.InputTag("siStripClusters"),
12  Common = cms.PSet(
13  maxChi2 = cms.double(9.0)
14  )
15 )
16 
17 # SEEDING LAYERS
19 lowPtBarrelTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone()
20 lowPtBarrelTripletStepSeedLayers.BPix.skipClusters = cms.InputTag('lowPtBarrelTripletStepClusters')
21 lowPtBarrelTripletStepSeedLayers.FPix.skipClusters = cms.InputTag('lowPtBarrelTripletStepClusters')
22 lowPtBarrelTripletStepSeedLayers.layerList = cms.vstring('BPix1+BPix2+BPix3')
23 
24 
25 # SEEDS
27 from RecoTracker.TkTrackingRegions.GlobalTrackingRegionFromBeamSpot_cfi import RegionPsetFomBeamSpotBlock
28 lowPtBarrelTripletStepSeeds = RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff.globalSeedsFromTriplets.clone(
29  RegionFactoryPSet = RegionPsetFomBeamSpotBlock.clone(
30  ComponentName = cms.string('GlobalRegionProducerFromBeamSpot'),
31  RegionPSet = RegionPsetFomBeamSpotBlock.RegionPSet.clone(
32  ptMin = 0.2,
33  originRadius = 0.03,
34  nSigmaZ = 4.0
35  )
36  )
37  )
38 lowPtBarrelTripletStepSeeds.OrderedHitsFactoryPSet.SeedingLayers = 'lowPtBarrelTripletStepSeedLayers'
39 
41 lowPtBarrelTripletStepSeeds.OrderedHitsFactoryPSet.GeneratorPSet.SeedComparitorPSet.ComponentName = 'LowPtClusterShapeSeedComparitor'
42 
43 
44 # QUALITY CUTS DURING TRACK BUILDING
45 import TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi
46 lowPtBarrelTripletStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.clone(
47  ComponentName = 'lowPtBarrelTripletStepTrajectoryFilter',
48  filterPset = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.filterPset.clone(
49  #maxLostHits = 3, # use LostHitFraction filter instead
50  minimumNumberOfHits = 3,
51  minPt = 0.1
52  )
53  )
54 
56 lowPtBarrelTripletStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimatorESProducer_cfi.Chi2MeasurementEstimator.clone(
57  ComponentName = cms.string('lowPtBarrelTripletStepChi2Est'),
58  nSigma = cms.double(3.0),
59  MaxChi2 = cms.double(9.0)
60 )
61 
62 # TRACK BUILDING
64 lowPtBarrelTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi.GroupedCkfTrajectoryBuilder.clone(
65  ComponentName = 'lowPtBarrelTripletStepTrajectoryBuilder',
66  MeasurementTrackerName = '',
67  trajectoryFilterName = 'lowPtBarrelTripletStepTrajectoryFilter',
68  clustersToSkip = cms.InputTag('lowPtBarrelTripletStepClusters'),
69  maxCand = 3,
70 
71  #lostHitPenalty = cms.double(10.0),
72 
73  estimator = cms.string('lowPtBarrelTripletStepChi2Est'),
74  # 0.63 GeV is the maximum pT for a charged particle to loop within the 1.1m radius
75  # of the outermost Tracker barrel layer (with B=3.8T)
76  maxPtForLooperReconstruction = cms.double(0.63)
77  # set the variable to a negative value to turn-off the looper reconstruction
78  #maxPtForLooperReconstruction = cms.double(-1.)
79  )
80 
81 # MAKING OF TRACK CANDIDATES
83 lowPtBarrelTripletStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
84  src = cms.InputTag('lowPtBarrelTripletStepSeeds'),
85 
86  ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
87  numHitsForSeedCleaner = cms.int32(50),
88  onlyPixelHitsForSeedCleaner = cms.bool(True),
89 
90  TrajectoryBuilder = 'lowPtBarrelTripletStepTrajectoryBuilder',
91  doSeedingRegionRebuilding = True,
92  useHitsSplitting = True,
93  TransientInitialStateEstimatorParameters = cms.PSet(
94  propagatorAlongTISE = cms.string('PropagatorWithMaterialForLoopers'),
95  propagatorOppositeTISE = cms.string('PropagatorWithMaterialForLoopersOpposite'),
96  numberMeasurementsForFit = cms.int32(4)
97  )
98 )
99 
100 ### Have to clone the KF fitters because only the PropagatorWithMaterialForLoopers (no RK) can be used for the
101 ### reconstruction of loopers
102 
103 # TRACK FITTING
105 lowPtBarrelTripletStepKFTrajectoryFitter = TrackingTools.TrackFitters.KFTrajectoryFitterESProducer_cfi.KFTrajectoryFitter.clone(
106  ComponentName = cms.string('lowPtBarrelTripletStepKFTrajectoryFitter'),
107  Propagator = cms.string('PropagatorWithMaterialForLoopers')
108 )
109 
111 lowPtBarrelTripletStepKFTrajectorySmoother = TrackingTools.TrackFitters.KFTrajectorySmootherESProducer_cfi.KFTrajectorySmoother.clone(
112  ComponentName = cms.string('lowPtBarrelTripletStepKFTrajectorySmoother'),
113  Propagator = cms.string('PropagatorWithMaterialForLoopers'),
114  errorRescaling = cms.double(10.0)
115 )
116 
118 lowPtBarrelTripletStepKFFittingSmoother = TrackingTools.TrackFitters.KFFittingSmootherESProducer_cfi.KFFittingSmoother.clone(
119  ComponentName = cms.string('lowPtBarrelTripletStepKFFittingSmoother'),
120  Fitter = cms.string('lowPtBarrelTripletStepKFTrajectoryFitter'),
121  Smoother = cms.string('lowPtBarrelTripletStepKFTrajectorySmoother'),
122  EstimateCut = cms.double(20.0),
123  LogPixelProbabilityCut = cms.double(-14.0),
124  MinNumberOfHits = cms.int32(3)
125 )
126 
127 
128 
130 lowPtBarrelTripletStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
131  src = 'lowPtBarrelTripletStepTrackCandidates',
132  AlgorithmName = cms.string('iter1'),
133  Fitter = cms.string('lowPtBarrelTripletStepKFFittingSmoother'),
134  #Propagator = cms.string('PropagatorWithMaterialForLoopers'),
135  #NavigationSchool = cms.string('') ### Is the outerHitPattern filled correctly for loopers???
136  )
137 
138 
139 # Final selection
140 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
141 lowPtBarrelTripletStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
142  src='lowPtBarrelTripletStepTracks',
143  trackSelectors= cms.VPSet(
144  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
145  name = 'lowPtBarrelTripletStepLoose',
146  ), #end of pset
147  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
148  name = 'lowPtBarrelTripletStepTight',
149  preFilterName = 'lowPtBarrelTripletStepLoose',
150  ),
151  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
152  name = 'lowPtBarrelTripletStep',
153  preFilterName = 'lowPtBarrelTripletStepTight',
154  ),
155  ) #end of vpset
156  ) #end of clone
157 
158 # Final sequence
159 LowPtBarrelTripletStep = cms.Sequence(lowPtBarrelTripletStepClusters*
160  lowPtBarrelTripletStepSeedLayers*
161  lowPtBarrelTripletStepSeeds*
162  lowPtBarrelTripletStepTrackCandidates*
163  lowPtBarrelTripletStepTracks*
164  lowPtBarrelTripletStepSelector)