CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/CondFormats/SiStripObjects/interface/FastFedCablingAnalysis.h

Go to the documentation of this file.
00001 #ifndef CondFormats_SiStripObjects_FastFedCablingAnalysis_H
00002 #define CondFormats_SiStripObjects_FastFedCablingAnalysis_H
00003 
00004 #include "CondFormats/SiStripObjects/interface/CommissioningAnalysis.h"
00005 #include "DataFormats/SiStripCommon/interface/SiStripConstants.h"
00006 #include <boost/cstdint.hpp>
00007 #include <sstream>
00008 #include <vector>
00009 #include <map>
00010 
00016 class FastFedCablingAnalysis : public CommissioningAnalysis {
00017   
00018  public:
00019 
00020   // ---------- con(de)structors and typedefs ----------
00021 
00022   FastFedCablingAnalysis( const uint32_t& key );
00023 
00024   FastFedCablingAnalysis();
00025 
00026   virtual ~FastFedCablingAnalysis() {;}
00027   
00028   typedef std::map<uint32_t,uint16_t> Candidates;
00029 
00030   friend class FastFedCablingAlgorithm;
00031 
00032   // ---------- public interface ----------
00033 
00035   bool isValid() const;
00036 
00038   bool isDirty() const;
00039 
00041   bool badTrimDac() const;
00042   
00044   inline const uint32_t& dcuHardId() const;
00045   
00047   inline const uint16_t& lldCh() const; 
00048 
00050   inline const float& highLevel() const;
00051 
00053   inline const float& highRms() const;
00054 
00056   inline const float& lowLevel() const;
00057 
00059   inline const float& lowRms() const;
00060 
00062   inline const float& max() const;
00063   
00065   inline const float& min() const;
00066 
00067   // ---------- misc ----------
00068 
00070   void print( std::stringstream&, uint32_t not_used = 0 );
00071   
00073   void header( std::stringstream& ) const;
00074   
00076   void summary( std::stringstream& ) const;
00077   
00079   void reset();
00080 
00081   // ---------- public static data ----------
00082 
00083  public:
00084 
00086   static const float threshold_;
00087 
00089   static const float dirtyThreshold_;
00090 
00092   static const float trimDacThreshold_;
00093 
00095   static const uint16_t nBitsForDcuId_;
00096 
00098   static const uint16_t nBitsForLldCh_;
00099 
00100   // ---------- private member data ----------
00101 
00102  private:
00103 
00105   uint32_t dcuHardId_;
00106 
00108   uint16_t lldCh_;
00109 
00111   float highMedian_;
00112 
00114   float highMean_;
00115 
00117   float highRms_;
00118 
00120   float lowMedian_;
00121 
00123   float lowMean_;
00124 
00126   float lowRms_;
00127 
00129   float range_;
00130 
00132   float midRange_;
00133 
00135   float max_;
00136 
00138   float min_;
00139 
00140 };
00141 
00142 // ---------- Inline methods ----------
00143   
00144 const uint32_t& FastFedCablingAnalysis::dcuHardId() const { return dcuHardId_; }
00145 const uint16_t& FastFedCablingAnalysis::lldCh() const { return lldCh_; } 
00146 const float& FastFedCablingAnalysis::highLevel() const { return highMean_; }
00147 const float& FastFedCablingAnalysis::highRms() const { return highRms_; }
00148 const float& FastFedCablingAnalysis::lowLevel() const { return lowMean_; }
00149 const float& FastFedCablingAnalysis::lowRms() const { return lowRms_; }
00150 const float& FastFedCablingAnalysis::max() const { return max_; }
00151 const float& FastFedCablingAnalysis::min() const { return min_; }
00152 
00153 #endif // CondFormats_SiStripObjects_FastFedCablingAnalysis_H
00154 
00155