ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonPhaseII
MuonValidation
MuonVisualizationHelpersR4
src
RootVisualizationService.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_ROOVISUALIZATIONSERVICE_H
5
#define MUONVISUALIZATIONHELPERSR4_ROOVISUALIZATIONSERVICE_H
6
#include <
MuonRecToolInterfacesR4/IRootVisualizationService.h
>
7
#include <GaudiKernel/EventContext.h>
8
#include <
AthenaBaseComps/AthService.h
>
9
10
#include "
DrawCanvasObject.h
"
11
12
#include <TFile.h>
13
14
#include <mutex>
15
16
namespace
MuonValR4
{
18
class
RootVisualizationService
:
public
extends<AthService, IRootVisualizationService>{
19
public
:
20
using
base_class::base_class;
21
22
23
virtual
StatusCode
registerClient
(
const
ClientToken& token)
override
final
;
24
25
virtual
std::shared_ptr<ICanvasObject>
26
prepareCanvas
(
const
EventContext& ctx,
const
ClientToken& token,
27
const
std::string& canvasName)
override
final
;
28
virtual
StatusCode
finalize
()
override
final
;
29
virtual
StatusCode
initialize
()
override
final
;
30
31
using
PlotPtr_t
= std::shared_ptr<detail::DrawCanvasObject>;
32
using
PlotVec_t
= std::vector<PlotPtr_t>;
33
34
private
:
35
void
paintObjects
(
const
ClientToken& token,
36
PlotVec_t
&& toDraw);
37
39
Gaudi::Property<double>
m_canvasExtraScale
{
this
,
"CanvasExtraScale"
, 1.5};
41
Gaudi::Property<bool>
m_quadCanvas
{
this
,
"QuadraticCanas"
,
true
};
43
Gaudi::Property<unsigned>
m_canvasWidth
{
this
,
"CanvasWidth"
, 800};
45
Gaudi::Property<unsigned>
m_canvasHeight
{
this
,
"CanvasHeight"
, 600};
47
Gaudi::Property<std::string>
m_outDir
{
this
,
"outputDir"
,
"./Displays/"
};
50
Gaudi::Property<std::string>
m_outRootFileName
{
this
,
"outputROOTFile"
,
"AllDisplays.root"
};
51
54
struct
PlotsPerClient
{
56
PlotVec_t
toDraw
{};
59
bool
elementsDrawn
{
false
};
60
};
61
62
using
StorageMap_t
= std::map<ClientToken, PlotsPerClient>;
63
StorageMap_t
m_storage
{};
65
std::unique_ptr<TFile>
m_outFile
{};
66
67
std::mutex
m_storageMutex
{};
68
std::mutex
m_canvasMutex
{};
69
70
71
};
72
}
73
#endif
AthService.h
DrawCanvasObject.h
IRootVisualizationService.h
MuonValR4::RootVisualizationService
Implementation of the IRootVisualization service.
Definition
RootVisualizationService.h:18
MuonValR4::RootVisualizationService::m_storageMutex
std::mutex m_storageMutex
Definition
RootVisualizationService.h:67
MuonValR4::RootVisualizationService::m_outDir
Gaudi::Property< std::string > m_outDir
Directory into which all plots are written to.
Definition
RootVisualizationService.h:47
MuonValR4::RootVisualizationService::m_canvasMutex
std::mutex m_canvasMutex
Definition
RootVisualizationService.h:68
MuonValR4::RootVisualizationService::m_storage
StorageMap_t m_storage
Definition
RootVisualizationService.h:63
MuonValR4::RootVisualizationService::m_outRootFileName
Gaudi::Property< std::string > m_outRootFileName
Name of the ROOT file into which the output Canvases are written (needs root to be in the list of out...
Definition
RootVisualizationService.h:50
MuonValR4::RootVisualizationService::m_outFile
std::unique_ptr< TFile > m_outFile
File into which all Canvases are saved if root is defined as extension.
Definition
RootVisualizationService.h:65
MuonValR4::RootVisualizationService::prepareCanvas
virtual std::shared_ptr< ICanvasObject > prepareCanvas(const EventContext &ctx, const ClientToken &token, const std::string &canvasName) override final
Definition
RootVisualizationService.cxx:63
MuonValR4::RootVisualizationService::paintObjects
void paintObjects(const ClientToken &token, PlotVec_t &&toDraw)
Definition
RootVisualizationService.cxx:91
MuonValR4::RootVisualizationService::m_canvasHeight
Gaudi::Property< unsigned > m_canvasHeight
Height of all drawn Canvases.
Definition
RootVisualizationService.h:45
MuonValR4::RootVisualizationService::m_quadCanvas
Gaudi::Property< bool > m_quadCanvas
Ensure that the canvas has the same interval sizes in x & y.
Definition
RootVisualizationService.h:41
MuonValR4::RootVisualizationService::PlotVec_t
std::vector< PlotPtr_t > PlotVec_t
Definition
RootVisualizationService.h:32
MuonValR4::RootVisualizationService::m_canvasWidth
Gaudi::Property< unsigned > m_canvasWidth
Width of all drawn Canvases.
Definition
RootVisualizationService.h:43
MuonValR4::RootVisualizationService::finalize
virtual StatusCode finalize() override final
Definition
RootVisualizationService.cxx:191
MuonValR4::RootVisualizationService::m_canvasExtraScale
Gaudi::Property< double > m_canvasExtraScale
Extra safety margin to zoom out from the Canvas.
Definition
RootVisualizationService.h:39
MuonValR4::RootVisualizationService::initialize
virtual StatusCode initialize() override final
Definition
RootVisualizationService.cxx:34
MuonValR4::RootVisualizationService::registerClient
virtual StatusCode registerClient(const ClientToken &token) override final
Definition
RootVisualizationService.cxx:43
MuonValR4::RootVisualizationService::PlotPtr_t
std::shared_ptr< detail::DrawCanvasObject > PlotPtr_t
Definition
RootVisualizationService.h:31
MuonValR4::RootVisualizationService::StorageMap_t
std::map< ClientToken, PlotsPerClient > StorageMap_t
Definition
RootVisualizationService.h:62
MuonValR4
Lightweight algorithm to read xAOD MDT sim hits and (fast-digitised) drift circles from SG and fill a...
Definition
SpacePointWriter.cxx:32
MuonValR4::RootVisualizationService::PlotsPerClient
Helper struct to group all plots that are belonging to a client of the service.
Definition
RootVisualizationService.h:54
MuonValR4::RootVisualizationService::PlotsPerClient::toDraw
PlotVec_t toDraw
List of already registered Canvases.
Definition
RootVisualizationService.h:56
MuonValR4::RootVisualizationService::PlotsPerClient::elementsDrawn
bool elementsDrawn
Flag to indicate whether the plots were already dumped on disk.
Definition
RootVisualizationService.h:59
Generated on
for ATLAS Offline Software by
1.17.0