Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
0003 #ifndef G4DETECTORS_PHG4ENVELOPESUBSYSTEM_H
0004 #define G4DETECTORS_PHG4ENVELOPESUBSYSTEM_H
0005 
0006 #include <g4main/PHG4Subsystem.h>
0007 
0008 #include <Geant4/G4String.hh>
0009 
0010 #include <string>  // for string
0011 
0012 class PHG4Detector;
0013 class PHG4EnvelopeDetector;
0014 class PHG4EnvelopeSteppingAction;
0015 class PHG4SteppingAction;
0016 class PHCompositeNode;
0017 
0018 class PHG4EnvelopeSubsystem : public PHG4Subsystem
0019 {
0020  public:
0021   // Constructor
0022   PHG4EnvelopeSubsystem(const std::string& name = "ENVELOPE_DEFAULT", const int layer = 0);
0023 
0024   // Destructor
0025   ~PHG4EnvelopeSubsystem(void) override
0026   {
0027   }
0028 
0029   /*
0030                         Creates the detector_ object and place it on the node tree, under "DETECTORS" node (or whatever)
0031                         Creates the stepping action and place it on the node tree, under "ACTIONS" node
0032                         Creates relevant hit nodes that will be populated by the stepping action and stored in the output DST
0033                 */
0034 
0035   int Init(PHCompositeNode*) override;
0036 
0037   // Event Processing
0038   int process_event(PHCompositeNode*) override;
0039 
0040   // Accessors (reimplemented)
0041   PHG4Detector* GetDetector(void) const override;
0042   PHG4SteppingAction* GetSteppingAction(void) const override;
0043 
0044  private:
0045   // Pointer to Geant4 implementation of detector
0046   PHG4EnvelopeDetector* detector_;
0047 
0048   // Stepping Action
0049   PHG4EnvelopeSteppingAction* steppingAction_;
0050 
0051   G4String material;
0052   int active;
0053 
0054   std::string detector_type;
0055 };
0056 
0057 #endif