ATLAS Offline Software
SCT_ClusterOnTrack.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // SCT_ClusterOnTrack.h, (c) ATLAS Detector software
8 
9 #ifndef INDETRIO_ONTRACK_SCTCLUSTERONTRACK_H
10 #define INDETRIO_ONTRACK_SCTCLUSTERONTRACK_H
11 
12 // Base classes
14 
15 // for ElementLink to IdentifiableContainer SCT_ClusterContainer
17 #include "AthLinks/ElementLink.h"
18 
19 
20 class SCT_Cluster;
21 
22 namespace Trk {
23  class Surface;
24  class LocalParameters;
25  class TrkDetElementBase;
26  class ITrkEventCnvTool;
27 }
28 
29 namespace InDetDD {
30  class SiDetectorElement;
31 }
32 
34 
35 namespace InDet{
36 
44  class SCT_ClusterOnTrack final : public SiClusterOnTrack {
45 
46  public:
47  friend class Trk::ITrkEventCnvTool;
50  // copy constructor
51  SCT_ClusterOnTrack( const SCT_ClusterOnTrack& rot) = default;
52  // move constructor
59  virtual ~SCT_ClusterOnTrack() = default;
60 
63  Trk::LocalParameters&& locpars,
64  Amg::MatrixX&& locerr,
65  const IdentifierHash& idDE,
66  bool isbroad=false);
67 
70  Trk::LocalParameters&& locpars,
71  Amg::MatrixX&& locerr,
72  const IdentifierHash& idDE,
74  bool isbroad=false);
75 
76 
77  /*
78  * Constuctor used by P->T converter.
79  * The P->T converter calls the
80  * setValues method to complete the object
81  * e.g set/reset the DetectorElement
82  */
84  const Trk::LocalParameters& locpars,
85  const Amg::MatrixX& locerr,
87  const Identifier& id,
88  bool isbroad,
89  double positionAlongStrip);
91  virtual SCT_ClusterOnTrack* clone() const override final;
92 
96  virtual const Trk::Surface& associatedSurface() const override final;
97 
98  virtual bool rioType(Trk::RIO_OnTrackType::Type type) const override final
99  {
101  }
102 
103 
107  virtual const InDet::SCT_Cluster* prepRawData() const override final;
108 
110 
111 
115  virtual const InDetDD::SiDetectorElement* detectorElement() const override final;
116 
118  virtual MsgStream& dump( MsgStream& out ) const override final;
119 
121  virtual std::ostream& dump( std::ostream& out ) const override final;
122 
123  double positionAlongStrip() const;
124 
125  private:
129  virtual void setValues(const Trk::TrkDetElementBase* detEl,
130  const Trk::PrepRawData* prd) override final;
131 
135  const InDetDD::SiDetectorElement* m_detEl;
136 
138  };
139 
141  {
142  return new SCT_ClusterOnTrack(*this);
143  }
144 
146  {
147  // somehow one has to ask first if it is valid ... otherwise it always returns 0 ...
148  if (m_rio.isValid()) return m_rio.cachedElement();
149  else return 0;
150  }
151 
154  {
155  return m_rio;
156  }
157 
159  {
160  return m_detEl;
161  }
162 
164  {
165  return m_positionAlongStrip;
166  }
167 
168 
169 }//end of namespace definitions
170 
171 #endif // TRKRIO_ONTRACK_SICLUSTERONTRACK_H
Trk::LocalParameters
Definition: LocalParameters.h:98
InDet::SiClusterOnTrack::idDE
virtual IdentifierHash idDE() const override
returns the DE hashID*
Definition: SiClusterOnTrack.h:119
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition: EventPrimitives.h:27
InDet::SCT_ClusterOnTrack::m_detEl
const InDetDD::SiDetectorElement * m_detEl
corresponding detector element
Definition: SCT_ClusterOnTrack.h:135
InDet::SCT_ClusterOnTrack::positionAlongStrip
double positionAlongStrip() const
Definition: SCT_ClusterOnTrack.h:163
InDet
Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
InDet::SCT_ClusterOnTrack::operator=
SCT_ClusterOnTrack & operator=(const SCT_ClusterOnTrack &)=default
Assignment operator.
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
Surface
Definition: Trigger/TrigAccel/TrigCudaFitter/src/Surface.h:8
SiClusterOnTrack.h
InDet::SCT_ClusterOnTrack::prepRawData
virtual const InDet::SCT_Cluster * prepRawData() const override final
returns the PrepRawData - is a SCT_Cluster in this scope
Definition: SCT_ClusterOnTrack.h:145
InDet::SCT_ClusterOnTrack::dump
virtual MsgStream & dump(MsgStream &out) const override final
returns some information about this RIO_OnTrack.
Definition: SCT_ClusterOnTrack.cxx:90
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
SCT_Cluster
Definition: Trigger/TrigAccel/TrigCudaFitter/src/SCT_Cluster.h:8
InDet::SCT_ClusterOnTrack::~SCT_ClusterOnTrack
virtual ~SCT_ClusterOnTrack()=default
Destructor.
Trk::RIO_OnTrack::type
virtual bool type(MeasurementBaseType::Type type) const override final
Extended method checking the type.
Definition: RIO_OnTrack.h:110
InDet::SiClusterOnTrack::globalPosition
virtual const Amg::Vector3D & globalPosition() const override
returns global position (gathered through Surface constraint)
Definition: SiClusterOnTrack.h:115
Trk::RIO_OnTrackType::SCTCluster
@ SCTCluster
Definition: RIO_OnTrack.h:58
InDet::SCT_ClusterOnTrack::m_rio
ElementLinkToIDCSCT_ClusterContainer m_rio
SCT_Cluster - the RIO (PRD, PrepRawData)
Definition: SCT_ClusterOnTrack.h:133
InDet::SCT_ClusterOnTrack::clone
virtual SCT_ClusterOnTrack * clone() const override final
Pseudo-constructor.
Definition: SCT_ClusterOnTrack.h:140
InDet::SCT_ClusterOnTrack::m_positionAlongStrip
double m_positionAlongStrip
Definition: SCT_ClusterOnTrack.h:137
Trk::ITrkEventCnvTool
Definition: ITrkEventCnvTool.h:31
InDet::SCT_ClusterOnTrack::detectorElement
virtual const InDetDD::SiDetectorElement * detectorElement() const override final
returns the detector element, assoicated with the PRD of this class
Definition: SCT_ClusterOnTrack.h:158
InDet::SCT_ClusterOnTrack::SCT_ClusterOnTrack
SCT_ClusterOnTrack(SCT_ClusterOnTrack &&rot)=default
ElementLinkToIDCSCT_ClusterContainer
ElementLink< InDet::SCT_ClusterContainer > ElementLinkToIDCSCT_ClusterContainer
Definition: SCT_ClusterOnTrack.h:33
InDet::SCT_Cluster
Definition: InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/SCT_Cluster.h:34
xAODType
Definition: ObjectType.h:13
InDet::SCT_ClusterOnTrack::rioType
virtual bool rioType(Trk::RIO_OnTrackType::Type type) const override final
Method checking the Rio On Track type.
Definition: SCT_ClusterOnTrack.h:98
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
InDetDD::SiDetectorElement
Definition: SiDetectorElement.h:109
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
SCT_ClusterContainer.h
InDet::SCT_ClusterOnTrack::associatedSurface
virtual const Trk::Surface & associatedSurface() const override final
returns the surface for the local to global transformation
Definition: SCT_ClusterOnTrack.cxx:74
InDet::SCT_ClusterOnTrack::prepRawDataLink
const ElementLinkToIDCSCT_ClusterContainer & prepRawDataLink() const
Definition: SCT_ClusterOnTrack.h:153
InDet::SCT_ClusterOnTrack::operator=
SCT_ClusterOnTrack & operator=(SCT_ClusterOnTrack &&)=default
Default move assigment operator.
InDet::SCT_ClusterOnTrack::SCT_ClusterOnTrack
SCT_ClusterOnTrack(const SCT_ClusterOnTrack &rot)=default
InDet::SCT_ClusterOnTrack::SCT_ClusterOnTrack
SCT_ClusterOnTrack()
For POOL only.
Definition: SCT_ClusterOnTrack.cxx:66
IdentifierHash
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
Definition: IdentifierHash.h:25
InDet::SCT_ClusterOnTrack::setValues
virtual void setValues(const Trk::TrkDetElementBase *detEl, const Trk::PrepRawData *prd) override final
ONLY for use in custom convertor Allows the custom convertor to reset values when persistying/reading...
Definition: SCT_ClusterOnTrack.cxx:79
InDet::SiClusterOnTrack
Definition: SiClusterOnTrack.h:39
InDet::SCT_ClusterOnTrack
Definition: SCT_ClusterOnTrack.h:44
Identifier
Definition: IdentifierFieldParser.cxx:14