18 #include "CLHEP/Units/GlobalSystemOfUnits.h"
29 std::cout <<
"WARNING - DDDividedConsRho, rOutMinusZ = 0. "
31 <<
" Width is calculated as that of rOutMinusZ !"
69 DCOUT_V (
'P',
"DDDividedConsRho::makeDDRotation : " << myddrot);
101 double pRMin2 = msol.rInPlusZ()
103 double pRMax2 = msol.rInPlusZ()
104 +
div_.
offset() + compWidth_Plus * (copyNo+1);
105 double pDz = msol.zhalf();
107 double pSPhi = msol.phiFrom();
108 double pDPhi = msol.deltaPhi();
111 , pRMin2, pRMax2, pSPhi, pDPhi);
114 DCOUT_V(
'P',
" DDDividedConsRho::makeDDLogicalPart() lp:" << ddlp );
179 myddrot =
DDrot(ddrotname, rotMat);
181 DCOUT_V (
'P',
"DDDividedConsPhi::makeDDRotation : " << myddrot);
190 DCOUT_V(
'P',
" DDDividedConsPhi " <<
"\n\t Position: " << translation
205 if (!ddcons.isDefined().second)
208 double pRMax1 = msol.rOutMinusZ();
209 double pRMin2 = msol.rInPlusZ();
210 double pRMax2 = msol.rOutPlusZ();
211 double pDz = msol.zhalf();
214 double pSPhi =
div_.
offset() + msol.phiFrom();
217 , pRMin2, pRMax2, pSPhi, pDPhi);
221 DCOUT_V (
'P',
" DDDividedConsPhi::makeDDLogicalPart() lp:" << ddlp);
259 return 2*msol.
zhalf();
266 DCOUT_V (
'P',
"DDDividedConsZ::makeDDRotation : " << myddrot);
279 translation.SetZ(posi);
294 double mHalfLength = msol.
zhalf();
295 double aRInner = (msol.rInPlusZ()
296 - msol.rInMinusZ()) / (2*mHalfLength);
297 double bRInner = (msol.rInPlusZ()
298 + msol.rInMinusZ()) / 2;
299 double aROuter = (msol.rOutPlusZ()
300 - msol.rOutMinusZ()) / (2*mHalfLength);
301 double bROuter = (msol.rOutPlusZ()
302 + msol.rOutMinusZ()) / 2;
307 double pSPhi = msol.phiFrom();
308 double pDPhi = msol.deltaPhi();
312 , aRInner * xMinusZ + bRInner
313 , aROuter * xMinusZ + bROuter
314 , aRInner * xPlusZ + bRInner
315 , aROuter * xPlusZ + bROuter
321 DCOUT_V(
'P',
" DDDividedConsZ::makeDDLogicalPart() lp:" << ddlp );
virtual DDLogicalPart makeDDLogicalPart(const int copyNo) const
static std::string itostr(int i)
WARNING: abused by other classes in this system: yet another conversion from int to std::string...
DDMaterial is used to define and access material information.
virtual double getMaxParameter() const
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)
virtual ~DDDividedConsPhi()
int calculateNDiv(double motherDim, double width, double offset) const
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
virtual DDTranslation makeDDTranslation(const int copyNo) const
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
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 ~DDDividedConsRho()
virtual DDTranslation makeDDTranslation(const int copyNo) const
DivisionType divisionType_
DDDividedConsRho(const DDDivision &div, DDCompactView *cpv)
virtual double getMaxParameter() const
virtual ~DDDividedConsZ()
double rInMinusZ(void) const
A DDLogicalPart aggregates information concerning material, solid and sensitveness ...
static const std::string name(const DDAxes &s)
virtual void setType(const std::string &type)
virtual DDRotation makeDDRotation(const int copyNo) const
double deltaPhi(void) const
DDDividedConsPhi(const DDDivision &div, DDCompactView *cpv)
#define DCOUT_V(M_v_Y, M_v_S)
virtual DDLogicalPart makeDDLogicalPart(const int copyNo) const
virtual DDRotation makeDDRotation(const int copyNo) const
virtual DDTranslation makeDDTranslation(const int copyNo) const
virtual DDRotation makeDDRotation(const int copyNo) const
double rInPlusZ(void) const
const DDLogicalPart & parent() const
virtual double getMaxParameter() const
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