CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes
RPCChamberQuality Class Reference

#include <RPCChamberQuality.h>

Inheritance diagram for RPCChamberQuality:
DQMEDHarvester edm::one::EDProducer< edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::EndProcessBlockProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns, edm::one::SharedResources, edm::Accumulator > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 RPCChamberQuality (const edm::ParameterSet &ps)
 
 ~RPCChamberQuality () override
 
- Public Member Functions inherited from DQMEDHarvester
void accumulate (edm::Event const &ev, edm::EventSetup const &es) final
 
void beginJob () override
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &) override
 
virtual void dqmAnalyze (DQMStore::IBooker &, DQMStore::IGetter &, edm::Event const &, edm::EventSetup const &)
 
 DQMEDHarvester ()
 
 DQMEDHarvester (edm::ParameterSet const &iConfig)
 
virtual void dqmEndRun (DQMStore::IBooker &, DQMStore::IGetter &, edm::Run const &, edm::EventSetup const &)
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void endLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &es) final
 
void endProcessBlockProduce (edm::ProcessBlock &) final
 
void endRun (edm::Run const &, edm::EventSetup const &) override
 
void endRunProduce (edm::Run &run, edm::EventSetup const &es) final
 
 ~DQMEDHarvester () override=default
 
- Public Member Functions inherited from edm::one::EDProducer< edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::EndProcessBlockProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns, edm::one::SharedResources, edm::Accumulator >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
std::vector< bool > const & recordProvenanceList () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase &&)=default
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Protected Member Functions

void beginJob () override
 
void dqmEndJob (DQMStore::IBooker &, DQMStore::IGetter &) override
 
void dqmEndLuminosityBlock (DQMStore::IBooker &, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &) override
 
- Protected Member Functions inherited from edm::ProducerBase
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 declare what type of product will make and with which optional label More...
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< B > consumes (edm::InputTag tag) noexcept
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes () noexcept
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag) noexcept
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 

Private Types

enum  chamberQualityState {
  GoodState = 1, OffState = 2, NoisyStripState = 3, NoisyRollState = 4,
  PartiallyDeadState = 5, DeadState = 6, BadShapeState = 7
}
 

Private Member Functions

void fillMonitorElements (DQMStore::IGetter &)
 
void myBooker (DQMStore::IBooker &)
 
void performeClientOperation (std::string, int, MonitorElement *, DQMStore::IGetter &)
 

Private Attributes

bool enableDQMClients_
 
bool init_
 
int lumiCounter_
 
int minEvents
 
int numberOfDisks_
 
int numLumBlock_
 
bool offlineDQM_
 
std::string prefixDir_
 
int prescaleFactor_
 
MonitorElementRpcEvents
 
std::string summaryDir_
 
bool useRollInfo_
 

Static Private Attributes

static const std::string regions_ [3] = {"EndcapNegative", "Barrel", "EndcapPositive"}
 
static const std::string xLabels_ [7]
 

Additional Inherited Members

- Public Types inherited from DQMEDHarvester
typedef dqm::harvesting::DQMStore DQMStore
 
typedef dqm::harvesting::MonitorElement MonitorElement
 
- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > >
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Attributes inherited from DQMEDHarvester
DQMStoredqmstore_
 
edm::GetterOfProducts< DQMTokenjobmegetter_
 
edm::EDPutTokenT< DQMTokenjobToken_
 
edm::GetterOfProducts< DQMTokenlumimegetter_
 
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::GetterOfProducts< DQMTokenrunmegetter_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Definition at line 10 of file RPCChamberQuality.h.

Member Enumeration Documentation

◆ chamberQualityState

Enumerator
GoodState 
OffState 
NoisyStripState 
NoisyRollState 
PartiallyDeadState 
DeadState 
BadShapeState 

Definition at line 29 of file RPCChamberQuality.h.

29  {
30  GoodState = 1,
31  OffState = 2,
32  NoisyStripState = 3,
33  NoisyRollState = 4,
35  DeadState = 6,
36  BadShapeState = 7
37  };

Constructor & Destructor Documentation

◆ RPCChamberQuality()

RPCChamberQuality::RPCChamberQuality ( const edm::ParameterSet ps)

