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_profile_data 4 #ifndef tools_histo_profile_data 5 #define tools_histo_profile_data 5 #define tools_histo_profile_data 6 6 7 #include "histo_data" 7 #include "histo_data" 8 8 9 namespace tools { 9 namespace tools { 10 namespace histo { 10 namespace histo { 11 11 12 template <class TC,class TO,class TN,class TW, 12 template <class TC,class TO,class TN,class TW,class TV> 13 class profile_data : public histo_data<TC,TO,T 13 class profile_data : public histo_data<TC,TO,TN,TW> { 14 typedef histo_data<TC,TO,TN,TW> parent; 14 typedef histo_data<TC,TO,TN,TW> parent; 15 public: 15 public: 16 typedef std::vector<TV> vs_t; 16 typedef std::vector<TV> vs_t; 17 public: 17 public: 18 profile_data() 18 profile_data() 19 :parent() 19 :parent() 20 ,m_is_profile(true) 20 ,m_is_profile(true) 21 ,m_cut_v(false) 21 ,m_cut_v(false) 22 ,m_min_v(0) 22 ,m_min_v(0) 23 ,m_max_v(0) 23 ,m_max_v(0) 24 {} 24 {} 25 25 26 profile_data(const histo_data<TC,TO,TN,TW>& 26 profile_data(const histo_data<TC,TO,TN,TW>& a_from) 27 :parent(a_from) 27 :parent(a_from) 28 ,m_is_profile(false) 28 ,m_is_profile(false) 29 ,m_cut_v(false) 29 ,m_cut_v(false) 30 ,m_min_v(0) 30 ,m_min_v(0) 31 ,m_max_v(0) 31 ,m_max_v(0) 32 {} 32 {} 33 33 34 public: 34 public: 35 profile_data(const profile_data& a_from) 35 profile_data(const profile_data& a_from) 36 :parent(a_from) 36 :parent(a_from) 37 ,m_is_profile(a_from.m_is_profile) 37 ,m_is_profile(a_from.m_is_profile) 38 ,m_bin_Svw(a_from.m_bin_Svw) 38 ,m_bin_Svw(a_from.m_bin_Svw) 39 ,m_bin_Sv2w(a_from.m_bin_Sv2w) 39 ,m_bin_Sv2w(a_from.m_bin_Sv2w) 40 ,m_cut_v(a_from.m_cut_v) 40 ,m_cut_v(a_from.m_cut_v) 41 ,m_min_v(a_from.m_min_v) 41 ,m_min_v(a_from.m_min_v) 42 ,m_max_v(a_from.m_max_v) 42 ,m_max_v(a_from.m_max_v) 43 {} 43 {} 44 44 45 profile_data& operator=(const profile_data& 45 profile_data& operator=(const profile_data& a_from) { 46 parent::operator=(a_from); 46 parent::operator=(a_from); 47 m_is_profile = a_from.m_is_profile; 47 m_is_profile = a_from.m_is_profile; 48 m_bin_Svw = a_from.m_bin_Svw; 48 m_bin_Svw = a_from.m_bin_Svw; 49 m_bin_Sv2w = a_from.m_bin_Sv2w; 49 m_bin_Sv2w = a_from.m_bin_Sv2w; 50 m_cut_v = a_from.m_cut_v; 50 m_cut_v = a_from.m_cut_v; 51 m_min_v = a_from.m_min_v; 51 m_min_v = a_from.m_min_v; 52 m_max_v = a_from.m_max_v; 52 m_max_v = a_from.m_max_v; 53 return *this; 53 return *this; 54 } 54 } 55 55 56 virtual ~profile_data(){} 56 virtual ~profile_data(){} 57 57 58 public: 58 public: 59 profile_data& operator=(const histo_data<TC, 59 profile_data& operator=(const histo_data<TC,TO,TN,TW>& a_from) { 60 //for Rio_THisogram. 60 //for Rio_THisogram. 61 histo_data<TC,TO,TN,TW>::operator=(a_from) 61 histo_data<TC,TO,TN,TW>::operator=(a_from); 62 if(&a_from==this) return *this; 62 if(&a_from==this) return *this; 63 m_is_profile = false; 63 m_is_profile = false; 64 m_bin_Svw.clear(); 64 m_bin_Svw.clear(); 65 m_bin_Sv2w.clear(); 65 m_bin_Sv2w.clear(); 66 m_cut_v = false; 66 m_cut_v = false; 67 m_min_v = 0; 67 m_min_v = 0; 68 m_max_v = 0; 68 m_max_v = 0; 69 return *this; 69 return *this; 70 } 70 } 71 71 72 public: 72 public: 73 bool m_is_profile; //for Rio_THistogram. 73 bool m_is_profile; //for Rio_THistogram. 74 std::vector<TV> m_bin_Svw; 74 std::vector<TV> m_bin_Svw; 75 std::vector<TV> m_bin_Sv2w; 75 std::vector<TV> m_bin_Sv2w; 76 bool m_cut_v; 76 bool m_cut_v; 77 TV m_min_v; 77 TV m_min_v; 78 TV m_max_v; 78 TV m_max_v; 79 }; 79 }; 80 80 81 }} 81 }} 82 82 83 #endif 83 #endif