def MakeVeloParticles(self, name, particle, protoParticlesMaker): particleMaker = NoPIDsParticleMaker("For%sParticleMaker%s" % (self.name, name), Particle=particle) particleMaker.Input = self.VeloProtoOutputLocation DataOnDemandSvc().AlgMap.update({ "/Event/Phys/" + particleMaker.name() + '/Particles': particleMaker.getFullName(), "/Event/Phys/" + particleMaker.name() + '/Vertices': particleMaker.getFullName() }) AllVeloParticles = Selection("For%sSelAllVeloParts%s" % (self.name, name), Algorithm=particleMaker, RequiredSelections=[protoParticlesMaker], InputDataSetter=None) ### filter on the IP of the velo tracks return Selection( "For%sSelVeloParts%s" % (self.name, name), Algorithm=FilterDesktop( name + "For%sFilterVeloTrackIP%s" % (self.name, name), Code="(MIPDV(PRIMARY) > %(VeloMINIP)s)" % self.__confdict__), RequiredSelections=[AllVeloParticles])
def makeAllParticles(name, trackcont, particle): particleMaker = NoPIDsParticleMaker(name, Particle=particle) particleMaker.Input = "Rec/ProtoP/" + trackcont + "ProtoPMaker" DataOnDemandSvc().AlgMap.update({ "/Event/Phys/" + particleMaker.name() + '/Particles': particleMaker.getFullName(), "/Event/Phys/" + particleMaker.name() + '/Vertices': particleMaker.getFullName() })
def selMuonTTParts(name, protoParticlesMaker): """ Make Particles out of the muonTT ProtoParticles """ MuonTTParts = NoPIDsParticleMaker(name + "MuonTTParts") MuonTTParts.Particle = 'muon' MuonTTParts.addTool(TrackSelector) MuonTTParts.TrackSelector.TrackTypes = ["Long"] MuonTTParts.Input = "Rec/" + name + "_SelMuonTTPParts/ProtoParticles" MuonTTParts.OutputLevel = 4 # return Selection(name + "_SelMuonTTParts", Algorithm=MuonTTParts, RequiredSelections=[protoParticlesMaker], InputDataSetter=None)
def makeMyMuons(name, protoParticlesMaker): """ Make Particles out of the muon ProtoParticles """ particleMaker = NoPIDsParticleMaker(name+"ParticleMaker" , Particle = "Muon") particleMaker.Input = "Rec/ProtoP/"+name+"ProtoPMaker/ProtoParticles" #particleMaker.OutputLevel = 0 DataOnDemandSvc().AlgMap.update( { "/Event/Phys/" + particleMaker.name() + '/Particles' : particleMaker.getFullName(), "/Event/Phys/" + particleMaker.name() + '/Vertices' : particleMaker.getFullName() } ) return Selection(name+"SelVeloMuonParts", Algorithm = particleMaker, RequiredSelections = [protoParticlesMaker], InputDataSetter=None)
def configIso(): from Configurables import ChargedProtoParticleMaker, DaVinci veloprotos = ChargedProtoParticleMaker("ProtoPMaker") veloprotos.Inputs = ["Rec/Track/Best"] veloprotos.Output = "Rec/ProtoP/myProtoPMaker/ProtoParticles" DaVinci().appendToMainSequence( [ veloprotos ]) from Configurables import ProtoParticleCALOFilter, CombinedParticleMaker,NoPIDsParticleMaker from CommonParticles.Utils import trackSelector, updateDoD algorithm = NoPIDsParticleMaker('StdNoPIDsVeloPions', Particle = 'pion', ) algorithm.Input = "Rec/ProtoP/myProtoPMaker/ProtoParticles" selector = trackSelector ( algorithm , trackTypes = ['Velo'] ) locations = updateDoD ( algorithm ) DaVinci().appendToMainSequence( [ algorithm ])
name = "Lambdab2Lcmunu" veloprotos = ChargedProtoParticleMaker(name + "ProtoPMaker") veloprotos.Inputs = ["Rec/Track/Best"] veloprotos.Output = "Rec/ProtoP/myProtoPMaker/ProtoParticles" DaVinci().appendToMainSequence([veloprotos]) from Gaudi.Configuration import * from Configurables import ProtoParticleCALOFilter, CombinedParticleMaker, NoPIDsParticleMaker from CommonParticles.Utils import * algorithm = NoPIDsParticleMaker( 'StdNoPIDsVeloPions', Particle='pion', ) algorithm.Input = "Rec/ProtoP/myProtoPMaker/ProtoParticles" selector = trackSelector(algorithm, trackTypes=['Velo']) locations = updateDoD(algorithm) DaVinci().appendToMainSequence([algorithm]) ############################################################################################## ##### TOOLS AND TRIGGERS AND STRIPPING LINES AND LOKI VARIABLES ############################################################################################## enablePacking = True from Configurables import DecayTreeTuple, FitDecayTrees, TupleToolRecoStats, TupleToolTrigger, TupleToolSubMass from Configurables import TupleToolTISTOS, CondDB, SelDSTWriter, TupleToolL0Calo from Configurables import TupleToolTrackInfo, TupleToolRICHPid, TupleToolGeometry, TupleToolPid from Configurables import TupleToolANNPID from Configurables import TupleToolSLTruth
#hadronProtos = tracking.hlt2ChargedNoPIDsProtos( ) caloProtos = tracking.hlt2ChargedAllPIDsProtos() muonProtos = tracking.hlt2ChargedAllPIDsProtos() hadronProtos = tracking.hlt2ChargedAllPIDsProtos() ########################################################################## # # Neutral protoparticles # neutralProtos = tracking.hlt2NeutralProtos() ########################################################################## # Make the pions # Hlt2NoCutsPions = NoPIDsParticleMaker("Hlt2NoCutsPions") Hlt2NoCutsPions.Input = hadronProtos.outputSelection() Hlt2NoCutsPions.Output = 'Hlt2/Hlt2NoCutsPions/Particles' Hlt2NoCutsPions.Particle = "pion" Hlt2NoCutsPions.WriteP2PVRelations = False ########################################################################## # Make the kaons # Hlt2NoCutsKaons = Hlt2NoCutsPions.clone("Hlt2NoCutsKaons") Hlt2NoCutsKaons.Output = 'Hlt2/Hlt2NoCutsKaons/Particles' Hlt2NoCutsKaons.Particle = "kaon" ########################################################################## # Make the protons # Hlt2NoCutsProtons = Hlt2NoCutsPions.clone("Hlt2NoCutsProtons") Hlt2NoCutsProtons.Output = 'Hlt2/Hlt2NoCutsProtons/Particles' Hlt2NoCutsProtons.Particle = "proton"
# Customize DaVinci main sequence # ################################### from Configurables import ChargedProtoParticleMaker from Configurables import NoPIDsParticleMaker from CommonParticles.Utils import trackSelector, updateDoD # Provide required information for VELO pions. ms_all_protos = ChargedProtoParticleMaker(name='MyProtoPMaker') ms_all_protos.Inputs = ['Rec/Track/Best'] ms_all_protos.Output = 'Rec/ProtoP/MyProtoPMaker/ProtoParticles' # NOTE: The name 'StdNoPIDsVeloPions' is hard-coded in the tuple tool, so the # name should not be changed. ms_velo_pions = NoPIDsParticleMaker('StdNoPIDsVeloPions', Particle='pion') ms_velo_pions.Input = ms_all_protos.Output trackSelector(ms_velo_pions, trackTypes=['Velo']) updateDoD(ms_velo_pions) DaVinci().appendToMainSequence([ms_all_protos, ms_velo_pions]) ####################### # Particle references # ####################### if not DaVinci().Simulation: stream = 'Dimuon' else: stream = 'AllStreams'
Hlt2TagAndProbeMuons.Particle = "muon" Hlt2TagAndProbeMuons.addTool(ProtoParticleMUONFilter('Muon')) Hlt2TagAndProbeMuons.Muon.Selection = ["RequiresDet='MUON' IsMuon=True"] Hlt2TagAndProbeMuons.Input = muonWithCaloProtos.outputSelection() Hlt2TagAndProbeMuons.Output = 'Hlt2/Hlt2TagAndProbeMuons/Particles' Hlt2TagAndProbeMuons.WriteP2PVRelations = False ########################################################################## # # No PID muon particles, for association with probe track # ########################################################################## Hlt2LongAssocParts = NoPIDsParticleMaker("Hlt2LongAssocParts") Hlt2LongAssocParts.Particle = 'pion' # call this a pion for CombinePart to distringuish from probe Hlt2LongAssocParts.addTool(TrackSelector) Hlt2LongAssocParts.TrackSelector.TrackTypes = ["Long"] Hlt2LongAssocParts.Input = muonWithCaloProtos.outputSelection() Hlt2LongAssocParts.Output = "Hlt2/Hlt2LongAssocMuons/Particles" ########################################################################## # # MuonTT particles # ########################################################################## Hlt2MuonTTParts = NoPIDsParticleMaker("Hlt2MuonTTParts") Hlt2MuonTTParts.Particle = 'muon' Hlt2MuonTTParts.addTool(TrackSelector) Hlt2MuonTTParts.TrackSelector.TrackTypes = ["Long"] Hlt2MuonTTParts.Input = muonTTProtos.outputSelection() Hlt2MuonTTParts.Output = "Hlt2/Hlt2MuonTTMuons/Particles" ##########################################################################