|
|
Go to the documentation of this file.
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,
DDLogicalPart makeDDLogicalPart(int copyNo) const override
double deltaPhi(void) const
DDName is used to identify DDD entities uniquely.
double getMaxParameter() const override
const DDMaterial & material(void) const
Returns a reference object of the material this LogicalPart is made of.
static DDSolid cons(const DDName &name, double zhalf, double rInMinusZ, double rOutMinusZ, double rInPlusZ, double rOutPlusZ, double phiFrom, double deltaPhi)
double rInMinusZ(void) const
double rInPlusZ(void) const
DDRotation makeDDRotation(int copyNo) const override
double getMaxParameter() const override
DDRotation makeDDRotation(int copyNo) const override
DDMaterial is used to define and access material information.
virtual void checkParametersValidity(void)
double rOutMinusZ(void) const
DDDividedConsRho(const DDDivision &div, DDCompactView *cpv)
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
DDLogicalPart makeDDLogicalPart(int copyNo) const override
Compact representation of the geometrical detector hierarchy.
DDLogicalPart makeDDLogicalPart(int copyNo) const override
DDTranslation makeDDTranslation(int copyNo) const override
int calculateNDiv(double motherDim, double width, double offset) const
DDTranslation makeDDTranslation(int copyNo) const override
DDDividedConsZ(const DDDivision &div, DDCompactView *cpv)
std::unique_ptr< DDRotationMatrix > changeRotMatrix(double rotZ=0.) const
A DDLogicalPart aggregates information concerning material, solid and sensitveness ....
DivisionType divisionType_
virtual void setType(const std::string &type)
const std::string & name() const
Returns the name.
DDTranslation makeDDTranslation(int copyNo) const override
DDDividedConsPhi(const DDDivision &div, DDCompactView *cpv)
const std::string & ns() const
Returns the namespace.
A DDSolid represents the shape of a part.
Represents a uniquely identifyable rotation matrix.
DDRotation makeDDRotation(int copyNo) const override
double getMaxParameter() const override
const DDSolid & solid(void) const
Returns a reference object of the solid being the shape of this LogicalPart.
const DDLogicalPart & parent() const
double calculateWidth(double motherDim, int nDiv, double offset) const