CMS 3D CMS Logo

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

#include <DTDigiTask.h>

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

 DTDigiTask (const edm::ParameterSet &ps)
 Constructor. More...
 
 ~DTDigiTask () 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 (edm::LuminosityBlock const &lumiSeg, edm::EventSetup const &context) override
 To reset the MEs. More...
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
void bookHistos (DQMStore::IBooker &ibooker, const DTSuperLayerId &dtSL, std::string folder, std::string histoTag)
 Book the ME. More...
 
void bookHistos (DQMStore::IBooker &ibooker, const DTChamberId &dtCh, std::string folder, std::string histoTag)
 
void bookHistos (DQMStore::IBooker &ibooker, const int wheelId, std::string folder, std::string histoTag)
 
void channelsMap (const DTChamberId &dtCh, std::string histoTag)
 To map real channels. More...
 
void dqmBeginRun (const edm::Run &, const edm::EventSetup &) override
 
void endLuminosityBlock (edm::LuminosityBlock const &lumiSeg, edm::EventSetup const &context) final
 
std::string triggerSource ()
 get the L1A source More...
 
- 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

std::string topFolder () const
 

Private Attributes

bool checkNoisyChannels
 
int defaultTmax
 
int defaultTTrig
 
std::map< std::string, std::map< uint32_t, MonitorElement * > > digiHistos
 
bool doAllHitsOccupancies
 
bool doInTimeOccupancies
 
bool doLayerTimeBoxes
 
bool doNoiseOccupancies
 
bool doStaticBooking
 
edm::EDGetTokenT< DTDigiCollectiondtDigiToken_
 
bool filterSyncNoise
 
std::map< DTChamberId, int > hitMap
 
int inTimeHitsLowerBound
 
int inTimeHitsUpperBound
 
bool isLocalRun
 
float kFactor
 
bool lookForSyncNoise
 
edm::EDGetTokenT< LTCDigiCollectionltcDigiCollectionToken_
 
edm::Handle< LTCDigiCollectionltcdigis
 
edm::ESHandle< DTReadOutMappingmapping
 
int maxTDCHits
 
int maxTTMounts
 
edm::ESHandle< DTGeometrymuonGeom
 
MonitorElementnEventMonitor
 
int nevents
 
std::map< DTChamberId, int > nSynchNoiseEvents
 
bool readTTrigDB
 
int resetCycle
 
bool sliceTestMode
 
bool subtractT0
 
std::set< DTChamberIdsyncNoisyChambers
 
int syncNum
 
int syncNumTot
 
edm::ESHandle< DTT0t0Map
 
int tdcPedestal
 
int timeBoxGranularity
 
int tMax
 no needs to be precise. Value from PSets will always be used More...
 
bool tpMode
 
float tTrig
 tTrig from the DB More...
 
edm::ESHandle< DTTtrigtTrigMap
 
float tTrigRMS
 
std::map< std::string, std::map< int, MonitorElement * > > wheelHistos
 

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

Definition at line 47 of file DTDigiTask.h.

Constructor & Destructor Documentation

DTDigiTask::DTDigiTask ( const edm::ParameterSet ps)

Constructor.

Definition at line 43 of file DTDigiTask.cc.

References dtDigiTask_cfi::checkNoisyChannels, dt_dqm_sourceclient_common_cff::defaultTmax, dtDigiTask_cfi::doAllHitsOccupancies, dtDigiTask_cfi::doInTimeOccupancies, dtDigiTask_cfi::doLayerTimeBoxes, dtDigiTask_cfi::doNoiseOccupancies, dt_dqm_sourceclient_common_cff::filterSyncNoise, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), dt_dqm_sourceclient_common_cff::inTimeHitsLowerBound, dt_dqm_sourceclient_common_cff::inTimeHitsUpperBound, LogTrace, dt_dqm_sourceclient_common_cff::lookForSyncNoise, dtDigiTask_cfi::maxTTMounts, dtDigiTask_cfi::sliceTestMode, dtDigiTask_cfi::tdcPedestal, and dtDigiTask_cfi::timeBoxGranularity.

