EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
EICG4RPSubsystem.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file EICG4RPSubsystem.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 #ifndef EICG4RPSUBSYSTEM_H
4 #define EICG4RPSUBSYSTEM_H
5 
7 
8 class PHCompositeNode;
9 class PHG4Detector;
10 class EICG4RPDetector;
11 class PHG4SteppingAction;
12 
24 {
25  public:
27  EICG4RPSubsystem(const std::string& name = "EICG4RP", const int layer = 0);
28 
30  virtual ~EICG4RPSubsystem() {}
31 
35  int InitRunSubsystem(PHCompositeNode*) override;
36 
38 
42  int process_event(PHCompositeNode*) override;
43 
45  PHG4Detector* GetDetector() const override;
46 
49  void Print(const std::string& what = "ALL") const override;
50 
51  bool CanBeMotherSubsystem() const override { return true; }
52 
53  void SaveAllHits(bool i = true) { m_SaveAllHitsFlag = i; }
54 
55  void SetParametersFromFile( std::string filename );
56  void SetBeamConfig( std::string val ) { m_beamProfile = val; }
57  void SetIonBeamEnergy( double val ) { m_ionE = val; }
58  void SetElectronBeamEnergy( double val ) { m_elecE = val; }
59 
60  protected:
61  // \brief Set default parameter values
62  void SetDefaultParameters() override;
63 
64  private:
66 
68 
70 
72 
73  bool m_SaveAllHitsFlag = false;
74 
75  std::string m_beamProfile;
76  double m_ionE;
77  double m_elecE;
78 };
79 
80 #endif // EICG4RPSUBSYSTEM_H