110 vector<double> pconZ, pconRmin, pconRmax;
115 pconZ.emplace_back(
z);
116 pconRmin.emplace_back(
r);
117 pconRmax.emplace_back(
rMax);
120 pconZ.emplace_back(
z);
121 pconRmin.emplace_back(
r);
122 pconRmax.emplace_back(
rMax);
124 pconZ.emplace_back(
z);
125 pconRmin.emplace_back(
r);
126 pconRmax.emplace_back(
rMax);
128 pconZ.emplace_back(
z);
129 pconRmin.emplace_back(
r);
130 pconRmax.emplace_back(
rMax);
136 pconZ.emplace_back(
z);
137 pconRmin.emplace_back(
r);
138 pconRmax.emplace_back(
rMax);
144 <<
" from " << -0.5 *
width / CLHEP::deg <<
" to " << 0.5 *
width / CLHEP::deg <<
" and with " 145 << pconZ.size() <<
" sections ";
146 for (
int i = 0;
i < (
int)(pconZ.size());
i++)
147 LogDebug(
"TIDGeom") <<
"\t[" <<
i <<
"]\tZ = " << pconZ[
i] <<
"\tRmin = " << pconRmin[
i]
148 <<
"\tRmax = " << pconRmax[
i];
157 vector<double> pconZ, pconRmin, pconRmax;
160 LogDebug(
"TIDGeom") <<
"DDTIDAxialCableAlgo test: Thk " << thk <<
" Total " << thktot <<
" rMax " <<
rMax <<
" rTop " 161 <<
rTop <<
" dR " <<
r <<
" z " <<
z;
162 pconZ.emplace_back(
z);
163 pconRmin.emplace_back(
rMax);
164 pconRmax.emplace_back(
rMax);
166 pconZ.emplace_back(
z);
167 pconRmin.emplace_back(
rMax);
168 pconRmax.emplace_back(
rTop);
169 pconZ.emplace_back(
zBend);
170 pconRmin.emplace_back(
rMax);
171 pconRmax.emplace_back(
rTop);
177 <<
" from " << -0.5 *
width / CLHEP::deg <<
" to " << 0.5 *
width / CLHEP::deg <<
" and with " 178 << pconZ.size() <<
" sections ";
179 for (
int i = 0;
i < (
int)(pconZ.size());
i++)
180 LogDebug(
"TIDGeom") <<
"\t[" <<
i <<
"]\tZ = " << pconZ[
i] <<
"\tRmin = " << pconRmin[
i]
181 <<
"\tRmax = " << pconRmax[
i];
192 <<
" from " << -0.5 *
width / CLHEP::deg <<
" to " << 0.5 *
width / CLHEP::deg <<
" with Rin " 199 double theta = 90. * CLHEP::deg;
202 double phiy = phix + 90. * CLHEP::deg;
203 double phideg = phix / CLHEP::deg;
210 LogDebug(
"TIDGeom") <<
"DDTIDAxialCableAlgo test: Creating a new " 211 <<
"rotation: " << rotstr <<
" " <<
theta / CLHEP::deg <<
", " << phix / CLHEP::deg <<
", " 212 <<
theta / CLHEP::deg <<
", " << phiy / CLHEP::deg <<
", 0, 0";
217 for (
int k = 0;
k < (
int)(logs.size());
k++) {
219 if (
k == ((
int)(logs.size()) - 1))
222 LogDebug(
"TIDGeom") <<
"DDTIDAxialCableAlgo test " << logs[
k] <<
" number " <<
i + 1 <<
" positioned in " 223 << mother <<
" at " << tran <<
" with " <<
rotation;
void position(const DDLogicalPart &self, const DDLogicalPart &parent, const std::string ©no, const DDTranslation &trans, const DDRotation &rot, const DDDivision *div=nullptr)
DDMaterial is used to define and access material information.
static DDSolid polycone(const DDName &name, double startPhi, double deltaPhi, const std::vector< double > &z, const std::vector< double > &rmin, const std::vector< double > &rmax)
Creates a polycone (refere to Geant3 or Geant4 documentation)
DDName is used to identify DDD entities uniquely.
A DDSolid represents the shape of a part.
static std::string to_string(const XMLCh *ch)
Represents a uniquely identifyable rotation matrix.
vector< double > zposRing
U second(std::pair< T, U > const &p)
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)
vector< double > zposWheel
std::pair< std::string, std::string > DDSplit(const std::string &n)
split into (name,namespace), separator = ':'
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation