CMS 3D CMS Logo

Functions
customizeHLTforCMSSW Namespace Reference

Functions

def customiseBeamSpotFor2018Input (process)
 
def customiseCTPPSFor2018Input (process)
 
def customiseECALCalibrationsFor2018Input (process)
 
def customiseEGammaRecoFor2018Input (process)
 
def customiseFor2017DtUnpacking (process)
 
def customiseFor2018Input (process)
 
def customiseForOffline (process)
 
def customiseHCALFor2018Input (process)
 
def customisePixelGainForRun2Input (process)
 
def customisePixelL1ClusterThresholdForRun2Input (process)
 
def customizeHLTfor42497 (process)
 
def customizeHLTfor42943 (process)
 
def customizeHLTforCMSSW (process, menuType="GRun")
 

Function Documentation

◆ customiseBeamSpotFor2018Input()

def customizeHLTforCMSSW.customiseBeamSpotFor2018Input (   process)
Customisation for the HLT BeamSpot when running on Run-2 (2018) data:
   - For Run-2 data, disable the use of the BS transient record, in order to read the BS record from SCAL.
   - Additionally, remove all instances of OnlineBeamSpotESProducer (not needed if useTransientRecord=False).
   - See CMSHLT-2271 and CMSHLT-2300 for further details.

Definition at line 159 of file customizeHLTforCMSSW.py.

References common.esproducers_by_type(), and customizeForNoTrackerDCS.producers_by_type().

Referenced by customiseFor2018Input().

159 def customiseBeamSpotFor2018Input(process):
160  """Customisation for the HLT BeamSpot when running on Run-2 (2018) data:
161  - For Run-2 data, disable the use of the BS transient record, in order to read the BS record from SCAL.
162  - Additionally, remove all instances of OnlineBeamSpotESProducer (not needed if useTransientRecord=False).
163  - See CMSHLT-2271 and CMSHLT-2300 for further details.
164  """
165  for prod in producers_by_type(process, 'BeamSpotOnlineProducer'):
166  prod.useTransientRecord = False
167  onlineBeamSpotESPLabels = [prod.label_() for prod in esproducers_by_type(process, 'OnlineBeamSpotESProducer')]
168  for espLabel in onlineBeamSpotESPLabels:
169  delattr(process, espLabel)
170 
171  # re-introduce SCAL digis, if missing
172  if not hasattr(process, 'hltScalersRawToDigi') and hasattr(process, 'HLTBeamSpot') and isinstance(process.HLTBeamSpot, cms.Sequence):
173 
174  if hasattr(process, 'hltOnlineBeamSpot'):
175  process.hltOnlineBeamSpot.src = 'hltScalersRawToDigi'
176 
177  if hasattr(process, 'hltPixelTrackerHVOn'):
178  process.hltPixelTrackerHVOn.DcsStatusLabel = 'hltScalersRawToDigi'
179 
180  if hasattr(process, 'hltStripTrackerHVOn'):
181  process.hltStripTrackerHVOn.DcsStatusLabel = 'hltScalersRawToDigi'
182 
183  process.hltScalersRawToDigi = cms.EDProducer( "ScalersRawToDigi",
184  scalersInputTag = cms.InputTag( "rawDataCollector" )
185  )
186 
187  process.HLTBeamSpot.insert(0, process.hltScalersRawToDigi)
188 
189  return process
190 
def producers_by_type(process, types)
def customiseBeamSpotFor2018Input(process)
def esproducers_by_type(process, types)
Definition: common.py:21

◆ customiseCTPPSFor2018Input()

def customizeHLTforCMSSW.customiseCTPPSFor2018Input (   process)

Definition at line 144 of file customizeHLTforCMSSW.py.

References customizeForNoTrackerDCS.producers_by_type().

Referenced by customiseFor2018Input().

144 def customiseCTPPSFor2018Input(process):
145  for prod in producers_by_type(process, 'CTPPSGeometryESModule'):
146  prod.isRun2 = True
147  for prod in producers_by_type(process, 'CTPPSPixelRawToDigi'):
148  prod.isRun3 = False
149 
150  return process
151 
def producers_by_type(process, types)
def customiseCTPPSFor2018Input(process)

