ATLAS Offline Software
Loading...
Searching...
No Matches
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"
14
15class G4VSolid;
16
18public:
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
55private:
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
64CLASS_DEF(LArWheelSolidDDProxy, 900345679 , 1)
65
66#endif // GEO2G4_LARWHEELSOLIDDDPROXY_H
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
double DistanceToIn(const CLHEP::Hep3Vector &, const CLHEP::Hep3Vector &) const
double DistanceToOut(const CLHEP::Hep3Vector &, const CLHEP::Hep3Vector &) const
CLHEP::Hep3Vector SurfaceNormal(const CLHEP::Hep3Vector &) const
LArWheelSolidDDProxy(G4VSolid *plws)
CLHEP::Hep3Vector GetPointOnSurface() const
int Inside(const CLHEP::Hep3Vector &) const