ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
BeamLineMagnetSubsystem.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file BeamLineMagnetSubsystem.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 #ifndef G4DETECTORS_BEAMLINEMAGNETSUBSYSTEM_H
4 #define G4DETECTORS_BEAMLINEMAGNETSUBSYSTEM_H
5 
7 
8 #include <string> // for string
9 
11 class PHCompositeNode;
12 class PHG4Detector;
13 class PHG4DisplayAction;
14 class PHG4SteppingAction;
15 
17 {
18  public:
20  BeamLineMagnetSubsystem(const std::string& name = "CYLINDER", const int layer = 0);
21 
23  ~BeamLineMagnetSubsystem() override;
24 
26 
31  int InitRunSubsystem(PHCompositeNode*) override;
32 
34 
38  int process_event(PHCompositeNode*) override;
39 
41  void Print(const std::string& what = "ALL") const override;
42 
44  PHG4Detector* GetDetector(void) const override;
45  PHG4SteppingAction* GetSteppingAction(void) const override { return m_SteppingAction; }
46  PHG4DisplayAction* GetDisplayAction() const override { return m_DisplayAction; }
47 
48  // this method is used to check if it can be used as mothervolume
49  // Subsystems which can be mothervolume need to implement this
50  // and return true
51  bool CanBeMotherSubsystem() const override { return true; }
52 
53  private:
54  void SetDefaultParameters() override;
55 
57 
59 
61 
63 
65 
67 
68  std::string m_HitNodeName;
69  std::string m_AbsorberNodeName;
70 };
71 
72 #endif // G4DETECTORS_BEAMLINEMAGNETSUBSYSTEM_H