File indexing completed on 2024-11-25 02:29:11
0001 import FWCore.ParameterSet.Config as cms
0002 from FWCore.ParameterSet.VarParsing import VarParsing
0003
0004
0005
0006
0007 options = VarParsing()
0008
0009 options.register('conditionGT',
0010 "auto:run2_data",
0011 VarParsing.multiplicity.singleton,
0012 VarParsing.varType.string,
0013 "condition global tag for the job (\"auto:run2_data\" is default)")
0014
0015 options.register('conditionOverwrite',
0016 "",
0017 VarParsing.multiplicity.singleton,
0018 VarParsing.varType.string,
0019 "configuration to overwrite the condition into the GT (\"\" is default)")
0020
0021 options.register('inputCollection',
0022 "ALCARECOSiStripCalMinBias",
0023 VarParsing.multiplicity.singleton,
0024 VarParsing.varType.string,
0025 "collections to be used for input (\"ALCARECOSiStripCalMinBias\" is default, use 'generalTracks' for prompt reco and 'ctfWithMaterialTracksP5' for cosmic reco)")
0026
0027 options.register('outputFile',
0028 "calibTreeTest.root",
0029 VarParsing.multiplicity.singleton,
0030 VarParsing.varType.string,
0031 "name for the output root file (\"calibTreeTest.root\" is default)")
0032
0033 options.register('inputFiles',
0034 '/store/data/Run2018D/Cosmics/ALCARECO/SiStripCalCosmics-UL18-v1/40000/0346DCE4-0C70-1344-A7EB-D488B627208C.root',
0035 VarParsing.multiplicity.list,
0036 VarParsing.varType.string,
0037 "file to process")
0038
0039 options.register('maxEvents',
0040 -1,
0041 VarParsing.multiplicity.singleton,
0042 VarParsing.varType.int,
0043 "number of events to process (\"-1\" for all)")
0044
0045 options.register('runNumber',
0046 -1,
0047 VarParsing.multiplicity.singleton,
0048 VarParsing.varType.int,
0049 "run number to process (\"-1\" for all)")
0050
0051 options.register('cosmicTriggers', '',
0052 VarParsing.multiplicity.list,
0053 VarParsing.varType.string,
0054 'cosmic triggers')
0055
0056 options.parseArguments()
0057
0058
0059
0060
0061
0062 process = cms.Process('CALIB')
0063 process.load('Configuration/StandardSequences/MagneticField_cff')
0064 process.load('Configuration.Geometry.GeometryRecoDB_cff')
0065 process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
0066
0067 from Configuration.AlCa.GlobalTag import GlobalTag
0068 process.GlobalTag = GlobalTag(process.GlobalTag, options.conditionGT, options.conditionOverwrite)
0069
0070 process.load('FWCore.MessageService.MessageLogger_cfi')
0071 process.load('Configuration.StandardSequences.Services_cff')
0072
0073 process.maxEvents = cms.untracked.PSet(input=cms.untracked.int32(options.maxEvents))
0074
0075 process.source = cms.Source("PoolSource", fileNames=cms.untracked.vstring(options.inputFiles))
0076 if options.runNumber != -1:
0077 if 'Cosmics' not in options.inputCollection:
0078 print("Restricting to the following events :")
0079 print('%s:1-%s:MAX'%(options.runNumber,options.runNumber))
0080 process.source.eventsToProcess = cms.untracked.VEventRange('%s:1-%s:MAX'%(options.runNumber,options.runNumber))
0081 else:
0082 print("Restricting to the following lumis for Cosmic runs only:")
0083 print('%s:1-%s:MAX'%(options.runNumber,options.runNumber))
0084 process.source.lumisToProcess = cms.untracked.VLuminosityBlockRange('%s:1-%s:MAX'%(options.runNumber,options.runNumber))
0085
0086 process.options = cms.untracked.PSet(
0087 wantSummary = cms.untracked.bool(True)
0088 )
0089 process.MessageLogger.cerr.FwkReport.reportEvery = 10000
0090
0091 inTracks = cms.InputTag(options.inputCollection)
0092
0093 process.load('CalibTracker.SiStripCommon.prescaleEvent_cfi')
0094 process.load('CalibTracker.Configuration.Filter_Refit_cff')
0095
0096 process.CalibrationTracks.src = inTracks
0097 tracksForCalib = cms.InputTag("CalibrationTracksRefit")
0098
0099 process.prescaleEvent.prescale = 1
0100 process.load("CalibTracker.SiStripCommon.SiStripBFieldFilter_cfi")
0101
0102 from HLTrigger.HLTfilters.triggerResultsFilter_cfi import triggerResultsFilter
0103
0104 process.IsolatedMuonFilter = triggerResultsFilter.clone(
0105 triggerConditions = cms.vstring("HLT_IsoMu20_*"),
0106 hltResults = cms.InputTag("TriggerResults", "", "HLT"),
0107 l1tResults = cms.InputTag(""),
0108 throw = cms.bool(False)
0109 )
0110 if len(options.cosmicTriggers) > 0:
0111 print("Cosmic triggers: {0}".format(", ".join(options.cosmicTriggers)))
0112 process.IsolatedMuonFilter.triggerConditions = cms.vstring(options.cosmicTriggers)
0113 else:
0114 print("Cosmic triggers: {0} (default)".format(", ".join(process.IsolatedMuonFilter.triggerConditions)))
0115 print("Argument passed: {0}".format(options.cosmicTriggers))
0116
0117 process.TkCalSeq = cms.Sequence(
0118 process.prescaleEvent*
0119 process.IsolatedMuonFilter*
0120 process.siStripBFieldOnFilter*
0121 process.CalibrationTracks,
0122 cms.Task(process.MeasurementTrackerEvent),
0123 cms.Task(process.offlineBeamSpot),
0124 cms.Task(process.CalibrationTracksRefit)
0125 )
0126
0127 process.load("PhysicsTools.NanoAOD.nano_cff")
0128 process.load("PhysicsTools.NanoAOD.NanoAODEDMEventContent_cff")
0129
0130
0131 from PhysicsTools.NanoAOD.common_cff import *
0132
0133 process.tracksTable = cms.EDProducer("SimpleTrackFlatTableProducer",
0134 src=tracksForCalib,
0135 cut=cms.string(""),
0136 name=cms.string("track"),
0137 doc=cms.string("SiStripCalMinBias ALCARECO tracks"),
0138 singleton=cms.bool(False),
0139 extension=cms.bool(False),
0140 variables=cms.PSet(
0141 chi2ndof=Var("chi2()/ndof", float),
0142 pt=Var("pt()", float),
0143 hitsvalid=Var("numberOfValidHits()", int),
0144 phi=Var("phi()", float),
0145 eta=Var("eta()", float),
0146 )
0147 )
0148 process.load("CalibTracker.SiStripCommon.siStripPositionCorrectionsTable_cfi")
0149 process.siStripPositionCorrectionsTable.Tracks = tracksForCalib
0150 process.load("CalibTracker.SiStripCommon.siStripLorentzAngleRunInfoTable_cfi")
0151
0152 siStripCalCosmicsNanoTables = cms.Task(
0153 process.nanoMetadata,
0154 process.tracksTable,
0155 process.siStripPositionCorrectionsTable,
0156 process.siStripLorentzAngleRunInfoTable
0157 )
0158
0159 process.nanoCTPath = cms.Path(process.TkCalSeq, siStripCalCosmicsNanoTables)
0160
0161 process.out = cms.OutputModule("NanoAODOutputModule",
0162 fileName=cms.untracked.string(options.outputFile),
0163 outputCommands=process.NANOAODEventContent.outputCommands+[
0164 "drop edmTriggerResults_*_*_*"
0165 ],
0166 SelectEvents=cms.untracked.PSet(
0167 SelectEvents=cms.vstring("nanoCTPath")
0168 )
0169 )
0170 process.end = cms.EndPath(process.out)
0171
0172 process.schedule = cms.Schedule(process.nanoCTPath, process.end)