ATLAS Offline Software
Loading...
Searching...
No Matches
SpacePointTesterModule.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef PRDTESTERR4_MUONSPACEPOINTTESTMODULE_H
6#define PRDTESTERR4_MUONSPACEPOINTTESTMODULE_H
8
11namespace MuonValR4{
13 public:
15 const std::string& inContainer,
16 MSG::Level msgLvl = MSG::Level::INFO,
17 const std::string& collName="");
18
19 bool declare_keys() override final;
20
21 bool fill(const EventContext& ctx) override final;
22
23
24 unsigned int push_back(const MuonR4::SpacePointBucket& bucket);
25 unsigned int push_back(const MuonR4::SpacePoint& spacePoint);
26
27
28 private:
29 std::string m_collName{};
40
41
43 ThreeVectorBranch m_spPos{parent(), m_collName+"spacePoint_Position"};
45 VectorBranch<float>& m_driftR{parent().newVector<float>(m_collName+"_spacePointDriftR")};
47 VectorBranch<float>& m_covX{parent().newVector<float>(m_collName+"_spacePointCovX")};
48 VectorBranch<float>& m_covY{parent().newVector<float>(m_collName+"_spacePointCovY")};
49 VectorBranch<float>& m_covT{parent().newVector<float>(m_collName+"_spacePointCovT")};
51 VectorBranch<bool>& m_measEta{parent().newVector<bool>(m_collName+"_spacePointMeasEta")};
52 VectorBranch<bool>& m_measPhi{parent().newVector<bool>(m_collName+"_spacePointMeasPhi")};
54 VectorBranch<unsigned int>& m_nEtaInstances{parent().newVector<unsigned int>(m_collName+"_spacePointNumEtaInUse")};
55 VectorBranch<unsigned int>& m_nPhiInstances{parent().newVector<unsigned int>(m_collName+"_spacePointNumPhiInUse")};
56
57
61 VectorBranch<unsigned char>& m_techIdx{parent().newVector<unsigned char>(m_collName+"_spacePointTechnology")};
63 VectorBranch<unsigned char>& m_layer{parent().newVector<unsigned char>(m_collName+"_spacePointLayer")};
65 VectorBranch<uint16_t>& m_channel{parent().newVector<uint16_t>(m_collName+"_spacePoint1stChannel")};
67 VectorBranch<int16_t>& m_phiChannel{parent().newVector<int16_t>(m_collName+"_spacePoint2ndChannel")};
68
70 std::unordered_map<const MuonR4::SpacePoint*, unsigned int> m_spacePointIdx{};
72 std::unordered_map<const MuonR4::SpacePointBucket*, unsigned int> m_bucketIdx{};
74 bool m_applyFilter{false};
76 bool m_internalFill{false};
77 };
78}
79#endif
bool msgLvl(const MSG::Level lvl) const
Test the output level.
: The muon space point bucket represents a collection of points that will bre processed together in t...
The muon space point is the combination of two uncalibrated measurements one of them measures the eta...
VectorBranch< float > & m_driftR
Space point drift radius.
VectorBranch< uint16_t > & m_bucketNumber
Space point bucket information.
VectorBranch< unsigned int > & m_nEtaInstances
How many other spacepoints were built with the same eta /phi prd.
ThreeVectorBranch m_spPos
Space point position.
VectorBranch< bool > & m_measEta
Does the space point measure phi or eta.
bool m_applyFilter
: Flag whether the module is operated in filter mode
MuonIdentifierBranch m_spacePointId
Station Identifier.
VectorBranch< unsigned int > & m_nPhiInstances
SG::ReadHandleKey< MuonR4::SpacePointContainer > m_key
bool fill(const EventContext &ctx) override final
The fill method checks if enough information is provided such that the branch is cleared from the inf...
VectorBranch< float > & m_covX
Covariance of the space point.
VectorBranch< uint16_t > & m_channel
Measurement channel.
VectorBranch< unsigned char > & m_layer
Measurement layer.
unsigned int push_back(const MuonR4::SpacePointBucket &bucket)
std::unordered_map< const MuonR4::SpacePoint *, unsigned int > m_spacePointIdx
: Keep track when a spacepoint is filled into the tree
VectorBranch< unsigned char > & m_techIdx
Technology index of the space point.
VectorBranch< float > & m_bucketMin
Range of the space point bucket.
VectorBranch< int16_t > & m_phiChannel
Channel of the secondary measurment.
SpacePointTesterModule(MuonTesterTree &tree, const std::string &inContainer, MSG::Level msgLvl=MSG::Level::INFO, const std::string &collName="")
MuonIdentifierBranch m_bucketId
stationIndex / stationEta / stationPhi of the bucket chamber
MatrixBranch< uint16_t > & m_bucketPoints
associated space points
bool m_internalFill
: Flag toggling whether the module is in internal filling mode
std::unordered_map< const MuonR4::SpacePointBucket *, unsigned int > m_bucketIdx
: Keep tarck when a space point bucket is filled into the tree
TesterModuleBase(MuonTesterTree &tree, const std::string &grp_name, MSG::Level msglvl=MSG::Level::INFO)
Class to dump the basic properties of an Identifier into an n-tuple StationName -> BIS,...
MuonTesterTree & parent()
Returns the reference to the MuonTesterTree parent.
TTree * tree() override final
Returns the underlying TTree object.
MatrixBranch< T > & newMatrix(const std::string &name)
VectorBranch< T > & newVector(const std::string &name)
Creates new branches and returns their reference.
Property holding a SG store/key/clid from which a ReadHandle is made.
Lightweight algorithm to read xAOD MDT sim hits and (fast-digitised) drift circles from SG and fill a...