CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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.TriggerSummaryProducerAOD=cms.untracked.PSet()
26  process.MessageLogger.L1GtTrigReport=cms.untracked.PSet()
27  process.MessageLogger.L1TGlobalSummary=cms.untracked.PSet()
28  process.MessageLogger.HLTrigReport=cms.untracked.PSet()
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  from Configuration.Eras.Era_Run3_cff import Run3
126  l1repack = cms.Process('L1REPACK', Run3)
127  l1repack.load('Configuration.StandardSequences.SimL1EmulatorRepack_'+sequence+'_cff')
128 
129  for module in l1repack.es_sources_():
130  if not hasattr(process, module):
131  setattr(process, module, getattr(l1repack, module))
132  for module in l1repack.es_producers_():
133  if not hasattr(process, module):
134  setattr(process, module, getattr(l1repack, module))
135 
136  for module in l1repack.SimL1Emulator.expandAndClone().moduleNames():
137  setattr(process, module, getattr(l1repack, module))
138  for taskName, task in l1repack.tasks_().items():
139  if l1repack.SimL1Emulator.contains(task):
140  setattr(process, taskName, task)
141  for sequenceName, sequence in l1repack.sequences_().items():
142  if l1repack.SimL1Emulator.contains(sequence):
143  setattr(process, sequenceName, sequence)
144 
145  process.SimL1Emulator = l1repack.SimL1Emulator
146 
147  for path in process.paths_():
148  getattr(process,path).insert(0,process.SimL1Emulator)
149  for path in process.endpaths_():
150  getattr(process,path).insert(0,process.SimL1Emulator)
151 
152  # special L1T cleanup
153  for obj in [
154  'hgcalTriggerGeometryESProducer',
155  ]:
156  if hasattr(process, obj):
157  delattr(process, obj)
158 
159  return process
160 
161 def L1XML(process,xmlFile=None):
162 
163 # xmlFile="L1Menu_Collisions2016_dev_v3.xml"
164 
165  if ((xmlFile is None) or (xmlFile=="")):
166  return process
167 
168  process.L1TriggerMenu= cms.ESProducer("L1TUtmTriggerMenuESProducer",
169  L1TriggerMenuFile= cms.string(xmlFile)
170  )
171  process.ESPreferL1TXML = cms.ESPrefer("L1TUtmTriggerMenuESProducer","L1TriggerMenu")
172 
173  return process
174 
175 def CTPPSRun2Geometry(process):
176  if hasattr(process,'ctppsGeometryESModule'):
177  process.ctppsGeometryESModule.isRun2 = True
178  return(process)
bool insert(Storage &iStorage, ItemType *iItem, const IdTag &iIdTag)
Definition: HCMethods.h:50