Skip to content

Commit

Permalink
add in embedding control from 74X to 75X to vid tools
Browse files Browse the repository at this point in the history
  • Loading branch information
lgray committed Aug 7, 2015
1 parent 84b299e commit 25ff168
Showing 1 changed file with 16 additions and 15 deletions.
31 changes: 16 additions & 15 deletions PhysicsTools/SelectorUtils/python/tools/vid_id_tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ def setupVIDSelection(vidproducer,cutflow):
)
sys.stderr.write('Added ID \'%s\' to %s\n'%(cutflow.idName.value(),vidproducer.label()))

def addVIDSelectionToPATProducer(patProducer,idProducer,idName):
def addVIDSelectionToPATProducer(patProducer,idProducer,idName,addUserData=True):
patProducerIDs = None
userDatas = None
for key in patProducer.__dict__.keys():
Expand All @@ -38,21 +38,22 @@ def addVIDSelectionToPATProducer(patProducer,idProducer,idName):
if userDatas is None:
raise Exception('StrangePatModule','%s does not have UserData sources!'%patProducer.label())
setattr(patProducerIDs,idName,cms.InputTag('%s:%s'%(idProducer,idName)))
if( len(userDatas.userClasses.src) == 1 and
type(userDatas.userClasses.src[0]) is str and
userDatas.userClasses.src[0] == '' ):
userDatas.userClasses.src = cms.VInputTag(cms.InputTag('%s:%s'%(idProducer,idName)))
else:
userDatas.userClasses.src.append(cms.InputTag('%s:%s'%(idProducer,idName)))
sys.stderr.write('\t--- %s:%s added to %s\n'%(idProducer,idName,patProducer.label()))

def setupAllVIDIdsInModule(process,id_module_name,setupFunction,patProducer=None):
if( addUserData ):
if( len(userDatas.userClasses.src) == 1 and
type(userDatas.userClasses.src[0]) is str and
userDatas.userClasses.src[0] == '' ):
userDatas.userClasses.src = cms.VInputTag(cms.InputTag('%s:%s'%(idProducer,idName)))
else:
userDatas.userClasses.src.append(cms.InputTag('%s:%s'%(idProducer,idName)))
sys.stderr.write('\t--- %s:%s added to %s\n'%(idProducer,idName,patProducer.label()))

def setupAllVIDIdsInModule(process,id_module_name,setupFunction,patProducer=None,addUserData=True):
# idmod = importlib.import_module(id_module_name)
idmod= __import__(id_module_name, globals(), locals(), ['idName','cutFlow'])
for name in dir(idmod):
item = getattr(idmod,name)
if hasattr(item,'idName') and hasattr(item,'cutFlow'):
setupFunction(process,item,patProducer)
setupFunction(process,item,patProducer,addUserData)

# Supported data formats defined via "enum"
class DataFormat:
Expand Down Expand Up @@ -81,7 +82,7 @@ def switchOnVIDElectronIdProducer(process, dataFormat):
#
sys.stderr.write('Added \'egmGsfElectronIDs\' to process definition (%s format)!\n' % dataFormatString)

def setupVIDElectronSelection(process,cutflow,patProducer=None):
def setupVIDElectronSelection(process,cutflow,patProducer=None,addUserData=True):
if not hasattr(process,'egmGsfElectronIDs'):
raise Exception('VIDProducerNotAvailable','egmGsfElectronIDs producer not available in process!')
setupVIDSelection(process.egmGsfElectronIDs,cutflow)
Expand All @@ -90,7 +91,7 @@ def setupVIDElectronSelection(process,cutflow,patProducer=None):
if patProducer is None:
patProducer = process.patElectrons
idName = cutflow.idName.value()
addVIDSelectionToPATProducer(patProducer,'egmGsfElectronIDs',idName)
addVIDSelectionToPATProducer(patProducer,'egmGsfElectronIDs',idName,addUserData)

####
# Muons
Expand Down Expand Up @@ -148,7 +149,7 @@ def switchOnVIDPhotonIdProducer(process, dataFormat):
#
sys.stderr.write('Added \'egmPhotonIDs\' to process definition (%s format)!\n' % dataFormatString)

def setupVIDPhotonSelection(process,cutflow,patProducer=None):
def setupVIDPhotonSelection(process,cutflow,patProducer=None,addUserData=True):
if not hasattr(process,'egmPhotonIDs'):
raise Exception('VIDProducerNotAvailable','egmPhotonIDs producer not available in process!\n')
setupVIDSelection(process.egmPhotonIDs,cutflow)
Expand All @@ -157,6 +158,6 @@ def setupVIDPhotonSelection(process,cutflow,patProducer=None):
if patProducer is None:
patProducer = process.patPhotons
idName = cutflow.idName.value()
addVIDSelectionToPATProducer(patProducer,'egmPhotonIDs',idName)
addVIDSelectionToPATProducer(patProducer,'egmPhotonIDs',idName,addUserData)


0 comments on commit 25ff168

Please sign in to comment.