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 ()
 
bool retrieveSource (DQMStore::IGetter &, ProcessType)
 
bool runsOn (ProcessType _type) const
 
void setStatusManager (StatusManager const &_manager)
 
virtual ~DQWorkerClient ()
 
- 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 41 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_
virtual ecaldqm::DQWorkerClient::~DQWorkerClient ( )
inlinevirtual

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:85
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:31
void fillMESetDescriptions(edm::ParameterSetDescription &)
Definition: MESetUtils.cc:129
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:77
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::MESetMulti::reset(), ecaldqm::MESet::reset(), ecaldqm::MESetMulti::resetAll(), ecaldqm::MESet::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
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:56
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:19
std::string name_
Definition: DQWorker.h:74
void ecaldqm::DQWorkerClient::setStatusManager ( StatusManager const &  _manager)
inline

Definition at line 39 of file DQWorkerClient.h.

References statusManager_.

Referenced by EcalDQMonitorClient::EcalDQMonitorClient().

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

Definition at line 173 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_().

174  {
175  bool isQuality(_threshold > 0.);
176 
177  MESet::iterator tEnd(_target.end());
178  for(MESet::iterator tItr(_target.beginChannel()); tItr != tEnd; tItr.toNextChannel()){
179  DetId towerId(tItr->getId());
180 
181  std::vector<DetId> cryIds;
182  if(towerId.subdetId() == EcalTriggerTower)
184  else{
186  }
187 
188  if(cryIds.empty()) return;
189 
190  float mean(0.);
191  float nValid(0.);
192  bool masked(false);
193  for(unsigned iId(0); iId < cryIds.size(); ++iId){
194  float content(_source.getBinContent(cryIds[iId]));
195  if(isQuality){
196  if(content < 0. || content == 2.) continue;
197  if(content == 5.) masked = true;
198  else{
199  nValid += 1;
200  if(content > 2.){
201  masked = true;
202  mean += content - 3.;
203  }
204  else
205  mean += content;
206  }
207  }
208  else{
209  mean += content;
210  nValid += 1.;
211  }
212  }
213 
214  if(isQuality){
215  if(nValid < 1.) tItr->setBinContent(masked ? 5. : 2.);
216  else{
217  mean /= nValid;
218  if(mean < _threshold) tItr->setBinContent(masked ? 3. : 0.);
219  else tItr->setBinContent(masked ? 4. : 1.);
220  }
221  }
222  else
223  tItr->setBinContent(nValid < 1. ? 0. : mean / nValid);
224  }
225  }
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 54 of file DQWorkerClient.h.

References kJob, sources_, and towerAverage_().

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

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

Member Data Documentation

bool ecaldqm::DQWorkerClient::hasLumiPlots_
protected

Definition at line 67 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