Definition at line 14 of file RPCChamberQuality.cc.

14  {
15  edm::LogVerbatim("rpcchamberquality") << "[RPCChamberQuality]: Constructor";
16 
17  prescaleFactor_ = ps.getUntrackedParameter<int>("PrescaleFactor", 5);
18 
19  std::string subsystemFolder = ps.getUntrackedParameter<std::string>("RPCFolder", "RPC");
20  std::string recHitTypeFolder = ps.getUntrackedParameter<std::string>("RecHitTypeFolder", "AllHits");
21  std::string summaryFolder = ps.getUntrackedParameter<std::string>("SummaryFolder", "SummaryHistograms");
22 
23  summaryDir_ = subsystemFolder + "/" + recHitTypeFolder + "/" + summaryFolder;
24  prefixDir_ = subsystemFolder + "/" + recHitTypeFolder;
25 
26  enableDQMClients_ = ps.getUntrackedParameter<bool>("EnableRPCDqmClient", true);
27 
28  minEvents = ps.getUntrackedParameter<int>("MinimumRPCEvents", 10000);
29  numberOfDisks_ = ps.getUntrackedParameter<int>("NumberOfEndcapDisks", 4);
30  useRollInfo_ = ps.getUntrackedParameter<bool>("UseRollInfo", false);
31  offlineDQM_ = ps.getUntrackedParameter<bool>("OfflineDQM", true);
32 
33  init_ = false;
34  lumiCounter_ = 0;
35 }

References enableDQMClients_, edm::ParameterSet::getUntrackedParameter(), init_, lumiCounter_, minEvents, numberOfDisks_, offlineDQM_, prefixDir_, prescaleFactor_, AlCaHLTBitMon_QueryRunRegistry::string, summaryDir_, and useRollInfo_.

◆ ~RPCChamberQuality()

RPCChamberQuality::~RPCChamberQuality ( )
override

Definition at line 37 of file RPCChamberQuality.cc.

37 { edm::LogVerbatim("rpcchamberquality") << "[RPCChamberQuality]: Destructor "; }

Member Function Documentation

◆ beginJob()

void RPCChamberQuality::beginJob ( void  )
overrideprotectedvirtual

Reimplemented from edm::one::EDProducerBase.

Definition at line 39 of file RPCChamberQuality.cc.

39 { edm::LogVerbatim("rpcchamberquality") << "[RPCChamberQuality]: Begin job "; }

◆ dqmEndJob()

void RPCChamberQuality::dqmEndJob ( DQMStore::IBooker ibooker,
DQMStore::IGetter igetter 
)
overrideprotectedvirtual

Implements DQMEDHarvester.

Definition at line 62 of file RPCChamberQuality.cc.

62  {
63  edm::LogVerbatim("rpcchamberquality") << "[RPCChamberQuality]: End Job";
64 
65  if (enableDQMClients_) {
66  edm::LogVerbatim("rpcchamberquality") << "[RPCChamberQuality]: Performing DQM client operation";
67  if (offlineDQM_ && !init_) {
68  this->myBooker(ibooker);
69  }
70  if (init_) {
71  this->fillMonitorElements(igetter);
72  }
73  }
74 }

References enableDQMClients_, fillMonitorElements(), init_, myBooker(), and offlineDQM_.

◆ dqmEndLuminosityBlock()

void RPCChamberQuality::dqmEndLuminosityBlock ( DQMStore::IBooker ibooker,
DQMStore::IGetter igetter,
edm::LuminosityBlock const &  iLumi,
edm::EventSetup const &  iSetup 
)
overrideprotectedvirtual

Reimplemented from DQMEDHarvester.

Definition at line 41 of file RPCChamberQuality.cc.

44  {
45  edm::LogVerbatim("rpcchamberquality") << "[RPCChamberQuality]: End Lumi Block";
46 
48  edm::LogVerbatim("rpcchamberquality") << "[RPCChamberQuality]: Performing DQM client operation";
49 
50  if (lumiCounter_ == 0) { //book histograms during at firt LB end
51  this->myBooker(ibooker);
53  }
54 
55  if (lumiCounter_ % prescaleFactor_ == 0) { //Fill histograms every N=prescaleFactor_ LBs
56  this->fillMonitorElements(igetter);
57  }
58  }
59  lumiCounter_++;
60 }

