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