8 #include "CLHEP/Units/GlobalSystemOfUnits.h" 9 #include "CLHEP/Units/SystemOfUnits.h" 18 LogDebug(
"DDCompactViewImpl") <<
"Root node data = " << rootnodedata << std::endl;
25 LogDebug(
"DDCompactViewImpl") <<
"In destructor, graph is empty. Root:" <<
root_ << std::endl;
27 LogDebug(
"DDCompactViewImpl") <<
"In destructor, graph is NOT empty. Root:" <<
root_ <<
" graph_.size() = " <<
graph_.
size() << std::endl;
30 for(; erange.first != erange.second; ++(erange.first)) {
37 edm::LogInfo(
"DDCompactViewImpl") << std::endl <<
"DDD transient representation has been destructed." << std::endl << std::endl;
64 double childrenVols=0;
65 double childrenWeights=0;
72 a_vol=
child.solid().volume();
75 <<
"is zero or negative, vol=" << a_vol/m3 <<
"m3" << std::endl;
77 childrenVols += a_vol;
86 <<
" is negative or zero, rho=" << dens/
g*cm3 <<
"g/cm3" << std::endl;
89 double w = (p_vol - childrenVols)*dens + childrenWeights;
90 if ( (fabs(p_vol) - fabs(childrenVols))/fabs(p_vol) > 1.01 ) {
91 edm::LogError(
"DDCompactViewImpl") <<
"DD-WARNING: parent-volume smaller than children, parent=" 92 << part.
ddname() <<
" difference-vol=" 93 << (p_vol - childrenVols)/m3 <<
"m3, this is " 94 << (childrenVols - p_vol)/p_vol <<
"% of the parent-vol." << std::endl;
void position(const DDLogicalPart &self, const DDLogicalPart &parent, int copyno, const DDTranslation &trans, const DDRotation &rot, const DDDivision *div)
Relative position of a child-volume inside a parent-volume.
edge_range edges(index_type nodeIndex)
void addEdge(const N &from, const N &to, const E &edge)
const DDSolid & solid(void) const
Returns a reference object of the solid being the shape of this LogicalPart.
double & weight(void)
Weight of the LogicalPart viewed as a component, if cached, else -1.
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
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Represents a uniquely identifyable rotation matrix.
std::pair< edge_iterator, edge_iterator > edge_range
math::GraphWalker< DDLogicalPart, DDPosData * > walker() const
const E & edgeData(index_type i) const
A DDLogicalPart aggregates information concerning material, solid and sensitveness ...
void swap(Graph< N, E > &)
result_type nextSibling()
double density() const
returns the density
auto size() const -> adj_list::size_type
void swap(DDCompactViewImpl &)
static const char root_[]
double weight(const DDLogicalPart &) const
value_type current() const
const DDMaterial & material(void) const
Returns a reference object of the material this LogicalPart is made of.
double volume(void) const
Returns the volume of the given solid (does not work with boolean soids !)