ATLAS Offline Software
LArWheelSolidDDProxy.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // LArWheelSolidDDProxy
6 // proxy for LArWheelSolid to store in DetectorDescription
7 // Author: D. A. Maximov
8 
9 #ifndef GEO2G4_LARWHEELSOLIDDDPROXY_H
10 #define GEO2G4_LARWHEELSOLIDDDPROXY_H
11 
12 #include "CLHEP/Vector/ThreeVector.h"
13 #include "AthenaKernel/CLASS_DEF.h"
14 
15 class G4VSolid;
16 
18 public:
19 
20  LArWheelSolidDDProxy(G4VSolid* plws);
21  virtual ~LArWheelSolidDDProxy();
22 
23  // Mandatory for custom solid Geant4 functions
24 /* EInside Inside(const G4ThreeVector&) const;
25  G4double DistanceToIn(const G4ThreeVector&,
26  const G4ThreeVector&) const;
27  G4double DistanceToIn(const G4ThreeVector&) const;
28  G4double DistanceToOut(const G4ThreeVector&,
29  const G4ThreeVector&,
30  const G4bool calcNorm = false,
31  G4bool* validNorm = 0,
32  G4ThreeVector* n = 0) const; */
33  int Inside(const CLHEP::Hep3Vector&) const;
34 
35  double DistanceToIn(const CLHEP::Hep3Vector&, const CLHEP::Hep3Vector&) const;
36  double DistanceToIn(const CLHEP::Hep3Vector&) const;
37 
38  double DistanceToOut(const CLHEP::Hep3Vector&, const CLHEP::Hep3Vector&) const;
39 
40  double DistanceToOut(const CLHEP::Hep3Vector&) const;
41  CLHEP::Hep3Vector SurfaceNormal (const CLHEP::Hep3Vector&) const;
42 
43 // G4bool CalculateExtent(const EAxis,
44 // const G4VoxelLimits&,
45 // const G4AffineTransform&,
46 // G4double&,
47 // G4double&) const;
48 
49  CLHEP::Hep3Vector GetPointOnSurface() const;
50  double GetCubicVolume();
51  double GetSurfaceArea();
52 
53  void SetVerbose(int v) const;
54 
55 private:
56 
57  G4VSolid * m_plws;
58 
59 };
60 
61 
62 //using the macro below we can assign an identifier (and a version)
63 //This is required and checked at compile time when you try to record/retrieve
64 CLASS_DEF(LArWheelSolidDDProxy, 900345679 , 1)
65 
66 #endif // GEO2G4_LARWHEELSOLIDDDPROXY_H
LArWheelSolidDDProxy::SetVerbose
void SetVerbose(int v) const
Definition: LArWheelSolidDDProxy.cxx:63
LArWheelSolidDDProxy::LArWheelSolidDDProxy
LArWheelSolidDDProxy(G4VSolid *plws)
Definition: LArWheelSolidDDProxy.cxx:13
LArWheelSolidDDProxy::DistanceToOut
double DistanceToOut(const CLHEP::Hep3Vector &, const CLHEP::Hep3Vector &) const
Definition: LArWheelSolidDDProxy.cxx:31
LArWheelSolidDDProxy::GetPointOnSurface
CLHEP::Hep3Vector GetPointOnSurface() const
Definition: LArWheelSolidDDProxy.cxx:43
LArWheelSolidDDProxy::SurfaceNormal
CLHEP::Hep3Vector SurfaceNormal(const CLHEP::Hep3Vector &) const
Definition: LArWheelSolidDDProxy.cxx:39
LArWheelSolidDDProxy
Definition: LArWheelSolidDDProxy.h:17
LArWheelSolidDDProxy::DistanceToIn
double DistanceToIn(const CLHEP::Hep3Vector &, const CLHEP::Hep3Vector &) const
Definition: LArWheelSolidDDProxy.cxx:23
LArWheelSolidDDProxy::Inside
int Inside(const CLHEP::Hep3Vector &) const
Definition: LArWheelSolidDDProxy.cxx:19
LArWheelSolidDDProxy::~LArWheelSolidDDProxy
virtual ~LArWheelSolidDDProxy()
Definition: LArWheelSolidDDProxy.cxx:17
python.PyAthena.v
v
Definition: PyAthena.py:157
LArWheelSolidDDProxy::m_plws
G4VSolid * m_plws
Definition: LArWheelSolidDDProxy.h:57
CLASS_DEF
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
Definition: Control/AthenaKernel/AthenaKernel/CLASS_DEF.h:64
LArWheelSolidDDProxy::GetSurfaceArea
double GetSurfaceArea()
Definition: LArWheelSolidDDProxy.cxx:51
LArWheelSolidDDProxy::GetCubicVolume
double GetCubicVolume()
Definition: LArWheelSolidDDProxy.cxx:47
CLASS_DEF.h
macros to associate a CLID to a type