CMS 3D CMS Logo

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

#include <DTNoiseTask.h>

Inheritance diagram for DTNoiseTask:
DQMOneEDAnalyzer< edm::one::WatchLuminosityBlocks > edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::Accumulator, Args... > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
 DTNoiseTask (const edm::ParameterSet &ps)
 Constructor. More...
 
 ~DTNoiseTask () override
 Destructor. More...
 
- Public Member Functions inherited from DQMOneEDAnalyzer< edm::one::WatchLuminosityBlocks >
void accumulate (edm::Event const &event, edm::EventSetup const &setup) override
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
 DQMOneEDAnalyzer ()
 
void endRun (edm::Run const &, edm::EventSetup const &) final
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::Accumulator, Args... >
 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 analyze (const edm::Event &e, const edm::EventSetup &c) override
 Analyze. More...
 
void beginLuminosityBlock (const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &setup) final
 
void dqmBeginRun (const edm::Run &, const edm::EventSetup &) override
 
void endLuminosityBlock (const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &setup) override
 
- Protected Member Functions inherited from DQMOneEDAnalyzer< edm::one::WatchLuminosityBlocks >
virtual void dqmEndRun (edm::Run const &, edm::EventSetup const &)
 
- 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

void bookHistos (DQMStore::IBooker &, DTChamberId chId)
 
void bookHistos (DQMStore::IBooker &, DTSuperLayerId slId)
 

Private Attributes

bool doSegmentVeto
 
bool doTimeBoxHistos
 
edm::EDGetTokenT< DTDigiCollectiondtDigiToken_
 
edm::ESHandle< DTGeometrydtGeom
 
int evtNumber
 
std::map< DTChamberId, int > mapEvt
 
MonitorElementnEventMonitor
 
std::map< DTChamberId, MonitorElement * > noiseHistos
 
edm::EDGetTokenT< DTRecSegment4DCollectionrecHits4DToken_
 
double safeMargin
 
std::map< DTSuperLayerId, MonitorElement * > tbHistos
 
edm::ESHandle< DTTtrigtTrigMap
 
std::map< DTChamberId, double > tTrigStMap
 

Additional Inherited Members

- Public Types inherited from DQMOneEDAnalyzer< edm::one::WatchLuminosityBlocks >
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::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 DQMOneEDAnalyzer< edm::one::WatchLuminosityBlocks >
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

No description available.

Authors
G. Mila , G. Cerminara - INFN Torino

Definition at line 37 of file DTNoiseTask.h.

Constructor & Destructor Documentation

◆ DTNoiseTask()

DTNoiseTask::DTNoiseTask ( const edm::ParameterSet ps)

Constructor.

Definition at line 39 of file DTNoiseTask.cc.

39  : evtNumber(0) {
40  LogVerbatim("DTNoiseTask") << "[DTNoiseTask]: Constructor" << endl;
41 
42  //switch for timeBox booking
43  doTimeBoxHistos = ps.getUntrackedParameter<bool>("doTbHistos", false);
44 
45  // The label to retrieve the digis
46  dtDigiToken_ = consumes<DTDigiCollection>(ps.getParameter<InputTag>("dtDigiLabel"));
47 
48  // the name of the 4D rec hits collection
49  recHits4DToken_ = consumes<DTRecSegment4DCollection>(edm::InputTag(ps.getParameter<string>("recHits4DLabel")));
50 
51  // switch for segment veto
52  doSegmentVeto = ps.getUntrackedParameter<bool>("doSegmentVeto", false);
53 
54  // safe margin (ns) between ttrig and beginning of counting area
55  safeMargin = ps.getUntrackedParameter<double>("safeMargin", 200.);
56 }

References doSegmentVeto, doTimeBoxHistos, dtDigiToken_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), recHits4DToken_, and safeMargin.

◆ ~DTNoiseTask()

DTNoiseTask::~DTNoiseTask ( )
override

Destructor.

