#include <DDErrorDetection.h>
Definition at line 111 of file DDErrorDetection.h.
DDErrorDetection::~DDErrorDetection |
( |
| ) |
|
DDErrorDetection::DDErrorDetection |
( |
| ) |
|
|
inlineprivate |
void DDErrorDetection::errors |
( |
| ) |
|
Definition at line 86 of file DDErrorDetection.cc.
References begin, DDBase< N, C >::ddname(), end, DDName::fullname(), g, DDCompactView::graph(), and DDI::Singleton< I >::instance().
88 static std::map<std::string, std::set<DDLogicalPart> > result_;
89 if (!result_.empty())
return result_;
91 const auto &
g = cpv.
graph();
95 for (; it != ed; ++it) {
96 std::set<DDLogicalPart>::const_iterator sit(it->second.begin()), sed(it->second.end());
97 for( ; sit != sed; ++sit) {
99 auto er =
g.edges(lp);
100 if (
g.nodeIndex(lp).second) {
101 result_.insert(make_pair(lp.
ddname().
fullname(), std::set<DDLogicalPart>()));
103 for (; er.first != er.second; ++er.first) {
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
static value_type & instance()
const std::string fullname() const
A DDLogicalPart aggregates information concerning material, solid and sensitveness ...
const Graph & graph() const
Provides read-only access to the data structure of the compact-view.
const std::vector< pair< std::string, DDName > > & DDErrorDetection::ma |
( |
| ) |
|
Definition at line 179 of file DDErrorDetection.cc.
References DDCheckMaterials(), and connectstrParser::o.
181 static std::vector<pair<std::string,DDName> > result_;
182 ofstream
o(
"/dev/null");
184 if (!result_.empty())
return result_;
bool DDCheckMaterials(std::ostream &, std::vector< std::pair< std::string, DDName > > *=0)
Checks all registered materials and sends a report /p os.
Definition at line 151 of file DDErrorDetection.cc.
References mps_fire::i, funct::m, and alignCSCRings::s.
153 static std::map<DDMaterial, std::set<DDLogicalPart> > result_;
154 if (!result_.empty())
return result_;
156 const std::vector<pair<std::string,DDName> > & err_mat =
ma();
157 std::vector<pair<std::string,DDName> >::const_iterator it(err_mat.begin()), ed(err_mat.end());
158 for (; it != ed; ++it) {
159 std::set<DDLogicalPart>
s;
164 DDLogicalPart::iterator<DDLogicalPart> lpit,lped; lped.end();
165 for (; lpit != lped; ++lpit) {
166 if (lpit->isDefined().second) {
167 std::map<DDMaterial, std::set<DDLogicalPart> >::iterator
i = result_.find(lpit->material());
169 if ( i != result_.end() ) {
171 i->second.insert(*lpit);
DDMaterial is used to define and access material information.
const std::vector< std::pair< std::string, DDName > > & ma()
void DDErrorDetection::nix |
( |
| ) |
|
bool DDErrorDetection::noErrorsInTheReport |
( |
const DDCompactView & |
cpv | ) |
|
Definition at line 284 of file DDErrorDetection.cc.
References DDI::Singleton< I >::instance().
const std::map< DDSolid, std::set< DDSolid > > & so()
const std::map< DDMaterial, std::set< DDLogicalPart > > & ma_lp()
static value_type & instance()
const std::map< std::string, std::set< DDLogicalPart > > & lp_cpv(const DDCompactView &cpv)
const std::vector< std::pair< std::string, DDName > > & ma()
const std::map< DDSolid, std::set< DDLogicalPart > > & so_lp()
void DDErrorDetection::report |
( |
const DDCompactView & |
cpv, |
|
|
std::ostream & |
o |
|
) |
| |
Definition at line 239 of file DDErrorDetection.cc.
References gather_cfg::cout, and DDI::Singleton< I >::instance().
242 o << std::endl << std::endl <<
"---> DDD ERROR REPORT <---" << std::endl << std::endl;
243 o <<
"MISSING DEFINITIONS:" << std::endl << std::endl;
244 o <<
"LogicalParts:" << std::endl
246 o <<
"Materials:" << std::endl
248 o <<
"Solids:" << std::endl
250 o <<
"Rotations:" << std::endl
252 o <<
"Specifics:" << std::endl
254 o << std::endl <<
"IMPLICATIONS OF MISSING DEFINITIONS:" << std::endl << std::endl;
256 o <<
"A) LogicalParts that have missing definitions but are used in the geometr. hierarchy (PosParts):" << std::endl
257 <<
" Format: namespace:name: [name of child]*" << std::endl;
260 o <<
"B) Detailed report on Materials:" << std::endl;
261 const std::vector<pair<std::string,DDName> > &
res =
ma();
262 std::vector<pair<std::string,DDName> >::const_iterator it(res.begin()), ed(res.end());
263 for (; it != ed; ++it) {
264 std::cout << it->second <<
": " << it->first << std::endl;
269 o <<
"C) Solids affected by Solids that have missing definitions:" << std::endl;
270 o <<
so() << std::endl;
272 o <<
"D) LogicalParts affected by Materials of B):" << std::endl;
273 o <<
ma_lp() << std::endl;
275 o <<
"E) LogicalParts affected by Solids of C):" << std::endl;
276 o <<
so_lp() << std::endl;
const std::map< DDSolid, std::set< DDSolid > > & so()
const std::map< DDMaterial, std::set< DDLogicalPart > > & ma_lp()
static value_type & instance()
const std::map< std::string, std::set< DDLogicalPart > > & lp_cpv(const DDCompactView &cpv)
const std::vector< std::pair< std::string, DDName > > & ma()
const std::map< DDSolid, std::set< DDLogicalPart > > & so_lp()
Definition at line 56 of file DDErrorDetection.cc.
References gather_cfg::cout, dd_error_scan(), and DDI::Singleton< I >::instance().
58 std::cout <<
"DDErrorDetection::scan(): Scanning for DDD errors ..." << std::flush;
72 std::cout <<
" ... finished." << std::endl;
DDMaterial is used to define and access material information.
A DDSolid represents the shape of a part.
Represents a uniquely identifyable rotation matrix.
static value_type & instance()
const std::map< std::string, std::set< C > > & dd_error_scan(const C &)
A DDLogicalPart aggregates information concerning material, solid and sensitveness ...
Interface to attach user specific data to nodes in the expanded-view.
const std::map< DDSolid, std::set< DDSolid > > & DDErrorDetection::so |
( |
| ) |
|
Definition at line 194 of file DDErrorDetection.cc.
References a, b, gather_cfg::cout, ddintersection, ddsubtraction, ddunion, DDBase< N, C >::isDefined(), mag(), DDSolid::shape(), DDBooleanSolid::solidA(), DDBooleanSolid::solidB(), and w.
196 static std::map<DDSolid, std::set<DDSolid> > result_;
197 if (!result_.empty())
return result_;
204 std::vector<DDSolid> errs;
205 DDSolid::iterator<DDSolid> it, ed; ed.end();
206 for (; it != ed; ++it) {
215 mag.addEdge(
a, ma, 0);
216 mag.addEdge(
b, ma, 0);
220 errs.emplace_back(ma);
224 std::vector<DDSolid>::const_iterator mit(errs.begin()),
226 for (; mit != med; ++mit) {
228 ma_walker_t
w(mag,*mit);
230 result_[*mit].insert(
w.current().first);
def_type isDefined() const
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
A DDSolid represents the shape of a part.
DDSolidShape shape(void) const
The type of the solid.
const std::vector< std::pair< std::string, DDName > > & ma()
Definition at line 112 of file DDErrorDetection.cc.
References mps_fire::i, funct::m, and alignCSCRings::s.
114 static std::map<DDSolid, std::set<DDLogicalPart> > result_;
115 if (!result_.empty())
return result_;
117 const std::map<DDSolid, std::set<DDSolid> > & err_mat =
so();
118 std::map<DDSolid, std::set<DDSolid> >::const_iterator it(err_mat.begin()), ed(err_mat.end());
119 for (; it != ed; ++it) {
120 std::set<DDLogicalPart>
s;
123 std::set<DDSolid>::const_iterator sit(it->second.begin()), sed(it->second.end());
124 for(; sit != sed; ++sit) {
129 DDLogicalPart::iterator<DDLogicalPart> lpit,lped; lped.end();
130 for (; lpit != lped; ++lpit) {
131 if (lpit->isDefined().second) {
132 std::map<DDSolid, std::set<DDLogicalPart> >::iterator
i = result_.find(lpit->solid());
134 if ( i != result_.end() ) {
136 i->second.insert(*lpit);
const std::map< DDSolid, std::set< DDSolid > > & so()
A DDSolid represents the shape of a part.
void DDErrorDetection::warnings |
( |
| ) |
|