◆ customiseECALCalibrationsFor2018Input()

def customizeHLTforCMSSW.customiseECALCalibrationsFor2018Input (   process)
Customisation to apply the ECAL Run-2 Ultra-Legacy calibrations (CMSHLT-2339)

Definition at line 191 of file customizeHLTforCMSSW.py.

References print().

Referenced by customiseFor2018Input().

192  """Customisation to apply the ECAL Run-2 Ultra-Legacy calibrations (CMSHLT-2339)"""
193  if hasattr(process, 'GlobalTag'):
194  if not hasattr(process.GlobalTag, 'toGet'):
195  process.GlobalTag.toGet = cms.VPSet()
196  process.GlobalTag.toGet += [
197  cms.PSet(
198  record = cms.string('EcalLaserAlphasRcd'),
199  tag = cms.string('EcalLaserAlphas_UL_Run1_Run2_2018_lastIOV_movedTo1')
200  ),
201  cms.PSet(
202  record = cms.string('EcalIntercalibConstantsRcd'),
203  tag = cms.string('EcalIntercalibConstants_UL_Run1_Run2_2018_lastIOV_movedTo1')
204  )
205  ]
206  else:
207  print('# customiseECALCalibrationsFor2018Input -- the process.GlobalTag ESSource does not exist: no customisation applied.')
208 
209  return process
210 
def customiseECALCalibrationsFor2018Input(process)
void print(TMatrixD &m, const char *label=nullptr, bool mathematicaFormat=false)
Definition: Utilities.cc:47

◆ customiseEGammaRecoFor2018Input()

def customizeHLTforCMSSW.customiseEGammaRecoFor2018Input (   process)

Definition at line 152 of file customizeHLTforCMSSW.py.

References customizeForNoTrackerDCS.producers_by_type().

Referenced by customiseFor2018Input().

153  for prod in producers_by_type(process, 'PFECALSuperClusterProducer'):
154  if hasattr(prod, 'regressionConfig'):
155  prod.regressionConfig.regTrainedWithPS = cms.bool(False)
156 
157  return process
158 
def producers_by_type(process, types)
def customiseEGammaRecoFor2018Input(process)

◆ customiseFor2017DtUnpacking()

def customizeHLTforCMSSW.customiseFor2017DtUnpacking (   process)
Adapt the HLT to run the legacy DT unpacking
for pre2018 data/MC workflows as the default

Definition at line 67 of file customizeHLTforCMSSW.py.

67 def customiseFor2017DtUnpacking(process):
68  """Adapt the HLT to run the legacy DT unpacking
69  for pre2018 data/MC workflows as the default"""
70 
71  if hasattr(process,'hltMuonDTDigis'):
72  process.hltMuonDTDigis = cms.EDProducer( "DTUnpackingModule",
73  useStandardFEDid = cms.bool( True ),
74  maxFEDid = cms.untracked.int32( 779 ),
75  inputLabel = cms.InputTag( "rawDataCollector" ),
76  minFEDid = cms.untracked.int32( 770 ),
77  dataType = cms.string( "DDU" ),
78  readOutParameters = cms.PSet(
79  localDAQ = cms.untracked.bool( False ),
80  debug = cms.untracked.bool( False ),
81  rosParameters = cms.PSet(
82  localDAQ = cms.untracked.bool( False ),
83  debug = cms.untracked.bool( False ),
84  writeSC = cms.untracked.bool( True ),
85  readDDUIDfromDDU = cms.untracked.bool( True ),
86  readingDDU = cms.untracked.bool( True ),
87  performDataIntegrityMonitor = cms.untracked.bool( False )
88  ),
89  performDataIntegrityMonitor = cms.untracked.bool( False )
90  ),
91  dqmOnly = cms.bool( False )
92  )
93 
94  return process
95 
def customiseFor2017DtUnpacking(process)

◆ customiseFor2018Input()

def customizeHLTforCMSSW.customiseFor2018Input (   process)
Customise the HLT to run on Run 2 data/MC

Definition at line 211 of file customizeHLTforCMSSW.py.

