CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
DTBlockedROChannelsTest Class Reference

#include <DTBlockedROChannelsTest.h>

Inheritance diagram for DTBlockedROChannelsTest:
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

Classes

class  DTLinkBinsMap
 
class  DTRobBinsMap
 

Public Member Functions

 DTBlockedROChannelsTest (const edm::ParameterSet &ps)
 Constructor. More...
 
 ~DTBlockedROChannelsTest () override
 Destructor. More...
 
- 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
 
 EDProducer (const EDProducer &)=delete
 
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
 
const EDProduceroperator= (const EDProducer &)=delete
 
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
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
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 beginRun (const edm::Run &, const edm::EventSetup &) override
 BeginRun. More...
 
void dqmEndJob (DQMStore::IBooker &, DQMStore::IGetter &) override
 
void dqmEndLuminosityBlock (DQMStore::IBooker &, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &) override
 DQM Client Diagnostic in online mode. More...
 
void fillChamberMap (DQMStore::IGetter &igetter, const edm::EventSetup &c)
 
void performClientDiagnostic (DQMStore::IGetter &igetter)
 DQM Client operations. More...
 
- 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 Member Functions

int readOutToGeometry (int dduId, int rosNumber, int robNumber, int &wheel, int &station, int &sector)
 
int theDDU (int crate, int slot, int link, bool tenDDU)
 
int theROB (int slot, int link)
 
int theROS (int slot, int link)
 

Private Attributes

std::map< DTChamberId, DTRobBinsMapchamberMap
 
std::map< DTChamberId, DTLinkBinsMapchamberMapUros
 
bool checkUros
 
DTTimeEvolutionHistohSystFractionVsLS
 
const DTReadOutMappingmapping
 
edm::ESGetToken< DTReadOutMapping, DTReadOutMappingRcdmappingToken_
 
int nevents
 
int neventsPrev
 
unsigned int nLumiSegs
 
int nupdates
 
bool offlineMode
 
int prescaleFactor
 
unsigned int prevNLumiSegs
 
double prevTotalPerc
 
std::map< int, double > resultsPerLumi
 
int run
 
MonitorElementsummaryHisto
 
std::map< int, MonitorElement * > wheelHistos
 

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 25 of file DTBlockedROChannelsTest.h.

Constructor & Destructor Documentation

◆ DTBlockedROChannelsTest()

DTBlockedROChannelsTest::DTBlockedROChannelsTest ( const edm::ParameterSet ps)

Constructor.

Definition at line 23 of file DTBlockedROChannelsTest.cc.

24  : nevents(0),
25  neventsPrev(0),
26  prevNLumiSegs(0),
27  prevTotalPerc(0),
28  mappingToken_(esConsumes<edm::Transition::BeginRun>()),
29  hSystFractionVsLS(nullptr) {
30  LogTrace("DTDQM|DTRawToDigi|DTMonitorClient|DTBlockedROChannelsTest") << "[DTBlockedROChannelsTest]: Constructor";
31 
32  // prescale on the # of LS to update the test
33  prescaleFactor = ps.getUntrackedParameter<int>("diagnosticPrescale", 1);
34 
35  offlineMode = ps.getUntrackedParameter<bool>("offlineMode", true);
36 
37  checkUros = ps.getUntrackedParameter<bool>("checkUros", true);
38 }

References edm::BeginRun, checkUros, edm::ParameterSet::getUntrackedParameter(), LogTrace, offlineMode, and prescaleFactor.

◆ ~DTBlockedROChannelsTest()

DTBlockedROChannelsTest::~DTBlockedROChannelsTest ( )
override

Destructor.

Definition at line 40 of file DTBlockedROChannelsTest.cc.

40  {
41  LogTrace("DTDQM|DTRawToDigi|DTMonitorClient|DTBlockedROChannelsTest")
42  << "DataIntegrityTest: analyzed " << nupdates << " updates";
43 }

References LogTrace, and nupdates.

Member Function Documentation

◆ beginRun()

void DTBlockedROChannelsTest::beginRun ( const edm::Run run,
const edm::EventSetup setup 
)
overrideprotected

BeginRun.

Definition at line 45 of file DTBlockedROChannelsTest.cc.

45  {
46  // get the RO mapping
47  mapping = &setup.getData(mappingToken_);
48  nupdates = 0;
49  return;
50 }

