00001 #include "AtlfastAlgs/Displacement.h" 00002 00003 namespace Atlfast { 00004 00005 Displacement::Displacement(const Displacement& disp) { 00006 (*this) = disp; 00007 } 00008 00009 Displacement& Displacement::operator=(const Displacement& disp) { 00010 if (this != &disp) { 00011 m_off = disp.m_off; 00012 m_pow = disp.m_pow; 00013 m_average = disp.m_average; 00014 m_rms = disp.m_rms; 00015 } 00016 return *this; 00017 } 00018 00019 double Displacement::average(int iEta, double random) const { 00020 map<double, double>::const_iterator begin = (m_average[iEta]).begin(); 00021 map<double, double>::const_iterator iter = begin; 00022 map<double, double>::const_iterator end = (m_average[iEta]).end(); 00023 for (;iter != end; ++iter) { 00024 if (random < iter->first) { 00025 return iter->second; 00026 } 00027 } 00028 return begin->second; 00029 } 00030 00031 double Displacement::rms(int iEta, double random) const { 00032 map<double, double>::const_iterator begin = (m_rms[iEta]).begin(); 00033 map<double, double>::const_iterator iter = begin; 00034 map<double, double>::const_iterator end = (m_rms[iEta]).end(); 00035 for (;iter != end; ++iter) { 00036 if (random < iter->first) { 00037 return iter->second; 00038 } 00039 } 00040 return begin->second; 00041 } 00042 00043 00044 00045 } 00046