ATLAS Offline Software
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>
13 
14 #include "Identifier/Identifier.h"
16 
17 namespace Muon {
18 
20  public:
21 
22  using HitList = std::vector< const TgcPrepData* >;
23 
24  TgcClusterObj3D( const HitList& etaC, const HitList& phiC ) :
25  etaCluster(etaC), phiCluster(phiC) {}
28 
30  enum class Edge : uint8_t{
31  LowEtaLowPhi = 0,
35  };
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 
48 
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
Muon::TgcHitClusteringObj::cluster
bool cluster(const HitList &col)
Muon::TgcClusterObj3D::TgcClusterObj3D
TgcClusterObj3D(const HitList &etaC, const HitList &phiC)
Definition: TgcHitClustering.h:24
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:575
TgcIdHelper
Definition: TgcIdHelper.h:50
Muon::TgcClusterObj3D::HitList
std::vector< const TgcPrepData * > HitList
Definition: TgcHitClustering.h:22
Muon::TgcHitClusteringObj::TgcHitClusteringObj
TgcHitClusteringObj(const TgcIdHelper *tgcIdHelp)
Definition: TgcHitClustering.h:51
MuonPrepDataContainer.h
Muon
This class provides conversion from CSC RDO data to CSC Digits.
Definition: TrackSystemController.h:49
TgcPrepData.h
Muon::TgcClusterObj3D::m_edgePoints
std::array< Amg::Vector3D, 4 > m_edgePoints
Definition: TgcHitClustering.h:44
Muon::TgcHitClusteringObj::buildClusters3D
bool buildClusters3D()
Definition: TgcHitClustering.cxx:65
Muon::TgcHitClusteringObj::HitList
TgcClusterObj3D::HitList HitList
Definition: TgcHitClustering.h:49
Muon::TgcHitClusteringObj::clustersEta
std::vector< HitList > clustersEta
Definition: TgcHitClustering.h:67
Muon::TgcClusterObj3D::Edge::HighEtaHighPhi
@ HighEtaHighPhi
Muon::TgcClusterObj3D::Edge::HighEtaLowPhi
@ HighEtaLowPhi
Muon::TgcClusterObj3D::getEdge
const Amg::Vector3D & getEdge(const Edge e) const
Definition: TgcHitClustering.h:39
GeoPrimitives.h
Muon::TgcClusterObj3D::Edge::LowEtaLowPhi
@ LowEtaLowPhi
Muon::TgcHitClusteringObj::bestEtaCluster
const HitList & bestEtaCluster() const
Definition: TgcHitClustering.cxx:12
Muon::TgcClusterObj3D::Edge
Edge
Representation of the four edge points.
Definition: TgcHitClustering.h:30
Muon::TgcClusterObj3D::phiCluster
HitList phiCluster
Definition: TgcHitClustering.h:27
Muon::TgcHitClusteringObj::m_tgcIdHelper
const TgcIdHelper * m_tgcIdHelper
Definition: TgcHitClustering.h:66
Muon::TgcClusterObj3D::Edge::LowEtaHighPhi
@ LowEtaHighPhi
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Muon::TgcClusterObj3D::getEdge
Amg::Vector3D & getEdge(const Edge e)
Definition: TgcHitClustering.h:36
Muon::TgcClusterObj3D
Definition: TgcHitClustering.h:19
query_example.col
col
Definition: query_example.py:7
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
Muon::TgcHitClusteringObj
Definition: TgcHitClustering.h:47
Muon::TgcHitClusteringObj::dump
void dump() const
TgcReadoutElement.h
TgcIdHelper.h
Muon::TgcHitClusteringObj::bestPhiCluster
const HitList & bestPhiCluster() const
Definition: TgcHitClustering.cxx:15
Muon::TgcHitClusteringObj::clusters3D
std::vector< TgcClusterObj3D > clusters3D
Definition: TgcHitClustering.h:69
Muon::TgcHitClusteringObj::clustersPhi
std::vector< HitList > clustersPhi
Definition: TgcHitClustering.h:68
Muon::TgcClusterObj3D::etaCluster
HitList etaCluster
Definition: TgcHitClustering.h:26
generate::Zero
void Zero(TH1D *hin)
Definition: generate.cxx:32