|
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 > &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 *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 > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &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"} |
|
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 16 of file MuonInsideOutRecoTool.cxx.
18 declareInterface<IMuonCombinedInDetExtensionTool>(
this);
19 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 189 of file MuonInsideOutRecoTool.cxx.
198 if (!vertices.isValid()) {
201 for (
const auto*
const vx : *vertices) {
202 for (
const auto& tpLink : vx->trackParticleLinks()) {
203 if (*tpLink == &idTrackParticle) {
207 if (matchedVertex)
break;
213 origin =
Amg::Vector3D{matchedVertex->
x(), matchedVertex->
y(), matchedVertex->
z()};
217 idTrackParticle.
d0() *
std::cos(idTrackParticle.
phi()) + idTrackParticle.
vy(),
218 idTrackParticle.
z0() + idTrackParticle.
vz()};
219 ATH_MSG_DEBUG(
" NO matched vertex take track perigee " << origin);
227 if (
it->trackParameters()) {
228 ATH_MSG_VERBOSE(
"check tsos " << tsos <<
" r " <<
it->trackParameters()->position().perp() <<
" z "
229 <<
it->trackParameters()->position().z() <<
" p "
230 <<
it->trackParameters()->momentum().mag());
235 std::vector<const Muon::MuonSegment*> segLinks;
237 std::unique_ptr<Muon::MuonSegment>
copy = std::make_unique<Muon::MuonSegment>(*
layer.segment);
238 segLinks.push_back(
copy.get());
244 using chamIdx = Muon::MuonStationIndex::ChIndex;
245 chamIdx ch_a = m_idHelperSvc->chamberIndex(m_edmHelperSvc->chamberId(*seg_a));
246 chamIdx ch_b = m_idHelperSvc->chamberIndex(m_edmHelperSvc->chamberId(*seg_b));
247 Muon::MuonStationIndex::StIndex st_a = Muon::MuonStationIndex::toStationIndex(ch_a);
248 Muon::MuonStationIndex::StIndex st_b = Muon::MuonStationIndex::toStationIndex(ch_b);
249 if (st_a != st_b) return st_a < st_b;
251 if (ch_a == chamIdx::CSL || ch_a == chamIdx::CSS || ch_b == chamIdx::CSS || ch_b == chamIdx::CSL)
252 return (ch_a == chamIdx::CSL) + 2 * (ch_a == chamIdx::CSS) > (ch_b == chamIdx::CSL) + 2 * (ch_b == chamIdx::CSS);
257 std::stringstream sstr;
263 ATH_MSG_DEBUG(
"Selected segments " << segLinks.size() <<
" " << sstr.str());
267 std::unique_ptr<Trk::Track> standaloneRefit{
m_trackFitter->standaloneRefit(ctx, *selectedTrack, origin)};
269 combTracks->
push_back(std::move(selectedTrack));
273 MuGirlTag*
tag =
new MuGirlTag(comblink, segLinks);
274 if (standaloneRefit) {
275 meTracks->
push_back(std::move(standaloneRefit));
277 tag->setUpdatedExtrapolatedTrack(melink);
281 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 130 of file MuonInsideOutRecoTool.cxx.
134 std::vector<Muon::MuonCandidate> resolvedCandidates;
139 typedef std::pair<std::unique_ptr<Trk::Track>, std::unique_ptr<const Muon::MuonCandidate>> candidatePair;
140 std::vector<candidatePair> trackCandidateLookup;
144 if (!
track || !
track->isValid() || !
track->fitQuality()->numberDoF())
continue;
146 tracks.push_back(
track.get());
147 trackCandidateLookup.emplace_back(std::move(
track), std::make_unique<Muon::MuonCandidate>(std::move(candidate)));
150 ATH_MSG_DEBUG(
"found " << tracks.size() <<
" combined tracks");
153 if (tracks.empty())
return {
nullptr,
nullptr};
156 if (tracks.size() == 1) {
157 selectedTrack = tracks.front();
161 if (!resolvedTracks || resolvedTracks->empty()) {
162 ATH_MSG_WARNING(
"Ambiguity resolver returned no tracks. Arbitrarily using the first track of initial collection.");
163 selectedTrack = tracks.front();
166 if (
it != tracks.end()) {
169 ATH_MSG_ERROR(
"Ambiguity resolver returned an unknown track. Arbitrarily using the first track of initial collection.");
170 selectedTrack = tracks.front();
176 std::find_if(trackCandidateLookup.begin(), trackCandidateLookup.end(),
177 [selectedTrack](candidatePair& ele) { return ele.first.get() == selectedTrack; });
179 if (look_itr == trackCandidateLookup.end() || !look_itr->second) {
181 return {
nullptr,
nullptr};
186 return std::make_pair(std::move(look_itr->second), std::move(look_itr->first));
◆ getLayerData()
access data in layer
Definition at line 284 of file MuonInsideOutRecoTool.cxx.
288 const std::set<Muon::MuonStationIndex::TechnologyIndex>& technologiesInStation =
m_idHelperSvc->technologiesInStation(stIndex);
290 std::string techString;
302 isok |= getLayerDataTech<Muon::MdtPrepData>(
it, surf, prdData.mdtPrds, layerPrepRawData.
mdts);
305 isok |= getLayerDataTech<Muon::RpcPrepData>(
it, surf, prdData.rpcPrds, layerPrepRawData.
rpcs);
308 isok |= getLayerDataTech<Muon::TgcPrepData>(
it, surf, prdData.tgcPrds, layerPrepRawData.
tgcs);
311 isok |= getLayerDataTech<Muon::CscPrepData>(
it, surf, prdData.cscPrds, layerPrepRawData.
cscs);
314 isok |= getLayerDataTech<Muon::sTgcPrepData>(
it, surf, prdData.stgcPrds, layerPrepRawData.
stgcs);
317 isok |= getLayerDataTech<Muon::MMPrepData>(
it, surf, prdData.mmPrds, layerPrepRawData.
mms);
328 if (!layerPrepRawData.
mms.empty())
msg(
MSG::DEBUG) <<
" MMs " << layerPrepRawData.
mms.size();
◆ getLayerDataTech()
access data in layer for a given technology
Definition at line 335 of file MuonInsideOutRecoTool.cxx.
338 if (!
input ||
input->size() == 0)
return false;
346 if (
hashes.empty())
return false;
349 for (Muon::MuonLayerHashProviderTool::HashVec::const_iterator
it =
hashes.begin();
it !=
hashes.end(); ++
it) {
351 const auto* colIt =
input->indexFindPtr(*
it);
352 if (!colIt) {
continue; }
◆ handleCandidate()
handle a single candidate
Definition at line 54 of file MuonInsideOutRecoTool.cxx.
58 ATH_MSG_DEBUG(
" skip silicon associated track for extension ");
67 if (!muonSystemExtension) {
75 std::vector<Muon::MuonLayerRecoData> allLayers;
77 const std::vector<Muon::MuonSystemExtension::Intersection>& layerIntersections = muonSystemExtension->
layerIntersections();
78 ATH_MSG_DEBUG(
" ID track: pt " << indetTrackParticle.
pt() <<
" eta " << indetTrackParticle.
eta() <<
" phi "
79 << indetTrackParticle.
phi() <<
" layers " << layerIntersections.size());
83 std::vector<std::shared_ptr<const Muon::MuonSegment>> segments;
87 if (!
getLayerData(layer_intersect.layerSurface, layerPrepRawData, prdData)) {
91 m_segmentFinder->find(ctx, layer_intersect, layerPrepRawData, segments);
92 if (segments.empty())
continue;
96 for (
const std::shared_ptr<const Muon::MuonSegment>& seg : segments)
m_recoValidationTool->add(layer_intersect, *seg, 0);
100 std::vector<std::shared_ptr<const Muon::MuonSegment>> selectedSegments;
102 if (selectedSegments.empty())
continue;
110 allLayers.emplace_back(layer_intersect, std::move(selectedSegments));
114 msg(
MSG::DEBUG) <<
" Layers with segments " << allLayers.size();
115 for (
auto&
layer : allLayers) {
122 std::pair<std::unique_ptr<const Muon::MuonCandidate>, std::unique_ptr<Trk::Track>> bestCandidate =
124 if (!bestCandidate.first) {
return; }
127 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_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
static const std::string & chName(ChIndex index)
convert ChIndex into a string
virtual double pt() const override final
The transverse momentum ( ) of the particle.
float x() const
Returns the x position.
static StIndex toStationIndex(ChIndex index)
convert ChIndex into StIndex
std::string find(const std::string &s)
return a remapped string
float vx() const
The x origin for the parameters.
MuonStationIndex::LayerIndex layerIndex
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
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.
float vz() const
The z origin for the parameters.
static unsigned int sectorLayerHash(DetectorRegionIndex detectorRegionIndex, LayerIndex layerIndex)
create a hash out of region and layer
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)
MuonStationIndex::DetectorRegionIndex regionIndex
float d0() const
Returns the parameter.
std::vector< const sTgcPrepDataCollection * > stgcs
virtual void setOwner(IDataHandleHolder *o)=0
static const std::string & regionName(DetectorRegionIndex index)
convert DetectorRegionIndex into a string
(Non-const) Iterator class for DataVector/DataList.
std::vector< const MdtPrepDataCollection * > mdts
Tracking class to hold the extrapolation from a particle from the calo entry to the end of muon syste...
static const std::string & layerName(LayerIndex index)
convert LayerIndex into a string
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
float z() const
Returns the z position.
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
float vy() const
The y origin for the parameters.
represents the track state (measurement, material, fit parameters and quality) at a surface.
value_type push_back(value_type pElem)
Add an element to the end of the collection.
Eigen::Matrix< double, 3, 1 > Vector3D
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
StIndex
enum to classify the different station layers in the muon spectrometer
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.
TechnologyIndex
enum to classify the different layers in the muon spectrometer
size_type size() const noexcept
Returns the number of elements in the collection.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
std::vector< MuonLayerIntersection > layerIntersections
MuonLayerIntersections.
virtual double phi() const override final
The azimuthal angle ( ) of the particle (has range to .)
static const std::string & technologyName(TechnologyIndex index)
convert LayerIndex into a string