43  {
44  // switch for the verbosity
45  LogTrace("DTDQM|DTMonitorModule|DTDigiTask") << "[DTDigiTask]: Constructor" << endl;
46 
47  // The label to retrieve the digis
48  dtDigiToken_ = consumes<DTDigiCollection>(ps.getParameter<InputTag>("dtDigiLabel"));
49  // Read the configuration parameters
50  maxTDCHits = ps.getUntrackedParameter<int>("maxTDCHitsPerChamber", 30000);
51  // Set to true to read the ttrig from DB (useful to determine in-time and out-of-time hits)
52  readTTrigDB = ps.getUntrackedParameter<bool>("readDB", false);
53  // Set to true to subtract t0 from test pulses
54  subtractT0 = ps.getParameter<bool>("performPerWireT0Calibration");
55  // Tmax value (TDC counts)
56  defaultTmax = ps.getParameter<int>("defaultTmax");
57  // Switch from static to dinamic histo booking
58  doStaticBooking = ps.getUntrackedParameter<bool>("staticBooking", true);
59 
60  // Switch for local/global runs
61  isLocalRun = ps.getUntrackedParameter<bool>("localrun", true);
62  if (!isLocalRun) {
63  ltcDigiCollectionToken_ = consumes<LTCDigiCollection>(ps.getParameter<edm::InputTag>("ltcDigiCollectionTag"));
64  }
65 
66  // Setting for the reset of the ME after n (= ResetCycle) luminosity sections
67  resetCycle = ps.getUntrackedParameter<int>("ResetCycle", 3);
68  // Check the DB of noisy channels
69  checkNoisyChannels = ps.getUntrackedParameter<bool>("checkNoisyChannels", false);
70  // Default TTrig to be used when not reading the TTrig DB
71  defaultTTrig = ps.getParameter<int>("defaultTtrig");
72  inTimeHitsLowerBound = ps.getParameter<int>("inTimeHitsLowerBound");
73  inTimeHitsUpperBound = ps.getParameter<int>("inTimeHitsUpperBound");
74  timeBoxGranularity = ps.getUntrackedParameter<int>("timeBoxGranularity", 4);
75  maxTTMounts = ps.getUntrackedParameter<int>("maxTTMounts", 6400);
76 
77  doAllHitsOccupancies = ps.getUntrackedParameter<bool>("doAllHitsOccupancies", true);
78  doNoiseOccupancies = ps.getUntrackedParameter<bool>("doNoiseOccupancies", false);
79  doInTimeOccupancies = ps.getUntrackedParameter<bool>("doInTimeOccupancies", false);
80 
81  // switch on the mode for running on test pulses (different top folder)
82  tpMode = ps.getUntrackedParameter<bool>("testPulseMode", false);
83  // switch on/off the filtering of synchronous noise events (cutting on the # of digis)
84  // time-boxes and occupancy plots are not filled and summary plots are created to report the problem
85  filterSyncNoise = ps.getUntrackedParameter<bool>("filterSyncNoise", false);
86  // look for synch noisy events, produce histograms but do not filter them
87  lookForSyncNoise = ps.getUntrackedParameter<bool>("lookForSyncNoise", false);
88 
89  // switch on the mode for running on slice test (different top folder and other customizations)
90  sliceTestMode = ps.getUntrackedParameter<bool>("sliceTestMode", false);
91  // time pedestal to be subtracted if sliceTestMode is true
92  tdcPedestal = ps.getUntrackedParameter<int>("tdcPedestal", 105100);
93 
94  // switch on production of time-boxes with layer granularity
95  doLayerTimeBoxes = ps.getUntrackedParameter<bool>("doLayerTimeBoxes", false);
96 
97  syncNumTot = 0;
98  syncNum = 0;
99 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
int defaultTmax
Definition: DTDigiTask.h:123
bool doStaticBooking
Definition: DTDigiTask.h:126
bool tpMode
Definition: DTDigiTask.h:144
bool doLayerTimeBoxes
Definition: DTDigiTask.h:151
bool filterSyncNoise
Definition: DTDigiTask.h:146
int maxTTMounts
Definition: DTDigiTask.h:139
bool readTTrigDB
Definition: DTDigiTask.h:119
bool lookForSyncNoise
Definition: DTDigiTask.h:145
edm::EDGetTokenT< DTDigiCollection > dtDigiToken_
Definition: DTDigiTask.h:114
bool checkNoisyChannels
Definition: DTDigiTask.h:132
bool isLocalRun
Definition: DTDigiTask.h:128
bool doInTimeOccupancies
Definition: DTDigiTask.h:142
bool doNoiseOccupancies
Definition: DTDigiTask.h:141
int syncNum
Definition: DTDigiTask.h:98
int resetCycle
Definition: DTDigiTask.h:130
int inTimeHitsUpperBound
Definition: DTDigiTask.h:137
#define LogTrace(id)
int defaultTTrig
Definition: DTDigiTask.h:134
int tdcPedestal
Definition: DTDigiTask.h:149
bool doAllHitsOccupancies
Definition: DTDigiTask.h:140
int maxTDCHits
Definition: DTDigiTask.h:86
bool subtractT0
Definition: DTDigiTask.h:121
int timeBoxGranularity
Definition: DTDigiTask.h:138
int syncNumTot
Definition: DTDigiTask.h:97
int inTimeHitsLowerBound
Definition: DTDigiTask.h:136
bool sliceTestMode
Definition: DTDigiTask.h:148
edm::EDGetTokenT< LTCDigiCollection > ltcDigiCollectionToken_
Definition: DTDigiTask.h:116
DTDigiTask::~DTDigiTask ( )
override

Destructor.

Definition at line 102 of file DTDigiTask.cc.

References LogTrace, and cmsHarvester::nevents.

102  {
103  LogTrace("DTDQM|DTMonitorModule|DTDigiTask") << "DTDigiTask: analyzed " << nevents << " events" << endl;
104 }
int nevents
Definition: DTDigiTask.h:82
#define LogTrace(id)

Member Function Documentation

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

Analyze.

Definition at line 433 of file DTDigiTask.cc.

References DTStatusFlag::cellStatus(), DTSuperLayerId::chamberId(), dtDigiTask_cfi::checkNoisyChannels, DTTimeUnits::counts, dtDigiTask_cfi::doAllHitsOccupancies, dtDigiTask_cfi::doInTimeOccupancies, dtDigiTask_cfi::doLayerTimeBoxes, dtDigiTask_cfi::doNoiseOccupancies, dt_dqm_sourceclient_common_cff::filterSyncNoise, spr::find(), edm::EventSetup::get(), dtResolutionTest_cfi::histoTag, createfilelist::int, dt_dqm_sourceclient_common_cff::inTimeHitsLowerBound, dt_dqm_sourceclient_common_cff::inTimeHitsUpperBound, dttriganalyzer_cfi::kFactor, LogTrace, dt_dqm_sourceclient_common_cff::lookForSyncNoise, SiStripPI::max, dtDigiTask_cfi::maxTTMounts, min(), cmsHarvester::nevents, DetId::rawId(), edm::second(), DTChamberId::sector(), dtDigiTask_cfi::sliceTestMode, DTChamberId::station(), DTSuperLayerId::superlayer(), FrontierCondition_GT_autoExpress_cfi::t0, dtDigiTask_cfi::tdcPedestal, edm::EventBase::time(), dttriganalyzer_cfi::tTrig, edm::Timestamp::value(), and DTChamberId::wheel().

Referenced by endLuminosityBlock().

433  {
434  nevents++;
436  if (nevents % 1000 == 0) {
437  LogTrace("DTDQM|DTMonitorModule|DTDigiTask")
438  << "[DTDigiTask] Analyze #Run: " << event.id().run() << " #Event: " << event.id().event() << endl;
439  }
440 
441  // Get the ingredients from the event
442 
443  // Digi collection
445  event.getByToken(dtDigiToken_, dtdigis);
446 
447  // LTC digis
448  if (!isLocalRun)
449  event.getByToken(ltcDigiCollectionToken_, ltcdigis);
450 
451  // Status map (for noisy channels)
452  ESHandle<DTStatusFlag> statusMap;
453  if (checkNoisyChannels) {
454  // Get the map of noisy channels
455  c.get<DTStatusFlagRcd>().get(statusMap);
456  }
457 
458  string histoTag;
459 
460  // Check if the digi container is empty
461  if (dtdigis->begin() == dtdigis->end()) {
462  LogTrace("DTDQM|DTMonitorModule|DTDigiTask") << "Event " << nevents << " empty." << endl;
463  }
464 
465  if (lookForSyncNoise || filterSyncNoise) { // dosync
466  // Count the # of digis per chamber
468  for (dtLayerId_It = dtdigis->begin(); dtLayerId_It != dtdigis->end(); dtLayerId_It++) {
469  DTChamberId chId = ((*dtLayerId_It).first).chamberId();
470  if (hitMap.find(chId) == hitMap.end()) { // new chamber
471  hitMap[chId] = 0;
472  }
473  hitMap[chId] += (((*dtLayerId_It).second).second - ((*dtLayerId_It).second).first);
474  }
475 
476  // check chamber with # of digis above threshold and flag them as noisy
477  map<DTChamberId, int>::const_iterator hitMapIt = hitMap.begin();
478  map<DTChamberId, int>::const_iterator hitMapEnd = hitMap.end();
479 
480  map<int, int> chMap;
481 
482  for (; hitMapIt != hitMapEnd; ++hitMapIt) {
483  if ((hitMapIt->second) > maxTDCHits) {
484  DTChamberId chId = hitMapIt->first;
485  int wh = chId.wheel();
486 
487  LogTrace("DTDQM|DTMonitorModule|DTDigiTask")
488  << "[DTDigiTask] Synch noise in chamber: " << chId << " with # digis: " << hitMapIt->second << endl;
489 
490  if (chMap.find(wh) == chMap.end()) {
491  chMap[wh] = 0;
492  }
493  chMap[wh]++;
494 
495  syncNoisyChambers.insert(chId);
496 
497  wheelHistos["SyncNoiseEvents"][wh]->Fill(chId.sector(), chId.station());
498  }
499  }
500 
501  // fill # of noisy ch per wheel plot
502  map<int, int>::const_iterator chMapIt = chMap.begin();
503  map<int, int>::const_iterator chMapEnd = chMap.end();
504  for (; chMapIt != chMapEnd; ++chMapIt) {
505  wheelHistos["SyncNoiseChambs"][(*chMapIt).first]->Fill((*chMapIt).second);
506  }
507 
508  // clear the map of # of digis per chamber: not needed anymore
509  hitMap.clear();
510 
511  if (!syncNoisyChambers.empty()) {
512  LogVerbatim("DTDQM|DTMonitorModule|DTDigiTask") << "[DTDigiTask] Synch Noise in event: " << nevents;
513  if (filterSyncNoise)
514  LogVerbatim("DTDQM|DTMonitorModule|DTDigiTask")
515  << "\tnoisy time-boxes and occupancy will not be filled!" << endl;
516  syncNumTot++;
517  syncNum++;
518  }
519 
520  // Logging of "large" synch Noisy events in private DQM
521  if (syncNoisyChambers.size() > 3) {
522  time_t eventTime = time_t(event.time().value() >> 32);
523 
524  LogVerbatim("DTDQM|DTMonitorModule|DTDigiTask|DTSynchNoise")
525  << "[DTDigiTask] At least 4 Synch Noisy chambers in Run : " << event.id().run()
526  << " Lumi : " << event.id().luminosityBlock() << " Event : " << event.id().event()
527  << " at time : " << ctime(&eventTime) << endl;
528 
529  set<DTChamberId>::const_iterator chIt = syncNoisyChambers.begin();
530  set<DTChamberId>::const_iterator chEnd = syncNoisyChambers.end();
531 
532  stringstream synchNoisyCh;
533  for (; chIt != chEnd; ++chIt) {
534  synchNoisyCh << " " << (*chIt);
535  }
536  LogVerbatim("DTDQM|DTMonitorModule|DTDigiTask|DTSynchNoise")
537  << "[DTDigiTask] Chamber List :" << synchNoisyCh.str() << endl;
538  }
539 
540  if (nevents % 1000 == 0) {
541  LogVerbatim("DTDQM|DTMonitorModule|DTDigiTask")
542  << (syncNumTot * 100. / nevents) << "% sync noise events since the beginning \n"
543  << (syncNum * 0.1) << "% sync noise events in the last 1000 events " << endl;
544  syncNum = 0;
545  }
546  }
547 
548  bool isSyncNoisy = false;
549 
551  for (dtLayerId_It = dtdigis->begin(); dtLayerId_It != dtdigis->end(); ++dtLayerId_It) { // Loop over layers
552  isSyncNoisy = false;
553  // check if chamber labeled as synch noisy
554  if (filterSyncNoise) {
555  DTChamberId chId = ((*dtLayerId_It).first).chamberId();
556  if (syncNoisyChambers.find(chId) != syncNoisyChambers.end()) {
557  isSyncNoisy = true;
558  }
559  }
560 
561  for (DTDigiCollection::const_iterator digiIt = ((*dtLayerId_It).second).first;
562  digiIt != ((*dtLayerId_It).second).second;
563  ++digiIt) { // Loop over all digis
564 
565  bool isNoisy = false;
566  bool isFEMasked = false;
567  bool isTDCMasked = false;
568  bool isTrigMask = false;
569  bool isDead = false;
570  bool isNohv = false;
571  if (checkNoisyChannels) {
572  const DTWireId wireId(((*dtLayerId_It).first), (*digiIt).wire());
573  statusMap->cellStatus(wireId, isNoisy, isFEMasked, isTDCMasked, isTrigMask, isDead, isNohv);
574  }
575 
576  // Get the useful IDs
577  const DTSuperLayerId dtSLId = ((*dtLayerId_It).first).superlayerId();
578  uint32_t indexSL = dtSLId.rawId();
579  const DTChamberId dtChId = dtSLId.chamberId();
580  uint32_t indexCh = dtChId.rawId();
581  int layer_number = ((*dtLayerId_It).first).layer();
582  int superlayer_number = dtSLId.superlayer();
583 
584  // Read the ttrig DB or set a rough value from config
585  // ttrig and rms are TDC counts
586  if (readTTrigDB)
587  tTrigMap->get(((*dtLayerId_It).first).superlayerId(), tTrig, tTrigRMS, kFactor, DTTimeUnits::counts);
588  else
590 
591  int inTimeHitsLowerBoundCorr = int(round(tTrig)) - inTimeHitsLowerBound;
592  int inTimeHitsUpperBoundCorr = int(round(tTrig)) + tMax + inTimeHitsUpperBound;
593 
594  float t0;
595  float t0RMS;
596  int tdcTime = (*digiIt).countsTDC();
597 
598  if (subtractT0) {
599  const DTWireId dtWireId(((*dtLayerId_It).first), (*digiIt).wire());
600  // t0s and rms are TDC counts
601  t0Map->get(dtWireId, t0, t0RMS, DTTimeUnits::counts);
602  tdcTime += int(round(t0));
603  }
604 
605  if (sliceTestMode) {
606  tdcTime -= tdcPedestal;
607  tdcTime = std::max(1, std::min(maxTTMounts - 1, tdcTime));
608  // std::cout << tdcTime << std::endl;
609  }
610 
611  // Fill Time-Boxes
612  // NOTE: avoid to fill TB and PhotoPeak with noise. Occupancy are filled anyway
613  if ((!isNoisy) && (!isSyncNoisy)) { // Discard noisy channels
614  // TimeBoxes per SL
615  histoTag = "TimeBox" + triggerSource();
616 
617  (digiHistos.find(histoTag)->second).find(indexSL)->second->Fill(tdcTime);
618  if (doLayerTimeBoxes)
619  (digiHistos.find(histoTag)->second).find((*dtLayerId_It).first.rawId())->second->Fill(tdcTime);
620  }
621 
622  // Fill Occupancies
623  if (!isSyncNoisy) { // Discard synch noisy channels
624 
625  if (doAllHitsOccupancies) { // fill occupancies for all hits
626  //Occupancies per chamber & layer
627  histoTag = "OccupancyAllHits_perCh";
628  map<uint32_t, MonitorElement*>::const_iterator mappedHisto = digiHistos[histoTag].find(indexCh);
629 
630  //FR comment the following cannot pass ibooker to analyze method!
631  /*
632  if (mappedHisto == digiHistos[histoTag].end()) { // dynamic booking
633  bookHistos(ibooker, dtChId, string("Occupancies"), histoTag);
634  mappedHisto = digiHistos[histoTag].find(indexCh);
635  }
636  */
637  mappedHisto->second->Fill((*digiIt).wire(), (layer_number + (superlayer_number - 1) * 4) - 1);
638 
639  // Fill the chamber occupancy
640  histoTag = "OccupancyAllHits";
641  map<int, MonitorElement*>::const_iterator histoPerWheel = wheelHistos[histoTag].find(dtChId.wheel());
642 
643  histoPerWheel->second->Fill(dtChId.sector(), dtChId.station()); // FIXME: normalize to # of layers
644  }
645 
646  if (doNoiseOccupancies) { // fill occupancies for hits before the ttrig
647  if (tdcTime < inTimeHitsLowerBoundCorr) {
648  // FIXME: what about tdcTime > inTimeHitsUpperBoundCorr ???
649 
650  // Noise: Before tTrig
651  //Occupancies Noise per chamber & layer
652  histoTag = "OccupancyNoise_perCh";
653  map<uint32_t, MonitorElement*>::const_iterator mappedHisto = digiHistos[histoTag].find(indexCh);
654 
655  mappedHisto->second->Fill((*digiIt).wire(), (layer_number + (superlayer_number - 1) * 4) - 1);
656 
657  // Fill the chamber occupancy
658 
659  histoTag = "OccupancyNoise";
660  map<int, MonitorElement*>::const_iterator histoPerWheel = wheelHistos[histoTag].find(dtChId.wheel());
661 
662  histoPerWheel->second->Fill(dtChId.sector(), dtChId.station()); // FIXME: normalize to # of layers
663  }
664  }
665 
666  if (doInTimeOccupancies) { // fill occpunacies for in-time hits only
667  if (tdcTime > inTimeHitsLowerBoundCorr && tdcTime < inTimeHitsUpperBoundCorr) {
668  // Physical hits: within the time window
669 
670  //Occupancies Signal per chamber & layer
671  histoTag = "OccupancyInTimeHits_perCh";
672  map<uint32_t, MonitorElement*>::const_iterator mappedHisto = digiHistos[histoTag].find(indexCh);
673 
674  mappedHisto->second->Fill((*digiIt).wire(), (layer_number + (superlayer_number - 1) * 4) - 1);
675 
676  // Fill the chamber occupancy
677  histoTag = "OccupancyInTimeHits";
678  map<int, MonitorElement*>::const_iterator histoPerWheel = wheelHistos[histoTag].find(dtChId.wheel());
679 
680  histoPerWheel->second->Fill(dtChId.sector(), dtChId.station()); // FIXME: normalize to # of layers
681  }
682  }
683  }
684  }
685  }
686 
687  syncNoisyChambers.clear();
688 }
bool doLayerTimeBoxes
Definition: DTDigiTask.h:151
bool filterSyncNoise
Definition: DTDigiTask.h:146
int maxTTMounts
Definition: DTDigiTask.h:139
DTChamberId chamberId() const
Return the corresponding ChamberId.
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
bool readTTrigDB
Definition: DTDigiTask.h:119
bool lookForSyncNoise
Definition: DTDigiTask.h:145
float kFactor
Definition: DTDigiTask.h:91
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
int get(int wheelId, int stationId, int sectorId, int slId, int layerId, int cellId, float &t0mean, float &t0rms, DTTimeUnits::type unit) const
Definition: DTT0.cc:48
std::map< DTChamberId, int > hitMap
Definition: DTDigiTask.h:95
edm::ESHandle< DTTtrig > tTrigMap
Definition: DTDigiTask.h:105
void Fill(long long x)
U second(std::pair< T, U > const &p)
edm::EDGetTokenT< DTDigiCollection > dtDigiToken_
Definition: DTDigiTask.h:114
bool checkNoisyChannels
Definition: DTDigiTask.h:132
bool isLocalRun
Definition: DTDigiTask.h:128
edm::ESHandle< DTT0 > t0Map
Definition: DTDigiTask.h:106
bool doInTimeOccupancies
Definition: DTDigiTask.h:142
bool doNoiseOccupancies
Definition: DTDigiTask.h:141
std::map< std::string, std::map< int, MonitorElement * > > wheelHistos
Definition: DTDigiTask.h:109
int nevents
Definition: DTDigiTask.h:82
T min(T a, T b)
Definition: MathUtil.h:58
int syncNum
Definition: DTDigiTask.h:98
int inTimeHitsUpperBound
Definition: DTDigiTask.h:137
#define LogTrace(id)
int defaultTTrig
Definition: DTDigiTask.h:134
float tTrig
tTrig from the DB
Definition: DTDigiTask.h:89
int tMax
no needs to be precise. Value from PSets will always be used
Definition: DTDigiTask.h:85
int superlayer() const
Return the superlayer number (deprecated method name)
int tdcPedestal
Definition: DTDigiTask.h:149
bool doAllHitsOccupancies
Definition: DTDigiTask.h:140
int maxTDCHits
Definition: DTDigiTask.h:86
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
bool subtractT0
Definition: DTDigiTask.h:121
std::vector< DigiType >::const_iterator const_iterator
int cellStatus(int wheelId, int stationId, int sectorId, int slId, int layerId, int cellId, bool &noiseFlag, bool &feMask, bool &tdcMask, bool &trigMask, bool &deadFlag, bool &nohvFlag) const
get content
Definition: DTStatusFlag.h:88
std::set< DTChamberId > syncNoisyChambers
Definition: DTDigiTask.h:96
int syncNumTot
Definition: DTDigiTask.h:97
MonitorElement * nEventMonitor
Definition: DTDigiTask.h:154
int inTimeHitsLowerBound
Definition: DTDigiTask.h:136
float tTrigRMS
Definition: DTDigiTask.h:90
int sector() const
Definition: DTChamberId.h:49
T get() const
Definition: EventSetup.h:73
int station() const
Return the station number.
Definition: DTChamberId.h:42
std::map< std::string, std::map< uint32_t, MonitorElement * > > digiHistos
Definition: DTDigiTask.h:108
int wheel() const
Return the wheel number.
Definition: DTChamberId.h:39
std::string triggerSource()
get the L1A source
Definition: DTDigiTask.cc:690
edm::Handle< LTCDigiCollection > ltcdigis
Definition: DTDigiTask.h:100
bool sliceTestMode
Definition: DTDigiTask.h:148
Definition: event.py:1
edm::EDGetTokenT< LTCDigiCollection > ltcDigiCollectionToken_
Definition: DTDigiTask.h:116
void DTDigiTask::beginLuminosityBlock ( edm::LuminosityBlock const &  lumiSeg,
edm::EventSetup const &  context 
)
overrideprotected

To reset the MEs.

Definition at line 185 of file DTDigiTask.cc.

References dqm::dqmstoreimpl::DQMStore::IBooker::book1D(), dqm::dqmstoreimpl::DQMStore::IBooker::book2D(), bookHistos(), DTTimeUnits::counts, dt_dqm_sourceclient_common_cff::defaultTmax, dtDigiTask_cfi::doLayerTimeBoxes, printsummarytable::folder, HltBtagPostValidation_cff::histoName, dtResolutionTest_cfi::histoTag, mps_fire::i, edm::LuminosityBlockBase::id(), createfilelist::int, dt_dqm_sourceclient_common_cff::inTimeHitsLowerBound, dt_dqm_sourceclient_common_cff::inTimeHitsUpperBound, dttriganalyzer_cfi::kFactor, label, LogTrace, edm::LuminosityBlockID::luminosityBlock(), dtDigiTask_cfi::maxTTMounts, DetId::rawId(), DTChamberId::sector(), dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder(), DTChamberId::station(), relativeConstraints::station, DTSuperLayerId::superlayer(), DTChamber::superLayers(), dtDigiTask_cfi::timeBoxGranularity, overlapproblemtsosanalyzer_cfi::title, dttriganalyzer_cfi::tTrig, DTChamberId::wheel(), and makeMuonMisalignmentScenario::wheel.

185  {
186  LogTrace("DTDQM|DTMonitorModule|DTDigiTask") << "[DTDigiTask]: Begin of LS transition" << endl;
187 
188  // Reset the MonitorElements every n (= ResetCycle) Lumi Blocks
189  int lumiBlock = lumiSeg.id().luminosityBlock();
190  if (lumiBlock % resetCycle == 0) {
191  LogVerbatim("DTDQM|DTMonitorModule|DTDigiTask")
192  << "[DTDigiTask]: Reset at the LS transition : " << lumiBlock << endl;
193  // Loop over all ME
194  map<string, map<uint32_t, MonitorElement*> >::const_iterator histosIt = digiHistos.begin();
195  map<string, map<uint32_t, MonitorElement*> >::const_iterator histosEnd = digiHistos.end();
196  for (; histosIt != histosEnd; ++histosIt) {
197  map<uint32_t, MonitorElement*>::const_iterator histoIt = (*histosIt).second.begin();
198  map<uint32_t, MonitorElement*>::const_iterator histoEnd = (*histosIt).second.end();
199  for (; histoIt != histoEnd; ++histoIt) {
200  (*histoIt).second->Reset();
201  }
202  }
203 
204  // re-set mapping for not real channels in the occupancyHits per chamber
205  for (int wh = -2; wh <= 2; wh++) {
206  for (int sect = 1; sect <= 14; sect++) {
207  for (int st = 1; st <= 4; st++) {
208  if ((sect == 13 || sect == 14) && st != 4) {
209  continue;
210  }
211  const DTChamberId dtChId(wh, st, sect);
212  channelsMap(dtChId, "OccupancyAllHits_perCh");
213  }
214  }
215  }
216 
217  // loop over wheel summaries
218  map<string, map<int, MonitorElement*> >::const_iterator whHistosIt = wheelHistos.begin();
219  map<string, map<int, MonitorElement*> >::const_iterator whHistosEnd = wheelHistos.end();
220  for (; whHistosIt != whHistosEnd; ++whHistosIt) {
221  if ((*whHistosIt).first.find("Sync") == string::npos) { // FIXME skips synch noise plots
222  map<int, MonitorElement*>::const_iterator histoIt = (*whHistosIt).second.begin();
223  map<int, MonitorElement*>::const_iterator histoEnd = (*whHistosIt).second.end();
224  for (; histoIt != histoEnd; ++histoIt) {
225  (*histoIt).second->Reset();
226  }
227  }
228  }
229  }
230 }
void channelsMap(const DTChamberId &dtCh, std::string histoTag)
To map real channels.
Definition: DTDigiTask.cc:719
std::map< std::string, std::map< int, MonitorElement * > > wheelHistos
Definition: DTDigiTask.h:109
int resetCycle
Definition: DTDigiTask.h:130
#define LogTrace(id)
std::map< std::string, std::map< uint32_t, MonitorElement * > > digiHistos
Definition: DTDigiTask.h:108
void DTDigiTask::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  run,
edm::EventSetup const &  context 
)
overrideprotectedvirtual

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

