6 import FWCore.ParameterSet.Config as cms
8 process = cms.Process("OfflineValidator")
10 process.load("Alignment.OfflineValidation..oO[dataset]Oo._cff")
12 process.options = cms.untracked.PSet(
13 wantSummary = cms.untracked.bool(False),
14 Rethrow = cms.untracked.vstring("ProductNotFound"), # make this exception fatal
15 fileMode = cms.untracked.string('NOMERGE') # no ordering needed, but calls endRun/beginRun etc. at file boundaries
19 ## Maximum number of Events
21 process.maxEvents = cms.untracked.PSet(
22 input = cms.untracked.int32(.oO[nEvents]Oo.)
26 ## Messages & Convenience
28 process.load("FWCore.MessageLogger.MessageLogger_cfi")
29 process.MessageLogger.cerr = cms.untracked.PSet(placeholder = cms.untracked.bool(True))
30 process.MessageLogger.cout = cms.untracked.PSet(INFO = cms.untracked.PSet(
31 reportEvery = cms.untracked.int32(1000) # every 1000th only
32 # limit = cms.untracked.int32(10) # or limit to 10 printouts...
34 process.MessageLogger.statistics.append('cout')
36 #############################################################
37 ##select trigger bits 40 OR 41
38 ##AND NOT (36 OR 37 OR 38 OR 39)
39 ##trigger bit 0 is selecting crossing bunches (not in MC)
40 ##########################################################
41 process.load('L1TriggerConfig.L1GtConfigProducers.L1GtTriggerMaskTechTrigConfig_cff')
42 process.load('HLTrigger/HLTfilters/hltLevel1GTSeed_cfi')
45 process.bptxAnd = process.hltLevel1GTSeed.clone(L1TechTriggerSeeding = cms.bool(True), L1SeedsLogicalExpression = cms.string('0'))
47 process.bit40 = process.hltLevel1GTSeed.clone(L1TechTriggerSeeding = cms.bool(True), L1SeedsLogicalExpression = cms.string('(40 OR 41) AND NOT (36 OR 37 OR 38 OR 39) AND NOT ((42 AND NOT 43) OR (43 AND NOT 42))'))
50 process.load('HLTrigger.special.hltPhysicsDeclared_cfi')
51 process.hltPhysicsDeclared.L1GtReadoutRecordTag = 'gtDigis'
54 #############################################################
55 ##select only high purity tracks
56 ##has to run first as necessary information
57 ##is only available in initial track selection
58 ##(Quality information is thrown away by the tracker refitters)
59 ##########################################################
60 import Alignment.CommonAlignmentProducer.AlignmentTrackSelector_cfi
61 process.HighPuritySelector = Alignment.CommonAlignmentProducer.AlignmentTrackSelector_cfi.AlignmentTrackSelector.clone(
62 applyBasicCuts = True,
64 src = '.oO[TrackCollection]Oo.',
65 trackQualities = ["highPurity"]
68 ###############################################################
69 ## Quality filters on the event (REAL DATA - FIRST COLLISIONS DEC09 ONLY!)
70 ## see https://twiki.cern.ch/twiki/bin/viewauth/CMS/TRKPromptFeedBack#Event_and_track_selection_recipe
71 ##NOT in PATH yet, to be commented in, if necessay
73 #########################################################
74 process.oneGoodVertexFilter = cms.EDFilter("VertexSelector",
75 src = cms.InputTag("offlinePrimaryVertices"),
76 cut = cms.string("!isFake && ndof > 4 && abs(z) <= 15 && position.Rho <= 2"), # tracksSize() > 3 for the older cut
77 filter = cms.bool(True), # otherwise it won't filter the events, just produce an empty vertex collection.
81 process.noScraping= cms.EDFilter("FilterOutScraping",
82 src=cms.InputTag("ALCARECOTkAlMinBias"),
83 applyfilter = cms.untracked.bool(True),
84 debugOn = cms.untracked.bool(False), ## Or 'True' to get some per-event info
85 numtrack = cms.untracked.uint32(10),
86 thresh = cms.untracked.double(0.25)
88 ####################################
95 # TrackerTrackHitFilter takes as input the tracks/trajectories coming out from TrackRefitter1
96 process.load("RecoTracker.FinalTrackSelectors.TrackerTrackHitFilter_cff")
97 process.TrackerTrackHitFilter.src = 'TrackRefitter1'
99 #-- Alignment Track Selection
100 process.load("Alignment.CommonAlignmentProducer.AlignmentTrackSelector_cfi")
101 process.AlignmentTrackSelector.src = 'HitFilteredTracks'
102 process.AlignmentTrackSelector.filter = True
104 .oO[TrackSelectionTemplate]Oo.
106 #now we give the TrackCandidate coming out of the TrackerTrackHitFilter to the track producer
107 import RecoTracker.TrackProducer.CTFFinalFitWithMaterial_cff
108 process.HitFilteredTracks = RecoTracker.TrackProducer.CTFFinalFitWithMaterial_cff.ctfWithMaterialTracks.clone(
109 src = 'TrackerTrackHitFilter',
110 NavigationSchool = "",
112 ### TrajectoryInEvent = True,
113 TTRHBuilder = "WithAngleAndTemplate"
117 ## Load and Configure TrackRefitter1
120 process.load("RecoTracker.TrackProducer.TrackRefitters_cff")
123 # parameters for TrackRefitter
124 #process.load("RecoTracker.TrackProducer.RefitterWithMaterial_cff")
125 import RecoTracker.TrackProducer.TrackRefitters_cff
126 process.TrackRefitter1 = process.TrackRefitter.clone(
127 src = 'HighPuritySelector',
128 TrajectoryInEvent = True,
129 TTRHBuilder = "WithAngleAndTemplate",
130 NavigationSchool = ""
132 process.TrackRefitter2 = process.TrackRefitter1.clone(
133 # src = 'HitFilteredTracks')
134 src = 'AlignmentTrackSelector'
141 process.load("RecoVertex.BeamSpotProducer.BeamSpot_cff")
144 ## GlobalTag Conditions (if needed)
146 process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
147 process.GlobalTag.globaltag = ".oO[GlobalTag]Oo."
150 .oO[LorentzAngleTemplate]Oo.
155 process.load("Configuration.StandardSequences.Geometry_cff")
160 process.load("Configuration/StandardSequences/MagneticField_38T_cff")
166 ## to apply misalignments
167 #TrackerDigiGeometryESModule.applyAlignment = True
170 ## Load and Configure OfflineValidation and Output File
172 process.load("Alignment.OfflineValidation.TrackerOfflineValidation_.oO[offlineValidationMode]Oo._cff")
173 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..Tracks = 'TrackRefitter2'
174 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..trajectoryInput = 'TrackRefitter2'
175 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..moduleLevelHistsTransient = .oO[offlineModuleLevelHistsTransient]Oo.
176 .oO[offlineValidationFileOutput]Oo.
181 process.p = cms.Path(
182 process.triggerSelection*
183 process.offlineBeamSpot*process.HighPuritySelector*process.TrackRefitter1*process.TrackerTrackHitFilter*process.HitFilteredTracks
184 *process.AlignmentTrackSelector*process.TrackRefitter2*process.seqTrackerOfflineValidation.oO[offlineValidationMode]Oo.)
188 offlineStandaloneFileOutputTemplate =
"""
189 process.TFileService.fileName = '.oO[outputFile]Oo.'
192 offlineDqmFileOutputTemplate =
"""
193 process.TrackerOfflineValidationSummary.oO[offlineValidationMode]Oo..removeModuleLevelHists = .oO[offlineModuleLevelHistsTransient]Oo.
194 process.DqmSaverTkAl.workflow = '.oO[workflow]Oo.'
195 process.DqmSaverTkAl.dirName = '.oO[workdir]Oo./.'
196 process.DqmSaverTkAl.forceRunNumber = .oO[firstRunNumber]Oo.
205 LorentzAngleTemplate =
"#use lorentz angle from global tag"
207 TrackSelectionTemplate =
"""
208 #####default for MC tracks with now further corrections etc.
210 process.AlignmentTrackSelector.applyBasicCuts = True
211 # Note that pMin is overridden and set to zero in
212 # the offlineTemplate0T
213 process.AlignmentTrackSelector.pMin = 3
214 process.AlignmentTrackSelector.pMax = 9999.
215 process.AlignmentTrackSelector.ptMin = 0.65
216 process.AlignmentTrackSelector.ptMax = 9999.
217 process.AlignmentTrackSelector.etaMin = -999.
218 process.AlignmentTrackSelector.etaMax = 999.
219 process.AlignmentTrackSelector.nHitMin = 8
220 process.AlignmentTrackSelector.nHitMin2D = 2
221 process.AlignmentTrackSelector.chi2nMax = 999.
222 process.AlignmentTrackSelector.applyMultiplicityFilter = False
223 process.AlignmentTrackSelector.maxMultiplicity = 1
224 process.AlignmentTrackSelector.applyNHighestPt = False
225 process.AlignmentTrackSelector.nHighestPt = 1
226 process.AlignmentTrackSelector.seedOnlyFrom = 0
227 process.AlignmentTrackSelector.applyIsolationCut = False
228 process.AlignmentTrackSelector.minHitIsolation = 0.8
229 process.AlignmentTrackSelector.applyChargeCheck = False
230 process.AlignmentTrackSelector.minHitChargeStrip = 50.
231 #process.AlignmentTrackSelector.trackQualities = ["highPurity"]
232 #process.AlignmentTrackSelector.iterativeTrackingSteps = ["iter1","iter2"]
235 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
236 process.TrackerTrackHitFilter.minimumHits = 8
237 process.TrackerTrackHitFilter.commands = cms.vstring("keep PXB","keep PXE","keep TIB","keep TID","keep TOB","keep TEC")
238 process.TrackerTrackHitFilter.detsToIgnore = [
239 # see https://hypernews.cern.ch/HyperNews/CMS/get/tracker-performance/484.html
241 #369136710, 369136714, 402668822,
243 #436310989, 436310990, 436299301, 436299302,
245 #470340521, 470063045, 470063046, 470114669, 470114670, 470161093, 470161094, 470164333, 470164334, 470312005, 470312006, 470312009, 470067405, 470067406, 470128813
247 process.TrackerTrackHitFilter.replaceWithInactiveHits = True
248 process.TrackerTrackHitFilter.stripAllInvalidHits = False
249 process.TrackerTrackHitFilter.rejectBadStoNHits = True
250 process.TrackerTrackHitFilter.StoNcommands = cms.vstring("ALL 12.0")
251 process.TrackerTrackHitFilter.rejectLowAngleHits= True
252 process.TrackerTrackHitFilter.TrackAngleCut= 0.17 # in rads, starting from the module surface
253 process.TrackerTrackHitFilter.usePixelQualityFlag= True
258 #for MC only trigger bit 40 is simulated
259 #no triger on bunch crossing bit 0
262 process.triggerSelection=cms.Sequence(process.bit40)
266 intoNTuplesTemplate=
"""
267 import FWCore.ParameterSet.Config as cms
269 process = cms.Process("ValidationIntoNTuples")
272 process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
273 process.GlobalTag.globaltag = ".oO[GlobalTag]Oo."
275 process.load("Geometry.CMSCommonData.cmsIdealGeometryXML_cfi")
276 process.load("Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi")
277 process.load("Geometry.TrackerGeometryBuilder.trackerGeometry_cfi")
279 #process.load("Alignment.CommonAlignmentProducer.GlobalPosition_Frontier_cff")
280 process.load("CondCore.DBCommon.CondDBSetup_cfi")
282 process.MessageLogger = cms.Service("MessageLogger",
283 destinations = cms.untracked.vstring('detailedInfo',
289 import CalibTracker.Configuration.Common.PoolDBESSource_cfi
290 process.GeomToComp = CalibTracker.Configuration.Common.PoolDBESSource_cfi.poolDBESSource.clone(
291 connect = cms.string('.oO[dbpath]Oo.'),
293 toGet = cms.VPSet(cms.PSet(
294 record = cms.string('TrackerAlignmentRcd'),
295 tag = cms.string('.oO[tag]Oo.')
299 process.es_prefer_geom=cms.ESPrefer("PoolDBESSource","GeomToComp")
301 from CondCore.DBCommon.CondDBSetup_cfi import *
303 process.ZeroAPE = cms.ESSource("PoolDBESSource",CondDBSetup,
304 connect = cms.string('frontier://FrontierProd/CMS_COND_31X_FROM21X'),
305 timetype = cms.string("runnumber"),
308 record = cms.string('TrackerAlignmentErrorRcd'),
309 tag = cms.string('TrackerIdealGeometryErrors210_mc')
312 process.es_prefer_ZeroAPE = cms.ESPrefer("PoolDBESSource", "ZeroAPE")
315 process.source = cms.Source("EmptySource")
317 process.maxEvents = cms.untracked.PSet(
318 input = cms.untracked.int32(1)
320 process.dump = cms.EDAnalyzer("TrackerGeometryIntoNtuples",
321 outputFile = cms.untracked.string('.oO[workdir]Oo./.oO[alignmentName]Oo.ROOTGeometry.root'),
322 outputTreename = cms.untracked.string('alignTree')
325 process.p = cms.Path(process.dump)
329 import FWCore.ParameterSet.Config as cms
331 process = cms.Process("validation")
334 process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
335 process.GlobalTag.globaltag = ".oO[GlobalTag]Oo."
336 process.load("Geometry.CMSCommonData.cmsIdealGeometryXML_cff")
338 process.load("Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi")
340 process.load("Geometry.TrackerGeometryBuilder.trackerGeometry_cfi")
342 #process.load("Alignment.CommonAlignmentProducer.GlobalPosition_Frontier_cff")
343 # the input .GlobalPosition_Frontier_cff is providing the frontier://FrontierProd/CMS_COND_31X_ALIGNMENT in the release which does not provide the ideal geometry
344 #process.GlobalPosition.connect = 'frontier://FrontierProd/CMS_COND_31X_FROM21X'
346 process.load("CondCore.DBCommon.CondDBSetup_cfi")
348 process.MessageLogger = cms.Service("MessageLogger",
349 destinations = cms.untracked.vstring('detailedInfo',
353 process.source = cms.Source("EmptySource")
355 process.maxEvents = cms.untracked.PSet(
356 input = cms.untracked.int32(1)
359 # configuration of the Tracker Geometry Comparison Tool
360 # Tracker Geometry Comparison
361 process.load("Alignment.OfflineValidation.TrackerGeometryCompare_cfi")
362 # the input "IDEAL" is special indicating to use the ideal geometry of the release
364 process.TrackerGeometryCompare.inputROOTFile1 = '.oO[referenceGeometry]Oo.'
365 process.TrackerGeometryCompare.inputROOTFile2 = '.oO[comparedGeometry]Oo.'
366 process.TrackerGeometryCompare.outputFile = ".oO[workdir]Oo./.oO[name]Oo..Comparison_common.oO[common]Oo..root"
367 process.TrackerGeometryCompare.levels = [ .oO[levels]Oo. ]
370 ##replace TrackerGeometryCompare.writeToDB = .oO[dbOutput]Oo.
371 ##removed: dbOutputService
373 process.p = cms.Path(process.TrackerGeometryCompare)
376 dbOutputTemplate=
"""
377 //_________________________ db Output ____________________________
378 # setup for writing out to DB
379 include "CondCore/DBCommon/data/CondDBSetup.cfi"
380 # include "CondCore/DBCommon/data/CondDBCommon.cfi"
382 service = PoolDBOutputService {
385 { string record = "TrackerAlignmentRcd" string tag = ".oO[tag]Oo." },
386 { string record = "TrackerAlignmentErrorRcd" string tag = ".oO[errortag]Oo." }
388 string connect = "sqlite_file:.oO[workdir]Oo./.oO[name]Oo.Common.oO[common]Oo..db"
389 # untracked string catalog = "file:alignments.xml"
390 untracked string timetype = "runnumber"
395 #from CondCore.DBCommon.CondDBSetup_cfi import *
396 from CalibTracker.Configuration.Common.PoolDBESSource_cfi import poolDBESSource
397 ##include private db object
399 import CalibTracker.Configuration.Common.PoolDBESSource_cfi
400 process.trackerAlignment = CalibTracker.Configuration.Common.PoolDBESSource_cfi.poolDBESSource.clone(
401 connect = cms.string('.oO[dbpath]Oo.'),
402 timetype = cms.string("runnumber"),
403 toGet = cms.VPSet(cms.PSet(record = cms.string('TrackerAlignmentRcd'),
404 tag = cms.string('.oO[tag]Oo.')
407 process.es_prefer_trackerAlignment = cms.ESPrefer("PoolDBESSource", "trackerAlignment")
412 from CondCore.DBCommon.CondDBSetup_cfi import *
413 process.APE = poolDBESSource.clone(
414 connect = cms.string('.oO[errordbpath]Oo.'),
415 timetype = cms.string("runnumber"),
416 toGet = cms.VPSet(cms.PSet(record = cms.string('TrackerAlignmentErrorRcd'),
417 tag = cms.string('.oO[errortag]Oo.')
420 process.es_prefer_APE = cms.ESPrefer("PoolDBESSource", "APE")
430 export STAGE_SVCCLASS=cmscafuser
431 source /afs/cern.ch/cms/sw/cmsset_default.sh
432 cd .oO[CMSSW_BASE]Oo./src
433 eval `scramv1 ru -sh`
434 rfmkdir -p .oO[workdir]Oo.
435 rfmkdir -p .oO[datadir]Oo.
437 rm -f .oO[workdir]Oo./*
445 echo "List of files in $(pwd):"
452 rfmkdir -p .oO[logdir]Oo.
453 gzip LOGFILE_*_.oO[name]Oo..log
454 find .oO[workdir]Oo. -maxdepth 1 -name "LOGFILE*.oO[alignmentName]Oo.*" -print | xargs -I {} bash -c "rfcp {} .oO[logdir]Oo."
455 rfmkdir -p .oO[datadir]Oo.
456 find .oO[workdir]Oo. -maxdepth 1 -name "*.oO[alignmentName]Oo.*.root" -print | xargs -I {} bash -c "rfcp {} .oO[datadir]Oo."
458 rm -rf .oO[workdir]Oo.
465 export STAGE_SVCCLASS=cmscafuser
466 source /afs/cern.ch/cms/sw/cmsset_default.sh
467 cd .oO[CMSSW_BASE]Oo./src
468 eval `scramv1 ru -sh`
469 rfmkdir -p .oO[workdir]Oo.
474 .oO[CompareAllignments]Oo.
476 find ./ -maxdepth 1 -name "*_result.root" -print | xargs -I {} bash -c "rfcp {} .oO[datadir]Oo."
478 .oO[RunExtendedOfflineValidation]Oo.
480 #zip stdout and stderr from the farm jobs
481 gzip .oO[logdir]Oo./*.stderr
482 gzip .oO[logdir]Oo./*.stdout
486 compareAlignmentsExecution=
"""
487 #merge for .oO[validationId]Oo.
488 root -q -b '.oO[CMSSW_BASE]Oo./src/Alignment/OfflineValidation/scripts/compareAlignments.cc+(\".oO[compareStrings]Oo.\")'
489 mv result.root .oO[validationId]Oo._result.root
492 extendedVaidationExecution=
"""
493 #run extended offline validation scripts
494 rfmkdir -p .oO[workdir]Oo./ExtendedOfflineValidation_Images
495 root -x -b -q .oO[extendeValScriptPath]Oo.
496 rfmkdir -p .oO[datadir]Oo./ExtendedOfflineValidation_Images
497 find .oO[workdir]Oo./ExtendedOfflineValidation_Images -maxdepth 1 -name \"*ps\" -print | xargs -I {} bash -c \"rfcp {} .oO[datadir]Oo./ExtendedOfflineValidation_Images\"
500 extendedVaidationTemplate=
"""
501 void TkAlExtendedOfflineValidation()
503 // load framework lite just to find the CMSSW libs...
504 gSystem->Load("libFWCoreFWLite");
505 AutoLibraryLoader::enable();
507 gROOT->ProcessLine(".L .oO[CMSSW_BASE]Oo./src/Alignment/OfflineValidation/macros/PlotAlignmentValidation.C++");
509 .oO[extendedInstantiation]Oo.
510 gROOT->ProcessLine(".mkdir -p .oO[workdir]Oo./ExtendedOfflineValidation_Images/");
511 p.setOutputDir(".oO[workdir]Oo./ExtendedOfflineValidation_Images");
512 p.setTreeBaseDir(".oO[OfflineTreeBaseDir]Oo.");
513 p.plotDMR(".oO[DMRMethod]Oo.",.oO[DMRMinimum]Oo.);
517 mcValidateTemplate=
"""
518 import FWCore.ParameterSet.Config as cms
520 process = cms.Process("TkVal")
521 process.load("FWCore.MessageService.MessageLogger_cfi")
522 process.MessageLogger = cms.Service("MessageLogger",
523 destinations = cms.untracked.vstring('LOGFILE_McValidate_.oO[name]Oo.',
527 ### standard includes
528 process.load('Configuration/StandardSequences/GeometryPilot2_cff')
529 process.load("Configuration.StandardSequences.RawToDigi_cff")
530 process.load("Configuration.EventContent.EventContent_cff")
531 process.load("Configuration.StandardSequences.Reconstruction_cff")
532 process.load("Configuration.StandardSequences.MagneticField_cff")
533 process.load("SimGeneral.MixingModule.mixNoPU_cfi")
536 process.load("Alignment.OfflineValidation.GlobalTag_cff")
537 process.GlobalTag.globaltag = '.oO[GlobalTag]Oo.'
539 import CalibTracker.Configuration.Common.PoolDBESSource_cfi
543 ### validation-specific includes
544 process.load("SimTracker.TrackAssociation.TrackAssociatorByHits_cfi")
545 process.load("Validation.RecoTrack.cuts_cff")
546 process.load("Validation.RecoTrack.MultiTrackValidator_cff")
547 process.load("SimGeneral.TrackingAnalysis.trackingParticles_cfi")
549 ### configuration MultiTrackValidator ###
550 process.multiTrackValidator.outputFile = '.oO[outputFile]Oo.'
552 process.multiTrackValidator.associators = ['TrackAssociatorByHits']
553 process.multiTrackValidator.UseAssociators = cms.bool(True)
554 process.multiTrackValidator.label = ['generalTracks']
556 from Alignment.OfflineValidation..oO[RelValSample]Oo._cff import readFiles
557 from Alignment.OfflineValidation..oO[RelValSample]Oo._cff import secFiles
558 source = cms.Source ("PoolSource",
559 fileNames = readFiles,
560 secondaryFileNames = secFiles,
561 inputCommands = cms.untracked.vstring('keep *', 'drop *_MEtoEDMConverter_*_*') # hack to get rid of the memory consumption problem in 2_2_X and beond
564 process.maxEvents = cms.untracked.PSet(
565 input = cms.untracked.int32(.oO[nEvents]Oo.)
568 process.options = cms.untracked.PSet(
569 wantSummary = cms.untracked.bool(False),
570 Rethrow = cms.untracked.vstring("ProductNotFound"), # make this exception fatal
571 fileMode = cms.untracked.string('NOMERGE') # no ordering needed, but calls endRun/beginRun etc. at file boundaries
574 process.source = source
576 process.re_tracking_and_TP = cms.Sequence(process.mix*process.trackingParticles*
577 process.siPixelRecHits*process.siStripMatchedRecHits*
579 process.cutsRecoTracks*
580 process.multiTrackValidator
583 process.re_tracking = cms.Sequence(process.siPixelRecHits*process.siStripMatchedRecHits*
585 process.cutsRecoTracks*
586 process.multiTrackValidator
589 ### final path and endPath
590 process.p = cms.Path(process.re_tracking)
593 TrackSplittingTemplate=
"""
594 import FWCore.ParameterSet.Config as cms
596 process = cms.Process("splitter")
601 process.load("FWCore.MessageLogger.MessageLogger_cfi")
602 MessageLogger = cms.Service("MessageLogger",
603 destinations = cms.untracked.vstring('LOGFILE_TrackSplitting_.oO[name]Oo.',
606 ## report only every 100th record
607 process.MessageLogger.cerr.FwkReport.reportEvery = 100
609 process.load('Configuration.StandardSequences.Services_cff')
610 process.load('Configuration.StandardSequences.Geometry_cff')
612 # including global tag
613 process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cfi")
615 #process.GlobalTag.connect = "frontier://FrontierProd/CMS_COND_21X_GLOBALTAG"
616 process.GlobalTag.connect="frontier://FrontierProd/CMS_COND_31X_GLOBALTAG"
617 process.GlobalTag.globaltag = ".oO[GlobalTag]Oo."
620 ###########################################
621 ##necessary fix for the moment to avoid
622 ##Assymmetric forward layers in TrackerException going through path p
623 ##---- ScheduleExecutionFailure END
624 ##an exception occurred during current event processing
625 ##cms::Exception caught in EventProcessor and rethrown
626 ##---- EventProcessorFailure END
627 ############################################
628 #import CalibTracker.Configuration.Common.PoolDBESSource_cfi
629 from CondCore.DBCommon.CondDBSetup_cfi import *
630 #load the Global Position Rcd
631 process.globalPosition = cms.ESSource("PoolDBESSource", CondDBSetup,
632 toGet = cms.VPSet(cms.PSet(
633 record =cms.string('GlobalPositionRcd'),
634 tag= cms.string('IdealGeometry')
636 connect = cms.string('frontier://FrontierProd/CMS_COND_31X_FROM21X')
638 process.es_prefer_GPRcd = cms.ESPrefer("PoolDBESSource","globalPosition")
639 ##########################################
642 # track selectors and refitting
643 process.load("Alignment.CommonAlignmentProducer.AlignmentTrackSelector_cfi")
644 process.load("RecoVertex.BeamSpotProducer.BeamSpot_cff")
645 process.load("RecoTracker.TrackProducer.TrackRefitters_cff")
648 process.load("Alignment.OfflineValidation..oO[superPointingDataset]Oo._cff")
650 ## for craft SP skim v5
651 process.source.inputCommands = cms.untracked.vstring("keep *","drop *_*_*_FU","drop *_*_*_HLT","drop *_MEtoEDMConverter_*_*","drop *_lumiProducer_*_REPACKER")
652 process.source.dropDescendantsOfDroppedBranches = cms.untracked.bool( False )
655 process.maxEvents = cms.untracked.PSet(
656 input = cms.untracked.int32(.oO[nEvents]Oo.)
661 process.load("Configuration.StandardSequences.MagneticField_38T_cff")
664 from CondCore.DBCommon.CondDBSetup_cfi import *
667 ## tracker alignment for craft...............................................................
672 ## track hit filter.............................................................
675 import RecoTracker.TrackProducer.TrackRefitters_cff
676 process.TrackRefitter1 = RecoTracker.TrackProducer.TrackRefitterP5_cfi.TrackRefitterP5.clone(
677 src = '.oO[TrackCollection]Oo.',
678 TrajectoryInEvent = True,
679 TTRHBuilder = "WithTrackAngle",
680 NavigationSchool = ""
683 process.FittingSmootherRKP5.EstimateCut = -1
685 # module configuration
686 # alignment track selector
687 process.AlignmentTrackSelector.src = "TrackRefitter1"
688 process.AlignmentTrackSelector.filter = True
689 process.AlignmentTrackSelector.applyBasicCuts = True
690 process.AlignmentTrackSelector.ptMin = 0.
691 process.AlignmentTrackSelector.pMin = 4.
692 process.AlignmentTrackSelector.ptMax = 9999.
693 process.AlignmentTrackSelector.pMax = 9999.
694 process.AlignmentTrackSelector.etaMin = -9999.
695 process.AlignmentTrackSelector.etaMax = 9999.
696 process.AlignmentTrackSelector.nHitMin = 10
697 process.AlignmentTrackSelector.nHitMin2D = 2
698 process.AlignmentTrackSelector.minHitsPerSubDet.inBPIX=4 ##skip tracks not passing the pixel
699 process.AlignmentTrackSelector.chi2nMax = 9999.
700 process.AlignmentTrackSelector.applyMultiplicityFilter = True
701 process.AlignmentTrackSelector.maxMultiplicity = 1
702 process.AlignmentTrackSelector.applyNHighestPt = False
703 process.AlignmentTrackSelector.nHighestPt = 1
704 process.AlignmentTrackSelector.seedOnlyFrom = 0
705 process.AlignmentTrackSelector.applyIsolationCut = False
706 process.AlignmentTrackSelector.minHitIsolation = 0.8
707 process.AlignmentTrackSelector.applyChargeCheck = False
708 process.AlignmentTrackSelector.minHitChargeStrip = 50.
709 process.AlignmentTrackSelector.minHitsPerSubDet.inBPIX = 2
710 #process.AlignmentTrackSelector.trackQualities = ["highPurity"]
711 #process.AlignmentTrackSelector.iterativeTrackingSteps = ["iter1","iter2"]
712 process.KFFittingSmootherWithOutliersRejectionAndRK.EstimateCut=30.0
713 process.KFFittingSmootherWithOutliersRejectionAndRK.MinNumberOfHits=4
714 #process.FittingSmootherRKP5.EstimateCut = 20.0
715 #process.FittingSmootherRKP5.MinNumberOfHits = 4
717 # configuration of the track spitting module
718 # new cuts allow for cutting on the impact parameter of the original track
719 process.load("RecoTracker.FinalTrackSelectors.cosmicTrackSplitter_cfi")
720 process.cosmicTrackSplitter.tracks = 'AlignmentTrackSelector'
721 process.cosmicTrackSplitter.tjTkAssociationMapTag = 'TrackRefitter1'
722 #process.cosmicTrackSplitter.excludePixelHits = False
724 #---------------------------------------------------------------------
725 # the output of the track hit filter are track candidates
726 # give them to the TrackProducer
727 process.load("RecoTracker.TrackProducer.CTFFinalFitWithMaterialP5_cff")
728 process.HitFilteredTracks = RecoTracker.TrackProducer.CTFFinalFitWithMaterialP5_cff.ctfWithMaterialTracksCosmics.clone(
729 src = 'cosmicTrackSplitter',
730 TrajectoryInEvent = True,
731 TTRHBuilder = "WithTrackAngle"
734 process.TrackRefitter2 = process.TrackRefitter1.clone(
735 src = 'HitFilteredTracks'
738 ### Now adding the construction of global Muons
740 process.load("Configuration.StandardSequences.ReconstructionCosmics_cff")
742 process.cosmicValidation = cms.EDFilter("CosmicSplitterValidation",
743 ifSplitMuons = cms.bool(False),
744 ifTrackMCTruth = cms.bool(False),
745 checkIfGolden = cms.bool(False),
746 splitTracks = cms.InputTag("TrackRefitter2","","splitter"),
747 splitGlobalMuons = cms.InputTag("muons","","splitter"),
748 originalTracks = cms.InputTag("TrackRefitter1","","splitter"),
749 originalGlobalMuons = cms.InputTag("muons","","Rec")
752 process.TFileService = cms.Service("TFileService",
753 fileName = cms.string('.oO[outputFile]Oo.')
756 process.p = cms.Path(process.offlineBeamSpot*process.TrackRefitter1*process.AlignmentTrackSelector*process.cosmicTrackSplitter*process.HitFilteredTracks*process.TrackRefitter2*process.cosmicValidation)
765 if not templateName
in globals().
keys():
766 raise StandardError,
"unkown template to replace %s"%templateName
767 if not alternateTemplateName
in globals().
keys():
768 raise StandardError,
"unkown template to replace %s"%alternateTemplateName
769 globals()[ templateName ] = globals()[ alternateTemplateName ]
773 LorentzAngleForDECO=
"""
774 process.stripLorentzAngle = cms.ESSource("PoolDBESSource",
776 DBParameters = cms.PSet(
777 messageLevel = cms.untracked.int32(2),
779 cms.untracked.string('/afs/cern.ch/cms/DB/conddb')
781 connect = cms.string('sqlite_file:/afs/cern.ch/user/b/benhoob/public/LorentzAngle/SiStripLorentzAngle_Deco.db'),
782 toGet = cms.VPSet(cms.PSet(record = cms.string('SiStripLorentzAngleRcd'),
783 tag = cms.string('SiStripLorentzAngle_Deco') ))
786 process.es_prefer_stripLorentzAngle = cms.ESPrefer("PoolDBESSource", "stripLorentzAngle")
793 yResidualsOfflineValidation=
"""
794 import FWCore.ParameterSet.Config as cms
796 process = cms.Process("OfflineValidator")
798 process.load("Alignment.OfflineValidation..oO[dataset]Oo._cff")
800 process.source.inputCommands = cms.untracked.vstring('keep *', 'drop *_MEtoEDMConverter_*_*') # hack to get rid of the memory consumption problem in 2_2_X and beond
801 process.options = cms.untracked.PSet(
802 wantSummary = cms.untracked.bool(False),
803 Rethrow = cms.untracked.vstring("ProductNotFound"), # make this exception fatal
804 fileMode = cms.untracked.string('NOMERGE') # no ordering needed, but calls endRun/beginRun etc. at file boundaries
808 ## Maximum number of Events
810 process.maxEvents = cms.untracked.PSet(
811 input = cms.untracked.int32(.oO[nEvents]Oo.)
815 ## Messages & Convenience
817 process.load("FWCore.MessageLogger.MessageLogger_cfi")
818 process.MessageLogger = cms.Service("MessageLogger",
819 destinations = cms.untracked.vstring('LOGFILE_Offline_.oO[name]Oo.',
823 ## report only every 100th record
824 ##process.MessageLogger.cerr.FwkReport.reportEvery = 100
828 ## Alignment Track Selection
830 process.load("Alignment.CommonAlignmentProducer.AlignmentTrackSelector_cfi")
831 process.AlignmentTrackSelector.src = 'TrackRefitter1'
832 process.AlignmentTrackSelector.filter = True
833 process.AlignmentTrackSelector.applyBasicCuts = True
834 process.AlignmentTrackSelector.pMin = 4.
835 process.AlignmentTrackSelector.pMax = 9999.
836 process.AlignmentTrackSelector.ptMin = 0.
837 process.AlignmentTrackSelector.ptMax = 9999.
838 process.AlignmentTrackSelector.etaMin = -999.
839 process.AlignmentTrackSelector.etaMax = 999.
840 process.AlignmentTrackSelector.nHitMin = 8
841 process.AlignmentTrackSelector.nHitMin2D = 2
842 process.AlignmentTrackSelector.chi2nMax = 999.
843 process.AlignmentTrackSelector.applyMultiplicityFilter = False
844 process.AlignmentTrackSelector.maxMultiplicity = 1
845 process.AlignmentTrackSelector.applyNHighestPt = False
846 process.AlignmentTrackSelector.nHighestPt = 1
847 process.AlignmentTrackSelector.seedOnlyFrom = 0
848 process.AlignmentTrackSelector.applyIsolationCut = False
849 process.AlignmentTrackSelector.minHitIsolation = 0.8
850 process.AlignmentTrackSelector.applyChargeCheck = False
851 process.AlignmentTrackSelector.minHitChargeStrip = 50.
852 #process.AlignmentTrackSelector.trackQualities = ["highPurity"]
853 #process.AlignmentTrackSelector.iterativeTrackingSteps = ["iter1","iter2"]
856 #-- new track hit filter
857 # TrackerTrackHitFilter takes as input the tracks/trajectories coming out from TrackRefitter1
858 process.load("RecoTracker.FinalTrackSelectors.TrackerTrackHitFilter_cff")
859 process.TrackerTrackHitFilter.src = 'TrackRefitter1'
860 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
861 process.TrackerTrackHitFilter.minimumHits = 8
862 process.TrackerTrackHitFilter.commands = cms.vstring("keep PXB","keep PXE","keep TIB","keep TID","keep TOB","keep TEC")
863 process.TrackerTrackHitFilter.detsToIgnore = [
864 # see https://hypernews.cern.ch/HyperNews/CMS/get/tracker-performance/484.html
866 369136710, 369136714, 402668822,
868 436310989, 436310990, 436299301, 436299302,
870 470340521, 470063045, 470063046, 470114669, 470114670, 470161093, 470161094, 470164333, 470164334, 470312005, 470312006, 470312009, 470067405, 470067406, 470128813
872 process.TrackerTrackHitFilter.replaceWithInactiveHits = True
873 process.TrackerTrackHitFilter.stripAllInvalidHits = False
874 process.TrackerTrackHitFilter.rejectBadStoNHits = True
875 process.TrackerTrackHitFilter.StoNcommands = cms.vstring("ALL 14.0")
876 process.TrackerTrackHitFilter.rejectLowAngleHits= True
877 process.TrackerTrackHitFilter.TrackAngleCut= 0.35 # in rads, starting from the module surface
878 process.TrackerTrackHitFilter.usePixelQualityFlag= True
880 #now we give the TrackCandidate coming out of the TrackerTrackHitFilter to the track producer
881 import RecoTracker.TrackProducer.CosmicFinalFitWithMaterialP5_cff
882 process.HitFilteredTracks = RecoTracker.TrackProducer.CosmicFinalFitWithMaterialP5_cff.cosmictrackfinderP5.clone(
883 src = 'TrackerTrackHitFilter'
887 ## Load and Configure TrackRefitter1
890 process.load("RecoTracker.TrackProducer.TrackRefitters_cff")
892 process.TrackRefitter1 = RecoTracker.TrackProducer.TrackRefitterP5_cfi.TrackRefitterP5.clone(
893 src = '.oO[TrackCollection]Oo.',
894 TrajectoryInEvent = True,
895 TTRHBuilder = "WithTrackAngle",
896 NavigationSchool = ""
899 process.TrackRefitter2 = process.TrackRefitter1.clone(
900 src = 'HitFilteredTracks')
906 process.load("RecoVertex.BeamSpotProducer.BeamSpot_cff")
909 ## GlobalTag Conditions (if needed)
911 process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
912 process.GlobalTag.globaltag = ".oO[GlobalTag]Oo."
913 #process.GlobalTag.connect="frontier://FrontierProd/CMS_COND_21X_GLOBALTAG"
914 process.GlobalTag.connect="frontier://FrontierProd/CMS_COND_31X_GLOBALTAG"
916 ## LAYERWISE Lorentz Angle ###################
918 process.SiStripLorentzAngle = cms.ESSource("PoolDBESSource",
920 cms.untracked.string('TBufferBlobStreamingService'),
921 DBParameters = cms.PSet(
922 messageLevel = cms.untracked.int32(2),
924 cms.untracked.string('/afs/cern.ch/cms/DB/conddb')
926 timetype = cms.string('runnumber'),
927 toGet = cms.VPSet(cms.PSet(
928 record = cms.string('SiStripLorentzAngleRcd'),
929 tag = cms.string('SiStripLA_CRAFT_layers')
931 connect = cms.string('sqlite_file:/afs/cern.ch/user/j/jdraeger/public/LA_object/LA_CRAFT_layers.db')
933 process.es_prefer_SiStripLorentzAngle = cms.ESPrefer("PoolDBESSource","SiStripLorentzAngle")
938 process.load("Configuration.StandardSequences.Geometry_cff")
943 process.load("Configuration/StandardSequences/MagneticField_38T_cff")
949 ## to apply misalignments
950 #TrackerDigiGeometryESModule.applyAlignment = True
953 ## Load and Configure OfflineValidation
955 process.load("Alignment.OfflineValidation.TrackerOfflineValidation_.oO[offlineValidationMode]Oo._cff")
956 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..Tracks = 'TrackRefitter2'
957 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..trajectoryInput = 'TrackRefitter2'
958 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..moduleLevelHistsTransient = cms.bool(.oO[offlineModuleLevelHistsTransient]Oo.)
959 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..stripYResiduals = True
960 .oO[offlineValidationFileOutput]Oo.
965 process.p = cms.Path(process.offlineBeamSpot*process.TrackRefitter1*process.TrackerTrackHitFilter*process.HitFilteredTracks
966 *process.TrackRefitter2*process.AlignmentTrackSelector*process.seqTrackerOfflineValidation.oO[offlineValidationMode]Oo.)
971 from CondCore.DBCommon.CondDBSetup_cfi import *
972 process.APE = cms.ESSource("PoolDBESSource",CondDBSetup,
973 connect = cms.string('frontier://FrontierProd/CMS_COND_31X_FROM21X'),
974 timetype = cms.string("runnumber"),
976 cms.PSet(record = cms.string('TrackerAlignmentErrorRcd'),
977 tag = cms.string('TrackerIdealGeometryErrors210_mc')
980 process.es_prefer_APE = cms.ESPrefer("PoolDBESSource", "APE")
983 CosmicsOfflineValidation=
"""
984 import FWCore.ParameterSet.Config as cms
986 process = cms.Process("OfflineValidator")
988 process.load("Alignment.OfflineValidation..oO[dataset]Oo._cff")
990 #process.source.inputCommands = cms.untracked.vstring('keep *', 'drop *_MEtoEDMConverter_*_*') # hack to get rid of the memory consumption problem in 2_2_X and beond
991 process.options = cms.untracked.PSet(
992 wantSummary = cms.untracked.bool(False),
993 Rethrow = cms.untracked.vstring("ProductNotFound"), # make this exception fatal
994 fileMode = cms.untracked.string('NOMERGE') # no ordering needed, but calls endRun/beginRun etc. at file boundaries
998 ## Maximum number of Events
1000 process.maxEvents = cms.untracked.PSet(
1001 input = cms.untracked.int32(.oO[nEvents]Oo.)
1005 ## Messages & Convenience
1007 process.load("FWCore.MessageLogger.MessageLogger_cfi")
1008 process.MessageLogger.cerr = cms.untracked.PSet(placeholder = cms.untracked.bool(True))
1009 process.MessageLogger.cout = cms.untracked.PSet(INFO = cms.untracked.PSet(
1010 reportEvery = cms.untracked.int32(1000) # every 1000th only
1011 # limit = cms.untracked.int32(10) # or limit to 10 printouts...
1013 process.MessageLogger.statistics.append('cout')
1016 #-- Track hit filter
1017 # TrackerTrackHitFilter takes as input the tracks/trajectories coming out from TrackRefitter1
1018 process.load("RecoTracker.FinalTrackSelectors.TrackerTrackHitFilter_cff")
1019 process.TrackerTrackHitFilter.src = 'TrackRefitter1'
1023 #-- Alignment Track Selection
1024 process.load("Alignment.CommonAlignmentProducer.AlignmentTrackSelector_cfi")
1025 process.AlignmentTrackSelector.src = 'HitFilteredTracks'
1026 process.AlignmentTrackSelector.filter = True
1028 .oO[TrackSelectionTemplate]Oo.
1030 #now we give the TrackCandidate coming out of the TrackerTrackHitFilter to the track producer
1031 import RecoTracker.TrackProducer.CTFFinalFitWithMaterialP5_cff
1032 process.HitFilteredTracks = RecoTracker.TrackProducer.CTFFinalFitWithMaterialP5_cff.ctfWithMaterialTracksCosmics.clone(
1033 src = 'TrackerTrackHitFilter',
1034 ### TrajectoryInEvent = True,
1035 NavigationSchool = '',
1036 TTRHBuilder = "WithAngleAndTemplate"
1040 ## Load and Configure TrackRefitter1
1045 process.load("RecoTracker.TrackProducer.TrackRefitters_cff")
1047 process.TrackRefitter1 = process.TrackRefitterP5.clone(
1048 src = 'ALCARECOTkAlCosmicsCTF0T',
1049 TrajectoryInEvent = True,
1050 NavigationSchool = '',
1051 TTRHBuilder = "WithAngleAndTemplate"
1053 process.TrackRefitter2 = process.TrackRefitter1.clone(
1054 src = 'AlignmentTrackSelector',
1062 process.load("RecoVertex.BeamSpotProducer.BeamSpot_cff")
1065 ## GlobalTag Conditions (if needed)
1067 process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
1068 process.GlobalTag.connect = "frontier://FrontierProd/CMS_COND_31X_GLOBALTAG"
1069 process.GlobalTag.globaltag = ".oO[GlobalTag]Oo."
1072 .oO[LorentzAngleTemplate]Oo.
1077 process.load("Configuration.StandardSequences.Geometry_cff")
1082 process.load("Configuration/StandardSequences/MagneticField_38T_cff")
1088 ## to apply misalignments
1089 #TrackerDigiGeometryESModule.applyAlignment = True
1092 ## Load and Configure OfflineValidation
1095 process.load("Alignment.OfflineValidation.TrackerOfflineValidation_.oO[offlineValidationMode]Oo._cff")
1096 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..Tracks = 'TrackRefitter2'
1097 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..trajectoryInput = 'TrackRefitter2'
1098 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..moduleLevelHistsTransient = cms.bool(.oO[offlineModuleLevelHistsTransient]Oo.)
1099 process.TFileService.fileName = '.oO[outputFile]Oo.'
1104 process.p = cms.Path(process.offlineBeamSpot*process.TrackRefitter1*process.TrackerTrackHitFilter*process.HitFilteredTracks
1105 *process.AlignmentTrackSelector*process.TrackRefitter2*process.seqTrackerOfflineValidation.oO[offlineValidationMode]Oo.)
1111 CosmicsAt0TOfflineValidation=
"""
1112 import FWCore.ParameterSet.Config as cms
1114 process = cms.Process("OfflineValidator")
1116 process.load("Alignment.OfflineValidation..oO[dataset]Oo._cff")
1118 #process.source.inputCommands = cms.untracked.vstring('keep *', 'drop *_MEtoEDMConverter_*_*') # hack to get rid of the memory consumption problem in 2_2_X and beond
1119 process.options = cms.untracked.PSet(
1120 wantSummary = cms.untracked.bool(False),
1121 Rethrow = cms.untracked.vstring("ProductNotFound"), # make this exception fatal
1122 fileMode = cms.untracked.string('NOMERGE') # no ordering needed, but calls endRun/beginRun etc. at file boundaries
1126 ## Maximum number of Events
1128 process.maxEvents = cms.untracked.PSet(
1129 input = cms.untracked.int32(.oO[nEvents]Oo.)
1133 ## Messages & Convenience
1135 process.load("FWCore.MessageLogger.MessageLogger_cfi")
1136 process.MessageLogger.cerr = cms.untracked.PSet(placeholder = cms.untracked.bool(True))
1137 process.MessageLogger.cout = cms.untracked.PSet(INFO = cms.untracked.PSet(
1138 reportEvery = cms.untracked.int32(1000) # every 1000th only
1139 # limit = cms.untracked.int32(10) # or limit to 10 printouts...
1141 process.MessageLogger.statistics.append('cout')
1144 #-- Track hit filter
1145 # TrackerTrackHitFilter takes as input the tracks/trajectories coming out from TrackRefitter1
1146 process.load("RecoTracker.FinalTrackSelectors.TrackerTrackHitFilter_cff")
1147 process.TrackerTrackHitFilter.src = 'TrackRefitter1'
1149 #-- Alignment Track Selection
1150 process.load("Alignment.CommonAlignmentProducer.AlignmentTrackSelector_cfi")
1151 process.AlignmentTrackSelector.src = 'HitFilteredTracks'
1152 process.AlignmentTrackSelector.filter = True
1154 .oO[TrackSelectionTemplate]Oo.
1155 # Override the pmin setting since not meaningful with B=0T
1156 process.AlignmentTrackSelector.pMin = 4.
1158 #### momentum constraint for 0T
1159 # First momentum constraint
1160 process.load("RecoTracker.TrackProducer.MomentumConstraintProducer_cff")
1161 import RecoTracker.TrackProducer.MomentumConstraintProducer_cff
1162 process.AliMomConstraint1 = RecoTracker.TrackProducer.MomentumConstraintProducer_cff.MyMomConstraint.clone()
1163 process.AliMomConstraint1.src = '.oO[TrackCollection]Oo.'
1164 process.AliMomConstraint1.fixedMomentum = 5.0
1165 process.AliMomConstraint1.fixedMomentumError = 0.005
1167 # Second momentum constraint
1168 #process.load("RecoTracker.TrackProducer.MomentumConstraintProducer_cff")
1169 #import RecoTracker.TrackProducer.MomentumConstraintProducer_cff
1170 #process.AliMomConstraint2 = RecoTracker.TrackProducer.MomentumConstraintProducer_cff.MyMomConstraint.clone()
1171 #process.AliMomConstraint2.src = 'AlignmentTrackSelector'
1172 #process.AliMomConstraint2.fixedMomentum = 5.0
1173 #process.AliMomConstraint2.fixedMomentumError = 0.005
1177 #now we give the TrackCandidate coming out of the TrackerTrackHitFilter to the track producer
1178 import RecoTracker.TrackProducer.CTFFinalFitWithMaterialP5_cff
1179 process.HitFilteredTracks = RecoTracker.TrackProducer.CTFFinalFitWithMaterialP5_cff.ctfWithMaterialTracksCosmics.clone(
1180 src = 'TrackerTrackHitFilter'
1182 ### TrajectoryInEvent = True,
1183 ### TTRHBuilder = "WithAngleAndTemplate"
1187 ## Load and Configure TrackRefitter1
1190 process.load("RecoTracker.TrackProducer.TrackRefitters_cff")
1193 # parameters for TrackRefitter
1194 #process.load("RecoTracker.TrackProducer.RefitterWithMaterial_cff")
1195 import RecoTracker.TrackProducer.TrackRefitters_cff
1196 process.TrackRefitter1 = process.TrackRefitterP5.clone(
1197 src = '.oO[TrackCollection]Oo.'#'AliMomConstraint1',
1198 TrajectoryInEvent = True,
1199 TTRHBuilder = "WithAngleAndTemplate",
1200 NavigationSchool = "",
1201 constraint = 'momentum', ### SPECIFIC FOR CRUZET
1202 srcConstr='AliMomConstraint1' ### SPECIFIC FOR CRUZET$works only with tag V02-10-02 TrackingTools/PatternTools / or CMSSW >=31X
1205 process.TrackRefitter2 = process.TrackRefitter1.clone(
1206 src = 'AlignmentTrackSelector',
1207 srcConstr='AliMomConstraint1',
1208 constraint = 'momentum' ### SPECIFIC FOR CRUZET
1215 process.load("RecoVertex.BeamSpotProducer.BeamSpot_cff")
1218 ## GlobalTag Conditions (if needed)
1220 process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
1221 process.GlobalTag.globaltag = ".oO[GlobalTag]Oo."
1222 process.GlobalTag.connect="frontier://FrontierProd/CMS_COND_31X_GLOBALTAG"
1224 .oO[LorentzAngleTemplate]Oo.
1229 process.load("Configuration.StandardSequences.Geometry_cff")
1234 #process.load("Configuration/StandardSequences/MagneticField_38T_cff")
1235 process.load("Configuration.StandardSequences.MagneticField_0T_cff") # 0T runs
1241 ## to apply misalignments
1242 #TrackerDigiGeometryESModule.applyAlignment = True
1245 ## Load and Configure OfflineValidation
1247 process.load("Alignment.OfflineValidation.TrackerOfflineValidation_.oO[offlineValidationMode]Oo._cff")
1248 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..Tracks = 'TrackRefitter2'
1249 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..trajectoryInput = 'TrackRefitter2'
1250 process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..moduleLevelHistsTransient = cms.bool(.oO[offlineModuleLevelHistsTransient]Oo.)
1251 process.TFileService.fileName = '.oO[outputFile]Oo.'
1257 process.p = cms.Path(process.offlineBeamSpot*process.AliMomConstraint1*process.TrackRefitter1*process.TrackerTrackHitFilter*process.HitFilteredTracks
1258 *process.AlignmentTrackSelector*process.TrackRefitter2*process.seqTrackerOfflineValidation.oO[offlineValidationMode]Oo.)
1262 TrackSelectionCosmicsData =
"""
1264 process.AlignmentTrackSelector.applyBasicCuts = True
1265 # Note that pMin is overridden and set to zero in
1266 # the offlineTemplate0T
1267 process.AlignmentTrackSelector.pMin = 4.
1268 process.AlignmentTrackSelector.pMax = 9999.
1269 process.AlignmentTrackSelector.ptMin = 0.
1270 process.AlignmentTrackSelector.ptMax = 9999.
1271 process.AlignmentTrackSelector.etaMin = -999.
1272 process.AlignmentTrackSelector.etaMax = 999.
1273 process.AlignmentTrackSelector.nHitMin = 8
1274 process.AlignmentTrackSelector.nHitMin2D = 2
1275 process.AlignmentTrackSelector.chi2nMax = 999.
1276 process.AlignmentTrackSelector.applyMultiplicityFilter = False
1277 process.AlignmentTrackSelector.maxMultiplicity = 1
1278 process.AlignmentTrackSelector.applyNHighestPt = False
1279 process.AlignmentTrackSelector.nHighestPt = 1
1280 process.AlignmentTrackSelector.seedOnlyFrom = 0
1281 process.AlignmentTrackSelector.applyIsolationCut = False
1282 process.AlignmentTrackSelector.minHitIsolation = 0.8
1283 process.AlignmentTrackSelector.applyChargeCheck = False
1284 process.AlignmentTrackSelector.minHitChargeStrip = 50.
1285 #process.AlignmentTrackSelector.trackQualities = ["highPurity"]
1286 #process.AlignmentTrackSelector.iterativeTrackingSteps = ["iter1","iter2"]
1289 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
1290 process.TrackerTrackHitFilter.minimumHits = 8
1291 process.TrackerTrackHitFilter.commands = cms.vstring("keep PXB","keep PXE","keep TIB","keep TID","keep TOB","keep TEC")
1292 process.TrackerTrackHitFilter.detsToIgnore = [
1293 # see https://hypernews.cern.ch/HyperNews/CMS/get/tracker-performance/484.html
1295 #369136710, 369136714, 402668822,
1297 #436310989, 436310990, 436299301, 436299302,
1299 #470340521, 470063045, 470063046, 470114669, 470114670, 470161093, 470161094, 470164333, 470164334, 470312005, 470312006, 470312009, 470067405, 470067406, 470128813
1301 process.TrackerTrackHitFilter.replaceWithInactiveHits = True
1302 process.TrackerTrackHitFilter.stripAllInvalidHits = False
1303 process.TrackerTrackHitFilter.rejectBadStoNHits = True
1304 process.TrackerTrackHitFilter.StoNcommands = cms.vstring("ALL 18.0")
1305 process.TrackerTrackHitFilter.rejectLowAngleHits= True
1306 process.TrackerTrackHitFilter.TrackAngleCut= 0.35 # in rads, starting from the module surface
1307 process.TrackerTrackHitFilter.usePixelQualityFlag= True
1310 TrackSelectionMinBiasData =
"""
1311 ##### For Tracks:collisions taken in deco mode
1313 process.AlignmentTrackSelector.applyBasicCuts = True
1314 # Note that pMin is overridden and set to zero in
1315 # the offlineTemplate0T
1316 process.AlignmentTrackSelector.pMin = 3
1317 process.AlignmentTrackSelector.pMax = 9999.
1318 process.AlignmentTrackSelector.ptMin = 0.65
1319 process.AlignmentTrackSelector.ptMax = 9999.
1320 process.AlignmentTrackSelector.etaMin = -999.
1321 process.AlignmentTrackSelector.etaMax = 999.
1322 process.AlignmentTrackSelector.nHitMin = 8
1323 process.AlignmentTrackSelector.nHitMin2D = 2
1324 process.AlignmentTrackSelector.chi2nMax = 999.
1325 process.AlignmentTrackSelector.applyMultiplicityFilter = False
1326 process.AlignmentTrackSelector.maxMultiplicity = 1
1327 process.AlignmentTrackSelector.applyNHighestPt = False
1328 process.AlignmentTrackSelector.nHighestPt = 1
1329 process.AlignmentTrackSelector.seedOnlyFrom = 0
1330 process.AlignmentTrackSelector.applyIsolationCut = False
1331 process.AlignmentTrackSelector.minHitIsolation = 0.8
1332 process.AlignmentTrackSelector.applyChargeCheck = False
1333 process.AlignmentTrackSelector.minHitChargeStrip = 50.
1334 #process.AlignmentTrackSelector.trackQualities = ["highPurity"]
1335 #process.AlignmentTrackSelector.iterativeTrackingSteps = ["iter1","iter2"]
1338 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
1339 process.TrackerTrackHitFilter.minimumHits = 8
1340 process.TrackerTrackHitFilter.commands = cms.vstring("keep PXB","keep PXE","keep TIB","keep TID","keep TOB","keep TEC")
1341 process.TrackerTrackHitFilter.detsToIgnore = [
1342 # see https://hypernews.cern.ch/HyperNews/CMS/get/tracker-performance/484.html
1344 #369136710, 369136714, 402668822,
1346 #436310989, 436310990, 436299301, 436299302,
1348 #470340521, 470063045, 470063046, 470114669, 470114670, 470161093, 470161094, 470164333, 470164334, 470312005, 470312006, 470312009, 470067405, 470067406, 470128813
1350 process.TrackerTrackHitFilter.replaceWithInactiveHits = True
1351 process.TrackerTrackHitFilter.stripAllInvalidHits = False
1352 process.TrackerTrackHitFilter.rejectBadStoNHits = True
1353 process.TrackerTrackHitFilter.StoNcommands = cms.vstring("ALL 12.0")
1354 process.TrackerTrackHitFilter.rejectLowAngleHits= True
1355 process.TrackerTrackHitFilter.TrackAngleCut= 0.17 # in rads, starting from the module surface
1356 process.TrackerTrackHitFilter.usePixelQualityFlag= True
1361 #bit 0 is selecting bunch crossing
1362 #bit 40 MinBias trigger
1365 process.triggerSelection=cms.Sequence(process.bptxAnd*process.bit40)
def alternateTemplate
Alternate Templates.