1 #ifndef DataFormats_Histograms_MonitorElementCollection_h
2 #define DataFormats_Histograms_MonitorElementCollection_h
184 while (not path.empty() and path.front() ==
'/') {
185 path.erase(path.begin());
191 while (tokenStartPos < path.size()) {
192 auto tokenEndPos = path.find(
'/', tokenStartPos);
193 if (tokenEndPos == std::string::npos) {
194 tokenEndPos = path.size();
196 if (0 == tokenEndPos - tokenStartPos) {
198 path.erase(path.begin() + tokenStartPos);
200 }
else if (2 == tokenEndPos - tokenStartPos) {
201 if (path[tokenStartPos] ==
'.' and path[tokenStartPos + 1] ==
'.') {
203 auto endOfLastToken = tokenStartPos;
204 if (tokenStartPos > 1) {
207 auto startOfLastToken = path.rfind(
'/', endOfLastToken);
208 if (startOfLastToken == std::string::npos) {
210 path.erase(path.begin(), path.begin() + tokenEndPos);
213 path.erase(path.begin() + startOfLastToken + 1, path.begin() + tokenEndPos);
214 tokenStartPos = startOfLastToken + 1;
219 tokenStartPos = tokenEndPos + 1;
225 if (not path.empty() and path.back() !=
'/') {
230 auto lastSlash = path.rfind(
'/');
231 if (lastSlash == std::string::npos) {
235 objname_ = path.substr(lastSlash + 1);
236 path.erase(path.begin() + lastSlash + 1, path.end());
259 auto makeKeyTuple = [](
Key const&
k) {
260 return std::make_tuple(
261 k.path_.getDirname(),
k.path_.getObjectname(),
k.scope_,
k.id_.run(),
k.id_.luminosityBlock());
264 return makeKeyTuple(*
this) < makeKeyTuple(other);
280 std::vector<std::unique_ptr<const MonitorElementData>>
data_;
297 assert(!
"Not implemented yet.");
QValue const & getValue() const
void swap(MonitorElementCollection &other)
edm::propagate_const< std::unique_ptr< TH1 > > object_
std::vector< DQMChannel > badChannels_
int getStatus() const
get test status
const std::string & getAlgorithm() const
get quality test algorithm
const std::string & getMessage() const
get message attached to test
std::string const & getDirname() const
void set(std::string path, Path::Type type)
edm::LuminosityBlockID id_
std::vector< std::unique_ptr< const MonitorElementData > > data_
std::string getFullname() const
void push_back(std::unique_ptr< const MonitorElementData > value)
void setBadChannels(std::vector< DQMChannel > badChannels)
DQMChannel(int bx, int by, int bz, float data, float rms)
std::string const & getObjectname() const
bool operator<(Key const &other) const
float getQTresult() const
get test result i.e. prob value
const std::vector< DQMChannel > & getBadChannels() const
std::vector< QReport > qreports_
char data[epos_bytes_allocation]
bool operator<(MonitorElementData const &other) const
QValue & getValue()
access underlying value
bool operator==(Path const &other) const
bool mergeProduct(MonitorElementCollection const &product)
const std::string & getQRName() const
get name of quality test