31 if (it == sv.end())
return false;
55 if (it == sv.end())
return false;
56 if (it->second.isEvaluated() ) {
74 edm::LogWarning(
"DD:Filter") <<
"Attempt to access a DDValue as doubles but DDValue is NOT Evaluated!"
81 const std::vector<const DDsvalues_type *> & specs)
87 for(
const auto& spit : specs ) {
89 for(
const auto& it : *spit ) {
97 while ( !result && si < it.second.strings().size()) {
159 const std::vector<const DDsvalues_type *> & specs)
165 for(
const auto& spit : specs ) {
167 for(
const auto& it : *spit ) {
168 if ( !it.second.isEvaluated() ) {
169 edm::LogWarning(
"DD:Filter") <<
"(nm) Attempt to access a DDValue as doubles but DDValue is NOT Evaluated!"
179 while ( !result && si < it.second.doubles().size()) {
180 switch (crit.
comp_) {
264 auto logOpIt =
logOps_.begin();
267 std::vector<const DDsvalues_type *> specs;
281 locres = sfs_compare(*it,sv);
284 locres = sfd_compare(*it,sv);
292 locres = sfs_compare_nm(*it, specs);
295 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
DDLogOp
logical operations to obtain one result from two filter comparisons
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
unsigned int id(void) const
returns the ID of the DDValue
bool accept_impl(const DDExpandedView &) const
std::vector< SpecificCriterion > criteria_
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 ...
std::vector< DDLogOp > logOps_
DDCompOp
comparison operators to be used with this filter
A Filter accepts or rejects a DDExpandedNode based on a user-coded decision rule. ...
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 setCriteria(const DDValue &nameVal, DDCompOp, DDLogOp l=DDLogOp::AND, bool asString=true, bool merged=true)
void mergedSpecificsV(DDsvalues_type &res) const