 |
ATLAS Offline Software
|
Go to the documentation of this file.
4 #ifndef MUONSPACEPOINTFORMATION_MUONSPACEPOINTMAKERALG_H
5 #define MUONSPACEPOINTFORMATION_MUONSPACEPOINTMAKERALG_H
29 using AthReentrantAlgorithm::AthReentrantAlgorithm;
43 const MeasType* meas)
const;
81 const MeasType* primaryMeas,
90 const MeasType* primaryMeas,
91 const MeasType* secondaryMeas,
109 void addToStat(
const std::vector<SpacePoint>&
spacePoints);
112 void dumpStatisics(MsgStream&
msg)
const;
119 unsigned int measEtaPhi{0};
121 unsigned int measEta{0};
123 unsigned int measPhi{0};
165 template <
class ContType>
202 const double firstSpPos,
217 template <
class PrdType>
219 const std::vector<const PrdType*>& phiHits)
const;
222 "Key to the uncalibrated Drift circle measurements"};
225 "Key to the uncalibrated 1D rpc hits"};
228 "Key to the uncalibrated 1D tgc hits"};
231 "Key to the uncalibrated 1D Mm hits"};
243 "Maximal distance between consecutive hits in a bucket"};
246 "Maximal size of a space point bucket"};
249 "Hits that are within <spacePointOverlap> of the bucket margin. "
250 "Are copied to the next bucket"};
252 Gaudi::Property<bool>
m_doStat{
this,
"doStats",
false,
253 "If enabled the algorithm keeps track how many hits have been made" };
259 "Maximum occpancy of Rpc eta hits in a gasGap"};
261 "Maximum occpancy of Rpc phi hits in a gasGap"};
264 "Maximum occpancy of Tgc eta hits in a gasGap"};
266 "Maximum occpancy of Tgc phi hits in a gasGap"};
269 "Maximum occpancy of sTgc eta hits in a gasGap"};
271 "Maximum occpancy of sTgc phi hits in a gasGap"};
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
const Amg::Vector3D const Amg::Vector3D &nor const
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
UncalibratedMeasurement_v1 UncalibratedMeasurement
Define the version of the uncalibrated measurement class.
AmgSymMatrix(2) computeCov(const MeasType *primaryMeas
Helper function to calculate the covariance for spacepoints having only one measurement.
Gaudi::Property< double > m_maxOccStgcPhi
std::unique_ptr< SpacePointStatistics > m_statCounter ATLAS_THREAD_SAFE
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
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
unsigned int allHits() const
Helper method returning the sum of the three space point type counts.
void distributePhiPoints(std::vector< SpacePoint > &&spacePoints, SpacePointBucketVec &splittedContainer) const
Distributs the vector phi space points into the buckets.
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.
Eigen::Affine3d Transform3D
std::vector< SpacePoint > phiHits
Vector of all space points that are built from single phi hits.
Gaudi::Property< double > m_maxOccTgcEta
Amg::Vector3D positionInChamber(const MeasType *meas, const Amg::Transform3D &toChamberTrans) const
Returns the position of the uncalibrated muon measurement in the sector frame.
Gaudi::Property< double > m_maxOccTgcPhi
Include the GeoPrimitives which need to be put first.
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)
Definition of ATLAS Math & Geometry primitives (Amg)
Amg::Vector3D channelDirInChamber(const MeasType *meas, const Amg::Transform3D &toChamberTrans) const
Returns the direction of the measurement channel in the sector frame.
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 ...
Amg::Vector3D channelNormalInChamber(const MeasType *meas, const Amg::Transform3D &toChamberTrans) const
Returns the direction, in the sector frame, of the precision axis of the measurement,...
Eigen::Matrix< double, 3, 1 > Vector3D
SG::ReadHandleKey< xAOD::MdtDriftCircleContainer > m_mdtKey
This header ties the generic definitions in this package.
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
const Amg::Vector3D & dir
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 fillSpacePoint(std::vector< SpacePoint > &pointColl, const MeasType *primaryMeas, const MeasType *secondaryMeas, const Amg::Transform3D &toChamberTrans_eta, const Amg::Transform3D &toChamberTrans_phi) const
Helper function that creates the spacepoint and populates it, when having two measurement.
Gaudi::Property< unsigned int > m_capacityBucket
void distributePointsAndStore(SpacePointsPerChamber &&hitsPerChamber, SpacePointContainer &finalContainer) const
Distribute the premade spacepoints per chamber into their individual SpacePoint buckets.
Amg::Transform3D toChamberTransform(const ActsGeometryContext &gctx, const Amg::Transform3D §orTrans, const MeasType *meas) const
Returns the transform from the attached Muon chamber frame to the sector frame.
Helper struct to define the counting categories.
Gaudi::Property< double > m_spacePointOverlap
Gaudi::Property< double > m_maxOccRpcPhi