16 #include "CLHEP/Units/GlobalPhysicalConstants.h" 17 #include "CLHEP/Units/GlobalSystemOfUnits.h" 21 sectorRin(0),sectorRout(0),sectorDeltaPhi_B(0) {
22 LogDebug(
"TOBGeom") <<
"DDTOBAxCableAlgo info: Creating an instance";
35 LogDebug(
"TOBGeom") <<
"DDTOBAxCableAlgo debug: Parent " << parentName
49 LogDebug(
"TOBGeom") <<
"DDTOBAxCableAlgo debug: sectorNumber[" <<
i 52 LogDebug(
"TOBGeom") <<
"DDTOBAxCableAlgo debug: Axial Service Sectors half-length " <<
sectorDz 54 <<
"\tPhi of sectors position:";
55 for (
int i=0;
i<(
int)(sectorNumber.size());
i++)
57 LogDebug(
"TOBGeom") <<
"DDTOBAxCableAlgo debug: List of materials for the sectors/3 parts";
59 LogDebug(
"TOBGeom") <<
"DDTOBAxCableAlgo debug: Sector/3 A";
60 for (
int i=0;
i<(
int)(sectorNumber.size());
i++)
63 LogDebug(
"TOBGeom") <<
"DDTOBAxCableAlgo debug: Sector/3 B";
64 for (
int i=0;
i<(
int)(sectorNumber.size());
i++)
67 LogDebug(
"TOBGeom") <<
"DDTOBAxCableAlgo debug: Sector/3 C";
68 for (
int i=0;
i<(
int)(sectorNumber.size());
i++)
75 LogDebug(
"TOBGeom") <<
"==>> Constructing DDTOBAxCableAlgo...";
83 double dz, rin, rout, startphi, widthphi, deltaphi;
101 rout, startphi, deltaphi);
103 LogDebug(
"TOBGeom") <<
"DDTOBAxCableAlgo test: " 106 << startphi/CLHEP::deg <<
" to " 107 << (startphi+deltaphi)/CLHEP::deg <<
" with Rin " 108 << rin <<
" Rout " << rout <<
" ZHalf " << dz;
117 LogDebug(
"TOBGeom") <<
"DDTOBAxCableAlgo test: " 119 <<
" positioned in " << tubsName
120 <<
" with no translation and no rotation";
124 startphi += deltaphi;
128 rout, startphi, deltaphi);
130 LogDebug(
"TOBGeom") <<
"DDTOBAxCableAlgo test: " 132 <<
sectorMaterial_B[
i] <<
" from " << startphi/CLHEP::deg <<
" to " << (startphi+deltaphi)/CLHEP::deg
133 <<
" with Rin " << rin <<
" Rout " << rout
144 LogDebug(
"TOBGeom") <<
"DDTOBAxCableAlgo test: " 146 <<
" positioned in " << tubsName
147 <<
" with no translation and no rotation";
151 startphi += deltaphi;
155 rout, startphi, deltaphi);
157 LogDebug(
"TOBGeom") <<
"DDTOBAxCableAlgo test: " 160 << startphi/CLHEP::deg <<
" to " 161 << (startphi+deltaphi)/CLHEP::deg <<
" with Rin " 162 << rin <<
" Rout " << rout <<
" ZHalf " << dz;
172 LogDebug(
"TOBGeom") <<
"DDTOBAxCableAlgo test: " 174 <<
" positioned in " << tubsName
175 <<
" with no translation and no rotation";
178 LogDebug(
"TOBGeom") <<
"<<== End of DDTOBAxCableAlgo construction ...";
void initialize(const DDNumericArguments &nArgs, const DDVectorArguments &vArgs, const DDMapArguments &mArgs, const DDStringArguments &sArgs, const DDStringVectorArguments &vsArgs) override
DDMaterial is used to define and access material information.
std::vector< std::string > sectorMaterial_A
DDName is used to identify DDD entities uniquely.
std::vector< std::string > sectorNumber
static std::string & ns()
type of data representation of DDCompactView
A DDSolid represents the shape of a part.
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Represents a uniquely identifyable rotation matrix.
U second(std::pair< T, U > const &p)
std::vector< std::string > sectorMaterial_C
std::vector< double > sectorStartPhi
A DDLogicalPart aggregates information concerning material, solid and sensitveness ...
static DDSolid tubs(const DDName &name, double zhalf, double rIn, double rOut, double startPhi, double deltaPhi)
~DDTOBAxCableAlgo() override
std::vector< std::string > sectorMaterial_B
void position(const DDLogicalPart &self, const DDLogicalPart &parent, const std::string ©no, const DDTranslation &trans, const DDRotation &rot, const DDDivision *div=0)
std::pair< std::string, std::string > DDSplit(const std::string &n)
split into (name,namespace), separator = ':'
void execute(DDCompactView &cpv) override