References enableDQMClients_, fillMonitorElements(), lumiCounter_, myBooker(), offlineDQM_, and prescaleFactor_.

◆ fillMonitorElements()

void RPCChamberQuality::fillMonitorElements ( DQMStore::IGetter igetter)
private

Definition at line 144 of file RPCChamberQuality.cc.

144  {
145  std::stringstream meName;
146 
147  meName.str("");
148  meName << prefixDir_ << "/RPCEvents";
149  int rpcEvents = minEvents;
150  RpcEvents = igetter.get(meName.str());
151 
152  if (RpcEvents)
153  rpcEvents = (int)RpcEvents->getBinContent(1);
154 
155  if (rpcEvents >= minEvents) {
156  init_ = true;
157 
159 
160  for (int r = 0; r < 3; r++) {
161  meName.str("");
162  meName << summaryDir_ << "/RPCChamberQuality_" << RPCChamberQuality::regions_[r];
163  summary[r] = igetter.get(meName.str());
164 
165  if (summary[r] != nullptr)
166  summary[r]->Reset();
167  }
168 
169  //Barrel
170  for (int wheel = -2; wheel < 3; wheel++) { // loop by Wheels
171  meName.str("");
172  meName << "Roll_vs_Sector_Wheel" << wheel;
173 
174  this->performeClientOperation(meName.str(), 0, summary[1], igetter);
175  } // loop by Wheels
176 
177  // Endcap
178  for (int i = -numberOfDisks_; i <= numberOfDisks_; i++) { //loop on Disks
179  if (i == 0)
180  continue;
181 
182  meName.str("");
183  meName << "Ring_vs_Segment_Disk" << i;
184 
185  if (i < 0)
186  this->performeClientOperation(meName.str(), -1, summary[0], igetter);
187  else
188  this->performeClientOperation(meName.str(), 1, summary[2], igetter);
189  } //loop on Disks
190 
191  MonitorElement* RpcOverview = nullptr;
192  meName.str("");
193  meName << summaryDir_ << "/RPC_System_Quality_Overview";
194  RpcOverview = igetter.get(meName.str());
195  RpcOverview->Reset();
196 
197  if (RpcOverview) { //Fill Overview ME
198  for (int r = 0; r < 3; r++) {
199  if (summary[r] == nullptr)
200  continue;
201  double entries = summary[r]->getEntries();
202  if (entries == 0)
203  continue;
204  for (int x = 1; x <= 7; x++) {
205  RpcOverview->setBinContent(x, r + 1, (summary[r]->getBinContent(x) / entries));
206  }
207  }
208  } //loop by LimiBloks
209  }
210 }

References dqm::implementation::IGetter::get(), dqm::impl::MonitorElement::getBinContent(), mps_fire::i, init_, createfilelist::int, minEvents, numberOfDisks_, performeClientOperation(), prefixDir_, alignCSCRings::r, regions_, dqm::impl::MonitorElement::Reset(), RpcEvents, dqm::impl::MonitorElement::setBinContent(), edmLumisInFiles::summary, summaryDir_, makeMuonMisalignmentScenario::wheel, and x.

Referenced by dqmEndJob(), and dqmEndLuminosityBlock().

◆ myBooker()

void RPCChamberQuality::myBooker ( DQMStore::IBooker ibooker)
private

Definition at line 76 of file RPCChamberQuality.cc.

