Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:17:49

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
0003 #ifndef G4DETECTORS_PHG4INNERHCALSUBSYSTEM_H
0004 #define G4DETECTORS_PHG4INNERHCALSUBSYSTEM_H
0005 
0006 #include "PHG4DetectorSubsystem.h"
0007 
0008 #include <string>
0009 
0010 class PHCompositeNode;
0011 class PHG4Detector;
0012 class PHG4DisplayAction;
0013 class PHG4InnerHcalDetector;
0014 class PHG4SteppingAction;
0015 
0016 class PHG4InnerHcalSubsystem : public PHG4DetectorSubsystem
0017 {
0018  public:
0019   //! constructor
0020   PHG4InnerHcalSubsystem(const std::string& name = "HCALIN", const int layer = 0);
0021 
0022   //! destructor
0023   ~PHG4InnerHcalSubsystem() override;
0024 
0025   /*!
0026   creates the m_Detector object and place it on the node tree, under "DETECTORS" node (or whatever)
0027   reates the stepping action and place it on the node tree, under "ACTIONS" node
0028   creates relevant hit nodes that will be populated by the stepping action and stored in the output DST
0029   */
0030   int InitRunSubsystem(PHCompositeNode*) override;
0031 
0032   //! event processing
0033   /*!
0034   get all relevant nodes from top nodes (namely hit list)
0035   and pass that to the stepping action
0036   */
0037   int process_event(PHCompositeNode*) override;
0038 
0039   //! Print info (from SubsysReco)
0040   void Print(const std::string& what = "ALL") const override;
0041 
0042   //! accessors (reimplemented)
0043   PHG4Detector* GetDetector(void) const override;
0044   PHG4SteppingAction* GetSteppingAction(void) const override { return m_SteppingAction; }
0045   PHG4DisplayAction* GetDisplayAction() const override { return m_DisplayAction; }
0046 
0047   void SetLightCorrection(const double inner_radius, const double inner_corr, const double outer_radius, const double outer_corr);
0048 
0049  private:
0050   void SetDefaultParameters() override;
0051 
0052   //! detector geometry
0053   /*! derives from PHG4Detector */
0054   PHG4InnerHcalDetector* m_Detector = nullptr;
0055 
0056   //! detector "stepping" action, executes after every G4 step
0057   /*! derives from PHG4SteppingAction */
0058   PHG4SteppingAction* m_SteppingAction = nullptr;
0059 
0060   //! display attribute setting
0061   /*! derives from PHG4DisplayAction */
0062   PHG4DisplayAction* m_DisplayAction = nullptr;
0063 };
0064 
0065 #endif  // G4DETECTORS_PHG4INNERHCALSUBSYSTEM_H