Definition at line 58 of file DTNoiseTask.cc.

58 {}

Member Function Documentation

◆ analyze()

void DTNoiseTask::analyze ( const edm::Event e,
const edm::EventSetup c 
)
overrideprotectedvirtual

Analyze.

Reimplemented from DQMOneEDAnalyzer< edm::one::WatchLuminosityBlocks >.

Definition at line 61 of file DTNoiseTask.cc.

61  {
62  evtNumber++;
64 
65  if (evtNumber % 1000 == 0)
66  LogVerbatim("DTNoiseTask") << "[DTNoiseTask]: Analyzing evt number :" << evtNumber << endl;
67 
68  // map of the chambers with at least 1 segment
69  std::map<DTChamberId, int> segmentsChId;
70 
71  // Get the 4D segment collection from the event
73  if (doSegmentVeto) {
74  e.getByToken(recHits4DToken_, all4DSegments);
75 
76  // Loop over all chambers containing a segment and look for the number of segments
78  for (chamberId = all4DSegments->id_begin(); chamberId != all4DSegments->id_end(); ++chamberId) {
79  segmentsChId[*chamberId] = 1;
80  }
81  }
82 
83  // Get the digis from the event
85  e.getByToken(dtDigiToken_, dtdigis);
86 
87  // LOOP OVER ALL THE DIGIS OF THE EVENT
89  for (dtLayerId_It = dtdigis->begin(); dtLayerId_It != dtdigis->end(); ++dtLayerId_It) {
90  for (DTDigiCollection::const_iterator digiIt = ((*dtLayerId_It).second).first;
91  digiIt != ((*dtLayerId_It).second).second;
92  ++digiIt) {
93  //Check the TDC trigger width
94  int tdcTime = (*digiIt).countsTDC();
95  double upperLimit = tTrigStMap[(*dtLayerId_It).first.superlayerId().chamberId()] - safeMargin;
96  if (doTimeBoxHistos)
97  tbHistos[(*dtLayerId_It).first.superlayerId()]->Fill(tdcTime);
98  if (tdcTime > upperLimit)
99  continue;
100 
101  //Check the chamber has no 4D segments (optional)
102  if (doSegmentVeto && segmentsChId.find((*dtLayerId_It).first.superlayerId().chamberId()) != segmentsChId.end())
103  continue;
104 
105  // fill the occupancy histo
106  // FIXME: needs to be optimized: no need to rescale the histo for each digi
107  TH2F* noise_root = noiseHistos[(*dtLayerId_It).first.superlayerId().chamberId()]->getTH2F();
108  double normalization = 0;
109  if (mapEvt.find((*dtLayerId_It).first.superlayerId().chamberId()) != mapEvt.end()) {
110  LogVerbatim("DTNoiseTask") << " Last fill: # of events: "
111  << mapEvt[(*dtLayerId_It).first.superlayerId().chamberId()] << endl;
112  normalization = 1e-9 * upperLimit * mapEvt[(*dtLayerId_It).first.superlayerId().chamberId()];
113  // revert back to # of entries
114  noise_root->Scale(normalization);
115  }
116  int yBin = (*dtLayerId_It).first.layer() + (4 * ((*dtLayerId_It).first.superlayerId().superlayer() - 1));
117  noise_root->Fill((*digiIt).wire(), yBin);
118  // normalize the occupancy histo
119  mapEvt[(*dtLayerId_It).first.superlayerId().chamberId()] = evtNumber;
120  LogVerbatim("DTNoiseTask") << (*dtLayerId_It).first << " wire: " << (*digiIt).wire()
121  << " # counts: " << noise_root->GetBinContent((*digiIt).wire(), yBin)
122  << " Time interval: " << upperLimit << " # of events: " << evtNumber << endl;
123  ;
124  normalization = double(1e-9 * upperLimit * mapEvt[(*dtLayerId_It).first.superlayerId().chamberId()]);
125  // update the rate
126  noise_root->Scale(1. / normalization);
127  LogVerbatim("DTNoiseTask") << " noise rate: " << noise_root->GetBinContent((*digiIt).wire(), yBin) << endl;
128  }
129  }
130 }

