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
|
#ifndef DQWorkerClient_H
#define DQWorkerClient_H
#include <utility>
#include "DQM/EcalCommon/interface/DQWorker.h"
#include "FWCore/Framework/interface/ConsumesCollector.h"
class DetId;
namespace edm {
class ConsumesCollector;
} // namespace edm
namespace ecaldqm {
class StatusManager;
class DQWorkerClient : public DQWorker {
public:
enum ProcessType { kLumi, kJob, nProcessType };
DQWorkerClient();
~DQWorkerClient() override {}
static void fillDescriptions(edm::ParameterSetDescription&);
void endLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const&) override;
void resetPerLumi();
void bookMEs(DQMStore::IBooker&) override;
void releaseMEs() override;
void releaseSource();
bool retrieveSource(DQMStore::IGetter&, ProcessType);
bool runsOn(ProcessType _type) const { return _type == kJob || hasLumiPlots_; }
virtual void resetMEs();
virtual void producePlots(ProcessType) = 0;
// mechanisms to register EDGetTokens for any additional objects used internally
virtual void setTokens(edm::ConsumesCollector&) {}
void setStatusManager(StatusManager const& _manager) { statusManager_ = &_manager; }
static constexpr int kBad = 0, kGood = 1, kUnknown = 2, kMBad = 3, kMGood = 4, kMUnknown = 5;
protected:
void setME(edm::ParameterSet const& _ps) final;
void setSource(edm::ParameterSet const&) override;
bool using_(std::string const& _name, ProcessType _type = kJob) const {
MESetCollection::const_iterator itr(sources_.find(_name));
if (itr == sources_.end())
return false;
if (_type == kJob)
return true;
else
return itr->second->getLumiFlag();
}
void towerAverage_(MESet&, MESet const&, float);
MESetCollection sources_;
std::set<std::string> qualitySummaries_;
bool hasLumiPlots_;
StatusManager const* statusManager_;
};
} // namespace ecaldqm
#endif
|