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,
double getMaxParameter() 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
DDTranslation makeDDTranslation(int copyNo) const override
const std::string & ns() const
Returns the namespace.
DDName is used to identify DDD entities uniquely.
double rOutMinusZ(void) const
double calculateWidth(double motherDim, int nDiv, double offset) const
const DDSolid & solid(void) const
Returns a reference object of the solid being the shape of this LogicalPart.
Compact representation of the geometrical detector hierarchy.
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.
double getMaxParameter() const override
DivisionType divisionType_
DDDividedConsRho(const DDDivision &div, DDCompactView *cpv)
DDTranslation makeDDTranslation(int copyNo) const override
double rInMinusZ(void) const
A DDLogicalPart aggregates information concerning material, solid and sensitveness ...
virtual void setType(const std::string &type)
DDTranslation makeDDTranslation(int copyNo) const override
DDLogicalPart makeDDLogicalPart(int copyNo) const override
DDRotation makeDDRotation(int copyNo) const override
double deltaPhi(void) const
DDDividedConsPhi(const DDDivision &div, DDCompactView *cpv)
std::unique_ptr< DDRotationMatrix > changeRotMatrix(double rotZ=0.) const
DDRotation makeDDRotation(int copyNo) const override
DDLogicalPart makeDDLogicalPart(int copyNo) const override
DDLogicalPart makeDDLogicalPart(int copyNo) const override
double rInPlusZ(void) const
const DDLogicalPart & parent() const
DDRotation makeDDRotation(int copyNo) const override
double getMaxParameter() const override
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.