DrawingPad.h
Go to the documentation of this file.
1 ///
2 /// \file DrawingPad.h
3 /// \brief Base class for all event display drawing pads
4 /// \author messier@indiana.edu
5 ///
6 #ifndef EVD_DRAWINGPAD_H
7 #define EVD_DRAWINGPAD_H
8 
9 #include <memory>
10 
11 class TPad;
12 
13 namespace evd_tool
14 {
15  class IExperimentDrawer;
16 }
17 
18 namespace evd
19 {
20 class HeaderDrawer;
21 //class GeometryDrawer;
22 class SimulationDrawer;
23 class RawDataDrawer;
24 class RecoBaseDrawer;
25 class AnalysisBaseDrawer;
26 class HitSelector;
27 
28 /// Base class for event display drawing pads
30 {
31 public:
32  DrawingPad(const char* nm,
33  const char* ti,
34  double x1, double y1,
35  double y2, double x2);
36  ~DrawingPad();
37  TPad* Pad() { return fPad; }
38 
39  // Access to the drawing utilities
40  HeaderDrawer* HeaderDraw();
41  evd_tool::IExperimentDrawer* GeometryDraw();
42  SimulationDrawer* SimulationDraw();
43  RawDataDrawer* RawDataDraw();
44  RecoBaseDrawer* RecoBaseDraw();
45  AnalysisBaseDrawer* AnalysisBaseDraw();
46  HitSelector* HitSelectorGet();
47 
48 protected:
49 
50  using IExperimentDrawerPtr = std::unique_ptr<evd_tool::IExperimentDrawer>;
51 
52  TPad* fPad; ///< The ROOT graphics pad
53  HeaderDrawer* fHeaderDraw; ///< Drawer for event header info
54  IExperimentDrawerPtr fGeometryDraw; ///< Drawer for detector geometry
55  SimulationDrawer* fSimulationDraw; ///< Drawer for simulation objects
56  RawDataDrawer* fRawDataDraw; ///< Drawer for raw data
57  RecoBaseDrawer* fRecoBaseDraw; ///< Drawer for recobase objects
58  AnalysisBaseDrawer* fAnalysisBaseDraw; ///< Drawer for analysisbase objects
59 
60 };
61 }
62 #endif
63 ////////////////////////////////////////////////////////////////////////
Aid in the rendering of RecoBase objects.
IExperimentDrawerPtr fGeometryDraw
Drawer for detector geometry.
Definition: DrawingPad.h:54
AnalysisBaseDrawer * fAnalysisBaseDraw
Drawer for analysisbase objects.
Definition: DrawingPad.h:58
RecoBaseDrawer * fRecoBaseDraw
Drawer for recobase objects.
Definition: DrawingPad.h:57
LArSoft includes.
Definition: InfoTransfer.h:33
Aid in the rendering of AnalysisBase objects.
Base class for event display drawing pads.
Definition: DrawingPad.h:29
TPad * Pad()
Definition: DrawingPad.h:37
Aid in the rendering of RawData objects.
Definition: RawDataDrawer.h:40
std::unique_ptr< evd_tool::IExperimentDrawer > IExperimentDrawerPtr
Definition: DrawingPad.h:50
RawDataDrawer * fRawDataDraw
Drawer for raw data.
Definition: DrawingPad.h:56
TPad * fPad
The ROOT graphics pad.
Definition: DrawingPad.h:52
HeaderDrawer * fHeaderDraw
Drawer for event header info.
Definition: DrawingPad.h:53
SimulationDrawer * fSimulationDraw
Drawer for simulation objects.
Definition: DrawingPad.h:55