Skip to content

Instantly share code, notes, and snippets.

@ndawe
Created May 29, 2014 09:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ndawe/5187a2fd118719df71a2 to your computer and use it in GitHub Desktop.
Save ndawe/5187a2fd118719df71a2 to your computer and use it in GitHub Desktop.
class BCHCleaning(EventFilter):
"""
https://twiki.cern.ch/twiki/bin/view/AtlasProtected/BCHCleaningTool
"""
def __init__(self, tree, passthrough, datatype, **kwargs):
if not passthrough:
from externaltools import TileTripReader
from externaltools import BCHCleaningTool
from ROOT import Root
from ROOT import BCHTool
self.tree = tree
self.datatype = datatype
self.tiletool = Root.TTileTripReader()
self.tiletool.setTripFile(TileTripReader.get_resource("CompleteTripList_2011-2012.root"))
self.bchtool_data = BCHTool.BCHCleaningToolRoot()
self.bchtool_mc = BCHTool.BCHCleaningToolRoot()
self.bchtool_data.InitializeTool(True, self.tiletool, BCHCleaningTool.get_resource("FractionsRejectedJetsMC.root"))
self.bchtool_mc.InitializeTool(False, self.tiletool, BCHCleaningTool.get_resource("FractionsRejectedJetsMC.root"))
BCH_TOOLS.append(self.bchtool_data)
BCH_TOOLS.append(self.bchtool_mc)
super(BCHCleaning, self).__init__(passthrough=passthrough, **kwargs)
def passes(self, event):
if self.datatype in (datasets.DATA, datasets.MC, datasets.MCEMBED):
if self.datatype == datasets.DATA:
jet_tool = self.bchtool_data
runnumber = event.RunNumber
lbn = event.lbn
else:
jet_tool = self.bchtool_mc
runnumber = self.tree.RunNumber
lbn = self.tree.lbn
#jet_tool.SetSeed(314159 + event.EventNumber * 2)
for jet in event.jets:
jet.BCHMedium = jet_tool.IsBadMediumBCH(runnumber, lbn, jet.eta, jet.phi, jet.BCH_CORR_CELL, jet.emfrac, jet.pt)
jet.BCHTight = jet_tool.IsBadTightBCH(runnumber, lbn, jet.eta, jet.phi, jet.BCH_CORR_CELL, jet.emfrac, jet.pt)
for tau in event.taus:
tau.BCHMedium = jet_tool.IsBadMediumBCH(runnumber, lbn, tau.jet_eta, tau.jet_phi, tau.jet_BCH_CORR_CELL, tau.jet_emfrac, tau.jet_pt)
tau.BCHTight = jet_tool.IsBadTightBCH(runnumber, lbn, tau.jet_eta, tau.jet_phi, tau.jet_BCH_CORR_CELL, tau.jet_emfrac, tau.jet_pt)
elif self.datatype == datasets.EMBED:
# Do truth-matching to find out if MC taus
#self.bchtool_data.SetSeed(314159 + event.EventNumber * 2)
#self.bchtool_mc.SetSeed(314159 + event.EventNumber * 3)
runnumber = event.RunNumber
lbn = event.lbn
for jet in event.jets:
if jet.matched:
jet_tool = self.bchtool_mc
else:
jet_tool = self.bchtool_data
jet.BCHMedium = jet_tool.IsBadMediumBCH(runnumber, lbn, jet.eta, jet.phi, jet.BCH_CORR_CELL, jet.emfrac, jet.pt)
jet.BCHTight = jet_tool.IsBadTightBCH(runnumber, lbn, jet.eta, jet.phi, jet.BCH_CORR_CELL, jet.emfrac, jet.pt)
for tau in event.taus:
if tau.matched:
jet_tool = self.bchtool_mc
else:
jet_tool = self.bchtool_data
tau.BCHMedium = jet_tool.IsBadMediumBCH(runnumber, lbn, tau.jet_eta, tau.jet_phi, tau.jet_BCH_CORR_CELL, tau.jet_emfrac, tau.jet_pt)
tau.BCHTight = jet_tool.IsBadTightBCH(runnumber, lbn, tau.jet_eta, tau.jet_phi, tau.jet_BCH_CORR_CELL, tau.jet_emfrac, tau.jet_pt)
return True
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment