Back to home page

Project CMSSW displayed by LXR

 
 

    


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 ## process def
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 ## global tag
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 # customize messagelogger
0054 process.MessageLogger.cerr.enable = False
0055 process.MessageLogger.debugModules = cms.untracked.vstring('muonCSCDigis')
0056 ## categories: 'CSCDCCUnpacker|CSCRawToDigi', 'StatusDigis', 'StatusDigi', 'CSCRawToDigi', 'CSCDCCUnpacker', 'EventInfo',
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       #TRACE = cms.untracked.PSet(limit = cms.untracked.int32(0) ),
0066       noTimeStamps = cms.untracked.bool(False),
0067       #FwkReport = cms.untracked.PSet(
0068       #    reportEvery = cms.untracked.int32(1),
0069       #    limit = cms.untracked.int32(10000000)
0070       #),
0071       #CSCRawToDigi = cms.untracked.PSet(limit = cms.untracked.int32(10000000)),
0072       #StatusDigi = cms.untracked.PSet(limit = cms.untracked.int32(10000000)),
0073       #EventInfo = cms.untracked.PSet(limit = cms.untracked.int32(10000000)),
0074       default = cms.untracked.PSet(limit = cms.untracked.int32(10000000)),
0075       #Root_NoDictionary = cms.untracked.PSet(limit = cms.untracked.int32(0)),
0076       DEBUG = cms.untracked.PSet(limit = cms.untracked.int32(0)),
0077       #FwkJob = cms.untracked.PSet(limit = cms.untracked.int32(0)),
0078       #FwkSummary = cms.untracked.PSet(reportEvery = cms.untracked.int32(1), limit = cms.untracked.int32(10000000) ),
0079       threshold = cms.untracked.string('DEBUG')
0080 )
0081 
0082 ## modules
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 ## customizations
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 ## Use specific b904 test setups configurations
0133 if options.useB904Data:
0134       process.muonCSCDigis.DisableMappingCheck = True
0135       process.muonCSCDigis.B904Setup = True
0136 
0137 ## Use preTriggers from trigger simulation for packing
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 ## Pack Run3 GEM data
0146 if options.useGEMs:
0147       pack.useGEMs = True
0148       pack.padDigiClusterTag = cms.InputTag("muonCSCDigis","MuonGEMPadDigiCluster")
0149 else:
0150       pack.useGEMs = False
0151 
0152 ## Pack Run3 CSC Shower data
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 ## schedule and path definition
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])