Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:02:38

0001 #ifndef CondFormats_SiStripObjects_PedsFullNoiseAnalysis_H
0002 #define CondFormats_SiStripObjects_PedsFullNoiseAnalysis_H
0003 
0004 #include "CondFormats/SiStripObjects/interface/CommissioningAnalysis.h"
0005 #include "DataFormats/SiStripCommon/interface/SiStripConstants.h"
0006 #include <sstream>
0007 #include <vector>
0008 #include <cstdint>
0009 
0010 /** 
0011     @class PedsFullNoiseAnalysis
0012     @author M. Wingham, R.Bainbridge
0013     @brief Histogram-based analysis for pedestal run.
0014 */
0015 
0016 class PedsFullNoiseAnalysis : public CommissioningAnalysis {
0017 public:
0018   // ---------- con(de)structors ----------
0019 
0020   PedsFullNoiseAnalysis(const uint32_t& key);
0021 
0022   PedsFullNoiseAnalysis();
0023 
0024   ~PedsFullNoiseAnalysis() override { ; }
0025 
0026   friend class PedestalsAlgorithm;
0027   friend class PedsFullNoiseAlgorithm;
0028 
0029   // ---------- public interface ----------
0030 
0031   /** Identifies if analysis is valid or not. */
0032   bool isValid() const override;
0033 
0034   // Pedestal, noise and raw noise (128-strip vector per APV)
0035   inline const VVFloat& peds() const;
0036   inline const VVFloat& noise() const;
0037   inline const VVFloat& raw() const;
0038 
0039   // test statistics for each APV (128-strip vector per APV)
0040   inline const VVFloat& adProbab() const;
0041   inline const VVFloat& ksProbab() const;
0042   inline const VVFloat& jbProbab() const;
0043   inline const VVFloat& chi2Probab() const;
0044 
0045   // Per strip values
0046   inline const VVFloat& residualRMS() const;        // RMS
0047   inline const VVFloat& residualSigmaGaus() const;  // from gaus fit
0048   inline const VVFloat& noiseSignificance() const;  // noise significance
0049   inline const VVFloat& residualMean() const;
0050   inline const VVFloat& residualSkewness() const;
0051   inline const VVFloat& residualKurtosis() const;
0052   inline const VVFloat& residualIntegralNsigma() const;
0053   inline const VVFloat& residualIntegral() const;
0054 
0055   // status for different class of bad or problematic strips
0056   inline const VVInt& deadStrip() const;
0057   inline const VVInt& badStrip() const;
0058   inline const VVInt& badStripBit() const;
0059   inline const VVInt& deadStripBit() const;
0060   inline const VVInt& shiftedStrip() const;
0061   inline const VVInt& lowNoiseStrip() const;
0062   inline const VVInt& largeNoiseStrip() const;
0063   inline const VVInt& largeNoiseSignificance() const;
0064   inline const VVInt& badFitStatus() const;
0065   inline const VVInt& badADProbab() const;
0066   inline const VVInt& badKSProbab() const;
0067   inline const VVInt& badJBProbab() const;
0068   inline const VVInt& badChi2Probab() const;
0069   inline const VVInt& badTailStrip() const;
0070   inline const VVInt& badDoublePeakStrip() const;
0071 
0072   // Mean and rms spread (value per APV)
0073   inline const VFloat& pedsMean() const;
0074   inline const VFloat& pedsSpread() const;
0075   inline const VFloat& noiseMean() const;
0076   inline const VFloat& noiseSpread() const;
0077   inline const VFloat& rawMean() const;
0078   inline const VFloat& rawSpread() const;
0079 
0080   // Max and min values (value per APV)
0081   inline const VFloat& pedsMax() const;
0082   inline const VFloat& pedsMin() const;
0083   inline const VFloat& noiseMax() const;
0084   inline const VFloat& noiseMin() const;
0085   inline const VFloat& rawMax() const;
0086   inline const VFloat& rawMin() const;
0087 
0088   // ---------- misc ----------
0089 
0090   /** Prints analysis results. */
0091   void print(std::stringstream&, uint32_t apv_number = 0) override;
0092 
0093   /** Overrides base method. */
0094   void summary(std::stringstream&) const override;
0095 
0096   /** Resets analysis member data. */
0097   void reset() override;
0098 
0099   // ---------- private member data ----------
0100 
0101 private:
0102   /// Quantitles that are always filled for every strip
0103   VVFloat peds_;
0104   VVFloat noise_;
0105   VVFloat raw_;
0106 
0107   VVFloat adProbab_;
0108   VVFloat ksProbab_;
0109   VVFloat jbProbab_;
0110   VVFloat chi2Probab_;
0111   VVFloat residualRMS_;
0112   VVFloat residualSigmaGaus_;
0113   VVFloat noiseSignificance_;
0114   VVFloat residualMean_;
0115   VVFloat residualSkewness_;
0116   VVFloat residualKurtosis_;
0117   VVFloat residualIntegralNsigma_;
0118   VVFloat residualIntegral_;
0119   VVInt badStripBit_;
0120   VVInt deadStripBit_;
0121 
0122   /// Quantities filled only for bad strips i.e. vectors of strip-id
0123   VVInt deadStrip_;
0124   VVInt badStrip_;
0125   VVInt shiftedStrip_;
0126   VVInt lowNoiseStrip_;
0127   VVInt largeNoiseStrip_;
0128   VVInt largeNoiseSignificance_;
0129   VVInt badFitStatus_;
0130   VVInt badADProbab_;
0131   VVInt badKSProbab_;
0132   VVInt badJBProbab_;
0133   VVInt badChi2Probab_;
0134   VVInt badTailStrip_;
0135   VVInt badDoublePeakStrip_;
0136 
0137   // VFloat: 1 value per APV
0138   VFloat pedsMean_;
0139   VFloat pedsSpread_;
0140   VFloat noiseMean_;
0141   VFloat noiseSpread_;
0142   VFloat rawMean_;
0143   VFloat rawSpread_;
0144   VFloat pedsMax_;
0145   VFloat pedsMin_;
0146   VFloat noiseMax_;
0147   VFloat noiseMin_;
0148   VFloat rawMax_;
0149   VFloat rawMin_;
0150 
0151   // true if legacy histogram naming is used
0152   bool legacy_;
0153 };
0154 
0155 // ---------- Inline methods ----------
0156 
0157 const PedsFullNoiseAnalysis::VVFloat& PedsFullNoiseAnalysis::peds() const { return peds_; }
0158 const PedsFullNoiseAnalysis::VVFloat& PedsFullNoiseAnalysis::noise() const { return noise_; }
0159 const PedsFullNoiseAnalysis::VVFloat& PedsFullNoiseAnalysis::raw() const { return raw_; }
0160 
0161 const PedsFullNoiseAnalysis::VVFloat& PedsFullNoiseAnalysis::adProbab() const { return adProbab_; }
0162 const PedsFullNoiseAnalysis::VVFloat& PedsFullNoiseAnalysis::ksProbab() const { return ksProbab_; }
0163 const PedsFullNoiseAnalysis::VVFloat& PedsFullNoiseAnalysis::jbProbab() const { return jbProbab_; }
0164 const PedsFullNoiseAnalysis::VVFloat& PedsFullNoiseAnalysis::chi2Probab() const { return chi2Probab_; }
0165 
0166 const PedsFullNoiseAnalysis::VVFloat& PedsFullNoiseAnalysis::residualRMS() const { return residualRMS_; }
0167 const PedsFullNoiseAnalysis::VVFloat& PedsFullNoiseAnalysis::residualSigmaGaus() const { return residualSigmaGaus_; }
0168 const PedsFullNoiseAnalysis::VVFloat& PedsFullNoiseAnalysis::noiseSignificance() const { return noiseSignificance_; }
0169 const PedsFullNoiseAnalysis::VVFloat& PedsFullNoiseAnalysis::residualMean() const { return residualMean_; }
0170 const PedsFullNoiseAnalysis::VVFloat& PedsFullNoiseAnalysis::residualSkewness() const { return residualSkewness_; }
0171 const PedsFullNoiseAnalysis::VVFloat& PedsFullNoiseAnalysis::residualKurtosis() const { return residualKurtosis_; }
0172 const PedsFullNoiseAnalysis::VVFloat& PedsFullNoiseAnalysis::residualIntegralNsigma() const {
0173   return residualIntegralNsigma_;
0174 }
0175 const PedsFullNoiseAnalysis::VVFloat& PedsFullNoiseAnalysis::residualIntegral() const { return residualIntegral_; }
0176 
0177 const PedsFullNoiseAnalysis::VVInt& PedsFullNoiseAnalysis::deadStrip() const { return deadStrip_; }
0178 const PedsFullNoiseAnalysis::VVInt& PedsFullNoiseAnalysis::badStrip() const { return badStrip_; }
0179 const PedsFullNoiseAnalysis::VVInt& PedsFullNoiseAnalysis::badStripBit() const { return badStripBit_; }
0180 const PedsFullNoiseAnalysis::VVInt& PedsFullNoiseAnalysis::deadStripBit() const { return deadStripBit_; }
0181 const PedsFullNoiseAnalysis::VVInt& PedsFullNoiseAnalysis::shiftedStrip() const { return shiftedStrip_; }
0182 const PedsFullNoiseAnalysis::VVInt& PedsFullNoiseAnalysis::lowNoiseStrip() const { return lowNoiseStrip_; }
0183 const PedsFullNoiseAnalysis::VVInt& PedsFullNoiseAnalysis::largeNoiseStrip() const { return largeNoiseStrip_; }
0184 const PedsFullNoiseAnalysis::VVInt& PedsFullNoiseAnalysis::largeNoiseSignificance() const {
0185   return largeNoiseSignificance_;
0186 }
0187 const PedsFullNoiseAnalysis::VVInt& PedsFullNoiseAnalysis::badFitStatus() const { return badFitStatus_; }
0188 const PedsFullNoiseAnalysis::VVInt& PedsFullNoiseAnalysis::badADProbab() const { return badADProbab_; }
0189 const PedsFullNoiseAnalysis::VVInt& PedsFullNoiseAnalysis::badKSProbab() const { return badKSProbab_; }
0190 const PedsFullNoiseAnalysis::VVInt& PedsFullNoiseAnalysis::badJBProbab() const { return badJBProbab_; }
0191 const PedsFullNoiseAnalysis::VVInt& PedsFullNoiseAnalysis::badChi2Probab() const { return badChi2Probab_; }
0192 const PedsFullNoiseAnalysis::VVInt& PedsFullNoiseAnalysis::badTailStrip() const { return badTailStrip_; }
0193 const PedsFullNoiseAnalysis::VVInt& PedsFullNoiseAnalysis::badDoublePeakStrip() const { return badDoublePeakStrip_; }
0194 
0195 const PedsFullNoiseAnalysis::VFloat& PedsFullNoiseAnalysis::pedsMean() const { return pedsMean_; }
0196 const PedsFullNoiseAnalysis::VFloat& PedsFullNoiseAnalysis::pedsSpread() const { return pedsSpread_; }
0197 const PedsFullNoiseAnalysis::VFloat& PedsFullNoiseAnalysis::noiseMean() const { return noiseMean_; }
0198 const PedsFullNoiseAnalysis::VFloat& PedsFullNoiseAnalysis::noiseSpread() const { return noiseSpread_; }
0199 const PedsFullNoiseAnalysis::VFloat& PedsFullNoiseAnalysis::rawMean() const { return rawMean_; }
0200 const PedsFullNoiseAnalysis::VFloat& PedsFullNoiseAnalysis::rawSpread() const { return rawSpread_; }
0201 
0202 const PedsFullNoiseAnalysis::VFloat& PedsFullNoiseAnalysis::pedsMax() const { return pedsMax_; }
0203 const PedsFullNoiseAnalysis::VFloat& PedsFullNoiseAnalysis::pedsMin() const { return pedsMin_; }
0204 const PedsFullNoiseAnalysis::VFloat& PedsFullNoiseAnalysis::noiseMax() const { return noiseMax_; }
0205 const PedsFullNoiseAnalysis::VFloat& PedsFullNoiseAnalysis::noiseMin() const { return noiseMin_; }
0206 const PedsFullNoiseAnalysis::VFloat& PedsFullNoiseAnalysis::rawMax() const { return rawMax_; }
0207 const PedsFullNoiseAnalysis::VFloat& PedsFullNoiseAnalysis::rawMin() const { return rawMin_; }
0208 
0209 #endif  // CondFormats_SiStripObjects_PedsFullNoiseAnalysis_H