/home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/geo/include/RAT/WaveguideFactory.hh Source File

Ratpac-two: /home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/geo/include/RAT/WaveguideFactory.hh Source File
Ratpac-two
WaveguideFactory.hh
1 #ifndef __RAT_WaveguideFactory__
2 #define __RAT_WaveguideFactory__
3 
4 #include <G4LogicalVolume.hh>
5 #include <RAT/DB.hh>
6 
7 namespace RAT {
8 
10  public:
11  WaveguideFactory() : fPMTBody(0){};
12  virtual void SetTable(std::string table, std::string index = "") { fTable = DB::Get()->GetLink(table, index); };
13  virtual void SetPMTBodySolid(G4VSolid *pmtBody) { fPMTBody = pmtBody; };
14  virtual G4LogicalVolume *Construct(const std::string &name, G4LogicalVolume *mother, bool invisible = false) = 0;
15  virtual G4ThreeVector GetPlacementOffset() { return G4ThreeVector(0., 0., 0.); };
16  virtual double GetZTop() = 0;
17  virtual double GetRadius() = 0;
18 
19  protected:
20  G4VSolid *fPMTBody;
21  DBLinkPtr fTable;
22 };
23 
24 } // namespace RAT
25 
26 #endif
DBLinkPtr GetLink(std::string tblname, std::string index="")
Definition: DB.cc:200
static DB * Get()
Definition: DB.hh:135
Definition: WaveguideFactory.hh:9
Definition: CCCrossSecMessenger.hh:29