CMS 3D CMS Logo

DDMaterial.h
Go to the documentation of this file.
1 #ifndef DDMaterial_h
2 #define DDMaterial_h
3 
4 #include <iostream>
5 #include <vector>
6 #include <utility>
9 
10 namespace DDI { class Material; }
11 
13 
41 class DDMaterial : public DDBase<DDName,DDI::Material*>
42 {
43  friend std::ostream & operator<<(std::ostream &, const DDMaterial &);
44 
45 public:
46  typedef std::vector<std::pair<DDMaterial,double> > FractionV;
47 
49  DDMaterial();
50 
52  DDMaterial(const DDName & name);
53 
55  DDMaterial(const DDName & name, double z, double a, double d);
56 
58  DDMaterial(const DDName & name, double density);
59 
61  int noOfConstituents() const;
62 
64  FractionV::value_type constituent(int i) const;
65 
67  int addMaterial(const DDMaterial & m, double fm);
68 
70  double a() const;
71 
73  double z() const;
74 
76  double density() const;
77 };
78 
79 std::ostream & operator<<(std::ostream &, const DDMaterial &);
80 
81 #endif
Definition: DDBase.h:10
DDMaterial is used to define and access material information.
Definition: DDMaterial.h:41
DDName is used to identify DDD entities uniquely.
Definition: DDName.h:15
std::vector< std::pair< DDMaterial, double > > FractionV
Definition: DDMaterial.h:46
std::ostream & operator<<(std::ostream &, const DDMaterial &)
Definition: DDMaterial.cc:136
double a
Definition: hdecay.h:121