References customiseBeamSpotFor2018Input(), customiseCTPPSFor2018Input(), customiseECALCalibrationsFor2018Input(), customiseEGammaRecoFor2018Input(), customiseHCALFor2018Input(), customisePixelGainForRun2Input(), and customisePixelL1ClusterThresholdForRun2Input().

211 def customiseFor2018Input(process):
212  """Customise the HLT to run on Run 2 data/MC"""
213  process = customisePixelGainForRun2Input(process)
215  process = customiseHCALFor2018Input(process)
216  process = customiseCTPPSFor2018Input(process)
217  process = customiseEGammaRecoFor2018Input(process)
218  process = customiseBeamSpotFor2018Input(process)
219  process = customiseECALCalibrationsFor2018Input(process)
220 
221  return process
222 
223 
def customisePixelL1ClusterThresholdForRun2Input(process)
def customiseECALCalibrationsFor2018Input(process)
def customiseHCALFor2018Input(process)
def customiseCTPPSFor2018Input(process)
def customiseFor2018Input(process)
def customiseEGammaRecoFor2018Input(process)
def customiseBeamSpotFor2018Input(process)
def customisePixelGainForRun2Input(process)

◆ customiseForOffline()

def customizeHLTforCMSSW.customiseForOffline (   process)

Definition at line 224 of file customizeHLTforCMSSW.py.

References common.esproducers_by_type(), and createfilelist.int.

Referenced by customizeHLTforCMSSW().

224 def customiseForOffline(process):
225  # For running HLT offline on Run-3 Data, use "(OnlineBeamSpotESProducer).timeThreshold = 1e6",
226  # in order to pick the beamspot that was actually used by the HLT (instead of a "fake" beamspot).
227  # These same settings can be used offline for Run-3 Data and Run-3 MC alike.
228  # Note: the products of the OnlineBeamSpotESProducer are used only
229  # if the configuration uses "(BeamSpotOnlineProducer).useTransientRecord = True".
230  # See CMSHLT-2271 and CMSHLT-2300 for further details.
231  for prod in esproducers_by_type(process, 'OnlineBeamSpotESProducer'):
232  prod.timeThreshold = int(1e6)
233 
234  return process
235 
236 
def esproducers_by_type(process, types)
Definition: common.py:21

◆ customiseHCALFor2018Input()

def customizeHLTforCMSSW.customiseHCALFor2018Input (   process)
Customise the HLT to run on Run 2 data/MC using the old readout for the HCAL barel

Definition at line 20 of file customizeHLTforCMSSW.py.

References customizeForNoTrackerDCS.producers_by_type().

Referenced by customiseFor2018Input().

20 def customiseHCALFor2018Input(process):
21  """Customise the HLT to run on Run 2 data/MC using the old readout for the HCAL barel"""
22 
23  for producer in producers_by_type(process, "HBHEPhase1Reconstructor"):
24  # switch on the QI8 processing for 2018 HCAL barrel
25  producer.processQIE8 = True
26 
27  # adapt CaloTowers threshold for 2018 HCAL barrel with only one depth
28  for producer in producers_by_type(process, "CaloTowersCreator"):
29  producer.HBThreshold1 = 0.7
30  producer.HBThreshold2 = 0.7
31  producer.HBThreshold = 0.7
32 
33  # adapt Particle Flow threshold for 2018 HCAL barrel with only one depth
34  from RecoParticleFlow.PFClusterProducer.particleFlowClusterHBHE_cfi import _thresholdsHB, _thresholdsHEphase1, _seedingThresholdsHB
35 
36  logWeightDenominatorHCAL2018 = cms.VPSet(
37  cms.PSet(
38  depths = cms.vint32(1, 2, 3, 4),
39  detector = cms.string('HCAL_BARREL1'),
40  logWeightDenominator = _thresholdsHB
41  ),
42  cms.PSet(
43  depths = cms.vint32(1, 2, 3, 4, 5, 6, 7),
44  detector = cms.string('HCAL_ENDCAP'),
45  logWeightDenominator = _thresholdsHEphase1
46  )
47  )
48 
49  for producer in producers_by_type(process, "PFRecHitProducer"):
50  if producer.producers[0].name.value() == 'PFHBHERecHitCreator':
51  producer.producers[0].qualityTests[0].cuts[0].threshold = _thresholdsHB
52 
53  for producer in producers_by_type(process, "PFClusterProducer"):
54  if producer.seedFinder.thresholdsByDetector[0].detector.value() == 'HCAL_BARREL1':
55  producer.seedFinder.thresholdsByDetector[0].seedingThreshold = _seedingThresholdsHB
56  producer.initialClusteringStep.thresholdsByDetector[0].gatheringThreshold = _thresholdsHB
57  producer.pfClusterBuilder.recHitEnergyNorms[0].recHitEnergyNorm = _thresholdsHB
58  producer.pfClusterBuilder.positionCalc.logWeightDenominatorByDetector = logWeightDenominatorHCAL2018
59  producer.pfClusterBuilder.allCellsPositionCalc.logWeightDenominatorByDetector = logWeightDenominatorHCAL2018
60 
61  for producer in producers_by_type(process, "PFMultiDepthClusterProducer"):
62  producer.pfClusterBuilder.allCellsPositionCalc.logWeightDenominatorByDetector = logWeightDenominatorHCAL2018
63 
64  # done
65  return process
66 
def producers_by_type(process, types)
def customiseHCALFor2018Input(process)

