Geant4 Cross Reference |
1 // Copyright (C) 2010, Guy Barrand. All rights 1 // Copyright (C) 2010, Guy Barrand. All rights reserved. 2 // See the file tools.license for terms. 2 // See the file tools.license for terms. 3 3 4 #ifndef tools_histo_h3d 4 #ifndef tools_histo_h3d 5 #define tools_histo_h3d 5 #define tools_histo_h3d 6 6 7 #include "h3" 7 #include "h3" 8 8 9 namespace tools { 9 namespace tools { 10 namespace histo { 10 namespace histo { 11 11 12 class h3d : public h3<double,unsigned int,unsi 12 class h3d : public h3<double,unsigned int,unsigned int,double,double> { 13 typedef h3<double,unsigned int,unsigned int, 13 typedef h3<double,unsigned int,unsigned int,double,double> parent; 14 public: 14 public: 15 static const std::string& s_class() { 15 static const std::string& s_class() { 16 static const std::string s_v("tools::histo 16 static const std::string s_v("tools::histo::h3d"); 17 return s_v; 17 return s_v; 18 } 18 } 19 const std::string& s_cls() const {return s_c 19 const std::string& s_cls() const {return s_class();} 20 public: 20 public: 21 h3d():parent("",10,0,1,10,0,1,10,0,1){} //fo 21 h3d():parent("",10,0,1,10,0,1,10,0,1){} //for I/O when reading. 22 22 23 h3d(const std::string& a_title, 23 h3d(const std::string& a_title, 24 unsigned int aXnumber,double aXmin,doubl 24 unsigned int aXnumber,double aXmin,double aXmax, 25 unsigned int aYnumber,double aYmin,doubl 25 unsigned int aYnumber,double aYmin,double aYmax, 26 unsigned int aZnumber,double aZmin,doubl 26 unsigned int aZnumber,double aZmin,double aZmax) 27 :parent(a_title,aXnumber,aXmin,aXmax, 27 :parent(a_title,aXnumber,aXmin,aXmax, 28 aYnumber,aYmin,aYmax, 28 aYnumber,aYmin,aYmax, 29 aZnumber,aZmin,aZmax) 29 aZnumber,aZmin,aZmax) 30 {} 30 {} 31 31 32 h3d(const std::string& a_title, 32 h3d(const std::string& a_title, 33 const std::vector<double>& a_edges_x, 33 const std::vector<double>& a_edges_x, 34 const std::vector<double>& a_edges_y, 34 const std::vector<double>& a_edges_y, 35 const std::vector<double>& a_edges_z) 35 const std::vector<double>& a_edges_z) 36 :parent(a_title,a_edges_x,a_edges_y,a_edges_ 36 :parent(a_title,a_edges_x,a_edges_y,a_edges_z) 37 {} 37 {} 38 38 39 virtual ~h3d(){} 39 virtual ~h3d(){} 40 public: 40 public: 41 h3d(const h3d& a_from): parent(a_from){} 41 h3d(const h3d& a_from): parent(a_from){} 42 h3d& operator=(const h3d& a_from){ 42 h3d& operator=(const h3d& a_from){ 43 parent::operator=(a_from); 43 parent::operator=(a_from); 44 return *this; 44 return *this; 45 } 45 } 46 46 47 private:static void check_instantiation() {h3d 47 private:static void check_instantiation() {h3d dummy("",10,0,1,10,0,1,10,0,1);} 48 }; 48 }; 49 49 50 }} 50 }} 51 51 52 #endif 52 #endif 53 53 54 54 55 55 56 56