ATLAS Offline Software
DrawCanvasObject.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 MUONVISUALIZATIONHELPERSR4_DRAWCANVASOBJECT_H
5 #define MUONVISUALIZATIONHELPERSR4_DRAWCANVASOBJECT_H
7 
8 #include <TObject.h>
9 #include <Acts/Utilities/ArrayHelpers.hpp>
10 #include <limits>
11 #include <atomic>
12 
13 namespace MuonValR4::detail {
15  public:
17  using PrimitiveVec_t = std::vector<std::pair<PrimitivePtr_t, std::string>>;
18  using Range_t = std::array<double, 2>;
19  using Range2D_t = std::array<Range_t, 2>;
20 
21  DrawCanvasObject(const std::string& canvasName,
22  const std::size_t evtNumber);
23  virtual ~DrawCanvasObject() = default;
24 
25  virtual void expandPad(const double x, const double y) override final;
26 
27  virtual void add(PrimitivePtr_t&& drawMe,
28  const std::string& drawOpt ="") override final;
29  virtual void add(std::vector<PrimitivePtr_t>&& drawMe) override final;
30 
31  virtual double corner(const AxisRanges r) const override final;
32  virtual void setRangeScale(const double s, bool quadCan) override final;
33  virtual void trash() override final;
34 
37 
38  virtual void setAxisTitles(const std::string& xTitle,
39  const std::string& yTitle,
40  const std::string& zTitle) override final;
42  const std::string& xTitle() const;
44  const std::string& yTitle() const;
46  const std::string& zTitle() const;
48  std::size_t event() const;
50  const std::string& name() const;
52  bool trashed() const;
53 
54 
55  private:
56  static constexpr double s_dblMax = std::numeric_limits<double>::max();
57  Range2D_t m_axisRanges{Acts::filledArray<Range_t, 2>(Range_t{s_dblMax, -s_dblMax})};
58  double m_axisScale{1.};
60 
61  std::string m_name{};
62  std::size_t m_evt{};
63 
64  std::string m_xTitle{};
65  std::string m_yTitle{};
66  std::string m_zTitle{};
67 
68  bool m_quadCan{false};
69  std::atomic<bool> m_isTrashed{false};
70 
71 
72 
73  };
74 }
75 
76 #endif
beamspotman.r
def r
Definition: beamspotman.py:672
MuonValR4::detail::DrawCanvasObject::s_dblMax
static constexpr double s_dblMax
Definition: DrawCanvasObject.h:56
MuonValR4::detail::DrawCanvasObject::DrawCanvasObject
DrawCanvasObject(const std::string &canvasName, const std::size_t evtNumber)
Definition: DrawCanvasObject.cxx:21
MuonValR4::detail::DrawCanvasObject::m_evt
std::size_t m_evt
Definition: DrawCanvasObject.h:62
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
MuonValR4::detail::DrawCanvasObject::PrimitiveVec_t
std::vector< std::pair< PrimitivePtr_t, std::string > > PrimitiveVec_t
Definition: DrawCanvasObject.h:17
MuonValR4::detail::DrawCanvasObject::m_axisScale
double m_axisScale
Definition: DrawCanvasObject.h:58
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
x
#define x
MuonValR4::detail::DrawCanvasObject::Range2D_t
std::array< Range_t, 2 > Range2D_t
Definition: DrawCanvasObject.h:19
MuonValR4::detail
Definition: DrawCanvasObject.cxx:6
MuonValR4::detail::DrawCanvasObject::zTitle
const std::string & zTitle() const
Returns the title of the z-axis.
Definition: DrawCanvasObject.cxx:53
MuonValR4::detail::DrawCanvasObject
Definition: DrawCanvasObject.h:14
MuonValR4::detail::DrawCanvasObject::expandPad
virtual void expandPad(const double x, const double y) override final
Expands the axes of the pad such that the coordinates are guaranteed to appear at least at the Canvas...
Definition: DrawCanvasObject.cxx:56
MuonValR4::detail::DrawCanvasObject::trashed
bool trashed() const
Returns whether the canvas has been trashed.
Definition: DrawCanvasObject.cxx:48
MuonValR4::detail::DrawCanvasObject::m_primitives
PrimitiveVec_t m_primitives
Definition: DrawCanvasObject.h:59
MuonValR4::detail::DrawCanvasObject::setAxisTitles
virtual void setAxisTitles(const std::string &xTitle, const std::string &yTitle, const std::string &zTitle) override final
Define the titles of the Canvas axes.
Definition: DrawCanvasObject.cxx:68
MuonValR4::detail::DrawCanvasObject::m_quadCan
bool m_quadCan
Definition: DrawCanvasObject.h:68
vector
Definition: MultiHisto.h:13
MuonValR4::detail::DrawCanvasObject::corner
virtual double corner(const AxisRanges r) const override final
Retrieves a corner coordinate of the drawn canvas.
Definition: DrawCanvasObject.cxx:26
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::detail::DrawCanvasObject::xTitle
const std::string & xTitle() const
Returns the title of the x-axis.
Definition: DrawCanvasObject.cxx:51
MuonValR4::detail::DrawCanvasObject::yTitle
const std::string & yTitle() const
Returns the title of the y-axis.
Definition: DrawCanvasObject.cxx:52
MuonValR4::IRootVisualizationService::ICanvasObject::AxisRanges
AxisRanges
Enum to select the corner coordinates shown by the plot.
Definition: IRootVisualizationService.h:66
MuonValR4::detail::DrawCanvasObject::primitives
const PrimitiveVec_t & primitives() const
Definition: DrawCanvasObject.cxx:54
MuonValR4::detail::DrawCanvasObject::event
std::size_t event() const
Event number in which the canvas has been created.
Definition: DrawCanvasObject.cxx:50
MuonValR4::detail::DrawCanvasObject::m_xTitle
std::string m_xTitle
Definition: DrawCanvasObject.h:64
MuonValR4::IRootVisualizationService::PrimitivePtr_t
std::unique_ptr< TObject > PrimitivePtr_t
Abrivation for a TObject to be drawn on a canvas.
Definition: IRootVisualizationService.h:28
IRootVisualizationService.h
MuonValR4::detail::DrawCanvasObject::PrimitivePtr_t
IRootVisualizationService::PrimitivePtr_t PrimitivePtr_t
Definition: DrawCanvasObject.h:16
MuonValR4::detail::DrawCanvasObject::m_axisRanges
Range2D_t m_axisRanges
Definition: DrawCanvasObject.h:57
y
#define y
MuonValR4::detail::DrawCanvasObject::name
const std::string & name() const
Name of the canvas.
Definition: DrawCanvasObject.cxx:49
MuonValR4::detail::DrawCanvasObject::m_yTitle
std::string m_yTitle
Definition: DrawCanvasObject.h:65
python.SystemOfUnits.s
float s
Definition: SystemOfUnits.py:147
private
#define private
Definition: xAODTruthCnvAlg.h:20
MuonValR4::detail::DrawCanvasObject::trash
virtual void trash() override final
If no object has been drawn mark the plot as junk.
Definition: DrawCanvasObject.cxx:47
MuonValR4::detail::DrawCanvasObject::m_isTrashed
std::atomic< bool > m_isTrashed
Definition: DrawCanvasObject.h:69
MuonValR4::detail::DrawCanvasObject::add
virtual void add(PrimitivePtr_t &&drawMe, const std::string &drawOpt="") override final
Add a TObject to the ICanvasObject for later drawing onto a TCanvas.
Definition: DrawCanvasObject.cxx:60
MuonValR4::detail::DrawCanvasObject::~DrawCanvasObject
virtual ~DrawCanvasObject()=default
MuonValR4::detail::DrawCanvasObject::setRangeScale
virtual void setRangeScale(const double s, bool quadCan) override final
To ensure that the drawn objects are not cut by the axis limits, a flat scale-factor on the drawn axi...
Definition: DrawCanvasObject.cxx:43
MuonValR4::detail::DrawCanvasObject::m_zTitle
std::string m_zTitle
Definition: DrawCanvasObject.h:66
MuonValR4::detail::DrawCanvasObject::m_name
std::string m_name
Definition: DrawCanvasObject.h:61
MuonValR4::detail::DrawCanvasObject::Range_t
std::array< double, 2 > Range_t
Definition: DrawCanvasObject.h:18