test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
customizeHLTTrackingForPhaseI2017.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 
4 def producers_by_type(process, *types):
5  return (module for module in process._Process__producers.values() if module._TypedParameterizable__type in types)
6 def esproducers_by_type(process, *types):
7  return (module for module in process._Process__esproducers.values() if module._TypedParameterizable__type in types)
8 
9 
11 
12  for esproducer in esproducers_by_type(process,"ClusterShapeHitFilterESProducer"):
13  esproducer.PixelShapeFile = 'RecoPixelVertexing/PixelLowPtUtilities/data/pixelShape_Phase1TkNewFPix.par'
14  for producer in producers_by_type(process,"SiPixelRawToDigi"):
15  if "hlt" in producer.label():
16  producer.UsePhase1 = cms.bool( True )
17  return process
18 
20 
21  process = customizeHLTPhaseIPixelGeom(process)
22 
23  process.hltPixelLayerTriplets.layerList = cms.vstring(
24  'BPix1+BPix2+BPix3',
25  'BPix2+BPix3+BPix4',
26  'BPix1+BPix3+BPix4',
27  'BPix1+BPix2+BPix4',
28  'BPix2+BPix3+FPix1_pos',
29  'BPix2+BPix3+FPix1_neg',
30  'BPix1+BPix2+FPix1_pos',
31  'BPix1+BPix2+FPix1_neg',
32  'BPix2+FPix1_pos+FPix2_pos',
33  'BPix2+FPix1_neg+FPix2_neg',
34  'BPix1+FPix1_pos+FPix2_pos',
35  'BPix1+FPix1_neg+FPix2_neg',
36  'FPix1_pos+FPix2_pos+FPix3_pos',
37  'FPix1_neg+FPix2_neg+FPix3_neg'
38  )
39 
40  process.hltPixelLayerQuadruplets = cms.EDProducer("SeedingLayersEDProducer",
41  BPix = cms.PSet(
42  useErrorsFromParam = cms.bool( True ),
43  hitErrorRPhi = cms.double( 0.0027 ),
44  TTRHBuilder = cms.string( "hltESPTTRHBuilderPixelOnly" ),
45  HitProducer = cms.string( "hltSiPixelRecHits" ),
46  hitErrorRZ = cms.double( 0.006 )
47  ),
48  FPix = cms.PSet(
49  useErrorsFromParam = cms.bool( True ),
50  hitErrorRPhi = cms.double( 0.0051 ),
51  TTRHBuilder = cms.string( "hltESPTTRHBuilderPixelOnly" ),
52  HitProducer = cms.string( "hltSiPixelRecHits" ),
53  hitErrorRZ = cms.double( 0.0036 )
54  ),
55  MTEC = cms.PSet( ),
56  MTIB = cms.PSet( ),
57  MTID = cms.PSet( ),
58  MTOB = cms.PSet( ),
59  TEC = cms.PSet( ),
60  TIB = cms.PSet( ),
61  TID = cms.PSet( ),
62  TOB = cms.PSet( ),
63  layerList = cms.vstring(
64  'BPix1+BPix2+BPix3+BPix4',
65  'BPix1+BPix2+BPix3+FPix1_pos',
66  'BPix1+BPix2+BPix3+FPix1_neg',
67  'BPix1+BPix2+FPix1_pos+FPix2_pos',
68  'BPix1+BPix2+FPix1_neg+FPix2_neg',
69  'BPix1+FPix1_pos+FPix2_pos+FPix3_pos',
70  'BPix1+FPix1_neg+FPix2_neg+FPix3_neg'
71  )
72  )
73 
74 
75 
76 
77 
78  # Configure seed generator / pixel track producer
79  from RecoPixelVertexing.PixelTriplets.CAHitQuadrupletGenerator_cfi import CAHitQuadrupletGenerator as _CAHitQuadrupletGenerator
80 
81  process.hltPixelTracks.OrderedHitsFactoryPSet = _CAHitQuadrupletGenerator.clone(
82  ComponentName = cms.string("CAHitQuadrupletGenerator"),
83  extraHitRPhitolerance = cms.double(0.032),
84  maxChi2 = dict(
85  pt1 = 0.7, pt2 = 2,
86  value1 = 200, value2 = 50,
87  enabled = True,
88  ),
89  useBendingCorrection = True,
90  fitFastCircle = True,
91  fitFastCircleChi2Cut = True,
92  SeedingLayers = cms.InputTag("hltPixelLayerQuadruplets"),
93  CAThetaCut = cms.double(0.0012),
94  CAPhiCut = cms.double(0.2),
95  CAHardPtCut = cms.double(0),
96  SeedComparitorPSet = cms.PSet(
97  ComponentName = cms.string( "LowPtClusterShapeSeedComparitor" ),
98  clusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCache" )
99  ),
100 
101  )
102 
103  process.hltPixelTracks.RegionFactoryPSet.RegionPSet = cms.PSet(
104  precise = cms.bool( True ),
105  beamSpot = cms.InputTag( "hltOnlineBeamSpot" ),
106  originRadius = cms.double(0.02),
107  ptMin = cms.double(0.9),
108  nSigmaZ = cms.double(4.0),
109  )
110 
111 
112  process.HLTDoRecoPixelTracksSequence = cms.Sequence( process.hltPixelLayerQuadruplets + process.hltPixelTracks )
113 
114  process.HLTIter0PSetTrajectoryFilterIT.minimumNumberOfHits = cms.int32( 4 )
115  process.HLTIter0PSetTrajectoryFilterIT.minHitsMinPt = cms.int32( 4 )
116  process.hltIter0PFlowTrackCutClassifier.mva.minLayers = cms.vint32( 3, 3, 4 )
117  process.hltIter0PFlowTrackCutClassifier.mva.min3DLayers = cms.vint32( 0, 3, 4 )
118  process.hltIter0PFlowTrackCutClassifier.mva.minPixelHits = cms.vint32( 0, 3, 4 )
119 
120 
121 
122 
123  process.hltIter1PixelLayerTriplets = cms.EDProducer( "SeedingLayersEDProducer",
124  layerList = cms.vstring(
125  'BPix1+BPix2+BPix3',
126  'BPix1+BPix2+FPix1_pos',
127  'BPix1+BPix2+FPix1_neg',
128  'BPix1+FPix1_pos+FPix2_pos',
129  'BPix1+FPix1_neg+FPix2_neg'
130  ),
131  MTOB = cms.PSet( ),
132  TEC = cms.PSet( ),
133  MTID = cms.PSet( ),
134  FPix = cms.PSet(
135  HitProducer = cms.string( "hltSiPixelRecHits" ),
136  hitErrorRZ = cms.double( 0.0036 ),
137  useErrorsFromParam = cms.bool( True ),
138  TTRHBuilder = cms.string( "hltESPTTRHBuilderPixelOnly" ),
139  skipClusters = cms.InputTag( "hltIter1ClustersRefRemoval" ),
140  hitErrorRPhi = cms.double( 0.0051 )
141  ),
142  MTEC = cms.PSet( ),
143  MTIB = cms.PSet( ),
144  TID = cms.PSet( ),
145  TOB = cms.PSet( ),
146  BPix = cms.PSet(
147  HitProducer = cms.string( "hltSiPixelRecHits" ),
148  hitErrorRZ = cms.double( 0.006 ),
149  useErrorsFromParam = cms.bool( True ),
150  TTRHBuilder = cms.string( "hltESPTTRHBuilderPixelOnly" ),
151  skipClusters = cms.InputTag( "hltIter1ClustersRefRemoval" ),
152  hitErrorRPhi = cms.double( 0.0027 )
153  ),
154  TIB = cms.PSet( )
155  )
156 
157  process.HLTIter1PSetTrajectoryFilterIT = cms.PSet(
158  ComponentType = cms.string('CkfBaseTrajectoryFilter'),
159  chargeSignificance = cms.double(-1.0),
160  constantValueForLostHitsFractionFilter = cms.double(2.0),
161  extraNumberOfHitsBeforeTheFirstLoop = cms.int32(4),
162  maxCCCLostHits = cms.int32(0), # offline (2),
163  maxConsecLostHits = cms.int32(1),
164  maxLostHits = cms.int32(1), # offline (999),
165  maxLostHitsFraction = cms.double(0.1),
166  maxNumberOfHits = cms.int32(100),
167  minGoodStripCharge = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ),
168  minHitsMinPt = cms.int32(3),
169  minNumberOfHitsForLoopers = cms.int32(13),
170  minNumberOfHitsPerLoop = cms.int32(4),
171  minPt = cms.double(0.2),
172  minimumNumberOfHits = cms.int32(4), # 3 online
173  nSigmaMinPt = cms.double(5.0),
174  pixelSeedExtension = cms.bool(True),
175  seedExtension = cms.int32(1),
176  seedPairPenalty = cms.int32(0),
177  strictSeedExtension = cms.bool(True)
178  )
179 
180  process.HLTIter1PSetTrajectoryFilterInOutIT = cms.PSet(
181  ComponentType = cms.string('CkfBaseTrajectoryFilter'),
182  chargeSignificance = cms.double(-1.0),
183  constantValueForLostHitsFractionFilter = cms.double(2.0),
184  extraNumberOfHitsBeforeTheFirstLoop = cms.int32(4),
185  maxCCCLostHits = cms.int32(0), # offline (2),
186  maxConsecLostHits = cms.int32(1),
187  maxLostHits = cms.int32(1), # offline (999),
188  maxLostHitsFraction = cms.double(0.1),
189  maxNumberOfHits = cms.int32(100),
190  minGoodStripCharge = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ),
191  minHitsMinPt = cms.int32(3),
192  minNumberOfHitsForLoopers = cms.int32(13),
193  minNumberOfHitsPerLoop = cms.int32(4),
194  minPt = cms.double(0.2),
195  minimumNumberOfHits = cms.int32(4), # 3 online
196  nSigmaMinPt = cms.double(5.0),
197  pixelSeedExtension = cms.bool(True),
198  seedExtension = cms.int32(1),
199  seedPairPenalty = cms.int32(0),
200  strictSeedExtension = cms.bool(True)
201  )
202 
203  process.HLTIter1PSetTrajectoryBuilderIT = cms.PSet(
204  inOutTrajectoryFilter = cms.PSet( refToPSet_ = cms.string('HLTIter1PSetTrajectoryFilterInOutIT') ),
205  propagatorAlong = cms.string( "PropagatorWithMaterialParabolicMf" ),
206  trajectoryFilter = cms.PSet( refToPSet_ = cms.string( "HLTIter1PSetTrajectoryFilterIT" ) ),
207  maxCand = cms.int32( 2 ),
208  ComponentType = cms.string( "CkfTrajectoryBuilder" ),
209  propagatorOpposite = cms.string( "PropagatorWithMaterialParabolicMfOpposite" ),
210  MeasurementTrackerName = cms.string( "hltIter1ESPMeasurementTracker" ),
211  estimator = cms.string( "hltESPChi2ChargeMeasurementEstimator16" ),
212  TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ),
213  updator = cms.string( "hltESPKFUpdator" ),
214  alwaysUseInvalidHits = cms.bool( False ),
215  intermediateCleaning = cms.bool( True ),
216  lostHitPenalty = cms.double( 30.0 ),
217  useSameTrajFilter = cms.bool(False) # new ! other iteration should have it set to True
218  )
219 
220  process.HLTIterativeTrackingIteration1 = cms.Sequence( process.hltIter1ClustersRefRemoval + process.hltIter1MaskedMeasurementTrackerEvent + process.hltIter1PixelLayerTriplets + process.hltIter1PFlowPixelSeeds + process.hltIter1PFlowCkfTrackCandidates + process.hltIter1PFlowCtfWithMaterialTracks + process.hltIter1PFlowTrackCutClassifierPrompt + process.hltIter1PFlowTrackCutClassifierDetached + process.hltIter1PFlowTrackCutClassifierMerged + process.hltIter1PFlowTrackSelectionHighPurity )
221 
222 
223  process.hltIter2PixelLayerTriplets = cms.EDProducer( "SeedingLayersEDProducer",
224  layerList = cms.vstring(
225  'BPix1+BPix2+BPix3',
226  'BPix1+BPix2+FPix1_pos',
227  'BPix1+BPix2+FPix1_neg',
228  'BPix1+FPix1_pos+FPix2_pos',
229  'BPix1+FPix1_neg+FPix2_neg'
230  ),
231  MTOB = cms.PSet( ),
232  TEC = cms.PSet( ),
233  MTID = cms.PSet( ),
234  FPix = cms.PSet(
235  HitProducer = cms.string( "hltSiPixelRecHits" ),
236  hitErrorRZ = cms.double( 0.0036 ),
237  useErrorsFromParam = cms.bool( True ),
238  TTRHBuilder = cms.string( "hltESPTTRHBuilderPixelOnly" ),
239  skipClusters = cms.InputTag( "hltIter2ClustersRefRemoval" ),
240  hitErrorRPhi = cms.double( 0.0051 )
241  ),
242  MTEC = cms.PSet( ),
243  MTIB = cms.PSet( ),
244  TID = cms.PSet( ),
245  TOB = cms.PSet( ),
246  BPix = cms.PSet(
247  HitProducer = cms.string( "hltSiPixelRecHits" ),
248  hitErrorRZ = cms.double( 0.006 ),
249  useErrorsFromParam = cms.bool( True ),
250  TTRHBuilder = cms.string( "hltESPTTRHBuilderPixelOnly" ),
251  skipClusters = cms.InputTag( "hltIter2ClustersRefRemoval" ),
252  hitErrorRPhi = cms.double( 0.0027 )
253  ),
254  TIB = cms.PSet( )
255  )
256  process.hltIter2PFlowPixelSeeds.OrderedHitsFactoryPSet = cms.PSet(
257  maxElement = cms.uint32( 0 ),
258  ComponentName = cms.string( "StandardHitTripletGenerator" ),
259  GeneratorPSet = cms.PSet(
260  useBending = cms.bool( True ),
261  useFixedPreFiltering = cms.bool( False ),
262  maxElement = cms.uint32( 100000 ),
263  phiPreFiltering = cms.double( 0.3 ),
264  extraHitRPhitolerance = cms.double( 0.032 ),
265  useMultScattering = cms.bool( True ),
266  ComponentName = cms.string( "PixelTripletHLTGenerator" ),
267  extraHitRZtolerance = cms.double( 0.037 ),
268  SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) )
269  ),
270  SeedingLayers = cms.InputTag( "hltIter2PixelLayerTriplets" )
271  )
272  process.hltIter2PFlowPixelSeeds.SeedCreatorPSet = cms.PSet( refToPSet_ = cms.string( "HLTSeedFromConsecutiveHitsTripletOnlyCreator" ) )
273 
274  process.HLTIterativeTrackingIteration2 = cms.Sequence( process.hltIter2ClustersRefRemoval + process.hltIter2MaskedMeasurementTrackerEvent + process.hltIter2PixelLayerTriplets + process.hltIter2PFlowPixelSeeds + process.hltIter2PFlowCkfTrackCandidates + process.hltIter2PFlowCtfWithMaterialTracks + process.hltIter2PFlowTrackCutClassifier + process.hltIter2PFlowTrackSelectionHighPurity )
275 
276  for seqName in process.sequences:
277  seq = getattr(process,seqName)
278  from FWCore.ParameterSet.SequenceTypes import ModuleNodeVisitor
279  l = list()
280  v = ModuleNodeVisitor(l)
281  seq.visit(v)
282  if process.hltPixelTracks in l and not process.hltPixelLayerQuadruplets in l:
283  seq.remove(process.hltPixelLayerTriplets)
284  index = seq.index(process.hltPixelTracks)
285  seq.insert(index,process.hltPixelLayerQuadruplets)
286  return process
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