Definition at line 128 of file DTDigiTask.cc.

References dqm::dqmstoreimpl::DQMStore::IBooker::bookFloat(), bookHistos(), dtDigiTask_cfi::doAllHitsOccupancies, dtDigiTask_cfi::doInTimeOccupancies, dtDigiTask_cfi::doNoiseOccupancies, dt_dqm_sourceclient_common_cff::filterSyncNoise, dt_dqm_sourceclient_common_cff::lookForSyncNoise, and dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder().

128  {
129  if (doStaticBooking) { // Static histo booking
130  // book the event counter
131  ibooker.setCurrentFolder("DT/EventInfo/Counters");
132  nEventMonitor = ibooker.bookFloat(tpMode ? "nProcessedEventsDigiTP" : "nProcessedEventsDigi");
133  ibooker.setCurrentFolder(topFolder());
134  for (int wh = -2; wh <= 2; ++wh) { // loop over wheels
136  bookHistos(ibooker, wh, string("Occupancies"), "OccupancyAllHits");
137 
138  if (doNoiseOccupancies)
139  bookHistos(ibooker, wh, string("Occupancies"), "OccupancyNoise");
141  bookHistos(ibooker, wh, string("Occupancies"), "OccupancyInTimeHits");
142 
144  bookHistos(ibooker, wh, string("SynchNoise"), "SyncNoiseEvents");
145  bookHistos(ibooker, wh, string("SynchNoise"), "SyncNoiseChambs");
146  }
147 
148  for (int st = 1; st <= 4; ++st) { // loop over stations
149  for (int sect = 1; sect <= 14; ++sect) { // loop over sectors
150  if ((sect == 13 || sect == 14) && st != 4)
151  continue;
152  // Get the chamber ID
153  const DTChamberId dtChId(wh, st, sect);
154 
155  // Occupancies
156  if (doAllHitsOccupancies) {
157  bookHistos(ibooker, dtChId, string("Occupancies"), "OccupancyAllHits_perCh");
158  // set channel mapping
159  channelsMap(dtChId, "OccupancyAllHits_perCh");
160  }
161  if (doNoiseOccupancies)
162  bookHistos(ibooker, dtChId, string("Occupancies"), "OccupancyNoise_perCh");
164  bookHistos(ibooker, dtChId, string("Occupancies"), "OccupancyInTimeHits_perCh");
165 
166  for (int sl = 1; sl <= 3; ++sl) { // Loop over SLs
167  if (st == 4 && sl == 2)
168  continue;
169  const DTSuperLayerId dtSLId(wh, st, sect, sl);
170  if (isLocalRun) {
171  bookHistos(ibooker, dtSLId, string("TimeBoxes"), "TimeBox");
172  } else {
173  // TimeBoxes for different triggers
174  bookHistos(ibooker, dtSLId, string("TimeBoxes"), "TimeBoxDTonly");
175  bookHistos(ibooker, dtSLId, string("TimeBoxes"), "TimeBoxNoDT");
176  bookHistos(ibooker, dtSLId, string("TimeBoxes"), "TimeBoxDTalso");
177  }
178  }
179  }
180  }
181  }
182  }
183 }
bool doStaticBooking
Definition: DTDigiTask.h:126
void channelsMap(const DTChamberId &dtCh, std::string histoTag)
To map real channels.
Definition: DTDigiTask.cc:719
bool tpMode
Definition: DTDigiTask.h:144
bool filterSyncNoise
Definition: DTDigiTask.h:146
std::string topFolder() const
Definition: DTDigiTask.cc:711
bool lookForSyncNoise
Definition: DTDigiTask.h:145
bool isLocalRun
Definition: DTDigiTask.h:128
bool doInTimeOccupancies
Definition: DTDigiTask.h:142
bool doNoiseOccupancies
Definition: DTDigiTask.h:141
bool doAllHitsOccupancies
Definition: DTDigiTask.h:140
void bookHistos(DQMStore::IBooker &ibooker, const DTSuperLayerId &dtSL, std::string folder, std::string histoTag)
Book the ME.
MonitorElement * nEventMonitor
Definition: DTDigiTask.h:154
void DTDigiTask::bookHistos ( DQMStore::IBooker ibooker,
const DTSuperLayerId dtSL,
std::string  folder,
std::string  histoTag 
)
protected

