def _dvVeloReco(self, name): from Configurables import PatPV3D, PVOfflineTool, PVSeed3DTool, LSAdaptPV3DFitter _veloVertices = PatPV3D(name + 'DV3DAlg') _veloVertices.OutputVerticesName = 'Rec/' + name + 'DV3D/RecVertices' _veloVertices.addTool(PVOfflineTool) _veloVertices.PVOfflineTool.InputTracks = ["Rec/Track/Best"] _veloVertices.PVOfflineTool.PVsChi2Separation = 0 _veloVertices.PVOfflineTool.PVsChi2SeparationLowMult = 0 _veloVertices.PVOfflineTool.PVSeedingName = "PVSeed3DTool" _veloVertices.PVOfflineTool.addTool(PVSeed3DTool()) _veloVertices.PVOfflineTool.PVSeed3DTool.MinCloseTracks = 3 _veloVertices.PVOfflineTool.addTool(LSAdaptPV3DFitter()) _veloVertices.PVOfflineTool.PVFitterName = "LSAdaptPV3DFitter" _veloVertices.PVOfflineTool.LSAdaptPV3DFitter.maxIP2PV = 2 * mm _veloVertices.PVOfflineTool.LSAdaptPV3DFitter.MinTracks = 4 return PatPV3DWrapper(name + 'DV3D', _veloVertices, 'Rec/' + name + 'DV3D/RecVertices')
#=== options for reconstruction all PV including displaced PVs from Configurables import PatPV3D, PVOfflineTool, LSAdaptPV3DFitter, PVSeed3DTool from GaudiKernel.SystemOfUnits import mm #=== reconstruction of PV PV = PatPV3D("PV") PV.addTool(PVOfflineTool) PV.PVOfflineTool.InputTracks = ["Rec/Track/Best"] PV.OutputVerticesName = "Rec/Vertices/PV" #=== reconstruction of displaced vertices RV = PatPV3D("RV") RV.addTool(PVOfflineTool) RV.PVOfflineTool.InputVerticesName = "Rec/Vertices/PV" #takes PVs as input RV.PVOfflineTool.LookForDisplaced = True RV.PVOfflineTool.InputTracks = ["Rec/Track/Best"] RV.PVOfflineTool.PVSeedingName = "PVSeed3DTool" RV.PVOfflineTool.addTool(PVSeed3DTool()) RV.PVOfflineTool.PVSeed3DTool.TrackPairMaxDistance = 0.2 * mm RV.PVOfflineTool.PVSeed3DTool.zMaxSpread = 1 * mm RV.PVOfflineTool.addTool(LSAdaptPV3DFitter()) RV.OutputVerticesName = "Rec/Vertices/RV"