CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CocoaMaterialElementary.cc
Go to the documentation of this file.
1 // COCOA class implementation file
2 //Id: CocoaMaterialElementary.cc
3 //CAT: Model
4 //
5 // History: v1.0
6 // Pedro Arce
7 #include <map>
8 #include <fstream>
9 #include <cmath> // include floating-point std::abs functions
10 
12 
13 
15  theName(name),
16  theDensity(density),
17  theSymbol(symbol),
18  theA(A),
19  theZ(Z)
20 {
21 }
22 
23 
25 {
26  // GM: Using numeric_limits<float>::epsilon() might be better instead of a
27  // magic number 'kTolerance'. Not changing this to not break code
28  // potentially relying on this number.
29  const float kTolerance = 1.E-9;
30  return ( std::abs(mate.getDensity() - theDensity) < kTolerance
31  && mate.getSymbol() == theSymbol
32  && std::abs(mate.getA() - theA) < kTolerance
33  && mate.getZ() == theZ );
34 }
const double Z[kNumberCalorimeter]
T theZ
int ALIint
Definition: CocoaGlobals.h:15
CocoaMaterialElementary(ALIstring name, float density, ALIstring symbol, float A, ALIint Z)
bool ALIbool
Definition: CocoaGlobals.h:19
ALIbool operator==(const CocoaMaterialElementary &mate) const
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
std::string ALIstring
Definition: CocoaGlobals.h:9