52 auto msol = (
G4Para*)(msolid);
56 G4VSolid* mConstituentSolid
57 = ((G4ReflectedSolid*)msolid)->GetConstituentMovedSolid();
58 msol = (G4Para*)(mConstituentSolid);
63 = new G4Para(msol->GetName(),
64 msol->GetXHalfLength(),
65 msol->GetYHalfLength(),
66 msol->GetZHalfLength(),
67 std::atan(msol->GetTanAlpha()),
68 pi - msol->GetSymAxis().theta(),
69 msol->GetSymAxis().phi());
72 fmotherSolid = newSolid;
73 fReflectedSolid = true;
104 G4cout <<
" G4ParameterisationParaX - # divisions " <<
fnDiv
105 <<
" = " << nDiv <<
G4endl
116 return 2*msol->GetXHalfLength();
128 G4double mdx = msol->GetXHalfLength( );
138 G4cout << std::setprecision(8) <<
" G4ParameterisationParaX "
140 <<
" Position: " << origin <<
" - Axis: " <<
faxis <<
G4endl;
159 G4double pDy = msol->GetYHalfLength();
160 G4double pDz = msol->GetZHalfLength();
161 G4double pAlpha = std::atan(msol->GetTanAlpha());
162 G4double pTheta = msol->GetSymAxis().theta();
163 G4double pPhi = msol->GetSymAxis().phi();
170 G4cout <<
" G4ParameterisationParaX::ComputeDimensions()"
171 <<
" - Mother PARA " <<
G4endl;
202 G4cout <<
" G4ParameterisationParaY - # divisions " <<
fnDiv
203 <<
" = " << nDiv <<
G4endl
217 return 2*msol->GetYHalfLength();
226 G4double mdy = msol->GetYHalfLength( );
231 origin.
setY( posiY );
232 G4double posiX = posiY * msol->GetTanAlpha();
233 origin.
setX( posiX );
238 G4cout << std::setprecision(8) <<
" G4ParameterisationParaY "
240 <<
" Position: " << origin <<
" - Axis: " <<
faxis <<
G4endl;
258 G4double pDx = msol->GetXHalfLength();
260 G4double pDz = msol->GetZHalfLength();
261 G4double pAlpha = std::atan(msol->GetTanAlpha());
262 G4double pTheta = msol->GetSymAxis().theta();
263 G4double pPhi = msol->GetSymAxis().phi();
270 G4cout <<
" G4ParameterisationParaY::ComputeDimensions()"
271 <<
" - Mother PARA " <<
G4endl;
302 G4cout <<
" G4ParameterisationParaZ - # divisions " <<
fnDiv
303 <<
" = " << nDiv <<
G4endl
317 return 2*msol->GetZHalfLength();
326 G4double mdz = msol->GetZHalfLength( );
336 G4cout << std::setprecision(8) <<
" G4ParameterisationParaZ "
338 <<
" Position: " << origin <<
" - Axis: " <<
faxis <<
G4endl;
356 G4double pDx = msol->GetXHalfLength();
357 G4double pDy = msol->GetYHalfLength();
359 G4double pAlpha = std::atan(msol->GetTanAlpha());
360 G4double pTheta = msol->GetSymAxis().theta();
361 G4double pPhi = msol->GetSymAxis().phi();
368 G4cout <<
" G4ParameterisationParaZ::ComputeDimensions()"
369 <<
" - Mother PARA " <<
G4endl;
G4ThreadLocal T * G4GeomSplitter< T >::offset
CLHEP::Hep3Vector G4ThreeVector
G4GLOB_DLL std::ostream G4cout
void SetAllParameters(G4double pDx, G4double pDy, G4double pDz, G4double pAlpha, G4double pTheta, G4double pPhi)
G4double GetMaxParameter() const override
G4ParameterisationParaX(EAxis axis, G4int nCopies, G4double offset, G4double step, G4VSolid *msolid, DivisionType divType)
void ComputeTransformation(const G4int copyNo, G4VPhysicalVolume *physVol) const override
void ComputeDimensions(G4Para ¶, const G4int copyNo, const G4VPhysicalVolume *pv) const override
~G4ParameterisationParaX() override
~G4ParameterisationParaY() override
void ComputeDimensions(G4Para ¶, const G4int copyNo, const G4VPhysicalVolume *pv) const override
G4double GetMaxParameter() const override
G4ParameterisationParaY(EAxis axis, G4int nCopies, G4double offset, G4double step, G4VSolid *msolid, DivisionType divType)
void ComputeTransformation(const G4int copyNo, G4VPhysicalVolume *physVol) const override
void ComputeDimensions(G4Para ¶, const G4int copyNo, const G4VPhysicalVolume *pv) const override
~G4ParameterisationParaZ() override
void ComputeTransformation(const G4int copyNo, G4VPhysicalVolume *physVol) const override
G4double GetMaxParameter() const override
G4ParameterisationParaZ(EAxis axis, G4int nCopies, G4double offset, G4double step, G4VSolid *msolid, DivisionType divType)
virtual void CheckParametersValidity()
void SetType(const G4String &type)
G4double CalculateWidth(G4double motherDim, G4int nDiv, G4double offset) const
G4int CalculateNDiv(G4double motherDim, G4double width, G4double offset) const
static const G4int verbose
G4VDivisionParameterisation(EAxis axis, G4int nDiv, G4double width, G4double offset, DivisionType divType, G4VSolid *motherSolid=nullptr)
~G4VParameterisationPara() override
G4VParameterisationPara(EAxis axis, G4int nCopies, G4double offset, G4double step, G4VSolid *msolid, DivisionType divType)
void SetTranslation(const G4ThreeVector &v)
virtual G4GeometryType GetEntityType() const =0