References doSegmentVeto, doTimeBoxHistos, dtDigiToken_, MillePedeFileConverter_cfg::e, evtNumber, dqm::impl::MonitorElement::Fill(), mapEvt, nEventMonitor, noiseHistos, PostProcessor_cff::normalization, recHits4DToken_, safeMargin, edm::second(), tbHistos, tTrigStMap, and photonAnalyzer_cfi::yBin.

◆ beginLuminosityBlock()

void DTNoiseTask::beginLuminosityBlock ( const edm::LuminosityBlock lumiSeg,
const edm::EventSetup setup 
)
inlinefinalprotected

Definition at line 51 of file DTNoiseTask.h.

51 {}

◆ bookHistograms()

void DTNoiseTask::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  run,
edm::EventSetup const &  setup 
)
overridevirtual

Implements DQMOneEDAnalyzer< edm::one::WatchLuminosityBlocks >.

Definition at line 226 of file DTNoiseTask.cc.

226  {
227  ibooker.setCurrentFolder("DT/EventInfo/Counters");
228  nEventMonitor = ibooker.bookFloat("nProcessedEventsNoise");
229 
230  // Loop over all the chambers
231  vector<const DTChamber*>::const_iterator ch_it = dtGeom->chambers().begin();
232  vector<const DTChamber*>::const_iterator ch_end = dtGeom->chambers().end();
233  for (; ch_it != ch_end; ++ch_it) {
234  DTChamberId chId = (*ch_it)->id();
235  // histo booking
236  bookHistos(ibooker, chId);
237  vector<const DTSuperLayer*>::const_iterator sl_it = (*ch_it)->superLayers().begin();
238  vector<const DTSuperLayer*>::const_iterator sl_end = (*ch_it)->superLayers().end();
239  // Loop over the SLs
240  for (; sl_it != sl_end; ++sl_it) {
241  DTSuperLayerId slId = (*sl_it)->id();
242  if (doTimeBoxHistos)
243  bookHistos(ibooker, slId);
244  float tTrig, tTrigRMS, kFactor;
245  tTrigMap->get(slId, tTrig, tTrigRMS, kFactor, DTTimeUnits::ns);
246  // tTrig mapping per station
247  // check that the ttrig is the lowest of the 3 SLs
248  if (tTrigStMap.find(chId) == tTrigStMap.end() ||
249  (tTrigStMap.find(chId) != tTrigStMap.end() && tTrig < tTrigStMap[chId]))
250  tTrigStMap[chId] = tTrig;
251  }
252  }
253 }

References dqm::implementation::IBooker::bookFloat(), bookHistos(), DTGeometry::chambers(), doTimeBoxHistos, dtGeom, DTTtrig::get(), dttriganalyzer_cfi::kFactor, nEventMonitor, DTTimeUnits::ns, dqm::implementation::NavigatorBase::setCurrentFolder(), dttriganalyzer_cfi::tTrig, tTrigMap, and tTrigStMap.

◆ bookHistos() [1/2]

void DTNoiseTask::bookHistos ( DQMStore::IBooker ibooker,
DTChamberId  chId 
)
private

Definition at line 132 of file DTNoiseTask.cc.

