![]() |
ATLAS Offline Software
|
#include <MuonLayerHoughTool.h>
Classes | |
| struct | CollectionsPerSector |
| class | Road |
| struct | State |
Public Types | |
| using | HashVec = std::vector<IdentifierHash> |
| using | RegionHashVec = std::vector<HashVec> |
| using | TechnologyRegionHashVec = std::vector<RegionHashVec> |
| using | DetRegIdx = MuonStationIndex::DetectorRegionIndex |
| typedef std::vector< CollectionsPerSector > | CollectionsPerSectorVec |
| using | HitVec = HoughDataPerSec::HitVec |
| using | RegionHitVec = HoughDataPerSec::RegionHitVec |
| using | PhiHitVec = HoughDataPerSec::PhiHitVec |
| using | RegionPhiHitVec = HoughDataPerSec::RegionPhiHitVec |
| using | MaximumVec = HoughDataPerSec::MaximumVec |
| using | PhiMaximumVec = HoughDataPerSec::PhiMaximumVec |
| using | MaximumAssociationMap = HoughDataPerSec::MaximumAssociationMap |
| using | RegionMaximumVec = HoughDataPerSec::RegionMaximumVec |
| using | RegionPhiMaximumVec = HoughDataPerSec::RegionPhiMaximumVec |
| using | HoughDataPerSector = HoughDataPerSec |
Public Member Functions | |
| virtual | ~MuonLayerHoughTool ()=default |
| Destructor. | |
| virtual StatusCode | initialize () override |
| virtual std::pair< std::unique_ptr< MuonPatternCombinationCollection >, std::unique_ptr< HoughDataPerSectorVec > > | find (const MdtPrepDataContainer *mdtCont, const CscPrepDataContainer *cscCols, const TgcPrepDataContainer *tgcCont, const RpcPrepDataContainer *rpcCont, const sTgcPrepDataContainer *stgcCont, const MMPrepDataContainer *mmCont, const EventContext &ctx) const override |
| virtual std::pair< std::unique_ptr< MuonPatternCombinationCollection >, std::unique_ptr< HoughDataPerSectorVec > > | find (const std::vector< const MdtPrepDataCollection * > &mdtCols, const std::vector< const CscPrepDataCollection * > &cscCols, const std::vector< const TgcPrepDataCollection * > &tgcCols, const std::vector< const RpcPrepDataCollection * > &rpcCols, const MuonSegmentCombinationCollection *, const EventContext &ctx) const override |
| find patterns for a give set of MuonPrepData collections + optionally CSC segment combinations | |
Private Types | |
| using | TgcEdge = TgcClusterObj3D::Edge |
Private Member Functions | |
| void | getSectors (const Amg::Vector3D &pos, std::vector< int > §ors) const |
| void | getSectors (const TgcClusterObj3D &tgc, std::vector< int > §ors) const |
| double | rCor (const Amg::Vector3D &pos, const Identifier &id) const |
| double | rCor (const MuonCluster &rpc) const |
| double | rCor (const MdtPrepData &mdt) const |
| double | rCor (const TgcClusterObj3D &tgc, const TgcEdge val, int sector) const |
| int | sublay (const Identifier &id, float z=0) const |
| std::pair< std::unique_ptr< MuonPatternCombinationCollection >, std::unique_ptr< HoughDataPerSectorVec > > | analyse (State &state) const |
| void | fillHitsPerSector (const EventContext &ctx, State &state, const int sector, const CollectionsPerSector &hashes, const MdtPrepDataContainer *mdtCont, const CscPrepDataContainer *cscCont, const TgcPrepDataContainer *tgcCont, const RpcPrepDataContainer *rpcCont, const sTgcPrepDataContainer *stgcCont, const MMPrepDataContainer *mmCont) const |
| void | fill (const EventContext &ctx, std::set< Identifier > &truthHits, const MdtPrepDataCollection &mdts, HitVec &hits) const |
| void | fill (const EventContext &ctx, std::set< Identifier > &truthHits, std::vector< std::unique_ptr< TgcHitClusteringObj > > &tgcClusteringObjs, const TgcPrepDataCollection &tgcs, HitVec &hits, PhiHitVec &phiHits, int sector) const |
| void | fill (const EventContext &ctx, std::set< Identifier > &truthHits, const RpcPrepDataCollection &rpcs, HitVec &hits, PhiHitVec &phiHits) const |
| void | fill (const EventContext &ctx, std::set< Identifier > &truthHits, const MMPrepDataCollection &mdts, HitVec &hits) const |
| void | fill (const EventContext &ctx, std::set< Identifier > &truthHits, const sTgcPrepDataCollection &stgcs, HitVec &hits, PhiHitVec &phiHits, int sector) const |
| void | fill (const EventContext &ctx, std::set< Identifier > &truthHits, const CscPrepDataCollection &cscs, HitVec &hits, PhiHitVec &phiHits) const |
| bool | findMaxima (MaximumVec &seedMaxima, MuonHough::MuonLayerHough &hough, HitVec &hits, MaximumVec &maxima) const |
| bool | findMaxima (MuonHough::MuonPhiLayerHough &hough, PhiHitVec &hits, PhiMaximumVec &maxima, int sector) const |
| void | associateMaximaToPhiMaxima (MuonStationIndex::DetectorRegionIndex region, HoughDataPerSector &houghData, std::map< MuonHough::MuonPhiLayerHough::Maximum *, MaximumVec > &phiEtaAssociations, std::vector< MaximumVec > &unassEtaMaxima) const |
| void | associateMaximaInNeighbouringSectors (HoughDataPerSector &houghData, std::vector< HoughDataPerSector > &houghDataPerSectorVec) const |
| void | extendSeed (MuonHough::MuonDetectorHough &detectorHoughTransforms, Road &road, HoughDataPerSector §orData) const |
| void | associatePhiMaxima (Road &road, PhiMaximumVec &phiMaxima) const |
| double | combinedPeakheight (double ph, double ph1, double ph2, double phn, double rot, int layer, int) const |
| void | createPatternCombinations (std::vector< MaximumVec > &maxima, MuonPatternCombinationCollection &patternCombis) const |
| void | createPatternCombinations (std::map< MuonHough::MuonPhiLayerHough::Maximum *, MaximumVec > &phiEtaAssociations, MuonPatternCombinationCollection &patternCombis) const |
| void | insertHash (const IdentifierHash &hash, const Identifier &id) const |
| void | insertHash (int sector, const IdentifierHash &hash, const Identifier &id) const |
| void | matchTruth (std::set< Identifier > &truthHits, const PRD_MultiTruthCollection &truthCol, const Identifier &id, MuonHough::HitDebugInfo &debug) const |
| void | initializeSectorMapping (const EventContext &ctx) const |
| void | printTruthSummary (std::set< Identifier > &truth, std::set< Identifier > &found) const |
| void | buildRoads (MaximumVec &seedMaxima, MuonHough::MuonDetectorHough &detectorHoughTransforms, std::unique_ptr< HoughDataPerSectorVec > &houghDataPerSectorVec, std::vector< Road > &roads) const |
| void | mergePhiMaxima (Road &road) const |
Private Attributes | |
| Gaudi::Property< bool > | m_useSeeds {this, "UseSeeds", true} |
| SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > | m_muonManagerKey {this, "MuonManagerKey", "MuonDetectorManager", "MuonManager ReadKey for IOV Range intersection"} |
| ServiceHandle< IMuonIdHelperSvc > | m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"} |
| PublicToolHandle< MuonEDMPrinterTool > | m_printer {this, "printerTool", "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"} |
| std::vector< MuonHough::MuonLayerHoughSelector > | m_selectors |
| std::vector< MuonHough::MuonLayerHoughSelector > | m_selectorsLoose |
| SG::ReadHandleKeyArray< PRD_MultiTruthCollection > | m_truthNames {this, "TruthNames", {}} |
| Gaudi::Property< bool > | m_useRpcTimeVeto {this, "RpcTimeVeto", false} |
| Gaudi::Property< bool > | m_requireTriggerConfirmationNSW {this, "TriggerConfirmationNSW", false} |
| Gaudi::Property< bool > | m_onlyUseCurrentBunch {this, "OnlyUseCurrentBunch", false} |
| Gaudi::Property< bool > | m_debugHough {this, "DebugHough", false} |
| Gaudi::Property< bool > | m_doParabolicExtrapolation |
| Gaudi::Property< float > | m_extrapolationDistance {this, "ExtrapolationDistance", 1500.} |
| Gaudi::Property< bool > | m_addSectors {this, "AddSectors", false} |
| unsigned int | m_ntechnologies {UINT_MAX} |
| std::map< unsigned int, unsigned int > | m_techToTruthNameIdx {} |
| MuonSectorMapping | m_sectorMapping |
| std::mutex m_mutex | ATLAS_THREAD_SAFE |
| CollectionsPerSectorVec m_collectionsPerSector | ATLAS_THREAD_SAFE |
| bool m_sectorSetup | ATLAS_THREAD_SAFE {false} |
Definition at line 46 of file MuonLayerHoughTool.h.
| typedef std::vector<CollectionsPerSector> Muon::MuonLayerHoughTool::CollectionsPerSectorVec |
Definition at line 57 of file MuonLayerHoughTool.h.
Definition at line 51 of file MuonLayerHoughTool.h.
| using Muon::MuonLayerHoughTool::HashVec = std::vector<IdentifierHash> |
Definition at line 48 of file MuonLayerHoughTool.h.
Definition at line 59 of file MuonLayerHoughTool.h.
Definition at line 68 of file MuonLayerHoughTool.h.
Definition at line 65 of file MuonLayerHoughTool.h.
Definition at line 63 of file MuonLayerHoughTool.h.
Definition at line 61 of file MuonLayerHoughTool.h.
Definition at line 64 of file MuonLayerHoughTool.h.
| using Muon::MuonLayerHoughTool::RegionHashVec = std::vector<HashVec> |
Definition at line 49 of file MuonLayerHoughTool.h.
Definition at line 60 of file MuonLayerHoughTool.h.
Definition at line 66 of file MuonLayerHoughTool.h.
Definition at line 62 of file MuonLayerHoughTool.h.
Definition at line 67 of file MuonLayerHoughTool.h.
| using Muon::MuonLayerHoughTool::TechnologyRegionHashVec = std::vector<RegionHashVec> |
Definition at line 50 of file MuonLayerHoughTool.h.
|
private |
Definition at line 111 of file MuonLayerHoughTool.h.
|
virtualdefault |
Destructor.
|
private |
Definition at line 170 of file MuonLayerHoughTool.cxx.
|
private |
Definition at line 780 of file MuonLayerHoughTool.cxx.
|
private |
Definition at line 855 of file MuonLayerHoughTool.cxx.
|
private |
Definition at line 652 of file MuonLayerHoughTool.cxx.
|
private |
In the NSW setup it can happen that the hits in the collection are only made up of TGCHits which are clustered beforehand and hence have no associated prd. In order to prevent later a crash in bool isNSW = ... let's first find a hit with associated PRD
Definition at line 300 of file MuonLayerHoughTool.cxx.
|
inlineprivate |
Definition at line 294 of file MuonLayerHoughTool.h.
|
private |
Definition at line 1108 of file MuonLayerHoughTool.cxx.
|
private |
|
private |
Definition at line 500 of file MuonLayerHoughTool.cxx.
|
private |
CSCs were not part of the pattern finding yet..
Definition at line 1521 of file MuonLayerHoughTool.cxx.
|
private |
Definition at line 1481 of file MuonLayerHoughTool.cxx.
|
private |
Definition at line 1619 of file MuonLayerHoughTool.cxx.
|
private |
Definition at line 1569 of file MuonLayerHoughTool.cxx.
|
private |
Pad channels – We should think about enums!
Definition at line 1664 of file MuonLayerHoughTool.cxx.
|
private |
Definition at line 1771 of file MuonLayerHoughTool.cxx.
|
private |
Definition at line 1421 of file MuonLayerHoughTool.cxx.
|
overridevirtual |
Definition at line 147 of file MuonLayerHoughTool.cxx.
|
overridevirtual |
find patterns for a give set of MuonPrepData collections + optionally CSC segment combinations
Definition at line 68 of file MuonLayerHoughTool.cxx.
|
private |
Definition at line 1277 of file MuonLayerHoughTool.cxx.
|
private |
Definition at line 1351 of file MuonLayerHoughTool.cxx.
|
inlineprivate |
Definition at line 228 of file MuonLayerHoughTool.h.
|
inlineprivate |
Definition at line 224 of file MuonLayerHoughTool.h.
|
overridevirtual |
Definition at line 23 of file MuonLayerHoughTool.cxx.
|
private |
Definition at line 1868 of file MuonLayerHoughTool.cxx.
|
private |
Definition at line 1857 of file MuonLayerHoughTool.cxx.
|
private |
Definition at line 1861 of file MuonLayerHoughTool.cxx.
|
private |
Definition at line 1462 of file MuonLayerHoughTool.cxx.
|
private |
Definition at line 416 of file MuonLayerHoughTool.cxx.
|
private |
Definition at line 1994 of file MuonLayerHoughTool.cxx.
|
inlineprivate |
Definition at line 232 of file MuonLayerHoughTool.h.
|
inlineprivate |
Definition at line 238 of file MuonLayerHoughTool.h.
|
inlineprivate |
Definition at line 236 of file MuonLayerHoughTool.h.
|
inlineprivate |
Definition at line 240 of file MuonLayerHoughTool.h.
|
inlineprivate |
Definition at line 245 of file MuonLayerHoughTool.h.
|
mutableprivate |
Definition at line 213 of file MuonLayerHoughTool.h.
|
mutableprivate |
Definition at line 214 of file MuonLayerHoughTool.h.
|
mutableprivate |
Definition at line 215 of file MuonLayerHoughTool.h.
|
private |
Definition at line 207 of file MuonLayerHoughTool.h.
|
private |
Definition at line 203 of file MuonLayerHoughTool.h.
|
private |
Definition at line 204 of file MuonLayerHoughTool.h.
|
private |
Definition at line 206 of file MuonLayerHoughTool.h.
|
private |
Definition at line 192 of file MuonLayerHoughTool.h.
|
private |
Definition at line 189 of file MuonLayerHoughTool.h.
|
private |
Definition at line 208 of file MuonLayerHoughTool.h.
|
private |
Definition at line 202 of file MuonLayerHoughTool.h.
|
private |
Definition at line 193 of file MuonLayerHoughTool.h.
|
private |
Definition at line 201 of file MuonLayerHoughTool.h.
|
private |
Definition at line 211 of file MuonLayerHoughTool.h.
|
private |
Definition at line 195 of file MuonLayerHoughTool.h.
|
private |
Definition at line 196 of file MuonLayerHoughTool.h.
|
private |
Definition at line 209 of file MuonLayerHoughTool.h.
|
private |
Definition at line 198 of file MuonLayerHoughTool.h.
|
private |
Definition at line 200 of file MuonLayerHoughTool.h.
|
private |
Definition at line 187 of file MuonLayerHoughTool.h.