CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Functions
customizeHLTTrackingForPhaseI2017 Namespace Reference

Functions

def customizeHLTForPFTrackingPhaseI2017
 
def customizeHLTPhaseIPixelGeom
 
def modifyHLTForPFTrackingPhaseI2017
 
def modifyHLTPhaseIPixelGeom
 

Function Documentation

def customizeHLTTrackingForPhaseI2017.customizeHLTForPFTrackingPhaseI2017 (   process)

Definition at line 29 of file customizeHLTTrackingForPhaseI2017.py.

References beam_dqm_sourceclient-live_cfg._copy(), cmsPerfStripChart.dict, list(), and common.replace_with().

29 
31 
32  process.hltPixelLayerTriplets.layerList = cms.vstring(
33  'BPix1+BPix2+BPix3',
34  'BPix2+BPix3+BPix4',
35  'BPix1+BPix3+BPix4',
36  'BPix1+BPix2+BPix4',
37  'BPix2+BPix3+FPix1_pos',
38  'BPix2+BPix3+FPix1_neg',
39  'BPix1+BPix2+FPix1_pos',
40  'BPix1+BPix2+FPix1_neg',
41  'BPix2+FPix1_pos+FPix2_pos',
42  'BPix2+FPix1_neg+FPix2_neg',
43  'BPix1+FPix1_pos+FPix2_pos',
44  'BPix1+FPix1_neg+FPix2_neg',
45  'FPix1_pos+FPix2_pos+FPix3_pos',
46  'FPix1_neg+FPix2_neg+FPix3_neg'
47  )
48 
49  process.hltPixelLayerQuadruplets = cms.EDProducer("SeedingLayersEDProducer",
50  BPix = cms.PSet(
51  useErrorsFromParam = cms.bool( True ),
52  hitErrorRPhi = cms.double( 0.0027 ),
53  TTRHBuilder = cms.string( "hltESPTTRHBuilderPixelOnly" ),
54  HitProducer = cms.string( "hltSiPixelRecHits" ),
55  hitErrorRZ = cms.double( 0.006 )
56  ),
57  FPix = cms.PSet(
58  useErrorsFromParam = cms.bool( True ),
59  hitErrorRPhi = cms.double( 0.0051 ),
60  TTRHBuilder = cms.string( "hltESPTTRHBuilderPixelOnly" ),
61  HitProducer = cms.string( "hltSiPixelRecHits" ),
62  hitErrorRZ = cms.double( 0.0036 )
63  ),
64  MTEC = cms.PSet( ),
65  MTIB = cms.PSet( ),
66  MTID = cms.PSet( ),
67  MTOB = cms.PSet( ),
68  TEC = cms.PSet( ),
69  TIB = cms.PSet( ),
70  TID = cms.PSet( ),
71  TOB = cms.PSet( ),
72  layerList = cms.vstring(
73  'BPix1+BPix2+BPix3+BPix4',
74  'BPix1+BPix2+BPix3+FPix1_pos',
75  'BPix1+BPix2+BPix3+FPix1_neg',
76  'BPix1+BPix2+FPix1_pos+FPix2_pos',
77  'BPix1+BPix2+FPix1_neg+FPix2_neg',
78  'BPix1+FPix1_pos+FPix2_pos+FPix3_pos',
79  'BPix1+FPix1_neg+FPix2_neg+FPix3_neg'
80  )
81  )
82 
83  # Configure seed generator / pixel track producer
84  from RecoPixelVertexing.PixelTriplets.caHitQuadrupletEDProducer_cfi import caHitQuadrupletEDProducer as _caHitQuadrupletEDProducer
85 
86  process.hltPixelTracksTrackingRegions.RegionPSet = cms.PSet(
87  precise = cms.bool( True ),
88  beamSpot = cms.InputTag( "hltOnlineBeamSpot" ),
89  originRadius = cms.double(0.02),
90  ptMin = cms.double(0.9),
91  nSigmaZ = cms.double(4.0),
92  )
93 
94  process.hltPixelTracksHitDoublets.seedingLayers = "hltPixelLayerQuadruplets"
95  process.hltPixelTracksHitDoublets.layerPairs = [0,1,2] # layer pairs (0,1), (1,2), (2,3)
96 
97  process.hltPixelTracksHitQuadruplets = _caHitQuadrupletEDProducer.clone(
98  doublets = "hltPixelTracksHitDoublets",
99  extraHitRPhitolerance = cms.double(0.032),
100  maxChi2 = dict(
101  pt1 = 0.7,
102  pt2 = 2,
103  value1 = 200,
104  value2 = 50,
105  enabled = True,
106  ),
107  useBendingCorrection = True,
108  fitFastCircle = True,
109  fitFastCircleChi2Cut = True,
110  CAThetaCut = cms.double(0.0012),
111  CAPhiCut = cms.double(0.2),
112  CAHardPtCut = cms.double(0),
113  SeedComparitorPSet = cms.PSet(
114  ComponentName = cms.string( "LowPtClusterShapeSeedComparitor" ),
115  clusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCache" )
116  )
117  )
118 
119  process.hltPixelTracks.SeedingHitSets = "hltPixelTracksHitQuadruplets"
120 
121  process.HLTIter0PSetTrajectoryFilterIT.minimumNumberOfHits = cms.int32( 4 )
122  process.HLTIter0PSetTrajectoryFilterIT.minHitsMinPt = cms.int32( 4 )
123  process.hltIter0PFlowTrackCutClassifier.mva.minLayers = cms.vint32( 3, 3, 4 )
124  process.hltIter0PFlowTrackCutClassifier.mva.min3DLayers = cms.vint32( 0, 3, 4 )
125  process.hltIter0PFlowTrackCutClassifier.mva.minPixelHits = cms.vint32( 0, 3, 4 )
126 
127  replace_with(process.hltIter1PixelLayerTriplets, cms.EDProducer( "SeedingLayersEDProducer",
128  layerList = cms.vstring(
129  'BPix1+BPix2+BPix3',
130  'BPix1+BPix2+FPix1_pos',
131  'BPix1+BPix2+FPix1_neg',
132  'BPix1+FPix1_pos+FPix2_pos',
133  'BPix1+FPix1_neg+FPix2_neg'
134  ),
135  MTOB = cms.PSet( ),
136  TEC = cms.PSet( ),
137  MTID = cms.PSet( ),
138  FPix = cms.PSet(
139  HitProducer = cms.string( "hltSiPixelRecHits" ),
140  hitErrorRZ = cms.double( 0.0036 ),
141  useErrorsFromParam = cms.bool( True ),
142  TTRHBuilder = cms.string( "hltESPTTRHBuilderPixelOnly" ),
143  skipClusters = cms.InputTag( "hltIter1ClustersRefRemoval" ),
144  hitErrorRPhi = cms.double( 0.0051 )
145  ),
146  MTEC = cms.PSet( ),
147  MTIB = cms.PSet( ),
148  TID = cms.PSet( ),
149  TOB = cms.PSet( ),
150  BPix = cms.PSet(
151  HitProducer = cms.string( "hltSiPixelRecHits" ),
152  hitErrorRZ = cms.double( 0.006 ),
153  useErrorsFromParam = cms.bool( True ),
154  TTRHBuilder = cms.string( "hltESPTTRHBuilderPixelOnly" ),
155  skipClusters = cms.InputTag( "hltIter1ClustersRefRemoval" ),
156  hitErrorRPhi = cms.double( 0.0027 )
157  ),
158  TIB = cms.PSet( )
159  ))
160 
161  process.HLTIter1PSetTrajectoryFilterIT = cms.PSet(
162  ComponentType = cms.string('CkfBaseTrajectoryFilter'),
163  chargeSignificance = cms.double(-1.0),
164  constantValueForLostHitsFractionFilter = cms.double(2.0),
165  extraNumberOfHitsBeforeTheFirstLoop = cms.int32(4),
166  maxCCCLostHits = cms.int32(0), # offline (2),
167  maxConsecLostHits = cms.int32(1),
168  maxLostHits = cms.int32(1), # offline (999),
169  maxLostHitsFraction = cms.double(0.1),
170  maxNumberOfHits = cms.int32(100),
171  minGoodStripCharge = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ),
172  minHitsMinPt = cms.int32(3),
173  minNumberOfHitsForLoopers = cms.int32(13),
174  minNumberOfHitsPerLoop = cms.int32(4),
175  minPt = cms.double(0.2),
176  minimumNumberOfHits = cms.int32(4), # 3 online
177  nSigmaMinPt = cms.double(5.0),
178  pixelSeedExtension = cms.bool(True),
179  seedExtension = cms.int32(1),
180  seedPairPenalty = cms.int32(0),
181  strictSeedExtension = cms.bool(True)
182  )
183 
184  process.HLTIter1PSetTrajectoryFilterInOutIT = cms.PSet(
185  ComponentType = cms.string('CkfBaseTrajectoryFilter'),
186  chargeSignificance = cms.double(-1.0),
187  constantValueForLostHitsFractionFilter = cms.double(2.0),
188  extraNumberOfHitsBeforeTheFirstLoop = cms.int32(4),
189  maxCCCLostHits = cms.int32(0), # offline (2),
190  maxConsecLostHits = cms.int32(1),
191  maxLostHits = cms.int32(1), # offline (999),
192  maxLostHitsFraction = cms.double(0.1),
193  maxNumberOfHits = cms.int32(100),
194  minGoodStripCharge = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ),
195  minHitsMinPt = cms.int32(3),
196  minNumberOfHitsForLoopers = cms.int32(13),
197  minNumberOfHitsPerLoop = cms.int32(4),
198  minPt = cms.double(0.2),
199  minimumNumberOfHits = cms.int32(4), # 3 online
200  nSigmaMinPt = cms.double(5.0),
201  pixelSeedExtension = cms.bool(True),
202  seedExtension = cms.int32(1),
203  seedPairPenalty = cms.int32(0),
204  strictSeedExtension = cms.bool(True)
205  )
206 
207  process.HLTIter1PSetTrajectoryBuilderIT = cms.PSet(
208  inOutTrajectoryFilter = cms.PSet( refToPSet_ = cms.string('HLTIter1PSetTrajectoryFilterInOutIT') ),
209  propagatorAlong = cms.string( "PropagatorWithMaterialParabolicMf" ),
210  trajectoryFilter = cms.PSet( refToPSet_ = cms.string( "HLTIter1PSetTrajectoryFilterIT" ) ),
211  maxCand = cms.int32( 2 ),
212  ComponentType = cms.string( "CkfTrajectoryBuilder" ),
213  propagatorOpposite = cms.string( "PropagatorWithMaterialParabolicMfOpposite" ),
214  MeasurementTrackerName = cms.string( "hltIter1ESPMeasurementTracker" ),
215  estimator = cms.string( "hltESPChi2ChargeMeasurementEstimator16" ),
216  TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ),
217  updator = cms.string( "hltESPKFUpdator" ),
218  alwaysUseInvalidHits = cms.bool( False ),
219  intermediateCleaning = cms.bool( True ),
220  lostHitPenalty = cms.double( 30.0 ),
221  useSameTrajFilter = cms.bool(False) # new ! other iteration should have it set to True
222  )
223 
224  replace_with(process.HLTIterativeTrackingIteration1, cms.Sequence( process.hltIter1ClustersRefRemoval + process.hltIter1MaskedMeasurementTrackerEvent + process.hltIter1PixelLayerTriplets + process.hltIter1PFlowPixelTrackingRegions + process.hltIter1PFlowPixelClusterCheck + process.hltIter1PFlowPixelHitDoublets + process.hltIter1PFlowPixelHitTriplets + process.hltIter1PFlowPixelSeeds + process.hltIter1PFlowCkfTrackCandidates + process.hltIter1PFlowCtfWithMaterialTracks + process.hltIter1PFlowTrackCutClassifierPrompt + process.hltIter1PFlowTrackCutClassifierDetached + process.hltIter1PFlowTrackCutClassifierMerged + process.hltIter1PFlowTrackSelectionHighPurity ))
225 
226  process.hltIter2PixelLayerTriplets = cms.EDProducer( "SeedingLayersEDProducer",
227  layerList = cms.vstring(
228  'BPix1+BPix2+BPix3',
229  'BPix1+BPix2+FPix1_pos',
230  'BPix1+BPix2+FPix1_neg',
231  'BPix1+FPix1_pos+FPix2_pos',
232  'BPix1+FPix1_neg+FPix2_neg'
233  ),
234  MTOB = cms.PSet( ),
235  TEC = cms.PSet( ),
236  MTID = cms.PSet( ),
237  FPix = cms.PSet(
238  HitProducer = cms.string( "hltSiPixelRecHits" ),
239  hitErrorRZ = cms.double( 0.0036 ),
240  useErrorsFromParam = cms.bool( True ),
241  TTRHBuilder = cms.string( "hltESPTTRHBuilderPixelOnly" ),
242  skipClusters = cms.InputTag( "hltIter2ClustersRefRemoval" ),
243  hitErrorRPhi = cms.double( 0.0051 )
244  ),
245  MTEC = cms.PSet( ),
246  MTIB = cms.PSet( ),
247  TID = cms.PSet( ),
248  TOB = cms.PSet( ),
249  BPix = cms.PSet(
250  HitProducer = cms.string( "hltSiPixelRecHits" ),
251  hitErrorRZ = cms.double( 0.006 ),
252  useErrorsFromParam = cms.bool( True ),
253  TTRHBuilder = cms.string( "hltESPTTRHBuilderPixelOnly" ),
254  skipClusters = cms.InputTag( "hltIter2ClustersRefRemoval" ),
255  hitErrorRPhi = cms.double( 0.0027 )
256  ),
257  TIB = cms.PSet( )
258  )
259 
260  from RecoPixelVertexing.PixelTriplets.pixelTripletHLTEDProducer_cfi import pixelTripletHLTEDProducer as _pixelTripletHLTEDProducer
261  process.hltIter2PFlowPixelHitDoublets.seedingLayers = "hltIter2PixelLayerTriplets"
262  process.hltIter2PFlowPixelHitDoublets.produceIntermediateHitDoublets = True
263  process.hltIter2PFlowPixelHitDoublets.produceSeedingHitSets = False
264  process.hltIter2PFlowPixelHitDoublets.seedingLayers = "hltIter2PixelLayerTriplets"
265  process.hltIter2PFlowPixelHitTriplets = _pixelTripletHLTEDProducer.clone(
266  doublets = "hltIter2PFlowPixelHitDoublets",
267  useBending = cms.bool( True ),
268  useFixedPreFiltering = cms.bool( False ),
269  maxElement = cms.uint32( 100000 ),
270  phiPreFiltering = cms.double( 0.3 ),
271  extraHitRPhitolerance = cms.double( 0.032 ),
272  useMultScattering = cms.bool( True ),
273  extraHitRZtolerance = cms.double( 0.037 ),
274  SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ),
275  produceSeedingHitSets = True,
276  )
277 
278  def _copy(old, new, skip=[]):
279  skipSet = set(skip)
280  for key in old.parameterNames_():
281  if key not in skipSet:
282  setattr(new, key, getattr(old, key))
283  from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer_cfi import seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer as _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
284  replace_with(process.hltIter2PFlowPixelSeeds, _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer.clone(seedingHitSets="hltIter2PFlowPixelHitTriplets"))
285  _copy(process.HLTSeedFromConsecutiveHitsTripletOnlyCreator, process.hltIter2PFlowPixelSeeds, skip=["ComponentName"])
286 
287  replace_with(process.HLTIterativeTrackingIteration2, cms.Sequence( process.hltIter2ClustersRefRemoval + process.hltIter2MaskedMeasurementTrackerEvent + process.hltIter2PixelLayerTriplets + process.hltIter2PFlowPixelTrackingRegions + process.hltIter2PFlowPixelClusterCheck + process.hltIter2PFlowPixelHitDoublets + process.hltIter2PFlowPixelHitTriplets + process.hltIter2PFlowPixelSeeds + process.hltIter2PFlowCkfTrackCandidates + process.hltIter2PFlowCtfWithMaterialTracks + process.hltIter2PFlowTrackCutClassifier + process.hltIter2PFlowTrackSelectionHighPurity ))
288 
289  # replace hltPixelLayerTriplets and hltPixelTracksHitTriplets with hltPixelLayerQuadruplets and hltPixelTracksHitQuadruplets
290  # in any Sequence, Paths or EndPath that contains the former and not the latter
291  from FWCore.ParameterSet.SequenceTypes import ModuleNodeVisitor
292  for sequence in itertools.chain(
293  process._Process__sequences.itervalues(),
294  process._Process__paths.itervalues(),
295  process._Process__endpaths.itervalues()
296  ):
297  modules = list()
298  sequence.visit(ModuleNodeVisitor(modules))
299 
300  if process.hltPixelTracks in modules and not process.hltPixelLayerQuadruplets in modules:
301  # note that this module does not necessarily exist in sequence 'sequence', if it doesn't, it does not get removed
302  sequence.remove(process.hltPixelLayerTriplets)
303  index = sequence.index(process.hltPixelTracksHitDoublets)
304  sequence.insert(index,process.hltPixelLayerQuadruplets)
305  index = sequence.index(process.hltPixelTracksHitTriplets)
306  sequence.remove(process.hltPixelTracksHitTriplets)
307  sequence.insert(index, process.hltPixelTracksHitQuadruplets)
308 
309  # Remove entirely to avoid warning from the early deleter
310  del process.hltPixelTracksHitTriplets
311 
312  return process
313 
# attach `customizeHLTForPFTrackingPhaseI2017` to the `phase1Pixel` era
def replace_with
Definition: common.py:21
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run
def customizeHLTTrackingForPhaseI2017.customizeHLTPhaseIPixelGeom (   process)