132  {
133  // set the folder
134  stringstream wheel;
135  wheel << chId.wheel();
136  stringstream station;
137  station << chId.station();
138  stringstream sector;
139  sector << chId.sector();
140 
141  ibooker.setCurrentFolder("DT/05-Noise/Wheel" + wheel.str() +
142  // "/Station" + station.str() +
143  "/Sector" + sector.str());
144 
145  // Build the histo name
146  string histoName = string("NoiseRate") + "_W" + wheel.str() + "_St" + station.str() + "_Sec" + sector.str();
147 
148  LogVerbatim("DTNoiseTask") << "[DTNoiseTask]: booking chamber histo:" << endl;
149  LogVerbatim("DTNoiseTask") << " folder "
150  << "DT/05-Noise/Wheel" + wheel.str() +
151  // "/Station" + station.str() +
152  "/Sector" + sector.str() + "/"
153  << endl;
154  LogVerbatim("DTNoiseTask") << " histoName " << histoName << endl;
155 
156  // Get the chamber from the geometry
157  int nWires_max = 0;
158  const DTChamber* dtchamber = dtGeom->chamber(chId);
159  const vector<const DTSuperLayer*>& superlayers = dtchamber->superLayers();
160 
161  // Loop over layers and find the max # of wires
162  for (vector<const DTSuperLayer*>::const_iterator sl = superlayers.begin(); sl != superlayers.end();
163  ++sl) { // loop over SLs
164  vector<const DTLayer*> layers = (*sl)->layers();
165  for (vector<const DTLayer*>::const_iterator lay = layers.begin(); lay != layers.end(); ++lay) { // loop over layers
166  int nWires = (*lay)->specificTopology().channels();
167  if (nWires > nWires_max)
168  nWires_max = nWires;
169  }
170  }
171 
172  noiseHistos[chId] =
173  ibooker.book2D(histoName, "Noise rate (Hz) per channel", nWires_max, 1, nWires_max + 1, 12, 1, 13);
174  noiseHistos[chId]->setAxisTitle("wire number", 1);
175  noiseHistos[chId]->setBinLabel(1, "SL1-L1", 2);
176  noiseHistos[chId]->setBinLabel(2, "SL1-L2", 2);
177  noiseHistos[chId]->setBinLabel(3, "SL1-L3", 2);
178  noiseHistos[chId]->setBinLabel(4, "SL1-L4", 2);
179  noiseHistos[chId]->setBinLabel(5, "SL2-L1", 2);
180  noiseHistos[chId]->setBinLabel(6, "SL2-L2", 2);
181  noiseHistos[chId]->setBinLabel(7, "SL2-L3", 2);
182  noiseHistos[chId]->setBinLabel(8, "SL2-L4", 2);
183  noiseHistos[chId]->setBinLabel(9, "SL3-L1", 2);
184  noiseHistos[chId]->setBinLabel(10, "SL3-L2", 2);
185  noiseHistos[chId]->setBinLabel(11, "SL3-L3", 2);
186  noiseHistos[chId]->setBinLabel(12, "SL3-L4", 2);
187 }

References dqm::implementation::IBooker::book2D(), DTGeometry::chamber(), dtGeom, HltBtagPostValidation_cff::histoName, hgcalTopologyTester_cfi::layers, noiseHistos, DTChamberId::sector(), dqm::implementation::NavigatorBase::setCurrentFolder(), DTChamberId::station(), relativeConstraints::station, AlCaHLTBitMon_QueryRunRegistry::string, DTChamber::superLayers(), DTChamberId::wheel(), and makeMuonMisalignmentScenario::wheel.

Referenced by bookHistograms().

◆ bookHistos() [2/2]

void DTNoiseTask::bookHistos ( DQMStore::IBooker ibooker,
DTSuperLayerId  slId 
)
private

Definition at line 189 of file DTNoiseTask.cc.

