9 namespace std{}
using namespace std;
20 LogDebug(
"HCalGeom") <<
"DDHCalForwardAlgo info: Creating an instance";
32 cellMat = sArgs[
"CellMaterial"];
43 LogDebug(
"HCalGeom") <<
"DDHCalForwardAlgo debug: Cell material " <<
cellMat 47 <<
" Cell positioning done for " 48 <<
number.size() <<
" times";
49 for (
unsigned int i = 0;
i <
number.size();
i++)
50 LogDebug(
"HCalGeom") <<
"\t" <<
i <<
" Number of children " <<
size[
i]
51 <<
" occurence " <<
number[
i] <<
" first child index " 56 LogDebug(
"HCalGeom") <<
"DDHCalForwardAlgo debug: Parent " << parentName
62 LogDebug(
"HCalGeom") <<
"==>> Constructing DDHCalForwardAlgo...";
68 for (
unsigned int i=0;
i<
number.size();
i++) {
71 for (
int j=0; j<
number[
i]; j++) {
73 string name = parentName.
name() + std::to_string(box);
76 LogDebug(
"HCalGeom") <<
"DDHCalForwardAlgo test: " 88 LogDebug(
"HCalGeom") <<
"DDHCalForwardAlgo test: " << solid.
ddname()
89 <<
" number " << box <<
" positioned in " 90 << parentName <<
" at " << r0 <<
" with " <<
rot;
94 double xpos = -dx +
cellDx;
98 for (
int k=0;
k<size[
i];
k++) {
101 LogDebug(
"HCalGeom") <<
"DDHCalForwardAlgo test: " << child
102 <<
" number " <<
k+1 <<
" positioned in " 103 << solid.
ddname() <<
" at " << r1 <<
" with " 109 LogDebug(
"HCalGeom") <<
"<<== End of DDHCalForwardAlgo construction ...";
DDMaterial is used to define and access material information.
DDName is used to identify DDD entities uniquely.
static std::string & ns()
Compact representation of the geometrical detector hierarchy.
~DDHCalForwardAlgo() override
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< int > dbl_to_int(const std::vector< double > &vecdbl)
Converts a std::vector of doubles to a std::vector of int.
void initialize(const DDNumericArguments &nArgs, const DDVectorArguments &vArgs, const DDMapArguments &mArgs, const DDStringArguments &sArgs, const DDStringVectorArguments &vsArgs) override
A DDLogicalPart aggregates information concerning material, solid and sensitveness ...
static DDSolid box(const DDName &name, double xHalf, double yHalf, double zHalf)
Creates a box with side length 2*xHalf, 2*yHalf, 2*zHalf.
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 = ':'
std::vector< std::string > childName
void execute(DDCompactView &cpv) override
std::vector< int > number
const std::string & name() const
Returns the name.