3 from PhysicsTools.SelectorUtils.centralIDRegistry
import central_id_registry
12 if not hasattr(cutflow,
'idName'):
13 raise Exception(
'InvalidVIDCutFlow',
'The cutflow configuation provided is malformed and does not have a specified name!')
14 if not hasattr(cutflow,
'cutFlow'):
15 raise Exception(
'InvalidVIDCutFlow',
'The cutflow configuration provided is malformed and does not have a specific cutflow!')
16 cutflow_md5 = central_id_registry.getMD5FromName(cutflow.idName)
17 isPOGApproved = cms.untracked.bool(
False)
18 if hasattr(cutflow,
'isPOGApproved'):
19 isPOGApproved = cutflow.isPOGApproved
20 del cutflow.isPOGApproved
21 vidproducer.physicsObjectIDs.append(
22 cms.PSet( idDefinition = cutflow,
23 isPOGApproved = isPOGApproved,
24 idMD5 = cms.string(cutflow_md5) )
26 sys.stderr.write(
'Added ID \'%s\' to %s\n'%(cutflow.idName.value(),vidproducer.label()))
31 for key
in patProducer.__dict__.keys():
32 if 'IDSources' in key:
33 patProducerIDs = getattr(patProducer,key)
35 userDatas = getattr(patProducer,key)
36 if patProducerIDs
is None:
37 raise Exception(
'StrangePatModule',
'%s does not have ID sources!'%patProducer.label())
39 raise Exception(
'StrangePatModule',
'%s does not have UserData sources!'%patProducer.label())
40 setattr(patProducerIDs,idName,cms.InputTag(
'%s:%s'%(idProducer,idName)))
42 if( len(userDatas.userClasses.src) == 1
and
43 type(userDatas.userClasses.src[0])
is str
and
44 userDatas.userClasses.src[0] ==
'' ):
45 userDatas.userClasses.src = cms.VInputTag(cms.InputTag(
'%s:%s'%(idProducer,idName)))
47 userDatas.userClasses.src.append(cms.InputTag(
'%s:%s'%(idProducer,idName)))
48 sys.stderr.write(
'\t--- %s:%s added to %s\n'%(idProducer,idName,patProducer.label()))
52 idmod= __import__(id_module_name, globals(), locals(), [
'idName',
'cutFlow'])
53 for name
in dir(idmod):
54 item = getattr(idmod,name)
55 if hasattr(item,
'idName')
and hasattr(item,
'cutFlow'):
56 setupFunction(process,item,patProducer,addUserData)
70 process.load(
'RecoEgamma.ElectronIdentification.egmGsfElectronIDs_cff')
72 if( len(process.egmGsfElectronIDs.physicsObjectIDs) > 0 ):
73 process.egmGsfElectronIDs.physicsObjectIDs = cms.VPSet()
74 dataFormatString =
"Undefined"
75 if dataFormat == DataFormat.AOD:
77 dataFormatString =
"AOD"
78 elif dataFormat == DataFormat.MiniAOD:
81 process.egmGsfElectronIDs.physicsObjectSrc = cms.InputTag(
'slimmedElectrons')
82 dataFormatString =
"MiniAOD"
84 raise Exception(
'InvalidVIDDataFormat',
'The requested data format is different from AOD or MiniAOD')
86 sys.stderr.write(
'Added \'egmGsfElectronIDs\' to process definition (%s format)!\n' % dataFormatString)
89 if not hasattr(process,
'egmGsfElectronIDs'):
90 raise Exception(
'VIDProducerNotAvailable',
'egmGsfElectronIDs producer not available in process!')
93 if hasattr(process,
'patElectrons')
or patProducer
is not None:
94 if patProducer
is None:
95 patProducer = process.patElectrons
96 idName = cutflow.idName.value()
106 process.load(
'RecoMuon.MuonIdentification.muoMuonIDs_cff')
108 if( len(process.muonMuonIDs.physicsObjectIDs) > 0 ):
109 process.muoMuonIDs.physicsObjectIDs = cms.VPSet()
110 sys.stderr.write(
'Added \'muoMuonIDs\' to process definition!\n')
113 if not hasattr(process,
'muoMuonIDs'):
114 raise Exception(
'VIDProducerNotAvailable',
'muoMuonIDs producer not available in process!')
117 if hasattr(process,
'patMuons')
or patProducer
is not None:
118 if patProducer
is None:
119 patProducer = process.patMuons
120 idName = cutflow.idName.value()
130 process.load(
'RecoEgamma.PhotonIdentification.egmPhotonIDs_cff')
132 if( len(process.egmPhotonIDs.physicsObjectIDs) > 0 ):
133 process.egmPhotonIDs.physicsObjectIDs = cms.VPSet()
134 dataFormatString =
"Undefined"
135 if dataFormat == DataFormat.AOD:
137 dataFormatString =
"AOD"
138 elif dataFormat == DataFormat.MiniAOD:
141 process.egmPhotonIDs.physicsObjectSrc = cms.InputTag(
'slimmedPhotons')
142 dataFormatString =
"MiniAOD"
144 raise Exception(
'InvalidVIDDataFormat',
'The requested data format is different from AOD or MiniAOD')
146 sys.stderr.write(
'Added \'egmPhotonIDs\' to process definition (%s format)!\n' % dataFormatString)
149 if not hasattr(process,
'egmPhotonIDs'):
150 raise Exception(
'VIDProducerNotAvailable',
'egmPhotonIDs producer not available in process!\n')
153 if hasattr(process,
'patPhotons')
or patProducer
is not None:
154 if patProducer
is None:
155 patProducer = process.patPhotons
156 idName = cutflow.idName.value()
if(conf.exists("allCellsPositionCalc"))