File indexing completed on 2025-08-05 08:17:40
0001
0002
0003 #ifndef G4DETECTORS_BEAMLINEMAGNETSUBSYSTEM_H
0004 #define G4DETECTORS_BEAMLINEMAGNETSUBSYSTEM_H
0005
0006 #include "PHG4DetectorSubsystem.h"
0007
0008 #include <string> // for string
0009
0010 class BeamLineMagnetDetector;
0011 class PHCompositeNode;
0012 class PHG4Detector;
0013 class PHG4DisplayAction;
0014 class PHG4SteppingAction;
0015
0016 class BeamLineMagnetSubsystem : public PHG4DetectorSubsystem
0017 {
0018 public:
0019
0020 BeamLineMagnetSubsystem(const std::string& name = "CYLINDER", const int layer = 0);
0021
0022
0023 ~BeamLineMagnetSubsystem() override;
0024
0025
0026
0027
0028
0029
0030
0031 int InitRunSubsystem(PHCompositeNode*) override;
0032
0033
0034
0035
0036
0037
0038 int process_event(PHCompositeNode*) override;
0039
0040
0041 void Print(const std::string& what = "ALL") const override;
0042
0043
0044 PHG4Detector* GetDetector(void) const override;
0045 PHG4SteppingAction* GetSteppingAction(void) const override { return m_SteppingAction; }
0046 PHG4DisplayAction* GetDisplayAction() const override { return m_DisplayAction; }
0047
0048
0049
0050
0051 bool CanBeMotherSubsystem() const override { return true; }
0052
0053 private:
0054 void SetDefaultParameters() override;
0055
0056
0057
0058 BeamLineMagnetDetector* m_Detector = nullptr;
0059
0060
0061
0062 PHG4SteppingAction* m_SteppingAction = nullptr;
0063
0064
0065
0066 PHG4DisplayAction* m_DisplayAction = nullptr;
0067
0068 std::string m_HitNodeName;
0069 std::string m_AbsorberNodeName;
0070 };
0071
0072 #endif