24 const std::vector<std::string> & partSelections,
29 create( name, std::make_unique<Specific>( partSelections, svalues, doRegex ));
30 std::vector<std::pair<DDLogicalPart,std::pair<const DDPartSelection*, const DDsvalues_type*> > >
v;
31 rep().updateLogicalPart(v);
33 if( it.first.isDefined().second ) {
34 it.first.addSpecifics( it.second );
37 throw cms::Exception(
"DDException") <<
"Definition of LogicalPart missing! name=" 38 << it.first.ddname().fullname();
43 const std::vector<DDPartSelection> &
46 return rep().selection();
52 return rep().specifics();
63 std::pair<bool, DDExpandedView>
73 os << *(defined.first) <<
" ";
78 os <<
"* specific not defined * ";
82 os <<
"* specific not declared * ";
87 std::ostream & operator<<( std::ostream & os, const std::vector<std::string> &
v)
89 for(
const auto& it :
v ) {
90 os << it << std::endl;
def_type isDefined() const
const DDName & name() const
DDName is used to identify DDD entities uniquely.
const DDI::rep_traits< DDName, std::unique_ptr< DDI::Specific > >::reference rep() const
std::pair< bool, DDExpandedView > node() const
Calculates the geometrical history of a fully specified PartSelector.
friend std::ostream & operator<<(std::ostream &, const DDSpecifics &)
const DDsvalues_type & specifics() const
Reference to the user-data attached to all nodes selected by the selections-strings given through sel...
std::pair< const DDName *, bool > def_type
std::vector< std::pair< unsigned int, DDValue > > DDsvalues_type
DDSpecifics()
Creates a uninitialized reference-object (see DDLogicalPart documentation for details on reference ob...
Interface to attach user specific data to nodes in the expanded-view.
const std::vector< DDPartSelection > & selection() const
Gives a reference to the collection of part-selections.
void create(const DDName &name, std::unique_ptr< DDI::Specific > vals)