Book the ME.

Referenced by beginLuminosityBlock().

void DTDigiTask::bookHistos ( DQMStore::IBooker ibooker,
const DTChamberId dtCh,
std::string  folder,
std::string  histoTag 
)
protected
void DTDigiTask::bookHistos ( DQMStore::IBooker ibooker,
const int  wheelId,
std::string  folder,
std::string  histoTag 
)
protected
void DTDigiTask::channelsMap ( const DTChamberId dtCh,
std::string  histoTag 
)
protected

To map real channels.

Definition at line 719 of file DTDigiTask.cc.

References dtResolutionTest_cfi::histoTag, taus_updatedMVAIds_cff::mapping, DetId::rawId(), DTChamberId::sector(), DTChamberId::station(), and DTChamberId::wheel().

Referenced by endLuminosityBlock().

719  {
720  // n max channels
721  int nWires_max = (digiHistos[histoTag])[dtCh.rawId()]->getNbinsX();
722 
723  // set bin content = -1 for each not real channel. For visualization purposes
724  for (int sl = 1; sl <= 3; sl++) {
725  for (int ly = 1; ly <= 4; ly++) {
726  for (int ch = 1; ch <= nWires_max; ch++) {
727  int dduId = -1, rosId = -1, robId = -1, tdcId = -1, channelId = -1;
728  int realCh = mapping->geometryToReadOut(
729  dtCh.wheel(), dtCh.station(), dtCh.sector(), sl, ly, ch, dduId, rosId, robId, tdcId, channelId);
730 
731  // realCh = 0 if the channel exists, while realCh = 1 if it does not exist
732  if (realCh) {
733  int lybin = (4 * sl - 4) + ly;
734  (digiHistos[histoTag])[dtCh.rawId()]->setBinContent(ch, lybin, -1.);
735  }
736  }
737  }
738  }
739 }
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
edm::ESHandle< DTReadOutMapping > mapping
Definition: DTDigiTask.h:103
int geometryToReadOut(int wheelId, int stationId, int sectorId, int slId, int layerId, int cellId, int &dduId, int &rosId, int &robId, int &tdcId, int &channelId) const
int sector() const
Definition: DTChamberId.h:49
int station() const
Return the station number.
Definition: DTChamberId.h:42
std::map< std::string, std::map< uint32_t, MonitorElement * > > digiHistos
Definition: DTDigiTask.h:108
int wheel() const
Return the wheel number.
Definition: DTChamberId.h:39
void DTDigiTask::dqmBeginRun ( const edm::Run run,
const edm::EventSetup context 
)
overrideprotected

