ATLAS Offline Software
InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/SiCluster.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 // SiCluster.h
7 // Header file for class SiCluster
9 // Class to implement Cluster for Si
11 // Version 1.0 15/07/2003 Veronique Boisvert
13 
14 #ifndef TRKPREPRAWDATA_SICLUSTER_H
15 #define TRKPREPRAWDATA_SICLUSTER_H
16 
17 // Base class
18 #include "Identifier/Identifier.h"
20 #include "InDetReadoutGeometry/SiDetectorElement.h" // cant be forward declared
22 #include "TrkSurfaces/Surface.h"
23 #include <memory>
24 #include <iosfwd>
25 
28 
29 class MsgStream;
30 
34 class SCT_ClusterContainerCnv_p1;
35 class SiClusterCnv_p1;
36 
37 namespace InDet {
38 
40 {
45  friend class ::PixelClusterContainerCnv;
46  friend class ::SCT_ClusterContainerCnv;
47  friend class ::PixelClusterContainerCnv_p2;
49  friend class ::PixelClusterContainerCnv_p0;
51  friend class ::SCT_ClusterContainerCnv_p0;
52  friend class ::SiClusterCnv_p1;
54 
55 public:
56  // Used by TPCnv converters
57  SiCluster() = default;
59  SiCluster(const SiCluster&) = default;
61  SiCluster(SiCluster&&) = default;
63  SiCluster& operator=(const SiCluster&) = default;
65  SiCluster& operator=(SiCluster&&) = default;
67  virtual ~SiCluster() = default;
68 
73  SiCluster(const Identifier& RDOId,
74  const Amg::Vector2D& locpos,
75  std::vector<Identifier>&& rdoList,
76  const InDet::SiWidth& width,
77  const InDetDD::SiDetectorElement* detEl,
78  Amg::MatrixX&& locErrMat);
79 
80  SiCluster(const Identifier& RDOId,
81  const Amg::Vector2D& locpos,
82  std::vector<Identifier>&& rdoList,
83  const InDet::SiWidth& width,
84  const InDetDD::SiDetectorElement* detEl);
85 
86  SiCluster(const Identifier& RDOId,
87  const Amg::Vector2D& locpos,
88  const Amg::Vector3D& globpos,
89  std::vector<Identifier>&& rdoList,
90  const InDet::SiWidth& width,
91  const InDetDD::SiDetectorElement* detEl,
92  Amg::MatrixX&& locErrMat);
93 
94  SiCluster(const Identifier& RDOId,
95  const Amg::Vector2D& locpos,
96  const Amg::Vector3D& globpos,
97  std::vector<Identifier>&& rdoList,
98  const InDet::SiWidth& width,
99  const InDetDD::SiDetectorElement* detEl);
100 
105  const InDet::SiWidth& width() const;
107 
110 
112  void setGangedPixel(bool ganged);
113 
115  bool gangedPixel() const;
119  virtual const InDetDD::SiDetectorElement* detectorElement() const override final;
120 
122  virtual bool type(Trk::PrepRawDataType type) const override;
123 
125  virtual MsgStream& dump(MsgStream& stream) const override;
127  virtual std::ostream& dump(std::ostream& stream) const override;
129 
131  //used by TPCnv converters
132  void setDetectorElement(const InDetDD::SiDetectorElement* detEl);
133 
134 private:
140  bool m_gangedPixel = false;
141 };
142 
143 MsgStream&
144 operator<<(MsgStream& stream, const SiCluster& prd);
145 std::ostream&
146 operator<<(std::ostream& stream, const SiCluster& prd);
147 
148 }
149 
151 #endif // TRKPREPRAWDATA_SICLUSTER_H
InDet::SiCluster::m_gangedPixel
bool m_gangedPixel
Definition: InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/SiCluster.h:140
InDet::SiCluster::setDetectorElement
void setDetectorElement(const InDetDD::SiDetectorElement *detEl)
Set the m_detEl and calculate globalPostion.
InDet::operator<<
MsgStream & operator<<(MsgStream &, const GNNTrackReaderTool &)
SiWidth.h
Trk::PrepRawDataType
PrepRawDataType
Definition: PrepRawData.h:39
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition: EventPrimitives.h:29
Surface.h
InDet::SiCluster::operator=
SiCluster & operator=(const SiCluster &)=default
Assignment operator.
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
InDet::SiCluster::type
virtual bool type(Trk::PrepRawDataType type) const override
Interface method checking the type.
InDet
DUMMY Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
InDet::SiCluster::m_detEl
const InDetDD::SiDetectorElement * m_detEl
Not owning points (ownned by the store.
Definition: InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/SiCluster.h:139
Trk::PrepRawData::rdoList
const std::vector< Identifier > & rdoList() const
return the List of rdo identifiers (pointers)
InDet::SiCluster::m_width
InDet::SiWidth m_width
col, row, and width in mm
Definition: InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/SiCluster.h:137
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
AthenaPoolTestWrite.stream
string stream
Definition: AthenaPoolTestWrite.py:12
PrepRawData.h
PixelClusterContainerCnv_p0
Definition: PixelClusterContainerCnv_p0.h:20
InDet::SiCluster::m_globalPosition
Amg::Vector3D m_globalPosition
Definition: InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/SiCluster.h:135
SCT_ClusterContainerCnv_p0
Definition: SCT_ClusterContainerCnv_p0.h:19
InDet::PixelClusterContainerCnv_p1
Definition: PixelClusterContainerCnv_p1.h:29
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
SiCluster.icc
InDet::SiCluster::detectorElement
virtual const InDetDD::SiDetectorElement * detectorElement() const override final
return the detector element corresponding to this PRD The pointer will be zero if the det el is not d...
Trk::PrepRawData
Definition: PrepRawData.h:62
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Amg
Definition of ATLAS Math & Geometry primitives (Amg)
Definition: AmgStringHelpers.h:19
InDet::SiCluster::gangedPixel
bool gangedPixel() const
return the flag of this cluster containing a gangedPixel
InDet::SiCluster::dump
virtual MsgStream & dump(MsgStream &stream) const override
dump information about the SiCluster
Definition: SiCluster.cxx:88
SiClusterCnv_p1
Definition: SiClusterCnv_p1.h:25
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
SiDetectorElement.h
PixelClusterContainerCnv
Create derived converter to customize the saving of identifiable container.
Definition: PixelClusterContainerCnv.h:32
SCT_ClusterContainerCnv
Create derived converter to customize the saving of identifiable container.
Definition: SCT_ClusterContainerCnv.h:32
InDet::SiCluster::globalPosition
const Amg::Vector3D & globalPosition() const
return global position reference
InDet::SiCluster::width
const InDet::SiWidth & width() const
return width class reference
PixelClusterContainerCnv_p2
Definition: PixelClusterContainerCnv_p2.h:23
InDet::SiCluster::setGangedPixel
void setGangedPixel(bool ganged)
set the flag of this cluster containing a gangedPixel
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
InDet::SiCluster::SiCluster
SiCluster(const SiCluster &)=default
Copy constructor.
InDet::SCT_ClusterContainerCnv_p1
Definition: SCT_ClusterContainerCnv_p1.h:29
InDet::SiWidth
Definition: SiWidth.h:25
InDet::SiCluster::SiCluster
SiCluster(SiCluster &&)=default
Move constructor.
InDet::SiCluster::operator=
SiCluster & operator=(SiCluster &&)=default
Move assignment operator.
InDet::SiCluster::SiCluster
SiCluster()=default
InDet::SiCluster
Definition: InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/SiCluster.h:40
InDet::SiCluster::~SiCluster
virtual ~SiCluster()=default
Destructor:
generate::Zero
void Zero(TH1D *hin)
Definition: generate.cxx:32