◆ customisePixelGainForRun2Input()

def customizeHLTforCMSSW.customisePixelGainForRun2Input (   process)
Customise the HLT to run on Run 2 data/MC using the old definition of the pixel calibrations

Up to 11.0.x, the pixel calibarations were fully specified in the configuration:
    VCaltoElectronGain      =   47
    VCaltoElectronGain_L1   =   50
    VCaltoElectronOffset    =  -60
    VCaltoElectronOffset_L1 = -670

Starting with 11.1.x, the calibrations for Run 3 were moved to the conditions, leaving in the configuration only:
    VCaltoElectronGain      =    1
    VCaltoElectronGain_L1   =    1
    VCaltoElectronOffset    =    0
    VCaltoElectronOffset_L1 =    0

Since the conditions for Run 2 have not been updated to the new scheme, the HLT configuration needs to be reverted.

Definition at line 96 of file customizeHLTforCMSSW.py.

References customizeForNoTrackerDCS.producers_by_type().

Referenced by customiseFor2018Input().

97  """Customise the HLT to run on Run 2 data/MC using the old definition of the pixel calibrations
98 
99  Up to 11.0.x, the pixel calibarations were fully specified in the configuration:
100  VCaltoElectronGain = 47
101  VCaltoElectronGain_L1 = 50
102  VCaltoElectronOffset = -60
103  VCaltoElectronOffset_L1 = -670
104 
105  Starting with 11.1.x, the calibrations for Run 3 were moved to the conditions, leaving in the configuration only:
106  VCaltoElectronGain = 1
107  VCaltoElectronGain_L1 = 1
108  VCaltoElectronOffset = 0
109  VCaltoElectronOffset_L1 = 0
110 
111  Since the conditions for Run 2 have not been updated to the new scheme, the HLT configuration needs to be reverted.
112  """
113  # revert the Pixel parameters to be compatible with the Run 2 conditions
114  for producer in producers_by_type(process, "SiPixelClusterProducer"):
115  producer.VCaltoElectronGain = 47
116  producer.VCaltoElectronGain_L1 = 50
117  producer.VCaltoElectronOffset = -60
118  producer.VCaltoElectronOffset_L1 = -670
119 
120  for pluginType in ["SiPixelRawToClusterCUDA", "SiPixelRawToClusterCUDAPhase1", "SiPixelRawToClusterCUDAHIonPhase1"]:
121  for producer in producers_by_type(process, pluginType):
122  producer.VCaltoElectronGain = 47
123  producer.VCaltoElectronGain_L1 = 50
124  producer.VCaltoElectronOffset = -60
125  producer.VCaltoElectronOffset_L1 = -670
126 
127  return process
128 
def producers_by_type(process, types)
def customisePixelGainForRun2Input(process)

