10 os <<
"DDD in memory stats:" << std::endl
11 <<
"====================" << std::endl << std::endl;
22 int noLog(0), noPos(0), noSol(0), noMat(0), noRot(0);
26 int noCLog(0), noCSol(0), noCMat(0), noCRot(0);
34 while (exv.
next()) ++noExpNodes;
38 for(; it != g.
end(); ++it) {
40 noEdges += it->size();
45 lpst_type::iterator lpstit = lpst.begin();
46 for(; lpstit != lpst.end(); ++lpstit) {
47 noCLog += lpstit->first.name().size();
53 mast_type::iterator mastit = mast.begin();
54 for(; mastit != mast.end(); ++mastit) {
55 noCMat += mastit->first.name().size();
61 sost_type::iterator sostit = sost.begin();
62 for(; sostit != sost.end(); ++sostit) {
63 noCSol += sostit->first.name().size();
71 rost_type::iterator rostit = rost.begin();
72 for(; rostit != rost.end(); ++rostit) {
73 noCRot += rostit->first.name().size();
78 std::cout <<
"sizeof(void*)=" <<
sizeof(
void*) << std::endl;
82 int store = 4*
sizeof(
void*);
84 int bySol = noSolidP *
sizeof(double) + noSol*store;
85 int byMat = noMat * (5*
sizeof(double) + store);
87 int byNam = noCLog + noCSol + noCMat + noCRot;
89 int byGra = (noEdges + noNodes)*store;
90 int bytes = byRot + bySol + byMat + byPos + byNam + byLog + byGra;
92 double mb = 1024.*1024.;
94 os <<
"noNodes=" << noNodes << std::endl
95 <<
"noEdges=" << noEdges << std::endl
96 <<
"noExNod=" << noExpNodes << std::endl << std::endl;
97 os <<
"noLog=" << noLog << std::endl
98 <<
"noSol=" << noSol <<
" noSolidP=" << noSolidP << std::endl
99 <<
"noMat=" << noMat << std::endl
100 <<
"noRot=" << noRot << std::endl << std::endl;
101 os <<
"noCLog=" << noCLog << std::endl
102 <<
"noCSol=" << noCSol << std::endl
103 <<
"noCMat=" << noCMat << std::endl
104 <<
"noCRot=" << noCRot << std::endl
105 <<
" --------" << std::endl
107 <<
" chars used for naming." << std::endl << std::endl;
108 os <<
"byLog = " << byLog/mb <<
" logicalparts " << std::endl
109 <<
"byNam = " << byNam/mb <<
" string for names " << std::endl
110 <<
"byRot = " << byRot/mb <<
" rotations " << std::endl
111 <<
"bySol = " << bySol/mb <<
" solids " << std::endl
112 <<
"byMat = " << byMat/mb <<
" materials " << std::endl
113 <<
"byPos = " << byPos/mb <<
" posparts " << std::endl
114 <<
"byGra = " << byGra/mb <<
" graph-struct " << std::endl
115 <<
"-----------------------" << std::endl
116 <<
"OVERALL: " << bytes / mb <<
" MByte" << std::endl;
const std::vector< double > & parameters() const
Don't use (only meant to be used by DDbox(), DDtub(), ...)
bool next()
set current node to the next node in the expanded tree
Relative position of a child-volume inside a parent-volume.
void ddstats(std::ostream &os)
DDMaterial is used to define and access material information.
const graph_type & graph() const
Provides read-only access to the data structure of the compact-view.
type of data representation of DDCompactView
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
A DDSolid represents the shape of a part.
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Represents a uniquely identifyable rotation matrix.
static value_type & instance()
A DDLogicalPart aggregates information concerning material, solid and sensitveness ...
adj_list::const_iterator const_adj_iterator
Provides an exploded view of the detector (tree-view)
ROOT::Math::Rotation3D DDRotationMatrix
A DDRotationMatrix is currently implemented with a ROOT Rotation3D.