CMS 3D CMS Logo

DDMaterial.h

Go to the documentation of this file.
00001 #ifndef DDMaterial_h
00002 #define DDMaterial_h
00003 
00004 #include <iostream>
00005 #include <vector>
00006 #include <utility>
00007 #include "DetectorDescription/Core/interface/DDName.h"
00008 #include "DetectorDescription/Core/interface/DDBase.h"
00009 namespace DDI { class Material; }
00010 
00011 class DDMaterial;
00012 
00013 
00014 std::ostream & operator<<(std::ostream &, const DDMaterial &);
00015 
00017 
00045 class DDMaterial : public DDBase<DDName,DDI::Material*>
00046 {
00047   //typedef std::vector< pair<DDMaterial,double> > Fractions;
00048   friend std::ostream & operator<<(std::ostream &, const DDMaterial &);
00049   
00050   
00052   
00053 public:
00054   typedef std::vector<std::pair<DDMaterial,double> > FractionV;
00056   DDMaterial();
00057   
00059   DDMaterial(const DDName & name);
00060 
00062   DDMaterial(const DDName & name, double z, double a, double d);
00063   
00065   DDMaterial(const DDName & name, double density);
00066   
00068   int noOfConstituents() const;
00069   
00071   FractionV::value_type constituent(int i) const; 
00072   
00074   int addMaterial(const DDMaterial & m, double fm); 
00075   
00077   double a() const; 
00078   
00080   double z() const; 
00081   
00083   double density() const;
00084   
00086   static void clear();
00087   
00088 private:
00089   //explicit DDMaterial(DDRedirect<DDMaterialImpl>* p, bool dummy);
00090 };
00091 
00092 #endif

Generated on Tue Jun 9 17:32:02 2009 for CMSSW by  doxygen 1.5.4