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
|