◆ customisePixelL1ClusterThresholdForRun2Input()

def customizeHLTforCMSSW.customisePixelL1ClusterThresholdForRun2Input (   process)

Definition at line 129 of file customizeHLTforCMSSW.py.

References customizeForNoTrackerDCS.producers_by_type().

Referenced by customiseFor2018Input().

130  # revert the pixel Layer 1 cluster threshold to be compatible with Run2:
131  for producer in producers_by_type(process, "SiPixelClusterProducer"):
132  if hasattr(producer,"ClusterThreshold_L1"):
133  producer.ClusterThreshold_L1 = 2000
134  for pluginType in ["SiPixelRawToClusterCUDA", "SiPixelRawToClusterCUDAPhase1", "SiPixelRawToClusterCUDAHIonPhase1"]:
135  for producer in producers_by_type(process, pluginType):
136  if hasattr(producer,"clusterThreshold_layer1"):
137  producer.clusterThreshold_layer1 = 2000
138  for producer in producers_by_type(process, "SiPixelDigisClustersFromSoA"):
139  if hasattr(producer,"clusterThreshold_layer1"):
140  producer.clusterThreshold_layer1 = 2000
141 
142  return process
143 
def producers_by_type(process, types)
def customisePixelL1ClusterThresholdForRun2Input(process)

◆ customizeHLTfor42497()

def customizeHLTforCMSSW.customizeHLTfor42497 (   process)

Definition at line 237 of file customizeHLTforCMSSW.py.

References common.esproducers_by_type().

Referenced by customizeHLTforCMSSW().

237 def customizeHLTfor42497(process):
238  for producer in esproducers_by_type(process, 'SiPixelQualityESProducer'):
239  producer.siPixelQualityFromDbLabel = cms.string('')
240  producer.appendToDataLabel = cms.string('')
241  for parName in [
242  'siPixelQualityLabel',
243  'siPixelQualityLabel_RawToDigi',
244  ]:
245  if hasattr(producer, parName):
246  producer.__delattr__(parName)
247 
248  return process
249 
def esproducers_by_type(process, types)
Definition: common.py:21

◆ customizeHLTfor42943()

def customizeHLTforCMSSW.customizeHLTfor42943 (   process)

Definition at line 250 of file customizeHLTforCMSSW.py.

References customizeForNoTrackerDCS.producers_by_type().

Referenced by customizeHLTforCMSSW().

250 def customizeHLTfor42943(process):
251 
252  for prod in producers_by_type(process, 'ClusterCheckerEDProducer'):
253  if hasattr(prod, "MaxNumberOfCosmicClusters"):
254  prod.MaxNumberOfStripClusters = getattr(prod,"MaxNumberOfCosmicClusters")
255  prod.__delattr__("MaxNumberOfCosmicClusters")
256 
257  for prod in producers_by_type(process, 'SeedGeneratorFromRegionHitsEDProducer'):
258  if hasattr(prod, "ClusterCheckPSet"):
259  clustCheckPSet = getattr(prod,"ClusterCheckPSet")
260  prod.ClusterCheckPSet.MaxNumberOfStripClusters = getattr(clustCheckPSet,"MaxNumberOfCosmicClusters")
261  clustCheckPSet.__delattr__("MaxNumberOfCosmicClusters")
262 
263  return process
264 
265 # CMSSW version specific customizations
def producers_by_type(process, types)

◆ customizeHLTforCMSSW()

def customizeHLTforCMSSW.customizeHLTforCMSSW (   process,
  menuType = "GRun" 
)

Definition at line 266 of file customizeHLTforCMSSW.py.

References customiseForOffline(), customizeHLTfor42497(), and customizeHLTfor42943().

266 def customizeHLTforCMSSW(process, menuType="GRun"):
267 
268  process = customiseForOffline(process)
269 
270  # add call to action function in proper order: newest last!
271  # process = customiseFor12718(process)
272 
273  process = customizeHLTfor42497(process)
274  process = customizeHLTfor42943(process)
275 
276  return process
277 
def customizeHLTforCMSSW(process, menuType="GRun")