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