Created
May 29, 2014 09:53
-
-
Save ndawe/5187a2fd118719df71a2 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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