 |
ATLAS Offline Software
|
Go to the documentation of this file.
4 #ifndef MUONSPACEPOINTFORMATION_MUONSPACEPOINTMAKERALG_H
5 #define MUONSPACEPOINTFORMATION_MUONSPACEPOINTMAKERALG_H
29 using AthReentrantAlgorithm::AthReentrantAlgorithm;
105 template <
class ContType>
116 template <
class PrdType>
118 const std::vector<const PrdType*>& phiHits)
const;
120 template <
class PrdType>
123 const std::vector<const PrdType*>& prdsToFill,
124 std::vector<SpacePoint>& outColl)
const;
154 const double firstSpPos,
165 "Key to the uncalibrated Drift circle measurements"};
168 "Key to the uncalibrated 1D rpc hits"};
171 "Key to the uncalibrated 1D tgc hits"};
174 "Key to the uncalibrated 1D Mm hits"};
186 "Maximal distance between consecutive hits in a bucket"};
189 "Maximal size of a space point bucket"};
192 "Hits that are within <spacePointOverlap> of the bucket margin. "
193 "Are copied to the next bucket"};
195 Gaudi::Property<bool>
m_doStat{
this,
"doStats",
false,
196 "If enabled the algorithm keeps track how many hits have been made" };
202 "Maximum occpancy of Rpc eta hits in a gasGap"};
204 "Maximum occpancy of Rpc phi hits in a gasGap"};
207 "Maximum occpancy of Tgc eta hits in a gasGap"};
209 "Maximum occpancy of Tgc phi hits in a gasGap"};
212 "Maximum occpancy of sTgc eta hits in a gasGap"};
214 "Maximum occpancy of sTgc phi hits in a gasGap"};
unsigned allHits() const
Helper method returning the sum of the three space point type counts.
std::unordered_map< const MuonGMR4::SpectrometerSector *, SpacePointsPerChamber > PreSortedSpacePointMap
Container abrivation of the presorted space point container per MuonChambers.
bool operator<(const FieldKey &other) const
SG::ReadHandleKey< xAOD::sTgcMeasContainer > m_stgcKey
void addToStat(const std::vector< SpacePoint > &spacePoints)
Adds the vector of space points to the overall statistics.
StatusCode initialize() override
StatusCode execute(const EventContext &ctx) const override
void distributePrimaryPoints(std::vector< SpacePoint > &&spacePoints, SpacePointBucketVec &splittedContainer) const
Distributes the vector of primary eta or eta + phi space points and fills them into the buckets.
bool splitBucket(const SpacePoint &spacePoint, const double firstSpPos, const SpacePointBucketVec &sortedPoints) const
Returns whether the space point is beyond the bucket boundary.
TechnologyIndex
enum to classify the different layers in the muon spectrometer
Gaudi::Property< double > m_maxOccStgcPhi
std::unique_ptr< SpacePointStatistics > m_statCounter ATLAS_THREAD_SAFE
const Muon::IMuonIdHelperSvc * m_idHelperSvc
std::vector< SpacePoint > etaHits
Vector of all hits that contain an eta measurement including the ones which are combined with phi mea...
SG::ReadHandleKey< xAOD::RpcMeasurementContainer > m_rpcKey
void distributePhiPoints(std::vector< SpacePoint > &&spacePoints, SpacePointBucketVec &splittedContainer) const
Distributs the vector phi space points into the buckets.
unsigned measEtaPhi
Number of space points measuring eta & phi.
Property holding a SG store/key/clid from which a ReadHandle is made.
SG::ReadHandleKey< xAOD::MMClusterContainer > m_mmKey
std::map< FieldKey, StatField > StatMap_t
void newBucket(const SpacePoint &refSp, SpacePointBucketVec &sortedPoints) const
Closes the current processed bucket and creates a new one.
An algorithm that can be simultaneously executed in multiple threads.
std::vector< SpacePointBucket > SpacePointBucketVec
Abrivation of a MuonSapcePoint bucket vector.
: Helper struct to collect the space point per muon chamber, which are later sorted into the space po...
SG::ReadHandleKey< xAOD::TgcStripContainer > m_tgcKey
SG::WriteHandleKey< SpacePointContainer > m_writeKey
Gaudi::Property< double > m_maxOccStgcEta
Helper class to keep track of how many eta+phi, eta and phi only space points are built in various de...
~SpacePointMakerAlg()=default
Helper struct to count the space-points in each detector category.
::StatusCode StatusCode
StatusCode definition for legacy code.
unsigned measEta
Number of space points measuring eta only.
Eigen::Affine3d Transform3D
std::vector< SpacePoint > phiHits
Vector of all space points that are built from single phi hits.
Gaudi::Property< double > m_maxOccTgcEta
void dumpStatisics(MsgStream &msg) const
Print the statistics table of the built space points per category into the log-file / console.
Gaudi::Property< double > m_maxOccTgcPhi
Include the GeoPrimitives which need to be put first.
void fillUncombinedSpacePoints(const ActsGeometryContext &gctx, const Amg::Transform3D §orTrans, const std::vector< const PrdType * > &prdsToFill, std::vector< SpacePoint > &outColl) const
Fills all space points that are beloni.
The muon space point is the combination of two uncalibrated measurements one of them measures the eta...
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
StIndex
enum to classify the different station layers in the muon spectrometer
Property holding a SG store/key/clid from which a WriteHandle is made.
StatusCode fillContainer(const std::unique_ptr< Muon::NSW_PadTriggerDataContainer > &out, const std::vector< std::unique_ptr< NSWL1::PadTrigger >> &triggers, const uint32_t l1id)
StatusCode loadContainerAndSort(const EventContext &ctx, const SG::ReadHandleKey< ContType > &key, PreSortedSpacePointMap &fillContainer) const
Retrieve an uncalibrated measurement container <ContType> and fill the hits into the presorted space ...
unsigned measPhi
Number of space points measuring phi only.
SG::ReadHandleKey< xAOD::MdtDriftCircleContainer > m_mdtKey
This header ties the generic definitions in this package.
Gaudi::Property< unsigned > m_capacityBucket
bool passOccupancy2D(const std::vector< const PrdType * > &etaHits, const std::vector< const PrdType * > &phiHits) const
: Check whether the occupancy cuts of hits in a gasGap are surpassed.
Gaudi::Property< double > m_maxBucketLength
Gaudi::Property< double > m_spacePointWindow
SpacePointStatistics(const Muon::IMuonIdHelperSvc *idHelperSvc)
Standard constructor.
StatusCode finalize() override
Interface for Helper service that creates muon Identifiers and can be used to print Identifiers.
Gaudi::Property< bool > m_doStat
SG::ReadHandleKey< ActsGeometryContext > m_geoCtxKey
Gaudi::Property< double > m_maxOccRpcEta
void distributePointsAndStore(SpacePointsPerChamber &&hitsPerChamber, SpacePointContainer &finalContainer) const
Distribute the premade spacepoints per chamber into their individual SpacePoint buckets.
Helper struct to define the counting categories.
Gaudi::Property< double > m_spacePointOverlap
Gaudi::Property< double > m_maxOccRpcPhi