Definition at line 13 of file customizeHLTTrackingForPhaseI2017.py.

References common.esproducers_by_type(), and common.producers_by_type().

13 
14 def customizeHLTPhaseIPixelGeom(process):
15 
16  for esproducer in esproducers_by_type(process,"ClusterShapeHitFilterESProducer"):
17  esproducer.PixelShapeFile = 'RecoPixelVertexing/PixelLowPtUtilities/data/pixelShape_Phase1TkNewFPix.par'
18  for producer in producers_by_type(process,"SiPixelRawToDigi"):
19  if "hlt" in producer.label():
20  producer.UsePhase1 = cms.bool( True )
21  return process
22 
# attach `modifyHLTPhaseIPixelGeom' to the `phase1Pixel` era
def esproducers_by_type
Definition: common.py:15
def producers_by_type
Definition: common.py:3
def customizeHLTTrackingForPhaseI2017.modifyHLTForPFTrackingPhaseI2017 (   process)

Definition at line 314 of file customizeHLTTrackingForPhaseI2017.py.

Referenced by Eras.modifyHLTforEras().

316  phase1Pixel.toModify(process, customizeHLTForPFTrackingPhaseI2017)
def customizeHLTTrackingForPhaseI2017.modifyHLTPhaseIPixelGeom (   process)

Definition at line 23 of file customizeHLTTrackingForPhaseI2017.py.

Referenced by Eras.modifyHLTforEras().

23 
24 def modifyHLTPhaseIPixelGeom(process):
25  phase1Pixel.toModify(process, customizeHLTPhaseIPixelGeom)
26 
27 
28 
# modify the HLT configuration to run the Phase I tracking in the particle flow sequence