HerdSoftware  0.3.2
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
22 #include "common/RefFrame.h"
23 #include "dataobjects/CaloHits.h"
24 #include "dataobjects/MCTruth.h"
30 #include "dataobjects/Tracks.h"
31 
32 // EA headers
33 #include "analysis/EventLoopProxy.h"
34 #include "core/ObserverPtr.h"
35 
36 // ROOT headers
37 #include "TApplication.h"
38 #include "TEveBoxSet.h"
39 #include "TEveGeoNode.h"
40 #include "TEveManager.h"
41 #include "TEvePointSet.h"
42 #include "TEveProjectionManager.h"
43 #include "TEveScene.h"
44 #include "TEveTrack.h"
45 #include "TEveTrackPropagator.h"
46 #include "TEveViewer.h"
47 #include "TEveWindow.h"
48 #include "TGNumberEntry.h"
49 #include "TGSlider.h"
51 
52 namespace Herd {
53 class HERDward;
54 
55 class HWMainWindow : public TApplication, public TEveManager {
56  RQ_OBJECT("HWMainWindow")
57 
58  friend class HERDward;
59 
60 public:
61  HWMainWindow();
62  virtual ~HWMainWindow() { Terminate(); }; // NOLINT
63 
64  void SetReturnFromRun(bool ret) { TApplication::SetReturnFromRun(ret); };
65  bool ReturnFromRun() { return TApplication::ReturnFromRun(); };
66  void ExitFromLoop();
67  void PrevEvent();
68  void NextEvent();
69  void LoadEvent();
70  void SetEventNumber(const char *text);
71  void SetDisplayDetector(const char *text);
72  void SetActiveTab(int tab);
73  void SetGeoTransparency(int transp);
74  virtual void Terminate(int status = 0); // NOLINT
75 
76 private:
77  int m_evNo;
79 
80  int m_activeTab = 0;
81 
82  TGNumberEntryField *m_evField;
83 
84  std::unique_ptr<TEveWindowSlot> m_3DSlot;
85 
86  std::unique_ptr<HWProjections> m_projections;
87  std::unique_ptr<HW3DView> m_3DView;
88 
89  void LoadGeometry();
90  void SetSceneTransparency(TEveGeoNode *node, int transp);
91  void MakeTransparentScene(TEveGeoNode *node, int transp);
92 
101 
102  template <class TrackingGeoParams>
103  void SetTrackingClusters(const ClustersColl &clColl, const SidesArray<std::vector<TrackingGeoParams>> &geoParamsColl,
105 
106  void SetCaloHits(const CaloHits &caloHits, const CaloGeoParams &caloParams);
107  void SetPSDHits(const PsdHitsColl &psdColl, const PsdGeoParamsColl &geoParamsColl);
108  void SetHoughTracks(const Track2DColl &tracks);
109  void SetTracks(const Tracks &tracks);
110  void SetCaloAxes(const Tracks &axes);
111  void SetMCTruth(const MCTruth &mcTruth);
112  void SetTrackerName(std::string name) { m_trackerDisp.SetName(std::move(name)); }
113 
114  std::unordered_map<std::string, bool> m_detEnableMap;
115  TGMainFrame *m_frmMain;
116  TGVerticalFrame *m_frmMainVertical;
117  TGGroupFrame *m_hitGroup;
118  TGHSlider *m_transpSlider;
119 
120  void ClearScene();
121  void MakeGui();
122  void AddGUIHitButtons();
123  void AddGUITranspSlide();
124 
125  // Event loop stuff
126  EA::observer_ptr<EA::EventLoopProxy> m_evLoopProxy;
127  void SetEventNumber(int evNo);
128  void SetNumberOfEvents(int totEvents) { m_totEvents = totEvents; };
129  void UpdateDetectorStatus();
130 
131  ClassDef(HWMainWindow, 1)
132 };
133 
134 } // namespace Herd
135 
136 #endif
TGHSlider * m_transpSlider
Definition: HWMainWindow.h:118
CssGeoParams.h CssGeoParams class declaration.
Definition: CaloPDCalibrationAlgo.h:24
HWTracks3DEventDisplay m_tracks3DDisp
Definition: HWMainWindow.h:98
HWPSDEventDisplay m_psdDisp
Definition: HWMainWindow.h:100
void LoadEvent()
Definition: HWMainWindow.cpp:245
TGGroupFrame * m_hitGroup
Definition: HWMainWindow.h:117
void SetTrackerName(std::string name)
Definition: HWMainWindow.h:112
Displays tracks from HoughFinder algorithms.
Definition: HERDward.h:58
Definition: HWMCTruthDisplay.h:16
std::unique_ptr< HW3DView > m_3DView
Definition: HWMainWindow.h:87
int m_evNo
Definition: HWMainWindow.h:77
std::unordered_map< std::string, bool > m_detEnableMap
Definition: HWMainWindow.h:114
void ExitFromLoop()
Definition: HWMainWindow.cpp:217
HWCaloAxesEventDisplay m_caloAxesDisp
Definition: HWMainWindow.h:99
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:95
void SetDisplayDetector(const char *text)
Definition: HWMainWindow.cpp:271
Container for a set of tracks.
void ClearScene()
Definition: HWMainWindow.cpp:195
void SetCaloHits(const CaloHits &caloHits, const CaloGeoParams &caloParams)
Definition: HWMainWindow.cpp:64
TGNumberEntryField * m_evField
Definition: HWMainWindow.h:82
int m_totEvents
Definition: HWMainWindow.h:78
TGVerticalFrame * m_frmMainVertical
Definition: HWMainWindow.h:116
std::unique_ptr< TEveWindowSlot > m_3DSlot
Definition: HWMainWindow.h:84
void UpdateDetectorStatus()
void MakeGui()
Definition: HWMainWindowGUI.cpp:29
Data structure for the Calo geometry parameters.
Definition: CaloGeoParams.h:34
void SetSceneTransparency(TEveGeoNode *node, int transp)
Definition: HWMainWindow.cpp:167
Definition: HWCaloEventDisplay.h:24
void LoadGeometry()
Definition: HWMainWindow.cpp:137
void SetActiveTab(int tab)
Definition: HWMainWindow.cpp:255
HWTrackingDetectorEventDisplay m_scdDisp
Definition: HWMainWindow.h:96
void SetMCTruth(const MCTruth &mcTruth)
Definition: HWMainWindow.cpp:52
void SetGeoTransparency(int transp)
Definition: HWMainWindow.cpp:182
Definition: HWTracks3DEventDisplay.h:24
bool ReturnFromRun()
Definition: HWMainWindow.h:65
HWHoughTrackEventDisplay m_houghDisp
Definition: HWMainWindow.h:97
EA::observer_ptr< EA::EventLoopProxy > m_evLoopProxy
Definition: HWMainWindow.h:126
void SetNumberOfEvents(int totEvents)
Definition: HWMainWindow.h:128
Definition: HWCaloAxesEventDisplay.h:15
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:224
std::unique_ptr< HWProjections > m_projections
Definition: HWMainWindow.h:86
virtual void Terminate(int status=0)
Definition: HWMainWindow.cpp:308
void NextEvent()
Definition: HWMainWindow.cpp:234
void SetHoughTracks(const Track2DColl &tracks)
Definition: HWMainWindow.cpp:90
void MakeTransparentScene(TEveGeoNode *node, int transp)
Definition: HWMainWindow.cpp:200
Data structure for the Monte Carlo truth of each event.
Definition: MCTruth.h:24
void SetEventNumber(const char *text)
Definition: HWMainWindow.cpp:210
void SetTracks(const Tracks &tracks)
Definition: HWMainWindow.cpp:125
TGMainFrame * m_frmMain
Definition: HWMainWindow.h:115
HWMCTruthDisplay m_mcTruthDisp
Definition: HWMainWindow.h:93
Definition: HWTrackingDetectorEventDisplay.h:23
void SetReturnFromRun(bool ret)
Definition: HWMainWindow.h:64
void SetPSDHits(const PsdHitsColl &psdColl, const PsdGeoParamsColl &geoParamsColl)
Definition: HWMainWindow.cpp:78
Container for the hits of a single CALO detector.
HWCaloEventDisplay m_caloDisp
Definition: HWMainWindow.h:94
void SetCaloAxes(const Tracks &axes)
Definition: HWMainWindow.cpp:108
int m_activeTab
Definition: HWMainWindow.h:80
Definition: HWMainWindow.h:55