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";
34 LogDebug(
"TOBGeom") <<
"DDTOBAxCableAlgo debug: Parent " <<
parent().name()
48 LogDebug(
"TOBGeom") <<
"DDTOBAxCableAlgo debug: sectorNumber[" <<
i 51 LogDebug(
"TOBGeom") <<
"DDTOBAxCableAlgo debug: Axial Service Sectors half-length " <<
sectorDz 53 <<
"\tPhi of sectors position:";
54 for (
int i=0;
i<(
int)(sectorNumber.size());
i++)
56 LogDebug(
"TOBGeom") <<
"DDTOBAxCableAlgo debug: List of materials for the sectors/3 parts";
58 LogDebug(
"TOBGeom") <<
"DDTOBAxCableAlgo debug: Sector/3 A";
59 for (
int i=0;
i<(
int)(sectorNumber.size());
i++)
62 LogDebug(
"TOBGeom") <<
"DDTOBAxCableAlgo debug: Sector/3 B";
63 for (
int i=0;
i<(
int)(sectorNumber.size());
i++)
66 LogDebug(
"TOBGeom") <<
"DDTOBAxCableAlgo debug: Sector/3 C";
67 for (
int i=0;
i<(
int)(sectorNumber.size());
i++)
74 LogDebug(
"TOBGeom") <<
"==>> Constructing DDTOBAxCableAlgo...";
82 double dz, rin, rout, startphi, widthphi, deltaphi;
100 rout, startphi, deltaphi);
102 LogDebug(
"TOBGeom") <<
"DDTOBAxCableAlgo test: " 105 << startphi/CLHEP::deg <<
" to " 106 << (startphi+deltaphi)/CLHEP::deg <<
" with Rin " 107 << rin <<
" Rout " << rout <<
" ZHalf " << dz;
116 LogDebug(
"TOBGeom") <<
"DDTOBAxCableAlgo test: " 118 <<
" positioned in " << tubsName
119 <<
" with no translation and no rotation";
123 startphi += deltaphi;
127 rout, startphi, deltaphi);
129 LogDebug(
"TOBGeom") <<
"DDTOBAxCableAlgo test: " 131 <<
sectorMaterial_B[
i] <<
" from " << startphi/CLHEP::deg <<
" to " << (startphi+deltaphi)/CLHEP::deg
132 <<
" with Rin " << rin <<
" Rout " << rout
143 LogDebug(
"TOBGeom") <<
"DDTOBAxCableAlgo test: " 145 <<
" positioned in " << tubsName
146 <<
" with no translation and no rotation";
150 startphi += deltaphi;
154 rout, startphi, deltaphi);
156 LogDebug(
"TOBGeom") <<
"DDTOBAxCableAlgo test: " 159 << startphi/CLHEP::deg <<
" to " 160 << (startphi+deltaphi)/CLHEP::deg <<
" with Rin " 161 << rin <<
" Rout " << rout <<
" ZHalf " << dz;
171 LogDebug(
"TOBGeom") <<
"DDTOBAxCableAlgo test: " 173 <<
" positioned in " << tubsName
174 <<
" with no translation and no rotation";
177 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()
Compact representation of the geometrical detector hierarchy.
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