Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-12-17 09:21:31

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
0003 #ifndef G4DETECTORS_PHG4BEAMLINEMAGNETSUBSYSTEM_H
0004 #define G4DETECTORS_PHG4BEAMLINEMAGNETSUBSYSTEM_H
0005 
0006 #include "PHG4DetectorSubsystem.h"
0007 
0008 #include <string>  // for string
0009 
0010 class PHCompositeNode;
0011 class PHG4BeamlineMagnetDetector;
0012 class PHG4Detector;
0013 
0014 class PHG4BeamlineMagnetSubsystem : public PHG4DetectorSubsystem
0015 {
0016  public:
0017   //! constructor
0018   PHG4BeamlineMagnetSubsystem(const std::string &name = "CYLINDER", const int lyr = 0);
0019 
0020   //! destructor
0021   ~PHG4BeamlineMagnetSubsystem() override = default;
0022 
0023   //! init runwise stuff
0024   /*!
0025   creates the detector_ object and place it on the node tree, under "DETECTORS" node (or whatever)
0026   reates the stepping action and place it on the node tree, under "ACTIONS" node
0027   creates relevant hit nodes that will be populated by the stepping action and stored in the output DST
0028   */
0029   int InitRunSubsystem(PHCompositeNode *) override;
0030 
0031   //! event processing
0032   /*!
0033   get all relevant nodes from top nodes (namely hit list)
0034   and pass that to the stepping action
0035   */
0036   int process_event(PHCompositeNode *) override;
0037 
0038   //! Print info (from SubsysReco)
0039   void Print(const std::string &what = "ALL") const override;
0040 
0041   //! accessors (reimplemented)
0042   PHG4Detector *GetDetector() const override;
0043 
0044  private:
0045   void SetDefaultParameters() override;
0046 
0047   //! detector geometry
0048   /*! defives from PHG4Detector */
0049   PHG4BeamlineMagnetDetector *m_Detector {nullptr};
0050 };
0051 
0052 #endif