CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
alternateValidationTemplates.py
Go to the documentation of this file.
1 ######################################################################
2 ######################################################################
3 otherTemplate = """
4 schum schum
5 """
6 
7 
8 ######################################################################
9 ######################################################################
10 yResidualsOfflineValidation="""
11 import FWCore.ParameterSet.Config as cms
12 
13 process = cms.Process("OfflineValidator")
14 
15 process.load("Alignment.OfflineValidation..oO[dataset]Oo._cff")
16 
17 process.source.inputCommands = cms.untracked.vstring('keep *', 'drop *_MEtoEDMConverter_*_*') # hack to get rid of the memory consumption problem in 2_2_X and beond
18 process.options = cms.untracked.PSet(
19  wantSummary = cms.untracked.bool(False),
20  Rethrow = cms.untracked.vstring("ProductNotFound"), # make this exception fatal
21  fileMode = cms.untracked.string('NOMERGE') # no ordering needed, but calls endRun/beginRun etc. at file boundaries
22 )
23 
24  ##
25  ## Maximum number of Events
26  ##
27 process.maxEvents = cms.untracked.PSet(
28  input = cms.untracked.int32(.oO[nEvents]Oo.)
29  )
30 
31  ##
32  ## Messages & Convenience
33  ##
34 process.load("FWCore.MessageLogger.MessageLogger_cfi")
35 process.MessageLogger = cms.Service("MessageLogger",
36  destinations = cms.untracked.vstring('LOGFILE_Offline_.oO[name]Oo.',
37  'cout')
38 )
39 
40  ## report only every 100th record
41  ##process.MessageLogger.cerr.FwkReport.reportEvery = 100
42 
43 
44  ##
45  ## Alignment Track Selection
46  ##
47 process.load("Alignment.CommonAlignmentProducer.AlignmentTrackSelector_cfi")
48 process.AlignmentTrackSelector.src = 'TrackRefitter1'
49 process.AlignmentTrackSelector.filter = True
50 process.AlignmentTrackSelector.applyBasicCuts = True
51 process.AlignmentTrackSelector.pMin = 4.
52 process.AlignmentTrackSelector.pMax = 9999.
53 process.AlignmentTrackSelector.ptMin = 0.
54 process.AlignmentTrackSelector.ptMax = 9999.
55 process.AlignmentTrackSelector.etaMin = -999.
56 process.AlignmentTrackSelector.etaMax = 999.
57 process.AlignmentTrackSelector.nHitMin = 8
58 process.AlignmentTrackSelector.nHitMin2D = 2
59 process.AlignmentTrackSelector.chi2nMax = 999.
60 process.AlignmentTrackSelector.applyMultiplicityFilter = False
61 process.AlignmentTrackSelector.maxMultiplicity = 1
62 process.AlignmentTrackSelector.applyNHighestPt = False
63 process.AlignmentTrackSelector.nHighestPt = 1
64 process.AlignmentTrackSelector.seedOnlyFrom = 0
65 process.AlignmentTrackSelector.applyIsolationCut = False
66 process.AlignmentTrackSelector.minHitIsolation = 0.8
67 process.AlignmentTrackSelector.applyChargeCheck = False
68 process.AlignmentTrackSelector.minHitChargeStrip = 50.
69 #process.AlignmentTrackSelector.trackQualities = ["highPurity"]
70 #process.AlignmentTrackSelector.iterativeTrackingSteps = ["iter1","iter2"]
71 
72 #### new FILTER
73 #-- new track hit filter
74 # TrackerTrackHitFilter takes as input the tracks/trajectories coming out from TrackRefitter1
75 process.load("RecoTracker.FinalTrackSelectors.TrackerTrackHitFilter_cff")
76 process.TrackerTrackHitFilter.src = 'TrackRefitter1'
77 process.TrackerTrackHitFilter.useTrajectories= True # this is needed only if you require some selections; but it will work even if you don't ask for them
78 process.TrackerTrackHitFilter.minimumHits = 8
79 process.TrackerTrackHitFilter.commands = cms.vstring("keep PXB","keep PXE","keep TIB","keep TID","keep TOB","keep TEC")
80 process.TrackerTrackHitFilter.detsToIgnore = [
81  # see https://hypernews.cern.ch/HyperNews/CMS/get/tracker-performance/484.html
82  # TIB / TID
83  369136710, 369136714, 402668822,
84  # TOB
85  436310989, 436310990, 436299301, 436299302,
86  # TEC
87  470340521, 470063045, 470063046, 470114669, 470114670, 470161093, 470161094, 470164333, 470164334, 470312005, 470312006, 470312009, 470067405, 470067406, 470128813
88 ]
89 process.TrackerTrackHitFilter.replaceWithInactiveHits = True
90 process.TrackerTrackHitFilter.stripAllInvalidHits = False
91 process.TrackerTrackHitFilter.rejectBadStoNHits = True
92 process.TrackerTrackHitFilter.StoNcommands = cms.vstring("ALL 14.0")
93 process.TrackerTrackHitFilter.rejectLowAngleHits= True
94 process.TrackerTrackHitFilter.TrackAngleCut= 0.35 # in rads, starting from the module surface
95 process.TrackerTrackHitFilter.usePixelQualityFlag= True
96 
97 #now we give the TrackCandidate coming out of the TrackerTrackHitFilter to the track producer
98 import RecoTracker.TrackProducer.CosmicFinalFitWithMaterialP5_cff
99 process.HitFilteredTracks = RecoTracker.TrackProducer.CosmicFinalFitWithMaterialP5_cff.cosmictrackfinderP5.clone(
100  src = 'TrackerTrackHitFilter'
101 )
102 
103  ##
104  ## Load and Configure TrackRefitter1
105  ##
106 
107 process.load("RecoTracker.TrackProducer.TrackRefitters_cff")
108 
109 process.TrackRefitter1 = RecoTracker.TrackProducer.TrackRefitterP5_cfi.TrackRefitterP5.clone(
110  src = '.oO[TrackCollection]Oo.',
111  TrajectoryInEvent = True,
112  TTRHBuilder = "WithTrackAngle",
113  NavigationSchool = ""
114 )
115 
116 process.TrackRefitter2 = process.TrackRefitter1.clone(
117  src = 'HitFilteredTracks')
118 
119 
120  ##
121  ## Get the BeamSpot
122  ##
123 process.load("RecoVertex.BeamSpotProducer.BeamSpot_cff")
124 
125  ##
126  ## GlobalTag Conditions (if needed)
127  ##
128 process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
129 process.GlobalTag.globaltag = ".oO[GlobalTag]Oo."
130 #process.GlobalTag.connect="frontier://FrontierProd/CMS_COND_21X_GLOBALTAG"
131 # process.GlobalTag.connect="frontier://FrontierProd/CMS_COND_31X_GLOBALTAG"
132 
133 ## LAYERWISE Lorentz Angle ###################
134 
135 process.SiStripLorentzAngle = cms.ESSource("PoolDBESSource",
136  BlobStreamerName =
137 cms.untracked.string('TBufferBlobStreamingService'),
138  DBParameters = cms.PSet(
139  messageLevel = cms.untracked.int32(2),
140  authenticationPath =
141 cms.untracked.string('/afs/cern.ch/cms/DB/conddb')
142  ),
143  timetype = cms.string('runnumber'),
144  toGet = cms.VPSet(cms.PSet(
145  record = cms.string('SiStripLorentzAngleRcd'),
146  tag = cms.string('SiStripLA_CRAFT_layers')
147  )),
148  connect = cms.string('sqlite_file:/afs/cern.ch/user/j/jdraeger/public/LA_object/LA_CRAFT_layers.db')
149 )
150 process.es_prefer_SiStripLorentzAngle = cms.ESPrefer("PoolDBESSource","SiStripLorentzAngle")
151 
152  ##
153  ## Geometry
154  ##
155 process.load("Configuration.Geometry.GeometryDB_cff")
156 
157  ##
158  ## Magnetic Field
159  ##
160 process.load("Configuration/StandardSequences/MagneticField_38T_cff")
161 
162 .oO[condLoad]Oo.
163 
164 ## to apply misalignments
165 #TrackerDigiGeometryESModule.applyAlignment = True
166 
167  ##
168  ## Load and Configure OfflineValidation
169  ##
170 process.load("Alignment.OfflineValidation.TrackerOfflineValidation_.oO[offlineValidationMode]Oo._cff")
171 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..Tracks = 'TrackRefitter2'
172 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..trajectoryInput = 'TrackRefitter2'
173 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..moduleLevelHistsTransient = cms.bool(.oO[offlineModuleLevelHistsTransient]Oo.)
174 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..stripYResiduals = True
175 .oO[offlineValidationFileOutput]Oo.
176 
177  ##
178  ## PATH
179  ##
180 process.p = cms.Path(process.offlineBeamSpot*process.TrackRefitter1*process.TrackerTrackHitFilter*process.HitFilteredTracks
181  *process.TrackRefitter2*process.AlignmentTrackSelector*process.seqTrackerOfflineValidation.oO[offlineValidationMode]Oo.)
182 
183 """
184 
185 
186 ######################################################################
187 ######################################################################
188 zeroAPETemplate="""
189 from CondCore.DBCommon.CondDBSetup_cfi import *
190 process.APE = cms.ESSource("PoolDBESSource",CondDBSetup,
191  connect = cms.string('frontier://FrontierProd/CMS_COND_31X_FROM21X'),
192  timetype = cms.string("runnumber"),
193  toGet = cms.VPSet(
194  cms.PSet(record = cms.string('TrackerAlignmentErrorRcd'),
195  tag = cms.string('TrackerIdealGeometryErrors210_mc')
196  ))
197  )
198 process.es_prefer_APE = cms.ESPrefer("PoolDBESSource", "APE")
199 """
200 
201 
202 ######################################################################
203 ######################################################################
204 CosmicsOfflineValidation="""
205 import FWCore.ParameterSet.Config as cms
206 
207 process = cms.Process("OfflineValidator")
208 
209 process.load("Alignment.OfflineValidation..oO[dataset]Oo._cff")
210 
211 process.options = cms.untracked.PSet(
212  wantSummary = cms.untracked.bool(False),
213  Rethrow = cms.untracked.vstring("ProductNotFound"), # make this exception fatal
214 # fileMode = cms.untracked.string('NOMERGE') # no ordering needed, but calls endRun/beginRun etc. at file boundaries
215 )
216 
217  ##
218  ## Maximum number of Events
219  ##
220 process.maxEvents = cms.untracked.PSet(
221  input = cms.untracked.int32(.oO[nEvents]Oo.)
222  )
223 
224  ##
225  ## Messages & Convenience
226  ##
227 process.load("FWCore.MessageLogger.MessageLogger_cfi")
228 process.MessageLogger.cerr = cms.untracked.PSet(placeholder = cms.untracked.bool(True))
229 process.MessageLogger.cout = cms.untracked.PSet(INFO = cms.untracked.PSet(
230 reportEvery = cms.untracked.int32(1000) # every 1000th only
231 # limit = cms.untracked.int32(10) # or limit to 10 printouts...
232 ))
233 process.MessageLogger.statistics.append('cout')
234 
235  ##
236  ## Get the BeamSpot
237  ##
238 process.load("RecoVertex.BeamSpotProducer.BeamSpot_cff")
239 
240  #-- Refitting
241 process.load("RecoTracker.TrackProducer.TrackRefitters_cff")
242 
243 ##-- Track hit filter
244 ## TrackerTrackHitFilter takes as input the tracks/trajectories coming out from TrackRefitter1
245 #process.load("RecoTracker.FinalTrackSelectors.TrackerTrackHitFilter_cff")
246 #process.TrackerTrackHitFilter.src = 'TrackRefitter1'
247 
248 #-- 1st refit from file
249 process.TrackRefitter1 = process.TrackRefitterP5.clone(
250  src ='ALCARECOTkAlCosmicsCTF0T',
251  NavigationSchool = cms.string(''),
252  TrajectoryInEvent = True,
253  TTRHBuilder = "WithAngleAndTemplate" #default
254  )
255 
256 #-- 2nd fit for AlignmentProducer
257 process.TrackRefitter2 = process.TrackRefitter1.clone(
258  src = 'AlignmentTrackSelector'
259  )
260 
261 #-- Filter bad hits
262 process.load("RecoTracker.FinalTrackSelectors.TrackerTrackHitFilter_cff")
263 process.TrackerTrackHitFilter.src = 'TrackRefitter1'
264 process.TrackerTrackHitFilter.useTrajectories= True # this is needed only if you require some selections; but it will work even if you don't ask for them
265 process.TrackerTrackHitFilter.minimumHits = 8
266 process.TrackerTrackHitFilter.commands = cms.vstring("keep PXB","keep PXE","keep TIB","keep TID","keep TOB","keep TEC")
267 process.TrackerTrackHitFilter.detsToIgnore = []
268 process.TrackerTrackHitFilter.replaceWithInactiveHits = True
269 process.TrackerTrackHitFilter.stripAllInvalidHits = False
270 process.TrackerTrackHitFilter.rejectBadStoNHits = True
271 process.TrackerTrackHitFilter.StoNcommands = cms.vstring("ALL 18.0")
272 process.TrackerTrackHitFilter.rejectLowAngleHits = True
273 process.TrackerTrackHitFilter.TrackAngleCut = 0.1# in rads, starting from the module surface; small value since we have bows!
274 process.TrackerTrackHitFilter.usePixelQualityFlag = True #False
275 
276 #-- TrackProducer
277 ## now we give the TrackCandidate coming out of the TrackerTrackHitFilter to the track producer
278 import RecoTracker.TrackProducer.CTFFinalFitWithMaterialP5_cff
279 process.TrackCandidateFitter = RecoTracker.TrackProducer.CTFFinalFitWithMaterialP5_cff.ctfWithMaterialTracksCosmics.clone(
280 src = 'TrackerTrackHitFilter',
281  NavigationSchool = cms.string(''),
282  TTRHBuilder = "WithAngleAndTemplate"
283  )
284 #-- Filter tracks for alignment
285 process.load("Alignment.CommonAlignmentProducer.AlignmentTrackSelector_cfi")
286 process.AlignmentTrackSelector.src = 'TrackCandidateFitter'
287 process.AlignmentTrackSelector.applyBasicCuts = True
288 process.AlignmentTrackSelector.pMin = 4
289 process.AlignmentTrackSelector.pMax = 9999.
290 process.AlignmentTrackSelector.ptMin = 0
291 process.AlignmentTrackSelector.etaMin = -999.
292 process.AlignmentTrackSelector.etaMax = 999.
293 process.AlignmentTrackSelector.nHitMin = 8
294 process.AlignmentTrackSelector.nHitMin2D = 2
295 process.AlignmentTrackSelector.chi2nMax = 99.
296 process.AlignmentTrackSelector.applyMultiplicityFilter = True# False
297 process.AlignmentTrackSelector.maxMultiplicity = 1
298 
299 ## GlobalTag Conditions (if needed)
300 ##
301 process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
302 process.GlobalTag.globaltag = ".oO[GlobalTag]Oo."
303 
304 
305 ##
306 ## Geometry
307 ##
308 process.load("Configuration.Geometry.GeometryDB_cff")
309 
310 ##
311 ## Magnetic Field
312 ##
313 process.load("Configuration/StandardSequences/MagneticField_38T_cff")
314 
315 .oO[LorentzAngleTemplate]Oo.
316 
317  ##
318  ## Geometry
319  ##
320 #process.load("Configuration.Geometry.GeometryDB_cff")
321 
322 
323 .oO[condLoad]Oo.
324 
325  ##
326  ## Load and Configure OfflineValidation
327  ##
328 
329 process.load("Alignment.OfflineValidation.TrackerOfflineValidation_.oO[offlineValidationMode]Oo._cff")
330 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..Tracks = 'TrackRefitter2'
331 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..trajectoryInput = 'TrackRefitter2'
332 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..moduleLevelHistsTransient = cms.bool(.oO[offlineModuleLevelHistsTransient]Oo.)
333 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..moduleLevelProfiles = cms.bool(.oO[offlineModuleLevelProfiles]Oo.)
334 process.TFileService.fileName = '.oO[outputFile]Oo.'
335 
336  ##
337  ## PATH
338  ##
339 
340 process.p = cms.Path( process.offlineBeamSpot
341  *process.TrackRefitter1
342  *process.TrackerTrackHitFilter
343  *process.TrackCandidateFitter
344  *process.AlignmentTrackSelector
345  *process.TrackRefitter2
346  *process.seqTrackerOfflineValidationStandalone
347 )
348 
349 
350 """
351 
352 
353 ######################################################################
354 ######################################################################
355 CosmicsAt0TOfflineValidation="""
356 import FWCore.ParameterSet.Config as cms
357 
358 process = cms.Process("OfflineValidator")
359 
360 process.load("Alignment.OfflineValidation..oO[dataset]Oo._cff")
361 
362 process.options = cms.untracked.PSet(
363  wantSummary = cms.untracked.bool(False),
364  Rethrow = cms.untracked.vstring("ProductNotFound"), # make this exception fatal
365  fileMode = cms.untracked.string('NOMERGE') # no ordering needed, but calls endRun/beginRun etc. at file boundaries
366 )
367 
368  ##
369  ## Maximum number of Events
370  ##
371 process.maxEvents = cms.untracked.PSet(
372  input = cms.untracked.int32(.oO[nEvents]Oo.)
373  )
374 
375  ##
376  ## Messages & Convenience
377  ##
378 process.load("FWCore.MessageLogger.MessageLogger_cfi")
379 process.MessageLogger.cerr = cms.untracked.PSet(placeholder = cms.untracked.bool(True))
380 process.MessageLogger.cout = cms.untracked.PSet(INFO = cms.untracked.PSet(
381 reportEvery = cms.untracked.int32(1000) # every 1000th only
382 # limit = cms.untracked.int32(10) # or limit to 10 printouts...
383 ))
384 process.MessageLogger.statistics.append('cout')
385 
386 
387 #-- Track hit filter
388 # TrackerTrackHitFilter takes as input the tracks/trajectories coming out from TrackRefitter1
389 process.load("RecoTracker.FinalTrackSelectors.TrackerTrackHitFilter_cff")
390 process.TrackerTrackHitFilter.src = 'TrackRefitter1'
391 
392 #-- Alignment Track Selection
393 process.load("Alignment.CommonAlignmentProducer.AlignmentTrackSelector_cfi")
394 process.AlignmentTrackSelector.src = 'HitFilteredTracks'
395 process.AlignmentTrackSelector.filter = True
396 
397 .oO[TrackSelectionTemplate]Oo.
398 # Override the pmin setting since not meaningful with B=0T
399 process.AlignmentTrackSelector.pMin = 4.
400 
401 #### momentum constraint for 0T
402 # First momentum constraint
403 process.load("RecoTracker.TrackProducer.MomentumConstraintProducer_cff")
404 import RecoTracker.TrackProducer.MomentumConstraintProducer_cff
405 process.AliMomConstraint1 = RecoTracker.TrackProducer.MomentumConstraintProducer_cff.MyMomConstraint.clone()
406 process.AliMomConstraint1.src = '.oO[TrackCollection]Oo.'
407 process.AliMomConstraint1.fixedMomentum = 5.0
408 process.AliMomConstraint1.fixedMomentumError = 0.005
409 
410 # Second momentum constraint
411 #process.load("RecoTracker.TrackProducer.MomentumConstraintProducer_cff")
412 #import RecoTracker.TrackProducer.MomentumConstraintProducer_cff
413 #process.AliMomConstraint2 = RecoTracker.TrackProducer.MomentumConstraintProducer_cff.MyMomConstraint.clone()
414 #process.AliMomConstraint2.src = 'AlignmentTrackSelector'
415 #process.AliMomConstraint2.fixedMomentum = 5.0
416 #process.AliMomConstraint2.fixedMomentumError = 0.005
417 
418 
419 
420 #now we give the TrackCandidate coming out of the TrackerTrackHitFilter to the track producer
421 import RecoTracker.TrackProducer.CTFFinalFitWithMaterialP5_cff
422 process.HitFilteredTracks = RecoTracker.TrackProducer.CTFFinalFitWithMaterialP5_cff.ctfWithMaterialTracksCosmics.clone(
423  src = 'TrackerTrackHitFilter'
424 ### ,
425 ### TrajectoryInEvent = True,
426 ### TTRHBuilder = "WithAngleAndTemplate"
427 )
428 
429  ##
430  ## Load and Configure TrackRefitter1
431  ##
432 
433 process.load("RecoTracker.TrackProducer.TrackRefitters_cff")
434 
435 #############
436 # parameters for TrackRefitter
437 #process.load("RecoTracker.TrackProducer.RefitterWithMaterial_cff")
438 import RecoTracker.TrackProducer.TrackRefitters_cff
439 process.TrackRefitter1 = process.TrackRefitterP5.clone(
440  src = '.oO[TrackCollection]Oo.', #'AliMomConstraint1',
441  TrajectoryInEvent = True,
442  TTRHBuilder = "WithAngleAndTemplate",
443  NavigationSchool = "",
444  constraint = 'momentum', ### SPECIFIC FOR CRUZET
445  srcConstr='AliMomConstraint1' ### SPECIFIC FOR CRUZET$works only with tag V02-10-02 TrackingTools/PatternTools / or CMSSW >=31X
446 )
447 
448 process.TrackRefitter2 = process.TrackRefitter1.clone(
449  src = 'AlignmentTrackSelector',
450  srcConstr='AliMomConstraint1',
451  constraint = 'momentum' ### SPECIFIC FOR CRUZET
452 )
453 
454 
455  ##
456  ## Get the BeamSpot
457  ##
458 process.load("RecoVertex.BeamSpotProducer.BeamSpot_cff")
459 
460  ##
461  ## GlobalTag Conditions (if needed)
462  ##
463 process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
464 process.GlobalTag.globaltag = ".oO[GlobalTag]Oo."
465 # process.GlobalTag.connect="frontier://FrontierProd/CMS_COND_31X_GLOBALTAG"
466 
467 .oO[LorentzAngleTemplate]Oo.
468 
469  ##
470  ## Geometry
471  ##
472 process.load("Configuration.Geometry.GeometryDB_cff")
473 
474  ##
475  ## Magnetic Field
476  ##
477 #process.load("Configuration/StandardSequences/MagneticField_38T_cff")
478 process.load("Configuration.StandardSequences.MagneticField_0T_cff") # 0T runs
479 
480 .oO[condLoad]Oo.
481 
482 ## to apply misalignments
483 #TrackerDigiGeometryESModule.applyAlignment = True
484 
485  ##
486  ## Load and Configure OfflineValidation
487  ##
488 process.load("Alignment.OfflineValidation.TrackerOfflineValidation_.oO[offlineValidationMode]Oo._cff")
489 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..Tracks = 'TrackRefitter2'
490 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..trajectoryInput = 'TrackRefitter2'
491 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..moduleLevelHistsTransient = cms.bool(.oO[offlineModuleLevelHistsTransient]Oo.)
492 process.TFileService.fileName = '.oO[outputFile]Oo.'
493 
494  ##
495  ## PATH
496  ##
497 
498 process.p = cms.Path(process.offlineBeamSpot*process.AliMomConstraint1*process.TrackRefitter1*process.TrackerTrackHitFilter*process.HitFilteredTracks
499  *process.AlignmentTrackSelector*process.TrackRefitter2*process.seqTrackerOfflineValidation.oO[offlineValidationMode]Oo.)
500 
501 """
502 
503 
504 ######################################################################
505 ######################################################################
506 CosmicsAt0TParallelOfflineValidation="""
507 import FWCore.ParameterSet.Config as cms
508 
509 process = cms.Process("OfflineValidator")
510 
511 process.load("Alignment.OfflineValidation..oO[dataset]Oo._cff")
512 
513 process.options = cms.untracked.PSet(
514  wantSummary = cms.untracked.bool(False),
515  Rethrow = cms.untracked.vstring("ProductNotFound"), # make this exception fatal
516  fileMode = cms.untracked.string('NOMERGE') # no ordering needed, but calls endRun/beginRun etc. at file boundaries
517 )
518 
519  ##
520  ## Maximum number of Events
521  ## and number of events to be skipped
522  ## in case of parallel job nIndex
523  ## .oO[nIndex]Oo * .oO[nEvents]Oo/.oO[nJobs]Oo
524  ##
525 process.maxEvents = cms.untracked.PSet(
526  input = cms.untracked.int32(.oO[nEvents]Oo./.oO[nJobs]Oo.)
527  )
528 process.source.skipEvents=cms.untracked.uint32(.oO[nIndex]Oo.*.oO[nEvents]Oo./.oO[nJobs]Oo.)
529 
530  ##
531  ## Messages & Convenience
532  ##
533 process.load("FWCore.MessageLogger.MessageLogger_cfi")
534 process.MessageLogger.cerr = cms.untracked.PSet(placeholder = cms.untracked.bool(True))
535 process.MessageLogger.cout = cms.untracked.PSet(INFO = cms.untracked.PSet(
536 reportEvery = cms.untracked.int32(1000) # every 1000th only
537 # limit = cms.untracked.int32(10) # or limit to 10 printouts...
538 ))
539 process.MessageLogger.statistics.append('cout')
540 
541 #-- Track hit filter
542 # TrackerTrackHitFilter takes as input the tracks/trajectories coming out from TrackRefitter1
543 process.load("RecoTracker.FinalTrackSelectors.TrackerTrackHitFilter_cff")
544 process.TrackerTrackHitFilter.src = 'TrackRefitter1'
545 
546 #-- Alignment Track Selection
547 process.load("Alignment.CommonAlignmentProducer.AlignmentTrackSelector_cfi")
548 process.AlignmentTrackSelector.src = 'HitFilteredTracks'
549 process.AlignmentTrackSelector.filter = True
550 
551 .oO[TrackSelectionTemplate]Oo.
552 # Override the pmin setting since not meaningful with B=0T
553 process.AlignmentTrackSelector.pMin = 4.
554 
555 #### momentum constraint for 0T
556 # First momentum constraint
557 process.load("RecoTracker.TrackProducer.MomentumConstraintProducer_cff")
558 import RecoTracker.TrackProducer.MomentumConstraintProducer_cff
559 process.AliMomConstraint1 = RecoTracker.TrackProducer.MomentumConstraintProducer_cff.MyMomConstraint.clone()
560 process.AliMomConstraint1.src = '.oO[TrackCollection]Oo.'
561 process.AliMomConstraint1.fixedMomentum = 5.0
562 process.AliMomConstraint1.fixedMomentumError = 0.005
563 
564 # Second momentum constraint
565 #process.load("RecoTracker.TrackProducer.MomentumConstraintProducer_cff")
566 #import RecoTracker.TrackProducer.MomentumConstraintProducer_cff
567 #process.AliMomConstraint2 = RecoTracker.TrackProducer.MomentumConstraintProducer_cff.MyMomConstraint.clone()
568 #process.AliMomConstraint2.src = 'AlignmentTrackSelector'
569 #process.AliMomConstraint2.fixedMomentum = 5.0
570 #process.AliMomConstraint2.fixedMomentumError = 0.005
571 
572 #now we give the TrackCandidate coming out of the TrackerTrackHitFilter to the track producer
573 import RecoTracker.TrackProducer.CTFFinalFitWithMaterialP5_cff
574 process.HitFilteredTracks = RecoTracker.TrackProducer.CTFFinalFitWithMaterialP5_cff.ctfWithMaterialTracksCosmics.clone(
575 src = 'TrackerTrackHitFilter',
576 NavigationSchool = cms.string(''),
577 TTRHBuilder = "WithAngleAndTemplate"
578 ### ,
579 ### TrajectoryInEvent = True,
580 ### TTRHBuilder = "WithAngleAndTemplate"
581 )
582 
583 ##
584 ## Load and Configure TrackRefitter1
585 ##
586 process.load("RecoTracker.TrackProducer.TrackRefitters_cff")
587 
588 #############
589 # parameters for TrackRefitter
590 #process.load("RecoTracker.TrackProducer.RefitterWithMaterial_cff")
591 import RecoTracker.TrackProducer.TrackRefitters_cff
592 process.TrackRefitter1 = process.TrackRefitterP5.clone(
593 src = '.oO[TrackCollection]Oo.', #'AliMomConstraint1',
594 TrajectoryInEvent = True,
595 TTRHBuilder = "WithAngleAndTemplate",
596 NavigationSchool = "",
597 constraint = 'momentum', ### SPECIFIC FOR CRUZET
598 srcConstr='AliMomConstraint1' ### SPECIFIC FOR CRUZET$works only with tag V02-10-02 TrackingTools/PatternTools / or CMSSW >=31X
599 )
600 
601 process.TrackRefitter2 = process.TrackRefitter1.clone(
602 src = 'AlignmentTrackSelector',
603 srcConstr='AliMomConstraint1',
604 constraint = 'momentum' ### SPECIFIC FOR CRUZET
605 )
606 
607 
608 ##
609 ## Get the BeamSpot
610 ##
611 process.load("RecoVertex.BeamSpotProducer.BeamSpot_cff")
612 
613 ##
614 ## GlobalTag Conditions (if needed)
615 ##
616 process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
617 process.GlobalTag.globaltag = ".oO[GlobalTag]Oo."
618 # process.GlobalTag.connect="frontier://FrontierProd/CMS_COND_31X_GLOBALTAG"
619 .oO[LorentzAngleTemplate]Oo.
620 
621 ##
622 ## Geometry
623 ##
624 process.load("Configuration.StandardSequences.Geometry_cff")
625 
626 ##
627 ## Magnetic Field
628 ##
629 #process.load("Configuration/StandardSequences/MagneticField_38T_cff")
630 process.load("Configuration.StandardSequences.MagneticField_0T_cff") # 0T runs
631 .oO[condLoad]Oo.
632 
633 
634 ##
635 ## Load and Configure OfflineValidation
636 ##
637 process.load("Alignment.OfflineValidation.TrackerOfflineValidation_.oO[offlineValidationMode]Oo._cff")
638 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..Tracks = 'TrackRefitter2'
639 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..trajectoryInput = 'TrackRefitter2'
640 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..moduleLevelHistsTransient = cms.bool(.oO[offlineModuleLevelHistsTransient]Oo.)
641 process.TFileService.fileName = '.oO[outputFile]Oo.'
642 
643 ##
644 ## PATH
645 ##
646 process.p = cms.Path(process.offlineBeamSpot*process.AliMomConstraint1*process.TrackRefitter1*process.TrackerTrackHitFilter*process.HitFilteredTracks
647 *process.AlignmentTrackSelector*process.TrackRefitter2*process.seqTrackerOfflineValidation.oO[offlineValidationMode]Oo.)
648 """
649 
650 
651 ######################################################################
652 ######################################################################
653 CosmicsParallelOfflineValidation="""
654 import FWCore.ParameterSet.Config as cms
655 
656 process = cms.Process("OfflineValidator")
657 
658 process.load("Alignment.OfflineValidation..oO[dataset]Oo._cff")
659 
660 process.options = cms.untracked.PSet(
661  wantSummary = cms.untracked.bool(False),
662  Rethrow = cms.untracked.vstring("ProductNotFound"), # make this exception fatal
663  fileMode = cms.untracked.string('NOMERGE') # no ordering needed, but calls endRun/beginRun etc. at file boundaries
664 )
665 
666  ##
667  ## Maximum number of Events
668  ## and number of events to be skipped
669  ## in case of parallel job nIndex
670  ## .oO[nIndex]Oo * .oO[nEvents]Oo/.oO[nJobs]Oo
671  ##
672 process.maxEvents = cms.untracked.PSet(
673  input = cms.untracked.int32(.oO[nEvents]Oo./.oO[nJobs]Oo.)
674  )
675 process.source.skipEvents=cms.untracked.uint32(.oO[nIndex]Oo.*.oO[nEvents]Oo./.oO[nJobs]Oo.)
676 
677  ##
678  ## Messages & Convenience
679  ##
680 process.load("FWCore.MessageLogger.MessageLogger_cfi")
681 process.MessageLogger.cerr = cms.untracked.PSet(placeholder = cms.untracked.bool(True))
682 process.MessageLogger.cout = cms.untracked.PSet(INFO = cms.untracked.PSet(
683 reportEvery = cms.untracked.int32(1000) # every 1000th only
684 # limit = cms.untracked.int32(10) # or limit to 10 printouts...
685 ))
686 process.MessageLogger.statistics.append('cout')
687 
688  ##
689  ## Get the BeamSpot
690  ##
691 process.load("RecoVertex.BeamSpotProducer.BeamSpot_cff")
692 
693  #-- Refitting
694 process.load("RecoTracker.TrackProducer.TrackRefitters_cff")
695 
696 ##-- Track hit filter
697 ## TrackerTrackHitFilter takes as input the tracks/trajectories coming out from TrackRefitter1
698 #process.load("RecoTracker.FinalTrackSelectors.TrackerTrackHitFilter_cff")
699 #process.TrackerTrackHitFilter.src = 'TrackRefitter1'
700 
701 #-- 1st refit from file
702 process.TrackRefitter1 = process.TrackRefitterP5.clone(
703  src ='ALCARECOTkAlCosmicsCTF0T',
704  NavigationSchool = cms.string(''),
705  TrajectoryInEvent = True,
706  TTRHBuilder = "WithAngleAndTemplate" #default
707  )
708 
709 #-- 2nd fit for AlignmentProducer
710 process.TrackRefitter2 = process.TrackRefitter1.clone(
711  src = 'AlignmentTrackSelector'
712  )
713 
714 #-- Filter bad hits
715 process.load("RecoTracker.FinalTrackSelectors.TrackerTrackHitFilter_cff")
716 process.TrackerTrackHitFilter.src = 'TrackRefitter1'
717 process.TrackerTrackHitFilter.useTrajectories= True # this is needed only if you require some selections; but it will work even if you don't ask for them
718 process.TrackerTrackHitFilter.minimumHits = 8
719 process.TrackerTrackHitFilter.commands = cms.vstring("keep PXB","keep PXE","keep TIB","keep TID","keep TOB","keep TEC")
720 process.TrackerTrackHitFilter.detsToIgnore = []
721 process.TrackerTrackHitFilter.replaceWithInactiveHits = True
722 process.TrackerTrackHitFilter.stripAllInvalidHits = False
723 process.TrackerTrackHitFilter.rejectBadStoNHits = True
724 process.TrackerTrackHitFilter.StoNcommands = cms.vstring("ALL 18.0")
725 process.TrackerTrackHitFilter.rejectLowAngleHits = True
726 process.TrackerTrackHitFilter.TrackAngleCut = 0.35# in rads, starting from the module surface
727 process.TrackerTrackHitFilter.usePixelQualityFlag = True #False
728 
729 #-- TrackProducer
730 ## now we give the TrackCandidate coming out of the TrackerTrackHitFilter to the track producer
731 import RecoTracker.TrackProducer.CTFFinalFitWithMaterialP5_cff
732 process.TrackCandidateFitter = RecoTracker.TrackProducer.CTFFinalFitWithMaterialP5_cff.ctfWithMaterialTracksCosmics.clone(
733 src = 'TrackerTrackHitFilter',
734  NavigationSchool = cms.string(''),
735  TTRHBuilder = "WithAngleAndTemplate"
736  )
737 #-- Filter tracks for alignment
738 process.load("Alignment.CommonAlignmentProducer.AlignmentTrackSelector_cfi")
739 process.AlignmentTrackSelector.src = 'TrackCandidateFitter'
740 process.AlignmentTrackSelector.applyBasicCuts = True
741 process.AlignmentTrackSelector.pMin = 4
742 process.AlignmentTrackSelector.pMax = 9999.
743 process.AlignmentTrackSelector.ptMin = 0
744 process.AlignmentTrackSelector.etaMin = -999.
745 process.AlignmentTrackSelector.etaMax = 999.
746 process.AlignmentTrackSelector.nHitMin = 8
747 process.AlignmentTrackSelector.nHitMin2D = 2
748 process.AlignmentTrackSelector.chi2nMax = 99.
749 process.AlignmentTrackSelector.applyMultiplicityFilter = True# False
750 process.AlignmentTrackSelector.maxMultiplicity = 1
751 
752 ## GlobalTag Conditions (if needed)
753 ##
754 process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
755 process.GlobalTag.globaltag = ".oO[GlobalTag]Oo."
756 
757 
758 ##
759 ## Geometry
760 ##
761 process.load("Configuration.StandardSequences.GeometryDB_cff")
762 
763 ##
764 ## Magnetic Field
765 ##
766 process.load("Configuration/StandardSequences/MagneticField_38T_cff")
767 
768 
769 .oO[LorentzAngleTemplate]Oo.
770 
771  ##
772  ## Geometry
773  ##
774 #process.load("Configuration.StandardSequences.Geometry_cff")
775 
776 .oO[condLoad]Oo.
777 
778  ##
779  ## Load and Configure OfflineValidation
780  ##
781 
782 process.load("Alignment.OfflineValidation.TrackerOfflineValidation_.oO[offlineValidationMode]Oo._cff")
783 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..Tracks = 'TrackRefitter2'
784 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..trajectoryInput = 'TrackRefitter2'
785 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..moduleLevelHistsTransient = cms.bool(.oO[offlineModuleLevelHistsTransient]Oo.)
786 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..moduleLevelProfiles = cms.bool(.oO[offlineModuleLevelProfiles]Oo.)
787 process.TFileService.fileName = '.oO[outputFile]Oo.'
788 
789  ##
790  ## PATH
791  ##
792 
793 process.p = cms.Path( process.offlineBeamSpot
794  *process.TrackRefitter1
795  *process.TrackerTrackHitFilter
796  *process.TrackCandidateFitter
797  *process.AlignmentTrackSelector
798  *process.TrackRefitter2
799  *process.seqTrackerOfflineValidationStandalone
800 )
801 
802 
803 """
804 
805 ######################################################################
806 ######################################################################
807 TrackSelectionCosmicsDuringCollisions = """
808 ##### For Tracks:
809 process.AlignmentTrackSelector.applyBasicCuts = True
810 # Note that pMin is overridden and set to zero in
811 # the offlineTemplate0T
812 process.AlignmentTrackSelector.pMin = 4.
813 process.AlignmentTrackSelector.pMax = 9999.
814 process.AlignmentTrackSelector.ptMin = 0.
815 process.AlignmentTrackSelector.ptMax = 9999.
816 process.AlignmentTrackSelector.etaMin = -999.
817 process.AlignmentTrackSelector.etaMax = 999.
818 process.AlignmentTrackSelector.nHitMin = 8
819 process.AlignmentTrackSelector.nHitMin2D = 2
820 process.AlignmentTrackSelector.chi2nMax = 999.
821 process.AlignmentTrackSelector.applyMultiplicityFilter = False
822 process.AlignmentTrackSelector.maxMultiplicity = 1
823 process.AlignmentTrackSelector.applyNHighestPt = False
824 process.AlignmentTrackSelector.nHighestPt = 1
825 process.AlignmentTrackSelector.seedOnlyFrom = 0
826 process.AlignmentTrackSelector.applyIsolationCut = False
827 process.AlignmentTrackSelector.minHitIsolation = 0.8
828 process.AlignmentTrackSelector.applyChargeCheck = False
829 process.AlignmentTrackSelector.minHitChargeStrip = 50.
830 #process.AlignmentTrackSelector.trackQualities = ["highPurity"]
831 #process.AlignmentTrackSelector.iterativeTrackingSteps = ["iter1","iter2"]
832 
833 ##### For Hits:
834 process.TrackerTrackHitFilter.useTrajectories= True # this is needed only if you require some selections; but it will work even if you don't ask for them
835 process.TrackerTrackHitFilter.minimumHits = 8
836 process.TrackerTrackHitFilter.commands = cms.vstring("keep PXB","keep PXE","keep TIB","keep TID","keep TOB","keep TEC")
837 process.TrackerTrackHitFilter.detsToIgnore = [
838  # see https://hypernews.cern.ch/HyperNews/CMS/get/tracker-performance/484.html
839  # TIB / TID
840  #369136710, 369136714, 402668822,
841  # TOB
842  #436310989, 436310990, 436299301, 436299302,
843  # TEC
844  #470340521, 470063045, 470063046, 470114669, 470114670, 470161093, 470161094, 470164333, 470164334, 470312005, 470312006, 470312009, 470067405, 470067406, 470128813
845 ]
846 process.TrackerTrackHitFilter.replaceWithInactiveHits = True
847 process.TrackerTrackHitFilter.stripAllInvalidHits = False
848 process.TrackerTrackHitFilter.rejectBadStoNHits = True
849 process.TrackerTrackHitFilter.StoNcommands = cms.vstring("ALL 18.0")
850 process.TrackerTrackHitFilter.rejectLowAngleHits= True
851 process.TrackerTrackHitFilter.TrackAngleCut= 0.35 # in rads, starting from the module surface
852 process.TrackerTrackHitFilter.usePixelQualityFlag= True
853 
854 #######################################
855 ##Trigger settings for Cosmics during collisions
856 #######################################
857 process.load('L1TriggerConfig.L1GtConfigProducers.L1GtTriggerMaskTechTrigConfig_cff')
858 process.load('HLTrigger/HLTfilters/hltLevel1GTSeed_cfi')
859 process.L1T1=process.hltLevel1GTSeed.clone()
860 process.L1T1.L1TechTriggerSeeding = cms.bool(True)
861 process.L1T1.L1SeedsLogicalExpression=cms.string('25')
862 process.hltHighLevel = cms.EDFilter("HLTHighLevel",
863  TriggerResultsTag = cms.InputTag("TriggerResults","","HLT"),
864  HLTPaths = cms.vstring('HLT_TrackerCosmics'),
865  eventSetupPathsKey = cms.string(''),
866  andOr = cms.bool(False),
867  throw = cms.bool(True)
868 )
869 
870 
871 process.triggerSelection=cms.Sequence(process.L1T1*process.hltHighLevel)
872 """
873 
874 
875 ######################################################################
876 ######################################################################
877 TrackSelectionCosmicsData = """
878 ##### For Tracks:
879 process.AlignmentTrackSelector.applyBasicCuts = True
880 # Note that pMin is overridden and set to zero in
881 # the offlineTemplate0T
882 process.AlignmentTrackSelector.pMin = 4.
883 process.AlignmentTrackSelector.pMax = 9999.
884 process.AlignmentTrackSelector.ptMin = 0.
885 process.AlignmentTrackSelector.ptMax = 9999.
886 process.AlignmentTrackSelector.etaMin = -999.
887 process.AlignmentTrackSelector.etaMax = 999.
888 process.AlignmentTrackSelector.nHitMin = 8
889 process.AlignmentTrackSelector.nHitMin2D = 2
890 process.AlignmentTrackSelector.chi2nMax = 999.
891 process.AlignmentTrackSelector.applyMultiplicityFilter = False
892 process.AlignmentTrackSelector.maxMultiplicity = 1
893 process.AlignmentTrackSelector.applyNHighestPt = False
894 process.AlignmentTrackSelector.nHighestPt = 1
895 process.AlignmentTrackSelector.seedOnlyFrom = 0
896 process.AlignmentTrackSelector.applyIsolationCut = False
897 process.AlignmentTrackSelector.minHitIsolation = 0.8
898 process.AlignmentTrackSelector.applyChargeCheck = False
899 process.AlignmentTrackSelector.minHitChargeStrip = 50.
900 #process.AlignmentTrackSelector.trackQualities = ["highPurity"]
901 #process.AlignmentTrackSelector.iterativeTrackingSteps = ["iter1","iter2"]
902 
903 ##### For Hits:
904 process.TrackerTrackHitFilter.useTrajectories= True # this is needed only if you require some selections; but it will work even if you don't ask for them
905 process.TrackerTrackHitFilter.minimumHits = 8
906 process.TrackerTrackHitFilter.commands = cms.vstring("keep PXB","keep PXE","keep TIB","keep TID","keep TOB","keep TEC")
907 process.TrackerTrackHitFilter.detsToIgnore = [
908  # see https://hypernews.cern.ch/HyperNews/CMS/get/tracker-performance/484.html
909  # TIB / TID
910  #369136710, 369136714, 402668822,
911  # TOB
912  #436310989, 436310990, 436299301, 436299302,
913  # TEC
914  #470340521, 470063045, 470063046, 470114669, 470114670, 470161093, 470161094, 470164333, 470164334, 470312005, 470312006, 470312009, 470067405, 470067406, 470128813
915 ]
916 process.TrackerTrackHitFilter.replaceWithInactiveHits = True
917 process.TrackerTrackHitFilter.stripAllInvalidHits = False
918 process.TrackerTrackHitFilter.rejectBadStoNHits = True
919 process.TrackerTrackHitFilter.StoNcommands = cms.vstring("ALL 18.0")
920 process.TrackerTrackHitFilter.rejectLowAngleHits= True
921 process.TrackerTrackHitFilter.TrackAngleCut= 0.35 # in rads, starting from the module surface
922 process.TrackerTrackHitFilter.usePixelQualityFlag= True
923 #process.TrackerTrackHitFilter.PxlCorrClusterChargeCut = 10000.0
924 #process.triggerSelection=cms.Sequence(process.hltPhysicsDeclared)
925 """
926 
927 
928 ######################################################################
929 ######################################################################
930 TrackSelectionCosmicsDataBPIX = """
931 ##### For Tracks:
932 process.AlignmentTrackSelector.applyBasicCuts = True
933 # Note that pMin is overridden and set to zero in
934 # the offlineTemplate0T
935 process.AlignmentTrackSelector.pMin = 4.
936 process.AlignmentTrackSelector.pMax = 9999.
937 process.AlignmentTrackSelector.ptMin = 0.
938 process.AlignmentTrackSelector.ptMax = 9999.
939 process.AlignmentTrackSelector.etaMin = -999.
940 process.AlignmentTrackSelector.etaMax = 999.
941 process.AlignmentTrackSelector.nHitMin = 8
942 process.AlignmentTrackSelector.nHitMin2D = 2
943 process.AlignmentTrackSelector.chi2nMax = 999.
944 process.AlignmentTrackSelector.applyMultiplicityFilter = False
945 process.AlignmentTrackSelector.maxMultiplicity = 1
946 process.AlignmentTrackSelector.applyNHighestPt = False
947 process.AlignmentTrackSelector.nHighestPt = 1
948 process.AlignmentTrackSelector.seedOnlyFrom = 0
949 process.AlignmentTrackSelector.applyIsolationCut = False
950 process.AlignmentTrackSelector.minHitIsolation = 0.8
951 process.AlignmentTrackSelector.applyChargeCheck = False
952 process.AlignmentTrackSelector.minHitChargeStrip = 50.
953 process.AlignmentTrackSelector.minHitsPerSubDet = cms.PSet(
954  inTEC = cms.int32(0),
955  inTOB = cms.int32(0),
956  inFPIX = cms.int32(0),
957  inTID = cms.int32(0),
958  inBPIX = cms.int32(1),
959  inTIB = cms.int32(0),
960  inPIXEL = cms.int32(0),
961  inTIDplus = cms.int32(0),
962  inTIDminus = cms.int32(0),
963  inTECplus = cms.int32(0),
964  inTECminus = cms.int32(0),
965  inFPIXplus = cms.int32(0),
966  inFPIXminus = cms.int32(0),
967  inENDCAP = cms.int32(0),
968  inENDCAPplus = cms.int32(0),
969  inENDCAPminus = cms.int32(0),
970  )
971 #process.AlignmentTrackSelector.trackQualities = ["highPurity"]
972 #process.AlignmentTrackSelector.iterativeTrackingSteps = ["iter1","iter2"]
973 
974 ##### For Hits:
975 process.TrackerTrackHitFilter.useTrajectories= True # this is needed only if you require some selections; but it will work even if you don't ask for them
976 process.TrackerTrackHitFilter.minimumHits = 8
977 process.TrackerTrackHitFilter.commands = cms.vstring("keep PXB","keep PXE","keep TIB","keep TID","keep TOB","keep TEC")
978 process.TrackerTrackHitFilter.detsToIgnore = [
979  # see https://hypernews.cern.ch/HyperNews/CMS/get/tracker-performance/484.html
980  # TIB / TID
981  #369136710, 369136714, 402668822,
982  # TOB
983  #436310989, 436310990, 436299301, 436299302,
984  # TEC
985  #470340521, 470063045, 470063046, 470114669, 470114670, 470161093, 470161094, 470164333, 470164334, 470312005, 470312006, 470312009, 470067405, 470067406, 470128813
986 ]
987 process.TrackerTrackHitFilter.replaceWithInactiveHits = True
988 process.TrackerTrackHitFilter.stripAllInvalidHits = False
989 process.TrackerTrackHitFilter.rejectBadStoNHits = True
990 process.TrackerTrackHitFilter.StoNcommands = cms.vstring("ALL 18.0")
991 process.TrackerTrackHitFilter.rejectLowAngleHits= True
992 process.TrackerTrackHitFilter.TrackAngleCut= 0.35 # in rads, starting from the module surface
993 process.TrackerTrackHitFilter.usePixelQualityFlag= True
994 
995 process.triggerSelection=cms.Sequence(process.hltPhysicsDeclared)
996 """
997 
998 
999 ######################################################################
1000 ######################################################################
1001 TrackSelectionCosmicsDataFPIXplus = """
1002 ##### For Tracks:
1003 process.AlignmentTrackSelector.applyBasicCuts = True
1004 # Note that pMin is overridden and set to zero in
1005 # the offlineTemplate0T
1006 process.AlignmentTrackSelector.pMin = 4.
1007 process.AlignmentTrackSelector.pMax = 9999.
1008 process.AlignmentTrackSelector.ptMin = 0.
1009 process.AlignmentTrackSelector.ptMax = 9999.
1010 process.AlignmentTrackSelector.etaMin = -999.
1011 process.AlignmentTrackSelector.etaMax = 999.
1012 process.AlignmentTrackSelector.nHitMin = 8
1013 process.AlignmentTrackSelector.nHitMin2D = 2
1014 process.AlignmentTrackSelector.chi2nMax = 999.
1015 process.AlignmentTrackSelector.applyMultiplicityFilter = False
1016 process.AlignmentTrackSelector.maxMultiplicity = 1
1017 process.AlignmentTrackSelector.applyNHighestPt = False
1018 process.AlignmentTrackSelector.nHighestPt = 1
1019 process.AlignmentTrackSelector.seedOnlyFrom = 0
1020 process.AlignmentTrackSelector.applyIsolationCut = False
1021 process.AlignmentTrackSelector.minHitIsolation = 0.8
1022 process.AlignmentTrackSelector.applyChargeCheck = False
1023 process.AlignmentTrackSelector.minHitChargeStrip = 50.
1024 process.AlignmentTrackSelector.minHitsPerSubDet = cms.PSet(
1025  inTEC = cms.int32(0),
1026  inTOB = cms.int32(0),
1027  inFPIX = cms.int32(0),
1028  inTID = cms.int32(0),
1029  inBPIX = cms.int32(0),
1030  inTIB = cms.int32(0),
1031  inPIXEL = cms.int32(0),
1032  inTIDplus = cms.int32(0),
1033  inTIDminus = cms.int32(0),
1034  inTECplus = cms.int32(0),
1035  inTECminus = cms.int32(0),
1036  inFPIXplus = cms.int32(1),
1037  inFPIXminus = cms.int32(0),
1038  inENDCAP = cms.int32(0),
1039  inENDCAPplus = cms.int32(0),
1040  inENDCAPminus = cms.int32(0),
1041  )
1042 #process.AlignmentTrackSelector.trackQualities = ["highPurity"]
1043 #process.AlignmentTrackSelector.iterativeTrackingSteps = ["iter1","iter2"]
1044 
1045 ##### For Hits:
1046 process.TrackerTrackHitFilter.useTrajectories= True # this is needed only if you require some selections; but it will work even if you don't ask for them
1047 process.TrackerTrackHitFilter.minimumHits = 8
1048 process.TrackerTrackHitFilter.commands = cms.vstring("keep PXB","keep PXE","keep TIB","keep TID","keep TOB","keep TEC")
1049 process.TrackerTrackHitFilter.detsToIgnore = [
1050  # see https://hypernews.cern.ch/HyperNews/CMS/get/tracker-performance/484.html
1051  # TIB / TID
1052  #369136710, 369136714, 402668822,
1053  # TOB
1054  #436310989, 436310990, 436299301, 436299302,
1055  # TEC
1056  #470340521, 470063045, 470063046, 470114669, 470114670, 470161093, 470161094, 470164333, 470164334, 470312005, 470312006, 470312009, 470067405, 470067406, 470128813
1057 ]
1058 process.TrackerTrackHitFilter.replaceWithInactiveHits = True
1059 process.TrackerTrackHitFilter.stripAllInvalidHits = False
1060 process.TrackerTrackHitFilter.rejectBadStoNHits = True
1061 process.TrackerTrackHitFilter.StoNcommands = cms.vstring("ALL 18.0")
1062 process.TrackerTrackHitFilter.rejectLowAngleHits= True
1063 process.TrackerTrackHitFilter.TrackAngleCut= 0.35 # in rads, starting from the module surface
1064 process.TrackerTrackHitFilter.usePixelQualityFlag= True
1065 
1066 process.triggerSelection=cms.Sequence(process.hltPhysicsDeclared)
1067 """
1068 
1069 
1070 ######################################################################
1071 ######################################################################
1072 TrackSelectionCosmicsDataFPIXminus = """
1073 ##### For Tracks:
1074 process.AlignmentTrackSelector.applyBasicCuts = True
1075 # Note that pMin is overridden and set to zero in
1076 # the offlineTemplate0T
1077 process.AlignmentTrackSelector.pMin = 4.
1078 process.AlignmentTrackSelector.pMax = 9999.
1079 process.AlignmentTrackSelector.ptMin = 0.
1080 process.AlignmentTrackSelector.ptMax = 9999.
1081 process.AlignmentTrackSelector.etaMin = -999.
1082 process.AlignmentTrackSelector.etaMax = 999.
1083 process.AlignmentTrackSelector.nHitMin = 8
1084 process.AlignmentTrackSelector.nHitMin2D = 2
1085 process.AlignmentTrackSelector.chi2nMax = 999.
1086 process.AlignmentTrackSelector.applyMultiplicityFilter = False
1087 process.AlignmentTrackSelector.maxMultiplicity = 1
1088 process.AlignmentTrackSelector.applyNHighestPt = False
1089 process.AlignmentTrackSelector.nHighestPt = 1
1090 process.AlignmentTrackSelector.seedOnlyFrom = 0
1091 process.AlignmentTrackSelector.applyIsolationCut = False
1092 process.AlignmentTrackSelector.minHitIsolation = 0.8
1093 process.AlignmentTrackSelector.applyChargeCheck = False
1094 process.AlignmentTrackSelector.minHitChargeStrip = 50.
1095 process.AlignmentTrackSelector.minHitsPerSubDet = cms.PSet(
1096  inTEC = cms.int32(0),
1097  inTOB = cms.int32(0),
1098  inFPIX = cms.int32(0),
1099  inTID = cms.int32(0),
1100  inBPIX = cms.int32(0),
1101  inTIB = cms.int32(0),
1102  inPIXEL = cms.int32(0),
1103  inTIDplus = cms.int32(0),
1104  inTIDminus = cms.int32(0),
1105  inTECplus = cms.int32(0),
1106  inTECminus = cms.int32(0),
1107  inFPIXplus = cms.int32(0),
1108  inFPIXminus = cms.int32(1),
1109  inENDCAP = cms.int32(0),
1110  inENDCAPplus = cms.int32(0),
1111  inENDCAPminus = cms.int32(0),
1112  )
1113 #process.AlignmentTrackSelector.trackQualities = ["highPurity"]
1114 #process.AlignmentTrackSelector.iterativeTrackingSteps = ["iter1","iter2"]
1115 
1116 ##### For Hits:
1117 process.TrackerTrackHitFilter.useTrajectories= True # this is needed only if you require some selections; but it will work even if you don't ask for them
1118 process.TrackerTrackHitFilter.minimumHits = 8
1119 process.TrackerTrackHitFilter.commands = cms.vstring("keep PXB","keep PXE","keep TIB","keep TID","keep TOB","keep TEC")
1120 process.TrackerTrackHitFilter.detsToIgnore = [
1121  # see https://hypernews.cern.ch/HyperNews/CMS/get/tracker-performance/484.html
1122  # TIB / TID
1123  #369136710, 369136714, 402668822,
1124  # TOB
1125  #436310989, 436310990, 436299301, 436299302,
1126  # TEC
1127  #470340521, 470063045, 470063046, 470114669, 470114670, 470161093, 470161094, 470164333, 470164334, 470312005, 470312006, 470312009, 470067405, 470067406, 470128813
1128 ]
1129 process.TrackerTrackHitFilter.replaceWithInactiveHits = True
1130 process.TrackerTrackHitFilter.stripAllInvalidHits = False
1131 process.TrackerTrackHitFilter.rejectBadStoNHits = True
1132 process.TrackerTrackHitFilter.StoNcommands = cms.vstring("ALL 18.0")
1133 process.TrackerTrackHitFilter.rejectLowAngleHits= True
1134 process.TrackerTrackHitFilter.TrackAngleCut= 0.35 # in rads, starting from the module surface
1135 process.TrackerTrackHitFilter.usePixelQualityFlag= True
1136 
1137 process.triggerSelection=cms.Sequence(process.hltPhysicsDeclared)
1138 """
1139 
1140 
1141 ######################################################################
1142 ######################################################################
1143 TrackSelectionMinBiasData = """
1144 ##### For Tracks:collisions taken in deco mode
1145 process.AlignmentTrackSelector.applyBasicCuts = True
1146 # Note that pMin is overridden and set to zero in
1147 # the offlineTemplate0T
1148 process.AlignmentTrackSelector.pMin = 3
1149 process.AlignmentTrackSelector.pMax = 9999.
1150 process.AlignmentTrackSelector.ptMin = 0.65
1151 process.AlignmentTrackSelector.ptMax = 9999.
1152 process.AlignmentTrackSelector.etaMin = -999.
1153 process.AlignmentTrackSelector.etaMax = 999.
1154 process.AlignmentTrackSelector.nHitMin = 8
1155 process.AlignmentTrackSelector.nHitMin2D = 2
1156 process.AlignmentTrackSelector.chi2nMax = 999.
1157 process.AlignmentTrackSelector.applyMultiplicityFilter = False
1158 process.AlignmentTrackSelector.maxMultiplicity = 1
1159 process.AlignmentTrackSelector.applyNHighestPt = False
1160 process.AlignmentTrackSelector.nHighestPt = 1
1161 process.AlignmentTrackSelector.seedOnlyFrom = 0
1162 process.AlignmentTrackSelector.applyIsolationCut = False
1163 process.AlignmentTrackSelector.minHitIsolation = 0.8
1164 process.AlignmentTrackSelector.applyChargeCheck = False
1165 process.AlignmentTrackSelector.minHitChargeStrip = 50.
1166 #process.AlignmentTrackSelector.trackQualities = ["highPurity"]
1167 #process.AlignmentTrackSelector.iterativeTrackingSteps = ["iter1","iter2"]
1168 
1169 ##### For Hits:
1170 process.TrackerTrackHitFilter.useTrajectories= True # this is needed only if you require some selections; but it will work even if you don't ask for them
1171 process.TrackerTrackHitFilter.minimumHits = 8
1172 process.TrackerTrackHitFilter.commands = cms.vstring("keep PXB","keep PXE","keep TIB","keep TID","keep TOB","keep TEC")
1173 process.TrackerTrackHitFilter.detsToIgnore = [
1174  # see https://hypernews.cern.ch/HyperNews/CMS/get/tracker-performance/484.html
1175  # TIB / TID
1176  #369136710, 369136714, 402668822,
1177  # TOB
1178  #436310989, 436310990, 436299301, 436299302,
1179 
1180  # TEC
1181  #470340521, 470063045, 470063046, 470114669, 470114670, 470161093, 470161094, 470164333, 470164334, 470312005, 470312006, 470312009, 470067405, 470067406, 470128813
1182 ]
1183 process.TrackerTrackHitFilter.replaceWithInactiveHits = True
1184 process.TrackerTrackHitFilter.stripAllInvalidHits = False
1185 process.TrackerTrackHitFilter.rejectBadStoNHits = True
1186 process.TrackerTrackHitFilter.StoNcommands = cms.vstring("ALL 12.0")
1187 process.TrackerTrackHitFilter.rejectLowAngleHits= True
1188 process.TrackerTrackHitFilter.TrackAngleCut= 0.17 # in rads, starting from the module surface
1189 process.TrackerTrackHitFilter.usePixelQualityFlag= True
1190 
1191 ##############
1192 ##Trigger sequence
1193 #############
1194 #bit 0 is selecting bunch crossing
1195 #bit 40 MinBias trigger
1196 
1197 
1198 process.triggerSelection=cms.Sequence(process.oneGoodVertexFilter)
1199 
1200 """
1201 
1202 
1203 ######################################################################
1204 ######################################################################
1205 TrackSelectionIsolatedMuons = """
1206 ##### For Tracks:collisions taken in deco mode
1207 
1208 process.AlignmentTrackSelector.applyBasicCuts = True
1209 # Note that pMin is overridden and set to zero in
1210 # the offlineTemplate0T
1211 process.AlignmentTrackSelector.pMin = 0
1212 process.AlignmentTrackSelector.pMax = 9999.
1213 process.AlignmentTrackSelector.ptMin = 3.
1214 process.AlignmentTrackSelector.ptMax = 9999.
1215 process.AlignmentTrackSelector.etaMin = -999.
1216 process.AlignmentTrackSelector.etaMax = 999.
1217 process.AlignmentTrackSelector.nHitMin = 8
1218 process.AlignmentTrackSelector.nHitMin2D = 2
1219 process.AlignmentTrackSelector.chi2nMax = 999.
1220 process.AlignmentTrackSelector.applyMultiplicityFilter = False
1221 process.AlignmentTrackSelector.maxMultiplicity = 1
1222 process.AlignmentTrackSelector.applyNHighestPt = False
1223 process.AlignmentTrackSelector.nHighestPt = 1
1224 process.AlignmentTrackSelector.seedOnlyFrom = 0
1225 process.AlignmentTrackSelector.applyIsolationCut = False
1226 process.AlignmentTrackSelector.minHitIsolation = 0.8
1227 process.AlignmentTrackSelector.applyChargeCheck = False
1228 process.AlignmentTrackSelector.minHitChargeStrip = 50.
1229 #process.AlignmentTrackSelector.trackQualities = ["highPurity"]
1230 #process.AlignmentTrackSelector.iterativeTrackingSteps = ["iter1","iter2"]
1231 
1232 ##### For Hits:
1233 process.TrackerTrackHitFilter.useTrajectories= True # this is needed only if you require some selections; but it will work even if you don't ask for them
1234 process.TrackerTrackHitFilter.minimumHits = 8
1235 process.TrackerTrackHitFilter.commands = cms.vstring("keep PXB","keep PXE","keep TIB","keep TID","keep TOB","keep TEC")
1236 process.TrackerTrackHitFilter.detsToIgnore = [
1237  # see https://hypernews.cern.ch/HyperNews/CMS/get/tracker-performance/484.html
1238  # TIB / TID
1239  #369136710, 369136714, 402668822,
1240  # TOB
1241  #436310989, 436310990, 436299301, 436299302,
1242  # TEC
1243  #470340521, 470063045, 470063046, 470114669, 470114670, 470161093, 470161094, 470164333, 470164334, 470312005, 470312006, 470312009, 470067405, 470067406, 470128813
1244 ]
1245 process.TrackerTrackHitFilter.replaceWithInactiveHits = True
1246 process.TrackerTrackHitFilter.stripAllInvalidHits = False
1247 process.TrackerTrackHitFilter.rejectBadStoNHits = True
1248 process.TrackerTrackHitFilter.StoNcommands = cms.vstring("ALL 12.0")
1249 process.TrackerTrackHitFilter.rejectLowAngleHits= True
1250 process.TrackerTrackHitFilter.TrackAngleCut= 0.17 # in rads, starting from the module surface
1251 process.TrackerTrackHitFilter.usePixelQualityFlag= True
1252 
1253 ##############
1254 ##Trigger sequence
1255 #############
1256 #bit 0 is selecting bunch crossing
1257 #bit xy for muons trigger
1258 
1259 
1260 #process.triggerSelection=cms.Sequence(process.bptxAnd)
1261 
1262 
1263 
1264 """
1265 
1266 
1267 ######################################################################
1268 ######################################################################
1269 CosmicsOfflineValidation_Deformations="""
1270 import FWCore.ParameterSet.Config as cms
1271 
1272 process = cms.Process("OfflineValidator")
1273 
1274 process.load("Alignment.OfflineValidation..oO[dataset]Oo._cff")
1275 
1276 #process.source.inputCommands = cms.untracked.vstring('keep *', 'drop *_MEtoEDMConverter_*_*') # hack to get rid of the memory consumption problem in 2_2_X and beond
1277 process.options = cms.untracked.PSet(
1278  wantSummary = cms.untracked.bool(False),
1279  Rethrow = cms.untracked.vstring("ProductNotFound"), # make this exception fatal
1280  fileMode = cms.untracked.string('NOMERGE') # no ordering needed, but calls endRun/beginRun etc. at file boundaries
1281 )
1282 
1283  ##
1284  ## Maximum number of Events
1285  ##
1286 process.maxEvents = cms.untracked.PSet(
1287  input = cms.untracked.int32(.oO[nEvents]Oo.)
1288  )
1289 
1290  ##
1291  ## Messages & Convenience
1292  ##
1293 process.load("FWCore.MessageLogger.MessageLogger_cfi")
1294 process.MessageLogger.cerr = cms.untracked.PSet(placeholder = cms.untracked.bool(True))
1295 process.MessageLogger.cout = cms.untracked.PSet(INFO = cms.untracked.PSet(
1296 reportEvery = cms.untracked.int32(1000) # every 1000th only
1297 # limit = cms.untracked.int32(10) # or limit to 10 printouts...
1298 ))
1299 process.MessageLogger.statistics.append('cout')
1300 
1301 
1302 #-- Track hit filter
1303 # TrackerTrackHitFilter takes as input the tracks/trajectories coming out from TrackRefitter1
1304 process.load("RecoTracker.FinalTrackSelectors.TrackerTrackHitFilter_cff")
1305 process.TrackerTrackHitFilter.src = 'TrackRefitter1'
1306 
1307 
1308 
1309 #-- Alignment Track Selection
1310 process.load("Alignment.CommonAlignmentProducer.AlignmentTrackSelector_cfi")
1311 process.AlignmentTrackSelector.src = 'HitFilteredTracks'
1312 process.AlignmentTrackSelector.filter = True
1313 
1314 .oO[TrackSelectionTemplate]Oo.
1315 
1316 #now we give the TrackCandidate coming out of the TrackerTrackHitFilter to the track producer
1317 import RecoTracker.TrackProducer.CTFFinalFitWithMaterialP5_cff
1318 process.HitFilteredTracks = RecoTracker.TrackProducer.CTFFinalFitWithMaterialP5_cff.ctfWithMaterialTracksCosmics.clone(
1319  src = 'TrackerTrackHitFilter',
1320 ### TrajectoryInEvent = True,
1321  NavigationSchool = '',
1322  TTRHBuilder = "WithAngleAndTemplate"
1323 )
1324 
1325  ##
1326  ## Load and Configure TrackRefitter1
1327  ##
1328 
1329 
1330 #############
1331 process.load("RecoTracker.TrackProducer.TrackRefitters_cff")
1332 
1333 process.TrackRefitter1 = process.TrackRefitterP5.clone(
1334  src = 'ALCARECOTkAlCosmicsCTF0T',
1335  TrajectoryInEvent = True,
1336  NavigationSchool = '',
1337  TTRHBuilder = "WithAngleAndTemplate"
1338 )
1339 process.TrackRefitter2 = process.TrackRefitter1.clone(
1340  src = 'AlignmentTrackSelector',
1341 
1342  )
1343 
1344 
1345  ##
1346  ## Get the BeamSpot
1347  ##
1348 process.load("RecoVertex.BeamSpotProducer.BeamSpot_cff")
1349 
1350  ##
1351  ## GlobalTag Conditions (if needed)
1352  ##
1353 process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
1354 # process.GlobalTag.connect = "frontier://FrontierProd/CMS_COND_31X_GLOBALTAG"
1355 process.GlobalTag.globaltag = ".oO[GlobalTag]Oo."
1356 
1357 
1358 .oO[LorentzAngleTemplate]Oo.
1359 
1360  ##
1361  ## Geometry
1362  ##
1363 process.load("Configuration.Geometry.GeometryDB_cff")
1364 
1365  ##
1366  ## Magnetic Field
1367  ##
1368 process.load("Configuration/StandardSequences/MagneticField_38T_cff")
1369 
1370 .oO[condLoad]Oo.
1371 
1372 from CondCore.DBCommon.CondDBSetup_cfi import *
1373 process.trackerSurfaces = cms.ESSource(
1374  "PoolDBESSource",
1375  CondDBSetup,
1376  connect = cms.string('.oO[dbpath]Oo.'),
1377  toGet = cms.VPSet(cms.PSet(record = cms.string("TrackerSurfaceDeformationRcd"),
1378  tag = cms.string("Deformations")
1379  )
1380  )
1381  )
1382 process.es_prefer_trackerSurfaces = cms.ESPrefer("PoolDBESSource", "trackerSurfaces")
1383 
1384 ## to apply misalignments
1385 #TrackerDigiGeometryESModule.applyAlignment = True
1386 
1387  ##
1388  ## Load and Configure OfflineValidation
1389  ##
1390 
1391 process.load("Alignment.OfflineValidation.TrackerOfflineValidation_.oO[offlineValidationMode]Oo._cff")
1392 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..Tracks = 'TrackRefitter2'
1393 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..trajectoryInput = 'TrackRefitter2'
1394 #process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..moduleLevelHistsTransient = cms.bool(.oO[offlineModuleLevelHistsTransient]Oo.)
1395 process.TrackerOfflineValidationStandalone.moduleLevelHistsTransient = cms.bool(False)
1396 process.TrackerOfflineValidationStandalone.moduleLevelProfiles = cms.bool(True)
1397 process.TFileService.fileName = '.oO[outputFile]Oo.'
1398 
1399  ##
1400  ## PATH
1401  ##
1402 process.p = cms.Path(process.offlineBeamSpot*process.TrackRefitter1*process.TrackerTrackHitFilter*process.HitFilteredTracks
1403  *process.AlignmentTrackSelector*process.TrackRefitter2*process.seqTrackerOfflineValidation.oO[offlineValidationMode]Oo.)
1404 
1405 
1406 """
1407 
1408 
1409 ######################################################################
1410 ######################################################################
1411 TrackSelectionCosmicsDataDef = """
1412 # import CalibTracker.Configuration.Common.PoolDBESSource_cfi
1413 # process.trackerBowedSensors = CalibTracker.Configuration.Common.PoolDBESSource_cfi.poolDBESSource.clone(
1414 # connect = cms.string('.oO[dbpath]Oo.'),
1415 
1416 # toGet = cms.VPSet(cms.PSet(record = cms.string('TrackerSurfaceDeformationRcd'),
1417 # tag = cms.string('Deformations')
1418 # )
1419 # )
1420 # )
1421 # process.prefer_trackerBowedSensors = cms.ESPrefer("PoolDBESSource", "trackerBowedSensors")
1422 ##### For Tracks:
1423 process.AlignmentTrackSelector.applyBasicCuts = True
1424 # Note that pMin is overridden and set to zero in
1425 # the offlineTemplate0T
1426 process.AlignmentTrackSelector.pMin = 4.
1427 process.AlignmentTrackSelector.pMax = 9999.
1428 process.AlignmentTrackSelector.ptMin = 0.
1429 process.AlignmentTrackSelector.ptMax = 9999.
1430 process.AlignmentTrackSelector.etaMin = -999.
1431 process.AlignmentTrackSelector.etaMax = 999.
1432 process.AlignmentTrackSelector.nHitMin = 8
1433 process.AlignmentTrackSelector.nHitMin2D = 2
1434 process.AlignmentTrackSelector.chi2nMax = 999.
1435 process.AlignmentTrackSelector.applyMultiplicityFilter = True
1436 process.AlignmentTrackSelector.maxMultiplicity = 1
1437 process.AlignmentTrackSelector.applyNHighestPt = False
1438 process.AlignmentTrackSelector.nHighestPt = 1
1439 process.AlignmentTrackSelector.seedOnlyFrom = 0
1440 process.AlignmentTrackSelector.applyIsolationCut = False
1441 process.AlignmentTrackSelector.minHitIsolation = 0.8
1442 process.AlignmentTrackSelector.applyChargeCheck = False
1443 process.AlignmentTrackSelector.minHitChargeStrip = 50.
1444 #process.AlignmentTrackSelector.trackQualities = ["highPurity"]
1445 #process.AlignmentTrackSelector.iterativeTrackingSteps = ["iter1","iter2"]
1446 
1447 ##### For Hits:
1448 process.TrackerTrackHitFilter.useTrajectories= True # this is needed only if you require some selections; but it will work even if you don't ask for them
1449 process.TrackerTrackHitFilter.minimumHits = 8
1450 process.TrackerTrackHitFilter.commands = cms.vstring("keep PXB","keep PXE","keep TIB","keep TID","keep TOB","keep TEC")
1451 process.TrackerTrackHitFilter.detsToIgnore = [
1452  # see https://hypernews.cern.ch/HyperNews/CMS/get/tracker-performance/484.html
1453  # TIB / TID
1454  #369136710, 369136714, 402668822,
1455  # TOB
1456  #436310989, 436310990, 436299301, 436299302,
1457  # TEC
1458  #470340521, 470063045, 470063046, 470114669, 470114670, 470161093, 470161094, 470164333, 470164334, 470312005, 470312006, 470312009, 470067405, 470067406, 470128813
1459 ]
1460 process.TrackerTrackHitFilter.replaceWithInactiveHits = True
1461 process.TrackerTrackHitFilter.stripAllInvalidHits = False
1462 process.TrackerTrackHitFilter.rejectBadStoNHits = True
1463 process.TrackerTrackHitFilter.StoNcommands = cms.vstring("ALL 18.0")
1464 process.TrackerTrackHitFilter.rejectLowAngleHits= True
1465 process.TrackerTrackHitFilter.TrackAngleCut= 0.35 # in rads, starting from the module surface
1466 process.TrackerTrackHitFilter.usePixelQualityFlag= True
1467 #process.TrackerTrackHitFilter.PxlCorrClusterChargeCut = 10000.0
1468 process.triggerSelection=cms.Sequence(process.hltPhysicsDeclared)
1469 """
1470 
1471 
1472 ######################################################################
1473 ######################################################################
1474 TrackSelectionCosmicsInterfillLADef = """
1475 # import CalibTracker.Configuration.Common.PoolDBESSource_cfi
1476 # process.trackerBowedSensors = CalibTracker.Configuration.Common.PoolDBESSource_cfi.poolDBESSource.clone(
1477 # connect = cms.string('.oO[dbpath]Oo.'),
1478 
1479 # toGet = cms.VPSet(cms.PSet(record = cms.string('TrackerSurfaceDeformationRcd'),
1480 # tag = cms.string('Deformations')
1481 # )
1482 # )
1483 # )
1484 # process.prefer_trackerBowedSensors = cms.ESPrefer("PoolDBESSource", "trackerBowedSensors")
1485 
1486 #LA
1487 process.myLA = CalibTracker.Configuration.Common.PoolDBESSource_cfi.poolDBESSource.clone(
1488  connect = cms.string ('frontier://PromptProd/CMS_COND_31X_STRIP'),
1489  toGet = cms.VPSet(cms.PSet(
1490  record = cms.string('SiStripLorentzAngleRcd'),
1491  tag = cms.string('SiStripLorentzAnglePeak_GR10_v1_offline')
1492 
1493  ))
1494  )
1495 process.es_prefer_myLA = cms.ESPrefer("PoolDBESSource","myLA")
1496 
1497 #-- initialize beam spot
1498 process.load("RecoVertex.BeamSpotProducer.BeamSpot_cfi")
1499 
1500 ##### For Tracks:
1501 process.AlignmentTrackSelector.applyBasicCuts = True
1502 # Note that pMin is overridden and set to zero in
1503 # the offlineTemplate0T
1504 process.AlignmentTrackSelector.pMin = 4.
1505 process.AlignmentTrackSelector.pMax = 9999.
1506 process.AlignmentTrackSelector.ptMin = 0.
1507 process.AlignmentTrackSelector.ptMax = 9999.
1508 process.AlignmentTrackSelector.etaMin = -999.
1509 process.AlignmentTrackSelector.etaMax = 999.
1510 process.AlignmentTrackSelector.nHitMin = 8
1511 process.AlignmentTrackSelector.nHitMin2D = 2
1512 process.AlignmentTrackSelector.chi2nMax = 999.
1513 process.AlignmentTrackSelector.applyMultiplicityFilter = False
1514 process.AlignmentTrackSelector.maxMultiplicity = 1
1515 process.AlignmentTrackSelector.applyNHighestPt = False
1516 process.AlignmentTrackSelector.nHighestPt = 1
1517 process.AlignmentTrackSelector.seedOnlyFrom = 0
1518 process.AlignmentTrackSelector.applyIsolationCut = False
1519 process.AlignmentTrackSelector.minHitIsolation = 0.8
1520 process.AlignmentTrackSelector.applyChargeCheck = False
1521 process.AlignmentTrackSelector.minHitChargeStrip = 50.
1522 #process.AlignmentTrackSelector.trackQualities = ["highPurity"]
1523 #process.AlignmentTrackSelector.iterativeTrackingSteps = ["iter1","iter2"]
1524 
1525 ##### For Hits:
1526 process.TrackerTrackHitFilter.useTrajectories= True # this is needed only if you require some selections; but it will work even if you don't ask for them
1527 process.TrackerTrackHitFilter.minimumHits = 8
1528 process.TrackerTrackHitFilter.commands = cms.vstring("keep PXB","keep PXE","keep TIB","keep TID","keep TOB","keep TEC")
1529 process.TrackerTrackHitFilter.detsToIgnore = [
1530  # see https://hypernews.cern.ch/HyperNews/CMS/get/tracker-performance/484.html
1531  # TIB / TID
1532  #369136710, 369136714, 402668822,
1533  # TOB
1534  #436310989, 436310990, 436299301, 436299302,
1535  # TEC
1536  #470340521, 470063045, 470063046, 470114669, 470114670, 470161093, 470161094, 470164333, 470164334, 470312005, 470312006, 470312009, 470067405, 470067406, 470128813
1537 ]
1538 process.TrackerTrackHitFilter.replaceWithInactiveHits = True
1539 process.TrackerTrackHitFilter.stripAllInvalidHits = False
1540 process.TrackerTrackHitFilter.rejectBadStoNHits = True
1541 process.TrackerTrackHitFilter.StoNcommands = cms.vstring("ALL 18.0")
1542 process.TrackerTrackHitFilter.rejectLowAngleHits= True
1543 process.TrackerTrackHitFilter.TrackAngleCut= 0.35 # in rads, starting from the module surface
1544 process.TrackerTrackHitFilter.usePixelQualityFlag= True
1545 
1546 #######################################
1547 ##Trigger settings for Cosmics during collisions
1548 #######################################
1549 process.load('L1TriggerConfig.L1GtConfigProducers.L1GtTriggerMaskTechTrigConfig_cff')
1550 process.load('HLTrigger/HLTfilters/hltLevel1GTSeed_cfi')
1551 process.L1T1=process.hltLevel1GTSeed.clone()
1552 process.L1T1.L1TechTriggerSeeding = cms.bool(True)
1553 process.L1T1.L1SeedsLogicalExpression=cms.string('25')
1554 process.hltHighLevel = cms.EDFilter("HLTHighLevel",
1555  TriggerResultsTag = cms.InputTag("TriggerResults","","HLT"),
1556  HLTPaths = cms.vstring('HLT_TrackerCosmics'),
1557  eventSetupPathsKey = cms.string(''),
1558  andOr = cms.bool(False),
1559  throw = cms.bool(True)
1560 )
1561 
1562 
1563 process.triggerSelection=cms.Sequence(process.L1T1*process.hltHighLevel)
1564 """
1565 
1566 
1567 ######################################################################
1568 ######################################################################
1569 TrackSelectionMinBiasDataDef = """
1570 # import CalibTracker.Configuration.Common.PoolDBESSource_cfi
1571 # process.trackerBowedSensors = CalibTracker.Configuration.Common.PoolDBESSource_cfi.poolDBESSource.clone(
1572 # connect = cms.string('.oO[dbpath]Oo.'),
1573 
1574 # toGet = cms.VPSet(cms.PSet(record = cms.string('TrackerSurfaceDeformationRcd'),
1575 # tag = cms.string('Deformations')
1576 # )
1577 # )
1578 # )
1579 # process.prefer_trackerBowedSensors = cms.ESPrefer("PoolDBESSource", "trackerBowedSensors")
1580 
1581 ##### For Tracks:collisions taken in deco mode
1582 process.AlignmentTrackSelector.applyBasicCuts = True
1583 # Note that pMin is overridden and set to zero in
1584 # the offlineTemplate0T
1585 process.AlignmentTrackSelector.pMin = 3
1586 process.AlignmentTrackSelector.pMax = 9999.
1587 process.AlignmentTrackSelector.ptMin = 0.65
1588 process.AlignmentTrackSelector.ptMax = 9999.
1589 process.AlignmentTrackSelector.etaMin = -999.
1590 process.AlignmentTrackSelector.etaMax = 999.
1591 process.AlignmentTrackSelector.nHitMin = 8
1592 process.AlignmentTrackSelector.nHitMin2D = 2
1593 process.AlignmentTrackSelector.chi2nMax = 999.
1594 process.AlignmentTrackSelector.applyMultiplicityFilter = False
1595 process.AlignmentTrackSelector.maxMultiplicity = 1
1596 process.AlignmentTrackSelector.applyNHighestPt = False
1597 process.AlignmentTrackSelector.nHighestPt = 1
1598 process.AlignmentTrackSelector.seedOnlyFrom = 0
1599 process.AlignmentTrackSelector.applyIsolationCut = False
1600 process.AlignmentTrackSelector.minHitIsolation = 0.8
1601 process.AlignmentTrackSelector.applyChargeCheck = False
1602 process.AlignmentTrackSelector.minHitChargeStrip = 50.
1603 #process.AlignmentTrackSelector.trackQualities = ["highPurity"]
1604 #process.AlignmentTrackSelector.iterativeTrackingSteps = ["iter1","iter2"]
1605 
1606 ##### For Hits:
1607 process.TrackerTrackHitFilter.useTrajectories= True # this is needed only if you require some selections; but it will work even if you don't ask for them
1608 process.TrackerTrackHitFilter.minimumHits = 8
1609 process.TrackerTrackHitFilter.commands = cms.vstring("keep PXB","keep PXE","keep TIB","keep TID","keep TOB","keep TEC")
1610 process.TrackerTrackHitFilter.detsToIgnore = [
1611  # see https://hypernews.cern.ch/HyperNews/CMS/get/tracker-performance/484.html
1612  # TIB / TID
1613  #369136710, 369136714, 402668822,
1614  # TOB
1615  #436310989, 436310990, 436299301, 436299302,
1616 
1617  # TEC
1618  #470340521, 470063045, 470063046, 470114669, 470114670, 470161093, 470161094, 470164333, 470164334, 470312005, 470312006, 470312009, 470067405, 470067406, 470128813
1619 ]
1620 process.TrackerTrackHitFilter.replaceWithInactiveHits = True
1621 process.TrackerTrackHitFilter.stripAllInvalidHits = False
1622 process.TrackerTrackHitFilter.rejectBadStoNHits = True
1623 process.TrackerTrackHitFilter.StoNcommands = cms.vstring("ALL 12.0")
1624 process.TrackerTrackHitFilter.rejectLowAngleHits= True
1625 process.TrackerTrackHitFilter.TrackAngleCut= 0.17 # in rads, starting from the module surface
1626 process.TrackerTrackHitFilter.usePixelQualityFlag= True
1627 
1628 ##############
1629 ##Trigger sequence
1630 #############
1631 #bit 0 is selecting bunch crossing
1632 #bit 40 MinBias trigger
1633 
1634 
1635 process.triggerSelection=cms.Sequence(process.oneGoodVertexFilter)
1636 
1637 """
1638 
1639 
1640 ######################################################################
1641 ######################################################################
1642 TrackSelectionIsolatedMuonsDef = """
1643 ##### For Tracks:collisions taken in deco mode
1644 # import CalibTracker.Configuration.Common.PoolDBESSource_cfi
1645 # process.trackerBowedSensors = CalibTracker.Configuration.Common.PoolDBESSource_cfi.poolDBESSource.clone(
1646 # connect = cms.string('.oO[dbpath]Oo.'),
1647 
1648 # toGet = cms.VPSet(cms.PSet(record = cms.string('TrackerSurfaceDeformationRcd'),
1649 # tag = cms.string('Deformations')
1650 # )
1651 # )
1652 # )
1653 # process.prefer_trackerBowedSensors = cms.ESPrefer("PoolDBESSource", "trackerBowedSensors")
1654 
1655 
1656 process.AlignmentTrackSelector.applyBasicCuts = True
1657 # Note that pMin is overridden and set to zero in
1658 # the offlineTemplate0T
1659 process.AlignmentTrackSelector.pMin = 3.
1660 process.AlignmentTrackSelector.pMax = 9999.
1661 process.AlignmentTrackSelector.ptMin = 5.
1662 process.AlignmentTrackSelector.ptMax = 9999.
1663 process.AlignmentTrackSelector.etaMin = -3.
1664 process.AlignmentTrackSelector.etaMax = 3.
1665 process.AlignmentTrackSelector.nHitMin = 10
1666 process.AlignmentTrackSelector.nHitMin2D = 2
1667 process.AlignmentTrackSelector.chi2nMax = 999.
1668 process.AlignmentTrackSelector.applyMultiplicityFilter = False
1669 process.AlignmentTrackSelector.maxMultiplicity = 1
1670 process.AlignmentTrackSelector.applyNHighestPt = False
1671 process.AlignmentTrackSelector.nHighestPt = 1
1672 process.AlignmentTrackSelector.seedOnlyFrom = 0
1673 process.AlignmentTrackSelector.applyIsolationCut = False
1674 process.AlignmentTrackSelector.minHitIsolation = 0.8
1675 process.AlignmentTrackSelector.applyChargeCheck = False
1676 process.AlignmentTrackSelector.minHitChargeStrip = 30.
1677 #process.AlignmentTrackSelector.trackQualities = ["highPurity"]
1678 #process.AlignmentTrackSelector.iterativeTrackingSteps = ["iter1","iter2"]
1679 
1680 ##### For Hits:
1681 process.TrackerTrackHitFilter.useTrajectories= True # this is needed only if you require some selections; but it will work even if you don't ask for them
1682 process.TrackerTrackHitFilter.minimumHits = 8
1683 process.TrackerTrackHitFilter.commands = cms.vstring("keep PXB","keep PXE","keep TIB","keep TID","keep TOB","keep TEC")
1684 process.TrackerTrackHitFilter.detsToIgnore = [
1685  # see https://hypernews.cern.ch/HyperNews/CMS/get/tracker-performance/484.html
1686  # TIB / TID
1687  #369136710, 369136714, 402668822,
1688  # TOB
1689  #436310989, 436310990, 436299301, 436299302,
1690  # TEC
1691  #470340521, 470063045, 470063046, 470114669, 470114670, 470161093, 470161094, 470164333, 470164334, 470312005, 470312006, 470312009, 470067405, 470067406, 470128813
1692 ]
1693 process.TrackerTrackHitFilter.replaceWithInactiveHits = True
1694 process.TrackerTrackHitFilter.stripAllInvalidHits = False
1695 process.TrackerTrackHitFilter.rejectBadStoNHits = True
1696 process.TrackerTrackHitFilter.StoNcommands = cms.vstring("ALL 12.0")
1697 process.TrackerTrackHitFilter.rejectLowAngleHits= True
1698 process.TrackerTrackHitFilter.TrackAngleCut= 0.17 # in rads, starting from the module surface
1699 process.TrackerTrackHitFilter.usePixelQualityFlag= True
1700 
1701 ##############
1702 ##Trigger sequence
1703 #############
1704 #bit 0 is selecting bunch crossing
1705 #bit xy for muons trigger
1706 
1707 
1708 #process.triggerSelection=cms.Sequence(process.bptxAnd)
1709 
1710 """