CommissioningAnalysis

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
#ifndef CondFormats_SiStripObjects_CommissioningAnalysis_H
#define CondFormats_SiStripObjects_CommissioningAnalysis_H

#include "DataFormats/SiStripCommon/interface/SiStripFecKey.h"
#include "DataFormats/SiStripCommon/interface/SiStripFedKey.h"
#include <sstream>
#include <string>
#include <vector>
#include <cstdint>

/**
   @class CommissioningAnalysis
   @author M.Wingham, R.Bainbridge 
   
   @brief Abstract base for derived classes that provide analysis of
   commissioning histograms.
*/
class CommissioningAnalysis {
public:
  // ---------- con(de)structors ----------

  CommissioningAnalysis(const uint32_t& key, const std::string& my_name);

  CommissioningAnalysis(const std::string& my_name);

  virtual ~CommissioningAnalysis() { ; }

  // ---------- typedefs ----------

  typedef std::vector<float> VFloat;

  typedef std::vector<VFloat> VVFloat;

  typedef std::vector<uint16_t> VInt;

  typedef std::vector<VInt> VVInt;

  typedef std::vector<bool> VBool;

  typedef std::vector<VBool> VVBool;

  typedef std::vector<std::string> VString;

  // ---------- public interface ----------

  /** Identifies if analysis is valid or not. */
  virtual bool isValid() const { return true; }

  /** Returns error codes generated by analyses. */
  inline const VString& getErrorCodes() const;

  /** Returns FEC key object (encodes control structure). */
  inline const uint32_t& fecKey() const;

  /** Returns FED key object (encodes readout structure). */
  inline const uint32_t& fedKey() const;

  /** Returns DCU id. */
  inline const uint32_t& dcuId() const;

  /** Returns DetId. */
  inline const uint32_t& detId() const;

  // ---------- public print methods ----------

  /** Returns object name. */
  inline const std::string& myName() const;

  /** Prints analysis results. */
  virtual void print(std::stringstream&, uint32_t not_used = 0) = 0;

  /** Header information for analysis print(). */
  virtual void header(std::stringstream&) const;

  /** Navigate information for analysis print(). */
  virtual void summary(std::stringstream&) const;

  // ---------- public setter methods ----------

  /** Sets FEC key (encodes control structure). */
  inline void fecKey(const uint32_t&);

  /** Sets FED key (encodes readout structure). */
  inline void fedKey(const uint32_t&);

  /** Sets DCU id. */
  inline void dcuId(const uint32_t&);

  /** Sets DetId. */
  inline void detId(const uint32_t&);

  /** Sets error codes generated by analyses. */
  inline void setErrorCodes(const VString& errors);

  /** Adds error codes generated by analyses. */
  inline virtual void addErrorCode(const std::string& error);

  /** Resets analysis member data. */
  virtual void reset() = 0;

  // ---------- private methods ----------

private:
  /** Private default constructor. */
  CommissioningAnalysis() { ; }

  // ---------- private member data ----------

private:
  /** FEC key object. */
  uint32_t fecKey_;

  /** FEC key object. */
  uint32_t fedKey_;

  /** DCU Id. */
  uint32_t dcuId_;

  /** DetId. */
  uint32_t detId_;

  /** Object name. */
  std::string myName_;

  /** Error codes. */
  VString errors_;
};

// ---------- inline methods ----------

const CommissioningAnalysis::VString& CommissioningAnalysis::getErrorCodes() const { return errors_; }

const uint32_t& CommissioningAnalysis::fecKey() const { return fecKey_; }
const uint32_t& CommissioningAnalysis::fedKey() const { return fedKey_; }

const uint32_t& CommissioningAnalysis::dcuId() const { return dcuId_; }
const uint32_t& CommissioningAnalysis::detId() const { return detId_; }

const std::string& CommissioningAnalysis::myName() const { return myName_; }

void CommissioningAnalysis::fecKey(const uint32_t& key) { fecKey_ = key; }
void CommissioningAnalysis::fedKey(const uint32_t& key) { fedKey_ = key; }

void CommissioningAnalysis::dcuId(const uint32_t& dcu_id) { dcuId_ = dcu_id; }
void CommissioningAnalysis::detId(const uint32_t& det_id) { detId_ = det_id; }

void CommissioningAnalysis::setErrorCodes(const VString& errors) { errors_ = errors; }
void CommissioningAnalysis::addErrorCode(const std::string& error) { errors_.push_back(error); }

#endif  // CondFormats_SiStripObjects_CommissioningAnalysis_H