5 """Customise digi/reco geometry to use unganged ME1/a channels
7 process.CSCGeometryESModule.useGangedStripsInME1a =
False
8 process.idealForDigiCSCGeometry.useGangedStripsInME1a =
False
13 """CSC digitizer customization
14 with bunchTimingOffsets tuned to center trigger stubs at bx6
15 when pretrigger with 3 layers and median stub timing are used
25 process.simMuonCSCDigis.strips.bunchTimingOffsets = cms.vdouble(0.0,
26 37.53, 37.66, 55.4, 48.2, 54.45, 53.78, 53.38, 54.12, 51.98, 51.28)
27 process.simMuonCSCDigis.wires.bunchTimingOffsets = cms.vdouble(0.0,
28 22.88, 22.55, 29.28, 30.0, 30.0, 30.5, 31.0, 29.5, 29.1, 29.88)
34 """ Pick up upgrade condions data directly from DB tags using ESPrefer's.
35 Might be useful when dealing with a global tag that doesn't include
36 'unganged' CSC conditions.
39 (
'CSCDBGainsRcd',
'CSCDBGains_ungangedME11A_mc'),
40 (
'CSCDBNoiseMatrixRcd',
'CSCDBNoiseMatrix_ungangedME11A_mc'),
41 (
'CSCDBCrosstalkRcd',
'CSCDBCrosstalk_ungangedME11A_mc'),
42 (
'CSCDBPedestalsRcd',
'CSCDBPedestals_ungangedME11A_mc'),
43 (
'CSCDBGasGainCorrectionRcd',
'CSCDBGasGainCorrection_ungangedME11A_mc'),
44 (
'CSCDBChipSpeedCorrectionRcd',
'CSCDBChipSpeedCorrection_ungangedME11A_mc')
48 for (classname, tag)
in myconds:
50 sourcename =
'unganged_' + classname
51 process.__setattr__(sourcename, cscConditions.clone())
52 process.__getattribute__(sourcename).toGet = cms.VPSet( cms.PSet( record = cms.string(classname), tag = cms.string(tag)) )
53 process.__getattribute__(sourcename).connect = cms.string(
'frontier://FrontierProd/CMS_COND_CSC_000')
54 process.__setattr__(
'esp_' + classname, cms.ESPrefer(
"PoolDBESSource", sourcename) )
62 """Settings for the upgrade raw vs offline condition channel translation
64 process.CSCIndexerESProducer.AlgoName=cms.string(
"CSCIndexerPostls1")
65 process.CSCChannelMapperESProducer.AlgoName=cms.string(
"CSCChannelMapperPostls1")
70 """Remove process.module_name from all the paths in process:
74 if not hasattr(process, module_name):
78 for path_name
in process._Process__paths.keys():
79 the_path = getattr(process, path_name)
80 module_names = the_path.moduleNames()
81 if module_name
in module_names:
82 the_path.remove(getattr(process, module_name))
87 """A sanity check to make sure that standard cmsDriver paths
88 have modules with expected names. If some paths would not have
89 expected modules, the procedure would only print WARNINGs.
93 (
'digitisation_step',
'simMuonCSCDigis'),
94 (
'L1simulation_step',
'simCscTriggerPrimitiveDigis'),
95 (
'L1simulation_step',
'simCsctfTrackDigis'),
96 (
'raw2digi_step',
'muonCSCDigis'),
97 (
'raw2digi_step',
'csctfDigis'),
98 (
'digi2raw_step',
'cscpacker'),
99 (
'digi2raw_step',
'csctfpacker'),
100 (
'reconstruction',
'csc2DRecHits'),
101 (
'dqmoffline_step',
'muonAnalyzer'),
103 (
'validation_step',
'relvalMuonBits')
106 for path_name, module_name
in paths_modules:
107 if hasattr(process, path_name)
and not hasattr(process, module_name):
108 print "WARNING: module %s is not in %s path!!!" % (module_name, path_name)
109 print " This path has the following modules:"
110 print " ", getattr(process, path_name).moduleNames(),
"\n"
116 """Customise digi/reco geometry to use unganged ME1/a channels
123 """Customise CSC digitization to use unganged ME1/a channels
131 """Configure the local CSC trigger stubs emulator with the upgrade
132 algorithm version that efficiently uses unganged ME1a
137 from L1Trigger.CSCTriggerPrimitives.cscTriggerPrimitiveDigisPostLS1_cfi
import cscTriggerPrimitiveDigisPostLS1
138 process.simCscTriggerPrimitiveDigis = cscTriggerPrimitiveDigisPostLS1
139 process.simCscTriggerPrimitiveDigis.CSCComparatorDigiProducer = cms.InputTag(
'mixData',
'MuonCSCComparatorDigisDM')
140 process.simCscTriggerPrimitiveDigis.CSCWireDigiProducer = cms.InputTag(
'mixData',
'MuonCSCWireDigisDM')
146 """Regular CSCTF configuration adapted to deal with unganged ME1a
149 from L1Trigger.CSCTrackFinder.csctfTrackDigisUngangedME1a_cfi
import csctfTrackDigisUngangedME1a
150 process.simCsctfTrackDigis = csctfTrackDigisUngangedME1a
151 process.simCsctfTrackDigis.DTproducer = cms.untracked.InputTag(
"simDtTriggerPrimitiveDigis")
152 process.simCsctfTrackDigis.SectorReceiverInput = cms.untracked.InputTag(
"simCscTriggerPrimitiveDigis",
"MPCSORTED")
158 """Customise both stubs and TF emulators
166 """Use 2013 a.k.a. post-LS1 version
168 process.cscpacker.useFormatVersion = cms.uint32(2013)
169 process.cscpacker.usePreTriggers = cms.bool(
False)
170 process.cscpacker.packEverything = cms.bool(
True)
175 """Do nothing at the moment
181 """Adjust L1Extra producer's input tags for the use case
182 when we want to run L1Extra without packing-unpacking first
184 l1ep = process.l1extraParticles
189 l1ep.muonSource = cms.InputTag(
'simGmtDigis')
190 l1ep.etTotalSource = cms.InputTag(
'simGctDigis')
191 l1ep.nonIsolatedEmSource = cms.InputTag(
'simGctDigis',
'nonIsoEm')
192 l1ep.etMissSource = cms.InputTag(
'simGctDigis')
193 l1ep.forwardJetSource = cms.InputTag(
'simGctDigis',
'forJets')
194 l1ep.centralJetSource = cms.InputTag(
'simGctDigis',
'cenJets')
195 l1ep.tauJetSource = cms.InputTag(
'simGctDigis',
'tauJets')
196 l1ep.isolatedEmSource = cms.InputTag(
'simGctDigis',
'isoEm')
197 l1ep.etHadSource = cms.InputTag(
'simGctDigis')
198 l1ep.htMissSource = cms.InputTag(
"simGctDigis")
199 l1ep.hfRingEtSumsSource = cms.InputTag(
"simGctDigis")
200 l1ep.hfRingBitCountsSource = cms.InputTag(
"simGctDigis")
205 """Configure the CSC rechit producer
206 to handle unganged ME1a for upgrade studies
212 process.csc2DRecHits.readBadChannels = cms.bool(
False)
213 process.csc2DRecHits.CSCUseGasGainCorrections = cms.bool(
False)
216 process.csc2DRecHits.wireDigiTag = cms.InputTag(
"mixData",
"MuonCSCWireDigisDM")
217 process.csc2DRecHits.stripDigiTag = cms.InputTag(
"mixData",
"MuonCSCStripDigisDM")
223 """Runs after RAW2DIGI, so, should use defaults
235 """Full set of the CSC PostLS1 related customizations.
236 It's tied to specific expected module names.
237 Therefore, a sanity check is done first to make sure that
238 standard cmsDriver paths have modules with such expected names.
248 if hasattr(process,
'simMuonCSCDigis'):
252 if hasattr(process,
'simCscTriggerPrimitiveDigis'):
256 if hasattr(process,
'simCsctfTrackDigis'):
260 if hasattr(process,
'cscpacker')
or hasattr(process,
'csctfpacker'):
264 if hasattr(process,
'muonCSCDigis')
or hasattr(process,
'csctfDigis'):
268 if hasattr(process,
'csc2DRecHits'):
272 if hasattr(process,
'cscMonitor'):
276 if hasattr(process,
'relvalMuonBits'):
283 process.CSCGeometryESModule.useGangedStripsInME1a =
False
285 process.hltCsc2DRecHits.readBadChannels = cms.bool(
False)
287 process.hltCsc2DRecHits.CSCUseGasGainCorrections = cms.bool(
False)
293 process.hltCsc2DRecHits.wireDigiTag = cms.InputTag(
"mixData",
"MuonCSCWireDigisDM")
294 process.hltCsc2DRecHits.stripDigiTag = cms.InputTag(
"mixData",
"MuonCSCStripDigisDM")
def customise_csc_Validation
def customise_csc_L1Emulator_sim
def customise_csc_Unpacker
def customise_csc_L1TrackFinder_sim
def customise_csc_PostLS1
def customise_csc_Indexing
def customise_csc_L1Extra_allsim
def csc_PathVsModule_SanityCheck
def unganged_me1a_geometry
def customise_csc_Digitizer
def remove_from_all_paths
def customise_csc_L1Stubs_sim
def customise_csc_cond_ungangedME11A_mc
def customise_csc_Geometry
def digitizer_timing_pre3_median
def customise_csc_LocalReco