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(
'simMuonCSCDigis',
'MuonCSCComparatorDigi')
140 process.simCscTriggerPrimitiveDigis.CSCWireDigiProducer = cms.InputTag(
'simMuonCSCDigis',
'MuonCSCWireDigi')
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 """Get rid of process.cscpacker and process.csctfpacker in all the paths
174 """Get rid of process.muonCSCDigis and process.csctfDigis in all the paths
182 """Adjust L1Extra producer's input tags for the use case
183 when we want to run L1Extra without packing-unpacking first
185 l1ep = process.l1extraParticles
190 l1ep.muonSource = cms.InputTag(
'simGmtDigis')
191 l1ep.etTotalSource = cms.InputTag(
'simGctDigis')
192 l1ep.nonIsolatedEmSource = cms.InputTag(
'simGctDigis',
'nonIsoEm')
193 l1ep.etMissSource = cms.InputTag(
'simGctDigis')
194 l1ep.forwardJetSource = cms.InputTag(
'simGctDigis',
'forJets')
195 l1ep.centralJetSource = cms.InputTag(
'simGctDigis',
'cenJets')
196 l1ep.tauJetSource = cms.InputTag(
'simGctDigis',
'tauJets')
197 l1ep.isolatedEmSource = cms.InputTag(
'simGctDigis',
'isoEm')
198 l1ep.etHadSource = cms.InputTag(
'simGctDigis')
199 l1ep.htMissSource = cms.InputTag(
"simGctDigis")
200 l1ep.hfRingEtSumsSource = cms.InputTag(
"simGctDigis")
201 l1ep.hfRingBitCountsSource = cms.InputTag(
"simGctDigis")
206 """Configure the CSC rechit producer
207 to handle unganged ME1a for upgrade studies
213 process.csc2DRecHits.readBadChannels = cms.bool(
False)
214 process.csc2DRecHits.CSCUseGasGainCorrection = cms.bool(
False)
217 process.csc2DRecHits.wireDigiTag = cms.InputTag(
"simMuonCSCDigis",
"MuonCSCWireDigi")
218 process.csc2DRecHits.stripDigiTag = cms.InputTag(
"simMuonCSCDigis",
"MuonCSCStripDigi")
224 """At this point: get rid of process.muonAnalyzer, adjust cscMonitor's input
228 process.cscMonitor.clctDigiTag = cms.InputTag(
"simCscTriggerPrimitiveDigis")
229 process.cscMonitor.stripDigiTag = cms.InputTag(
"simMuonCSCDigis",
"MuonCSCStripDigi")
230 process.cscMonitor.wireDigiTag = cms.InputTag(
"simMuonCSCDigis",
"MuonCSCWireDigi")
231 process.cscMonitor.alctDigiTag = cms.InputTag(
"simCscTriggerPrimitiveDigis")
233 process.l1tCsctf.statusProducer=cms.InputTag(
"null")
234 process.l1tCsctf.lctProducer=cms.InputTag(
"null")
235 process.l1tCsctf.trackProducer=cms.InputTag(
"null")
236 process.l1tCsctf.mbProducer=cms.InputTag(
"null")
242 """At this point, just get rid of process.relvalMuonBits
249 """Full set of the CSC PostLS1 related customizations.
250 It's tied to specific expected module names.
251 Therefore, a sanity check is done first to make sure that
252 standard cmsDriver paths have modules with such expected names.
262 if hasattr(process,
'simMuonCSCDigis'):
266 if hasattr(process,
'simCscTriggerPrimitiveDigis'):
270 if hasattr(process,
'simCsctfTrackDigis'):
274 if hasattr(process,
'cscpacker')
or hasattr(process,
'csctfpacker'):
278 if hasattr(process,
'muonCSCDigis')
or hasattr(process,
'csctfDigis'):
282 if hasattr(process,
'csc2DRecHits'):
286 if hasattr(process,
'cscMonitor'):
290 if hasattr(process,
'relvalMuonBits'):
297 process.CSCGeometryESModule.useGangedStripsInME1a =
False
299 process.hltCsc2DRecHits.readBadChannels = cms.bool(
False)
300 process.hltCsc2DRecHits.CSCUseGasGainCorrection = cms.bool(
False)
304 process.hltCsc2DRecHits.wireDigiTag = cms.InputTag(
"simMuonCSCDigis",
"MuonCSCWireDigi")
305 process.hltCsc2DRecHits.stripDigiTag = cms.InputTag(
"simMuonCSCDigis",
"MuonCSCStripDigi")
def customise_csc_L1Extra_allsim
def customise_csc_Unpacker
def customise_csc_Digitizer
def unganged_me1a_geometry
def customise_csc_Indexing
def customise_csc_LocalReco
def customise_csc_Geometry
def customise_csc_L1TrackFinder
def customise_csc_L1Emulator
def customise_csc_cond_ungangedME11A_mc
def customise_csc_Validation
def remove_from_all_paths
def csc_PathVsModule_SanityCheck
def customise_csc_PostLS1
def digitizer_timing_pre3_median
def customise_csc_L1Stubs