ATLAS Offline Software
Loading...
Searching...
No Matches
WorstCaseSummary.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
8#include <dqm_core/AlgorithmManager.h>
9#include <dqm_core/Result.h>
10#include <dqm_core/Parameter.h>
12
14
16{
17 dqm_core::AlgorithmManager::instance().registerSummaryMaker("WorstCaseSummary",this);
18}
19
23
29
30dqm_core::Result*
32 const dqm_core::Result &,
33 const dqm_core::ParametersMap & map)
34{
35 dqm_core::ParametersMap::const_iterator iter;
36 unsigned int black=0;
37 unsigned int red=0;
38 unsigned int yellow=0;
39 unsigned int green=0;
40 unsigned int undefined = 0;
41 unsigned int skipped = 0;
42
43 for (iter=map.begin();iter!=map.end();++iter){
44 //If weight is 0 skip this result. Allow to "turn off"
45 // results in summary makers
46 if ( iter->second->getWeight() == 0 )
47 {
48 ERS_DEBUG(2,"Skip result (weight 0): "<<iter->first);
49 ++skipped;
50 continue;
51 }
52 dqm_core::Result::Status status=iter->second->getResult().get()->status_;
53 if(status==dqm_core::Result::Red) {
54 ++red;
55 } else if (status==dqm_core::Result::Yellow) {
56 ++yellow;
57 } else if (status==dqm_core::Result::Green) {
58 ++green;
59 } else if (status==dqm_core::Result::Disabled) {
60 ++black;
61 } else {
62 ++undefined;
63 }
64 }
65
66 dqm_core::Result *newresult = new dqm_core::Result();
67
68 if (black == map.size() ) {
69 newresult->status_=dqm_core::Result::Disabled;
70 return newresult;
71 }
72
73
74 if ( red > 0 ) {
75 newresult->status_=dqm_core::Result::Red;
76 } else if ( yellow > 0 ) {
77 newresult->status_=dqm_core::Result::Yellow;
78 } else if ( green > 0 ) {
79 newresult->status_=dqm_core::Result::Green;
80 } else {
81 newresult->status_=dqm_core::Result::Undefined;
82 }
83 newresult->tags_.insert(std::make_pair("NumRed",(double)red));
84 newresult->tags_.insert(std::make_pair("NumYellow",(double)yellow));
85 newresult->tags_.insert(std::make_pair("NumGreen",(double)green));
86 newresult->tags_.insert(std::make_pair("NumUndefined",(double)undefined));
87 newresult->tags_.insert(std::make_pair("NumDisabled",(double)black));
88 newresult->tags_.insert(std::make_pair("NumExcluded",(double)skipped));
89 return newresult;
90}
91
static dqm_algorithms::BinContentComp myInstance
file declares the dqm_algorithms::summary::WorstCaseSummary class.
STL class.
A simple summary This summary maker calculates result for a region as the worst result of childs.
dqm_core::Result * execute(const std::string &, const dqm_core::Result &, const dqm_core::ParametersMap &)