7 #include "CLHEP/Units/GlobalSystemOfUnits.h" 8 #include "CLHEP/Units/SystemOfUnits.h" 30 std::cout <<
"WARNING - DDDividedConsRho, rOutMinusZ = 0. " 32 <<
" Width is calculated as that of rOutMinusZ !" 75 + std::to_string(copyNo),
90 double pRMin2 = msol.rInPlusZ()
92 double pRMax2 = msol.rInPlusZ()
94 double pDz = msol.zhalf();
96 double pSPhi = msol.phiFrom();
97 double pDPhi = msol.deltaPhi();
100 , pRMin2, pRMax2, pSPhi, pDPhi);
157 myddrot =
DDrot(ddrotname, rotMat);
178 if (!ddcons.isDefined().second)
181 double pRMax1 = msol.rOutMinusZ();
182 double pRMin2 = msol.rInPlusZ();
183 double pRMax2 = msol.rOutPlusZ();
184 double pDz = msol.zhalf();
187 double pSPhi =
div_.
offset() + msol.phiFrom();
190 , pRMin2, pRMax2, pSPhi, pDPhi);
224 return 2*msol.
zhalf();
242 translation.SetZ(posi);
256 double mHalfLength = msol.
zhalf();
257 double aRInner = (msol.rInPlusZ()
258 - msol.rInMinusZ()) / (2*mHalfLength);
259 double bRInner = (msol.rInPlusZ()
260 + msol.rInMinusZ()) / 2;
261 double aROuter = (msol.rOutPlusZ()
262 - msol.rOutMinusZ()) / (2*mHalfLength);
263 double bROuter = (msol.rOutPlusZ()
264 + msol.rOutMinusZ()) / 2;
269 double pSPhi = msol.phiFrom();
270 double pDPhi = msol.deltaPhi();
274 , aRInner * xMinusZ + bRInner
275 , aROuter * xMinusZ + bROuter
276 , aRInner * xPlusZ + bRInner
277 , aROuter * xPlusZ + bROuter
virtual double getMaxParameter() const override
virtual DDRotation makeDDRotation(const int copyNo) const override
virtual DDRotation makeDDRotation(const int copyNo) const override
DDMaterial is used to define and access material information.
DDDividedConsZ(const DDDivision &div, DDCompactView *cpv)
static DDSolid cons(const DDName &name, double zhalf, double rInMinusZ, double rOutMinusZ, double rInPlusZ, double rOutPlusZ, double phiFrom, double deltaPhi)
int calculateNDiv(double motherDim, double width, double offset) const
virtual DDTranslation makeDDTranslation(const int copyNo) const override
const std::string & ns() const
Returns the namespace.
DDName is used to identify DDD entities uniquely.
virtual DDRotation makeDDRotation(const int copyNo) const override
double rOutMinusZ(void) const
double calculateWidth(double motherDim, int nDiv, double offset) const
virtual DDLogicalPart makeDDLogicalPart(const int copyNo) const override
const DDSolid & solid(void) const
Returns a reference object of the solid being the shape of this LogicalPart.
virtual DDLogicalPart makeDDLogicalPart(const int copyNo) const override
type of data representation of DDCompactView
A DDSolid represents the shape of a part.
virtual void checkParametersValidity(void)
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Represents a uniquely identifyable rotation matrix.
virtual double getMaxParameter() const override
DivisionType divisionType_
DDDividedConsRho(const DDDivision &div, DDCompactView *cpv)
double rInMinusZ(void) const
A DDLogicalPart aggregates information concerning material, solid and sensitveness ...
virtual void setType(const std::string &type)
virtual DDLogicalPart makeDDLogicalPart(const int copyNo) const override
virtual DDTranslation makeDDTranslation(const int copyNo) const override
double deltaPhi(void) const
DDDividedConsPhi(const DDDivision &div, DDCompactView *cpv)
double rInPlusZ(void) const
const DDLogicalPart & parent() const
virtual DDTranslation makeDDTranslation(const int copyNo) const override
virtual double getMaxParameter() const override
ROOT::Math::Rotation3D DDRotationMatrix
A DDRotationMatrix is currently implemented with a ROOT Rotation3D.
const std::string & name() const
Returns the name.
const DDMaterial & material(void) const
Returns a reference object of the material this LogicalPart is made of.
DDRotationMatrix * changeRotMatrix(double rotZ=0.) const