CMS 3D CMS Logo

CustomConfigs.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 # The following 2 imports are provided for backward compatibility reasons.
4 # The functions used to be defined in this file.
5 from FWCore.ParameterSet.MassReplace import massReplaceInputTag as MassReplaceInputTag
6 from FWCore.ParameterSet.MassReplace import massReplaceParameter as MassReplaceParameter
7 
8 def ProcessName(process):
9 # processname modifications
10 
11  if 'hltTrigReport' in process.__dict__:
12  process.hltTrigReport.HLTriggerResults = cms.InputTag( 'TriggerResults','',process.name_() )
13 
14  return(process)
15 
16 
17 def Base(process):
18 # default modifications
19 
20  process.options.wantSummary = cms.untracked.bool(True)
21  process.options.numberOfThreads = cms.untracked.uint32( 4 )
22  process.options.numberOfStreams = cms.untracked.uint32( 0 )
23  process.options.sizeOfStackForThreadsInKB = cms.untracked.uint32( 10*1024 )
24 
25  process.MessageLogger.categories.append('TriggerSummaryProducerAOD')
26  process.MessageLogger.categories.append('L1GtTrigReport')
27  process.MessageLogger.categories.append('L1TGlobalSummary')
28  process.MessageLogger.categories.append('HLTrigReport')
29 
30 # No longer override - instead use GT config as provided via cmsDriver
31 ## override the GlobalTag, connection string and pfnPrefix
32 # if 'GlobalTag' in process.__dict__:
33 # process.GlobalTag.connect = 'frontier://FrontierProd/CMS_CONDITIONS'
34 # process.GlobalTag.pfnPrefix = cms.untracked.string('frontier://Frontie#rProd/')
35 #
36 # process.GlobalTag.snapshotTime = cms.string("9999-12-31 23:59:59.000")
37 
38  process=ProcessName(process)
39 
40  return(process)
41 
42 
43 def L1T(process):
44 # modifications when running L1T only
45 
46  def _legacyStage1(process):
47  labels = ['gtDigis','simGtDigis','newGtDigis','hltGtDigis']
48  for label in labels:
49  if label in process.__dict__:
50  process.load('L1Trigger.GlobalTriggerAnalyzer.l1GtTrigReport_cfi')
51  process.l1GtTrigReport.L1GtRecordInputTag = cms.InputTag( label )
52  process.L1AnalyzerEndpath = cms.EndPath( process.l1GtTrigReport )
53  process.schedule.append(process.L1AnalyzerEndpath)
54 
55  def _stage2(process):
56  labels = ['gtStage2Digis','simGtStage2Digis','newGtStage2Digis','hltGtStage2Digis']
57  for label in labels:
58  if label in process.__dict__:
59  process.load('L1Trigger.L1TGlobal.L1TGlobalSummary_cfi')
60  process.L1TGlobalSummary.AlgInputTag = cms.InputTag( label )
61  process.L1TGlobalSummary.ExtInputTag = cms.InputTag( label )
62  process.L1TAnalyzerEndpath = cms.EndPath(process.L1TGlobalSummary )
63  process.schedule.append(process.L1TAnalyzerEndpath)
64 
65  from Configuration.Eras.Modifier_stage2L1Trigger_cff import stage2L1Trigger
66  (~stage2L1Trigger).toModify(process, _legacyStage1)
67  stage2L1Trigger.toModify(process, _stage2)
68 
69  if hasattr(process,'TriggerMenu'):
70  delattr(process,'TriggerMenu')
71 
72  process=Base(process)
73 
74  return(process)
75 
76 
77 def L1THLT(process):
78 # modifications when running L1T+HLT
79 
80  if not ('HLTAnalyzerEndpath' in process.__dict__) :
81  def _legacyStage1(process):
82  if 'hltGtDigis' in process.__dict__:
83  from HLTrigger.Configuration.HLT_Fake_cff import fragment
84  process.hltL1GtTrigReport = fragment.hltL1GtTrigReport
85  process.hltTrigReport = fragment.hltTrigReport
86  process.HLTAnalyzerEndpath = cms.EndPath(process.hltGtDigis + process.hltL1GtTrigReport + process.hltTrigReport)
87  process.schedule.append(process.HLTAnalyzerEndpath)
88 
89  def _stage2(process):
90  if 'hltGtStage2ObjectMap' in process.__dict__:
91  from HLTrigger.Configuration.HLT_FULL_cff import fragment
92  process.hltL1TGlobalSummary = fragment.hltL1TGlobalSummary
93  process.hltTrigReport = fragment.hltTrigReport
94  process.HLTAnalyzerEndpath = cms.EndPath(process.hltGtStage2Digis + process.hltL1TGlobalSummary + process.hltTrigReport)
95  process.schedule.append(process.HLTAnalyzerEndpath)
96 
97  from Configuration.Eras.Modifier_stage2L1Trigger_cff import stage2L1Trigger
98  (~stage2L1Trigger).toModify(process, _legacyStage1)
99  stage2L1Trigger.toModify(process, _stage2)
100 
101  if hasattr(process,'TriggerMenu'):
102  delattr(process,'TriggerMenu')
103 
104  process=Base(process)
105 
106  return(process)
107 
108 
109 def HLTDropPrevious(process):
110 # drop on input the previous HLT results
111  process.source.inputCommands = cms.untracked.vstring (
112  'keep *',
113  'drop *_hltL1GtObjectMap_*_*',
114  'drop *_TriggerResults_*_*',
115  'drop *_hltTriggerSummaryAOD_*_*',
116  )
117 
118  process=Base(process)
119 
120  return(process)
121 
122 
123 def L1REPACK(process,sequence="Full"):
124 
125 
126  from Configuration.Eras.Era_Run2_2018_cff import Run2_2018
127  l1repack = cms.Process('L1REPACK',Run2_2018)
128  l1repack.load('Configuration.StandardSequences.SimL1EmulatorRepack_'+sequence+'_cff')
129 
130  for module in l1repack.es_sources_():
131  if (not hasattr(process,module)):
132  setattr(process,module,getattr(l1repack,module))
133  for module in l1repack.es_producers_():
134  if (not hasattr(process,module)):
135  setattr(process,module,getattr(l1repack,module))
136 
137  for module in l1repack.SimL1Emulator.expandAndClone().moduleNames():
138  setattr(process,module,getattr(l1repack,module))
139  for task in l1repack.tasks_():
140  setattr(process,task,getattr(l1repack,task))
141  for sequence in l1repack.sequences_():
142  setattr(process,sequence,getattr(l1repack,sequence))
143  process.SimL1Emulator = l1repack.SimL1Emulator
144 
145  for path in process.paths_():
146  getattr(process,path).insert(0,process.SimL1Emulator)
147  for path in process.endpaths_():
148  getattr(process,path).insert(0,process.SimL1Emulator)
149 
150  # special L1T cleanup
151  cleanupL1T = ('SimL1TCalorimeter'
152  ,'SimL1TCalorimeterTask'
153  ,'SimL1TMuonCommon'
154  ,'SimL1TMuonCommonTask'
155  ,'SimL1TMuon'
156  ,'SimL1TMuonTask'
157  ,'SimL1TechnicalTriggers'
158  ,'SimL1TechnicalTriggersTask'
159  ,'SimL1EmulatorCore'
160  ,'SimL1EmulatorCoreTask'
161  ,'ecalDigiSequence'
162  ,'ecalDigiTask'
163  ,'hcalDigiSequence'
164  ,'hcalDigiTask'
165  ,'calDigi'
166  ,'calDigiTask'
167  ,'me0TriggerPseudoDigis'
168  ,'me0TriggerPseudoDigiTask'
169  ,'hgcalTriggerPrimitives'
170  ,'hgcalTriggerPrimitivesTask'
171  ,'hgcalVFE'
172  ,'hgcalVFEProducer'
173  ,'hgcalBackEndLayer2'
174  ,'hgcalBackEndLayer2Producer'
175  ,'hgcalTowerMap'
176  ,'hgcalTowerMapProducer'
177  ,'hgcalConcentrator'
178  ,'hgcalConcentratorProducer'
179  ,'hgcalBackEndLayer1'
180  ,'hgcalBackEndLayer1Producer'
181  ,'hgcalTower'
182  ,'hgcalTowerProducer'
183  ,'hgcalTriggerGeometryESProducer')
184  for obj in cleanupL1T:
185  if hasattr(process,obj):
186  delattr(process,obj)
187 
188  return process
189 
190 def L1XML(process,xmlFile=None):
191 
192 # xmlFile="L1Menu_Collisions2016_dev_v3.xml"
193 
194  if ((xmlFile is None) or (xmlFile=="")):
195  return process
196 
197  process.L1TriggerMenu= cms.ESProducer("L1TUtmTriggerMenuESProducer",
198  L1TriggerMenuFile= cms.string(xmlFile)
199  )
200  process.ESPreferL1TXML = cms.ESPrefer("L1TUtmTriggerMenuESProducer","L1TriggerMenu")
201 
202  return process
def L1T(process)
override the GlobalTag, connection string and pfnPrefix if 'GlobalTag' in process.__dict__: process.GlobalTag.connect = 'frontier://FrontierProd/CMS_CONDITIONS' process.GlobalTag.pfnPrefix = cms.untracked.string('frontier://Frontie#rProd/')
def L1THLT(process)
def Base(process)
def HLTDropPrevious(process)
def ProcessName(process)
Definition: CustomConfigs.py:8
def L1XML(process, xmlFile=None)
return((rh^lh)&mask)
def L1REPACK(process, sequence="Full")
bool insert(Storage &iStorage, ItemType *iItem, const IdTag &iIdTag)
Definition: HCMethods.h:50