ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHG4EICMvtxSubsystem.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PHG4EICMvtxSubsystem.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 #ifndef G4MVTX_PHG4EICMVTXSUBSYSTEM_H
4 #define G4MVTX_PHG4EICMVTXSUBSYSTEM_H
5 
7 
8 #include <cmath> // for asin
9 #include <string> // for string
10 
11 class PHCompositeNode;
12 class PHG4Detector;
13 class PHG4DisplayAction;
15 class PHG4SteppingAction;
16 
18 {
19  public:
21  PHG4EICMvtxSubsystem(const std::string& name = "PHG4EICMvtxSubsystem", const int _n_layers = 3);
22 
24  ~PHG4EICMvtxSubsystem() override;
25 
27 
33  int InitRunSubsystem(PHCompositeNode*) override;
34 
36 
40  int process_event(PHCompositeNode*) override;
41 
43  PHG4Detector* GetDetector(void) const override;
44  PHG4SteppingAction* GetSteppingAction(void) const override;
45 
46  PHG4DisplayAction* GetDisplayAction() const override { return m_DisplayAction; }
47 
48  private:
49  void SetDefaultParameters() override;
50  static double radii2Turbo(double rMin, double rMid, double rMax, double sensW)
51  {
52  // compute turbo angle from radii and sensor width
53  return std::asin((rMax * rMax - rMin * rMin) / (2 * rMid * sensW));
54  }
56 
58 
60 
62 
64 
66 
67  // These are passed on to the detector class
68  unsigned int n_layers;
69 
70  std::string detector_type;
71 };
72 
73 #endif