CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
ecaldqm::DQWorkerClient Class Referenceabstract

#include <DQWorkerClient.h>

Inheritance diagram for ecaldqm::DQWorkerClient:
ecaldqm::DQWorker ecaldqm::CalibrationSummaryClient ecaldqm::CertificationClient ecaldqm::IntegrityClient ecaldqm::LaserClient ecaldqm::LedClient ecaldqm::OccupancyClient ecaldqm::PedestalClient ecaldqm::PNIntegrityClient ecaldqm::PresampleClient ecaldqm::RawDataClient ecaldqm::SelectiveReadoutClient ecaldqm::SummaryClient ecaldqm::TestPulseClient ecaldqm::TimingClient ecaldqm::TowerStatusTask ecaldqm::TrigPrimClient

Public Types

enum  ProcessType { kLumi, kJob, nProcessType }
 
enum  Quality {
  kBad = 0, kGood = 1, kUnknown = 2, kMBad = 3,
  kMGood = 4, kMUnknown = 5
}
 

Public Member Functions

void bookMEs (DQMStore::IBooker &) override
 
 DQWorkerClient ()
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) override
 
virtual void producePlots (ProcessType)=0
 
void releaseMEs () override
 
void releaseSource ()
 
virtual void resetMEs ()
 
void resetPerLumi ()
 
bool retrieveSource (DQMStore::IGetter &, ProcessType)
 
bool runsOn (ProcessType _type) const
 
void setStatusManager (StatusManager const &_manager)
 
 ~DQWorkerClient () override
 
- Public Member Functions inherited from ecaldqm::DQWorker
virtual void beginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
virtual void beginRun (edm::Run const &, edm::EventSetup const &)
 
 DQWorker ()
 
virtual void endRun (edm::Run const &, edm::EventSetup const &)
 
std::string const & getName () const
 
bool onlineMode () const
 
void setEventNumber (edm::EventNumber_t _e)
 
void setLumiNumber (edm::LuminosityBlockNumber_t _l)
 
void setRunNumber (edm::RunNumber_t _r)
 
void setTime (time_t _t)
 
virtual ~DQWorker ()(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ParameterSetDescription &)
 
- Static Public Member Functions inherited from ecaldqm::DQWorker
static void fillDescriptions (edm::ParameterSetDescription &_desc)
 

Protected Member Functions

void setME (edm::ParameterSet const &_ps) final
 
void setSource (edm::ParameterSet const &) override
 
void towerAverage_ (MESet &, MESet const &, float)
 
bool using_ (std::string const &_name, ProcessType _type=kJob) const
 
- Protected Member Functions inherited from ecaldqm::DQWorker
void initialize (std::string const &_name, edm::ParameterSet const &)
 
void print_ (std::string const &, int=0) const
 
virtual void setParams (edm::ParameterSet const &)
 
void setVerbosity (int _verbosity)
 

Protected Attributes

bool hasLumiPlots_
 
std::set< std::string > qualitySummaries_
 
MESetCollection sources_
 
StatusManager const * statusManager_
 
- Protected Attributes inherited from ecaldqm::DQWorker
bool booked_
 
MESetCollection MEs_
 
std::string name_
 
bool onlineMode_
 
Timestamp timestamp_
 
int verbosity_
 
bool willConvertToEDM_
 

Detailed Description

Definition at line 14 of file DQWorkerClient.h.

Member Enumeration Documentation

Enumerator
kLumi 
kJob 
nProcessType 

Definition at line 16 of file DQWorkerClient.h.

Enumerator
kBad 
kGood 
kUnknown 
kMBad 
kMGood 
kMUnknown 

Definition at line 42 of file DQWorkerClient.h.

Constructor & Destructor Documentation

ecaldqm::DQWorkerClient::DQWorkerClient ( )

Definition at line 18 of file DQWorkerClient.cc.

18  :
19  DQWorker(),
20  sources_(),
22  hasLumiPlots_(false),
23  statusManager_(nullptr)
24  {
25  }
std::set< std::string > qualitySummaries_
StatusManager const * statusManager_
MESetCollection sources_
ecaldqm::DQWorkerClient::~DQWorkerClient ( )
inlineoverride

Member Function Documentation

void ecaldqm::DQWorkerClient::bookMEs ( DQMStore::IBooker _ibooker)
overridevirtual

Reimplemented from ecaldqm::DQWorker.

Definition at line 98 of file DQWorkerClient.cc.

References ecaldqm::DQWorker::bookMEs(), and resetMEs().

Referenced by EcalDQMonitorClient::dqmEndLuminosityBlock(), and ~DQWorkerClient().

99  {
100  DQWorker::bookMEs(_ibooker);
101  resetMEs();
102  }
virtual void bookMEs(DQMStore::IBooker &)
Definition: DQWorker.cc:66
void ecaldqm::DQWorkerClient::endLuminosityBlock ( edm::LuminosityBlock const &  ,
edm::EventSetup const &   
)
overridevirtual

