HGCal Test Beam  03a93d6239a951948e06fb3ef8dae4cbdebfad30
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
TBGeometry.h
Go to the documentation of this file.
1 #ifndef TBGEOMETRY_H
2 #define TBGEOMETRY_H
3 
4 #include <string>
5 #include <vector>
6 #include <map>
7 
8 class TBGeometry
9 {
10 public:
11  struct Element {
12  std::map<std::string, std::string> smap;
13  std::map<std::string, double> dmap;
14  std::map<std::string, int> imap;
15  };
16 
18  TBGeometry(std::string modulename);
19  virtual ~TBGeometry();
20 
21  size_t size()
22  {
23  return _geometry.size();
24  }
25  int model()
26  {
27  return _header.imap["model"];
28  }
29  int version()
30  {
31  return _header.imap["version"];
32  }
33 
34  std::string material(std::string key)
35  {
36  if ( _header.smap.find(key) != _header.smap.end() )
37  return _header.smap[key];
38  else
39  return "";
40  }
41 
42  TBGeometry::Element operator()(std::string, int index = 0);
43 
44 
45 private:
46  std::string _modulename;
47  TBGeometry::Element _world;
48  TBGeometry::Element _header;
49  std::vector<TBGeometry::Element> _geometry;
50  std::map<int, int> _sensitive;
51 };
52 
53 std::ostream& operator<<(std::ostream&, TBGeometry&);
54 
55 #endif
std::string material(std::string key)
Definition: TBGeometry.h:34
int version()
Definition: TBGeometry.h:29
virtual ~TBGeometry()
Definition: TBGeometry.cc:153
std::map< std::string, double > dmap
Definition: TBGeometry.h:13
int model()
Definition: TBGeometry.h:25
std::map< std::string, int > imap
Definition: TBGeometry.h:14
std::ostream & operator<<(std::ostream &, const HGCalTBDetId &id)
Definition: HGCalTBDetId.cc:37
size_t size()
Definition: TBGeometry.h:21
std::map< std::string, std::string > smap
Definition: TBGeometry.h:12
TBGeometry::Element operator()(std::string, int index=0)
Definition: TBGeometry.cc:159