ATLAS Offline Software
MeasurementTypeID.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // MeasurementTypeID.cxx, (c) ATLAS Detector software //
8 
14 #include "TrkSegment/Segment.h"
18 
21 
22  if (meas == nullptr) { return Trk::TrackState::unidentified;
23 }
24  const Trk::RIO_OnTrack* testROT=nullptr;
25  Trk::RoT_Extractor::extract( testROT, meas); // get std and competing ROTs
26  if (testROT!=nullptr) {
27  if (!( testROT->identify().is_valid())) { return Trk::TrackState::unidentified;
28 }
29  if (m_idHelper->is_pixel(testROT->identify())) {
31  } if (m_idHelper->is_sct(testROT->identify())) {
32  return Trk::TrackState::SCT;
33  } else if (m_idHelper->is_trt(testROT->identify())) {
34  return Trk::TrackState::TRT;
35  } else if (m_idHelper->is_mdt(testROT->identify())) {
36  return Trk::TrackState::MDT;
37  } else if (m_idHelper->is_tgc(testROT->identify())) {
38  return Trk::TrackState::TGC;
39  } else if (m_idHelper->is_rpc(testROT->identify())) {
40  return Trk::TrackState::RPC;
41  } else if (m_idHelper->is_csc(testROT->identify())) {
42  return Trk::TrackState::CSC;
43  } else if (m_idHelper->is_stgc(testROT->identify())) {
44  return Trk::TrackState::STGC;
45  } else if (m_idHelper->is_mm(testROT->identify())) {
46  return Trk::TrackState::MM;
47  } else { return Trk::TrackState::unidentified;
48 }
49  }
50 
51  const Trk::PseudoMeasurementOnTrack* testPseudo
52  = dynamic_cast<const Trk::PseudoMeasurementOnTrack*>(meas);
53  if (testPseudo!=nullptr) { return Trk::TrackState::Pseudo;
54 }
55  const Trk::Segment* testSegment
56  = dynamic_cast<const Trk::Segment*>(meas);
57  if (testSegment!=nullptr) { return Trk::TrackState::Segment;
58 }
59  const Trk::VertexOnTrack* testVertex
60  = dynamic_cast<const Trk::VertexOnTrack*>(meas);
61  if (testVertex!=nullptr) { return Trk::TrackState::Vertex;
62 }
63  const Trk::SpacePoint* testSpacePoint
64  = dynamic_cast<const Trk::SpacePoint*>(meas);
65  if (testSpacePoint!=nullptr) { return Trk::TrackState::SpacePoint;
66 }
68 }
AtlasDetectorID::is_pixel
bool is_pixel(Identifier id) const
Definition: AtlasDetectorID.h:760
Trk::SpacePoint
Definition: Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePoint.h:35
Trk::TrackState::Vertex
@ Vertex
Definition: TrackStateDefs.h:36
AtlasDetectorID::is_rpc
bool is_rpc(Identifier id) const
Definition: AtlasDetectorID.h:875
Trk::TrackState::RPC
@ RPC
Definition: TrackStateDefs.h:33
Trk::TrackState::Pixel
@ Pixel
Definition: TrackStateDefs.h:28
Trk::TrackState::TRT
@ TRT
Definition: TrackStateDefs.h:30
MeasurementBase.h
AtlasDetectorID::is_csc
bool is_csc(Identifier id) const
Definition: AtlasDetectorID.h:891
Trk::TrackState::Segment
@ Segment
Definition: TrackStateDefs.h:37
AtlasDetectorID::is_sct
bool is_sct(Identifier id) const
Definition: AtlasDetectorID.h:770
Trk::TrackState::MDT
@ MDT
Definition: TrackStateDefs.h:31
AtlasDetectorID::is_mm
bool is_mm(Identifier id) const
Definition: AtlasDetectorID.h:913
Trk::RIO_OnTrack
Definition: RIO_OnTrack.h:70
Trk::TrackState::TGC
@ TGC
Definition: TrackStateDefs.h:34
AtlasDetectorID::is_trt
bool is_trt(Identifier id) const
Definition: AtlasDetectorID.h:782
Trk::TrackState::unidentified
@ unidentified
Definition: TrackStateDefs.h:27
Identifier::is_valid
bool is_valid() const
Check if id is in a valid state.
Trk::TrackState::MM
@ MM
Definition: TrackStateDefs.h:42
Trk::RoT_Extractor::extract
static void extract(std::vector< const RIO_OnTrack * > &rots, const std::vector< const MeasurementBase * > &measurements)
RoT_Extractor.h
Trk::PseudoMeasurementOnTrack
Class to handle pseudo-measurements in fitters and on track objects.
Definition: PseudoMeasurementOnTrack.h:44
Trk::TrackState::SpacePoint
@ SpacePoint
Definition: TrackStateDefs.h:38
AtlasDetectorID.h
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
Trk::TrackState::Pseudo
@ Pseudo
Definition: TrackStateDefs.h:35
AtlasDetectorID::is_tgc
bool is_tgc(Identifier id) const
Definition: AtlasDetectorID.h:902
SpacePoint.h
Segment.h
VertexOnTrack.h
Trk::Segment
Definition: TrkEvent/TrkSegment/TrkSegment/Segment.h:56
PseudoMeasurementOnTrack.h
Trk::TrackState::MeasurementType
MeasurementType
enum describing the flavour of MeasurementBase
Definition: TrackStateDefs.h:26
Trk::MeasurementTypeID::m_idHelper
const AtlasDetectorID * m_idHelper
Definition: MeasurementTypeID.h:37
Trk::VertexOnTrack
Definition: VertexOnTrack.h:45
Trk::MeasurementBase
Definition: MeasurementBase.h:58
RIO_OnTrack.h
MeasurementTypeID.h
Trk::TrackState::CSC
@ CSC
Definition: TrackStateDefs.h:32
Trk::RIO_OnTrack::identify
virtual Identifier identify() const final
return the identifier -extends MeasurementBase
Definition: RIO_OnTrack.h:155
AtlasDetectorID::is_stgc
bool is_stgc(Identifier id) const
Definition: AtlasDetectorID.h:924
Trk::TrackState::SCT
@ SCT
Definition: TrackStateDefs.h:29
Trk::TrackState::STGC
@ STGC
Definition: TrackStateDefs.h:41
AtlasDetectorID::is_mdt
bool is_mdt(Identifier id) const
Definition: AtlasDetectorID.h:859
Trk::MeasurementTypeID::defineType
Trk::TrackState::MeasurementType defineType(const MeasurementBase *) const
createPerigee method - returned by object
Definition: MeasurementTypeID.cxx:20