00001 /*************************************************************************** 00002 channel.cpp - description 00003 ------------------- 00004 begin : Fri Feb 8 2002 00005 copyright : (C) 2002 by Robert Morse 00006 email : r.morse@sussex.ac.uk 00007 ***************************************************************************/ 00008 00009 00010 #include "channel.h" 00011 void Channel::Clean(){ 00012 no_entries=0; 00013 mean=0; 00014 rms=0; 00015 sigma1=0; 00016 sigma2=0; 00017 channel_no =-1; 00018 }; 00019 00020 void Channel::SetMean(Double_t value){ 00021 mean = value; 00022 }; 00023 00024 void Channel::SetEntries(Int_t values){ 00025 no_entries = values; 00026 }; 00027 00028 void Channel::SetRMS(Double_t value){ 00029 rms = value; 00030 }; 00031 00032 Double_t Channel::GetMean(){ 00033 return mean; 00034 }; 00035 00036 Int_t Channel::GetEntries(){ 00037 return no_entries; 00038 }; 00039 00040 Double_t Channel::GetRMS(){ 00041 if(sigma1 ==0) 00042 return rms; 00043 return rms = pow(( sigma1/Double_t(no_entries) - pow( sigma2/Double_t(no_entries),2)),0.5); 00044 }; 00045 00046 void Channel::SetEntry(Int_t entries, Double_t new_mean, Double_t new_rms){ 00047 no_entries = entries; 00048 mean = new_mean; 00049 rms = new_rms; 00050 }; 00051 00052 void Channel::AddEntry(Int_t new_entries, Double_t new_mean, Double_t new_rms){ 00053 if(new_entries > 0){ 00054 00055 sigma1 += Double_t(new_entries)*(pow(new_rms,2) + pow(new_mean,2)); 00056 sigma2 += new_mean * Double_t(new_entries); 00057 00058 mean = mean * ( Double_t(no_entries) / (Double_t(no_entries + new_entries)) ) 00059 + new_mean*( Double_t(new_entries) / (Double_t(new_entries+no_entries)) ); 00060 no_entries += new_entries; 00061 } 00062 };
1.3.9.1