References mapping, mappingToken_, nupdates, and singleTopDQM_cfi::setup.

◆ dqmEndJob()

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

Implements DQMEDHarvester.

Definition at line 192 of file DTBlockedROChannelsTest.cc.

192  {
193  if (offlineMode) {
194  LogTrace("DTDQM|DTRawToDigi|DTMonitorClient|DTBlockedROChannelsTest")
195  << "[DTBlockedROChannelsTest] endRun called. Client called in offline mode, performing operations.";
196  performClientDiagnostic(igetter);
197  }
198 }

References LogTrace, offlineMode, and performClientDiagnostic().

◆ dqmEndLuminosityBlock()

void DTBlockedROChannelsTest::dqmEndLuminosityBlock ( DQMStore::IBooker ibooker,
DQMStore::IGetter igetter,
edm::LuminosityBlock const &  lumiSeg,
edm::EventSetup const &  context 
)
overrideprotectedvirtual

DQM Client Diagnostic in online mode.

Reimplemented from DQMEDHarvester.

Definition at line 128 of file DTBlockedROChannelsTest.cc.

131  {
132  //FR moved the following from beginJob!
133 
134  // book the summary histogram
135 
136  if (wheelHistos.empty()) { // this is an attempt to make these bookings only once!
137 
138  ibooker.setCurrentFolder("DT/00-ROChannels");
139  summaryHisto = ibooker.book2D("ROChannelSummary", "Summary Blocked RO Channels", 12, 1, 13, 5, -2, 3);
140  summaryHisto->setAxisTitle("Sector", 1);
141  summaryHisto->setAxisTitle("Wheel", 2);
142 
143  for (int wheel = -2; wheel != 3; ++wheel) {
144  stringstream namestream;
145  namestream << "ROChannelSummary_W" << wheel;
146  stringstream titlestream;
147  titlestream << "Blocked RO Channels (Wh " << wheel << ")";
148  wheelHistos[wheel] = ibooker.book2D(namestream.str().c_str(), titlestream.str().c_str(), 12, 1, 13, 4, 1, 5);
149  wheelHistos[wheel]->setAxisTitle("Sector", 1);
150  wheelHistos[wheel]->setBinLabel(1, "MB1", 2);
151  wheelHistos[wheel]->setBinLabel(2, "MB2", 2);
152  wheelHistos[wheel]->setBinLabel(3, "MB3", 2);
153  wheelHistos[wheel]->setBinLabel(4, "MB4", 2);
154  }
155 
156  if (!offlineMode) {
157  hSystFractionVsLS = new DTTimeEvolutionHisto(ibooker, "EnabledROChannelsVsLS", "% RO channels", 500, 5, true, 3);
158  }
159  } // end attempt to make these bookings only once!
160 
161  //FR moved here from beginRun
162 
163  if (checkUros) {
164  if (chamberMapUros.empty())
165  fillChamberMap(igetter, context);
166  } else {
167  if (chamberMap.empty())
168  fillChamberMap(igetter, context);
169  }
170 
171  //FR moved here from beginLuminosityBlock
172  run = lumiSeg.run();
173 
174  //FR moved here from endLuminosityBlock
175  // counts number of lumiSegs
176  nLumiSegs = lumiSeg.id().luminosityBlock();
177 
178  // prescale factor
179  if (nLumiSegs % prescaleFactor != 0 || offlineMode)
180  return;
181 
182  LogTrace("DTDQM|DTRawToDigi|DTMonitorClient|DTBlockedROChannelsTest")
183  << "[DTBlockedROChannelsTest]: End of LS " << nLumiSegs
184  << ". Client called in online mode, performing client operations";
185 
186  performClientDiagnostic(igetter);
187 
188  // counts number of updats
189  nupdates++;
190 }

References dqm::implementation::IBooker::book2D(), chamberMap, chamberMapUros, checkUros, visDQMUpload::context, fillChamberMap(), hSystFractionVsLS, edm::LuminosityBlockBase::id(), LogTrace, edm::LuminosityBlockID::luminosityBlock(), nLumiSegs, nupdates, offlineMode, performClientDiagnostic(), prescaleFactor, edm::LuminosityBlockBase::run(), run, dqm::impl::MonitorElement::setAxisTitle(), dqm::implementation::NavigatorBase::setCurrentFolder(), summaryHisto, makeMuonMisalignmentScenario::wheel, and wheelHistos.

◆ fillChamberMap()

