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) final
 
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 hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () 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
 
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)
 
 ~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 const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (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::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
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 analyze (edm::Event const &, edm::EventSetup const &)
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
virtual void dqmEndRun (edm::Run const &, edm::EventSetup const &)
 
- Protected Member Functions inherited from edm::ProducerBase
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
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<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, 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 ( const edm::ParameterSet ps)

Constructor.

Definition at line 39 of file DTNoiseTask.cc.

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

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 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
bool doSegmentVeto
Definition: DTNoiseTask.h:70
edm::EDGetTokenT< DTRecSegment4DCollection > recHits4DToken_
Definition: DTNoiseTask.h:68
edm::EDGetTokenT< DTDigiCollection > dtDigiToken_
Definition: DTNoiseTask.h:62
double safeMargin
Definition: DTNoiseTask.h:90
bool doTimeBoxHistos
Definition: DTNoiseTask.h:66
DTNoiseTask::~DTNoiseTask ( )
override

Destructor.

Definition at line 58 of file DTNoiseTask.cc.

58 {}

Member Function Documentation

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

Analyze.

Definition at line 61 of file DTNoiseTask.cc.

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

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 }
std::map< DTChamberId, int > mapEvt
Definition: DTNoiseTask.h:82
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
identifier iterator
Definition: RangeMap.h:130
MonitorElement * nEventMonitor
Definition: DTNoiseTask.h:87
bool doSegmentVeto
Definition: DTNoiseTask.h:70
void Fill(long long x)
U second(std::pair< T, U > const &p)
edm::EDGetTokenT< DTRecSegment4DCollection > recHits4DToken_
Definition: DTNoiseTask.h:68
edm::EDGetTokenT< DTDigiCollection > dtDigiToken_
Definition: DTNoiseTask.h:62
double safeMargin
Definition: DTNoiseTask.h:90
std::map< DTSuperLayerId, MonitorElement * > tbHistos
Definition: DTNoiseTask.h:85
std::map< DTChamberId, double > tTrigStMap
Definition: DTNoiseTask.h:76
std::vector< DigiType >::const_iterator const_iterator
bool doTimeBoxHistos
Definition: DTNoiseTask.h:66
std::map< DTChamberId, MonitorElement * > noiseHistos
Definition: DTNoiseTask.h:79
void DTNoiseTask::beginLuminosityBlock ( const edm::LuminosityBlock lumiSeg,
const edm::EventSetup setup 
)
inlinefinalprotected
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.

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

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 }
const std::vector< const DTChamber * > & chambers() const
Return a vector of all Chamber.
Definition: DTGeometry.cc:84
MonitorElement * nEventMonitor
Definition: DTNoiseTask.h:87
edm::ESHandle< DTGeometry > dtGeom
Definition: DTNoiseTask.h:72
edm::ESHandle< DTTtrig > tTrigMap
Definition: DTNoiseTask.h:73
void bookHistos(DQMStore::IBooker &, DTChamberId chId)
Definition: DTNoiseTask.cc:132
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
std::map< DTChamberId, double > tTrigStMap
Definition: DTNoiseTask.h:76
bool doTimeBoxHistos
Definition: DTNoiseTask.h:66
void DTNoiseTask::bookHistos ( DQMStore::IBooker ibooker,
DTChamberId  chId 
)
private

Definition at line 132 of file DTNoiseTask.cc.

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

Referenced by bookHistograms().

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 }
const DTChamber * chamber(const DTChamberId &id) const
Return a DTChamber given its id.
Definition: DTGeometry.cc:90
edm::ESHandle< DTGeometry > dtGeom
Definition: DTNoiseTask.h:72
const std::vector< const DTSuperLayer * > & superLayers() const
Return the superlayers in the chamber.
Definition: DTChamber.cc:51
int sector() const
Definition: DTChamberId.h:49
std::map< DTChamberId, MonitorElement * > noiseHistos
Definition: DTNoiseTask.h:79
int station() const
Return the station number.
Definition: DTChamberId.h:42
int wheel() const
Return the wheel number.
Definition: DTChamberId.h:39
void DTNoiseTask::bookHistos ( DQMStore::IBooker ibooker,
DTSuperLayerId  slId 
)
private

Definition at line 189 of file DTNoiseTask.cc.

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

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 }
DTChamberId chamberId() const
Return the corresponding ChamberId.
std::map< DTSuperLayerId, MonitorElement * > tbHistos
Definition: DTNoiseTask.h:85
int superlayer() const
Return the superlayer number (deprecated method name)
int sector() const
Definition: DTChamberId.h:49
int station() const
Return the station number.
Definition: DTChamberId.h:42
int wheel() const
Return the wheel number.
Definition: DTChamberId.h:39
void DTNoiseTask::dqmBeginRun ( const edm::Run run,
const edm::EventSetup setup 
)
overrideprotected

Definition at line 216 of file DTNoiseTask.cc.

References dtGeom, edm::EventSetup::get(), and tTrigMap.

216  {
217  LogVerbatim("DTNoiseTask") << "[DTNoiseTask]: Begin of run" << endl;
218 
219  // tTrig Map
220  setup.get<DTTtrigRcd>().get(tTrigMap);
221 
222  // get the geometry
223  setup.get<MuonGeometryRecord>().get(dtGeom);
224 }
edm::ESHandle< DTGeometry > dtGeom
Definition: DTNoiseTask.h:72
edm::ESHandle< DTTtrig > tTrigMap
Definition: DTNoiseTask.h:73
T get() const
Definition: EventSetup.h:73
void DTNoiseTask::endLuminosityBlock ( const edm::LuminosityBlock lumiSeg,
const edm::EventSetup setup 
)
overrideprotected

Definition at line 255 of file DTNoiseTask.cc.

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

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 }
std::map< DTChamberId, int > mapEvt
Definition: DTNoiseTask.h:82
double safeMargin
Definition: DTNoiseTask.h:90
std::map< DTChamberId, double > tTrigStMap
Definition: DTNoiseTask.h:76
std::map< DTChamberId, MonitorElement * > noiseHistos
Definition: DTNoiseTask.h:79

Member Data Documentation

bool DTNoiseTask::doSegmentVeto
private

Definition at line 70 of file DTNoiseTask.h.

Referenced by analyze(), and DTNoiseTask().

bool DTNoiseTask::doTimeBoxHistos
private

Definition at line 66 of file DTNoiseTask.h.

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

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

Definition at line 62 of file DTNoiseTask.h.

Referenced by analyze(), and DTNoiseTask().

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

Definition at line 72 of file DTNoiseTask.h.

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

int DTNoiseTask::evtNumber
private

Definition at line 64 of file DTNoiseTask.h.

Referenced by analyze(), and endLuminosityBlock().

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

Definition at line 82 of file DTNoiseTask.h.

Referenced by analyze(), and endLuminosityBlock().

MonitorElement* DTNoiseTask::nEventMonitor
private

Definition at line 87 of file DTNoiseTask.h.

Referenced by analyze(), and bookHistograms().

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

Definition at line 79 of file DTNoiseTask.h.

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

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

Definition at line 68 of file DTNoiseTask.h.

Referenced by analyze(), and DTNoiseTask().

double DTNoiseTask::safeMargin
private

Definition at line 90 of file DTNoiseTask.h.

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

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

Definition at line 85 of file DTNoiseTask.h.

Referenced by analyze(), and bookHistos().

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

Definition at line 73 of file DTNoiseTask.h.

Referenced by bookHistograms(), and dqmBeginRun().

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

Definition at line 76 of file DTNoiseTask.h.

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