Reimplemented from ecaldqm::DQWorker.

Reimplemented in ecaldqm::IntegrityClient, and ecaldqm::TowerStatusTask.

Definition at line 85 of file DQWorkerClient.cc.

References sources_.

Referenced by ~DQWorkerClient().

86  {
87 // MESetChannel class removed until concurrency issue is finalized
88 #if 0
89  for(MESetCollection::iterator sItr(sources_.begin()); sItr != sources_.end(); ++sItr){
90  if(!sItr->second->getLumiFlag()) continue;
91  MESetChannel const* channel(dynamic_cast<MESetChannel const*>(sItr->second));
92  if(channel) channel->checkDirectory();
93  }
94 #endif
95  }
MESetCollection sources_
void ecaldqm::DQWorkerClient::fillDescriptions ( edm::ParameterSetDescription _desc)
static

Definition at line 29 of file DQWorkerClient.cc.

References edm::ParameterSetDescription::addUntracked(), edm::ParameterSetDescription::addWildcardUntracked(), ecaldqm::DQWorker::fillDescriptions(), ecaldqm::fillMESetDescriptions(), and edm::RequireZeroOrMore.

Referenced by EcalDQMonitorClient::fillDescriptions(), and ~DQWorkerClient().

30  {
32  _desc.addWildcardUntracked<std::vector<std::string> >("*");
33 
34  edm::ParameterSetDescription sourceParameters;
35  edm::ParameterSetDescription sourceNodeParameters;
36  fillMESetDescriptions(sourceNodeParameters);
37  sourceParameters.addNode(edm::ParameterWildcard<edm::ParameterSetDescription>("*", edm::RequireZeroOrMore, false, sourceNodeParameters));
38  _desc.addUntracked("sources", sourceParameters);
39  }
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
ParameterWildcardBase * addWildcardUntracked(U const &pattern)
static void fillDescriptions(edm::ParameterSetDescription &_desc)
Definition: DQWorker.cc:19
void fillMESetDescriptions(edm::ParameterSetDescription &)
Definition: MESetUtils.cc:143
virtual void ecaldqm::DQWorkerClient::producePlots ( ProcessType  )
pure virtual
void ecaldqm::DQWorkerClient::releaseMEs ( )
overridevirtual

Reimplemented from ecaldqm::DQWorker.

Definition at line 105 of file DQWorkerClient.cc.

References ecaldqm::DQWorker::releaseMEs(), and releaseSource().

Referenced by ~DQWorkerClient().

106  {
108  releaseSource();
109  }
virtual void releaseMEs()
Definition: DQWorker.cc:60
void ecaldqm::DQWorkerClient::releaseSource ( )

Definition at line 112 of file DQWorkerClient.cc.

References sources_.

Referenced by releaseMEs(), EcalDQMonitorClient::runWorkers(), and ~DQWorkerClient().

113  {
114  for(MESetCollection::iterator sItr(sources_.begin()); sItr != sources_.end(); ++sItr)
115  sItr->second->clear();
116  }
MESetCollection sources_
void ecaldqm::DQWorkerClient::resetMEs ( )
virtual

Reimplemented in ecaldqm::SummaryClient.

Definition at line 135 of file DQWorkerClient.cc.

References MonitorElement::DQM_KIND_TH2F, ecaldqm::MESet::getBinType(), ecaldqm::MESet::getKind(), ecaldqm::MESetMulti::getMultiplicity(), ecaldqm::binning::kTrend, kUnknown, ecaldqm::DQWorker::MEs_, trackerHitRTTI::multi, qualitySummaries_, ecaldqm::MESet::reset(), ecaldqm::MESetMulti::reset(), ecaldqm::MESet::resetAll(), ecaldqm::MESetMulti::resetAll(), and ecaldqm::MESetMulti::use().

Referenced by bookMEs(), ecaldqm::SummaryClient::resetMEs(), runsOn(), and EcalDQMonitorClient::runWorkers().

136  {
137  for(MESetCollection::iterator mItr(MEs_.begin()); mItr != MEs_.end(); ++mItr){
138  MESet* meset(mItr->second);
139 
140  // Protects Trend-type Client MEs from being reset at the end of the LS
141  // See: EcalDQMonitorClient::runWorkers
142  if(meset->getBinType() == ecaldqm::binning::kTrend)
143  continue;
144 
145  if(qualitySummaries_.find(mItr->first) != qualitySummaries_.end()){
146  MESetMulti* multi(dynamic_cast<MESetMulti*>(meset));
147  if(multi){
148  for(unsigned iS(0); iS < multi->getMultiplicity(); ++iS){
149  multi->use(iS);
150  if(multi->getKind() == MonitorElement::DQM_KIND_TH2F){
151  multi->resetAll(-1.);
152  multi->reset(kUnknown);
153  }
154  else
155  multi->reset(-1.);
156  }
157  }
158  else{
159  if(meset->getKind() == MonitorElement::DQM_KIND_TH2F){
160  meset->resetAll(-1.);
161  meset->reset(kUnknown);
162  }
163  else
164  meset->reset(-1.);
165  }
166  }
167  else
168  meset->reset();
169  }
170  }
std::set< std::string > qualitySummaries_
MESetCollection MEs_
Definition: DQWorker.h:75
void ecaldqm::DQWorkerClient::resetPerLumi ( )