Definition at line 106 of file DTDigiTask.cc.

References dt_dqm_sourceclient_common_cff::defaultTmax, edm::EventSetup::get(), LogTrace, taus_updatedMVAIds_cff::mapping, and cmsHarvester::nevents.

106  {
107  LogTrace("DTDQM|DTMonitorModule|DTDigiTask") << "[DTDigiTask]: begin run" << endl;
108  nevents = 0;
109 
110  // Get the geometry
111  context.get<MuonGeometryRecord>().get(muonGeom);
112 
113  // map of the channels
114  context.get<DTReadOutMappingRcd>().get(mapping);
115 
116  // tTrig
117  if (readTTrigDB)
118  context.get<DTTtrigRcd>().get(tTrigMap);
119  // t0s
120  if (subtractT0)
121  context.get<DTT0Rcd>().get(t0Map);
122  // FIXME: tMax (not yet from the DB)
123  tMax = defaultTmax;
124 
125  // ----------------------------------------------------------------------
126 }
int defaultTmax
Definition: DTDigiTask.h:123
bool readTTrigDB
Definition: DTDigiTask.h:119
edm::ESHandle< DTReadOutMapping > mapping
Definition: DTDigiTask.h:103
edm::ESHandle< DTTtrig > tTrigMap
Definition: DTDigiTask.h:105
edm::ESHandle< DTT0 > t0Map
Definition: DTDigiTask.h:106
int nevents
Definition: DTDigiTask.h:82
edm::ESHandle< DTGeometry > muonGeom
Definition: DTDigiTask.h:102
#define LogTrace(id)
int tMax
no needs to be precise. Value from PSets will always be used
Definition: DTDigiTask.h:85
bool subtractT0
Definition: DTDigiTask.h:121
Definition: DTT0Rcd.h:9
T get() const
Definition: EventSetup.h:73
void DTDigiTask::endLuminosityBlock ( edm::LuminosityBlock const &  lumiSeg,
edm::EventSetup const &  context 
)
inlinefinalprotected
string DTDigiTask::topFolder ( ) const
private

