![]() |
ATLAS Offline Software
|
The xAODSegmentCnvTool takes a MuonR4::Segment and converts it into a xAOD::MuonSegment. More...
#include <xAODSegmentCnvTool.h>
Classes | |
| struct | Counter |
| Helper struct to keep track of the number of precision, trigger phi and trigger eta hits. More... | |
Public Member Functions | |
| ~xAODSegmentCnvTool ()=default | |
| StatusCode | initialize () override |
| xAOD::MuonSegment * | convertSegment (const EventContext &ctx, const MuonR4::Segment &inSegment, DataShip &ship) const override |
| Convert a MuonR4::Segment to an xAOD::MuonSegment and decorate it with the necessary information. | |
Private Member Functions | |
| StatusCode | linkMeasurements (const Acts::GeometryContext &tgContext, const Segment &inSegment, xAOD::MuonSegment &targetSegment, DataShip &ship) const |
| Decorate the prd links onto the output muon segment. | |
| void | evaluateSummary (const EventContext &ctx, xAOD::MuonSegment &segment) const |
| Calculate the number of hits, outliers and holes on the segment and set the hit summary fields of the passed segment. | |
| void | findHoles (const EventContext &ctx, const Acts::BoundTrackParameters &startPars, const Acts::Surface *target, const std::unordered_set< Identifier > &geoIdsWithHits, Counter &holeCounter) const |
| Find potential sensitive surfaces crossed by the segment but without contributing measurements. | |
Private Attributes | |
| ServiceHandle< Muon::IMuonIdHelperSvc > | m_idHelperSvc |
| IdHelperSvc for Identifier printing & manipulation. | |
| ActsTrk::AuxiliaryMeasurementHandler | m_auxMeasProv {this} |
| Handler to parse the auxiliary beam spot constaint. | |
| ServiceHandle< ActsTrk::ITrackingGeometrySvc > | m_trackingGeometrySvc {this, "TrackingGeometrySvc", "ActsTrackingGeometrySvc"} |
| Tracking geometry tool to search for holes. | |
| ToolHandle< ActsTrk::IExtrapolationTool > | m_extrapolationTool {this, "ExtrapolationTool", ""} |
| Acts extrapolation tool to search for holes. | |
| ActsTrk::ContextUtility | m_ctxProvider {this} |
| Context provider for geometry, magnetic field and calibration contexts. | |
| Gaudi::Property< bool > | m_estimateHoles {this, "estimateHoles", true} |
| Flag to tell whether the hole summary shall be written. | |
| Gaudi::Property< double > | m_extraHolePath {this, "extraHolePath", 20.*Gaudi::Units::cm} |
| Extra path length for the propagation after the last surface was crossed. | |
The xAODSegmentCnvTool takes a MuonR4::Segment and converts it into a xAOD::MuonSegment.
The segments carry the global segment position and direction, the fit quality in terms of chi2 & nDoF, and the hit, outlier and hole hit count summary. For the latter, the algortihm optionally launches a hole search using the Acts::TrackingGeometry. Further, the local parameters and covariance from the fit are decorated onto the segment. Finally, the ElementLinks to the contributing measurements are attached. Prds from the uncombined space points (mainly Mdt, Mm, BI-RPC, sTGC pad) are directly appended to the list. The eta & phi measurements of Rpc/Tgc/sTgc which are within the same gasgap are combined in a CombindMuonStrip object which itself is then appended to the list. Optionally, the conversion alg can also convert the beamspot measurement into a xAOD::UncalibratedMeasurement. For each measurement, the flag whether it was an outlier or not is also stored.
Definition at line 18 of file xAODSegmentCnvTool.h.
|
default |
|
override |
Convert a MuonR4::Segment to an xAOD::MuonSegment and decorate it with the necessary information.
| ctx | The event context |
| inSegment | The input segment |
| ship | The data ship |
Definition at line 29 of file xAODSegmentCnvTool.cxx.
|
private |
Calculate the number of hits, outliers and holes on the segment and set the hit summary fields of the passed segment.
| ctx | EventContext to access conditions data and to propagate |
| segment | The segment for which the hit summary shall be evaluated |
Instantiate one counter for hits, outliers, holes
Also write down the geometryIdentifiers of the segment measurements
Calculate the segment start parameters
Definition at line 234 of file xAODSegmentCnvTool.cxx.
|
private |
Find potential sensitive surfaces crossed by the segment but without contributing measurements.
The segment line is propagated from the startPars to the target surface + some margin using the Acts::Propagator. The propaator records every surface crossing. The associated SurfacePlacements are then used to determine the ATLAS identifier and then to assign whether there's a hole or not.
| ctx | EventContext to be passed to the extrapolation tool |
| startPars | The start parameters from which the propagation starts. The surface is the bottom boundary surface of the volume where's the first segment measurement. |
| target | The top boundary surface of the volume with the last segment measurement. |
| geoIdsWithHits | The list of ATLAS identifiers with segmen measurements (outlier + hit) |
| holeCounter | Mutable reference to the segment hole counter. |
Surface is already part of the measurement pool
We expect at least one hit in the same sector to avoid that hits in the sector-overlap from the adjacent chamber are marked as holes. While they are not part of the segment by construction
Definition at line 360 of file xAODSegmentCnvTool.cxx.
|
override |
Definition at line 19 of file xAODSegmentCnvTool.cxx.
|
private |
Decorate the prd links onto the output muon segment.
Eta & phi measurements are absorbed converted into a CombinedMuonStrip which is a source link linke object carrying a link to both prds. In this way, only one track state is generated later in the track fit from the two measurements. Two assumptions are made for the linking
| tgContext | The geometry context to construct the local segment parameters |
| inSegment | The segment from which the space points are collected |
| targetSegment | The xAOD segment onto which all the links are decorated |
| ship | Reference to the auxiliary ship carrying all the write decor handles needed for the linking |
Combine the two prds from the space point to a combined muonstrip and link the latter to the segment.
Size of the bounds purely for visualization purposes
It might be that the segment has anoher 1D-measurement in the same gas gap
The first measurement should always be the eta measurement
Definition at line 86 of file xAODSegmentCnvTool.cxx.
|
private |
Handler to parse the auxiliary beam spot constaint.
Definition at line 86 of file xAODSegmentCnvTool.h.
|
private |
Context provider for geometry, magnetic field and calibration contexts.
Definition at line 92 of file xAODSegmentCnvTool.h.
|
private |
Flag to tell whether the hole summary shall be written.
Definition at line 95 of file xAODSegmentCnvTool.h.
|
private |
Extra path length for the propagation after the last surface was crossed.
Definition at line 97 of file xAODSegmentCnvTool.h.
|
private |
Acts extrapolation tool to search for holes.
Definition at line 90 of file xAODSegmentCnvTool.h.
|
private |
IdHelperSvc for Identifier printing & manipulation.
Definition at line 83 of file xAODSegmentCnvTool.h.
|
private |
Tracking geometry tool to search for holes.
Definition at line 88 of file xAODSegmentCnvTool.h.