76  {
77  init_ = true;
78 
80 
82  std::stringstream histoName;
83 
84  rpcdqm::utils rpcUtils;
85 
86  for (int r = 0; r < 3; r++) {
87  histoName.str("");
88  histoName << "RPCChamberQuality_" << regions_[r];
89  me = ibooker.book1D(histoName.str().c_str(), histoName.str().c_str(), 7, 0.5, 7.5);
90 
91  for (int x = 1; x < 8; x++) {
92  me->setBinLabel(x, xLabels_[x - 1]);
93  }
94  }
95 
96  histoName.str("");
97  histoName << "RPC_System_Quality_Overview";
98  me = ibooker.book2D(histoName.str().c_str(), histoName.str().c_str(), 7, 0.5, 7.5, 3, 0.5, 3.5);
99  me->setBinLabel(1, "E-", 2);
100  me->setBinLabel(2, "B", 2);
101  me->setBinLabel(3, "E+", 2);
102 
103  for (int x = 1; x < 8; x++) {
104  me->setBinLabel(x, xLabels_[x - 1]);
105  }
106 
107  for (int w = -2; w < 3; w++) { //Loop on wheels
108 
109  histoName.str("");
110  histoName << "RPCChamberQuality_Roll_vs_Sector_Wheel" << w;
111  me = ibooker.book2D(histoName.str().c_str(), histoName.str().c_str(), 12, 0.5, 12.5, 21, 0.5, 21.5);
112 
113  rpcUtils.labelXAxisSector(me);
114  rpcUtils.labelYAxisRoll(me, 0, w, useRollInfo_);
115 
116  histoName.str("");
117  histoName << "RPCChamberQuality_Distribution_Wheel" << w;
118  me = ibooker.book1D(histoName.str().c_str(), histoName.str().c_str(), 7, 0.5, 7.5);
119 
120  for (int x = 1; x < 8; x++) {
121  me->setBinLabel(x, xLabels_[x - 1]);
122  }
123  } //end loop on wheels
124 
125  for (int d = -numberOfDisks_; d <= numberOfDisks_; d++) { // Loop on disk
126  if (d == 0)
127  continue;
128  histoName.str("");
129  histoName << "RPCChamberQuality_Ring_vs_Segment_Disk" << d; // 2D histo for RPC Qtest
130  me = ibooker.book2D(histoName.str().c_str(), histoName.str().c_str(), 36, 0.5, 36.5, 6, 0.5, 6.5);
131  rpcUtils.labelXAxisSegment(me);
132  rpcUtils.labelYAxisRing(me, 2, useRollInfo_);
133 
134  histoName.str("");
135  histoName << "RPCChamberQuality_Distribution_Disk" << d;
136  me = ibooker.book1D(histoName.str().c_str(), histoName.str().c_str(), 7, 0.5, 7.5);
137 
138  for (int x = 1; x < 8; x++) {
139  me->setBinLabel(x, xLabels_[x - 1]);
140  }
141  }
142 }

References dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::book2D(), ztail::d, HltBtagPostValidation_cff::histoName, init_, rpcdqm::utils::labelXAxisSector(), rpcdqm::utils::labelXAxisSegment(), rpcdqm::utils::labelYAxisRing(), rpcdqm::utils::labelYAxisRoll(), hlt_dqm_clientPB-live_cfg::me, numberOfDisks_, alignCSCRings::r, regions_, dqm::implementation::NavigatorBase::setCurrentFolder(), summaryDir_, useRollInfo_, w, x, and xLabels_.

Referenced by dqmEndJob(), and dqmEndLuminosityBlock().

◆ performeClientOperation()

void RPCChamberQuality::performeClientOperation ( std::string  MESufix,
int  region,
MonitorElement quality,
DQMStore::IGetter igetter 
)
private

Definition at line 212 of file RPCChamberQuality.cc.

