HerdSoftware  0.4.0
HWMainWindow.h
Go to the documentation of this file.
1 /*
2  * HWMainWindow.h
3  *
4  * Created on: 02 Jan 2019
5  * Author: Valerio Formato
6  */
7 
8 #ifndef HWMainWindow_H_
9 #define HWMainWindow_H_
10 
11 #include "RQ_OBJECT.h"
12 
13 // HERD headers
29 
30 // EA headers
31 #include "analysis/EventLoopProxy.h"
32 #include "core/ObserverPtr.h"
33 
34 // ROOT headers
35 #include "TApplication.h"
36 #include "TEveBoxSet.h"
37 #include "TEveGeoNode.h"
38 #include "TEveManager.h"
39 #include "TEvePointSet.h"
40 #include "TEveProjectionManager.h"
41 #include "TEveScene.h"
42 #include "TEveTrack.h"
43 #include "TEveTrackPropagator.h"
44 #include "TEveViewer.h"
45 #include "TEveWindow.h"
46 #include "TGNumberEntry.h"
47 #include "TGSlider.h"
49 
50 namespace Herd {
51 class HERDward;
52 
53 class HWMainWindow : public TApplication, public TEveManager {
54  RQ_OBJECT("HWMainWindow")
55 
56  friend class HERDward;
57 
58 public:
59  HWMainWindow();
60  virtual ~HWMainWindow() { Terminate(); }; // NOLINT
61 
62  void SetReturnFromRun(bool ret) { TApplication::SetReturnFromRun(ret); };
63  bool ReturnFromRun() { return TApplication::ReturnFromRun(); };
64  void ExitFromLoop();
65  void PrevEvent();
66  void NextEvent();
67  void LoadEvent();
68  void SetEventNumber(const char *text);
69  void SetDisplayDetector(const char *text);
70  void SetActiveTab(int tab);
71  void SetGeoTransparency(int transp);
72  virtual void Terminate(int status = 0); // NOLINT
73 
74 private:
75  int m_evNo;
77 
78  int m_activeTab = 0;
79 
80  TGNumberEntryField *m_evField;
81 
82  std::unique_ptr<TEveWindowSlot> m_3DSlot;
83 
84  std::unique_ptr<HWProjections> m_projections;
85  std::unique_ptr<HW3DView> m_3DView;
86 
87  void LoadGeometry();
88  void SetSceneTransparency(TEveGeoNode *node, int transp);
89  void MakeTransparentScene(TEveGeoNode *node, int transp);
90 
99 
100  template <class TrackingGeoParams>
101  void SetTrackingClusters(const ClustersColl &clColl, const SidesArray<std::vector<TrackingGeoParams>> &geoParamsColl,
103 
104  void SetCaloHits(const CaloHits &caloHits, const CaloGeoParams &caloParams);
105  void SetPSDHits(const PsdHitsColl &psdColl, const PsdGeoParamsColl &geoParamsColl);
106  void SetHoughTracks(const Track2DColl &tracks);
107  void SetTracks(const Tracks &tracks);
108  void SetCaloAxes(const Tracks &axes);
109  void SetMCTruth(const MCTruth &mcTruth);
110  void SetTrackerName(std::string name) { m_trackerDisp.SetName(std::move(name)); }
111 
112  std::unordered_map<std::string, bool> m_detEnableMap;
113  TGMainFrame *m_frmMain;
114  TGVerticalFrame *m_frmMainVertical;
115  TGGroupFrame *m_hitGroup;
116  TGHSlider *m_transpSlider;
117 
118  void ClearScene();
119  void MakeGui();
120  void AddGUIHitButtons();
121  void AddGUITranspSlide();
122 
123  // Event loop stuff
124  EA::observer_ptr<EA::EventLoopProxy> m_evLoopProxy;
125  void SetEventNumber(int evNo);
126  void SetNumberOfEvents(int totEvents) { m_totEvents = totEvents; };
127  void UpdateDetectorStatus();
128 
129  ClassDef(HWMainWindow, 2)
130 };
131 
132 } // namespace Herd
133 
134 #endif
Herd::HWMainWindow::Terminate
virtual void Terminate(int status=0)
Definition: HWMainWindow.cpp:307
HWCaloEventDisplay.h
Herd::HWMainWindow::SetEventNumber
void SetEventNumber(const char *text)
Definition: HWMainWindow.cpp:209
Herd::HWMainWindow::SetDisplayDetector
void SetDisplayDetector(const char *text)
Definition: HWMainWindow.cpp:270
Herd::HWMainWindow::m_psdDisp
HWPSDEventDisplay m_psdDisp
Definition: HWMainWindow.h:98
Herd::HWMainWindow::SetSceneTransparency
void SetSceneTransparency(TEveGeoNode *node, int transp)
Definition: HWMainWindow.cpp:167
Herd::HWCaloEventDisplay
Definition: HWCaloEventDisplay.h:25
Herd::HWMainWindow::m_detEnableMap
std::unordered_map< std::string, bool > m_detEnableMap
Definition: HWMainWindow.h:112
Herd::HWMainWindow::m_3DView
std::unique_ptr< HW3DView > m_3DView
Definition: HWMainWindow.h:85
Herd::HWCaloAxesEventDisplay
Definition: HWCaloAxesEventDisplay.h:15
Herd::HWMainWindow::m_trackerDisp
HWTrackingDetectorEventDisplay m_trackerDisp
Definition: HWMainWindow.h:93
Track2DColl.h
Herd::HWMainWindow::m_totEvents
int m_totEvents
Definition: HWMainWindow.h:76
Herd::HWMainWindow::SetGeoTransparency
void SetGeoTransparency(int transp)
Definition: HWMainWindow.cpp:181
Herd::HWMainWindow::SetTrackerName
void SetTrackerName(std::string name)
Definition: HWMainWindow.h:110
Herd::HWMainWindow::SetTrackingClusters
void SetTrackingClusters(const ClustersColl &clColl, const SidesArray< std::vector< TrackingGeoParams >> &geoParamsColl, HWTrackingDetectorEventDisplay &_disp)
Definition: HWMainWindow.hpp:8
Herd::HWMainWindow::AddGUIHitButtons
void AddGUIHitButtons()
Definition: HWMainWindowGUI.cpp:124
Herd::HWMainWindow::m_transpSlider
TGHSlider * m_transpSlider
Definition: HWMainWindow.h:116
Herd::HWMainWindow::m_houghDisp
HWHoughTrackEventDisplay m_houghDisp
Definition: HWMainWindow.h:95
Herd::HWMainWindow::SetCaloHits
void SetCaloHits(const CaloHits &caloHits, const CaloGeoParams &caloParams)
Definition: HWMainWindow.cpp:64
Herd::HWMainWindow::m_evField
TGNumberEntryField * m_evField
Definition: HWMainWindow.h:80
Herd::HWMainWindow::LoadGeometry
void LoadGeometry()
Definition: HWMainWindow.cpp:137
Herd::HWTrackingDetectorEventDisplay
Definition: HWTrackingDetectorEventDisplay.h:23
MCTruth.h
Herd::HWMainWindow::SetActiveTab
void SetActiveTab(int tab)
Definition: HWMainWindow.cpp:254
Herd::HWMainWindow::PrevEvent
void PrevEvent()
Definition: HWMainWindow.cpp:223
Herd::HWMainWindow::SetHoughTracks
void SetHoughTracks(const Track2DColl &tracks)
Definition: HWMainWindow.cpp:90
Herd::HWMainWindow::m_projections
std::unique_ptr< HWProjections > m_projections
Definition: HWMainWindow.h:84
Herd
CssGeoParams.h CssGeoParams class declaration.
Definition: CaloPDCalibrationAlgo.h:22
HWPSDEventDisplay.h
Herd::HWMainWindow::MakeGui
void MakeGui()
Definition: HWMainWindowGUI.cpp:29
Herd::HWMainWindow::ClearScene
void ClearScene()
Definition: HWMainWindow.cpp:194
PsdHitsColl.h
HWProjections.h
HWHoughTrackEventDisplay.h
HW3DView.h
CaloHits
Container for the hits of a single CALO detector.
RefFrame.h
Herd::HWMainWindow::MakeTransparentScene
void MakeTransparentScene(TEveGeoNode *node, int transp)
Definition: HWMainWindow.cpp:199
Herd::HWMainWindow::AddGUITranspSlide
void AddGUITranspSlide()
Herd::HERDward
Displays tracks from HoughFinder algorithms.
Definition: HERDward.h:62
Herd::HWBaseEventDisplay::SetName
void SetName(std::string name)
Definition: HWBaseEventDisplay.h:24
Tracks
Container for a set of tracks.
HWTracks3DEventDisplay.h
Herd::HWMainWindow::m_mcTruthDisp
HWMCTruthDisplay m_mcTruthDisp
Definition: HWMainWindow.h:91
Herd::HWMainWindow::m_tracks3DDisp
HWTracks3DEventDisplay m_tracks3DDisp
Definition: HWMainWindow.h:96
Herd::CaloGeoParams
Data structure for the Calo geometry parameters.
Definition: CaloGeoParams.h:35
Herd::HWMainWindow::SetMCTruth
void SetMCTruth(const MCTruth &mcTruth)
Definition: HWMainWindow.cpp:52
Herd::HWMainWindow::m_frmMainVertical
TGVerticalFrame * m_frmMainVertical
Definition: HWMainWindow.h:114
Herd::HWMainWindow::m_evLoopProxy
EA::observer_ptr< EA::EventLoopProxy > m_evLoopProxy
Definition: HWMainWindow.h:124
HWTrackingDetectorEventDisplay.h
Herd::HWMainWindow::m_scdDisp
HWTrackingDetectorEventDisplay m_scdDisp
Definition: HWMainWindow.h:94
Herd::HWMainWindow::SetPSDHits
void SetPSDHits(const PsdHitsColl &psdColl, const PsdGeoParamsColl &geoParamsColl)
Definition: HWMainWindow.cpp:78
CaloHits.h
Herd::HWMainWindow::SetTracks
void SetTracks(const Tracks &tracks)
Definition: HWMainWindow.cpp:125
Herd::HWMainWindow::ReturnFromRun
bool ReturnFromRun()
Definition: HWMainWindow.h:63
Herd::HWPSDEventDisplay
Definition: HWPSDEventDisplay.h:25
Herd::HWMainWindow::SetNumberOfEvents
void SetNumberOfEvents(int totEvents)
Definition: HWMainWindow.h:126
Herd::ViewArray< std::vector< Track2D > >
Herd::HWMainWindow::m_caloDisp
HWCaloEventDisplay m_caloDisp
Definition: HWMainWindow.h:92
Herd::HWMainWindow::NextEvent
void NextEvent()
Definition: HWMainWindow.cpp:233
Herd::HWMainWindow::SetReturnFromRun
void SetReturnFromRun(bool ret)
Definition: HWMainWindow.h:62
Herd::HWTracks3DEventDisplay
Definition: HWTracks3DEventDisplay.h:24
Herd::HWMainWindow::ExitFromLoop
void ExitFromLoop()
Definition: HWMainWindow.cpp:216
Tracks.h
Herd::HWMainWindow::m_activeTab
int m_activeTab
Definition: HWMainWindow.h:78
Herd::MCTruth
Data structure for the Monte Carlo truth of each event.
Definition: MCTruth.h:24
Herd::HWMainWindow::m_evNo
int m_evNo
Definition: HWMainWindow.h:75
Herd::HWHoughTrackEventDisplay
Definition: HWHoughTrackEventDisplay.h:22
Herd::HWMCTruthDisplay
Definition: HWMCTruthDisplay.h:16
HWMCTruthDisplay.h
Herd::HWMainWindow::SetCaloAxes
void SetCaloAxes(const Tracks &axes)
Definition: HWMainWindow.cpp:108
Herd::HWMainWindow::m_3DSlot
std::unique_ptr< TEveWindowSlot > m_3DSlot
Definition: HWMainWindow.h:82
Herd::HWMainWindow
Definition: HWMainWindow.h:53
Herd::HWMainWindow::LoadEvent
void LoadEvent()
Definition: HWMainWindow.cpp:244
PsdGeoParamsColl.h
Herd::HWMainWindow::m_frmMain
TGMainFrame * m_frmMain
Definition: HWMainWindow.h:113
Herd::HWMainWindow::m_caloAxesDisp
HWCaloAxesEventDisplay m_caloAxesDisp
Definition: HWMainWindow.h:97
Herd::HWMainWindow::UpdateDetectorStatus
void UpdateDetectorStatus()
Herd::SidesArray
An array that accepts side as subscripts.
Definition: SidesArray.h:72
Herd::HWMainWindow::m_hitGroup
TGGroupFrame * m_hitGroup
Definition: HWMainWindow.h:115