Definition at line 711 of file DTDigiTask.cc.

References dtDigiTask_cfi::sliceTestMode, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by endLuminosityBlock().

711  {
712  if (tpMode)
713  return string("DT/10-TestPulses/");
714  else if (sliceTestMode)
715  return string("DT/01-SliceTestDigi/");
716  return string("DT/01-Digi/");
717 }
bool tpMode
Definition: DTDigiTask.h:144
bool sliceTestMode
Definition: DTDigiTask.h:148
string DTDigiTask::triggerSource ( )
protected

get the L1A source

Definition at line 690 of file DTDigiTask.cc.

References mps_fire::i.

Referenced by endLuminosityBlock().

690  {
691  string l1ASource;
692  if (isLocalRun)
693  return l1ASource;
694 
695  for (std::vector<LTCDigi>::const_iterator ltc_it = ltcdigis->begin(); ltc_it != ltcdigis->end(); ltc_it++) {
696  size_t otherTriggerSum = 0;
697  for (size_t i = 1; i < 6; i++)
698  otherTriggerSum += size_t((*ltc_it).HasTriggered(i));
699 
700  if ((*ltc_it).HasTriggered(0) && otherTriggerSum == 0)
701  l1ASource = "DTonly";
702  else if (!(*ltc_it).HasTriggered(0))
703  l1ASource = "NoDT";
704  else if ((*ltc_it).HasTriggered(0) && otherTriggerSum > 0)
705  l1ASource = "DTalso";
706  }
707 
708  return l1ASource;
709 }
bool isLocalRun
Definition: DTDigiTask.h:128
edm::Handle< LTCDigiCollection > ltcdigis
Definition: DTDigiTask.h:100