189  {
190  // set the folder
191  stringstream wheel;
192  wheel << slId.chamberId().wheel();
193  stringstream station;
194  station << slId.chamberId().station();
195  stringstream sector;
196  sector << slId.chamberId().sector();
197  stringstream superlayer;
198  superlayer << slId.superlayer();
199 
200  ibooker.setCurrentFolder("DT/05-Noise/Wheel" + wheel.str() + "/Station" + station.str() + "/Sector" + sector.str());
201 
202  // Build the histo name
203  string histoName =
204  string("TimeBox") + "_W" + wheel.str() + "_St" + station.str() + "_Sec" + sector.str() + "_SL" + superlayer.str();
205 
206  LogVerbatim("DTNoiseTask") << "[DTNoiseTask]: booking SL histo:" << endl;
207  LogVerbatim("DTNoiseTask") << " folder "
208  << "DT/05-Noise/Wheel" + wheel.str() + "/Station" + station.str() + "/Sector" +
209  sector.str() + "/"
210  << endl;
211  LogVerbatim("DTNoiseTask") << " histoName " << histoName << endl;
212 
213  tbHistos[slId] = ibooker.book1D(histoName, "Time Box (TDC counts)", 1000, 0, 6000);
214 }

References dqm::implementation::IBooker::book1D(), DTSuperLayerId::chamberId(), HltBtagPostValidation_cff::histoName, DTChamberId::sector(), dqm::implementation::NavigatorBase::setCurrentFolder(), DTChamberId::station(), relativeConstraints::station, AlCaHLTBitMon_QueryRunRegistry::string, DTSuperLayerId::superlayer(), tbHistos, DTChamberId::wheel(), and makeMuonMisalignmentScenario::wheel.

◆ dqmBeginRun()

void DTNoiseTask::dqmBeginRun ( const edm::Run run,
const edm::EventSetup setup 
)
overrideprotectedvirtual

Reimplemented from DQMOneEDAnalyzer< edm::one::WatchLuminosityBlocks >.

Definition at line 216 of file DTNoiseTask.cc.

216  {
217  LogVerbatim("DTNoiseTask") << "[DTNoiseTask]: Begin of run" << endl;
218 
219  // tTrig Map
220  setup.get<DTTtrigRcd>().get(tTrigMap);
221 
222  // get the geometry
224 }

References dtGeom, get, singleTopDQM_cfi::setup, and tTrigMap.

◆ endLuminosityBlock()

void DTNoiseTask::endLuminosityBlock ( const edm::LuminosityBlock lumiSeg,
const edm::EventSetup setup 
)
overrideprotected

Definition at line 255 of file DTNoiseTask.cc.

255  {
256  LogVerbatim("DTNoiseTask") << "[DTNoiseTask]: End LS, update rates in all histos" << endl;
257 
258  // update the rate of all histos (usefull for histos with few entries: they are not updated very often
259  for (map<DTChamberId, MonitorElement*>::const_iterator meAndChamber = noiseHistos.begin();
260  meAndChamber != noiseHistos.end();
261  ++meAndChamber) {
262  DTChamberId chId = (*meAndChamber).first;
263  TH2F* noise_root = (*meAndChamber).second->getTH2F();
264  double upperLimit = tTrigStMap[chId] - safeMargin;
265 
266  double normalization = 0;
267  if (mapEvt.find(chId) != mapEvt.end()) {
268  LogVerbatim("DTNoiseTask") << " Ch: " << chId << " Last fill: # of events: " << mapEvt[chId] << endl;
269  normalization = 1e-9 * upperLimit * mapEvt[chId];
270  // revert back to # of entries
271  noise_root->Scale(normalization);
272  }
273  //check that event analyzed != 0 might happen oline
274  if (evtNumber) {
275  // set the # of events analyzed until this update
276  LogVerbatim("DTNoiseTask") << " Update for events: " << evtNumber << endl;
277  mapEvt[chId] = evtNumber;
278  // update the rate
279  normalization = double(1e-9 * upperLimit * evtNumber);
280  noise_root->Scale(1. / normalization);
281  }
282  }
283 }

References MillePedeFileConverter_cfg::e, evtNumber, mapEvt, noiseHistos, PostProcessor_cff::normalization, safeMargin, and tTrigStMap.

Member Data Documentation

◆ doSegmentVeto

bool DTNoiseTask::doSegmentVeto
private

Definition at line 70 of file DTNoiseTask.h.

Referenced by analyze(), and DTNoiseTask().

◆ doTimeBoxHistos

