예제 #1
0
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