LArSoft  v06_85_00
Liquid Argon Software toolkit - http://larsoft.org/
OpDetReadoutGeometry.h
Go to the documentation of this file.
1 //
6 // OpDetReadoutGeometry
7 //
8 // Ben Jones, MIT, 07/16/10
9 //
10 // OpDet's are defined with a particular geometry, and only some part of the OpDet
11 // is sensitive. When several are placed, only the mother volume, vol_OpDet is
12 // replicated. Each constituent volume, including the sensitive volume, only
13 // exists once in the volume store, as a daughter of the mother volume.
14 //
15 // Hence to know which OpDet a photon steps into when it is inside a sensitive
16 // volume, we must define a readout geometry to identify which volumes are
17 // contained within each OpDet.
18 //
19 // This class is heavily based on LArG4ReadoutGeometry by Bill Seligman,
20 // which is very well commented. See that file for further reference.
21 //
22 
23 #include "Geant4/G4PhysicalVolumeStore.hh"
24 #include "Geant4/G4VPhysicalVolume.hh"
25 #include "Geant4/G4VUserParallelWorld.hh"
26 #include "sstream"
27 #include "Geant4/G4Transform3D.hh"
28 
29 
30 #ifndef OpDetReadoutGeometry_h
31 #define OpDetReadoutGeometry_h
32 
33 
34 namespace larg4
35 {
36 
37  class OpDetReadoutGeometry : public G4VUserParallelWorld
38  {
39  public:
40  OpDetReadoutGeometry(G4String OpDetSensitiveName, const G4String name = "OpDetReadoutGeometry");
41  virtual ~OpDetReadoutGeometry();
42 
43  virtual void Construct();
44  private:
45  void FindVolumes(G4VPhysicalVolume *, G4String, std::vector<G4Transform3D>, std::vector<G4LogicalVolume*>&, std::vector<G4Transform3D>&);
46  std::vector<G4LogicalVolume*> fOpDetVolumes;
47  std::vector<G4Transform3D> fOpDetTransformations;
49 
50  };
51 
52 }
53 
54 #endif
void FindVolumes(G4VPhysicalVolume *, G4String, std::vector< G4Transform3D >, std::vector< G4LogicalVolume * > &, std::vector< G4Transform3D > &)
Geant4 interface.
std::vector< G4Transform3D > fOpDetTransformations
std::vector< G4LogicalVolume * > fOpDetVolumes
OpDetReadoutGeometry(G4String OpDetSensitiveName, const G4String name="OpDetReadoutGeometry")