/
PHG4CrystalCalorimeterSubsystem.h
71 lines (56 loc) · 2.09 KB
/
PHG4CrystalCalorimeterSubsystem.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
// Tell emacs that this is a C++ source
// -*- C++ -*-.
#ifndef G4DETECTORS_PHG4CRYSTALCALORIMETERSUBSYSTEM_H
#define G4DETECTORS_PHG4CRYSTALCALORIMETERSUBSYSTEM_H
#include <g4detectors/PHG4DetectorSubsystem.h>
#include <string> // for string
class PHCompositeNode;
class PHG4CrystalCalorimeterDetector;
class PHG4Detector;
class PHG4DisplayAction;
class PHG4SteppingAction;
class PHG4CrystalCalorimeterSubsystem : public PHG4DetectorSubsystem
{
public:
/** Constructor
*/
PHG4CrystalCalorimeterSubsystem(const std::string &name = "CRYSTAL_DEFAULT", const int layer = 0);
/** Destructor
*/
virtual ~PHG4CrystalCalorimeterSubsystem();
/**
Creates the detector_ object and place it on the node tree, under "DETECTORS" node (or whatever)
Creates the stepping action and place it on the node tree, under "ACTIONS" node
Creates relevant hit nodes that will be populated by the stepping action and stored in the output DST
*/
int InitRunSubsystem(PHCompositeNode *) override;
/** Event processing
*/
int process_event(PHCompositeNode *) override;
/** Accessors (reimplemented)
*/
PHG4Detector *GetDetector(void) const override;
PHG4SteppingAction *GetSteppingAction() const override { return m_SteppingAction; }
PHG4DisplayAction *GetDisplayAction() const override { return m_DisplayAction; }
/** Set mapping file for calorimeter towers
*/
void SetTowerMappingFile(const std::string &filename);
/** Select projective geometry for calorimeter
*/
void SetProjectiveGeometry(const std::string &filename1, const std::string &filename2);
private:
//! set detector specific parameters and their defaults
/*! called by PHG4DetectorSubsystem */
void SetDefaultParameters() override;
// GeometryConfiguration current_geom_config_;
/** Pointer to the Geant4 implementation of the detector
*/
PHG4CrystalCalorimeterDetector *m_Detector = nullptr;
/** Stepping action
*/
PHG4SteppingAction *m_SteppingAction = nullptr;
//! display attribute setting
/*! derives from PHG4DisplayAction */
PHG4DisplayAction *m_DisplayAction = nullptr;
};
#endif