00001
00002
00003
00004
00005
00006
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 };