CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/DetectorDescription/Core/interface/DDSpecifics.h

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 //#include "DetectorDescription/Core/interface/DDExpandedView.h"
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 /*   static void clear(); */
00086 };
00087 
00088 #endif