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_h3df 4 #ifndef tools_histo_h3df 5 #define tools_histo_h3df 5 #define tools_histo_h3df 6 6 7 // coord is in double. 7 // coord is in double. 8 // weight is in float. 8 // weight is in float. 9 9 10 #include "h3" 10 #include "h3" 11 11 12 namespace tools { 12 namespace tools { 13 namespace histo { 13 namespace histo { 14 14 15 class h3df : public h3<double,unsigned int,uns 15 class h3df : public h3<double,unsigned int,unsigned int,float,float> { 16 typedef h3<double,unsigned int,unsigned int, 16 typedef h3<double,unsigned int,unsigned int,float,float> parent; 17 public: 17 public: 18 static const std::string& s_class() { 18 static const std::string& s_class() { 19 static const std::string s_v("tools::histo 19 static const std::string s_v("tools::histo::h3df"); 20 return s_v; 20 return s_v; 21 } 21 } 22 const std::string& s_cls() const {return s_c 22 const std::string& s_cls() const {return s_class();} 23 public: 23 public: 24 h3df():parent("",10,0,1,10,0,1,10,0,1){} //f 24 h3df():parent("",10,0,1,10,0,1,10,0,1){} //for I/O when reading. 25 25 26 h3df(const std::string& a_title, 26 h3df(const std::string& a_title, 27 unsigned int aXnumber,float aXmin,float 27 unsigned int aXnumber,float aXmin,float aXmax, 28 unsigned int aYnumber,float aYmin,float 28 unsigned int aYnumber,float aYmin,float aYmax, 29 unsigned int aZnumber,float aZmin,float 29 unsigned int aZnumber,float aZmin,float aZmax) 30 :parent(a_title,aXnumber,aXmin,aXmax, 30 :parent(a_title,aXnumber,aXmin,aXmax, 31 aYnumber,aYmin,aYmax, 31 aYnumber,aYmin,aYmax, 32 aZnumber,aZmin,aZmax) 32 aZnumber,aZmin,aZmax) 33 {} 33 {} 34 34 35 h3df(const std::string& a_title, 35 h3df(const std::string& a_title, 36 const std::vector<double>& a_edges_x, 36 const std::vector<double>& a_edges_x, 37 const std::vector<double>& a_edges_y, 37 const std::vector<double>& a_edges_y, 38 const std::vector<double>& a_edges_z) 38 const std::vector<double>& a_edges_z) 39 :parent(a_title,a_edges_x,a_edges_y,a_edges_ 39 :parent(a_title,a_edges_x,a_edges_y,a_edges_z) 40 {} 40 {} 41 41 42 virtual ~h3df(){} 42 virtual ~h3df(){} 43 public: 43 public: 44 h3df(const h3df& a_from):parent(a_from){} 44 h3df(const h3df& a_from):parent(a_from){} 45 h3df& operator=(const h3df& a_from){ 45 h3df& operator=(const h3df& a_from){ 46 parent::operator=(a_from); 46 parent::operator=(a_from); 47 return *this; 47 return *this; 48 } 48 } 49 49 50 private:static void check_instantiation() {h3d 50 private:static void check_instantiation() {h3df dummy("",10,0,1,10,0,1,10,0,1);} 51 }; 51 }; 52 52 53 }} 53 }} 54 54 55 #endif 55 #endif 56 56 57 57 58 58 59 59