76 std::vector<DDName> logs;
85 std::vector<double> pconZ, pconRmin, pconRmax;
90 pconZ.emplace_back(z);
91 pconRmin.emplace_back(r);
92 pconRmax.emplace_back(
rMax);
95 pconZ.emplace_back(z);
96 pconRmin.emplace_back(r);
97 pconRmax.emplace_back(
rMax);
99 pconZ.emplace_back(z);
100 pconRmin.emplace_back(r);
101 pconRmax.emplace_back(
rMax);
103 pconZ.emplace_back(z);
104 pconRmin.emplace_back(r);
105 pconRmax.emplace_back(
rMax);
109 pconZ.emplace_back(z);
110 pconRmin.emplace_back(r);
111 pconRmax.emplace_back(
rMax);
118 LogDebug(
"TIDGeom") <<
"DDTIDAxialCableAlgo test: " 120 <<
matIn <<
" from " << -0.5*
width/CLHEP::deg <<
" to " 121 << 0.5*
width/CLHEP::deg <<
" and with " << pconZ.size()
123 for (
int i = 0;
i <(
int)(pconZ.size());
i++)
124 LogDebug(
"TIDGeom") <<
"\t[" <<
i <<
"]\tZ = " << pconZ[
i]
125 <<
"\tRmin = "<< pconRmin[
i] <<
"\tRmax = " 135 std::vector<double> pconZ, pconRmin, pconRmax;
138 LogDebug(
"TIDGeom") <<
"DDTIDAxialCableAlgo test: Thk " << thk
139 <<
" Total " << thktot <<
" rMax " <<
rMax 140 <<
" rTop " <<
rTop <<
" dR " << r <<
" z " <<
z;
141 pconZ.emplace_back(z);
142 pconRmin.emplace_back(
rMax);
143 pconRmax.emplace_back(
rMax);
145 pconZ.emplace_back(z);
146 pconRmin.emplace_back(
rMax);
147 pconRmax.emplace_back(
rTop);
148 pconZ.emplace_back(
zBend);
149 pconRmin.emplace_back(
rMax);
150 pconRmax.emplace_back(
rTop);
157 LogDebug(
"TIDGeom") <<
"DDTIDAxialCableAlgo test: " 159 <<
matIn <<
" from " << -0.5*
width/CLHEP::deg <<
" to " 160 << 0.5*
width/CLHEP::deg <<
" and with " << pconZ.size()
162 for (
int i = 0;
i < (
int)(pconZ.size());
i++)
163 LogDebug(
"TIDGeom") <<
"\t[" <<
i <<
"]\tZ = " << pconZ[
i]
164 <<
"\tRmin = "<< pconRmin[
i] <<
"\tRmax = " 176 LogDebug(
"TIDGeom") <<
"DDTIDAxialCableAlgo test: " 178 <<
matOut <<
" from " << -0.5*
width/CLHEP::deg <<
" to " 179 << 0.5*
width/CLHEP::deg <<
" with Rin " << r <<
" Rout " 186 double theta = 90.*CLHEP::deg;
189 double phiy = phix + 90.*CLHEP::deg;
190 double phideg = phix/CLHEP::deg;
197 LogDebug(
"TIDGeom") <<
"DDTIDAxialCableAlgo test: Creating a new " 198 <<
"rotation: " << rotstr <<
" " 199 << theta/CLHEP::deg <<
", " << phix/CLHEP::deg
200 <<
", " << theta/CLHEP::deg <<
", " 201 << phiy/CLHEP::deg <<
", 0, 0";
207 for (
int k=0;
k<(
int)(logs.size());
k++) {
209 if (
k == ((
int)(logs.size())-1))
211 cpv.
position(logs[
k], mother,
i+1, tran, rotation);
212 LogDebug(
"TIDGeom") <<
"DDTIDAxialCableAlgo test " << logs[
k]
213 <<
" number " <<
i+1 <<
" positioned in " 214 << mother <<
" at " << tran <<
" with "
std::vector< double > zposWheel
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)
Geom::Theta< T > theta() const
DDName is used to identify DDD entities uniquely.
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< double > angles
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)
std::vector< double > zposRing
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 = ':'