Definition at line 173 of file DQWorkerClient.cc.

References gather_cfg::cout, mps_fire::i, and ecaldqm::DQWorker::MEs_.

Referenced by EcalDQMonitorClient::dqmEndLuminosityBlock(), and ~DQWorkerClient().

174  {
175  for (auto const& meset : MEs_) {
176  int i = 0;
177  while (auto me = meset.second->getME(i)) {
178  if (me->getLumiFlag()) {
179  std::cout << "+++ reset " << me->getFullname() << "\n";
180  // reset per-lumi histograms in offline harvesting so that they only show
181  // data of the current lumisection.
182  me->Reset();
183  }
184  i++;
185  }
186  }
187  }
MESetCollection MEs_
Definition: DQWorker.h:75
bool ecaldqm::DQWorkerClient::retrieveSource ( DQMStore::IGetter _igetter,
ProcessType  _type 
)

Definition at line 119 of file DQWorkerClient.cc.

References kLumi, ecaldqm::DQWorker::name_, ecaldqm::DQWorker::onlineMode_, sources_, AlCaHLTBitMon_QueryRunRegistry::string, and ecaldqm::DQWorker::verbosity_.

Referenced by EcalDQMonitorClient::runWorkers(), and ~DQWorkerClient().

120  {
121  std::string failedPath;
122  for(MESetCollection::iterator sItr(sources_.begin()); sItr != sources_.end(); ++sItr){
123  if(!onlineMode_ && _type == kLumi && !sItr->second->getLumiFlag()) continue;
124  if(verbosity_ > 1) edm::LogInfo("EcalDQM") << name_ << ": Retrieving source " << sItr->first;
125  if(!sItr->second->retrieve(_igetter, &failedPath)){
126  if(verbosity_ > 1) edm::LogWarning("EcalDQM") << name_ << ": Could not find source " << sItr->first << "@" << failedPath;
127  return false;
128  }
129  }
130 
131  return true;
132  }
MESetCollection sources_
std::string name_
Definition: DQWorker.h:74
bool ecaldqm::DQWorkerClient::runsOn ( ProcessType  _type) const
inline
void ecaldqm::DQWorkerClient::setME ( edm::ParameterSet const &  _ps)
finalprotectedvirtual

Reimplemented from ecaldqm::DQWorker.

Definition at line 43 of file DQWorkerClient.cc.

References hasLumiPlots_, ecaldqm::DQWorker::MEs_, and ecaldqm::DQWorker::setME().

44  {
45  DQWorker::setME(_ps);
46 
47  // Flags the Client ME to run as lumibased:
48  // In offline mode will save the ME client at the end of the LS
49  // See: EcalDQMonitorClient::dqmEndLuminosityBlock
50  for(MESetCollection::iterator mItr(MEs_.begin()); mItr != MEs_.end(); ++mItr){
51  if(mItr->second->getLumiFlag()){
52  hasLumiPlots_ = true;
53  break;
54  }
55  }
56 
57  }
virtual void setME(edm::ParameterSet const &)
Definition: DQWorker.cc:41
MESetCollection MEs_
Definition: DQWorker.h:75
void ecaldqm::DQWorkerClient::setSource ( edm::ParameterSet const &  _params)
overrideprotectedvirtual

Reimplemented from ecaldqm::DQWorker.

Definition at line 61 of file DQWorkerClient.cc.

References ecaldqm::createMESet(), edm::ParameterSet::getParameterNames(), edm::ParameterSet::getUntrackedParameterSet(), dataset::name, ecaldqm::DQWorker::name_, ecaldqm::DQWorker::onlineMode_, sources_, AlCaHLTBitMon_QueryRunRegistry::string, and ecaldqm::DQWorker::verbosity_.

