HerdSoftware  0.4.0
HWCaloEventDisplay.h
Go to the documentation of this file.
1 /*
2  * HWCaloEventDisplay.h
3  *
4  * Created on: 08 May 2019
5  * Author: Valerio Formato
6  */
7 
8 // HERD headers
13 
14 // ROOT headers
15 #include <TEveGeoNode.h>
16 #include <TEveGeoShape.h>
17 
18 // c++ headers
19 #include <unordered_map>
20 
21 #ifndef HWCaloEventDisplay_H_
22 #define HWCaloEventDisplay_H_
23 
24 namespace Herd {
26 public:
28  ~HWCaloEventDisplay() = default;
29 
30  void GenerateHashTable(TEveGeoNode *node);
31  void ImportCaloHits(const CaloHits &caloHits, const CaloGeoParams &caloParams);
32  void SetRenderState(bool renderState);
33 
34  TEveElementList *CaloHits3D;
35  TEveElementList *CaloHitsXZ;
36  TEveElementList *CaloHitsYZ;
37  TEveElementList *CaloHitsXY;
38 
39 private:
40  std::unordered_map<std::string, TEveGeoShape *> m_EGSMap;
41  std::map<RefFrame::View, std::unique_ptr<VPalette>> m_palettes;
42  std::unique_ptr<VPalette> m_3Dpalette;
43 
44  struct CaloProjHit {
45  float eDep;
46  float u;
47  float v;
48  };
49 
50 public:
51  using projHitIteratorBase = std::pair<std::pair<int, int>, CaloProjHit>;
52  using CaloProjHits = std::map<std::pair<int, int>, CaloProjHit>;
53  void Draw3DHits(const CaloHits &caloHits, const CaloGeoParams &caloParams);
54  void DrawProjectedHits(const CaloProjHits &projHits, RefFrame::View view);
55 
56  CaloProjHits ProjectHits(const CaloHits &hits, const CaloGeoParams &geoParams, RefFrame::Axis dir1,
57  RefFrame::Axis dir2);
58 };
59 } // namespace Herd
60 
61 #endif
Herd::HWCaloEventDisplay::m_palettes
std::map< RefFrame::View, std::unique_ptr< VPalette > > m_palettes
Definition: HWCaloEventDisplay.h:41
Herd::HWCaloEventDisplay::DrawProjectedHits
void DrawProjectedHits(const CaloProjHits &projHits, RefFrame::View view)
Definition: HWCaloEventDisplay.cpp:88
Herd::HWCaloEventDisplay
Definition: HWCaloEventDisplay.h:25
Herd::HWCaloEventDisplay::projHitIteratorBase
std::pair< std::pair< int, int >, CaloProjHit > projHitIteratorBase
Definition: HWCaloEventDisplay.h:51
Herd::HWCaloEventDisplay::CaloHits3D
TEveElementList * CaloHits3D
Definition: HWCaloEventDisplay.h:34
Herd::HWCaloEventDisplay::CaloProjHit::eDep
float eDep
Definition: HWCaloEventDisplay.h:45
Herd::HWCaloEventDisplay::HWCaloEventDisplay
HWCaloEventDisplay()
Definition: HWCaloEventDisplay.cpp:38
VPalette.h
Herd::HWCaloEventDisplay::CaloHitsYZ
TEveElementList * CaloHitsYZ
Definition: HWCaloEventDisplay.h:36
Herd::HWCaloEventDisplay::CaloHitsXY
TEveElementList * CaloHitsXY
Definition: HWCaloEventDisplay.h:37
Herd::HWCaloEventDisplay::CaloProjHits
std::map< std::pair< int, int >, CaloProjHit > CaloProjHits
Definition: HWCaloEventDisplay.h:52
Herd::HWCaloEventDisplay::CaloHitsXZ
TEveElementList * CaloHitsXZ
Definition: HWCaloEventDisplay.h:35
Herd::HWCaloEventDisplay::m_EGSMap
std::unordered_map< std::string, TEveGeoShape * > m_EGSMap
Definition: HWCaloEventDisplay.h:40
Herd::HWCaloEventDisplay::m_3Dpalette
std::unique_ptr< VPalette > m_3Dpalette
Definition: HWCaloEventDisplay.h:42
Herd::HWBaseEventDisplay
Definition: HWBaseEventDisplay.h:19
Herd
CssGeoParams.h CssGeoParams class declaration.
Definition: CaloPDCalibrationAlgo.h:22
Herd::RefFrame::View
View
Aliases for the three 2D projection planes.
Definition: RefFrame.h:91
CaloHits
Container for the hits of a single CALO detector.
Herd::HWCaloEventDisplay::CaloProjHit
Definition: HWCaloEventDisplay.h:44
Herd::HWCaloEventDisplay::ImportCaloHits
void ImportCaloHits(const CaloHits &caloHits, const CaloGeoParams &caloParams)
Definition: HWCaloEventDisplay.cpp:81
Herd::CaloGeoParams
Data structure for the Calo geometry parameters.
Definition: CaloGeoParams.h:35
Herd::HWCaloEventDisplay::ProjectHits
CaloProjHits ProjectHits(const CaloHits &hits, const CaloGeoParams &geoParams, RefFrame::Axis dir1, RefFrame::Axis dir2)
Definition: HWCaloEventDisplay.cpp:61
CaloGeoParams.h
CaloHits.h
Herd::HWCaloEventDisplay::GenerateHashTable
void GenerateHashTable(TEveGeoNode *node)
Definition: HWCaloEventDisplay.cpp:214
Herd::RefFrame::Axis
Axis
Aliases for the axes.
Definition: RefFrame.h:34
Herd::HWCaloEventDisplay::SetRenderState
void SetRenderState(bool renderState)
Definition: HWCaloEventDisplay.cpp:54
Herd::HWCaloEventDisplay::CaloProjHit::v
float v
Definition: HWCaloEventDisplay.h:47
Herd::HWCaloEventDisplay::~HWCaloEventDisplay
~HWCaloEventDisplay()=default
HWBaseEventDisplay.h
Herd::HWCaloEventDisplay::CaloProjHit::u
float u
Definition: HWCaloEventDisplay.h:46
Herd::HWCaloEventDisplay::Draw3DHits
void Draw3DHits(const CaloHits &caloHits, const CaloGeoParams &caloParams)
Definition: HWCaloEventDisplay.cpp:167