 |
ATLAS Offline Software
|
#include <MuonInsideOutRecoTool.h>
|
| MuonInsideOutRecoTool (const std::string &type, const std::string &name, const IInterface *parent) |
| Default AlgTool functions. More...
|
|
virtual | ~MuonInsideOutRecoTool ()=default |
|
virtual StatusCode | initialize () override |
|
virtual void | extendWithPRDs (const InDetCandidateCollection &inDetCandidates, InDetCandidateToTagMap *tagMap, IMuonCombinedInDetExtensionTool::MuonPrdData prdData, TrackCollection *combTracks, TrackCollection *meTracks, Trk::SegmentCollection *segments, const EventContext &ctx) const override |
| IMuonCombinedInDetExtensionTool interface: extend ID candidate with PRDs for segment-finding. More...
|
|
virtual void | extend (const InDetCandidateCollection &inDetCandidates, InDetCandidateToTagMap *tagMap, TrackCollection *combTracks, TrackCollection *meTracks, Trk::SegmentCollection *segments, const EventContext &ctx) const override |
| IMuonCombinedInDetExtensionTool interface: deprecated. More...
|
|
std::pair< std::unique_ptr< const Muon::MuonCandidate >, std::unique_ptr< Trk::Track > > | findBestCandidate (const EventContext &ctx, const xAOD::TrackParticle &indetTrackParticle, const std::vector< Muon::MuonLayerRecoData > &allLayers) const |
| find the best candidate for a given set of segments More...
|
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysInitialize () override |
| Perform system initialization for an algorithm. More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T, V, H > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
void | handleCandidate (const InDetCandidate &inDetCandidate, InDetCandidateToTagMap *tagMap, const IMuonCombinedInDetExtensionTool::MuonPrdData &prdData, TrackCollection *combTracks, TrackCollection *meTracks, Trk::SegmentCollection *segColl, std::vector< std::shared_ptr< const Muon::MuonSegment >> segments, const EventContext &ctx) const |
| handle a single candidate More...
|
|
void | addTag (const EventContext &ctx, const InDetCandidate &indetCandidate, InDetCandidateToTagMap *tagMap, const Muon::MuonCandidate &candidate, std::unique_ptr< Trk::Track > &selectedTrack, TrackCollection *combTracks, TrackCollection *meTracks, Trk::SegmentCollection *segments) const |
| add muon candidate to indet candidate More...
|
|
bool | getLayerData (const Muon::MuonLayerSurface &surf, Muon::MuonLayerPrepRawData &layerPrepRawData, IMuonCombinedInDetExtensionTool::MuonPrdData prdData) const |
| access data in layer More...
|
|
template<class COL > |
bool | getLayerDataTech (Muon::MuonStationIndex::TechnologyIndex technology, const Muon::MuonLayerSurface &surf, const Muon::MuonPrepDataContainerT< COL > *input, std::vector< const Muon::MuonPrepDataCollection< COL > * > &output) const |
| access data in layer for a given technology More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
|
ServiceHandle< Muon::IMuonIdHelperSvc > | m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"} |
|
ServiceHandle< Muon::IMuonEDMHelperSvc > | m_edmHelperSvc |
|
PublicToolHandle< Muon::MuonEDMPrinterTool > | m_printer {this, "MuonEDMPrinterTool", ""} |
|
ToolHandle< Muon::IMuonLayerSegmentFinderTool > | m_segmentFinder |
|
ToolHandle< Muon::IMuonLayerSegmentMatchingTool > | m_segmentMatchingTool |
|
ToolHandle< Muon::IMuonLayerAmbiguitySolverTool > | m_ambiguityResolver |
|
ToolHandle< Muon::IMuonCandidateTrackBuilderTool > | m_candidateTrackBuilder |
|
ToolHandle< Rec::ICombinedMuonTrackBuilder > | m_trackFitter |
|
ToolHandle< Trk::ITrackAmbiguityProcessorTool > | m_trackAmbiguityResolver |
|
ToolHandle< Muon::MuonLayerHashProviderTool > | m_layerHashProvider |
|
ToolHandle< Trk::IExtendedTrackSummaryTool > | m_trackSummaryTool {this, "TrackSummaryTool", "MuonTrackSummaryTool"} |
|
ToolHandle< Muon::IMuonRecoValidationTool > | m_recoValidationTool {this, "MuonRecoValidationTool", ""} |
|
Gaudi::Property< double > | m_idTrackMinPt {this, "IDTrackMinPt", 2500} |
|
Gaudi::Property< bool > | m_ignoreSiAssocated {this, "IgnoreSiAssociatedCandidates", true} |
|
SG::ReadHandleKey< xAOD::VertexContainer > | m_vertexKey {this, "VertexContainer", "PrimaryVertices", "vertex container key"} |
|
SG::ReadHandleKey< Trk::SegmentCollection > | m_inputSegments {this, "InputSegments", "", "Input Segment Collection"} |
|
StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) More...
|
|
StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) More...
|
|
std::vector< SG::VarHandleKeyArray * > | m_vhka |
|
bool | m_varHandleArraysDeclared |
|
Definition at line 45 of file MuonInsideOutRecoTool.h.
◆ StoreGateSvc_t
◆ MuonInsideOutRecoTool()
MuonCombined::MuonInsideOutRecoTool::MuonInsideOutRecoTool |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
Default AlgTool functions.
Definition at line 17 of file MuonInsideOutRecoTool.cxx.
19 declareInterface<IMuonCombinedInDetExtensionTool>(
this);
20 declareInterface<MuonInsideOutRecoTool>(
this);
◆ ~MuonInsideOutRecoTool()
virtual MuonCombined::MuonInsideOutRecoTool::~MuonInsideOutRecoTool |
( |
| ) |
|
|
virtualdefault |
◆ addTag()
add muon candidate to indet candidate
Sort the segments here; note the lifetime of 'copy' is still valid here as it exists inside 'segments'
Sort the CSC segments at the first giving priority to the small sectors
Definition at line 210 of file MuonInsideOutRecoTool.cxx.
219 if (!vertices.isValid()) {
222 for (
const auto*
const vx : *vertices) {
223 for (
const auto& tpLink : vx->trackParticleLinks()) {
224 if (*tpLink == &idTrackParticle) {
228 if (matchedVertex)
break;
234 origin =
Amg::Vector3D{matchedVertex->
x(), matchedVertex->
y(), matchedVertex->
z()};
238 idTrackParticle.
d0() *
std::cos(idTrackParticle.
phi()) + idTrackParticle.
vy(),
239 idTrackParticle.
z0() + idTrackParticle.
vz()};
240 ATH_MSG_DEBUG(
" NO matched vertex take track perigee " << origin);
248 if (
it->trackParameters()) {
249 ATH_MSG_VERBOSE(
"check tsos " << tsos <<
" r " <<
it->trackParameters()->position().perp() <<
" z "
250 <<
it->trackParameters()->position().z() <<
" p "
251 <<
it->trackParameters()->momentum().mag());
256 std::vector<const Muon::MuonSegment*> segLinks;
258 std::unique_ptr<Muon::MuonSegment>
copy = std::make_unique<Muon::MuonSegment>(*
layer.segment);
259 segLinks.push_back(
copy.get());
265 ChIndex ch_a = m_idHelperSvc->chamberIndex(m_edmHelperSvc->chamberId(*seg_a));
266 ChIndex ch_b = m_idHelperSvc->chamberIndex(m_edmHelperSvc->chamberId(*seg_b));
267 StIndex st_a = toStationIndex(ch_a);
268 StIndex st_b = toStationIndex(ch_b);
269 if (st_a != st_b) return st_a < st_b;
271 if (ch_a == ChIndex::CSL || ch_a == ChIndex::CSS || ch_b == ChIndex::CSS || ch_b == ChIndex::CSL)
272 return (ch_a == ChIndex::CSL) + 2 * (ch_a == ChIndex::CSS) > (ch_b == ChIndex::CSL) + 2 * (ch_b == ChIndex::CSS);
277 std::stringstream sstr;
283 ATH_MSG_DEBUG(
"Selected segments " << segLinks.size() <<
" " << sstr.str());
287 std::unique_ptr<Trk::Track> standaloneRefit{
m_trackFitter->standaloneRefit(ctx, *selectedTrack, origin)};
289 combTracks->push_back(std::move(selectedTrack));
293 MuGirlTag*
tag =
new MuGirlTag(comblink, segLinks);
294 if (standaloneRefit) {
295 meTracks->push_back(std::move(standaloneRefit));
297 tag->setUpdatedExtrapolatedTrack(melink);
301 tagMap->addEntry(&indetCandidate,
tag);
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ extend()
◆ extendWithPRDs()
◆ extraDeps_update_handler()
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
◆ findBestCandidate()
find the best candidate for a given set of segments
Check if the fit succeeded and whether there are TSOS & a fitQuality
Definition at line 151 of file MuonInsideOutRecoTool.cxx.
155 std::vector<Muon::MuonCandidate> resolvedCandidates;
160 typedef std::pair<std::unique_ptr<Trk::Track>, std::unique_ptr<const Muon::MuonCandidate>> candidatePair;
161 std::vector<candidatePair> trackCandidateLookup;
165 if (!
track || !
track->isValid() || !
track->fitQuality()->numberDoF())
continue;
167 tracks.push_back(
track.get());
168 trackCandidateLookup.emplace_back(std::move(
track), std::make_unique<Muon::MuonCandidate>(std::move(candidate)));
171 ATH_MSG_DEBUG(
"found " << tracks.size() <<
" combined tracks");
174 if (tracks.empty())
return {
nullptr,
nullptr};
177 if (tracks.size() == 1) {
178 selectedTrack = tracks.front();
182 if (!resolvedTracks || resolvedTracks->empty()) {
183 ATH_MSG_WARNING(
"Ambiguity resolver returned no tracks. Arbitrarily using the first track of initial collection.");
184 selectedTrack = tracks.front();
187 if (
it != tracks.end()) {
190 ATH_MSG_ERROR(
"Ambiguity resolver returned an unknown track. Arbitrarily using the first track of initial collection.");
191 selectedTrack = tracks.front();
197 std::find_if(trackCandidateLookup.begin(), trackCandidateLookup.end(),
198 [selectedTrack](candidatePair& ele) { return ele.first.get() == selectedTrack; });
200 if (look_itr == trackCandidateLookup.end() || !look_itr->second) {
202 return {
nullptr,
nullptr};
207 return std::make_pair(std::move(look_itr->second), std::move(look_itr->first));
◆ getLayerData()
access data in layer
Definition at line 304 of file MuonInsideOutRecoTool.cxx.
308 const std::set<TechnologyIndex>& technologiesInStation =
m_idHelperSvc->technologiesInStation(stIndex);
310 std::string techString;
327 isok |= getLayerDataTech<Muon::MdtPrepData>(
it, surf, prdData.mdtPrds, layerPrepRawData.
mdts);
330 isok |= getLayerDataTech<Muon::RpcPrepData>(
it, surf, prdData.rpcPrds, layerPrepRawData.
rpcs);
333 isok |= getLayerDataTech<Muon::TgcPrepData>(
it, surf, prdData.tgcPrds, layerPrepRawData.
tgcs);
336 isok |= getLayerDataTech<Muon::CscPrepData>(
it, surf, prdData.cscPrds, layerPrepRawData.
cscs);
339 isok |= getLayerDataTech<Muon::sTgcPrepData>(
it, surf, prdData.stgcPrds, layerPrepRawData.
stgcs);
342 isok |= getLayerDataTech<Muon::MMPrepData>(
it, surf, prdData.mmPrds, layerPrepRawData.
mms);
355 if (!layerPrepRawData.
mms.empty())
msg(
MSG::DEBUG) <<
" MMs " << layerPrepRawData.
mms.size();
◆ getLayerDataTech()
access data in layer for a given technology
Definition at line 362 of file MuonInsideOutRecoTool.cxx.
365 if (!input ||
input->size() == 0)
return false;
373 if (
hashes.empty())
return false;
376 for (Muon::MuonLayerHashProviderTool::HashVec::const_iterator
it =
hashes.begin();
it !=
hashes.end(); ++
it) {
378 const auto* colIt =
input->indexFindPtr(*
it);
379 if (!colIt) {
continue; }
◆ handleCandidate()
handle a single candidate
Definition at line 70 of file MuonInsideOutRecoTool.cxx.
74 ATH_MSG_DEBUG(
" skip silicon associated track for extension ");
83 if (!muonSystemExtension) {
91 std::vector<Muon::MuonLayerRecoData> allLayers;
93 const std::vector<Muon::MuonSystemExtension::Intersection>& layerIntersections = muonSystemExtension->
layerIntersections();
94 ATH_MSG_DEBUG(
" ID track: pt " << indetTrackParticle.
pt() <<
" eta " << indetTrackParticle.
eta() <<
" phi "
95 << indetTrackParticle.
phi() <<
" layers " << layerIntersections.size());
104 if (!
getLayerData(layer_intersect.layerSurface, layerPrepRawData, prdData)) {
111 m_segmentFinder->find(ctx, layer_intersect, layerPrepRawData, segments);
113 if (segments.empty())
continue;
117 for (
const std::shared_ptr<const Muon::MuonSegment>& seg : segments)
m_recoValidationTool->add(layer_intersect, *seg, 0);
121 std::vector<std::shared_ptr<const Muon::MuonSegment>> selectedSegments;
123 if (selectedSegments.empty())
continue;
131 allLayers.emplace_back(layer_intersect, std::move(selectedSegments));
135 msg(
MSG::DEBUG) <<
" Layers with segments " << allLayers.size();
136 for (
auto&
layer : allLayers) {
143 std::pair<std::unique_ptr<const Muon::MuonCandidate>, std::unique_ptr<Trk::Track>> bestCandidate =
145 if (!bestCandidate.first) {
return; }
148 addTag(ctx, indetCandidate, tagMap, *bestCandidate.first, bestCandidate.second, combTracks, meTracks, segColl);
◆ initialize()
StatusCode MuonCombined::MuonInsideOutRecoTool::initialize |
( |
| ) |
|
|
overridevirtual |
◆ inputHandles()
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ interfaceID()
static const InterfaceID& MuonCombined::MuonInsideOutRecoTool::interfaceID |
( |
| ) |
|
|
inlinestatic |
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ renounce()
◆ renounceArray()
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_ambiguityResolver
Initial value:{
this, "MuonLayerAmbiguitySolverTool", "Muon::MuonLayerAmbiguitySolverTool/MuonLayerAmbiguitySolverTool"}
Definition at line 98 of file MuonInsideOutRecoTool.h.
◆ m_candidateTrackBuilder
Initial value:{
this, "MuonCandidateTrackBuilderTool", "Muon::MuonCandidateTrackBuilderTool/MuonCandidateTrackBuilderTool"}
Definition at line 100 of file MuonInsideOutRecoTool.h.
◆ m_detStore
◆ m_edmHelperSvc
Initial value:{this, "edmHelper", "Muon::MuonEDMHelperSvc/MuonEDMHelperSvc",
"Handle to the service providing the IMuonEDMHelperSvc interface"}
Definition at line 91 of file MuonInsideOutRecoTool.h.
◆ m_evtStore
◆ m_idHelperSvc
◆ m_idTrackMinPt
Gaudi::Property<double> MuonCombined::MuonInsideOutRecoTool::m_idTrackMinPt {this, "IDTrackMinPt", 2500} |
|
private |
◆ m_ignoreSiAssocated
Gaudi::Property<bool> MuonCombined::MuonInsideOutRecoTool::m_ignoreSiAssocated {this, "IgnoreSiAssociatedCandidates", true} |
|
private |
◆ m_inputSegments
◆ m_layerHashProvider
Initial value:{this, "MuonLayerHashProviderTool",
"Muon::MuonLayerHashProviderTool"}
Definition at line 106 of file MuonInsideOutRecoTool.h.
◆ m_printer
PublicToolHandle<Muon::MuonEDMPrinterTool> MuonCombined::MuonInsideOutRecoTool::m_printer {this, "MuonEDMPrinterTool", ""} |
|
private |
◆ m_recoValidationTool
◆ m_segmentFinder
Initial value:{this, "MuonLayerSegmentFinderTool",
"Muon::MuonLayerSegmentFinderTool/MuonLayerSegmentFinderTool"}
Definition at line 94 of file MuonInsideOutRecoTool.h.
◆ m_segmentMatchingTool
Initial value:{
this, "MuonLayerSegmentMatchingTool", "Muon::MuonLayerSegmentMatchingTool/MuonLayerSegmentMatchingTool"}
Definition at line 96 of file MuonInsideOutRecoTool.h.
◆ m_trackAmbiguityResolver
Initial value:{this, "TrackAmbiguityProcessor",
"Trk::TrackSelectionProcessorTool/MuonAmbiProcessor"}
Definition at line 104 of file MuonInsideOutRecoTool.h.
◆ m_trackFitter
Initial value:{this, "MuonTrackBuilder",
"Rec::CombinedMuonTrackBuilder/CombinedMuonTrackBuilder"}
Definition at line 102 of file MuonInsideOutRecoTool.h.
◆ m_trackSummaryTool
◆ m_varHandleArraysDeclared
◆ m_vertexKey
◆ m_vhka
The documentation for this class was generated from the following files:
JetConstituentVector::iterator iterator
virtual double pt() const override final
The transverse momentum ( ) of the particle.
float x() const
Returns the x position.
std::string find(const std::string &s)
return a remapped string
float vx() const
The x origin for the parameters.
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
const Trk::TrackStates * trackStateOnSurfaces() const
return a pointer to a const DataVector of const TrackStateOnSurfaces.
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
unsigned int sectorLayerHash(DetectorRegionIndex detectorRegionIndex, LayerIndex layerIndex)
create a hash out of region and layer
float vz() const
The z origin for the parameters.
TechnologyIndex
enum to classify the different layers in the muon spectrometer
float z0() const
Returns the parameter.
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool msgLvl(const MSG::Level lvl) const
std::vector< const TgcPrepDataCollection * > tgcs
Struct to hold all PrepRawData collections in a given layer.
#define ATH_MSG_VERBOSE(x)
float d0() const
Returns the parameter.
std::vector< const sTgcPrepDataCollection * > stgcs
virtual void setOwner(IDataHandleHolder *o)=0
StIndex toStationIndex(ChIndex index)
convert ChIndex into StIndex
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
(Non-const) Iterator class for DataVector/DataList.
DataVector< Trk::Track > TrackCollection
This typedef represents a collection of Trk::Track objects.
std::vector< const MdtPrepDataCollection * > mdts
const std::string & chName(ChIndex index)
convert ChIndex into a string
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
Tracking class to hold the extrapolation from a particle from the calo entry to the end of muon syste...
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
float z() const
Returns the z position.
const std::string & technologyName(TechnologyIndex index)
convert LayerIndex into a string
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
StIndex
enum to classify the different station layers in the muon spectrometer
float vy() const
The y origin for the parameters.
represents the track state (measurement, material, fit parameters and quality) at a surface.
const std::string & layerName(LayerIndex index)
convert LayerIndex into a string
value_type push_back(value_type pElem)
Add an element to the end of the collection.
Eigen::Matrix< double, 3, 1 > Vector3D
const std::string & regionName(DetectorRegionIndex index)
convert DetectorRegionIndex into a string
std::vector< const CscPrepDataCollection * > cscs
Class describing a Vertex.
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
#define ATH_MSG_WARNING(x)
std::vector< const RpcPrepDataCollection * > rpcs
float y() const
Returns the y position.
const std::vector< Intersection > & layerIntersections() const
access to the intersections with the layers.
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
std::vector< const MMPrepDataCollection * > mms
Class describing a TrackParticle.
const Trk::Track * track() const
Returns a pointer (which can be NULL) to the Trk::Track which was used to make this TrackParticle.
size_type size() const noexcept
Returns the number of elements in the collection.
std::vector< MuonLayerIntersection > layerIntersections
MuonLayerIntersections.
virtual double phi() const override final
The azimuthal angle ( ) of the particle (has range to .)