Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:22:06

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