4#ifndef MUONCSVDUMP_BucketDumperAlg_H
5#define MUONCSVDUMP_BucketDumperAlg_H
27#include "CLHEP/Random/RandomEngine.h"
31#include <unordered_map>
41 virtual StatusCode
initialize() override final;
42 virtual StatusCode
finalize() override final;
43 virtual StatusCode
execute() override final;
51 const SG::ReadHandleKey<
xAOD::MuonSegmentContainer>& segmentKey);
59 "Key to the space point container"};
66 Gaudi::Property<bool>
m_isMC{
this,
"isMC",
true};
70 "Enable ML bucket score computation and dumping (requires InferenceTool to be configured)"};
72 "Skip dumping buckets classified as class 0 (reject) by ML model. Requires DoMLBucketScore=true."};
76 ToolHandle<MuonML::IGraphInferenceTool>
m_inferenceTool{
this,
"InferenceTool",
"",
77 "Optional ML inference tool for computing bucket scores. If not provided, scores will be empty."};
80 ToolHandle<MuonValR4::IPatternVisualizationTool>
m_visionTool{
this,
"VisualizationTool",
""};
AthHistogramAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
ToolHandle< MuonValR4::IPatternVisualizationTool > m_visionTool
Pattern visualization tool.
MuonVal::ScalarBranch< Char_t > & m_bucket_side
MuonVal::ThreeVectorBranch m_spoint_localPosition
MuonVal::VectorBranch< unsigned short > & m_spoint_measuresEta
MuonVal::ScalarBranch< uint8_t > & m_bucket_sector
MuonVal::VectorBranch< float > & m_truthSegLocTheta
MuonVal::VectorBranch< float > & m_segment_numberDoF
SG::ReadHandleKeyArray< SpacePointContainer > m_spacePointKeys
Gaudi::Property< bool > m_doMLBucketFilter
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.
ToolHandle< MuonML::IGraphInferenceTool > m_inferenceTool
Inference tool for ML bucket scoring (optional)
MuonVal::ScalarBranch< float > & m_bucket_min
MuonVal::VectorBranch< uint16_t > & m_spoint_layer
MuonVal::ThreeVectorBranch m_segmentPos
MuonVal::VectorBranch< float > & m_spoint_covX
MuonVal::VectorBranch< float > & m_segmentLocTheta
MuonVal::VectorBranch< float > & m_truthSegLocY
MuonVal::VectorBranch< float > & m_segment_chiSquared
CLHEP::HepRandomEngine * getRandomEngine(const EventContext &ctx) const
MuonVal::MatrixBranch< int16_t > & m_spoint_mat
MuonVal::ScalarBranch< float > & m_bucket_posZ
MuonVal::ScalarBranch< uint16_t > & m_bucket_layers
MuonVal::VectorBranch< float > & m_truthSegLocPhi
MuonVal::VectorBranch< float > & m_segmentLocY
MuonVal::VectorBranch< uint16_t > & m_segmentTruthIdx
virtual StatusCode initialize() override final
MuonVal::VectorBranch< float > & m_bucket_ml_score_class1
MuonVal::MuonTesterTree m_tree
MuonVal::VectorBranch< float > & m_segmentLocX
Gaudi::Property< double > m_fracToKeep
MuonVal::ScalarBranch< float > & m_bucket_max
virtual StatusCode execute() override final
MuonVal::VectorBranch< uint16_t > & m_spoint_nSegments
Gaudi::Property< bool > m_doMLBucketScore
SG::ReadDecorHandleKeyArray< xAOD::MuonSegmentContainer > m_truthDecorKeys
Gaudi::Property< bool > m_isMC
MuonVal::VectorBranch< float > & m_bucket_ml_score_class0
ML bucket filter scores (3 classes for the filter model)
MuonVal::VectorBranch< unsigned int > & m_spoint_nPhiInstances
StatusCode computeAllBucketScores(const EventContext &ctx, const SpacePointContainer *spContainer, std::unordered_map< const SpacePointBucket *, std::vector< float > > &bucketScoreMap) const
Computes ML bucket scores using the inference tool for a specific container.
MuonVal::ScalarBranch< uint8_t > & m_bucket_truthHit
Gaudi::Property< std::string > m_streamName
MuonVal::ThreeVectorBranch m_segmentDir
MuonVal::VectorBranch< uint16_t > & m_spoint_tdc
MuonVal::VectorBranch< float > & m_spoint_driftR
MuonVal::ScalarBranch< float > & m_bucket_posY
MuonVal::VectorBranch< float > & m_segmentLocPhi
MuonVal::ScalarBranch< float > & m_bucket_posX
MuonVal::VectorBranch< uint16_t > & m_spoint_adc
MuonVal::MuonIdentifierBranch m_spoint_id
SG::ReadHandleKey< ActsTrk::GeometryContext > m_geoCtxKey
AthHistogramAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
MuonVal::ScalarBranch< uint16_t > & m_bucket_segments
MuonVal::VectorBranch< unsigned int > & m_spoint_dimension
SG::ReadHandleKeyArray< xAOD::MuonSegmentContainer > m_inSegmentKeys
MuonVal::ScalarBranch< uint8_t > & m_bucket_chamberIdx
MuonVal::VectorBranch< float > & m_spoint_covY
MuonVal::MatrixBranch< int16_t > & m_spoint_trueSeg
MuonVal::VectorBranch< unsigned short > & m_spoint_isStrip
MuonVal::VectorBranch< unsigned int > & m_spoint_nEtaInstances
MuonVal::VectorBranch< float > & m_truthSegLocX
MuonVal::VectorBranch< unsigned short > & m_spoint_trueLabel
ServiceHandle< IAthRNGSvc > m_rndmSvc
~BucketDumperAlg()=default
MuonVal::ScalarBranch< uint16_t > & m_bucket_spacePoints
MuonVal::VectorBranch< float > & m_bucket_ml_score_class2
MuonVal::VectorBranch< unsigned short > & m_spoint_isMdt
virtual StatusCode finalize() override final
MuonVal::ThreeVectorBranch m_spoint_globalPosition
MuonVal::VectorBranch< unsigned short > & m_spoint_measuresPhi
: The muon space point bucket represents a collection of points that will bre processed together in t...
Class to dump the basic properties of an Identifier into an n-tuple StationName -> BIS,...
Property holding a SG store/key/clid from which a ReadHandle is made.
This header ties the generic definitions in this package.
DataVector< SpacePointBucket > SpacePointContainer
Abrivation of the space point container type.
DecorHandleKeyArray< ReadDecorHandle< T, S >, ReadDecorHandleKey< T >, Gaudi::DataHandle::Reader > ReadDecorHandleKeyArray
HandleKeyArray< ReadHandle< T >, ReadHandleKey< T >, Gaudi::DataHandle::Reader > ReadHandleKeyArray
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.