void DTBlockedROChannelsTest::fillChamberMap ( DQMStore::IGetter igetter,
const edm::EventSetup c 
)
protected

Definition at line 52 of file DTBlockedROChannelsTest.cc.

52  {
53  int dummy = 0;
54  bool tenDDU = !mapping->readOutToGeometry(779, 7, 1, 1, 1, dummy, dummy, dummy, dummy, dummy, dummy);
55 
56  if (checkUros) {
57  for (int crate = FEDNumbering::MINDTUROSFEDID; crate <= FEDNumbering::MAXDTUROSFEDID; ++crate) { //loop over FEDs
58  for (int mapSlot = 1; mapSlot != 13; ++mapSlot) { //loop over mapSlot
59  for (int link = 0; link != 72; ++link) { //loop over links
60  //skip non existing links
61  if (mapSlot == 6)
62  continue;
63  if (crate == 1370 && mapSlot > 5)
64  continue;
65  if ((mapSlot == 5 || mapSlot == 11) && link > 11)
66  continue;
67 
68  int wheel = 0;
69  int station = 0;
70  int sector = 0;
71 
72  int dduId = theDDU(crate, mapSlot, link, tenDDU);
73  int ros = theROS(mapSlot, link);
74  int rob = theROB(mapSlot, link);
75 
76  // mapping->readOutToGeometry(dduId,ros,rob,2,2,wheel,station,sector,dummy,dummy,dummy);
77  readOutToGeometry(dduId, ros, rob, wheel, station, sector);
78  if (station > 0) {
79  //std::cout<<" FED "<<crate<<" mapSlot "<< mapSlot<<" Link "<<link<<" Wh "<<wheel<<" station "<<station<<" sector "<<sector <<endl;
80  DTChamberId chId(wheel, station, sector);
81  if (chamberMapUros.find(chId) == chamberMapUros.end()) {
82  chamberMapUros[chId] = DTLinkBinsMap(igetter, dduId, ros);
83  chamberMapUros[chId].addLinkBin(link % 24);
84  }
85  chamberMapUros[chId].addLinkBin(link % 24);
86  } else {
87  LogTrace("DTDQM|DTRawToDigi|DTMonitorClient|DTBlockedROChannelsTest")
88  << "[DTLinkBinsMap] FED: " << crate << "mapSlot: " << mapSlot << " Link: " << link
89  << " not in the mapping!" << endl;
90  }
91  } //loop on links
92  } //loop on mapSlots
93  } //loop on crates
94  } //checkUros
95  else {
96  // fill the map of the robs per chamber
97  // //FIXME: monitoring only real used FEDs
98  for (int dduId = FEDNumbering::MINDTFEDID; dduId <= FEDNumbering::MAXDTFEDID; ++dduId) { //loop over DDUs
99  for (int ros = 1; ros != 13; ++ros) { // loop over ROSs
100  for (int rob = 1; rob != 26; ++rob) { // loop over ROBs
101  int wheel = 0;
102  int station = 0;
103  int sector = 0;
104  if (!mapping->readOutToGeometry(dduId, ros, rob - 1, 0, 2, wheel, station, sector, dummy, dummy, dummy) ||
105  !mapping->readOutToGeometry(dduId, ros, rob - 1, 0, 16, wheel, station, sector, dummy, dummy, dummy)) {
106  DTChamberId chId(wheel, station, sector);
107  if (chamberMap.find(chId) == chamberMap.end()) {
108  chamberMap[chId] = DTRobBinsMap(igetter, dduId, ros);
109  chamberMap[chId].addRobBin(rob);
110  }
111  chamberMap[chId].addRobBin(rob);
112  } else {
113  LogTrace("DTDQM|DTRawToDigi|DTMonitorClient|DTBlockedROChannelsTest")
114  << "[DTRobBinsMap] FED: " << dduId << " ROS " << ros << " ROB: " << rob - 1 << " not in the mapping!"
115  << endl;
116  }
117  }
118  }
119  }
120  // loop over all chambers and remove the init flag
121  for (map<DTChamberId, DTRobBinsMap>::iterator chAndRobs = chamberMap.begin(); chAndRobs != chamberMap.end();
122  ++chAndRobs) {
123  chAndRobs->second.init(false);
124  }
125  } //Legacy
126 }

