00001
00029 #ifndef BDPROFMON_H
00030 #define BDPROFMON_H
00031
00032 #include <BeamDataUtil/BDSwicDevice.h>
00033
00034 #include <vector>
00035
00036 #include <TGraphErrors.h>
00037 #include <TGraph.h>
00038
00039
00040 class BDProfMon : public BDSwicDevice {
00041 public:
00042 BDProfMon();
00043 BDProfMon(const RawBeamData& swic_data);
00044 virtual ~BDProfMon();
00045
00049 virtual void SetData(const RawBeamData& swic_data);
00050
00057 virtual bool SetMask(const std::vector<double>& mask);
00058
00065 static int Xindex(int channel);
00066
00073 static int Yindex(int channel);
00074
00080 double WirePosition(int channel) const;
00081
00090 double GetStats(double& xmean, double &ymean, double &xrms, double &yrms) const;
00091
00101 double GetGaussFit(double& xmean, double &ymean, double &xsigma, double &ysigma) const;
00102
00103
00104 private:
00107 virtual int Index(const int channel);
00108 void SuppressDeadHot(TGraphErrors *prof) const;
00109
00110 void UpdateCache();
00111 double GetStats(TGraphErrors *prof, double& mean, double& rms) const ;
00112 double fSpacing;
00113
00114 };
00115
00116
00117 #endif // BDPROFMON_H