28 std::cout <<
"WARNING - DDDividedConsRho, rOutMinusZ = 0. " << std::endl
29 <<
" Width is calculated as that of rOutMinusZ !" << std::endl;
69 double pRMin2 = msol.rInPlusZ() +
div_.
offset() + compWidth_Plus * copyNo;
70 double pRMax2 = msol.rInPlusZ() +
div_.
offset() + compWidth_Plus * (copyNo + 1);
71 double pDz = msol.zhalf();
73 double pSPhi = msol.phiFrom();
74 double pDPhi = msol.deltaPhi();
134 if (!
ddcons.isDefined().second) {
136 double pRMax1 = msol.rOutMinusZ();
137 double pRMin2 = msol.rInPlusZ();
138 double pRMax2 = msol.rOutPlusZ();
139 double pDz = msol.zhalf();
142 double pSPhi =
div_.
offset() + msol.phiFrom();
170 return 2 * msol.
zhalf();
183 translation.SetZ(posi);
194 double mHalfLength = msol.
zhalf();
195 double aRInner = (msol.rInPlusZ() - msol.rInMinusZ()) / (2 * mHalfLength);
196 double bRInner = (msol.rInPlusZ() + msol.rInMinusZ()) / 2;
197 double aROuter = (msol.rOutPlusZ() - msol.rOutMinusZ()) / (2 * mHalfLength);
198 double bROuter = (msol.rOutPlusZ() + msol.rOutMinusZ()) / 2;
203 double pSPhi = msol.phiFrom();
204 double pDPhi = msol.deltaPhi();
208 aRInner * xMinusZ + bRInner,
209 aROuter * xMinusZ + bROuter,
210 aRInner * xPlusZ + bRInner,
211 aROuter * xPlusZ + bROuter,
DDRotation makeDDRotation(int copyNo) const override
DDLogicalPart makeDDLogicalPart(int copyNo) const override
double rInPlusZ(void) const
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)
double rOutMinusZ(void) const
DDName is used to identify DDD entities uniquely.
double getMaxParameter() const override
DDLogicalPart makeDDLogicalPart(int copyNo) const override
double getMaxParameter() const override
Compact representation of the geometrical detector hierarchy.
const DDLogicalPart & parent() const
A DDSolid represents the shape of a part.
static std::string to_string(const XMLCh *ch)
virtual void checkParametersValidity(void)
Represents a uniquely identifyable rotation matrix.
DDRotation makeDDRotation(int copyNo) const override
const std::string & name() const
Returns the name.
DivisionType divisionType_
int calculateNDiv(double motherDim, double width, double offset) const
DDLogicalPart makeDDLogicalPart(int copyNo) const override
DDDividedConsRho(const DDDivision &div, DDCompactView *cpv)
double deltaPhi(void) const
A DDLogicalPart aggregates information concerning material, solid and sensitveness ...
DDRotation makeDDRotation(int copyNo) const override
virtual void setType(const std::string &type)
std::unique_ptr< DDRotationMatrix > changeRotMatrix(double rotZ=0.) const
double rInMinusZ(void) const
const DDMaterial & material(void) const
Returns a reference object of the material this LogicalPart is made of.
DDTranslation makeDDTranslation(int copyNo) const override
DDDividedConsPhi(const DDDivision &div, DDCompactView *cpv)
dd4hep::ConeSegment DDCons
DDTranslation makeDDTranslation(int copyNo) const override
DDTranslation makeDDTranslation(int copyNo) const override
const DDSolid & solid(void) const
Returns a reference object of the solid being the shape of this LogicalPart.
double calculateWidth(double motherDim, int nDiv, double offset) const
double getMaxParameter() const override
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
const std::string & ns() const
Returns the namespace.