ATLAS Offline Software
BucketDumperAlg.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include "BucketDumperAlg.h"
6 
7 #include "StoreGate/ReadHandle.h"
15 #include <fstream>
17 #include "CLHEP/Random/RandFlat.h"
18 
19 namespace {
20  struct LocalSegSorter{
21  bool operator()(const xAOD::MuonSegment* a, const xAOD::MuonSegment* b) const {
22  if(a == b) {
23  return false;
24  }
25  if (a->chamberIndex() != b->chamberIndex()) {
26  return a->chamberIndex() < b->chamberIndex();
27  }
28  if (a->sector() != b->sector()) {
29  return a->sector() < b->sector();
30  }
31  if (a->etaIndex() != b->etaIndex()) {
32  return a->etaIndex() < b->etaIndex();
33  }
34  using namespace MuonR4::SegmentFit;
35  auto locParsA = localSegmentPars(*a);
36  auto locParsB = localSegmentPars(*b);
37  return locParsA < locParsB;
38  }
39  };
40 }
41 
42 namespace MuonR4{
44  ATH_CHECK(m_spacePointKeys.initialize());
45  ATH_CHECK(m_inSegmentKeys.initialize());
46  if (m_isMC) {
47  for (const auto& key : m_inSegmentKeys) {
48  m_truthDecorKeys.emplace_back(key, "truthParticleLink");
49  }
50  }
51  ATH_CHECK(m_truthDecorKeys.initialize());
52  ATH_CHECK(m_idHelperSvc.retrieve());
54  m_tree.addBranch(std::make_shared<MuonVal::EventHashBranch>(m_tree.tree()));
55  ATH_CHECK(m_visionTool.retrieve(EnableTool{!m_visionTool.empty()}));
56  if (m_visionTool.empty()) {
58  }
59  ATH_CHECK(m_tree.init(this));
60  ATH_CHECK(m_idHelperSvc.retrieve());
61  ATH_MSG_DEBUG("Successfully initialized");
62 
63  return StatusCode::SUCCESS;
64  }
65 
68  return StatusCode::SUCCESS;
69  }
70 
72  const EventContext& ctx{Gaudi::Hive::currentContext()};
74  ATH_CHECK(emptyKey.initialize(SG::AllowEmpty));
75  for (unsigned keyNum = 0 ; keyNum < m_spacePointKeys.size(); ++keyNum) {
77  keyNum < m_inSegmentKeys.size() ? m_inSegmentKeys[keyNum] : emptyKey ));
78  }
79  return StatusCode::SUCCESS;
80  }
81  StatusCode BucketDumperAlg::dumpContainer(const EventContext& ctx,
82  const SG::ReadHandleKey<SpacePointContainer>& spacePointKey,
84 
85  using SegmentsPerBucket_t = std::unordered_map <const SpacePointBucket*,
86  std::set<const xAOD::MuonSegment*, LocalSegSorter>>;
87 
88  SegmentsPerBucket_t segmentMap{};
89 
90  const xAOD::MuonSegmentContainer* readSegment{nullptr};
91  ATH_CHECK(SG::get(readSegment, segmentKey, ctx));
92  if (readSegment) {
93  for (const xAOD::MuonSegment* segment : *readSegment) {
94  segmentMap[detailedSegment(*segment)->parent()->parentBucket()].insert(segment);
95  }
96  }
97 
98  const ActsTrk::GeometryContext* gctx{nullptr};
99  ATH_CHECK(SG::get(gctx, m_geoCtxKey, ctx));
100 
101  const SpacePointContainer* spContainer{nullptr};
102  ATH_CHECK(SG::get(spContainer, spacePointKey, ctx));
103 
104  CLHEP::HepRandomEngine* rndEngine = getRandomEngine(ctx);
105 
106  const SpacePointPerLayerSorter layerSorter{};
107 
108  for(const SpacePointBucket* bucket : *spContainer) {
110  if (!m_isMC && segmentMap[bucket].empty() && m_fracToKeep < 1. &&
111  CLHEP::RandFlat::shoot(rndEngine,0.,1.) > m_fracToKeep) {
112  ATH_MSG_VERBOSE("Skipping bucket without segment");
113  continue;
114  }
116  m_bucket_sector = bucket->msSector()->sector();
117  m_bucket_chamberIdx = static_cast<uint8_t>(bucket->msSector()->chamberIndex());
118  m_bucket_side = bucket->msSector()->side();
120  m_bucket_min = bucket->coveredMin();
121  m_bucket_max = bucket->coveredMax();
122 
124  const Amg::Vector3D bucketPos = bucket->msSector()->localToGlobalTrans(*gctx) *
125  (0.5*(bucket->coveredMin() + bucket->coveredMax()) * Amg::Vector3D::UnitY());
126  m_bucket_posX = bucketPos.x();
127  m_bucket_posY = bucketPos.y();
128  m_bucket_posZ = bucketPos.z();
129 
131  m_bucket_truthHit = std::ranges::any_of(*bucket,[this](const SpacePointBucket::value_type & sp){
132  return m_visionTool->isLabeled(*sp);
133  });
134 
136  m_bucket_segments = segmentMap[bucket].size();
137 
138 
139 
140  std::unordered_map<const SpacePoint*, std::vector<int16_t>> spacePointToSegment{};
141  std::set<const xAOD::MuonSegment*, LocalSegSorter> truthSegments{};
143  auto match_itr = segmentMap.find(bucket);
144  if (match_itr != segmentMap.end()) {
145  for (const xAOD::MuonSegment* segment : match_itr->second) {
146  for (const auto& meas : detailedSegment(*segment)->measurements()) {
147  if (meas->fitState() == CalibratedSpacePoint::State::Valid) {
148  spacePointToSegment[meas->spacePoint()].push_back(segment->index());
149  }
150  }
151  using namespace SegmentFit;
152  const auto pars = localSegmentPars(*segment);
153  m_segmentLocX += pars[Acts::toUnderlying(ParamDefs::x0)];
154  m_segmentLocY += pars[Acts::toUnderlying(ParamDefs::y0)];
155  m_segmentLocTheta += pars[Acts::toUnderlying(ParamDefs::theta)];
156  m_segmentLocPhi += pars[Acts::toUnderlying(ParamDefs::phi)];
157 
159  unsigned truthLink = -1;
160  if (const xAOD::TruthParticle* truthPart = getTruthMatchedParticle(*segment)) {
161  truthLink = truthPart->index();
162  }
164  if (const xAOD::MuonSegment* truthSeg = getMatchedTruthSegment(*segment)) {
165  truthSegments.insert(truthSeg);
166  }
167  m_segmentTruthIdx+=truthLink;
168  m_segmentPos.push_back(segment->position());
169  m_segmentDir.push_back(segment->direction());
172  }
173  }
174 
175  std::vector<unsigned int> layNumbers{};
176  std::unordered_map<const SpacePoint*, std::vector<const xAOD::MuonSegment*>> spToTrueSeg{};
177  if (m_isMC) {
178  using SegLinkVec_t = std::vector<ElementLink<xAOD::MuonSegmentContainer>>;
179  static const SG::ConstAccessor<SegLinkVec_t> segAcc{"truthSegmentLinks"};
180  for (const auto& sp : *bucket){
181  for (const auto& link : segAcc(*sp->primaryMeasurement())) {
182  spToTrueSeg[sp.get()].push_back(*link);
183  truthSegments.insert(*link);
184  }
185  }
186  }
187 
188  for(const SpacePointBucket::value_type& sp : *bucket) {
190  const unsigned int layNum = layerSorter.sectorLayerNum(*sp);
191  if (std::find(layNumbers.begin(), layNumbers.end(), layNum) == layNumbers.end()) {
192  layNumbers.push_back(layNum);
193  }
194  const unsigned layer = layNumbers.size()-1;
195 
196  const Identifier& id = sp->identify();
197 
198  if (sp->type() == xAOD::UncalibMeasType::MdtDriftCircleType) {
199  const auto* dc = static_cast<const xAOD::MdtDriftCircle*>(sp->primaryMeasurement());
201  continue;
202  }
205  m_spoint_adc.push_back(dc->adc());
206  m_spoint_tdc.push_back(dc->tdc());
207  } else {
208  // check the technology to fill channel, adc and tdc... pushing back 0 for now
211  m_spoint_isMdt.push_back(false);
213  }
214 
216 
217 
218  const std::vector<int16_t>& segIdxs = spacePointToSegment[sp.get()];
219  m_spoint_mat[m_spoint_mat.size()] = segIdxs;
220  auto& trueSegLinks = m_spoint_trueSeg[m_spoint_trueSeg.size()];
221  for (const xAOD::MuonSegment* matchedSeg : spToTrueSeg[sp.get()]) {
222  trueSegLinks.push_back(std::distance(truthSegments.begin(), truthSegments.find(matchedSeg)));
223  }
224  m_spoint_nSegments.push_back(segIdxs.size());
225 
226  m_bucket_spacePoints = bucket->size();
227  m_spoint_localPosition.push_back(sp->localPosition());
228  using CovIdx = SpacePoint::CovIdx;
229  m_spoint_covX.push_back(sp->covariance()[Acts::toUnderlying(CovIdx::phiCov)]);
230  m_spoint_covY.push_back(sp->covariance()[Acts::toUnderlying(CovIdx::etaCov)]);
231  m_spoint_driftR.push_back(sp->driftRadius());
232  m_spoint_measuresEta.push_back(sp->measuresEta());
233  m_spoint_measuresPhi.push_back(sp->measuresPhi());
234  m_spoint_nEtaInstances.push_back(sp->nEtaInstanceCounts());
235  m_spoint_nPhiInstances.push_back(sp->nPhiInstanceCounts());
236  m_spoint_dimension.push_back(sp->dimension());
238  if (m_visionTool.isEnabled()) {
239  m_spoint_trueLabel.push_back(m_visionTool->isLabeled(*sp));
240  }
241 
242  Amg::Vector3D globalPos = sp->msSector()->localToGlobalTrans(*gctx) * sp->localPosition();
243  m_spoint_globalPosition.push_back( globalPos );
244  }
245 
246  for (const xAOD::MuonSegment* truthSeg: truthSegments) {
247  using namespace SegmentFit;
248  const auto truthPars = localSegmentPars(*truthSeg);
249  m_truthSegLocX += truthPars[Acts::toUnderlying(ParamDefs::x0)];
250  m_truthSegLocY += truthPars[Acts::toUnderlying(ParamDefs::y0)];
251  m_truthSegLocTheta += truthPars[Acts::toUnderlying(ParamDefs::theta)];
252  m_truthSegLocPhi += truthPars[Acts::toUnderlying(ParamDefs::phi)];
253  }
254 
255  m_bucket_layers = layNumbers.size();
256 
257  if (!m_tree.fill(ctx)) {
258  return StatusCode::FAILURE;
259  }
260  }
261 
262  return StatusCode::SUCCESS;
263 
264  }
265 
266  CLHEP::HepRandomEngine* BucketDumperAlg::getRandomEngine(const EventContext&ctx) const {
267  ATHRNG::RNGWrapper* rngWrapper = m_rndmSvc->getEngine(this, m_streamName);
268  std::string rngName = m_streamName;
269  rngWrapper->setSeed(rngName, ctx);
270  return rngWrapper->getEngine(ctx);
271  }
272 
273 }
make_hlt_rep.pars
pars
Definition: make_hlt_rep.py:90
xAOD::MuonSegment_v1::numberDoF
float numberDoF() const
Returns the numberDoF.
ATHRNG::RNGWrapper::setSeed
void setSeed(const std::string &algName, const EventContext &ctx)
Set the random seed using a string (e.g.
Definition: RNGWrapper.h:169
MuonR4::SegmentSeed::parentBucket
const SpacePointBucket * parentBucket() const
Returns the bucket out of which the seed was formed.
Definition: SegmentSeed.cxx:49
MuonSimHitHelpers.h
MuonR4::BucketDumperAlg::m_spoint_dimension
MuonVal::VectorBranch< unsigned int > & m_spoint_dimension
Definition: BucketDumperAlg.h:103
UtilFunctions.h
MuonR4::BucketDumperAlg::m_segmentLocY
MuonVal::VectorBranch< float > & m_segmentLocY
Definition: BucketDumperAlg.h:112
MuonR4::SegmentFit
Definition: MuonHoughDefs.h:34
MuonR4::BucketDumperAlg::m_truthSegLocTheta
MuonVal::VectorBranch< float > & m_truthSegLocTheta
Definition: BucketDumperAlg.h:125
MuonR4::BucketDumperAlg::getRandomEngine
CLHEP::HepRandomEngine * getRandomEngine(const EventContext &ctx) const
Definition: BucketDumperAlg.cxx:266
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
xAOD::MuonSegment_v1::direction
Amg::Vector3D direction() const
Returns the direction as Amg::Vector.
Definition: MuonSegment_v1.cxx:18
MuonR4::SpacePointBucket
: The muon space point bucket represents a collection of points that will bre processed together in t...
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/MuonSpacePoint/SpacePointContainer.h:21
MuonR4::getTruthMatchedParticle
const xAOD::TruthParticle * getTruthMatchedParticle(const xAOD::MuonSegment &segment)
Returns the particle truth-matched to the segment.
Definition: MuonSimHitHelpers.cxx:107
MuonVal::MuonTesterTree::init
StatusCode init(OWNER *instance)
Initialize method.
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:553
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:138
MuonR4::BucketDumperAlg::m_spoint_adc
MuonVal::VectorBranch< uint16_t > & m_spoint_adc
Definition: BucketDumperAlg.h:91
MuonR4::BucketDumperAlg::m_bucket_max
MuonVal::ScalarBranch< float > & m_bucket_max
Definition: BucketDumperAlg.h:70
MuonR4::SpacePointPerLayerSorter
The SpacePointPerLayerSorter sort two given space points by their layer Identifier.
Definition: SpacePointPerLayerSorter.h:15
MuonR4::CalibratedSpacePoint::State::Valid
@ Valid
xAOD::MuonSegment_v1::chiSquared
float chiSquared() const
MuonR4::BucketDumperAlg::m_tree
MuonVal::MuonTesterTree m_tree
Definition: BucketDumperAlg.h:67
MuonR4::BucketDumperAlg::execute
virtual StatusCode execute() override final
Definition: BucketDumperAlg.cxx:71
theta
Scalar theta() const
theta method
Definition: AmgMatrixBasePlugin.h:75
MuonR4::BucketDumperAlg::m_spoint_id
MuonVal::MuonIdentifierBranch m_spoint_id
Definition: BucketDumperAlg.h:86
MuonR4::Segment::measurements
const MeasVec & measurements() const
Returns the associated measurements.
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonPatternEvent/MuonPatternEvent/Segment.h:49
MuonR4::BucketDumperAlg::m_bucket_truthHit
MuonVal::ScalarBranch< uint8_t > & m_bucket_truthHit
Definition: BucketDumperAlg.h:74
xAOD::MuonSegment_v1
Class describing a MuonSegment.
Definition: MuonSegment_v1.h:33
MuonR4::getMatchedTruthSegment
const xAOD::MuonSegment * getMatchedTruthSegment(const xAOD::MuonSegment &segment)
Returns the truth-matched segment.
Definition: MuonSimHitHelpers.cxx:118
MuonR4::BucketDumperAlg::m_segmentTruthIdx
MuonVal::VectorBranch< uint16_t > & m_segmentTruthIdx
Definition: BucketDumperAlg.h:116
MuonR4::BucketDumperAlg::m_spoint_globalPosition
MuonVal::ThreeVectorBranch m_spoint_globalPosition
Definition: BucketDumperAlg.h:84
MuonR4::BucketDumperAlg::m_spacePointKeys
SG::ReadHandleKeyArray< SpacePointContainer > m_spacePointKeys
Definition: BucketDumperAlg.h:49
MuonR4::BucketDumperAlg::finalize
virtual StatusCode finalize() override final
Definition: BucketDumperAlg.cxx:66
SG::ConstAccessor
Helper class to provide constant type-safe access to aux data.
Definition: ConstAccessor.h:55
MuonR4::BucketDumperAlg::m_geoCtxKey
SG::ReadHandleKey< ActsTrk::GeometryContext > m_geoCtxKey
Definition: BucketDumperAlg.h:56
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
SG::ReadHandleKey< xAOD::MuonSegmentContainer >
EventHashBranch.h
MuonR4::SpacePoint::CovIdx::etaCov
@ etaCov
MuonR4::BucketDumperAlg::m_bucket_min
MuonVal::ScalarBranch< float > & m_bucket_min
Definition: BucketDumperAlg.h:69
MuonR4::BucketDumperAlg::m_spoint_nPhiInstances
MuonVal::VectorBranch< unsigned int > & m_spoint_nPhiInstances
Definition: BucketDumperAlg.h:102
MuonR4::BucketDumperAlg::m_truthSegLocY
MuonVal::VectorBranch< float > & m_truthSegLocY
Definition: BucketDumperAlg.h:124
MuonR4::BucketDumperAlg::m_inSegmentKeys
SG::ReadHandleKeyArray< xAOD::MuonSegmentContainer > m_inSegmentKeys
Definition: BucketDumperAlg.h:53
Muon::MdtStatusDriftTime
@ MdtStatusDriftTime
The tube produced a vaild measurement.
Definition: MdtDriftCircleStatus.h:34
MuonR4::BucketDumperAlg::m_rndmSvc
ServiceHandle< IAthRNGSvc > m_rndmSvc
Definition: BucketDumperAlg.h:61
MuonR4::BucketDumperAlg::m_segmentPos
MuonVal::ThreeVectorBranch m_segmentPos
Definition: BucketDumperAlg.h:118
MuonR4::detailedSegment
const Segment * detailedSegment(const xAOD::MuonSegment &seg)
Helper function to navigate from the xAOD::MuonSegment to the MuonR4::Segment.
Definition: TrackingHelpers.cxx:24
MuonR4::BucketDumperAlg::m_spoint_covY
MuonVal::VectorBranch< float > & m_spoint_covY
Definition: BucketDumperAlg.h:95
MuonR4::BucketDumperAlg::m_bucket_layers
MuonVal::ScalarBranch< uint16_t > & m_bucket_layers
Definition: BucketDumperAlg.h:73
MuonR4::BucketDumperAlg::m_spoint_measuresPhi
MuonVal::VectorBranch< unsigned short > & m_spoint_measuresPhi
Definition: BucketDumperAlg.h:99
MuonR4::BucketDumperAlg::m_segmentLocX
MuonVal::VectorBranch< float > & m_segmentLocX
Definition: BucketDumperAlg.h:111
MuonVal::ThreeVectorBranch::push_back
void push_back(const Amg::Vector3D &vec)
interface using the Amg::Vector3D
Definition: ThreeVectorBranch.cxx:23
MuonVal::MatrixBranch::push_back
void push_back(size_t i, const T &value)
MuonR4::BucketDumperAlg::m_spoint_localPosition
MuonVal::ThreeVectorBranch m_spoint_localPosition
Definition: BucketDumperAlg.h:83
MuonR4::BucketDumperAlg::m_segmentLocTheta
MuonVal::VectorBranch< float > & m_segmentLocTheta
Definition: BucketDumperAlg.h:113
MuonR4::BucketDumperAlg::m_isMC
Gaudi::Property< bool > m_isMC
Definition: BucketDumperAlg.h:58
SG::get
const T * get(const ReadCondHandleKey< T > &key, const EventContext &ctx)
Convenience function to retrieve an object given a ReadCondHandleKey.
Definition: ReadCondHandle.h:283
MuonR4::BucketDumperAlg::m_bucket_posZ
MuonVal::ScalarBranch< float > & m_bucket_posZ
Definition: BucketDumperAlg.h:77
MuonVal::MuonTesterTree::disableBranch
void disableBranch(const std::string &br_name)
Skips the branch from being added to the tree.
Definition: MuonTesterTree.cxx:199
MuonR4::Segment::parent
const SegmentSeed * parent() const
Returns the seed out of which the segment was built.
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonPatternEvent/MuonPatternEvent/Segment.h:51
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
MuonR4::BucketDumperAlg::m_fracToKeep
Gaudi::Property< double > m_fracToKeep
Definition: BucketDumperAlg.h:59
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
xAOD::TruthParticle_v1
Class describing a truth particle in the MC record.
Definition: TruthParticle_v1.h:37
MuonVal::MuonIdentifierBranch::push_back
virtual void push_back(const Identifier &id)
Definition: IdentifierBranch.cxx:14
MuonR4::BucketDumperAlg::m_spoint_isStrip
MuonVal::VectorBranch< unsigned short > & m_spoint_isStrip
Definition: BucketDumperAlg.h:88
MuonR4::BucketDumperAlg::m_segmentLocPhi
MuonVal::VectorBranch< float > & m_segmentLocPhi
Definition: BucketDumperAlg.h:114
MuonR4::BucketDumperAlg::m_spoint_isMdt
MuonVal::VectorBranch< unsigned short > & m_spoint_isMdt
Definition: BucketDumperAlg.h:89
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
ActsTrk::GeometryContext
Definition: GeometryContext.h:28
MuonR4::BucketDumperAlg::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: BucketDumperAlg.h:51
SG::AuxElement::index
size_t index() const
Return the index of this element within its container.
MuonR4::BucketDumperAlg::m_spoint_measuresEta
MuonVal::VectorBranch< unsigned short > & m_spoint_measuresEta
Definition: BucketDumperAlg.h:98
DataVector
Derived DataVector<T>.
Definition: DataVector.h:795
MuonR4::BucketDumperAlg::m_spoint_mat
MuonVal::MatrixBranch< int16_t > & m_spoint_mat
Definition: BucketDumperAlg.h:106
MuonR4::BucketDumperAlg::m_spoint_trueLabel
MuonVal::VectorBranch< unsigned short > & m_spoint_trueLabel
Definition: BucketDumperAlg.h:100
MuonVal::MuonTesterBranch::name
std::string name() const override final
Returns the name of the branch.
Definition: MuonTesterBranch.cxx:51
MuonR4::BucketDumperAlg::m_bucket_side
MuonVal::ScalarBranch< Char_t > & m_bucket_side
Definition: BucketDumperAlg.h:81
MuonR4::BucketDumperAlg::m_spoint_driftR
MuonVal::VectorBranch< float > & m_spoint_driftR
Definition: BucketDumperAlg.h:96
MdtDriftCircle.h
MuonVal::VectorBranch::push_back
void push_back(const T &value)
Adds a new element at the end of the vector.
xAOD::MuonSegment_v1::position
Amg::Vector3D position() const
Returns the position as Amg::Vector.
Definition: MuonSegment_v1.cxx:15
TrackingHelpers.h
MuonR4::BucketDumperAlg::dumpContainer
StatusCode dumpContainer(const EventContext &ctx, const SG::ReadHandleKey< SpacePointContainer > &spacePointKey, const SG::ReadHandleKey< xAOD::MuonSegmentContainer > &segmentKey)
Dumps the space point container with the associated muon segment container.
Definition: BucketDumperAlg.cxx:81
MuonR4::BucketDumperAlg::initialize
virtual StatusCode initialize() override final
Definition: BucketDumperAlg.cxx:43
MuonR4::BucketDumperAlg::m_spoint_layer
MuonVal::VectorBranch< uint16_t > & m_spoint_layer
Definition: BucketDumperAlg.h:87
ATHRNG::RNGWrapper
A wrapper class for event-slot-local random engines.
Definition: RNGWrapper.h:56
MuonR4::SpacePoint::CovIdx::phiCov
@ phiCov
MuonR4::BucketDumperAlg::m_bucket_sector
MuonVal::ScalarBranch< uint8_t > & m_bucket_sector
Definition: BucketDumperAlg.h:79
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:76
MuonR4::BucketDumperAlg::m_bucket_posX
MuonVal::ScalarBranch< float > & m_bucket_posX
Definition: BucketDumperAlg.h:75
MuonR4::BucketDumperAlg::m_spoint_tdc
MuonVal::VectorBranch< uint16_t > & m_spoint_tdc
Definition: BucketDumperAlg.h:92
BucketDumperAlg.h
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
MuonR4::BucketDumperAlg::m_bucket_spacePoints
MuonVal::ScalarBranch< uint16_t > & m_bucket_spacePoints
Definition: BucketDumperAlg.h:71
MuonR4::BucketDumperAlg::m_bucket_segments
MuonVal::ScalarBranch< uint16_t > & m_bucket_segments
Definition: BucketDumperAlg.h:72
ATHRNG::RNGWrapper::getEngine
CLHEP::HepRandomEngine * getEngine(const EventContext &ctx) const
Retrieve the random engine corresponding to the provided EventContext.
Definition: RNGWrapper.h:134
RNGWrapper.h
MuonR4
This header ties the generic definitions in this package.
Definition: HoughEventData.h:16
MuonR4::SegLinkVec_t
std::vector< SegLink_t > SegLinkVec_t
Definition: MeasurementMarkerAlg.cxx:15
a
TList * a
Definition: liststreamerinfos.cxx:10
SegmentFitterEventData.h
MuonR4::BucketDumperAlg::m_segment_numberDoF
MuonVal::VectorBranch< float > & m_segment_numberDoF
Definition: BucketDumperAlg.h:121
MuonVal::MuonTesterTree::fill
bool fill(const EventContext &ctx)
Fills the tree per call.
Definition: MuonTesterTree.cxx:89
MuonR4::BucketDumperAlg::m_segment_chiSquared
MuonVal::VectorBranch< float > & m_segment_chiSquared
Definition: BucketDumperAlg.h:120
MuonVal::MuonTesterTree::write
StatusCode write()
Finally write the TTree objects.
Definition: MuonTesterTree.cxx:178
MuonR4::SegmentFit::localSegmentPars
Parameters localSegmentPars(const xAOD::MuonSegment &seg)
Returns the localSegPars decoration from a xAODMuon::Segment.
Definition: SegmentFitterEventData.cxx:42
MuonR4::BucketDumperAlg::m_visionTool
ToolHandle< MuonValR4::IPatternVisualizationTool > m_visionTool
Pattern visualization tool.
Definition: BucketDumperAlg.h:64
MuonR4::BucketDumperAlg::m_truthSegLocX
MuonVal::VectorBranch< float > & m_truthSegLocX
Definition: BucketDumperAlg.h:123
MuonR4::BucketDumperAlg::m_bucket_posY
MuonVal::ScalarBranch< float > & m_bucket_posY
Definition: BucketDumperAlg.h:76
MuonVal::VectorBranch::size
size_t size() const
Returns the number of actual saved elements.
MuonR4::SpacePoint::CovIdx
CovIdx
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/MuonSpacePoint/SpacePoint.h:30
MuonR4::BucketDumperAlg::m_streamName
Gaudi::Property< std::string > m_streamName
Definition: BucketDumperAlg.h:60
ReadHandle.h
Handle class for reading from StoreGate.
xAOD::MdtDriftCircle_v1
https://gitlab.cern.ch/atlas/athena/-/blob/master/MuonSpectrometer/MuonReconstruction/MuonRecEvent/Mu...
Definition: MdtDriftCircle_v1.h:21
columnar::operator()
decltype(auto) operator()(ObjectId< CI, CM > id) const noexcept
Definition: ColumnAccessor.h:173
MuonR4::BucketDumperAlg::m_truthDecorKeys
SG::ReadDecorHandleKeyArray< xAOD::MuonSegmentContainer > m_truthDecorKeys
Definition: BucketDumperAlg.h:55
MuonR4::BucketDumperAlg::m_spoint_trueSeg
MuonVal::MatrixBranch< int16_t > & m_spoint_trueSeg
Definition: BucketDumperAlg.h:107
MuonR4::BucketDumperAlg::m_truthSegLocPhi
MuonVal::VectorBranch< float > & m_truthSegLocPhi
Definition: BucketDumperAlg.h:126
SG::AllowEmpty
@ AllowEmpty
Definition: StoreGate/StoreGate/VarHandleKey.h:27
Amg::distance
float distance(const Amg::Vector3D &p1, const Amg::Vector3D &p2)
calculates the distance between two point in 3D space
Definition: GeoPrimitivesHelpers.h:54
MuonR4::BucketDumperAlg::m_segmentDir
MuonVal::ThreeVectorBranch m_segmentDir
Definition: BucketDumperAlg.h:119
MuonR4::BucketDumperAlg::m_spoint_nEtaInstances
MuonVal::VectorBranch< unsigned int > & m_spoint_nEtaInstances
Definition: BucketDumperAlg.h:101
MuonR4::BucketDumperAlg::m_spoint_covX
MuonVal::VectorBranch< float > & m_spoint_covX
Definition: BucketDumperAlg.h:94
MuonVal::MuonTesterTree::tree
TTree * tree()
TTree object.
Definition: MuonTesterTree.cxx:22
xAOD::UncalibMeasType::MdtDriftCircleType
@ MdtDriftCircleType
SpacePointPerLayerSorter.h
MuonR4::BucketDumperAlg::m_spoint_nSegments
MuonVal::VectorBranch< uint16_t > & m_spoint_nSegments
Definition: BucketDumperAlg.h:105
MuonR4::BucketDumperAlg::m_bucket_chamberIdx
MuonVal::ScalarBranch< uint8_t > & m_bucket_chamberIdx
Definition: BucketDumperAlg.h:80
MuonVal::MuonTesterTree::addBranch
bool addBranch(std::shared_ptr< IMuonTesterBranch > branch)
Branch is added to the tree without transferring the ownership.
Definition: MuonTesterTree.cxx:61
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37
Identifier
Definition: IdentifierFieldParser.cxx:14