117 double dphi = CLHEP::twopi /
number;
124 <<
genMat <<
" from 0 to " << CLHEP::twopi / CLHEP::deg <<
" with Rin " << rtmi <<
" Rout " 125 << rtmx <<
" ZHalf " << 0.5 *
layerDz;
131 string name = idName +
"CoolTube";
133 LogDebug(
"PixelGeom") <<
"DDPixBarLayerUpgradeAlgo test: " << solid.
name() <<
" Tubs made of " <<
tubeMat 134 <<
" from 0 to " << CLHEP::twopi / CLHEP::deg <<
" with Rout " <<
coolRadius <<
" ZHalf " 140 name = idName +
"CoolTubeHalf";
143 <<
" from 0 to " << CLHEP::twopi / CLHEP::deg <<
" with Rout " <<
coolRadius <<
" ZHalf " 149 name = idName +
"Coolant";
151 LogDebug(
"PixelGeom") <<
"DDPixBarLayerUpgradeAlgo test: " << solid.
name() <<
" Tubs made of " <<
tubeMat 153 <<
" ZHalf " << 0.5 *
coolDz;
157 LogDebug(
"PixelGeom") <<
"DDPixBarLayerUpgradeAlgo test: " << cool.name() <<
" number 1 positioned in " 158 << coolTube.name() <<
" at (0,0,0) with no rotation";
161 name = idName +
"CoolantHalf";
165 <<
" ZHalf " << 0.5 *
coolDz;
169 LogDebug(
"PixelGeom") <<
"DDPixBarLayerUpgradeAlgo test: " << cool.name() <<
" number 1 positioned in " 170 << coolTube.name() <<
" at (0,0,0) with no rotation";
174 int copyoffset =
number + 2;
177 double phix, phiy, rrr, rrroffset;
183 if ((
i == 1) || (
i == number / 2 + 1)) {
194 rots = idName + to_string(copy);
196 phix = phi - 90 * CLHEP::deg;
198 phix = phi + 90 * CLHEP::deg;
199 phiy = phix + 90. * CLHEP::deg;
200 LogDebug(
"PixelGeom") <<
"DDPixBarLayerUpgradeAlgo test: Creating a new " 201 <<
"rotation: " << rots <<
"\t90., " << phix / CLHEP::deg <<
", 90.," << phiy / CLHEP::deg
204 cpv.
position(ladderFull, layer, copy, tran, rot);
205 LogDebug(
"PixelGeom") <<
"DDPixBarLayerUpgradeAlgo test: " << ladderFull <<
" number " << copy <<
" positioned in " 206 << layer.name() <<
" at " << tran <<
" with " <<
rot;
209 rots = idName + to_string(
i + 100);
210 phix = phi + 90. * CLHEP::deg;
213 phiy = phix + 90. * CLHEP::deg;
214 LogDebug(
"PixelGeom") <<
"DDPixBarLayerUpgradeAlgo test: Creating a new " 215 <<
"rotation: " << rots <<
"\t90., " << phix / CLHEP::deg <<
", 90.," << phiy / CLHEP::deg
219 cpv.
position(coolTubeHalf, layer,
i + 1, tran, rot);
220 if ((
i == 1) || (
i == number / 2 + 1)) {
231 LogDebug(
"PixelGeom") <<
"DDPixBarLayerUpgradeAlgo test: " << coolTube.name() <<
" number " <<
i + 1
232 <<
" positioned in " << layer.name() <<
" at " << tran <<
" with " <<
rot;
DDMaterial is used to define and access material information.
Sin< T >::type sin(const T &t)
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)
Cos< T >::type cos(const T &t)
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)
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 = ':'
ROOT::Math::Rotation3D DDRotation
const std::string & name() const
Returns the name.