Member Data Documentation

bool DTDigiTask::checkNoisyChannels
private

Definition at line 132 of file DTDigiTask.h.

int DTDigiTask::defaultTmax
private

Definition at line 123 of file DTDigiTask.h.

int DTDigiTask::defaultTTrig
private

Definition at line 134 of file DTDigiTask.h.

std::map<std::string, std::map<uint32_t, MonitorElement*> > DTDigiTask::digiHistos
private

Definition at line 108 of file DTDigiTask.h.

bool DTDigiTask::doAllHitsOccupancies
private

Definition at line 140 of file DTDigiTask.h.

bool DTDigiTask::doInTimeOccupancies
private

Definition at line 142 of file DTDigiTask.h.

bool DTDigiTask::doLayerTimeBoxes
private

Definition at line 151 of file DTDigiTask.h.

bool DTDigiTask::doNoiseOccupancies
private

Definition at line 141 of file DTDigiTask.h.

bool DTDigiTask::doStaticBooking
private

Definition at line 126 of file DTDigiTask.h.

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

Definition at line 114 of file DTDigiTask.h.

bool DTDigiTask::filterSyncNoise
private

Definition at line 146 of file DTDigiTask.h.

std::map<DTChamberId, int> DTDigiTask::hitMap
private

Definition at line 95 of file DTDigiTask.h.

