EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
EicRootSubsystem.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file EicRootSubsystem.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 #ifndef _EICROOT_SUBSYSTEM_
4 #define _EICROOT_SUBSYSTEM_
5 
6 #include <vector>
7 #include <map>
8 
10 
11 class EicRootDetector;
12 class PHCompositeNode;
13 class PHG4Detector;
14 class PHG4SteppingAction;
15 
16 class G4LogicalVolume;
17 class G4VPhysicalVolume;
18 
20 {
21  public:
22  // ctor & dtor;
23  EicRootSubsystem(const std::string& name);
25 
26  // Initialization;
27  int InitRunSubsystem(PHCompositeNode*) override;
28 
29  // Event processing;
30  int process_event(PHCompositeNode*) override;
31 
32  // Accessor (reimplemented)
33  PHG4Detector* GetDetector() const override;
34 
36 
37  // Print info (from SubsysReco);
38  void Print(const std::string& what = "ALL") const override;
39 
40  const std::string &GetG4HitName( void ) const { return m_G4HitName; };
41 
42  // These two methods will be available after inheritance from EicGeoParData;
43  virtual void PlaceG4Volume(G4LogicalVolume *mother, bool check = false,
44  void *pRot = 0, void *tlate = 0) = 0;
45  virtual const std::map<G4VPhysicalVolume*, unsigned> &GetG4SensitiveVolumes( void ) const = 0;
46 
47  protected:
48  // Sets default parameter values;
49  void SetDefaultParameters() override;
50 
51  private:
52  // Detector construction;
54 
55  // G4 hit "name", like G4HIT_VST;
56  std::string m_G4HitName;
57 
58  // Stepping function;
60 };
61 
62 #endif