bool DTNoiseTask::doTimeBoxHistos
private

Definition at line 66 of file DTNoiseTask.h.

Referenced by analyze(), bookHistograms(), and DTNoiseTask().

◆ dtDigiToken_

edm::EDGetTokenT<DTDigiCollection> DTNoiseTask::dtDigiToken_
private

Definition at line 62 of file DTNoiseTask.h.

Referenced by analyze(), and DTNoiseTask().

◆ dtGeom

edm::ESHandle<DTGeometry> DTNoiseTask::dtGeom
private

Definition at line 72 of file DTNoiseTask.h.

Referenced by bookHistograms(), bookHistos(), and dqmBeginRun().

◆ evtNumber

int DTNoiseTask::evtNumber
private

Definition at line 64 of file DTNoiseTask.h.

Referenced by analyze(), and endLuminosityBlock().

◆ mapEvt

std::map<DTChamberId, int> DTNoiseTask::mapEvt
private

Definition at line 82 of file DTNoiseTask.h.

Referenced by analyze(), and endLuminosityBlock().

◆ nEventMonitor

MonitorElement* DTNoiseTask::nEventMonitor
private

Definition at line 87 of file DTNoiseTask.h.

Referenced by analyze(), and bookHistograms().

◆ noiseHistos

std::map<DTChamberId, MonitorElement*> DTNoiseTask::noiseHistos
private

Definition at line 79 of file DTNoiseTask.h.

Referenced by analyze(), bookHistos(), and endLuminosityBlock().

◆ recHits4DToken_

edm::EDGetTokenT<DTRecSegment4DCollection> DTNoiseTask::recHits4DToken_
private

Definition at line 68 of file DTNoiseTask.h.

Referenced by analyze(), and DTNoiseTask().

◆ safeMargin

double DTNoiseTask::safeMargin
private

Definition at line 90 of file DTNoiseTask.h.

Referenced by analyze(), DTNoiseTask(), and endLuminosityBlock().

◆ tbHistos

std::map<DTSuperLayerId, MonitorElement*> DTNoiseTask::tbHistos
private

Definition at line 85 of file DTNoiseTask.h.

Referenced by analyze(), and bookHistos().

◆ tTrigMap

edm::ESHandle<DTTtrig> DTNoiseTask::tTrigMap
private

Definition at line 73 of file DTNoiseTask.h.

Referenced by bookHistograms(), and dqmBeginRun().

◆ tTrigStMap

std::map<DTChamberId, double> DTNoiseTask::tTrigStMap
private

Definition at line 76 of file DTNoiseTask.h.

Referenced by analyze(), bookHistograms(), and endLuminosityBlock().

