|
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 EAxis
a,
const G4VoxelLimits &vl,
60 const G4AffineTransform &
t, G4double &
p,
73 case Absorber: ret =
"LArInnerAbsorberWheel";
break;
74 case Electrode: ret =
"LArInnerElectrodWheel";
break;
75 case Glue: ret =
"LArInnerGlueWheel";
break;
76 case Lead: ret =
"LArInnerLeadWheel";
break;
81 case Absorber: ret =
"LArOuterAbsorberWheel";
break;
82 case Electrode: ret =
"LArOuterElectrodWheel";
break;
83 case Glue: ret =
"LArOuterGlueWheel";
break;
84 case Lead: ret =
"LArOuterLeadWheel";
break;
93 scene.AddSolid(*
this);
void DescribeYourselfTo(G4VGraphicsScene &) const
const LArWheelCalculator * GetCalculator(void) const
G4String TypeStr(void) const
G4Polyhedron * CreatePolyhedron() const
G4VisExtent GetExtent() const
G4ThreeVector SurfaceNormal(const G4ThreeVector &) const
G4VSolid * m_BoundingShape
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
G4bool CalculateExtent(const EAxis, const G4VoxelLimits &, const G4AffineTransform &, G4double &, G4double &) const
EInside Inside(const G4ThreeVector &) const