215  {
216  MonitorElement* RCQ = nullptr;
217  MonitorElement* RCQD = nullptr;
218 
219  MonitorElement* DEAD = nullptr;
220  MonitorElement* CLS = nullptr;
221  MonitorElement* MULT = nullptr;
222  MonitorElement* NoisySt = nullptr;
223  MonitorElement* Chip = nullptr;
224  MonitorElement* HV = nullptr;
225  MonitorElement* LV = nullptr;
226  std::stringstream meName;
227 
228  meName.str("");
229  meName << summaryDir_ << "/RPCChamberQuality_" << MESufix;
230  RCQ = igetter.get(meName.str());
231  // if (RCQ) RCQ->Reset();
232 
233  int pos = MESufix.find_last_of('_');
234  meName.str("");
235  meName << summaryDir_ << "/RPCChamberQuality_Distribution" << MESufix.substr(pos);
236  RCQD = igetter.get(meName.str());
237  if (RCQD)
238  RCQD->Reset();
239 
240  //get HV Histo
241  meName.str("");
242  meName << summaryDir_ << "/HVStatus_" << MESufix;
243  HV = igetter.get(meName.str());
244  //get LV Histo
245  meName.str("");
246  meName << summaryDir_ << "/LVStatus_" << MESufix;
247  LV = igetter.get(meName.str());
248  //Dead
249  meName.str("");
250  meName << summaryDir_ << "/DeadChannelFraction_" << MESufix;
251  DEAD = igetter.get(meName.str());
252  //ClusterSize
253  meName.str("");
254  meName << summaryDir_ << "/ClusterSizeIn1Bin_" << MESufix;
255  CLS = igetter.get(meName.str());
256  //NoisyStrips
257  meName.str("");
258  meName << summaryDir_ << "/RPCNoisyStrips_" << MESufix;
259  NoisySt = igetter.get(meName.str());
260  //Multiplicity
261  meName.str("");
262  meName << summaryDir_ << "/NumberOfDigi_Mean_" << MESufix;
263  MULT = igetter.get(meName.str());
264  //Asymetry
265  meName.str("");
266  meName << summaryDir_ << "/AsymmetryLeftRight_" << MESufix;
267  Chip = igetter.get(meName.str());
268 
269  int xBinMax, yBinMax;
270 
271  if (region != 0)
272  xBinMax = 37;
273  else
274  xBinMax = 13;
275 
276  for (int x = 1; x < xBinMax; x++) {
277  if (region != 0) {
278  yBinMax = 7;
279  } else {
280  if (x == 4)
281  yBinMax = 22;
282  else if (x == 9 || x == 11)
283  yBinMax = 16;
284  else
285  yBinMax = 18;
286  }
287  for (int y = 1; y < yBinMax; y++) {
288  int hv = 1;
289  int lv = 1;
290  float dead = 0;
291  float firstbin = 0;
292  float noisystrips = 0;
293  float mult = 0;
294  float asy = 0;
295  chamberQualityState chamberState = GoodState;
296 
297  if (HV)
298  hv = (int)HV->getBinContent(x, y);
299  if (LV)
300  lv = (int)LV->getBinContent(x, y);
301 
302  if (hv != 1 || lv != 1) {
303  chamberState = OffState;
304  } else {
305  if (DEAD)
306  dead = DEAD->getBinContent(x, y);
307  if (dead >= 0.80) {
308  chamberState = DeadState;
309  } else if (0.33 <= dead && dead < 0.80) {
310  chamberState = PartiallyDeadState;
311  } else {
312  if (CLS)
313  firstbin = CLS->getBinContent(x, y);
314  if (firstbin >= 0.88) {
315  chamberState = NoisyStripState;
316  } else {
317  if (NoisySt)
318  noisystrips = NoisySt->getBinContent(x, y);
319  if (noisystrips > 0) {
320  chamberState = NoisyStripState;
321  } else {
322  if (MULT)
323  mult = MULT->getBinContent(x, y);
324  if (mult >= 6) {
325  chamberState = NoisyRollState;
326  } else {
327  if (Chip)
328  asy = Chip->getBinContent(x, y);
329  if (asy > 0.35) {
330  chamberState = BadShapeState;
331  } else {
332  chamberState = GoodState;
333  }
334  }
335  }
336  }
337  }
338  }
339  if (RCQ)
340  RCQ->setBinContent(x, y, chamberState);
341  if (RCQD)
342  RCQD->Fill(chamberState);
343  if (quality)
344  quality->Fill(chamberState);
345  }
346  }
347  return;
348 }

References BadShapeState, L1DTConfigBti_cff::DEAD, DeadState, dqm::impl::MonitorElement::Fill(), dqm::implementation::IGetter::get(), dqm::impl::MonitorElement::getBinContent(), GoodState, createfilelist::int, VarParsing::mult, NoisyRollState, NoisyStripState, OffState, PartiallyDeadState, quality, HLT_FULL_cff::region, dqm::impl::MonitorElement::Reset(), dqm::impl::MonitorElement::setBinContent(), summaryDir_, x, and y.

Referenced by fillMonitorElements().

Member Data Documentation

◆ enableDQMClients_

bool RPCChamberQuality::enableDQMClients_
private

