ATLAS Offline Software
Loading...
Searching...
No Matches
MdtTwinDriftCircleVariables.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_MDTTWINDRITFCIRCLEVARIABLES_H
6#define PRDTESTERR4_MDTTWINDRITFCIRCLEVARIABLES_H
10
11#include <unordered_map>
12#include <unordered_set>
16namespace MuonValR4{
17
19 public:
21 const std::string& inContainer,
22 MSG::Level msgLvl = MSG::Level::INFO,
23 const std::string& collName="MdtTwinPrd");
24
25 bool declare_keys() override final;
26
27
28 bool fill(const EventContext& ctx) override final;
29
34 unsigned int push_back(const xAOD::MdtTwinDriftCircle& dc);
39 void dumpAllHitsInChamber(const Identifier& chamberId);
43 void enableSeededDump();
44 private:
45 void dump(const ActsTrk::GeometryContext& gctx,
46 const xAOD::MdtTwinDriftCircle& dc);
47
49
50 std::string m_collName{};
75
77 std::unordered_set<Identifier> m_filteredChamb{};
79 std::unordered_map<Identifier, unsigned int> m_idOutIdxMap{};
81 std::vector<const xAOD::MdtTwinDriftCircle*> m_dumpedPRDS{};
83 bool m_applyFilter{false};
84 };
85}
86#endif
bool msgLvl(const MSG::Level lvl) const
Test the output level.
VectorBranch< uint16_t > & m_twinTube
Tube number of the twin.
void enableSeededDump()
Activates the seeded dump of the branch.
VectorBranch< float > & m_twinLocZ
Local z coordinate along the drift tube.
VectorBranch< uint8_t > & m_twinLayer
Tube layer of the twin.
ThreeVectorBranch m_globPos
Position of the Mdt drift circle in the global frame.
SG::ReadHandleKey< xAOD::MdtTwinDriftCircleContainer > m_key
std::unordered_map< Identifier, unsigned int > m_idOutIdxMap
Map of Identifiers to the position index inside the vector.
VectorBranch< float > & m_driftRadiusUncert
Uncertainty on the drift radius measurement.
VectorBranch< uint16_t > & m_twinAdcCounts
Adc counts of the twin measurement.
VectorBranch< uint16_t > & m_adcCounts
Adc counts of the measurement.
std::vector< const xAOD::MdtTwinDriftCircle * > m_dumpedPRDS
Vector of PRDs parsed via the external mechanism. These measurements are parsed first.
VectorBranch< uint16_t > & m_twinTdcCounts
Tdc counts of the twin measurement.
VectorBranch< uint16_t > & m_tdcCounts
tdc counts of the measurement
void dumpAllHitsInChamber(const Identifier &chamberId)
All hits from this particular chamber identifier are dumped to the output including the ones from the...
bool m_applyFilter
Apply a filter to dump the prds.
MdtTwinDriftCircleVariables(MuonTesterTree &tree, const std::string &inContainer, MSG::Level msgLvl=MSG::Level::INFO, const std::string &collName="MdtTwinPrd")
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...
MdtIdentifierBranch m_id
Identifier of the Mdt.
unsigned int push_back(const xAOD::MdtTwinDriftCircle &dc)
Push back the drift circle measurement to the output.
VectorBranch< float > & m_driftRadius
Dirft radius of the associated drit circle.
VectorBranch< float > & m_twinUncertLocZ
Uncertainty on the local z measurement along the wire.
std::unordered_set< Identifier > m_filteredChamb
Set of chambers to be dumped.
TesterModuleBase(MuonTesterTree &tree, const std::string &grp_name, MSG::Level msglvl=MSG::Level::INFO)
Branch to store all information of the MDT identifier.
MuonTesterTree & parent()
Returns the reference to the MuonTesterTree parent.
TTree * tree() override final
Returns the underlying TTree object.
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...
-event-from-file
MdtTwinDriftCircle_v1 MdtTwinDriftCircle