11 : material_(m), solid_(s), cat_(c), weight_(0), specifics_(0), hasDDValue_(1,
false)
29 if ( ! (s.first && s.second) ) {
31 std::cerr <<
"LogicalPart::addSpecific error pointer 0 "
32 << s.first <<
"," << s.second << std::endl;
36 for(
const auto& it : *s.second ) {
37 unsigned int id = it.first;
46 DCOUT(
'S',
"hasValue_.size()=" <<
hasDDValue_.size() <<
" DDValue_id=" <<
id << std::flush
47 <<
" DDValue_name=" <<
DDValue(
id).
name() << std::flush
55 unsigned int id = v.
id();
64 std::vector<std::pair<const DDPartSelection*, const DDsvalues_type* > >::iterator it =
71 std::vector<const DDsvalues_type*>
result;
81 if (ps.size()==1 && ps[0].selectionType_==
ddanylogp) {
82 result.push_back(it.second);
95 std::vector<const DDsvalues_type *> unmerged;
97 if (unmerged.size()==1) {
98 merged = *(unmerged[0]);
100 else if (unmerged.size()>1) {
101 for(
const auto& it : unmerged ) {
const std::string & name(void) const
the name of the DDValue
std::vector< std::pair< const DDPartSelection *, const DDsvalues_type * > > specifics_
DDMaterial is used to define and access material information.
DDEnums::Category category() const
void removeSpecifics(const std::pair< const DDPartSelection *, const DDsvalues_type * > &)
void addSpecifics(const std::pair< const DDPartSelection *, const DDsvalues_type * > &)
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
A DDSolid represents the shape of a part.
std::vector< bool > hasDDValue_
const DDMaterial & material() 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::...
void stream(std::ostream &)
std::vector< const DDsvalues_type * > specifics() const
bool hasDDValue(const DDValue &) const
const std::vector< std::string > & strings() const
a reference to the std::string-valued values stored in the given instance of DDValue ...
void mergedSpecificsV(DDsvalues_type &res) const
const DDSolid & solid() const
volatile std::atomic< bool > shutdown_flag false
DDsvalues_type mergedSpecifics() const
#define DCOUT(M_v_Y, M_v_S)
void specificsV(std::vector< const DDsvalues_type * > &result) const