|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef MUONHOUGHPATTERNTOOLS_MUONLAYERHOUGHTOOL_H
6 #define MUONHOUGHPATTERNTOOLS_MUONLAYERHOUGHTOOL_H
12 #include "GaudiKernel/ServiceHandle.h"
13 #include "GaudiKernel/ToolHandle.h"
49 typedef std::vector<IdentifierHash>
HashVec;
75 Road(std::shared_ptr<MuonHough::MuonLayerHough::Maximum> seed_) :
seed(seed_) {
add(seed_); }
79 std::shared_ptr<MuonHough::MuonLayerHough::Maximum>
seed{
nullptr};
80 void add(std::shared_ptr<MuonHough::MuonLayerHough::Maximum>
max) {
84 void add(std::shared_ptr<MuonHough::MuonPhiLayerHough::Maximum>
max) {
phiMaxima.emplace_back(
max); }
87 std::set<std::shared_ptr<MuonHough::MuonLayerHough::Maximum>>
maximumSet;
100 virtual std::pair<std::unique_ptr<MuonPatternCombinationCollection>, std::unique_ptr<HoughDataPerSectorVec>>
find(
103 const EventContext& ctx)
const override;
106 virtual std::pair<std::unique_ptr<MuonPatternCombinationCollection>, std::unique_ptr<HoughDataPerSectorVec>>
find(
107 const std::vector<const MdtPrepDataCollection*>& mdtCols,
const std::vector<const CscPrepDataCollection*>& cscCols,
108 const std::vector<const TgcPrepDataCollection*>& tgcCols,
const std::vector<const RpcPrepDataCollection*>& rpcCols,
133 std::pair<std::unique_ptr<MuonPatternCombinationCollection>, std::unique_ptr<HoughDataPerSectorVec>>
analyse(
State& state)
const;
141 void fill(
const EventContext& ctx, std::set<Identifier>& truthHits,
159 std::map<MuonHough::MuonPhiLayerHough::Maximum*, MaximumVec>& phiEtaAssociations,
160 std::vector<MaximumVec>& unassEtaMaxima)
const;
163 std::vector<HoughDataPerSector>& houghDataPerSectorVec)
const;
185 std::unique_ptr<HoughDataPerSectorVec>& houghDataPerSectorVec,
186 std::vector<Road>& roads)
const;
195 PublicToolHandle<MuonEDMPrinterTool>
m_printer{
this,
"printerTool",
"Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"};
222 return s2->maxEtaHits() < s1->maxEtaHits();
251 if (
m_idHelperSvc->mdtIdHelper().multilayer(
id) == 2) sublayer += 4;
254 if (
m_idHelperSvc->mmIdHelper().multilayer(
id) == 2) sublayer += 4;
258 if (
m_idHelperSvc->stgcIdHelper().multilayer(
id) == 2) sublayer += 4;
262 if (
m_idHelperSvc->rpcIdHelper().doubletR(
id) == 2) sublayer += 2;
297 if (
layer == 0 && ph < 3.)
return ph;
298 if (
layer == 1 && ph < 4.)
return ph;
299 if (
layer == 2 && ph < 3.)
return ph;
301 if (phn > 7) ph += phn;
304 if (ph1 > 6.9) ph += 2;
305 if (ph1 > 8.9) ph += 2;
306 if (ph2 > 5.9) ph += 2;
307 if (ph2 > 7.9) ph += 2;
310 if (ph1 > 6.9) ph += 2;
311 if (ph2 > 5.9) ph += 2;
312 if (ph2 > 7.9) ph += 2;
313 if (ph2 > 11.9) ph += 2;
316 if (ph1 > 6.9) ph += 2;
317 if (ph2 > 6.9) ph += 2;
318 if (ph2 > 8.9) ph += 2;
Template for Muon PRD containers (which are basically collections of MuonPrepDataCollections).
double transformRToSector(double r, double phi, int sector, bool toSector=true) const
expresses a radial position from and to the sector coordinate frame, the phi position should always b...
void getSectors(double phi, std::vector< int > §ors) const
returns the main sector plus neighboring if the phi position is in an overlap region
A PRD is mapped onto all contributing particles.
std::vector< HitVec > RegionHitVec
struct containing additional debug information on the hits that is not needed for the actual alg but ...
bool operator()(const MuonLayerHoughTool::HoughDataPerSector *s1, const MuonLayerHoughTool::HoughDataPerSector *s2) const
This class provides conversion from CSC RDO data to CSC Digits.
PhiIndex
enum to classify the different phi layers in the muon spectrometer
MuonHough::PhiHitVec PhiHitVec
Edge
Representation of the four edge points.
::StatusCode StatusCode
StatusCode definition for legacy code.
std::vector< PhiHitVec > RegionPhiHitVec
std::vector< std::shared_ptr< MuonHough::MuonPhiLayerHough::Maximum > > PhiMaximumVec
std::vector< MaximumVec > RegionMaximumVec
Template to hold collections of MuonPrepRawData objects.
std::vector< PhiMaximumVec > RegionPhiMaximumVec
DetectorRegionIndex
enum to classify the different layers in the muon spectrometer
Ensure that the ATLAS eigen extensions are properly loaded.
std::map< MuonHough::MuonLayerHough::Maximum *, MaximumVec > MaximumAssociationMap
class managing all Hough transforms in the detector
Class to represent measurements from the Monitored Drift Tubes.
Eigen::Matrix< double, 3, 1 > Vector3D
Amg::Vector3D & getEdge(const Edge e)
unsigned int phiIndex(float phi, float binsize)
calculate phi index for a given phi
StIndex
enum to classify the different station layers in the muon spectrometer
Class representing clusters in the muon system.
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
std::vector< std::shared_ptr< MuonHough::MuonLayerHough::Maximum > > MaximumVec