HerdSoftware  0.2.3
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
21 #include "common/RefFrame.h"
22 #include "dataobjects/CaloAxes.h"
23 #include "dataobjects/CaloHits.h"
24 #include "dataobjects/MCTruth.h"
29 #include "dataobjects/Track2D.h"
30 
31 // EA headers
32 #include "analysis/EventLoopProxy.h"
33 #include "core/ObserverPtr.h"
34 
35 // ROOT headers
36 #include "TApplication.h"
37 #include "TEveBoxSet.h"
38 #include "TEveGeoNode.h"
39 #include "TEveManager.h"
40 #include "TEvePointSet.h"
41 #include "TEveProjectionManager.h"
42 #include "TEveScene.h"
43 #include "TEveTrack.h"
44 #include "TEveTrackPropagator.h"
45 #include "TEveViewer.h"
46 #include "TEveWindow.h"
47 #include "TGNumberEntry.h"
48 #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  ~HWMainWindow() { Terminate(); };
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  void Terminate(int status = 0);
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 
98 
99  template <class TrackingGeoParams>
100  void SetTrackingClusters(const ClustersColl &clColl, const SidesArray<std::vector<TrackingGeoParams>> &geoParamsColl,
102 
103  void SetCaloHits(const CaloHits &caloHits, const CaloGeoParams &caloParams);
104  void SetPSDHits(const PsdHitsColl &psdColl, const PsdGeoParamsColl &geoParamsColl);
105  void SetHoughTracks(const std::array<std::vector<Track2D>, 3> &tracks);
106  void SetCaloAxes(const CaloAxes &axes);
107  void SetMCTruth(const MCTruth &mcTruth);
108  void SetTrackerName(std::string name) { m_trackerDisp.SetName(std::move(name)); }
109 
110  std::unordered_map<std::string, bool> m_detEnableMap;
111  TGMainFrame *m_frmMain;
112  TGVerticalFrame *m_frmMainVertical;
113  TGGroupFrame *m_hitGroup;
114  TGHSlider *m_transpSlider;
115 
116  void ClearScene();
117  void MakeGui();
118  void AddGUIHitButtons();
119  void AddGUITranspSlide();
120 
121  // Event loop stuff
122  EA::observer_ptr<EA::EventLoopProxy> m_evLoopProxy;
123  void SetEventNumber(int evNo);
124  void SetNumberOfEvents(int totEvents) { m_totEvents = totEvents; };
125  void UpdateDetectorStatus();
126 
127  ClassDef(HWMainWindow, 1)
128 };
129 
130 } // namespace Herd
131 
132 #endif
TGHSlider * m_transpSlider
Definition: HWMainWindow.h:114
CssGeoParams.h CssGeoParams class declaration.
Definition: CaloPDCalibrationAlgo.h:24
HWPSDEventDisplay m_psdDisp
Definition: HWMainWindow.h:97
void LoadEvent()
Definition: HWMainWindow.cpp:231
TGGroupFrame * m_hitGroup
Definition: HWMainWindow.h:113
void SetTrackerName(std::string name)
Definition: HWMainWindow.h:108
Displays tracks from HoughFinder algorithms.
Definition: HERDward.h:59
Definition: HWMCTruthDisplay.h:20
std::unique_ptr< HW3DView > m_3DView
Definition: HWMainWindow.h:85
int m_evNo
Definition: HWMainWindow.h:75
std::unordered_map< std::string, bool > m_detEnableMap
Definition: HWMainWindow.h:110
void ExitFromLoop()
Definition: HWMainWindow.cpp:203
Container for the CaloAxis objects of Calorimeter Shower Axis reconstruction.
HWCaloAxesEventDisplay m_caloAxesDisp
Definition: HWMainWindow.h:96
void SetTrackingClusters(const ClustersColl &clColl, const SidesArray< std::vector< TrackingGeoParams >> &geoParamsColl, HWTrackingDetectorEventDisplay &_disp)
Definition: HWMainWindow.hpp:8
void AddGUIHitButtons()
Definition: HWMainWindowGUI.cpp:124
Definition: HWHoughTrackEventDisplay.h:22
HWTrackingDetectorEventDisplay m_trackerDisp
Definition: HWMainWindow.h:93
void SetDisplayDetector(const char *text)
Definition: HWMainWindow.cpp:257
void ClearScene()
Definition: HWMainWindow.cpp:181
void SetCaloHits(const CaloHits &caloHits, const CaloGeoParams &caloParams)
Definition: HWMainWindow.cpp:62
TGNumberEntryField * m_evField
Definition: HWMainWindow.h:80
int m_totEvents
Definition: HWMainWindow.h:76
TGVerticalFrame * m_frmMainVertical
Definition: HWMainWindow.h:112
std::unique_ptr< TEveWindowSlot > m_3DSlot
Definition: HWMainWindow.h:82
void UpdateDetectorStatus()
void MakeGui()
Definition: HWMainWindowGUI.cpp:29
Data structure for the Calo geometry parameters.
Definition: CaloGeoParams.h:29
void SetSceneTransparency(TEveGeoNode *node, int transp)
Definition: HWMainWindow.cpp:153
Definition: HWCaloEventDisplay.h:24
void LoadGeometry()
Definition: HWMainWindow.cpp:123
void SetActiveTab(int tab)
Definition: HWMainWindow.cpp:241
HWTrackingDetectorEventDisplay m_scdDisp
Definition: HWMainWindow.h:94
void SetMCTruth(const MCTruth &mcTruth)
Definition: HWMainWindow.cpp:50
void SetGeoTransparency(int transp)
Definition: HWMainWindow.cpp:168
bool ReturnFromRun()
Definition: HWMainWindow.h:63
HWHoughTrackEventDisplay m_houghDisp
Definition: HWMainWindow.h:95
EA::observer_ptr< EA::EventLoopProxy > m_evLoopProxy
Definition: HWMainWindow.h:122
void SetNumberOfEvents(int totEvents)
Definition: HWMainWindow.h:124
Definition: HWCaloAxesEventDisplay.h:24
Definition: HWPSDEventDisplay.h:25
An array that accepts side as subscripts.
Definition: SidesArray.h:72
void SetName(std::string name)
Definition: HWBaseEventDisplay.h:24
void PrevEvent()
Definition: HWMainWindow.cpp:210
std::unique_ptr< HWProjections > m_projections
Definition: HWMainWindow.h:84
void Terminate(int status=0)
Definition: HWMainWindow.cpp:291
void SetHoughTracks(const std::array< std::vector< Track2D >, 3 > &tracks)
Definition: HWMainWindow.cpp:88
void NextEvent()
Definition: HWMainWindow.cpp:220
void MakeTransparentScene(TEveGeoNode *node, int transp)
Definition: HWMainWindow.cpp:186
Data structure for the Monte Carlo truth of each event.
Definition: MCTruth.h:24
void SetEventNumber(const char *text)
Definition: HWMainWindow.cpp:196
void SetCaloAxes(const CaloAxes &axes)
Definition: HWMainWindow.cpp:106
TGMainFrame * m_frmMain
Definition: HWMainWindow.h:111
HWMCTruthDisplay m_mcTruthDisp
Definition: HWMainWindow.h:91
Definition: HWTrackingDetectorEventDisplay.h:23
void SetReturnFromRun(bool ret)
Definition: HWMainWindow.h:62
void SetPSDHits(const PsdHitsColl &psdColl, const PsdGeoParamsColl &geoParamsColl)
Definition: HWMainWindow.cpp:76
Container for the hits of a single CALO detector.
HWCaloEventDisplay m_caloDisp
Definition: HWMainWindow.h:92
int m_activeTab
Definition: HWMainWindow.h:78
Definition: HWMainWindow.h:53