forked from sPHENIX-Collaboration/coresoftware
/
QAG4SimulationIntt.h
75 lines (54 loc) · 1.71 KB
/
QAG4SimulationIntt.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#ifndef QA_QAG4SIMULATIONINTT_H
#define QA_QAG4SIMULATIONINTT_H
#include <trackbase/TrkrDefs.h>
#include <fun4all/SubsysReco.h>
#include <set>
#include <string>
class PHCompositeNode;
class PHG4Hit;
class PHG4HitContainer;
class TrkrClusterContainer;
class TrkrClusterHitAssoc;
class TrkrHitSetContainer;
class TrkrHitTruthAssoc;
struct ActsSurfaceMaps;
struct ActsTrackingGeometry;
/// \class QAG4SimulationIntt
class QAG4SimulationIntt : public SubsysReco
{
public:
/// constructor
QAG4SimulationIntt(const std::string& name = "QAG4SimulationIntt");
int InitRun(PHCompositeNode* topNode) override;
int process_event(PHCompositeNode* topNode) override;
private:
/// common prefix for QA histograms
std::string get_histo_prefix() const;
/// load nodes
int load_nodes(PHCompositeNode*);
/// evaluate clusters
void evaluate_clusters();
// get geant hits associated to a cluster
using G4HitSet = std::set<PHG4Hit*>;
G4HitSet find_g4hits(TrkrDefs::cluskey) const;
/// true if histograms are initialized
bool m_initialized = false;
/// Acts surface maps for surface lookup
ActsSurfaceMaps* m_surfmaps = nullptr;
/// Acts tracking geometry for surface lookup
ActsTrackingGeometry* m_tGeometry = nullptr;
/// cluster map
TrkrClusterContainer* m_cluster_map = nullptr;
/// clusters to hit association
TrkrClusterHitAssoc* m_cluster_hit_map = nullptr;
/// hitsets
TrkrHitSetContainer* m_hitsets = nullptr;
/// hit to g4hit association
TrkrHitTruthAssoc* m_hit_truth_map = nullptr;
/// g4 hits
PHG4HitContainer* m_g4hits_intt = nullptr;
/// list of relevant layers
/* it is filled at Init stage. It should not change for the full run */
std::set<int> m_layers;
};
#endif