CMS 3D CMS Logo

JetCoreRegionalStep_cff.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 #for dnn classifier
4 from Configuration.ProcessModifiers.trackdnn_cff import trackdnn
5 
6 # This step runs over all clusters
7 
8 # run only if there are high pT jets
9 jetsForCoreTracking = cms.EDFilter("CandPtrSelector", src = cms.InputTag("ak4CaloJetsForTrk"), cut = cms.string("pt > 100 && abs(eta) < 2.5"))
10 
11 # care only at tracks from main PV
12 firstStepGoodPrimaryVertices = cms.EDFilter("PrimaryVertexObjectFilter",
13  filterParams = cms.PSet(
14  minNdof = cms.double(25.0),
15  maxZ = cms.double(15.0),
16  maxRho = cms.double(2.0)
17  ),
18  src=cms.InputTag('firstStepPrimaryVertices')
19 )
20 
21 # SEEDING LAYERS
22 jetCoreRegionalStepSeedLayers = cms.EDProducer("SeedingLayersEDProducer",
23  layerList = cms.vstring('BPix1+BPix2', 'BPix1+BPix3', 'BPix2+BPix3',
24  'BPix1+FPix1_pos', 'BPix1+FPix1_neg',
25  'BPix2+FPix1_pos', 'BPix2+FPix1_neg',
26  'FPix1_pos+FPix2_pos', 'FPix1_neg+FPix2_neg',
27  #'BPix2+TIB1','BPix2+TIB2',
28  'BPix3+TIB1','BPix3+TIB2'),
29  TIB = cms.PSet(
30  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
31  TTRHBuilder = cms.string('WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutNone'))
32  ),
33  BPix = cms.PSet(
34  useErrorsFromParam = cms.bool(True),
35  hitErrorRPhi = cms.double(0.0027),
36  hitErrorRZ = cms.double(0.006),
37  TTRHBuilder = cms.string('WithTrackAngle'),
38  HitProducer = cms.string('siPixelRecHits'),
39  #skipClusters = cms.InputTag('jetCoreRegionalStepClusters')
40  ),
41  FPix = cms.PSet(
42  useErrorsFromParam = cms.bool(True),
43  hitErrorRPhi = cms.double(0.0051),
44  hitErrorRZ = cms.double(0.0036),
45  TTRHBuilder = cms.string('WithTrackAngle'),
46  HitProducer = cms.string('siPixelRecHits'),
47  #skipClusters = cms.InputTag('jetCoreRegionalStepClusters')
48  )
49 )
50 from Configuration.Eras.Modifier_trackingPhase1_cff import trackingPhase1
51 _layerListForPhase1 = [
52  'BPix1+BPix2', 'BPix1+BPix3', 'BPix1+BPix4',
53  'BPix2+BPix3', 'BPix2+BPix4',
54  'BPix3+BPix4',
55  'BPix1+FPix1_pos', 'BPix1+FPix1_neg',
56  'BPix2+FPix1_pos', 'BPix2+FPix1_neg',
57  'FPix1_pos+FPix2_pos', 'FPix1_neg+FPix2_neg',
58  'FPix1_pos+FPix3_pos', 'FPix1_neg+FPix3_neg',
59  'FPix2_pos+FPix3_pos', 'FPix2_neg+FPix3_neg',
60  #'BPix3+TIB1','BPix3+TIB2'
61  'BPix4+TIB1','BPix4+TIB2'
62  ]
63 trackingPhase1.toModify(jetCoreRegionalStepSeedLayers, layerList = _layerListForPhase1)
64 
65 # TrackingRegion
66 from RecoTauTag.HLTProducers.tauRegionalPixelSeedTrackingRegions_cfi import tauRegionalPixelSeedTrackingRegions as _tauRegionalPixelSeedTrackingRegions
67 jetCoreRegionalStepTrackingRegions = _tauRegionalPixelSeedTrackingRegions.clone(RegionPSet=dict(
68  ptMin = 10,
69  deltaPhiRegion = 0.20,
70  deltaEtaRegion = 0.20,
71  JetSrc = "jetsForCoreTracking",
72  vertexSrc = "firstStepGoodPrimaryVertices",
73  howToUseMeasurementTracker = "Never"
74 ))
75 
76 # Seeding
77 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi import hitPairEDProducer as _hitPairEDProducer
78 jetCoreRegionalStepHitDoublets = _hitPairEDProducer.clone(
79  seedingLayers = "jetCoreRegionalStepSeedLayers",
80  trackingRegions = "jetCoreRegionalStepTrackingRegions",
81  produceSeedingHitSets = True,
82  maxElementTotal = 12000000,
83 )
84 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff import seedCreatorFromRegionConsecutiveHitsEDProducer as _seedCreatorFromRegionConsecutiveHitsEDProducer
85 jetCoreRegionalStepSeeds = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
86  seedingHitSets = "jetCoreRegionalStepHitDoublets",
87  forceKinematicWithRegionDirection = True
88 )
89 
90 # QUALITY CUTS DURING TRACK BUILDING
92 jetCoreRegionalStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
93  minimumNumberOfHits = 4,
94  seedPairPenalty = 0,
95  minPt = 0.1
96 )
97 
98 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff import pp_on_XeXe_2017
99 from Configuration.Eras.Modifier_pp_on_AA_2018_cff import pp_on_AA_2018
100 for e in [pp_on_XeXe_2017, pp_on_AA_2018]:
101  e.toModify(jetCoreRegionalStepTrajectoryFilter, minPt=5.0)
102 
104 jetCoreRegionalStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimator_cfi.Chi2MeasurementEstimator.clone(
105  ComponentName = cms.string('jetCoreRegionalStepChi2Est'),
106  nSigma = cms.double(3.0),
107  MaxChi2 = cms.double(30.0)
108 )
109 
110 # TRACK BUILDING
112 #need to also load the refToPSet_ used by GroupedCkfTrajectoryBuilder
113 CkfBaseTrajectoryFilter_block = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.CkfBaseTrajectoryFilter_block
114 jetCoreRegionalStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
115  MeasurementTrackerName = '',
116  trajectoryFilter = cms.PSet(refToPSet_ = cms.string('jetCoreRegionalStepTrajectoryFilter')),
117  #clustersToSkip = cms.InputTag('jetCoreRegionalStepClusters'),
118  maxCand = 50,
119  estimator = cms.string('jetCoreRegionalStepChi2Est'),
120  maxDPhiForLooperReconstruction = cms.double(2.0),
121  maxPtForLooperReconstruction = cms.double(0.7)
122  )
123 
124 # MAKING OF TRACK CANDIDATES
126 jetCoreRegionalStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
127  src = cms.InputTag('jetCoreRegionalStepSeeds'),
128  maxSeedsBeforeCleaning = cms.uint32(10000),
129  TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string('jetCoreRegionalStepTrajectoryBuilder')),
130  NavigationSchool = cms.string('SimpleNavigationSchool'),
131  ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
132  #numHitsForSeedCleaner = cms.int32(50),
133  #onlyPixelHitsForSeedCleaner = cms.bool(True),
134 )
135 
136 
137 # TRACK FITTING
139 jetCoreRegionalStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
140  AlgorithmName = cms.string('jetCoreRegionalStep'),
141  src = 'jetCoreRegionalStepTrackCandidates',
142  Fitter = cms.string('FlexibleKFFittingSmoother')
143  )
144 
145 from Configuration.Eras.Modifier_fastSim_cff import fastSim
147 _fastSim_jetCoreRegionalStepTracks = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
148  TrackProducers = (),
149  hasSelector=cms.vint32(),
150  selectedTrackQuals = cms.VInputTag(),
151  copyExtras = True
152  )
153 fastSim.toReplaceWith(jetCoreRegionalStepTracks,_fastSim_jetCoreRegionalStepTracks)
154 
155 
156 # Final selection
157 from RecoTracker.IterativeTracking.InitialStep_cff import initialStepClassifier1
158 #from RecoTracker.IterativeTracking.DetachedTripletStep_cff import detachedTripletStepClassifier1
159 
160 #jetCoreRegionalStep = initialStepClassifier1.clone()
161 #jetCoreRegionalStep.src='jetCoreRegionalStepTracks'
162 #jetCoreRegionalStep.qualityCuts = [-0.3,0.0,0.2]
163 #jetCoreRegionalStep.vertices = 'firstStepGoodPrimaryVertices'
164 
165 #jetCoreRegionalStepClassifier1 = initialStepClassifier1.clone()
166 #jetCoreRegionalStepClassifier1.src = 'jetCoreRegionalStepTracks'
167 #jetCoreRegionalStepClassifier1.qualityCuts = [-0.2,0.0,0.4]
168 #jetCoreRegionalStepClassifier2 = detachedTripletStepClassifier1.clone()
169 #jetCoreRegionalStepClassifier2.src = 'jetCoreRegionalStepTracks'
170 
171 
172 
173 #from RecoTracker.FinalTrackSelectors.ClassifierMerger_cfi import *
174 #jetCoreRegionalStep = ClassifierMerger.clone()
175 #jetCoreRegionalStep.inputClassifiers=['jetCoreRegionalStepClassifier1','jetCoreRegionalStepClassifier2']
176 
177 
179 jetCoreRegionalStep = TrackCutClassifier.clone()
180 jetCoreRegionalStep.src='jetCoreRegionalStepTracks'
181 jetCoreRegionalStep.mva.minPixelHits = [1,1,1]
182 jetCoreRegionalStep.mva.maxChi2 = [9999.,9999.,9999.]
183 jetCoreRegionalStep.mva.maxChi2n = [1.6,1.0,0.7]
184 jetCoreRegionalStep.mva.minLayers = [3,5,5]
185 jetCoreRegionalStep.mva.min3DLayers = [1,2,3]
186 jetCoreRegionalStep.mva.maxLostLayers = [4,3,2]
187 jetCoreRegionalStep.mva.maxDz = [0.5,0.35,0.2];
188 jetCoreRegionalStep.mva.maxDr = [0.3,0.2,0.1];
189 jetCoreRegionalStep.vertices = 'firstStepGoodPrimaryVertices'
190 
192 
193 trackingPhase1.toReplaceWith(jetCoreRegionalStep, TrackMVAClassifierPrompt.clone(
194  mva = dict(GBRForestLabel = 'MVASelectorJetCoreRegionalStep_Phase1'),
195  src = 'jetCoreRegionalStepTracks',
196  qualityCuts = [-0.2,0.0,0.4]
197 ))
198 
201 trackdnn.toReplaceWith(jetCoreRegionalStep, TrackLwtnnClassifier.clone(
202  src = 'jetCoreRegionalStepTracks',
203  qualityCuts = [0.6, 0.7, 0.8],
204 ))
205 
206 fastSim.toModify(jetCoreRegionalStep,vertices = "firstStepPrimaryVerticesBeforeMixing")
207 
208 # Final sequence
209 JetCoreRegionalStepTask = cms.Task(jetsForCoreTracking,
210  firstStepGoodPrimaryVertices,
211  #jetCoreRegionalStepClusters,
212  jetCoreRegionalStepSeedLayers,
213  jetCoreRegionalStepTrackingRegions,
214  jetCoreRegionalStepHitDoublets,
215  jetCoreRegionalStepSeeds,
216  jetCoreRegionalStepTrackCandidates,
217  jetCoreRegionalStepTracks,
218 # jetCoreRegionalStepClassifier1,jetCoreRegionalStepClassifier2,
219  jetCoreRegionalStep)
220 JetCoreRegionalStep = cms.Sequence(JetCoreRegionalStepTask)
221 fastSim.toReplaceWith(JetCoreRegionalStepTask,
222  cms.Task(jetCoreRegionalStepTracks,
223  jetCoreRegionalStep))