References chamberMap, chamberMapUros, checkUros, MainPageGenerator::link, LogTrace, mapping, FEDNumbering::MAXDTFEDID, FEDNumbering::MAXDTUROSFEDID, FEDNumbering::MINDTFEDID, FEDNumbering::MINDTUROSFEDID, readOutToGeometry(), DTReadOutMapping::readOutToGeometry(), relativeConstraints::station, theDDU(), theROB(), theROS(), and makeMuonMisalignmentScenario::wheel.

Referenced by dqmEndLuminosityBlock().

◆ performClientDiagnostic()

void DTBlockedROChannelsTest::performClientDiagnostic ( DQMStore::IGetter igetter)
protected

DQM Client operations.

Definition at line 200 of file DTBlockedROChannelsTest.cc.

200  {
201  //FR: I've commented the if below. Either in online mode or in offline mode, when the diagnostic is called
202  // compute first the number of events. It will be: event/lumisection in the online case, it will be: total number
203  // of events (neventsPrev=0) in the offline case, when the diagnostic is called only once from the dqmEndJob
204 
205  //if(nevents == 0) { // hack to work also in offline DQM
206  MonitorElement* procEvt = igetter.get("DT/EventInfo/processedEvents");
207  if (procEvt != nullptr) {
208  int procEvents = procEvt->getIntValue();
209  nevents = procEvents - neventsPrev;
210  neventsPrev = procEvents;
211  }
212  //}
213 
214  double totalPerc = prevTotalPerc;
215  // check again!
216  if (nevents != 0) { // skip the computation if no events in the last LS
217 
218  // reset the histos
219  summaryHisto->Reset();
220  for (int wheel = -2; wheel != 3; ++wheel) {
221  wheelHistos[wheel]->Reset();
222  }
223 
224  totalPerc = 0.;
225 
226  if (checkUros) {
227  // loop over all chambers and fill the wheel plots
228  for (map<DTChamberId, DTLinkBinsMap>::iterator chAndLinks = chamberMapUros.begin();
229  chAndLinks != chamberMapUros.end();
230  ++chAndLinks) {
231  DTChamberId chId = (*chAndLinks).first;
232  double scale = 1.;
233  int sectorForPlot = chId.sector();
234  if (sectorForPlot == 13 || (sectorForPlot == 4 && chId.station() == 4)) {
235  sectorForPlot = 4;
236  scale = 0.5;
237  } else if (sectorForPlot == 14 || (sectorForPlot == 10 && chId.station() == 4)) {
238  sectorForPlot = 10;
239  scale = 0.5;
240  }
241 
242  // NOTE: can be called only ONCE per event per each chamber
243  double chPercent = (*chAndLinks).second.getChamberPercentage(igetter);
244  wheelHistos[chId.wheel()]->Fill(sectorForPlot, chId.station(), scale * chPercent);
245  totalPerc += chPercent * scale * 1. /
246  240.; // CB has to be 240 as double stations are taken into account by scale factor
247 
248  // Fill the summary
249  summaryHisto->Fill(sectorForPlot, chId.wheel(), 0.25 * scale * chPercent);
250  }
251  } //Uros case
252  else { //Legacy case
253  // loop over all chambers and fill the wheel plots
254  for (map<DTChamberId, DTRobBinsMap>::iterator chAndRobs = chamberMap.begin(); chAndRobs != chamberMap.end();
255  ++chAndRobs) {
256  DTChamberId chId = (*chAndRobs).first;
257  double scale = 1.;
258  int sectorForPlot = chId.sector();
259  if (sectorForPlot == 13 || (sectorForPlot == 4 && chId.station() == 4)) {
260  sectorForPlot = 4;
261  scale = 0.5;
262  } else if (sectorForPlot == 14 || (sectorForPlot == 10 && chId.station() == 4)) {
263  sectorForPlot = 10;
264  scale = 0.5;
265  }
266 
267  // NOTE: can be called only ONCE per event per each chamber
268  double chPercent = (*chAndRobs).second.getChamberPercentage(igetter);
269  wheelHistos[chId.wheel()]->Fill(sectorForPlot, chId.station(), scale * chPercent);
270  totalPerc += chPercent * scale * 1. /
271  240.; // CB has to be 240 as double stations are taken into account by scale factor
272 
273  // Fill the summary
274  summaryHisto->Fill(sectorForPlot, chId.wheel(), 0.25 * scale * chPercent);
275  }
276  } //Legacy case
277  } //nevents != 0
278 
279  if (!offlineMode) { // fill trend histo only in online
282  prevTotalPerc = totalPerc;
283  }
284 }

