ATLAS Offline Software
TrackVisualizationTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef MUONTRACKFINDINGTEST_TRACKVISUALIZATIONTOOL_H
5 #define MUONTRACKFINDINGTEST_TRACKVISUALIZATIONTOOL_H
6 
11 
12 #include <TLegend.h>
13 
14 namespace MuonR4{
15  class MsTrackSeeder;
16 }
17 
18 namespace MuonValR4{
19  class TrackVisualizationTool : public extends<AthAlgTool, ITrackVisualizationTool> {
20  public:
22  using base_class::base_class;
24  virtual ~TrackVisualizationTool() = default;
25 
26  virtual StatusCode initialize() override final;
34  virtual void displaySeeds(const EventContext& ctx,
35  const MuonR4::MsTrackSeeder& seederObj,
36  const xAOD::MuonSegmentContainer& segments,
37  const MuonR4::MsTrackSeedContainer& seeds) const override final;
45  virtual void displaySeeds(const EventContext& ctx,
46  const MuonR4::MsTrackSeeder& seederObj,
47  const xAOD::MuonSegmentContainer& segments,
49  PrimitivesVec_t && extPrimitives) const override final;
50 
59  virtual void displayTrackSeedObj(const EventContext& ctx,
60  const MuonR4::MsTrackSeed& seed,
61  const OptBoundPars_t& parsToExt,
62  const std::string& objName = "") const override final;
63  private:
65  using Edges = Canvas_t::AxisRanges;
67  struct PlotLegend {
73  PlotLegend(const double xLow, const double yLow,
74  const double xHigh, const double yHigh):
75  legend{std::make_unique<TLegend>(xLow, yLow, xHigh, yHigh)}{}
79  void addColor(const int color, const std::string& label);
83  void addMarker(const int marker, const std::string& label);
85  void fillPrimitives(Canvas_t& canvas);
86  std::unique_ptr<TLegend> legend{};
87  using LegendEntry_t = std::unordered_map<int, PrimitivePtr_t>;
90  };
91 
95  enum class DisplayView{RZ, XY};
103  void displaySeeds(const EventContext& ctx,
104  const MuonR4::MsTrackSeeder& seederObj,
105  const DisplayView view,
106  const xAOD::MuonSegmentContainer& segments,
107  const MuonR4::MsTrackSeedContainer& seeds,
108  PrimitivesVec_t&& extPrimitives) const;
115  void fillTruthSeedPoints(const EventContext& ctx,
116  const MuonR4::MsTrackSeeder& seeder,
117  const DisplayView view,
118  PlotLegend& legend,
119  Canvas_t& canvas) const;
125  static Amg::Vector2D viewVector(const double phi,
126  const Amg::Vector2D& posOnCylinder,
127  const DisplayView view);
129  ToolHandle<ActsTrk::IExtrapolationTool> m_extrapolationTool{this, "ExtrapolationTool" ,"" };
131  ServiceHandle<IRootVisualizationService> m_visualSvc{this, "VisualSvc", "MuonValR4::RootVisualizationService"};
136  SG::ReadHandleKey<xAOD::MuonSegmentContainer> m_truthSegKey{this, "TruthSegkey", "MuonTruthSegments"};
138  SG::ReadHandleKey<ActsTrk::GeometryContext> m_geoCtxKey{this, "AlignmentKey", "ActsAlignment", "cond handle key"};
140  Gaudi::Property<unsigned> m_canvasLimit{this, "CanvasLimit", 5000};
142  Gaudi::Property<bool> m_saveSinglePDFs{this, "saveSinglePDFs", true};
144  Gaudi::Property<bool> m_saveSummaryPDF{this, "saveSummaryPDF", true};
146  Gaudi::Property<std::string> m_subDir{this, "outSubDir", ""};
148  Gaudi::Property<std::string> m_canvasPrefix{this, "CanvasPreFix", "MsTrackValid"};
150  mutable std::atomic<bool> m_plotsDone{false};
152  mutable std::atomic<unsigned> m_objCounter{0};
153  };
154 }
155 
156 #endif
MuonValR4::TrackVisualizationTool::PlotLegend
Helper struct to administer the markers & colors that are added to the legend.
Definition: TrackVisualizationTool.h:67
MuonValR4::TrackVisualizationTool::Canvas_t
IRootVisualizationService::ICanvasObject Canvas_t
Definition: TrackVisualizationTool.h:64
color
Definition: jFexInputByteStreamTool.cxx:25
MuonValR4::TrackVisualizationTool::~TrackVisualizationTool
virtual ~TrackVisualizationTool()=default
Destructor.
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
MuonValR4::TrackVisualizationTool::DisplayView::XY
@ XY
MuonValR4::ICanvasObject
RootVisualizationService::ICanvasObject ICanvasObject
Definition: RootVisualizationService.cxx:33
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
MuonR4::MsTrackSeed
Definition: MsTrackSeed.h:18
MuonValR4::TrackVisualizationTool::m_truthSegKey
SG::ReadHandleKey< xAOD::MuonSegmentContainer > m_truthSegKey
Key to the truth segment selection to draw the segment parameters.
Definition: TrackVisualizationTool.h:136
MuonValR4::TrackVisualizationTool::m_clientToken
IRootVisualizationService::ClientToken m_clientToken
Token to present to the visualization service such that the display froms this tool are grouped toget...
Definition: TrackVisualizationTool.h:134
IExtrapolationTool.h
MuonValR4::TrackVisualizationTool::m_saveSummaryPDF
Gaudi::Property< bool > m_saveSummaryPDF
If set to true a summary Canvas is created.
Definition: TrackVisualizationTool.h:144
xAOD
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Definition: ICaloAffectedTool.h:24
MuonValR4::TrackVisualizationTool::PlotLegend::LegendEntry_t
std::unordered_map< int, PrimitivePtr_t > LegendEntry_t
Definition: TrackVisualizationTool.h:87
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
SG::ReadHandleKey< xAOD::MuonSegmentContainer >
ITrackVisualizationTool.h
MuonValR4::TrackVisualizationTool::m_canvasPrefix
Gaudi::Property< std::string > m_canvasPrefix
Prefix of the individual canvas file names <MANDATORY>
Definition: TrackVisualizationTool.h:148
MuonValR4::TrackVisualizationTool::m_saveSinglePDFs
Gaudi::Property< bool > m_saveSinglePDFs
If set to true each canvas is saved into a dedicated pdf file.
Definition: TrackVisualizationTool.h:142
python.Include.marker
string marker
Definition: Include.py:21
MuonR4::MsTrackSeed::Location
Location
Enum defining whether the seed is made in the endcap / barrel.
Definition: MsTrackSeed.h:21
MuonValR4::TrackVisualizationTool::DisplayView::RZ
@ RZ
MuonValR4::IRootVisualizationService::ClientToken
Token class to identify a particular visualization client.
Definition: IRootVisualizationService.h:36
MuonValR4::TrackVisualizationTool::m_visualSvc
ServiceHandle< IRootVisualizationService > m_visualSvc
Service handle of the visualization service.
Definition: TrackVisualizationTool.h:131
MuonValR4::TrackVisualizationTool::DisplayView
DisplayView
Enumeration to toggle whether the seeds shall be painted in x-y or R-z view.
Definition: TrackVisualizationTool.h:95
perfmonmt-plotter.colors
dictionary colors
Definition: perfmonmt-plotter.py:21
DeMoAtlasDataLoss.canvas
dictionary canvas
Definition: DeMoAtlasDataLoss.py:187
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
add-xsec-uncert-quadrature-N.label
label
Definition: add-xsec-uncert-quadrature-N.py:104
MuonValR4::IRootVisualizationService::ICanvasObject
Interface to the container class to temporarily cache the ROOT objects to be drawn on a TCanvas and t...
Definition: IRootVisualizationService.h:61
MuonValR4::TrackVisualizationTool::PlotLegend::PlotLegend
PlotLegend(const double xLow, const double yLow, const double xHigh, const double yHigh)
Constructor defining the Legned placement.
Definition: TrackVisualizationTool.h:73
MuonValR4::TrackVisualizationTool::m_objCounter
std::atomic< unsigned > m_objCounter
How many obj have been produced.
Definition: TrackVisualizationTool.h:152
DataVector
Derived DataVector<T>.
Definition: DataVector.h:795
MuonValR4::TrackVisualizationTool::viewVector
static Amg::Vector2D viewVector(const double phi, const Amg::Vector2D &posOnCylinder, const DisplayView view)
Transforms the projected vector into the actual view, if it's xy then an external phi is needed to pl...
Definition: TrackVisualizationTool.cxx:96
MuonValR4::TrackVisualizationTool::m_extrapolationTool
ToolHandle< ActsTrk::IExtrapolationTool > m_extrapolationTool
Track extrapolation tool.
Definition: TrackVisualizationTool.h:129
MuonValR4::TrackVisualizationTool::displaySeeds
virtual void displaySeeds(const EventContext &ctx, const MuonR4::MsTrackSeeder &seederObj, const xAOD::MuonSegmentContainer &segments, const MuonR4::MsTrackSeedContainer &seeds) const override final
Displays all segments on the representative cylinder in the R-Z & X-Y plane and draws the markers of ...
Definition: TrackVisualizationTool.cxx:123
xAOD::MuonSegmentContainer
MuonSegmentContainer_v1 MuonSegmentContainer
Definition of the current "MuonSegment container version".
Definition: MuonSegmentContainer.h:14
MuonValR4
Lightweight algorithm to read xAOD MDT sim hits and (fast-digitised) drift circles from SG and fill a...
Definition: IPatternVisualizationTool.h:23
MuonValR4::IRootVisualizationService::ICanvasObject::AxisRanges
AxisRanges
Enum to select the corner coordinates shown by the plot.
Definition: IRootVisualizationService.h:66
plotBeamSpotVxVal.legend
legend
Definition: plotBeamSpotVxVal.py:97
CoreClass.markers
list markers
Definition: CoreClass.py:17
MuonValR4::TrackVisualizationTool::m_canvasLimit
Gaudi::Property< unsigned > m_canvasLimit
Maximum canvases to draw.
Definition: TrackVisualizationTool.h:140
MuonR4::MsTrackSeeder
Helper class to group muon sgements that may belong to a muon trajectory.
Definition: MsTrackSeeder.h:29
MuonValR4::TrackVisualizationTool::m_geoCtxKey
SG::ReadHandleKey< ActsTrk::GeometryContext > m_geoCtxKey
Dependency on the geometry alignment.
Definition: TrackVisualizationTool.h:138
IRootVisualizationService.h
MuonR4
This header ties the generic definitions in this package.
Definition: HoughEventData.h:16
MuonValR4::IRootVisualizationService
Definition of the IRootVisualizationService interface.
Definition: IRootVisualizationService.h:25
MuonValR4::TrackVisualizationTool::displayTrackSeedObj
virtual void displayTrackSeedObj(const EventContext &ctx, const MuonR4::MsTrackSeed &seed, const OptBoundPars_t &parsToExt, const std::string &objName="") const override final
Visualizes the measurements of the segments on the track seed together with their predicted local lin...
Definition: TrackVisualizationTool.cxx:296
MuonR4::MsTrackSeedContainer
std::vector< MsTrackSeed > MsTrackSeedContainer
Definition: MsTrackSeed.h:63
MuonValR4::TrackVisualizationTool::initialize
virtual StatusCode initialize() override final
Definition: TrackVisualizationTool.cxx:106
MuonValR4::TrackVisualizationTool::fillTruthSeedPoints
void fillTruthSeedPoints(const EventContext &ctx, const MuonR4::MsTrackSeeder &seeder, const DisplayView view, PlotLegend &legend, Canvas_t &canvas) const
Add the truth segments to the canvas.
Definition: TrackVisualizationTool.cxx:251
MuonValR4::TrackVisualizationTool::m_subDir
Gaudi::Property< std::string > m_subDir
Define the subdirectory in which the plots shall be saved.
Definition: TrackVisualizationTool.h:146
private
#define private
Definition: xAODTruthCnvAlg.h:20
MuonValR4::TrackVisualizationTool::m_plotsDone
std::atomic< bool > m_plotsDone
Flag toggling whether all Canvases have been exhausted.
Definition: TrackVisualizationTool.h:150
MuonValR4::TrackVisualizationTool
Definition: TrackVisualizationTool.h:19
ServiceHandle
Definition: ClusterMakerTool.h:37
drawFromPickle.view
view
Definition: drawFromPickle.py:294