Пример #1
0
 def _makeTISTOSFilter(self, name, specs):
     from Configurables import TisTosParticleTagger
     tisTosFilter = TisTosParticleTagger(name + 'TISTOSFilter')
     tisTosFilter.TisTosSpecs = specs
     tisTosFilter.ProjectTracksToCalo = False
     tisTosFilter.CaloClustForCharged = False
     tisTosFilter.CaloClustForNeutral = False
     tisTosFilter.TOSFrac = {4: 0.0, 5: 0.0}
     return tisTosFilter
Пример #2
0
def makeTISTOS(name, sel, trigger):
    from Configurables import TisTosParticleTagger
    tisTosFilter = TisTosParticleTagger(name + "_Tagger")
    tisTosFilter.TisTosSpecs = {trigger: 0}
    tisTosFilter.ProjectTracksToCalo = False
    tisTosFilter.CaloClustForCharged = False
    tisTosFilter.CaloClustForNeutral = False
    #tisTosFilter.TOSFrac = { 4:0.0, 5:0.0 }
    return Selection(name, Algorithm=tisTosFilter, RequiredSelections=[sel])
Пример #3
0
def makeTOSFilter(name):
    specs = {'Hlt2CharmHadMinBiasD02KPiDecision%TOS': 0}
    from Configurables import TisTosParticleTagger
    tisTosFilter = TisTosParticleTagger(name + 'TOSFilter')
    tisTosFilter.TisTosSpecs = specs
    tisTosFilter.ProjectTracksToCalo = False
    tisTosFilter.CaloClustForCharged = False
    tisTosFilter.CaloClustForNeutral = False
    tisTosFilter.TOSFrac = {4: 0.0, 5: 0.0}
    return tisTosFilter
Пример #4
0
def makeTISTOSFilter(name):
    specs = {'Hlt2Topo.*Decision%TOS':0,
             'Hlt2Topo.*Decision%TIS':0,
             'Hlt2IncPhi.*Decision%TOS':0,'Hlt2IncPhi.*Decision%TIS':0}
    from Configurables import TisTosParticleTagger
    tisTosFilter = TisTosParticleTagger(name+'TISTOSFilter')
    tisTosFilter.TisTosSpecs = specs
    tisTosFilter.ProjectTracksToCalo = False
    tisTosFilter.CaloClustForCharged = False
    tisTosFilter.CaloClustForNeutral = False
    tisTosFilter.TOSFrac = {4:0.0, 5:0.0}
    return tisTosFilter
Пример #5
0
def makeTISTOSSel(name, sel, trigger):
    from Configurables import TisTosParticleTagger

    tisTosFilter = TisTosParticleTagger(name + "Filter")
    tisTosFilter.TisTosSpecs = {trigger: 0}
    # the rest ist only to speed it up... (TISTOSsing only done with tracking system)
    tisTosFilter.ProjectTracksToCalo = False
    tisTosFilter.CaloClustForCharged = False
    tisTosFilter.CaloClustForNeutral = False
    tisTosFilter.TOSFrac = {4: 0.0, 5: 0.0}

    return Selection(name, Algorithm=tisTosFilter, RequiredSelections=[sel])
Пример #6
0
    def filterTisTos(self, name, DiMuonInput, myTisTosSpecs):
        from Configurables import TisTosParticleTagger

        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])
Пример #7
0
def filterHLT2ForBJpsiK(name, BJpsiKSel, triggers):
    """
    Filter B->J/psi K to be triggered on mu+track for the long track muon and Kaon
    """
    Hlt2BJpsiK = TisTosParticleTagger(name + "_Hlt2BJpsiK")
    #Hlt2BJpsiK.TisTosSpecs = { "Hlt2MuTrackDecision%TOS" : 0}
    Hlt2BJpsiK.TisTosSpecs = triggers
    Hlt2BJpsiK.ProjectTracksToCalo = False
    Hlt2BJpsiK.CaloClustForCharged = False
    Hlt2BJpsiK.CaloClustForNeutral = False
    Hlt2BJpsiK.TOSFrac = {4: 0.0, 5: 0.0}
    Hlt2BJpsiK.NoRegex = True
    #Hlt2BJpsiK.PassOnAll = True
    return Selection(name,
                     Algorithm=Hlt2BJpsiK,
                     RequiredSelections=[BJpsiKSel])
Пример #8
0
def selHlt2BJpsiKMu(name, hlt1Filter, triggers):
    """
    Filter the long track muon to be TUS on a HLT2 mu+track trigger, for B->J/psi K selection (mainly a speed up)
    """
    Hlt2BJpsiKMu = TisTosParticleTagger(name + "Hlt2BJpsiKMu")
    #Hlt2BJpsiKMu.TisTosSpecs = { "Hlt2MuTrackDecision%TUS" : 0} # TUS, not TOS, not a typo!!!
    Hlt2BJpsiKMu.TisTosSpecs = triggers
    Hlt2BJpsiKMu.ProjectTracksToCalo = False
    Hlt2BJpsiKMu.CaloClustForCharged = False
    Hlt2BJpsiKMu.CaloClustForNeutral = False
    Hlt2BJpsiKMu.TOSFrac = {4: 0.0, 5: 0.0}
    Hlt2BJpsiKMu.NoRegex = True
    #Hlt2BJpsiKMu.PassOnAll = True # TESTING!
    #
    return Selection(name + "_SelHlt2BJpsiKMu",
                     Algorithm=Hlt2BJpsiKMu,
                     RequiredSelections=[hlt1Filter])
Пример #9
0
def selHlt2Z(name, hlt1Filter, triggers):
    """
    Filter the long track muon to be TOS on a HLT2 single muon trigger, for Z selection
    """
    Hlt2Z = TisTosParticleTagger(name + "Hlt2Z")
    #Hlt2Z.TisTosSpecs = { "Hlt2SingleMuonHighPTDecision%TOS" : 0}
    Hlt2Z.TisTosSpecs = triggers
    Hlt2Z.ProjectTracksToCalo = False
    Hlt2Z.CaloClustForCharged = False
    Hlt2Z.CaloClustForNeutral = False
    Hlt2Z.TOSFrac = {4: 0.0, 5: 0.0}
    Hlt2Z.NoRegex = True
    #Hlt2Z.PassOnAll = True # TESTING!
    #
    return Selection(name + "_SelHlt2Z",
                     Algorithm=Hlt2Z,
                     RequiredSelections=[hlt1Filter])
Пример #10
0
def selHlt1Upsilon(name, longPartsFilter, triggers):
    """
    Filter the long track muon to be TOS on a HLT1 single muon trigger, for Upsilon selection
    """
    Hlt1Upsilon = TisTosParticleTagger(name + "Hlt1Upsilon")
    #Hlt1Upsilon.TisTosSpecs = { "Hlt1TrackMuonDecision%TOS" : 0, "Hlt1SingleMuonNoIPDecision%TOS" : 0, "Hlt1SingleMuonHighPTDecision%TOS" : 0}
    Hlt1Upsilon.TisTosSpecs = triggers
    Hlt1Upsilon.ProjectTracksToCalo = False
    Hlt1Upsilon.CaloClustForCharged = False
    Hlt1Upsilon.CaloClustForNeutral = False
    Hlt1Upsilon.TOSFrac = {4: 0.0, 5: 0.0}
    Hlt1Upsilon.NoRegex = True
    #Hlt1Upsilon.PassOnAll = True # TESTING!
    #
    return Selection(name + "_SelHlt1Upsilon",
                     Algorithm=Hlt1Upsilon,
                     RequiredSelections=[longPartsFilter])
Пример #11
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])
Пример #12
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()