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
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])
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
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
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])
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])
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])
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])
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])
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])
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])
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()