ATLAS Offline Software
Loading...
Searching...
No Matches
PixelClusterOnTrack.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// PixelClusterOnTrack.h, (c) ATLAS Detector software
8
9#ifndef INDETRIO_ONTRACK_PIXELCLUSTERONTRACK_H
10#define INDETRIO_ONTRACK_PIXELCLUSTERONTRACK_H
11
12// Base classes
15
16// for ElementLink to IdentifiableContainer PixelClusterContainer
17#include "AthLinks/ElementLink.h"
19
21class PixelCluster;
22
23namespace Trk {
24class Surface;
27} // namespace Trk
28
29namespace InDetDD {
31}
32
35
36namespace InDet {
37
38class PixelDetectorElement;
39class LocalParameters;
40
50
52
53 public:
66 virtual ~PixelClusterOnTrack() = default;
69 Trk::LocalParameters&& locpars,
70 Amg::MatrixX&& locerr,
71 const IdentifierHash& idDE,
72 bool hasAmbiguity = false,
73 // this parameter is ignored,
74 // information taken from RIO
75 // Just kept not to break the interface to
76 // already existing code.
77 bool isbroad = false);
78
79
82 Trk::LocalParameters&& locpars,
83 Amg::MatrixX&& locerr,
84 const IdentifierHash& idDE,
86 bool hasAmbiguity = false,
87 // this parameter is ignored,
88 // information taken from RIO
89 // Just kept not to break the interface to
90 // already existing code.
91 bool isbroad = false);
92
93
94 /*
95 * Constuctor used by P->T converter.
96 * The P->T converter calls
97 * setValues method to complete the object.
98 * e.g set/reset the DetectorElement
99 */
101 const Trk::LocalParameters& locpars,
102 const Amg::MatrixX& locerr,
103 const IdentifierHash& idDE,
104 const Identifier& id,
105 float energyLoss,
106 bool isFake,
108 bool isbroad);
109
110
112 virtual PixelClusterOnTrack* clone() const override final;
113
116 virtual const Trk::Surface& associatedSurface() const override final;
117
118 virtual bool rioType(Trk::RIO_OnTrackType::Type type) const override final {
120 }
121
124 virtual const PixelCluster* prepRawData() const override final;
125
127
131 const override final;
132
140 bool isFake() const;
143 float energyLoss() const;
144
146 virtual MsgStream& dump(MsgStream& out) const override final;
147
149 virtual std::ostream& dump(std::ostream& out) const override final;
150
151 private:
153 friend class ::FakeTrackBuilder;
154
158 virtual void setValues(const Trk::TrkDetElementBase* detEl,
159 const Trk::PrepRawData* prd) override final;
160
163
173};
174
176 return new PixelClusterOnTrack(*this);
177}
178
180 // somehow one has to ask first if it is valid ... otherwise it always returns
181 // 0 ...
182 if (m_rio.isValid())
183 return m_rio.cachedElement();
184 else
185 return 0;
186}
187
192
197
201
202inline bool PixelClusterOnTrack::isFake() const {
203 return m_isFake;
204}
205
207 return m_energyLoss;
208}
209
210} // namespace InDet
211
212#endif // TRKRIO_ONTRACK_SICLUSTERONTRACK_H
ElementLink< InDet::PixelClusterContainer > ElementLinkToIDCPixelClusterContainer
This is a "hash" representation of an Identifier.
Class to hold geometrical description of a silicon detector element.
PixelClusterOnTrack(PixelClusterOnTrack &&)=default
Move constructor.
virtual const InDetDD::SiDetectorElement * detectorElement() const override final
returns the detector element, assoicated with the PRD of this class
const ElementLinkToIDCPixelClusterContainer & prepRawDataLink() const
bool isFake() const
returns whether this cluster is likely to be the fake mirror image of a ganged pixel.
virtual const Trk::Surface & associatedSurface() const override final
returns the surface for the local to global transformation
virtual ~PixelClusterOnTrack()=default
destructor
PixelClusterOnTrack & operator=(PixelClusterOnTrack &&)=default
Move assignment.
ElementLinkToIDCPixelClusterContainer m_rio
PixelCluster - the RIO (PRD, PrepRawData)
virtual bool rioType(Trk::RIO_OnTrackType::Type type) const override final
Method checking the Rio On Track type.
bool m_hasClusterAmbiguity
records whether there is an ambiguity about this cluster
bool hasClusterAmbiguity() const
returns whether there was an ambiguity associated with this pixel cluster.
virtual PixelClusterOnTrack * clone() const override final
Pseudo-constructor : needed to avoid excessive RTTI.
bool m_isFake
records whether this cluster would be removed by the internal solving of ganged pixel ambiguities
float m_energyLoss
get energy deposited in the cluster, in MeV
const InDetDD::SiDetectorElement * m_detEl
corresponding detector element
PixelClusterOnTrack(const PixelClusterOnTrack &)=default
Copy constructor.
PixelClusterOnTrack & operator=(const PixelClusterOnTrack &)=default
Assignment operator.
PixelClusterOnTrack()
Default constructor - needed for POOL.
float energyLoss() const
returns the energy loss in MeV associated to this cluster.
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...
virtual const PixelCluster * prepRawData() const override final
returns the PrepRawData - is a SiCluster in this scope
virtual const Amg::Vector3D & globalPosition() const override
returns global position (gathered through Surface constraint)
SiClusterOnTrack()
Default Constructor - needed for POOL.
virtual IdentifierHash idDE() const override
returns the DE hashID*
Class to hold geometrical description of a silicon detector element.
virtual bool type(MeasurementBaseType::Type type) const override final
Extended method checking the type.
Abstract Base Class for tracking surfaces.
This is the base class for all tracking detector elements with read-out relevant information.
STL class.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Eigen::Matrix< double, 3, 1 > Vector3D
Message Stream Member.
Primary Vertex Finder.
Ensure that the ATLAS eigen extensions are properly loaded.
-event-from-file
STL namespace.
#define private