62  {
63  std::vector<std::string> const& sourceNames(_params.getParameterNames());
64 
65  for(unsigned iS(0); iS < sourceNames.size(); iS++){
66  std::string name(sourceNames[iS]);
67  edm::ParameterSet const& params(_params.getUntrackedParameterSet(name));
68 
69  if(onlineMode_ && params.getUntrackedParameter<bool>("online")) continue;
70 
71  sources_.insert(name, createMESet(params));
72  }
73 
74  if(verbosity_ > 1){
75  std::stringstream ss;
76  ss << name_ << ": Using ";
77  for(MESetCollection::const_iterator sItr(sources_.begin()); sItr != sources_.end(); ++sItr)
78  ss << sItr->first << " ";
79  ss << "as sources";
80  edm::LogInfo("EcalDQM") << ss.str();
81  }
82  }
MESetCollection sources_
MESet * createMESet(edm::ParameterSet const &)
Definition: MESetUtils.cc:17
std::string name_
Definition: DQWorker.h:74
void ecaldqm::DQWorkerClient::setStatusManager ( StatusManager const &  _manager)
inline

Definition at line 40 of file DQWorkerClient.h.

References statusManager_.

Referenced by EcalDQMonitorClient::EcalDQMonitorClient().

40 { statusManager_ = &_manager; }
StatusManager const * statusManager_
void ecaldqm::DQWorkerClient::towerAverage_ ( MESet _target,
MESet const &  _source,
float  _threshold 
)
protected

Definition at line 190 of file DQWorkerClient.cc.

References ecaldqm::MESet::beginChannel(), EcalTrigTowerConstituentsMap::constituentsOf(), ws_sso_content_reader::content, EcalTriggerTower, ecaldqm::MESet::end(), ecaldqm::MESet::getBinContent(), ecaldqm::getTrigTowerMap(), SiStripPI::mean, ecaldqm::scConstituents(), ecaldqm::MESet::iterator::toNextChannel(), and ecaldqm::towerId().

Referenced by ecaldqm::LaserClient::producePlots(), ecaldqm::TestPulseClient::producePlots(), ecaldqm::PresampleClient::producePlots(), ecaldqm::PedestalClient::producePlots(), ecaldqm::LedClient::producePlots(), and using_().

191  {
192  bool isQuality(_threshold > 0.);
193 
194  MESet::iterator tEnd(_target.end());
195  for(MESet::iterator tItr(_target.beginChannel()); tItr != tEnd; tItr.toNextChannel()){
196  DetId towerId(tItr->getId());
197 
198  std::vector<DetId> cryIds;
199  if(towerId.subdetId() == EcalTriggerTower)
201  else{
203  }
204 
205  if(cryIds.empty()) return;
206 
207  float mean(0.);
208  float nValid(0.);
209  bool masked(false);
210  for(unsigned iId(0); iId < cryIds.size(); ++iId){
211  float content(_source.getBinContent(cryIds[iId]));
212  if(isQuality){
213  if(content < 0. || content == 2.) continue;
214  if(content == 5.) masked = true;
215  else{
216  nValid += 1;
217  if(content > 2.){
218  masked = true;
219  mean += content - 3.;
220  }
221  else
222  mean += content;
223  }
224  }
225  else{
226  mean += content;
227  nValid += 1.;
228  }
229  }
230 
231  if(isQuality){
232  if(nValid < 1.) tItr->setBinContent(masked ? 5. : 2.);
233  else{
234  mean /= nValid;
235  if(mean < _threshold) tItr->setBinContent(masked ? 3. : 0.);
236  else tItr->setBinContent(masked ? 4. : 1.);
237  }
238  }
239  else
240  tItr->setBinContent(nValid < 1. ? 0. : mean / nValid);
241  }
242  }
EcalTrigTowerConstituentsMap const * getTrigTowerMap()
std::vector< DetId > constituentsOf(const EcalTrigTowerDetId &id) const
Get the constituent detids for this tower id.
unsigned towerId(DetId const &)
Definition: DetId.h:18
std::vector< DetId > scConstituents(EcalScDetId const &)
bool ecaldqm::DQWorkerClient::using_ ( std::string const &  _name,
ProcessType  _type = kJob 
) const
inlineprotected

Definition at line 55 of file DQWorkerClient.h.

References kJob, sources_, and towerAverage_().

Referenced by ecaldqm::CalibrationSummaryClient::producePlots(), ecaldqm::SummaryClient::producePlots(), and ecaldqm::CalibrationSummaryClient::setParams().

56  {
57  MESetCollection::const_iterator itr(sources_.find(_name));
58  if(itr == sources_.end()) return false;
59  if(_type == kJob) return true;
60  else return itr->second->getLumiFlag();
61  }
MESetCollection sources_

Member Data Documentation

bool ecaldqm::DQWorkerClient::hasLumiPlots_
protected

Definition at line 68 of file DQWorkerClient.h.

Referenced by runsOn(), and setME().

std::set<std::string> ecaldqm::DQWorkerClient::qualitySummaries_
protected
MESetCollection ecaldqm::DQWorkerClient::sources_
protected
StatusManager const* ecaldqm::DQWorkerClient::statusManager_
protected