ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonReconstruction
MuonDataPrep
MuonClusterization
MuonClusterization
TgcHitClustering.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef TGCHITCLUSTERING_H
6
#define TGCHITCLUSTERING_H
7
8
#include <vector>
9
#include "
MuonPrepRawData/MuonPrepDataContainer.h
"
10
#include "
MuonPrepRawData/TgcPrepData.h
"
11
#include "
MuonReadoutGeometry/TgcReadoutElement.h
"
12
#include "
GeoPrimitives/GeoPrimitives.h
"
13
14
#include "Identifier/Identifier.h"
15
#include "
MuonIdHelpers/TgcIdHelper.h
"
16
17
namespace
Muon
{
18
19
class
TgcClusterObj3D
{
20
public
:
21
22
using
HitList
= std::vector< const TgcPrepData* >;
23
24
TgcClusterObj3D
(
const
HitList
& etaC,
const
HitList
& phiC ) :
25
etaCluster
(etaC),
phiCluster
(phiC) {}
26
HitList
etaCluster
{};
27
HitList
phiCluster
{};
28
30
enum class
Edge
: uint8_t{
31
LowEtaLowPhi
= 0,
32
LowEtaHighPhi
,
33
HighEtaLowPhi
,
34
HighEtaHighPhi
35
};
36
Amg::Vector3D
&
getEdge
(
const
Edge
e) {
37
return
m_edgePoints
[
static_cast<
unsigned
>
(e)];
38
}
39
const
Amg::Vector3D
&
getEdge
(
const
Edge
e)
const
{
40
return
m_edgePoints
[
static_cast<
unsigned
>
(e)];
41
}
42
43
private
:
44
std::array<Amg::Vector3D, 4>
m_edgePoints
{
make_array<Amg::Vector3D, 4>
(Amg::Vector3D::Zero())};
45
};
46
47
struct
TgcHitClusteringObj
{
48
49
using
HitList
=
TgcClusterObj3D::HitList
;
50
51
TgcHitClusteringObj
(
const
TgcIdHelper
* tgcIdHelp ) :
52
m_tgcIdHelper
(tgcIdHelp) {}
53
54
bool
cluster
(
const
HitList
& col );
55
bool
cluster
(
HitList
& filteredHits,
56
std::vector<HitList>& finalClusts);
57
58
bool
buildClusters3D
();
59
60
void
dump
()
const
;
61
62
const
HitList
&
bestEtaCluster
()
const
;
63
const
HitList
&
bestPhiCluster
()
const
;
64
65
66
const
TgcIdHelper
*
m_tgcIdHelper
{
nullptr
};
67
std::vector<HitList>
clustersEta
{};
68
std::vector<HitList>
clustersPhi
{};
69
std::vector<TgcClusterObj3D>
clusters3D
{};
70
71
};
72
73
}
74
#endif
make_array
constexpr std::array< T, N > make_array(const T &def_val)
Helper function to initialize in-place arrays with non-zero values.
Definition
ArrayHelper.h:10
GeoPrimitives.h
TgcReadoutElement.h
MuonPrepDataContainer.h
TgcIdHelper.h
TgcPrepData.h
Muon::TgcClusterObj3D::HitList
std::vector< const TgcPrepData * > HitList
Definition
TgcHitClustering.h:22
Muon::TgcClusterObj3D::m_edgePoints
std::array< Amg::Vector3D, 4 > m_edgePoints
Definition
TgcHitClustering.h:44
Muon::TgcClusterObj3D::TgcClusterObj3D
TgcClusterObj3D(const HitList &etaC, const HitList &phiC)
Definition
TgcHitClustering.h:24
Muon::TgcClusterObj3D::phiCluster
HitList phiCluster
Definition
TgcHitClustering.h:27
Muon::TgcClusterObj3D::getEdge
const Amg::Vector3D & getEdge(const Edge e) const
Definition
TgcHitClustering.h:39
Muon::TgcClusterObj3D::Edge
Edge
Representation of the four edge points.
Definition
TgcHitClustering.h:30
Muon::TgcClusterObj3D::Edge::HighEtaHighPhi
@ HighEtaHighPhi
Definition
TgcHitClustering.h:34
Muon::TgcClusterObj3D::Edge::LowEtaLowPhi
@ LowEtaLowPhi
Definition
TgcHitClustering.h:31
Muon::TgcClusterObj3D::Edge::HighEtaLowPhi
@ HighEtaLowPhi
Definition
TgcHitClustering.h:33
Muon::TgcClusterObj3D::Edge::LowEtaHighPhi
@ LowEtaHighPhi
Definition
TgcHitClustering.h:32
Muon::TgcClusterObj3D::etaCluster
HitList etaCluster
Definition
TgcHitClustering.h:26
Muon::TgcClusterObj3D::getEdge
Amg::Vector3D & getEdge(const Edge e)
Definition
TgcHitClustering.h:36
TgcIdHelper
Definition
TgcIdHelper.h:50
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition
GeoPrimitives.h:47
Muon
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Definition
TrackSystemController.h:46
Muon::TgcHitClusteringObj::clusters3D
std::vector< TgcClusterObj3D > clusters3D
Definition
TgcHitClustering.h:69
Muon::TgcHitClusteringObj::bestEtaCluster
const HitList & bestEtaCluster() const
Definition
TgcHitClustering.cxx:12
Muon::TgcHitClusteringObj::bestPhiCluster
const HitList & bestPhiCluster() const
Definition
TgcHitClustering.cxx:15
Muon::TgcHitClusteringObj::cluster
bool cluster(const HitList &col)
Muon::TgcHitClusteringObj::clustersEta
std::vector< HitList > clustersEta
Definition
TgcHitClustering.h:67
Muon::TgcHitClusteringObj::clustersPhi
std::vector< HitList > clustersPhi
Definition
TgcHitClustering.h:68
Muon::TgcHitClusteringObj::HitList
TgcClusterObj3D::HitList HitList
Definition
TgcHitClustering.h:49
Muon::TgcHitClusteringObj::dump
void dump() const
Muon::TgcHitClusteringObj::buildClusters3D
bool buildClusters3D()
Definition
TgcHitClustering.cxx:65
Muon::TgcHitClusteringObj::TgcHitClusteringObj
TgcHitClusteringObj(const TgcIdHelper *tgcIdHelp)
Definition
TgcHitClustering.h:51
Muon::TgcHitClusteringObj::m_tgcIdHelper
const TgcIdHelper * m_tgcIdHelper
Definition
TgcHitClustering.h:66
Generated on
for ATLAS Offline Software by
1.17.0