class JetIsPileup(EventFilter): """ must be applied before any jet selection """ def __init__(self, **kwargs): super(JetIsPileup, self).__init__(**kwargs) if not self.passthrough: # from externaltools import JVFUncertaintyTool as JVFUncertaintyTool2012 from ROOT import JVFUncertaintyTool self.tool = JVFUncertaintyTool("AntiKt4LCTopo") def passes(self, event): # collect truth jets truejets = VectorTLorentzVector() for truejet in event.truejets: if truejet.pt() > 10e3: truejets.push_back(truejet.p4()) # test each jet for jet in event.jets: ispileup = self.tool.isPileUpJet(jet.p4(), truejets) jet.ispileup = ispileup return True