def selHlt2Jpsi(name, hlt1Filter, triggers):
    """
    Filter the long track muon to be TOS on a HLT2 single muon trigger, for J/psi selection
    """
    Hlt2Jpsi = TisTosParticleTagger(name + "Hlt2Jpsi")
    #Hlt2Jpsi.TisTosSpecs = { "Hlt2SingleMuon.*Decision%TOS" : 0} # take all HLT2SingleMuon triggers
    Hlt2Jpsi.TisTosSpecs = triggers
    Hlt2Jpsi.ProjectTracksToCalo = False
    Hlt2Jpsi.CaloClustForCharged = False
    Hlt2Jpsi.CaloClustForNeutral = False
    Hlt2Jpsi.TOSFrac = {4: 0.0, 5: 0.0}
    Hlt2Jpsi.NoRegex = False
    #Hlt2Jpsi.PassOnAll = True # TESTING!
    #
    return Selection(name + "_SelHlt2Jpsi",
                     Algorithm=Hlt2Jpsi,
                     RequiredSelections=[hlt1Filter])
def selHlt1Z(name, longPartsFilter, triggers):
    """
    Filter the long track muon to be TOS on a HLT1 single muon trigger, for Z selection
    """
    Hlt1Z = TisTosParticleTagger(name + "Hlt1Z")
    #Hlt1Z.TisTosSpecs = { "Hlt1SingleMuonHighPTDecision%TOS" : 0}
    Hlt1Z.TisTosSpecs = triggers
    Hlt1Z.ProjectTracksToCalo = False
    Hlt1Z.CaloClustForCharged = False
    Hlt1Z.CaloClustForNeutral = False
    Hlt1Z.TOSFrac = {4: 0.0, 5: 0.0}
    Hlt1Z.NoRegex = True
    #Hlt1Z.PassOnAll = True # TESTING!
    #
    return Selection(name + "_SelHlt1Z",
                     Algorithm=Hlt1Z,
                     RequiredSelections=[longPartsFilter])
Beispiel #3
0
    def filterTisTos(self, name, DiMuonInput, myTisTosSpecs):

        from Configurables import TisTosParticleTagger
        if self.dbug:
            print "##  TOS requirement applied"

        myTagger = TisTosParticleTagger(name + "_TisTosTagger")
        myTagger.TisTosSpecs = myTisTosSpecs

        # To speed it up, TisTos only with tracking system
        myTagger.ProjectTracksToCalo = False
        myTagger.CaloClustForCharged = False
        myTagger.CaloClustForNeutral = False
        myTagger.TOSFrac = {4: 0.0, 5: 0.0}

        return Selection(name + "_SelTisTos",
                         Algorithm=myTagger,
                         RequiredSelections=[DiMuonInput])
Beispiel #4
0
def selHlt2BJpsiKK(
    name, longPartsFilter, triggers
):  # No HLT1 needed, as event in HLT1 already triggered with single muon
    """
    Filter the long track Kaon to be TUS on a HLT2 mu+track trigger, for B->J/psi K selection (mainly a speed up)
    """
    Hlt2BJpsiKK = TisTosParticleTagger(name + "Hlt2BJpsiKK")
    #Hlt2BJpsiKK.TisTosSpecs = { "Hlt2MuTrackDecision%TUS" : 0}  # TUS, not TOS, not a typo!!!
    Hlt2BJpsiKK.TisTosSpecs = triggers
    Hlt2BJpsiKK.ProjectTracksToCalo = False
    Hlt2BJpsiKK.CaloClustForCharged = False
    Hlt2BJpsiKK.CaloClustForNeutral = False
    Hlt2BJpsiKK.TOSFrac = {4: 0.0, 5: 0.0}
    Hlt2BJpsiKK.NoRegex = True
    #Hlt2BJpsiKK.PassOnAll = True # TESTING!
    #
    return Selection(name + "_SelHlt2BJpsiKK",
                     Algorithm=Hlt2BJpsiKK,
                     RequiredSelections=[longPartsFilter])
Beispiel #5
0
def oneTosMonitor(name="None", input=None, calo=False):

    from PhysSelPython.Wrappers import Selection, SelectionSequence
    from Configurables import TisTosParticleTagger, ParticleMonitor, PrintDecayTree
    Tosser = TisTosParticleTagger(name + "Tosser")
    Tosser.TisTosSpecs = {name + "Decision%TOS": 0}
    Tosser.ProjectTracksToCalo = calo
    Tosser.CaloClustForCharged = calo

    s1 = Selection("TOSPresel" + name,
                   Algorithm=Tosser,
                   RequiredSelections=[input])

    tools = ["MomentumPlotTool"]
    if ('Muon' in name): tools += ["MuonPlotTool"]
    plotter = ParticleMonitor(name + "TosMoni", PlotTools=tools)
    # Make things a bit faster
    if ('L0Hadron' in name): plotter.MotherCut = "PT>1*GeV"
    else: plotter.MotherCut = "PT>0.5*GeV"
    s2 = Selection("TOSSel" + name, Algorithm=plotter, RequiredSelections=[s1])
    ss = SelectionSequence("TOSSeq" + name, TopSelection=s2)
    return ss.sequence()