Go to the documentation of this file.00001 #ifndef DDSpecifics_h
00002 #define DDSpecifics_h
00003
00004
00005 #include <map>
00006 #include <string>
00007 #include <vector>
00008
00009 #include "DetectorDescription/Core/interface/DDName.h"
00010 #include "DetectorDescription/Core/interface/DDBase.h"
00011 #include "DetectorDescription/Core/interface/DDsvalues.h"
00012 #include "DetectorDescription/Core/interface/DDExpandedView.h"
00013
00014
00015
00016 class DDSpecifics;
00017 class DDPartSelection;
00018 class DDNodes;
00019 namespace DDI { class Specific; }
00020
00021 typedef std::vector<std::string> selectors_type;
00022
00023 std::ostream & operator<<(std::ostream &, const std::vector<std::string> &);
00024 std::ostream & operator<<(std::ostream &, const DDSpecifics &);
00025
00031
00032
00040 class DDSpecifics : public DDBase<DDName,DDI::Specific*>
00041 {
00042 friend std::ostream & operator<<( std::ostream &, const DDSpecifics &);
00043
00044 public:
00046 DDSpecifics();
00047
00049
00055 DDSpecifics(const DDName & name);
00056
00058
00066 DDSpecifics(const DDName & name,
00067 const selectors_type & partSelections,
00068 const DDsvalues_type & svalues,
00069 bool doRegex=true);
00070
00071 ~DDSpecifics();
00072
00074 const std::vector<DDPartSelection> & selection() const;
00075
00077 const DDsvalues_type & specifics() const;
00078
00080 bool nodes(DDNodes & nds) const;
00081
00083 std::pair<bool,DDExpandedView> node() const;
00084
00085
00086 };
00087
00088 #endif