File indexing completed on 2023-03-17 11:09:58
0001 import FWCore.ParameterSet.Config as cms
0002 from functools import reduce
0003
0004
0005
0006
0007 use_new_method = False
0008
0009
0010 if not use_new_method:
0011
0012
0013
0014
0015 class dummy:
0016 pass
0017
0018 samples=dummy()
0019 paths=dummy()
0020
0021
0022
0023
0024
0025 samples.names = ['Wenu',
0026 'Zee',
0027 'GammaJet',
0028 'DiGamma']
0029 samples.pdgid = [ 11,
0030 11,
0031 22,
0032 22]
0033 samples.num = [1,
0034 2,
0035 1,
0036 2]
0037
0038
0039
0040 paths.Wenu = [
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057 ]
0058
0059 paths.Zee = paths.Wenu + [
0060
0061
0062
0063
0064 ]
0065
0066 paths.GammaJet = [
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080 ]
0081
0082 paths.DiGamma = [
0083
0084
0085 ]
0086
0087 pathlumi = { 'HLT_Ele17_SW_TighterEleIdIsol_L1RDQM': '8e29',
0088 'HLT_Ele10_LW_L1RDQM':'8e29',
0089 'HLT_Ele15_SW_L1RDQM':'1e31',
0090 'HLT_Ele10_LW_EleId_L1RDQM':'8e29',
0091 'HLT_Ele15_SiStrip_L1RDQM':'8e29',
0092 'HLT_DoubleEle5_SW_L1RDQM':'8e29',
0093 'HLT_Photon10_L1R_DQM':'8e29',
0094 'HLT_Photon15_TrackIso_L1R_DQM':'8e29',
0095 'HLT_Photon15_LooseEcalIso_L1R_DQM':'8e29',
0096 'HLT_Photon20_Cleaned_L1R_DQM':'8e29',
0097 'HLT_DoublePhoton10_L1R_DQM':'8e29',
0098 'HLT_Photon25_L1R_DQM':'1e31',
0099 'HLT_Photon25_LooseEcalIso_TrackIso_L1R_DQM':'1e31'}
0100
0101
0102 for path in paths.Wenu + paths.Zee + paths.GammaJet + paths.DiGamma:
0103 pathlumi[path] = '8e29'
0104
0105 lumiprocess = { '8e29':'HLT',
0106 '1e31':'HLT'
0107 }
0108
0109
0110
0111
0112
0113
0114 genp = cms.EDFilter("PdgIdAndStatusCandViewSelector",
0115 status = cms.vint32(3),
0116 src = cms.InputTag("genParticles"),
0117 pdgId = cms.vint32(11)
0118 )
0119
0120 fiducial = cms.EDFilter("EtaPtMinCandViewSelector",
0121 src = cms.InputTag("genp"),
0122 etaMin = cms.double(-2.5),
0123 etaMax = cms.double(2.5),
0124 ptMin = cms.double(2.0)
0125 )
0126
0127
0128
0129
0130
0131 tmp = cms.SequencePlaceholder("tmp")
0132 egammaSelectors = cms.Sequence(tmp)
0133 egammaValidators= cms.Sequence(tmp)
0134
0135
0136 for samplenum in range(len(samples.names)):
0137
0138
0139 genpartname = "genpart"+samples.names[samplenum]
0140 globals()[genpartname] = genp.clone()
0141 setattr(globals()[genpartname],"pdgId",cms.vint32(samples.pdgid[samplenum]) )
0142 egammaSelectors *= globals()[genpartname]
0143
0144
0145 fiducialname = "fiducial"+samples.names[samplenum]
0146 globals()[fiducialname] = fiducial.clone()
0147 setattr(globals()[fiducialname],"src",cms.InputTag(genpartname) )
0148 egammaSelectors *= globals()[fiducialname]
0149
0150
0151 for trig in getattr(paths,samples.names[samplenum]):
0152 trigname = trig + samples.names[samplenum]
0153
0154 filename = "HLTriggerOffline.Egamma."+trig+"_cfi"
0155 trigdef =__import__( filename )
0156 import sys
0157 globals()[trigname] = getattr(sys.modules[filename],trig).clone()
0158 setattr(globals()[trigname],"cutcollection",cms.InputTag(fiducialname))
0159 setattr(globals()[trigname],"cutnum",cms.int32( samples.num[samplenum] ))
0160 setattr(globals()[trigname],"pdgGen",cms.int32( samples.pdgid[samplenum]))
0161 getattr(globals()[trigname],'triggerobject').setProcessName( lumiprocess[pathlumi[trig]] )
0162 for filterpset in getattr(globals()[trigname],'filters'):
0163 getattr(filterpset,'HLTCollectionLabels').setProcessName( lumiprocess[pathlumi[trig]] )
0164 for isocollections in getattr(filterpset,'IsoCollections'):
0165 isocollections.setProcessName( lumiprocess[pathlumi[trig]])
0166
0167 egammaValidators *= globals()[trigname]
0168
0169
0170 egammaSelectors.remove(tmp)
0171 egammaValidators.remove(tmp)
0172
0173
0174 egammaValidationSequence = cms.Sequence( egammaValidators )
0175
0176 else:
0177
0178
0179
0180
0181 import sys, os
0182
0183
0184 msgPrefix = "[" + os.path.basename(__file__) + "]"
0185
0186 import HLTriggerOffline.Egamma.EgammaHLTValidationUtils as EgammaHLTValidationUtils
0187
0188
0189
0190
0191 configData = {
0192 "singleElectron": { "genPid" : 11, "numGenerated" : 1,},
0193 "doubleElectron": { "genPid" : 11, "numGenerated" : 2 },
0194 "singlePhoton": { "genPid" : 22, "numGenerated" : 1 },
0195 "doublePhoton": { "genPid" : 22, "numGenerated" : 2 },
0196 }
0197
0198
0199
0200
0201
0202
0203
0204 egammaSelectors = []
0205
0206 for hltPathCategory, thisCategoryData in configData.items():
0207
0208
0209
0210
0211
0212 generatorRequirementSequence = EgammaHLTValidationUtils.makeGeneratedParticleAndFiducialVolumeFilter(None,
0213 thisCategoryData['genPid'],
0214 thisCategoryData['numGenerated'])
0215
0216
0217
0218
0219 for module in EgammaHLTValidationUtils.getModulesOfSequence(generatorRequirementSequence):
0220 globals()[module.label_()] = module
0221
0222
0223
0224
0225 del module
0226
0227 egammaSelectors.append(generatorRequirementSequence)
0228
0229
0230
0231
0232
0233 egammaValidators = []
0234 egammaValidatorsFS = []
0235
0236 for isFastSim, validators in (
0237 (False, egammaValidators),
0238 (True, egammaValidatorsFS),
0239 ):
0240
0241
0242
0243
0244 refProcess = cms.Process("REF")
0245
0246 if isFastSim:
0247 refProcess.load("FastSimulation.Configuration.HLT_GRun_cff")
0248 else:
0249 refProcess.load("HLTrigger.Configuration.HLT_GRun_cff")
0250
0251
0252
0253 pathsByCategory = EgammaHLTValidationUtils.findEgammaPaths(refProcess)
0254
0255 for hltPathCategory, thisCategoryData in configData.items():
0256
0257
0258 paths = pathsByCategory[hltPathCategory]
0259
0260
0261
0262
0263 path = None
0264 dqmModule = None
0265
0266 for path in paths:
0267
0268
0269 pathName = path.label_()
0270
0271
0272
0273
0274
0275
0276
0277 moduleCXXtypes = EgammaHLTValidationUtils.getCXXTypesOfPath(refProcess,path)
0278
0279
0280 hasProblematicType = False
0281
0282 for problematicType in [
0283
0284 'HLTEgammaTriggerFilterObjectWrapper',
0285 'EgammaHLTPhotonTrackIsolationProducersRegional',
0286 ]:
0287
0288 if problematicType in moduleCXXtypes:
0289
0290 hasProblematicType = True
0291 break
0292
0293 if hasProblematicType:
0294 continue
0295
0296
0297
0298 dqmModuleName = pathName
0299 if isFastSim:
0300 dqmModuleName = dqmModuleName + "FastSim"
0301
0302 dqmModuleName = dqmModuleName + "_DQM"
0303
0304 dqmModule = EgammaHLTValidationUtils.EgammaDQMModuleMaker(refProcess, pathName,
0305 thisCategoryData['genPid'],
0306 thisCategoryData['numGenerated']
0307 ).getResult()
0308
0309
0310 globals()[dqmModuleName] = dqmModule
0311
0312
0313 validators.append(dqmModule)
0314
0315
0316
0317
0318
0319 del path
0320 del dqmModule
0321
0322
0323
0324
0325
0326 del refProcess
0327
0328
0329
0330
0331
0332
0333 import operator
0334
0335 egammaSelectors = cms.Sequence(reduce(operator.mul, egammaSelectors))
0336
0337
0338 egammaValidationSequence = cms.Sequence(reduce(operator.mul, egammaValidators))
0339 egammaValidationSequenceFS = cms.Sequence(reduce(operator.mul, egammaValidatorsFS))
0340
0341
0342