References DTTimeEvolutionHisto::accumulateValueTimeSlot(), chamberMap, chamberMapUros, checkUros, dqm::impl::MonitorElement::Fill(), dqm::implementation::IGetter::get(), dqm::impl::MonitorElement::getIntValue(), hSystFractionVsLS, nevents, neventsPrev, nLumiSegs, offlineMode, prevTotalPerc, dqm::impl::MonitorElement::Reset(), L1EGammaCrystalsEmulatorProducer_cfi::scale, DTChamberId::sector(), DTChamberId::station(), summaryHisto, DTTimeEvolutionHisto::updateTimeSlot(), DTChamberId::wheel(), makeMuonMisalignmentScenario::wheel, and wheelHistos.

Referenced by dqmEndJob(), and dqmEndLuminosityBlock().

◆ readOutToGeometry()

int DTBlockedROChannelsTest::readOutToGeometry ( int  dduId,
int  rosNumber,
int  robNumber,
int &  wheel,
int &  station,
int &  sector 
)
private

Definition at line 286 of file DTBlockedROChannelsTest.cc.

286  {
287  int dummy = 0;
288  return mapping->readOutToGeometry(dduId, ros, rob, 2, 2, wheel, station, sector, dummy, dummy, dummy);
289 }

References mapping, DTReadOutMapping::readOutToGeometry(), relativeConstraints::station, and makeMuonMisalignmentScenario::wheel.

Referenced by fillChamberMap().

◆ theDDU()

int DTBlockedROChannelsTest::theDDU ( int  crate,
int  slot,
int  link,
bool  tenDDU 
)
private

Definition at line 448 of file DTBlockedROChannelsTest.cc.

448  {
449  int ros = theROS(slot, link);
450 
451  int ddu = 772;
452  //if (crate == 1368) { ddu = 775; }
453  //Needed just in case this FED should be used due to fibers lenght
454 
455  if (crate == FEDNumbering::MINDTUROSFEDID) {
456  if (slot < 7)
457  ddu = 770;
458  else
459  ddu = 771;
460  }
461 
462  if (crate == (FEDNumbering::MINDTUROSFEDID + 1)) {
463  ddu = 772;
464  }
465 
466  if (crate == FEDNumbering::MAXDTUROSFEDID) {
467  if (slot < 7)
468  ddu = 773;
469  else
470  ddu = 774;
471  }
472 
473  if (ros > 6 && tenDDU && ddu < 775)
474  ddu += 5;
475 
476  return ddu;
477 }

References MainPageGenerator::link, FEDNumbering::MAXDTUROSFEDID, FEDNumbering::MINDTUROSFEDID, and theROS().

Referenced by fillChamberMap().

◆ theROB()

int DTBlockedROChannelsTest::theROB ( int  slot,
int  link 
)
private

Definition at line 487 of file DTBlockedROChannelsTest.cc.

487  {
488  if (slot % 6 == 5)
489  return 23;
490 
491  int rob = link % 24;
492  if (rob < 15)
493  return rob;
494  if (rob == 15)
495  return 24;
496  return rob - 1;
497 }

References MainPageGenerator::link.

Referenced by fillChamberMap().

◆ theROS()

int DTBlockedROChannelsTest::theROS ( int  slot,
int  link 
)
private

Definition at line 479 of file DTBlockedROChannelsTest.cc.

479  {
480  if (slot % 6 == 5)
481  return link + 1;
482 
483  int ros = (link / 24) + 3 * (slot % 6) - 2;
484  return ros;
485 }

References MainPageGenerator::link.

Referenced by fillChamberMap(), and theDDU().

Member Data Documentation

◆ chamberMap

std::map<DTChamberId, DTRobBinsMap> DTBlockedROChannelsTest::chamberMap
private

◆ chamberMapUros

std::map<DTChamberId, DTLinkBinsMap> DTBlockedROChannelsTest::chamberMapUros
private

◆ checkUros

bool DTBlockedROChannelsTest::checkUros
private

◆ hSystFractionVsLS

DTTimeEvolutionHisto* DTBlockedROChannelsTest::hSystFractionVsLS
private

Definition at line 79 of file DTBlockedROChannelsTest.h.

Referenced by dqmEndLuminosityBlock(), and performClientDiagnostic().

