#include <G4ParameterisationPolyhedra.hh>
|
| G4ParameterisationPolyhedraRho (EAxis axis, G4int nCopies, G4double offset, G4double step, G4VSolid *motherSolid, DivisionType divType) |
|
| ~G4ParameterisationPolyhedraRho () override |
|
void | CheckParametersValidity () override |
|
G4double | GetMaxParameter () const override |
|
void | ComputeTransformation (const G4int copyNo, G4VPhysicalVolume *physVol) const override |
|
void | ComputeDimensions (G4Polyhedra &phedra, const G4int copyNo, const G4VPhysicalVolume *physVol) const override |
|
| G4VParameterisationPolyhedra (EAxis axis, G4int nCopies, G4double offset, G4double step, G4VSolid *msolid, DivisionType divType) |
|
| ~G4VParameterisationPolyhedra () override |
|
| G4VDivisionParameterisation (EAxis axis, G4int nDiv, G4double width, G4double offset, DivisionType divType, G4VSolid *motherSolid=nullptr) |
|
| ~G4VDivisionParameterisation () override |
|
G4VSolid * | ComputeSolid (const G4int, G4VPhysicalVolume *) override |
|
const G4String & | GetType () const |
|
EAxis | GetAxis () const |
|
G4int | GetNoDiv () const |
|
G4double | GetWidth () const |
|
G4double | GetOffset () const |
|
G4VSolid * | GetMotherSolid () const |
|
void | SetType (const G4String &type) |
|
G4int | VolumeFirstCopyNo () const |
|
void | SetHalfGap (G4double hg) |
|
G4double | GetHalfGap () const |
|
| G4VPVParameterisation ()=default |
|
virtual | ~G4VPVParameterisation ()=default |
|
virtual G4Material * | ComputeMaterial (const G4int repNo, G4VPhysicalVolume *currentVol, const G4VTouchable *parentTouch=nullptr) |
|
virtual G4bool | IsNested () const |
|
virtual G4VVolumeMaterialScanner * | GetMaterialScanner () |
|
◆ G4ParameterisationPolyhedraRho()
Definition at line 133 of file G4ParameterisationPolyhedra.cc.
138{
139
141 SetType(
"DivisionPolyhedraRho" );
142
145
147 {
149 - original_pars->
Rmin[0], width, offset );
150 }
152 {
154 - original_pars->
Rmin[0], nDiv, offset );
155 }
156
157#ifdef G4DIVDEBUG
159 {
160 G4cout <<
" G4ParameterisationPolyhedraRho - # divisions " <<
fnDiv
161 <<
" = " << nDiv <<
G4endl
164 }
165#endif
166}
G4GLOB_DLL std::ostream G4cout
void CheckParametersValidity() override
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
G4VParameterisationPolyhedra(EAxis axis, G4int nCopies, G4double offset, G4double step, G4VSolid *msolid, DivisionType divType)
◆ ~G4ParameterisationPolyhedraRho()
G4ParameterisationPolyhedraRho::~G4ParameterisationPolyhedraRho |
( |
| ) |
|
|
overridedefault |
◆ CheckParametersValidity()
void G4ParameterisationPolyhedraRho::CheckParametersValidity |
( |
| ) |
|
|
overridevirtual |
Reimplemented from G4VDivisionParameterisation.
Definition at line 172 of file G4ParameterisationPolyhedra.cc.
173{
175
177
179 {
180 std::ostringstream message;
181 message <<
"In solid " << msol->GetName() <<
G4endl
182 << "Division along R will be done with a width "
183 <<
"different for each solid section." <<
G4endl
184 << "WIDTH will not be used !";
185 G4Exception(
"G4ParameterisationPolyhedraRho::CheckParametersValidity()",
187 }
189 {
190 std::ostringstream message;
191 message <<
"In solid " << msol->GetName() <<
G4endl
192 << "Division along R will be done with a width "
193 <<
"different for each solid section." <<
G4endl
194 << "OFFSET will not be used !";
195 G4Exception(
"G4ParameterisationPolyhedraRho::CheckParametersValidity()",
197 }
198}
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
virtual void CheckParametersValidity()
DivisionType fDivisionType
Referenced by G4ParameterisationPolyhedraRho().
◆ ComputeDimensions()
Reimplemented from G4VPVParameterisation.
Definition at line 246 of file G4ParameterisationPolyhedra.cc.
249{
251
255
257 for(
G4int ii = 0; ii < nZplanes; ++ii )
258 {
261 origparam.Rmin[ii] = origparamMother->
Rmin[ii]+
foffset+width*copyNo;
262 origparam.Rmax[ii] = origparamMother->
Rmin[ii]+
foffset+width*(copyNo+1);
263 }
264
267
268#ifdef G4DIVDEBUG
270 {
271 G4cout <<
"G4ParameterisationPolyhedraRho::ComputeDimensions()" <<
G4endl
272 <<
"-- Parametrised phedra copy-number: " << copyNo <<
G4endl;
274 }
275#endif
276}
void SetOriginalParameters(G4PolyhedraHistorical *pars)
◆ ComputeTransformation()
void G4ParameterisationPolyhedraRho::ComputeTransformation |
( |
const G4int | copyNo, |
|
|
G4VPhysicalVolume * | physVol ) const |
|
overridevirtual |
Implements G4VDivisionParameterisation.
Definition at line 210 of file G4ParameterisationPolyhedra.cc.
212{
213
215
216
218
219
220
221#ifdef G4DIVDEBUG
223 {
225 <<
" foffset: " <<
foffset/CLHEP::deg
227 }
228#endif
229
231
232#ifdef G4DIVDEBUG
234 {
235 G4cout << std::setprecision(8) <<
" G4ParameterisationPolyhedraRho "
237 << " Position: " << origin
240 }
241#endif
242}
void ChangeRotMatrix(G4VPhysicalVolume *physVol, G4double rotZ=0.0) const
void SetTranslation(const G4ThreeVector &v)
◆ GetMaxParameter()
G4double G4ParameterisationPolyhedraRho::GetMaxParameter |
( |
| ) |
const |
|
overridevirtual |
The documentation for this class was generated from the following files: