ATLAS Offline Software
IRootVisualizationService.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 MUONRECTOOLINTERFACESR4_IROOTVISUALIZATIONSERVICE_H
5 #define MUONRECTOOLINTERFACESR4_IROOTVISUALIZATIONSERVICE_H
6 
7 #include <GaudiKernel/IService.h>
8 
9 
10 class TObject;
11 class EventContext;
12 
13 namespace MuonValR4{
25  class IRootVisualizationService: virtual public IService {
26  public:
28  using PrimitivePtr_t = std::unique_ptr<TObject>;
30  using PrimitiveVec_t = std::vector<PrimitivePtr_t>;
31 
34  virtual ~IRootVisualizationService() = default;
36  struct ClientToken{
38  std::set<std::string> fileFormats{"pdf"};
41  std::string preFixName{};
43  std::string subDirectory{};
45  std::size_t canvasLimit{5000};
47  bool saveSinglePlots{true};
49  bool saveSummaryPlot{true};
51  bool operator<(const ClientToken& other) const {
52  return preFixName < other.preFixName;
53  }
54  };
58  virtual StatusCode registerClient(const ClientToken& token) = 0;
61  struct ICanvasObject{
62  public:
64  ~ICanvasObject() = default;
66  enum class AxisRanges: std::uint8_t{
67  xLow, xHigh, yLow, yHigh
68  };
71  virtual double corner(const AxisRanges r) const = 0;
76  virtual void expandPad(const double x, const double y) = 0;
82  virtual void setRangeScale(const double s, bool quadCan = true) = 0;
88  virtual void add(PrimitivePtr_t&& drawMe,
89  const std::string& drawOpt="") = 0;
93  virtual void add(PrimitiveVec_t&& drawMe) = 0;
98  virtual void setAxisTitles(const std::string& xTitle="",
99  const std::string& yTitle="",
100  const std::string& zTitle="") = 0;
102  virtual void trash() = 0;
103  };
104  using CanvasPtr_t = std::shared_ptr<ICanvasObject>;
110  virtual CanvasPtr_t prepareCanvas(const EventContext& ctx,
111  const ClientToken& token,
112  const std::string& canvasName) = 0;
113  };
114 }
115 #endif
MuonValR4::IRootVisualizationService::ClientToken::preFixName
std::string preFixName
Prefix name of the saved Canvas.
Definition: IRootVisualizationService.h:41
MuonValR4::IRootVisualizationService::ClientToken::subDirectory
std::string subDirectory
Subdirectory in which the plots are written.
Definition: IRootVisualizationService.h:43
MuonValR4::IRootVisualizationService::ClientToken::operator<
bool operator<(const ClientToken &other) const
Comparison operator.
Definition: IRootVisualizationService.h:51
beamspotman.r
def r
Definition: beamspotman.py:672
MuonValR4::IRootVisualizationService::PrimitiveVec_t
std::vector< PrimitivePtr_t > PrimitiveVec_t
List of all primitives.
Definition: IRootVisualizationService.h:30
MuonValR4::IRootVisualizationService::ClientToken::fileFormats
std::set< std::string > fileFormats
In which formats are the Canvases saved (pdf, png, C, ROOT, etc.)
Definition: IRootVisualizationService.h:38
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:553
MuonValR4::IRootVisualizationService::ICanvasObject::expandPad
virtual void expandPad(const double x, const double y)=0
Expands the axes of the pad such that the coordinates are guaranteed to appear at least at the Canvas...
MuonValR4::IRootVisualizationService::prepareCanvas
virtual CanvasPtr_t prepareCanvas(const EventContext &ctx, const ClientToken &token, const std::string &canvasName)=0
Prepares a new ICanvasObject to be filled with content by the client.
MuonValR4::IRootVisualizationService::ClientToken::saveSinglePlots
bool saveSinglePlots
Save single plots.
Definition: IRootVisualizationService.h:47
MuonValR4::IRootVisualizationService::CanvasPtr_t
std::shared_ptr< ICanvasObject > CanvasPtr_t
Definition: IRootVisualizationService.h:104
MuonValR4::IRootVisualizationService::DeclareInterfaceID
DeclareInterfaceID(MuonValR4::IRootVisualizationService, 1, 0)
MuonValR4::IRootVisualizationService::ICanvasObject::trash
virtual void trash()=0
If no object has been drawn mark the plot as junk.
x
#define x
MuonValR4::IRootVisualizationService::ClientToken::canvasLimit
std::size_t canvasLimit
How many canvases are drawn at maximum in a job.
Definition: IRootVisualizationService.h:45
MuonValR4::IRootVisualizationService::ClientToken
Token class to identify a particular visualization client.
Definition: IRootVisualizationService.h:36
MuonValR4::IRootVisualizationService::ICanvasObject::setRangeScale
virtual void setRangeScale(const double s, bool quadCan=true)=0
To ensure that the drawn objects are not cut by the axis limits, a flat scale-factor on the drawn axi...
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
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
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
MuonValR4::IRootVisualizationService::ICanvasObject::corner
virtual double corner(const AxisRanges r) const =0
Retrieves a corner coordinate of the drawn canvas.
MuonValR4::IRootVisualizationService::PrimitivePtr_t
std::unique_ptr< TObject > PrimitivePtr_t
Abrivation for a TObject to be drawn on a canvas.
Definition: IRootVisualizationService.h:28
MuonValR4::IRootVisualizationService::ClientToken::saveSummaryPlot
bool saveSummaryPlot
Save a summary pdf.
Definition: IRootVisualizationService.h:49
MuonValR4::IRootVisualizationService::ICanvasObject::add
virtual void add(PrimitiveVec_t &&drawMe)=0
Add a vector of TObjects to the ICanvasObject for later drawing onto a TCanvas.
MuonValR4::IRootVisualizationService::ICanvasObject::~ICanvasObject
~ICanvasObject()=default
Default destructor.
InDetDD::other
@ other
Definition: InDetDD_Defs.h:16
y
#define y
MuonValR4::IRootVisualizationService::~IRootVisualizationService
virtual ~IRootVisualizationService()=default
Default destructor.
MuonValR4::IRootVisualizationService
Definition of the IRootVisualizationService interface.
Definition: IRootVisualizationService.h:25
MuonValR4::IRootVisualizationService::ICanvasObject::add
virtual void add(PrimitivePtr_t &&drawMe, const std::string &drawOpt="")=0
Add a TObject to the ICanvasObject for later drawing onto a TCanvas.
python.SystemOfUnits.s
float s
Definition: SystemOfUnits.py:147
MuonValR4::IRootVisualizationService::ICanvasObject::setAxisTitles
virtual void setAxisTitles(const std::string &xTitle="", const std::string &yTitle="", const std::string &zTitle="")=0
Define the titles of the Canvas axes.
MuonValR4::IRootVisualizationService::registerClient
virtual StatusCode registerClient(const ClientToken &token)=0
Registers a new client to the Service.