int DTDigiTask::inTimeHitsLowerBound
private

Definition at line 136 of file DTDigiTask.h.

int DTDigiTask::inTimeHitsUpperBound
private

Definition at line 137 of file DTDigiTask.h.

bool DTDigiTask::isLocalRun
private

Definition at line 128 of file DTDigiTask.h.

float DTDigiTask::kFactor
private

Definition at line 91 of file DTDigiTask.h.

bool DTDigiTask::lookForSyncNoise
private

Definition at line 145 of file DTDigiTask.h.

edm::EDGetTokenT<LTCDigiCollection> DTDigiTask::ltcDigiCollectionToken_
private

Definition at line 116 of file DTDigiTask.h.

edm::Handle<LTCDigiCollection> DTDigiTask::ltcdigis
private

Definition at line 100 of file DTDigiTask.h.

edm::ESHandle<DTReadOutMapping> DTDigiTask::mapping
private

Definition at line 103 of file DTDigiTask.h.

int DTDigiTask::maxTDCHits
private

Definition at line 86 of file DTDigiTask.h.

int DTDigiTask::maxTTMounts
private

Definition at line 139 of file DTDigiTask.h.

edm::ESHandle<DTGeometry> DTDigiTask::muonGeom
private

Definition at line 102 of file DTDigiTask.h.

MonitorElement* DTDigiTask::nEventMonitor
private

Definition at line 154 of file DTDigiTask.h.

int DTDigiTask::nevents
private

Definition at line 82 of file DTDigiTask.h.

std::map<DTChamberId, int> DTDigiTask::nSynchNoiseEvents
private

Definition at line 153 of file DTDigiTask.h.

bool DTDigiTask::readTTrigDB
private

Definition at line 119 of file DTDigiTask.h.

int DTDigiTask::resetCycle
private

Definition at line 130 of file DTDigiTask.h.

bool DTDigiTask::sliceTestMode
private

Definition at line 148 of file DTDigiTask.h.

bool DTDigiTask::subtractT0
private

Definition at line 121 of file DTDigiTask.h.

std::set<DTChamberId> DTDigiTask::syncNoisyChambers
private

Definition at line 96 of file DTDigiTask.h.

int DTDigiTask::syncNum
private

Definition at line 98 of file DTDigiTask.h.

int DTDigiTask::syncNumTot
private

Definition at line 97 of file DTDigiTask.h.

edm::ESHandle<DTT0> DTDigiTask::t0Map
private

Definition at line 106 of file DTDigiTask.h.

int DTDigiTask::tdcPedestal
private

Definition at line 149 of file DTDigiTask.h.

int DTDigiTask::timeBoxGranularity
private

Definition at line 138 of file DTDigiTask.h.

int DTDigiTask::tMax
private

no needs to be precise. Value from PSets will always be used

Definition at line 85 of file DTDigiTask.h.

bool DTDigiTask::tpMode
private

Definition at line 144 of file DTDigiTask.h.

float DTDigiTask::tTrig
private

tTrig from the DB

Definition at line 89 of file DTDigiTask.h.

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

Definition at line 105 of file DTDigiTask.h.

float DTDigiTask::tTrigRMS
private

Definition at line 90 of file DTDigiTask.h.

std::map<std::string, std::map<int, MonitorElement*> > DTDigiTask::wheelHistos
private

Definition at line 109 of file DTDigiTask.h.