ATLAS Offline Software
T2VertexBeamSpotConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2 
3 from AthenaConfiguration.ComponentFactory import CompFactory
4 
5 from TrigT2BeamSpot.T2VertexBeamSpotMonitoring import (T2VertexBeamSpotMonitoring,
6  T2VertexBeamSpotToolMonitoring,
7  T2BSTrackFilterToolMonitoring,
8  T2TrackBeamSpotToolMonitoring)
9 
10 # track filter tool used by vertex tool
12  return CompFactory.getComp("PESA::T2BSTrackFilterTool")(
13  name = "TrackFilterVtx",
14  MonTool = T2BSTrackFilterToolMonitoring(flags).monTool,
15  TrackMinPt = 0.5, # Minimum track pT to be considered for vertexing
16  TrackMaxEta = 2.5, # Maximum absolute value of eta
17  TrackMaxZ0 = 200.0, # Maximum track Z0 to be considered for vertexing
18  TrackMaxD0 = 10.0, # Maximum track d0 to be considered for vertexing
19  TrackMaxZ0err = 5.0, # Maximum track Z0 error to be considered for vertexing
20  TrackMaxD0err = 5.0, # Maximum track d0 error to be considered for vertexing
21  TrackMinNDF = 2.0, # Minimum track NDF to be considered for vertexing
22  TrackMinQual = 0.0, # Minimum track chi^2/NDF to be considered for vertexing
23  TrackMaxQual = 10.0, # Maximum track chi^2/NDF to be considered for vertexing
24  TrackMinChi2Prob = 0.05, # Minimum track cumulative chi2 probability
25  TrackMinSiHits = 7, # Minimum # track silicon (PIX + SCT) hits to be considered for vertexing
26  TrackMinPIXHits = 0, # Minimum # track silicon (PIX + SCT) hits to be considered for vertexing
27  TrackMinSCTHits = 0, # Minimum # track silicon (PIX + SCT) hits to be considered for vertexing
28  TrackMinTRTHits = -10, # Minimum # track TRT hits to be considered for vertexing
29  GoalSeedTracks = 500, # Number of tracks for local beamspot estimate
30  D0Chi2Cutoff = 25., # Cutoff on D0 Chi^2 for BS-based filtering
31  BeamSizeLS = 0.01, # Approximate beam size, mm
32  )
33 
34 # track filter tool used by track tool
36  return CompFactory.getComp("PESA::T2BSTrackFilterTool")(
37  name = "TrackFilterTrk",
38  MonTool = T2BSTrackFilterToolMonitoring(flags).monTool,
39  TrackMinPt = 0.5, # Minimum track pT to be considered for vertexing
40  TrackMaxEta = 2.5, # Maximum absolute value of eta
41  TrackMaxZ0 = 200.0, # Maximum track Z0 to be considered for vertexing
42  TrackMaxD0 = 10.0, # Maximum track d0 to be considered for vertexing
43  TrackMaxZ0err = 5.0, # Maximum track Z0 error to be considered for vertexing
44  TrackMaxD0err = 5.0, # Maximum track d0 error to be considered for vertexing
45  TrackMinNDF = 2.0, # Minimum track NDF to be considered for vertexing
46  TrackMinQual = 0.0, # Minimum track chi^2/NDF to be considered for vertexing
47  TrackMaxQual = 10.0, # Maximum track chi^2/NDF to be considered for vertexing
48  TrackMinChi2Prob = 0.05, # Minimum track cumulative chi2 probability
49  TrackMinSiHits = 7, # Minimum # track silicon (PIX + SCT) hits to be considered for vertexing
50  TrackMinPIXHits = 0, # Minimum # track silicon (PIX + SCT) hits to be considered for vertexing
51  TrackMinSCTHits = 0, # Minimum # track silicon (PIX + SCT) hits to be considered for vertexing
52  TrackMinTRTHits = -10, # Minimum # track TRT hits to be considered for vertexing
53  GoalSeedTracks = 500, # Number of tracks for local beamspot estimate
54  D0Chi2Cutoff = 10., # Cutoff on D0 Chi^2 for BS-based filtering
55  BeamSizeLS = 0.01, # Approximate beam size, mm
56  )
57 
58 
60  return CompFactory.getComp("PESA::T2VertexBeamSpotTool")(
61  name = "T2VertexBeamSpotTool",
62  MonTool = T2VertexBeamSpotToolMonitoring(flags).monTool,
63  TrackFilter = trackFilterForVertex(flags),
64  PrimaryVertexFitter = CompFactory.TrigPrimaryVertexFitter(zVariance=3.0, CreateTrackLists=True),
65 
66  WeightClusterZ = True, # Use the track Z0 weighted cluster Z position as seed
67  ReclusterSplit = False, # Recluster split track collections before vertex fitting
68  ClusterPerigee = "beamspot",
69  nSplitVertices = 2, # Turn on (>1) or off vertex splitting
70  TotalNTrackMin = 4, # Minimum number of tracks required in an event
71  TrackSeedPt = 0.7, # Minimum track pT to be considered for seeding a vertex fit
72  TrackClusterDZ = 0.35, # Maximum distance between tracks considered as a cluster
73 
74  VertexMinNTrk = 2, # Minimum # tracks in a cluster to be considered for vertexing
75  VertexMaxNTrk = 100, # Maximum # tracks in a cluster to be considered for vertexing (saves on time!)
76  VertexMaxXerr = 1., # Maximum resulting X error on vertex fit for "good" vertices
77  VertexMaxYerr = 1., # Maximum resulting Y error on vertex fit for "good" vertices
78  VertexMaxZerr = 10., # Maximum resulting Z error on vertex fit for "good" vertices
79  VertexMinQual = 0.0, # Minimum resulting chi^2/NDF on vertex fit for "good" vertices
80  VertexMaxQual = 100.0, # Maximum resulting chi^2/NDF on vertex fit for "good" vertices
81  VertexMinChi2Prob = -10.0, # Minimum cumulative chi2 probability, from CLHEP/GenericFunctions/CumulativeChiSquare.hh
82  VertexBCIDMinNTrk = 10, # Minimum # tracks in a vertex to be used for per-BCID monitoring
83 
84  filterBS = True, # filter tracks w.r.t. beamspot
85  )
86 
87 
89  return CompFactory.getComp("PESA::T2TrackBeamSpotTool")(
90  name = "T2TrackBeamSpotTool",
91  TrackFilter = trackFilterForTrack(flags),
92  MonTool = T2TrackBeamSpotToolMonitoring(flags).monTool,
93  doLeastSquares = True,
94  doLogLikelihood = True,
95  beamSizeLS = 0.01, # Approximate beam size, mm
96  )
97 
98 
99 # Setup for writing out all events seen by the BeamSpot algorithm
100 def T2VertexBeamSpot_activeAllTE(flags, name="T2VertexBeamSpot_activeAllTE"):
101  return CompFactory.getComp("PESA::T2VertexBeamSpot")(
102  name,
103  doTrackBeamSpot = True, # run track-based calibration tool
104  TrackBeamSpotTool = InDetTrigMTTrackBeamSpotTool(flags),
105  BeamSpotTool = InDetTrigMTBeamSpotTool(flags),
106  MonTool = T2VertexBeamSpotMonitoring(flags).monTool
107  )
108 
109 
110 if __name__=="__main__":
111  from AthenaConfiguration.MainServicesConfig import MainServicesCfg
112  from AthenaConfiguration.AllConfigFlags import initConfigFlags
113 
114  flags = initConfigFlags()
115  flags.lock()
116 
117  cfg = MainServicesCfg(flags)
118  cfg.addEventAlgo( T2VertexBeamSpot_activeAllTE(flags) )
119  cfg.wasMerged()
T2VertexBeamSpotConfig.trackFilterForVertex
def trackFilterForVertex(flags)
Definition: T2VertexBeamSpotConfig.py:11
python.MainServicesConfig.MainServicesCfg
def MainServicesCfg(flags, LoopMgr='AthenaEventLoopMgr')
Definition: MainServicesConfig.py:260
T2VertexBeamSpotConfig.InDetTrigMTBeamSpotTool
def InDetTrigMTBeamSpotTool(flags)
Definition: T2VertexBeamSpotConfig.py:59
T2VertexBeamSpotMonitoring
Definition: T2VertexBeamSpotMonitoring.py:1
T2VertexBeamSpotConfig.InDetTrigMTTrackBeamSpotTool
def InDetTrigMTTrackBeamSpotTool(flags)
Definition: T2VertexBeamSpotConfig.py:88
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
T2VertexBeamSpotConfig.T2VertexBeamSpot_activeAllTE
def T2VertexBeamSpot_activeAllTE(flags, name="T2VertexBeamSpot_activeAllTE")
Definition: T2VertexBeamSpotConfig.py:100
T2VertexBeamSpotConfig.trackFilterForTrack
def trackFilterForTrack(flags)
Definition: T2VertexBeamSpotConfig.py:35