|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #include "G4VGraphicsScene.hh"
6 #include "G4VisExtent.hh"
13 class G4AffineTransform;
17 LWSDBG(10, std::cout << std::setprecision(25));
18 LWSDBG(1, std::cout << TypeStr() <<
" Inside " << MSG_VECTOR(inputP) << std::endl);
20 if(inside_BS == kOutside){
21 LWSDBG(2, std::cout <<
"outside BS" << std::endl);
24 G4ThreeVector
p( inputP );
26 const G4double
d = fabs(
GetCalculator()->DistanceToTheNearestFan(
p, p_fan));
28 LWSDBG(2, std::cout <<
"outside fan d=" <<
d <<
", m_FHTplusT=" <<
m_FHTplusT << std::endl);
32 LWSDBG(2, std::cout <<
"inside fan d=" <<
d <<
", m_FHTminusT=" <<
m_FHTminusT <<
", inside_BS=" <<
inside(inside_BS) << std::endl);
35 LWSDBG(2, std::cout <<
"surface" << std::endl);
41 LWSDBG(1, std::cout << TypeStr() <<
" SurfaceNormal" << MSG_VECTOR(inputP) << std::endl);
43 if(inside_BS != kInside){
44 LWSDBG(2, std::cout <<
"not inside BS" << std::endl);
47 G4ThreeVector
p( inputP );
51 d.rotateZ(inputP.phi() -
p.phi());
52 LWSDBG(4, std::cout <<
"npnf" << MSG_VECTOR(
d) << std::endl);
54 LWSDBG(2, std::cout <<
"sn " << MSG_VECTOR(
p.unit()) << std::endl);
59 const G4AffineTransform &
t, G4double &
p,
69 return G4String(
"LArInnerAbsorberWheel");
72 return G4String(
"LArOuterAbsorberWheel");
75 return G4String(
"LArInnerElecrodWheel");
78 return G4String(
"LArOuterElecrodWheel");
81 return G4String(
"LArInnerAbsorberModule");
84 return G4String(
"LArOuterAbsorberModule");
87 return G4String(
"LArInnerElecrodModule");
90 return G4String(
"LArOuterElecrodModule");
93 return G4String(
"LArInnerGlueWheel");
96 return G4String(
"LArOuterGlueWheel");
99 return G4String(
"LArInnerLeadWheel");
102 return G4String(
"LArOuterLeadWheel");
105 return G4String(
"LArInnerAbsorberCone");
108 return G4String(
"LArInnerElectrodCone");
111 return G4String(
"LArInnerGlueCone");
114 return G4String(
"LArInnerLeadCone");
117 return G4String(
"LArOuterAbsorberFrontCone");
120 return G4String(
"LArOuterElectrodFrontCone");
123 return G4String(
"LArOuterGlueFrontCone");
126 return G4String(
"LArOuterLeadFrontCone");
129 return G4String(
"LArOuterAbsorberBackCone");
132 return G4String(
"LArOuterElectrodBackCone");
135 return G4String(
"LArOuterGlueBackCone");
138 return G4String(
"LArOuterLeadBackCone");
141 G4Exception(
"LArWheelSolid",
"UnknownSolidType", FatalException,
"GetEntityType: Unknown LArWheelType.");
148 scene.AddSolid(*
this);
G4GeometryType GetEntityType() const
G4VisExtent GetExtent() const
const LArWheelCalculator * GetCalculator(void) const
G4bool CalculateExtent(const EAxis, const G4VoxelLimits &, const G4AffineTransform &, G4double &, G4double &) const
std::vector< G4double > m_Zsect
EInside Inside(const G4ThreeVector &) const
G4int m_Zsect_start_search
G4int select_section(const G4double &Z) const
double DistanceToTheNearestFan(CLHEP::Hep3Vector &p, int &out_fan_number) const
Determines the nearest to the input point fan.
CLHEP::Hep3Vector NearestPointOnNeutralFibre(const CLHEP::Hep3Vector &p, int fan_number) const
G4Polyhedron * CreatePolyhedron() const
const LArWheelSolid_t m_Type
void DescribeYourselfTo(G4VGraphicsScene &) const
G4ThreeVector SurfaceNormal(const G4ThreeVector &) const
G4VSolid * m_BoundingShape