PostProcessor_cff.normalization
normalization
Definition: PostProcessor_cff.py:9
DTNoiseTask::noiseHistos
std::map< DTChamberId, MonitorElement * > noiseHistos
Definition: DTNoiseTask.h:79
DTSuperLayerId
Definition: DTSuperLayerId.h:12
dqm::implementation::IBooker::bookFloat
MonitorElement * bookFloat(TString const &name, FUNC onbooking=NOOP())
Definition: DQMStore.h:80
DTTtrigRcd
Definition: DTTtrigRcd.h:5
relativeConstraints.station
station
Definition: relativeConstraints.py:67
dttriganalyzer_cfi.tTrig
tTrig
Definition: dttriganalyzer_cfi.py:11
DTChamber
Definition: DTChamber.h:24
DTNoiseTask::mapEvt
std::map< DTChamberId, int > mapEvt
Definition: DTNoiseTask.h:82
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
edm::second
U second(std::pair< T, U > const &p)
Definition: ParameterSet.cc:222
photonAnalyzer_cfi.yBin
yBin
Definition: photonAnalyzer_cfi.py:85
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
DTSuperLayerId::superlayer
int superlayer() const
Return the superlayer number (deprecated method name)
Definition: DTSuperLayerId.h:42
DTNoiseTask::nEventMonitor
MonitorElement * nEventMonitor
Definition: DTNoiseTask.h:87
edm::Handle< DTRecSegment4DCollection >
edm::RangeMap::id_iterator
identifier iterator
Definition: RangeMap.h:130
singleTopDQM_cfi.setup
setup
Definition: singleTopDQM_cfi.py:37
DTNoiseTask::doSegmentVeto
bool doSegmentVeto
Definition: DTNoiseTask.h:70
MuonDigiCollection::const_iterator
std::vector< DigiType >::const_iterator const_iterator
Definition: MuonDigiCollection.h:94
DTGeometry::chamber
const DTChamber * chamber(const DTChamberId &id) const
Return a DTChamber given its id.
Definition: DTGeometry.cc:90
DTGeometry::chambers
const std::vector< const DTChamber * > & chambers() const
Return a vector of all Chamber.
Definition: DTGeometry.cc:84
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
DTTimeUnits::ns
Definition: DTTimeUnits.h:32
DTNoiseTask::tTrigMap
edm::ESHandle< DTTtrig > tTrigMap
Definition: DTNoiseTask.h:73
DTTtrig::get
int get(int wheelId, int stationId, int sectorId, int slId, float &tTrig, float &tTrms, float &kFact, DTTimeUnits::type unit) const
get content
Definition: DTTtrig.cc:59
DTNoiseTask::bookHistos
void bookHistos(DQMStore::IBooker &, DTChamberId chId)
Definition: DTNoiseTask.cc:132
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
DTNoiseTask::recHits4DToken_
edm::EDGetTokenT< DTRecSegment4DCollection > recHits4DToken_
Definition: DTNoiseTask.h:68
DTNoiseTask::tbHistos
std::map< DTSuperLayerId, MonitorElement * > tbHistos
Definition: DTNoiseTask.h:85
DTNoiseTask::dtGeom
edm::ESHandle< DTGeometry > dtGeom
Definition: DTNoiseTask.h:72
DTNoiseTask::tTrigStMap
std::map< DTChamberId, double > tTrigStMap
Definition: DTNoiseTask.h:76
DTSuperLayerId::chamberId
DTChamberId chamberId() const
Return the corresponding ChamberId.
Definition: DTSuperLayerId.h:45
makeMuonMisalignmentScenario.wheel
wheel
Definition: makeMuonMisalignmentScenario.py:319
DTChamber::superLayers
const std::vector< const DTSuperLayer * > & superLayers() const
Return the superlayers in the chamber.
Definition: DTChamber.cc:51
DTNoiseTask::doTimeBoxHistos
bool doTimeBoxHistos
Definition: DTNoiseTask.h:66
get
#define get
DTNoiseTask::dtDigiToken_
edm::EDGetTokenT< DTDigiCollection > dtDigiToken_
Definition: DTNoiseTask.h:62
DTNoiseTask::safeMargin
double safeMargin
Definition: DTNoiseTask.h:90
DTChamberId::sector
int sector() const
Definition: DTChamberId.h:49
dttriganalyzer_cfi.kFactor
kFactor
Definition: dttriganalyzer_cfi.py:7
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
HltBtagPostValidation_cff.histoName
histoName
Definition: HltBtagPostValidation_cff.py:17
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
DTChamberId
Definition: DTChamberId.h:14
DTNoiseTask::evtNumber
int evtNumber
Definition: DTNoiseTask.h:64
DigiContainerIterator
Definition: MuonDigiCollection.h:30
MuonGeometryRecord
Definition: MuonGeometryRecord.h:34
DTChamberId::wheel
int wheel() const
Return the wheel number.
Definition: DTChamberId.h:39
edm::InputTag
Definition: InputTag.h:15
hgcalTopologyTester_cfi.layers
layers
Definition: hgcalTopologyTester_cfi.py:8
DTChamberId::station
int station() const
Return the station number.
Definition: DTChamberId.h:42
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
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37