◆ mapping

const DTReadOutMapping* DTBlockedROChannelsTest::mapping
private

◆ mappingToken_

edm::ESGetToken<DTReadOutMapping, DTReadOutMappingRcd> DTBlockedROChannelsTest::mappingToken_
private

Definition at line 71 of file DTBlockedROChannelsTest.h.

Referenced by beginRun().

◆ nevents

int DTBlockedROChannelsTest::nevents
private

Definition at line 63 of file DTBlockedROChannelsTest.h.

Referenced by performClientDiagnostic().

◆ neventsPrev

int DTBlockedROChannelsTest::neventsPrev
private

Definition at line 64 of file DTBlockedROChannelsTest.h.

Referenced by performClientDiagnostic().

◆ nLumiSegs

unsigned int DTBlockedROChannelsTest::nLumiSegs
private

Definition at line 65 of file DTBlockedROChannelsTest.h.

Referenced by dqmEndLuminosityBlock(), and performClientDiagnostic().

◆ nupdates

int DTBlockedROChannelsTest::nupdates
private

◆ offlineMode

bool DTBlockedROChannelsTest::offlineMode
private

◆ prescaleFactor

int DTBlockedROChannelsTest::prescaleFactor
private

Definition at line 60 of file DTBlockedROChannelsTest.h.

Referenced by dqmEndLuminosityBlock(), and DTBlockedROChannelsTest().

◆ prevNLumiSegs

unsigned int DTBlockedROChannelsTest::prevNLumiSegs
private

Definition at line 66 of file DTBlockedROChannelsTest.h.

◆ prevTotalPerc

double DTBlockedROChannelsTest::prevTotalPerc
private

Definition at line 67 of file DTBlockedROChannelsTest.h.

Referenced by performClientDiagnostic().

◆ resultsPerLumi

std::map<int, double> DTBlockedROChannelsTest::resultsPerLumi
private

Definition at line 78 of file DTBlockedROChannelsTest.h.

◆ run

int DTBlockedROChannelsTest::run
private

◆ summaryHisto

MonitorElement* DTBlockedROChannelsTest::summaryHisto
private

Definition at line 76 of file DTBlockedROChannelsTest.h.

Referenced by dqmEndLuminosityBlock(), and performClientDiagnostic().

◆ wheelHistos

std::map<int, MonitorElement*> DTBlockedROChannelsTest::wheelHistos
private

Definition at line 75 of file DTBlockedROChannelsTest.h.

Referenced by dqmEndLuminosityBlock(), and performClientDiagnostic().

