File indexing completed on 2024-11-25 02:29:33
0001
0002 import FWCore.ParameterSet.Config as cms
0003 from FWCore.ParameterSet.VarParsing import VarParsing
0004 from Configuration.Eras.Era_Run3_cff import Run3
0005
0006 options = VarParsing('analysis')
0007 options.register ("pack", True, VarParsing.multiplicity.singleton, VarParsing.varType.bool)
0008 options.register ("unpack", True, VarParsing.multiplicity.singleton, VarParsing.varType.bool)
0009 options.register ("reconstruct", False, VarParsing.multiplicity.singleton, VarParsing.varType.bool)
0010 options.register ("view", True, VarParsing.multiplicity.singleton, VarParsing.varType.bool)
0011 options.register ("validate", False, VarParsing.multiplicity.singleton, VarParsing.varType.bool)
0012 options.register ("mc", False, VarParsing.multiplicity.singleton, VarParsing.varType.bool)
0013 options.register ("useB904Data", False, VarParsing.multiplicity.singleton, VarParsing.varType.bool)
0014 options.register ("usePreTriggers", True, VarParsing.multiplicity.singleton, VarParsing.varType.bool)
0015 options.register ("useGEMs", True, VarParsing.multiplicity.singleton, VarParsing.varType.bool)
0016 options.register ("useCSCShowers", True, VarParsing.multiplicity.singleton, VarParsing.varType.bool)
0017 options.parseArguments()
0018
0019
0020 process = cms.Process("TEST", Run3)
0021 process.load("FWCore.MessageService.MessageLogger_cfi")
0022 process.load("Configuration/StandardSequences/GeometryRecoDB_cff")
0023 process.load("Configuration/StandardSequences/MagneticField_cff")
0024 process.load("Configuration/StandardSequences/FrontierConditions_GlobalTag_cff")
0025 process.load("Configuration.StandardSequences.Reconstruction_cff")
0026 process.load('Configuration.StandardSequences.EndOfProcess_cff')
0027 process.load("EventFilter.CSCRawToDigi.cscUnpacker_cfi")
0028 process.load("EventFilter.CSCRawToDigi.cscPacker_cfi")
0029 process.load("EventFilter.CSCRawToDigi.viewDigi_cfi")
0030
0031 process.maxEvents = cms.untracked.PSet(
0032 input = cms.untracked.int32(options.maxEvents)
0033 )
0034
0035 process.options = cms.untracked.PSet(
0036 SkipEvent = cms.untracked.vstring('ProductNotFound')
0037 )
0038
0039 process.source = cms.Source(
0040 "PoolSource",
0041 fileNames = cms.untracked.vstring(options.inputFiles)
0042 )
0043
0044
0045 from Configuration.AlCa.GlobalTag import GlobalTag
0046 if options.mc:
0047 process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '')
0048 else:
0049 process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:run3_data', '')
0050
0051 process.DQMStore = cms.Service("DQMStore")
0052
0053
0054 process.MessageLogger.cerr.enable = False
0055 process.MessageLogger.debugModules = cms.untracked.vstring('muonCSCDigis')
0056
0057 process.MessageLogger.CSCDDUEventData = dict()
0058 process.MessageLogger.CSCRawToDigi = dict()
0059 process.MessageLogger.badData = dict()
0060 process.MessageLogger.cout = cms.untracked.PSet(
0061 enable = cms.untracked.bool(True),
0062 INFO = cms.untracked.PSet(
0063 limit = cms.untracked.int32(0)
0064 ),
0065
0066 noTimeStamps = cms.untracked.bool(False),
0067
0068
0069
0070
0071
0072
0073
0074 default = cms.untracked.PSet(limit = cms.untracked.int32(10000000)),
0075
0076 DEBUG = cms.untracked.PSet(limit = cms.untracked.int32(0)),
0077
0078
0079 threshold = cms.untracked.string('DEBUG')
0080 )
0081
0082
0083 process.cscValidation = cms.EDAnalyzer(
0084 "CSCValidation",
0085 rootFileName = cms.untracked.string('cscv_RAW.root'),
0086 isSimulation = cms.untracked.bool(False),
0087 writeTreeToFile = cms.untracked.bool(True),
0088 useDigis = cms.untracked.bool(True),
0089 detailedAnalysis = cms.untracked.bool(False),
0090 useTriggerFilter = cms.untracked.bool(False),
0091 useQualityFilter = cms.untracked.bool(False),
0092 makeStandalonePlots = cms.untracked.bool(False),
0093 makeTimeMonitorPlots = cms.untracked.bool(True),
0094 rawDataTag = cms.InputTag("rawDataCollector"),
0095 alctDigiTag = cms.InputTag("muonCSCDigis","MuonCSCALCTDigi"),
0096 clctDigiTag = cms.InputTag("muonCSCDigis","MuonCSCCLCTDigi"),
0097 corrlctDigiTag = cms.InputTag("muonCSCDigis","MuonCSCCorrelatedLCTDigi"),
0098 stripDigiTag = cms.InputTag("muonCSCDigis","MuonCSCStripDigi"),
0099 wireDigiTag = cms.InputTag("muonCSCDigis","MuonCSCWireDigi"),
0100 compDigiTag = cms.InputTag("muonCSCDigis","MuonCSCComparatorDigi"),
0101 cscRecHitTag = cms.InputTag("csc2DRecHits"),
0102 cscSegTag = cms.InputTag("cscSegments"),
0103 saMuonTag = cms.InputTag("standAloneMuons"),
0104 l1aTag = cms.InputTag("gtDigis"),
0105 hltTag = cms.InputTag("TriggerResults::HLT"),
0106 makeHLTPlots = cms.untracked.bool(True),
0107 simHitTag = cms.InputTag("g4SimHits", "MuonCSCHits")
0108 )
0109
0110 process.cscValidation.isSimulation = options.mc
0111
0112 process.analyzer = cms.EDAnalyzer("CSCDigiAnalyzer")
0113
0114
0115 if options.mc:
0116 val = process.cscValidation
0117 val.alctDigiTag = cms.InputTag("simCscTriggerPimitiveDigis")
0118 val.clctDigiTag = cms.InputTag("simCscTriggerPimitiveDigis")
0119 val.corrlctDigiTag = cms.InputTag("simCscTriggerPimitiveDigis")
0120 val.stripDigiTag = cms.InputTag("simMuonCSCDigis","MuonCSCStripDigi")
0121 val.wireDigiTag = cms.InputTag("simMuonCSCDigis","MuonCSCWireDigi")
0122 val.compDigiTag = cms.InputTag("simMuonCSCDigis","MuonCSCComparatorDigi")
0123 else:
0124 pack = process.cscpacker
0125 pack.wireDigiTag = cms.InputTag("muonCSCDigis","MuonCSCWireDigi")
0126 pack.stripDigiTag = cms.InputTag("muonCSCDigis","MuonCSCStripDigi")
0127 pack.comparatorDigiTag = cms.InputTag("muonCSCDigis","MuonCSCComparatorDigi")
0128 pack.alctDigiTag = cms.InputTag("muonCSCDigis","MuonCSCALCTDigi")
0129 pack.clctDigiTag = cms.InputTag("muonCSCDigis","MuonCSCCLCTDigi")
0130 pack.correlatedLCTDigiTag = cms.InputTag("muonCSCDigis","MuonCSCCorrelatedLCTDigi")
0131
0132
0133 if options.useB904Data:
0134 process.muonCSCDigis.DisableMappingCheck = True
0135 process.muonCSCDigis.B904Setup = True
0136
0137
0138 if options.usePreTriggers:
0139 pack.preTriggerTag = cms.InputTag("simCscTriggerPrimitiveDigis")
0140 pack.usePreTriggers = True
0141 else:
0142 pack.usePreTriggers = False
0143 pack.packEverything = True
0144
0145
0146 if options.useGEMs:
0147 pack.useGEMs = True
0148 pack.padDigiClusterTag = cms.InputTag("muonCSCDigis","MuonGEMPadDigiCluster")
0149 else:
0150 pack.useGEMs = False
0151
0152
0153 if options.useCSCShowers:
0154 pack.useCSCShowers = True
0155 pack.showerDigiTag = cms.InputTag("muonCSCDigis","MuonCSCShowerDigi")
0156 pack.anodeShowerDigiTag = cms.InputTag("muonCSCDigis","MuonCSCShowerDigiAnode")
0157 pack.cathodeShowerDigiTag = cms.InputTag("muonCSCDigis","MuonCSCShowerDigiCathode")
0158 pack.anodeALCTShowerDigiTag = cms.InputTag("muonCSCDigis","MuonCSCShowerDigiAnodeALCT")
0159 else:
0160 pack.useCSCShowers = False
0161
0162 process.out = cms.OutputModule(
0163 "PoolOutputModule",
0164 fileName = cms.untracked.string('output.root'),
0165 outputCommands = cms.untracked.vstring("keep *")
0166 )
0167
0168
0169 process.p1 = cms.Path(process.cscpacker)
0170 process.p2 = cms.Path(process.muonCSCDigis)
0171 process.p3 = cms.Path(process.csc2DRecHits * process.cscSegments)
0172 process.p4 = cms.Path(process.cscValidation)
0173 process.p5 = cms.Path(process.viewDigi)
0174 process.endjob_step = cms.EndPath(process.out * process.endOfProcess)
0175
0176 process.schedule = cms.Schedule()
0177 if options.pack:
0178 process.schedule.extend([process.p1])
0179 if options.unpack:
0180 process.schedule.extend([process.p2])
0181 if options.reconstruct:
0182 process.schedule.extend([process.p3])
0183 if options.validate:
0184 process.schedule.extend([process.p4])
0185 if options.view:
0186 process.schedule.extend([process.p5])
0187
0188 process.schedule.extend([process.endjob_step])