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_h1d 4 #ifndef tools_histo_h1d 5 #define tools_histo_h1d 5 #define tools_histo_h1d 6 6 7 #include "h1" 7 #include "h1" 8 8 9 namespace tools { 9 namespace tools { 10 namespace histo { 10 namespace histo { 11 11 12 // d in h1d is for double (and not dimension). 12 // d in h1d is for double (and not dimension). 13 13 14 class h1d : public h1<double,unsigned int,unsi 14 class h1d : public h1<double,unsigned int,unsigned int,double,double> { 15 typedef h1<double,unsigned int,unsigned int, 15 typedef h1<double,unsigned int,unsigned int,double,double> parent; 16 public: 16 public: 17 static const std::string& s_class() { 17 static const std::string& s_class() { 18 static const std::string s_v("tools::histo 18 static const std::string s_v("tools::histo::h1d"); 19 return s_v; 19 return s_v; 20 } 20 } 21 const std::string& s_cls() const {return s_c 21 const std::string& s_cls() const {return s_class();} 22 public: 22 public: 23 h1d():parent("",10,0,1){} //for I/O when rea 23 h1d():parent("",10,0,1){} //for I/O when reading. 24 24 25 h1d(const std::string& a_title,unsigned int 25 h1d(const std::string& a_title,unsigned int aXnumber,double aXmin,double aXmax) 26 :parent(a_title,aXnumber,aXmin,aXmax){} 26 :parent(a_title,aXnumber,aXmin,aXmax){} 27 27 28 h1d(const std::string& a_title,const std::ve 28 h1d(const std::string& a_title,const std::vector<double>& a_edges) 29 :parent(a_title,a_edges){} 29 :parent(a_title,a_edges){} 30 30 31 virtual ~h1d(){} 31 virtual ~h1d(){} 32 public: 32 public: 33 h1d(const h1d& a_from):parent(a_from){} 33 h1d(const h1d& a_from):parent(a_from){} 34 h1d& operator=(const h1d& a_from){ 34 h1d& operator=(const h1d& a_from){ 35 if(&a_from==this) return *this; 35 if(&a_from==this) return *this; 36 parent::operator=(a_from); 36 parent::operator=(a_from); 37 return *this; 37 return *this; 38 } 38 } 39 39 40 private:static void check_instantiation() {h1d 40 private:static void check_instantiation() {h1d h("",10,0,1);h.gather_bins(5);} 41 }; 41 }; 42 42 43 }} 43 }} 44 44 45 #endif 45 #endif 46 46 47 47 48 48 49 49