DTBlockedROChannelsTest::theROB
int theROB(int slot, int link)
Definition: DTBlockedROChannelsTest.cc:487
DTBlockedROChannelsTest::nLumiSegs
unsigned int nLumiSegs
Definition: DTBlockedROChannelsTest.h:65
L1EGammaCrystalsEmulatorProducer_cfi.scale
scale
Definition: L1EGammaCrystalsEmulatorProducer_cfi.py:10
MainPageGenerator.link
link
Definition: MainPageGenerator.py:271
DTBlockedROChannelsTest::summaryHisto
MonitorElement * summaryHisto
Definition: DTBlockedROChannelsTest.h:76
DTBlockedROChannelsTest::prevNLumiSegs
unsigned int prevNLumiSegs
Definition: DTBlockedROChannelsTest.h:66
DTBlockedROChannelsTest::hSystFractionVsLS
DTTimeEvolutionHisto * hSystFractionVsLS
Definition: DTBlockedROChannelsTest.h:79
relativeConstraints.station
station
Definition: relativeConstraints.py:67
DTBlockedROChannelsTest::chamberMapUros
std::map< DTChamberId, DTLinkBinsMap > chamberMapUros
Definition: DTBlockedROChannelsTest.h:149
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
dqm::legacy::MonitorElement
Definition: MonitorElement.h:462
FEDNumbering::MAXDTFEDID
Definition: FEDNumbering.h:56
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
singleTopDQM_cfi.setup
setup
Definition: singleTopDQM_cfi.py:37
DTBlockedROChannelsTest::performClientDiagnostic
void performClientDiagnostic(DQMStore::IGetter &igetter)
DQM Client operations.
Definition: DTBlockedROChannelsTest.cc:200
DTBlockedROChannelsTest::chamberMap
std::map< DTChamberId, DTRobBinsMap > chamberMap
Definition: DTBlockedROChannelsTest.h:116
visDQMUpload.context
context
Definition: visDQMUpload.py:37
DTTimeEvolutionHisto::updateTimeSlot
void updateTimeSlot(int ls, int nEventsInLS)
Definition: DTTimeEvolutionHisto.cc:108
DTBlockedROChannelsTest::mapping
const DTReadOutMapping * mapping
Definition: DTBlockedROChannelsTest.h:72
DTBlockedROChannelsTest::theROS
int theROS(int slot, int link)
Definition: DTBlockedROChannelsTest.cc:479
DTBlockedROChannelsTest::prescaleFactor
int prescaleFactor
Definition: DTBlockedROChannelsTest.h:60
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
DTTimeEvolutionHisto::accumulateValueTimeSlot
void accumulateValueTimeSlot(float value)
Definition: DTTimeEvolutionHisto.cc:106
dqm::impl::MonitorElement::Reset
virtual void Reset()
Remove all data from the ME, keept the empty histogram with all its settings.
Definition: MonitorElement.cc:345
DTBlockedROChannelsTest::fillChamberMap
void fillChamberMap(DQMStore::IGetter &igetter, const edm::EventSetup &c)
Definition: DTBlockedROChannelsTest.cc:52
DTBlockedROChannelsTest::checkUros
bool checkUros
Definition: DTBlockedROChannelsTest.h:62
DTBlockedROChannelsTest::run
int run
Definition: DTBlockedROChannelsTest.h:69
makeMuonMisalignmentScenario.wheel
wheel
Definition: makeMuonMisalignmentScenario.py:319
FEDNumbering::MAXDTUROSFEDID
Definition: FEDNumbering.h:112
DTReadOutMapping::readOutToGeometry
int readOutToGeometry(int dduId, int rosId, int robId, int tdcId, int channelId, DTWireId &wireId) const
transform identifiers
Definition: DTReadOutMapping.cc:69
DTBlockedROChannelsTest::mappingToken_
edm::ESGetToken< DTReadOutMapping, DTReadOutMappingRcd > mappingToken_
Definition: DTBlockedROChannelsTest.h:71
DTBlockedROChannelsTest::nevents
int nevents
Definition: DTBlockedROChannelsTest.h:63
DTBlockedROChannelsTest::theDDU
int theDDU(int crate, int slot, int link, bool tenDDU)
Definition: DTBlockedROChannelsTest.cc:448
DTBlockedROChannelsTest::neventsPrev
int neventsPrev
Definition: DTBlockedROChannelsTest.h:64
DTBlockedROChannelsTest::nupdates
int nupdates
Definition: DTBlockedROChannelsTest.h:57
DTChamberId::sector
int sector() const
Definition: DTChamberId.h:49
DTBlockedROChannelsTest::readOutToGeometry
int readOutToGeometry(int dduId, int rosNumber, int robNumber, int &wheel, int &station, int &sector)
Definition: DTBlockedROChannelsTest.cc:286
DTTimeEvolutionHisto
Definition: DTTimeEvolutionHisto.h:15
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
dqm::implementation::IGetter::get
virtual MonitorElement * get(std::string const &fullpath) const
Definition: DQMStore.cc:673
DTBlockedROChannelsTest::offlineMode
bool offlineMode
Definition: DTBlockedROChannelsTest.h:61
DTChamberId
Definition: DTChamberId.h:14
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:234
dummy
Definition: DummySelector.h:38
FEDNumbering::MINDTFEDID
Definition: FEDNumbering.h:55
dqm::impl::MonitorElement::setAxisTitle
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
Definition: MonitorElement.cc:791
DTChamberId::wheel
int wheel() const
Return the wheel number.
Definition: DTChamberId.h:39
dqm::impl::MonitorElement::getIntValue
virtual int64_t getIntValue() const
Definition: MonitorElement.cc:915
FEDNumbering::MINDTUROSFEDID
Definition: FEDNumbering.h:111
DTChamberId::station
int station() const
Return the station number.
Definition: DTChamberId.h:42
DTBlockedROChannelsTest::prevTotalPerc
double prevTotalPerc
Definition: DTBlockedROChannelsTest.h:67
DTBlockedROChannelsTest::wheelHistos
std::map< int, MonitorElement * > wheelHistos
Definition: DTBlockedROChannelsTest.h:75