36 if (it == sv.end())
return false;
60 if (it == sv.end())
return false;
61 if (it->second.isEvaluated() ) {
79 edm::LogWarning(
"DD:Filter") <<
"Attempt to access a DDValue as doubles but DDValue is NOT Evaluated!"
86 const std::vector<const DDsvalues_type *> & specs)
91 std::vector<const DDsvalues_type *>::const_iterator spit = specs.begin();
95 for (; spit != specs.end(); ++spit) {
96 DDsvalues_type::const_iterator it = (**spit).begin();
99 for (; it != (**spit).end(); ++it) {
108 while ( !result && si < it->
second.strings().size()) {
111 switch (crit.
comp_) {
176 const std::vector<const DDsvalues_type *> & specs)
183 std::vector<const DDsvalues_type *>::const_iterator spit = specs.begin();
186 for (; spit != specs.end(); ++spit) {
188 DDsvalues_type::const_iterator it = (**spit).begin();
191 for (; it != (**spit).end(); ++it) {
192 if ( !it->second.isEvaluated() ) {
193 edm::LogWarning(
"DD:Filter") <<
"(nm) Attempt to access a DDValue as doubles but DDValue is NOT Evaluated!"
205 while ( !result && si < it->
second.doubles().size()) {
207 switch (crit.
comp_) {
305 criteria_type::const_iterator it =
criteria_.begin();
306 criteria_type::const_iterator crEnd =
criteria_.end();
307 logops_type::const_iterator logOpIt =
logOps_.begin();
311 std::vector<const DDsvalues_type *> specs;
312 for (; it != crEnd; ++it, ++logOpIt) {
314 if ( ( result &&(*logOpIt)==
OR ) ||
315 ( (!result)&&(*logOpIt)==
AND) )
continue;
325 locres = sfs_compare(*it,sv);
328 locres = sfd_compare(*it,sv);
336 locres = sfs_compare_nm(*it, specs);
339 locres = sfd_compare_nm(*it, specs);
const std::string & name(void) const
the name of the DDValue
bool hasDDValue(const DDValue &) const
const std::vector< double > & doubles() const
a reference to the double-valued values stored in the given instance of DDValue
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
log_op
logical operations to obtain one result from two filter comparisons
unsigned int id(void) const
returns the ID of the DDValue
bool accept_impl(const DDExpandedView &) const
U second(std::pair< T, U > const &p)
void specificsV(std::vector< const DDsvalues_type * > &vc) const
std::vector< std::pair< unsigned int, DDValue > > DDsvalues_type
std::maps an index to a DDValue. The index corresponds to the index assigned to the name of the std::...
A DDLogicalPart aggregates information concerning material, solid and sensitveness ...
const std::vector< std::string > & strings() const
a reference to the std::string-valued values stored in the given instance of DDValue ...
A Filter accepts or rejects a DDExpandedNode based on a user-coded decision rule. ...
void setCriteria(const DDValue &nameVal, comp_op, log_op l=AND, bool asString=true, bool merged=true)
bool accept(const DDExpandedView &) const
true, if the DDExpandedNode fulfills the filter criteria
const DDLogicalPart & logicalPart() const
The logical-part of the current node in the expanded-view.
Provides an exploded view of the detector (tree-view)
void mergedSpecificsV(DDsvalues_type &res) const