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;
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
~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