Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
athena
Manage
Activity
Members
Labels
Plan
Jira
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
atlas
athena
Merge requests
!34981
Add type to PrepRawData, move implementations .icc, avoid dyn_cast
Code
Review changes
Check out branch
Download
Patches
Plain diff
Merged
Add type to PrepRawData, move implementations .icc, avoid dyn_cast
ATLAS-EGamma/athena:PrepRawData_add_type_function
into
master
Overview
33
Commits
6
Pipelines
6
Changes
11
Merged
Christos Anastopoulos
requested to merge
ATLAS-EGamma/athena:PrepRawData_add_type_function
into
master
4 years ago
Overview
18
Commits
6
Pipelines
6
Changes
1
Expand
Add a type function to
PrepRawData
Move a few inline to separate
.icc
Use it to avoid a couple of
dynamic_cast
s
0
0
Merge request reports
Compare
version 1
version 5
b4c34ca8
4 years ago
version 4
5a5ac385
4 years ago
version 3
730fc304
4 years ago
version 2
432bd757
4 years ago
version 1
4f4aab1a
4 years ago
master (base)
and
version 2
latest version
be7ac488
6 commits,
4 years ago
version 5
b4c34ca8
5 commits,
4 years ago
version 4
5a5ac385
4 commits,
4 years ago
version 3
730fc304
3 commits,
4 years ago
version 2
432bd757
2 commits,
4 years ago
version 1
4f4aab1a
1 commit,
4 years ago
Show latest version
1 file
+
91
−
96
Inline
Compare changes
Side-by-side
Inline
Show whitespace changes
Show one file at a time
InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/SiCluster.h
+
91
−
96
Options
@@ -38,108 +38,103 @@ class SiClusterCnv_p1;
namespace
InDet
{
class
SiCluster
:
public
Trk
::
PrepRawData
{
/**
* @name Friend class declarations
*/
//@{
friend
class
::
PixelClusterContainerCnv
;
friend
class
::
SCT_ClusterContainerCnv
;
friend
class
::
PixelClusterContainerCnv_p2
;
friend
class
PixelClusterContainerCnv_p1
;
friend
class
::
PixelClusterContainerCnv_p0
;
friend
class
SCT_ClusterContainerCnv_p1
;
friend
class
::
SCT_ClusterContainerCnv_p0
;
friend
class
::
SiClusterCnv_p1
;
//@}
public:
/// Constructor without parameter
SiCluster
();
/// Copy constructor
SiCluster
(
const
SiCluster
&
);
/// Move constructor
SiCluster
(
SiCluster
&&
);
/// Assignment operator
SiCluster
&
operator
=
(
const
SiCluster
&
);
/// Move assignment operator
SiCluster
&
operator
=
(
SiCluster
&&
);
/**
* Constructor with parameters using pointer of Amg::MatrixX.
* Last parameter might not be always filled and will be nullptr by default.
* The others including SiDetectorElement have to be given!
*/
SiCluster
(
const
Identifier
&
RDOId
,
const
Amg
::
Vector2D
&
locpos
,
const
std
::
vector
<
Identifier
>&
rdoList
,
const
InDet
::
SiWidth
&
width
,
const
InDetDD
::
SiDetectorElement
*
detEl
,
const
Amg
::
MatrixX
*
locErrMat
=
nullptr
);
/**
* Constructor with parameters using unique_ptr of Amg::MatrixX.
* All parameters have to be given!
*/
SiCluster
(
const
Identifier
&
RDOId
,
const
Amg
::
Vector2D
&
locpos
,
std
::
vector
<
Identifier
>&&
rdoList
,
const
InDet
::
SiWidth
&
width
,
const
InDetDD
::
SiDetectorElement
*
detEl
,
std
::
unique_ptr
<
const
Amg
::
MatrixX
>
locErrMat
);
/// Destructor:
virtual
~
SiCluster
();
/**
* @name Virtual methods
*/
//@{
/// return width class reference
virtual
const
InDet
::
SiWidth
&
width
()
const
;
/// return global position reference
virtual
const
Amg
::
Vector3D
&
globalPosition
()
const
;
/// set the flag of this cluster containing a gangedPixel
virtual
void
setGangedPixel
(
bool
ganged
);
/// return the flag of this cluster containing a gangedPixel
virtual
bool
gangedPixel
()
const
;
/// return the detector element corresponding to this PRD
/// The pointer will be zero if the det el is not defined (i.e. it was not passed in by the ctor)
virtual
const
InDetDD
::
SiDetectorElement
*
detectorElement
()
const
override
;
class
SiCluster
:
public
Trk
::
PrepRawData
{
/**
* @name Friend class declarations
*/
//@{
friend
class
::
PixelClusterContainerCnv
;
friend
class
::
SCT_ClusterContainerCnv
;
friend
class
::
PixelClusterContainerCnv_p2
;
friend
class
PixelClusterContainerCnv_p1
;
friend
class
::
PixelClusterContainerCnv_p0
;
friend
class
SCT_ClusterContainerCnv_p1
;
friend
class
::
SCT_ClusterContainerCnv_p0
;
friend
class
::
SiClusterCnv_p1
;
//@}
public:
/// Constructor without parameter
SiCluster
();
/// Copy constructor
SiCluster
(
const
SiCluster
&
);
/// Move constructor
SiCluster
(
SiCluster
&&
);
/// Assignment operator
SiCluster
&
operator
=
(
const
SiCluster
&
);
/// Move assignment operator
SiCluster
&
operator
=
(
SiCluster
&&
);
/**
* Constructor with parameters using pointer of Amg::MatrixX.
* Last parameter might not be always filled and will be nullptr by default.
* The others including SiDetectorElement have to be given!
*/
SiCluster
(
const
Identifier
&
RDOId
,
const
Amg
::
Vector2D
&
locpos
,
const
std
::
vector
<
Identifier
>&
rdoList
,
const
InDet
::
SiWidth
&
width
,
const
InDetDD
::
SiDetectorElement
*
detEl
,
const
Amg
::
MatrixX
*
locErrMat
=
nullptr
);
/**
* Constructor with parameters using unique_ptr of Amg::MatrixX.
* All parameters have to be given!
*/
SiCluster
(
const
Identifier
&
RDOId
,
const
Amg
::
Vector2D
&
locpos
,
std
::
vector
<
Identifier
>&&
rdoList
,
const
InDet
::
SiWidth
&
width
,
const
InDetDD
::
SiDetectorElement
*
detEl
,
std
::
unique_ptr
<
const
Amg
::
MatrixX
>
locErrMat
);
/// Destructor:
virtual
~
SiCluster
();
/**
* @name Virtual methods
*/
//@{
/// return width class reference
virtual
const
InDet
::
SiWidth
&
width
()
const
;
/// return global position reference
virtual
const
Amg
::
Vector3D
&
globalPosition
()
const
;
/// set the flag of this cluster containing a gangedPixel
virtual
void
setGangedPixel
(
bool
ganged
);
/// return the flag of this cluster containing a gangedPixel
virtual
bool
gangedPixel
()
const
;
/// return the detector element corresponding to this PRD
/// The pointer will be zero if the det el is not defined (i.e. it was not
/// passed in by the ctor)
virtual
const
InDetDD
::
SiDetectorElement
*
detectorElement
()
const
override
;
/** Interface method checking the type*/
virtual
bool
type
(
Trk
::
PrepRawDataType
::
Type
type
)
const
override
final
;
/// dump information about the SiCluster
virtual
MsgStream
&
dump
(
MsgStream
&
stream
)
const
override
;
/// dump information about the SiCluster
virtual
std
::
ostream
&
dump
(
std
::
ostream
&
stream
)
const
override
;
//@}
private:
/// col, row, and width in mm
InDet
::
SiWidth
m_width
;
/// For lazy initialization CxxUtils::CachedUniquePtr is used.
CxxUtils
::
CachedUniquePtr
<
const
Amg
::
Vector3D
>
m_globalPosition
;
bool
m_gangedPixel
;
const
InDetDD
::
SiDetectorElement
*
m_detEl
;
/// dump information about the SiCluster
virtual
MsgStream
&
dump
(
MsgStream
&
stream
)
const
override
;
/// dump information about the SiCluster
virtual
std
::
ostream
&
dump
(
std
::
ostream
&
stream
)
const
override
;
//@}
private:
/// col, row, and width in mm
InDet
::
SiWidth
m_width
;
/// For lazy initialization CxxUtils::CachedUniquePtr is used.
CxxUtils
::
CachedUniquePtr
<
const
Amg
::
Vector3D
>
m_globalPosition
;
bool
m_gangedPixel
;
const
InDetDD
::
SiDetectorElement
*
m_detEl
;
};
MsgStream
&
operator
<<
(
MsgStream
&
stream
,
const
SiCluster
&
prd
);
std
::
ostream
&
operator
<<
(
std
::
os
tream
&
stream
,
const
SiCluster
&
prd
);
MsgStream
&
operator
<<
(
MsgS
tream
&
stream
,
const
SiCluster
&
prd
);
std
::
ostream
&
operator
<<
(
std
::
ostream
&
stream
,
const
SiCluster
&
prd
);
}
#include
"InDetPrepRawData/SiCluster.icc"
#endif // TRKPREPRAWDATA_SICLUSTER_H
Loading