Definition at line 41 of file RPCChamberQuality.h.

Referenced by dqmEndJob(), dqmEndLuminosityBlock(), and RPCChamberQuality().

◆ init_

bool RPCChamberQuality::init_
private

Definition at line 53 of file RPCChamberQuality.h.

Referenced by dqmEndJob(), fillMonitorElements(), myBooker(), and RPCChamberQuality().

◆ lumiCounter_

int RPCChamberQuality::lumiCounter_
private

Definition at line 39 of file RPCChamberQuality.h.

Referenced by dqmEndLuminosityBlock(), and RPCChamberQuality().

◆ minEvents

int RPCChamberQuality::minEvents
private

Definition at line 55 of file RPCChamberQuality.h.

Referenced by fillMonitorElements(), and RPCChamberQuality().

◆ numberOfDisks_

int RPCChamberQuality::numberOfDisks_
private

Definition at line 51 of file RPCChamberQuality.h.

Referenced by fillMonitorElements(), myBooker(), and RPCChamberQuality().

◆ numLumBlock_

int RPCChamberQuality::numLumBlock_
private

Definition at line 56 of file RPCChamberQuality.h.

◆ offlineDQM_

bool RPCChamberQuality::offlineDQM_
private

Definition at line 42 of file RPCChamberQuality.h.

Referenced by dqmEndJob(), dqmEndLuminosityBlock(), and RPCChamberQuality().

◆ prefixDir_

std::string RPCChamberQuality::prefixDir_
private

Definition at line 46 of file RPCChamberQuality.h.

Referenced by fillMonitorElements(), and RPCChamberQuality().

◆ prescaleFactor_

int RPCChamberQuality::prescaleFactor_
private

Definition at line 50 of file RPCChamberQuality.h.

Referenced by dqmEndLuminosityBlock(), and RPCChamberQuality().

◆ regions_

const std::string RPCChamberQuality::regions_ = {"EndcapNegative", "Barrel", "EndcapPositive"}
staticprivate

Definition at line 48 of file RPCChamberQuality.h.

Referenced by fillMonitorElements(), and myBooker().

◆ RpcEvents

MonitorElement* RPCChamberQuality::RpcEvents
private

Definition at line 28 of file RPCChamberQuality.h.

Referenced by fillMonitorElements().

◆ summaryDir_

std::string RPCChamberQuality::summaryDir_
private

◆ useRollInfo_

bool RPCChamberQuality::useRollInfo_
private

Definition at line 49 of file RPCChamberQuality.h.

Referenced by myBooker(), and RPCChamberQuality().

◆ xLabels_

const std::string RPCChamberQuality::xLabels_
staticprivate
Initial value:
= {
"Good", "OFF", "Nois.St", "Nois.Ch", "Part.Dead", "Dead", "Bad.Shape"}

Definition at line 47 of file RPCChamberQuality.h.

Referenced by myBooker().

