57 msol = (
G4Trd*)(mConstituentSolid);
102 G4cout <<
" G4ParameterisationTrdX - ## divisions " <<
fnDiv <<
" = "
147 std::ostringstream message;
148 message <<
"Only axes along X are allowed ! Axis: " <<
faxis;
149 G4Exception(
"G4ParameterisationTrdX::ComputeTransformation()",
156 G4cout << std::setprecision(8)
157 <<
" G4ParameterisationTrdX::ComputeTransformation() "
159 <<
" Position: " << origin <<
" - Axis: " <<
faxis <<
G4endl;
183 G4cout <<
" G4ParameterisationTrdX::ComputeDimensions():"
203 G4double xChangeRatio = (pDx2-pDx1) / (pDx2+pDx1);
210 G4double cxy1 = -pDx1+fOffset1 + (copyNo+0.5)*fWid1;
211 G4double cxy2 = -pDx2+fOffset2 + (copyNo+0.5)*fWid2;
212 G4double alp = std::atan( (cxy2-cxy1)/(pDz*2.) );
214 pDx1 =
fwidth/2. - fWidChange/2.;
215 pDx2 =
fwidth/2. + fWidChange/2.;
227 pDx2 -
fhgap * pDx2/pDx1,
233 G4cout <<
" G4ParameterisationTrdX::ComputeDimensions():"
266 G4cout <<
" G4ParameterisationTrdY no divisions " <<
fnDiv
267 <<
" = " << nDiv <<
G4endl
304 std::ostringstream message;
305 message <<
"Only axes along Y are allowed ! Axis: " <<
faxis;
306 G4Exception(
"G4ParameterisationTrdY::ComputeTransformation()",
313 G4cout << std::setprecision(8)
314 <<
" G4ParameterisationTrdY::ComputeTransformation " << copyNo
315 <<
" pos " << origin <<
" rot mat " <<
" axis " <<
faxis <<
G4endl;
342 G4cout <<
" G4ParameterisationTrdY::ComputeDimensions():" <<
G4endl;
361 G4double yChangeRatio = (pDy2-pDy1) / (pDy2+pDy1);
368 G4double cyx1 = -pDy1+fOffset1 + (copyNo+0.5)*fWid1;
369 G4double cyx2 = -pDy2+fOffset2 + (copyNo+0.5)*fWid2;
370 G4double alp = std::atan( (cyx2-cyx1)/(pDz*2.) );
372 pDy1 =
fwidth/2. - fWidChange/2.;
373 pDy2 =
fwidth/2. + fWidChange/2.;
385 pDx2 -
fhgap * pDx2/pDx1,
391 G4cout <<
" G4ParameterisationTrdY::ComputeDimensions():"
423 G4cout <<
" G4ParameterisationTrdZ no divisions " <<
fnDiv
424 <<
" = " << nDiv <<
G4endl
460 std::ostringstream message;
461 message <<
"Only axes along Z are allowed ! Axis: " <<
faxis;
462 G4Exception(
"G4ParameterisationTrdZ::ComputeTransformation()",
469 G4cout << std::setprecision(8) <<
" G4ParameterisationTrdZ: "
471 <<
" Position: " << origin <<
" - Offset: " <<
foffset
505 G4cout <<
" G4ParameterisationTrdZ::ComputeDimensions()"
506 <<
" - Mother TRD " <<
G4endl;
508 G4cout <<
" - Parameterised TRD: "
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
G4GLOB_DLL std::ostream G4cout
void ComputeTransformation(const G4int copyNo, G4VPhysicalVolume *physVol) const
void ComputeDimensions(G4Trd &trd, const G4int copyNo, const G4VPhysicalVolume *pv) const
G4ParameterisationTrdX(EAxis axis, G4int nCopies, G4double width, G4double offset, G4VSolid *motherSolid, DivisionType divType)
~G4ParameterisationTrdX()
G4double GetMaxParameter() const
G4ParameterisationTrdY(EAxis axis, G4int nCopies, G4double width, G4double offset, G4VSolid *motherSolid, DivisionType divType)
~G4ParameterisationTrdY()
G4double GetMaxParameter() const
void ComputeDimensions(G4Trd &trd, const G4int copyNo, const G4VPhysicalVolume *pv) const
void ComputeTransformation(const G4int copyNo, G4VPhysicalVolume *physVol) const
void ComputeTransformation(const G4int copyNo, G4VPhysicalVolume *physVol) const
void ComputeDimensions(G4Trd &trd, const G4int copyNo, const G4VPhysicalVolume *pv) const
~G4ParameterisationTrdZ()
G4double GetMaxParameter() const
G4ParameterisationTrdZ(EAxis axis, G4int nCopies, G4double width, G4double offset, G4VSolid *motherSolid, DivisionType divType)
void SetAllParameters(G4double pDz, G4double pTheta, G4double pPhi, G4double pDy1, G4double pDx1, G4double pDx2, G4double pAlp1, G4double pDy2, G4double pDx3, G4double pDx4, G4double pAlp2)
void SetAllParameters(G4double pdx1, G4double pdx2, G4double pdy1, G4double pdy2, G4double pdz)
G4double GetXHalfLength2() const
G4double GetYHalfLength2() const
G4double GetXHalfLength1() const
G4double GetYHalfLength1() const
G4double GetZHalfLength() const
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
G4VParameterisationTrd(EAxis axis, G4int nCopies, G4double offset, G4double step, G4VSolid *msolid, DivisionType divType)
virtual ~G4VParameterisationTrd()
void SetTranslation(const G4ThreeVector &v)
virtual G4GeometryType GetEntityType() const =0