|
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"
40 class MuonDetectorManager;
50 typedef std::vector<IdentifierHash>
HashVec;
76 Road(std::shared_ptr<MuonHough::MuonLayerHough::Maximum> seed_) :
seed(seed_) {
add(seed_); }
80 std::shared_ptr<MuonHough::MuonLayerHough::Maximum>
seed{
nullptr};
81 void add(std::shared_ptr<MuonHough::MuonLayerHough::Maximum>
max) {
85 void add(std::shared_ptr<MuonHough::MuonPhiLayerHough::Maximum>
max) {
phiMaxima.emplace_back(
max); }
88 std::set<std::shared_ptr<MuonHough::MuonLayerHough::Maximum>>
maximumSet;
101 virtual std::pair<std::unique_ptr<MuonPatternCombinationCollection>, std::unique_ptr<HoughDataPerSectorVec>>
find(
104 const EventContext& ctx)
const override;
107 virtual std::pair<std::unique_ptr<MuonPatternCombinationCollection>, std::unique_ptr<HoughDataPerSectorVec>>
find(
108 const std::vector<const MdtPrepDataCollection*>& mdtCols,
const std::vector<const CscPrepDataCollection*>& cscCols,
109 const std::vector<const TgcPrepDataCollection*>& tgcCols,
const std::vector<const RpcPrepDataCollection*>& rpcCols,
134 std::pair<std::unique_ptr<MuonPatternCombinationCollection>, std::unique_ptr<HoughDataPerSectorVec>>
analyse(
State& state)
const;
142 void fill(
const EventContext& ctx, std::set<Identifier>& truthHits,
160 std::map<MuonHough::MuonPhiLayerHough::Maximum*, MaximumVec>& phiEtaAssociations,
161 std::vector<MaximumVec>& unassEtaMaxima)
const;
164 std::vector<HoughDataPerSector>& houghDataPerSectorVec)
const;
185 std::unique_ptr<HoughDataPerSectorVec>& houghDataPerSectorVec,
186 std::vector<Road>& roads)
const;
192 PublicToolHandle<MuonEDMPrinterTool>
m_printer{
this,
"printerTool",
"Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"};
216 return s2->maxEtaHits() < s1->maxEtaHits();
245 if (
m_idHelperSvc->mdtIdHelper().multilayer(
id) == 2) sublayer += 4;
248 if (
m_idHelperSvc->mmIdHelper().multilayer(
id) == 2) sublayer += 4;
252 if (
m_idHelperSvc->stgcIdHelper().multilayer(
id) == 2) sublayer += 4;
256 if (
m_idHelperSvc->rpcIdHelper().doubletR(
id) == 2) sublayer += 2;
291 if (
layer == 0 && ph < 3.)
return ph;
292 if (
layer == 1 && ph < 4.)
return ph;
293 if (
layer == 2 && ph < 3.)
return ph;
295 if (phn > 7) ph += phn;
298 if (ph1 > 6.9) ph += 2;
299 if (ph1 > 8.9) ph += 2;
300 if (ph2 > 5.9) ph += 2;
301 if (ph2 > 7.9) ph += 2;
304 if (ph1 > 6.9) ph += 2;
305 if (ph2 > 5.9) ph += 2;
306 if (ph2 > 7.9) ph += 2;
307 if (ph2 > 11.9) ph += 2;
310 if (ph1 > 6.9) ph += 2;
311 if (ph2 > 6.9) ph += 2;
312 if (ph2 > 8.9) ph += 2;
Template for Muon PRD containers (which are basically collections of MuonPrepDataCollections).
Ensure that the Athena extensions are properly loaded.
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
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
StIndex
enum to classify the different station layers in the muon spectrometer
Class representing clusters in the muon system.
std::vector< std::shared_ptr< MuonHough::MuonLayerHough::Maximum > > MaximumVec