rpcdqm::utils::labelXAxisSegment
void labelXAxisSegment(MonitorElement *myMe)
Definition: utils.h:247
RPCChamberQuality::fillMonitorElements
void fillMonitorElements(DQMStore::IGetter &)
Definition: RPCChamberQuality.cc:144
RPCChamberQuality::lumiCounter_
int lumiCounter_
Definition: RPCChamberQuality.h:39
DDAxes::y
mps_fire.i
i
Definition: mps_fire.py:428
RPCChamberQuality::enableDQMClients_
bool enableDQMClients_
Definition: RPCChamberQuality.h:41
RPCChamberQuality::BadShapeState
Definition: RPCChamberQuality.h:36
RPCChamberQuality::GoodState
Definition: RPCChamberQuality.h:30
RPCChamberQuality::DeadState
Definition: RPCChamberQuality.h:35
RPCChamberQuality::NoisyRollState
Definition: RPCChamberQuality.h:33
RPCChamberQuality::chamberQualityState
chamberQualityState
Definition: RPCChamberQuality.h:29
pos
Definition: PixelAliasList.h:18
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
RPCChamberQuality::regions_
static const std::string regions_[3]
Definition: RPCChamberQuality.h:48
RPCChamberQuality::PartiallyDeadState
Definition: RPCChamberQuality.h:34
dqm::legacy::MonitorElement
Definition: MonitorElement.h:462
rpcdqm::utils::labelYAxisRoll
void labelYAxisRoll(MonitorElement *myMe, int region, int ring, bool useRollInfo)
Definition: utils.h:265
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
DDAxes::x
RPCChamberQuality::prescaleFactor_
int prescaleFactor_
Definition: RPCChamberQuality.h:50
RPCChamberQuality::RpcEvents
MonitorElement * RpcEvents
Definition: RPCChamberQuality.h:28
quality
const uint32_t *__restrict__ Quality * quality
Definition: CAHitNtupletGeneratorKernelsImpl.h:109
L1DTConfigBti_cff.DEAD
DEAD
Definition: L1DTConfigBti_cff.py:7
rpcdqm::utils
Definition: utils.h:29
RPCChamberQuality::offlineDQM_
bool offlineDQM_
Definition: RPCChamberQuality.h:42
w
const double w
Definition: UKUtility.cc:23
RPCChamberQuality::performeClientOperation
void performeClientOperation(std::string, int, MonitorElement *, DQMStore::IGetter &)
Definition: RPCChamberQuality.cc:212
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
dqm::impl::MonitorElement::Reset
virtual void Reset()
Remove all data from the ME, keept the empty histogram with all its settings.
Definition: MonitorElement.cc:354
RPCChamberQuality::NoisyStripState
Definition: RPCChamberQuality.h:32
RPCChamberQuality::numberOfDisks_
int numberOfDisks_
Definition: RPCChamberQuality.h:51
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
HLT_FULL_cff.region
region
Definition: HLT_FULL_cff.py:88271
makeMuonMisalignmentScenario.wheel
wheel
Definition: makeMuonMisalignmentScenario.py:319
createfilelist.int
int
Definition: createfilelist.py:10
edmLumisInFiles.summary
summary
Definition: edmLumisInFiles.py:39
RPCChamberQuality::xLabels_
static const std::string xLabels_[7]
Definition: RPCChamberQuality.h:47
RPCChamberQuality::OffState
Definition: RPCChamberQuality.h:31
rpcdqm::utils::labelYAxisRing
void labelYAxisRing(MonitorElement *myMe, int numberOfRings, bool useRollInfo)
Definition: utils.h:291
RPCChamberQuality::summaryDir_
std::string summaryDir_
Definition: RPCChamberQuality.h:46
alignCSCRings.r
r
Definition: alignCSCRings.py:93
dqm::impl::MonitorElement::setBinContent
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
Definition: MonitorElement.cc:691
edm::LogVerbatim
Log< level::Info, true > LogVerbatim
Definition: MessageLogger.h:128
dqm::implementation::IBooker::book2D
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:177
RPCChamberQuality::useRollInfo_
bool useRollInfo_
Definition: RPCChamberQuality.h:49
LV
math::XYZTLorentzVectorD LV
Definition: HLTTauDQMPlotter.h:15
rpcdqm::utils::labelXAxisSector
void labelXAxisSector(MonitorElement *myMe)
Definition: utils.h:231
dqm::implementation::IGetter::get
virtual MonitorElement * get(std::string const &fullpath) const
Definition: DQMStore.cc:651
RPCChamberQuality::init_
bool init_
Definition: RPCChamberQuality.h:53
HltBtagPostValidation_cff.histoName
histoName
Definition: HltBtagPostValidation_cff.py:17
VarParsing.mult
mult
Definition: VarParsing.py:659
ztail.d
d
Definition: ztail.py:151
RPCChamberQuality::minEvents
int minEvents
Definition: RPCChamberQuality.h:55
hlt_dqm_clientPB-live_cfg.me
me
Definition: hlt_dqm_clientPB-live_cfg.py:61
dqm::impl::MonitorElement::getBinContent
virtual double getBinContent(int binx) const
get content of bin (1-D)
Definition: MonitorElement.cc:592
RPCChamberQuality::prefixDir_
std::string prefixDir_
Definition: RPCChamberQuality.h:46
dqm::implementation::IBooker::book1D
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
RPCChamberQuality::myBooker
void myBooker(DQMStore::IBooker &)
Definition: RPCChamberQuality.cc:76