CMS 3D CMS Logo

OccupancyTask.cc
Go to the documentation of this file.
2 
6 
7 namespace ecaldqm {
8  OccupancyTask::OccupancyTask() : DQWorkerTask(), recHitThreshold_(0.), tpThreshold_(0.), m_iTime(0.) {}
9 
11  recHitThreshold_ = _params.getUntrackedParameter<double>("recHitThreshold");
12  tpThreshold_ = _params.getUntrackedParameter<double>("tpThreshold");
13  }
14 
16 
17  bool OccupancyTask::filterRunType(short const* _runType) {
18  for (int iFED(0); iFED < 54; iFED++) {
19  if (_runType[iFED] == EcalDCCHeaderBlock::COSMIC || _runType[iFED] == EcalDCCHeaderBlock::MTCC ||
20  _runType[iFED] == EcalDCCHeaderBlock::COSMICS_GLOBAL ||
21  _runType[iFED] == EcalDCCHeaderBlock::PHYSICS_GLOBAL || _runType[iFED] == EcalDCCHeaderBlock::COSMICS_LOCAL ||
22  _runType[iFED] == EcalDCCHeaderBlock::PHYSICS_LOCAL)
23  return true;
24  }
25 
26  return false;
27  }
28 
29  void OccupancyTask::beginRun(edm::Run const&, edm::EventSetup const& _es) { FillLaser = true; }
30  void OccupancyTask::setEventTime(const edm::TimeValue_t& iTime) { m_iTime = iTime; }
32  edm::EventSetup const& _es,
33  bool const& ByLumiResetSwitch,
34  bool&) {
35  if (ByLumiResetSwitch) {
36  MEs_.at("DigiAllByLumi").reset(GetElectronicsMap());
37  MEs_.at("TPDigiThrAllByLumi").reset(GetElectronicsMap());
38  MEs_.at("RecHitThrAllByLumi").reset(GetElectronicsMap());
39  }
40  MESet& meLaserCorrProjEta(MEs_.at("LaserCorrProjEta"));
41  if (FillLaser) {
42  float lasercalib = 1.;
43  auto const& laser = &_es.getData(lasertoken_);
44  const edm::Timestamp& evtTimeStamp = edm::Timestamp(m_iTime);
45 
46  for (int i = 0; i < EBDetId::kSizeForDenseIndexing; i++) {
48  continue;
50  lasercalib = laser->getLaserCorrection(ebid, evtTimeStamp);
51  meLaserCorrProjEta.fill(getEcalDQMSetupObjects(), ebid, lasercalib);
52  }
53 
54  for (int i = 0; i < EEDetId::kSizeForDenseIndexing; i++) {
56  continue;
58  lasercalib = laser->getLaserCorrection(eeid, evtTimeStamp);
59  meLaserCorrProjEta.fill(getEcalDQMSetupObjects(), eeid, lasercalib);
60  }
61  FillLaser = false;
62  }
63  }
64 
66  MESet& meDCC(MEs_.at("DCC"));
67 
68  for (EcalRawDataCollection::const_iterator dcchItr(_dcchs.begin()); dcchItr != _dcchs.end(); ++dcchItr)
69  meDCC.fill(getEcalDQMSetupObjects(), dcchItr->id());
70  }
71 
72  template <typename DigiCollection>
73  void OccupancyTask::runOnDigis(DigiCollection const& _digis, Collections _collection) {
74  MESet& meDigi(MEs_.at("Digi"));
75  MESet& meDigiProjEta(MEs_.at("DigiProjEta"));
76  MESet& meDigiProjPhi(MEs_.at("DigiProjPhi"));
77  MESet& meDigiAll(MEs_.at("DigiAll"));
78  MESet& meDigiAllByLumi(MEs_.at("DigiAllByLumi"));
79  MESet& meDigiDCC(MEs_.at("DigiDCC"));
80  MESet& meDigi1D(MEs_.at("Digi1D"));
81  MESet& meTrendNDigi(MEs_.at("TrendNDigi"));
82 
83  std::for_each(_digis.begin(), _digis.end(), [&](typename DigiCollection::Digi const& digi) {
84  DetId id(digi.id());
85  meDigi.fill(getEcalDQMSetupObjects(), id);
86  meDigiProjEta.fill(getEcalDQMSetupObjects(), id);
87  meDigiProjPhi.fill(getEcalDQMSetupObjects(), id);
88  meDigiAll.fill(getEcalDQMSetupObjects(), id);
89  meDigiAllByLumi.fill(getEcalDQMSetupObjects(), id);
90  meDigiDCC.fill(getEcalDQMSetupObjects(), id);
91  });
92 
93  int iSubdet(_collection == kEBDigi ? EcalBarrel : EcalEndcap);
94  meDigi1D.fill(getEcalDQMSetupObjects(), iSubdet, double(_digis.size()));
95  meTrendNDigi.fill(getEcalDQMSetupObjects(), iSubdet, double(timestamp_.iLumi), double(_digis.size()));
96  }
97 
99  // MESet& meTPDigiAll(MEs_.at("TPDigiAll"));
100  // MESet& meTPDigiProjEta(MEs_.at("TPDigiProjEta"));
101  // MESet& meTPDigiProjPhi(MEs_.at("TPDigiProjPhi"));
102  MESet& meTPDigiRCT(MEs_.at("TPDigiRCT"));
103  MESet& meTPDigiThrAll(MEs_.at("TPDigiThrAll"));
104  MESet& meTPDigiThrAllByLumi(MEs_.at("TPDigiThrAllByLumi"));
105  MESet& meTPDigiThrProjEta(MEs_.at("TPDigiThrProjEta"));
106  MESet& meTPDigiThrProjPhi(MEs_.at("TPDigiThrProjPhi"));
107  MESet& meTrendNTPDigi(MEs_.at("TrendNTPDigi"));
108 
109  double nFilteredEB(0.);
110  double nFilteredEE(0.);
111 
112  std::for_each(_digis.begin(), _digis.end(), [&](EcalTrigPrimDigiCollection::value_type const& digi) {
113  EcalTrigTowerDetId const& id(digi.id());
114  // meTPDigiProjEta.fill(id);
115  // meTPDigiProjPhi.fill(id);
116  // meTPDigiAll.fill(id);
117  if (digi.compressedEt() > tpThreshold_) {
118  meTPDigiThrProjEta.fill(getEcalDQMSetupObjects(), id);
119  meTPDigiThrProjPhi.fill(getEcalDQMSetupObjects(), id);
120  meTPDigiThrAll.fill(getEcalDQMSetupObjects(), id);
121  meTPDigiThrAllByLumi.fill(getEcalDQMSetupObjects(), id);
122  meTPDigiRCT.fill(getEcalDQMSetupObjects(), id);
123  if (id.subDet() == EcalBarrel)
124  nFilteredEB += 1.;
125  else
126  nFilteredEE += 1.;
127  }
128  });
129 
130  meTrendNTPDigi.fill(getEcalDQMSetupObjects(), EcalBarrel, double(timestamp_.iLumi), nFilteredEB);
131  meTrendNTPDigi.fill(getEcalDQMSetupObjects(), EcalEndcap, double(timestamp_.iLumi), nFilteredEE);
132  }
133 
135  MESet& meRecHitAll(MEs_.at("RecHitAll"));
136  MESet& meRecHitProjEta(MEs_.at("RecHitProjEta"));
137  MESet& meRecHitProjPhi(MEs_.at("RecHitProjPhi"));
138  MESet& meRecHitThrAll(MEs_.at("RecHitThrAll"));
139  MESet& meRecHitThrAllByLumi(MEs_.at("RecHitThrAllByLumi"));
140  MESet& meRecHitThrmvp(MEs_.at("RecHitThrmvp"));
141  MESet& meRecHitThrpm(MEs_.at("RecHitThrpm"));
142  MESet& meRecHitThrProjEta(MEs_.at("RecHitThrProjEta"));
143  MESet& meRecHitThrProjPhi(MEs_.at("RecHitThrProjPhi"));
144  MESet& meRecHitThr1D(MEs_.at("RecHitThr1D"));
145  MESet& meTrendNRecHitThr(MEs_.at("TrendNRecHitThr"));
146 
147  uint32_t mask(~(0x1 << EcalRecHit::kGood));
148  double nFiltered(0.);
149 
150  float nRHThrp(0), nRHThrm(0);
151  int iSubdet(_collection == kEBRecHit ? EcalBarrel : EcalEndcap);
152  std::for_each(_hits.begin(), _hits.end(), [&](EcalRecHitCollection::value_type const& hit) {
153  DetId id(hit.id());
154 
155  meRecHitAll.fill(getEcalDQMSetupObjects(), id);
156  meRecHitProjEta.fill(getEcalDQMSetupObjects(), id);
157  meRecHitProjPhi.fill(getEcalDQMSetupObjects(), id);
158 
159  if (!hit.checkFlagMask(mask) && hit.energy() > recHitThreshold_) {
160  meRecHitThrProjEta.fill(getEcalDQMSetupObjects(), id);
161  meRecHitThrProjPhi.fill(getEcalDQMSetupObjects(), id);
162  meRecHitThrAll.fill(getEcalDQMSetupObjects(), id);
163  meRecHitThrAllByLumi.fill(getEcalDQMSetupObjects(), id);
164  nFiltered += 1.;
165  bool isPlusFar(iSubdet == EcalBarrel ? (EBDetId(id).iphi() > 100 && EBDetId(id).iphi() < 280) : zside(id) > 0);
166  if (isPlusFar)
167  nRHThrp++;
168  else
169  nRHThrm++;
170  }
171  });
172 
173  meRecHitThr1D.fill(getEcalDQMSetupObjects(), iSubdet, nFiltered);
174  meTrendNRecHitThr.fill(getEcalDQMSetupObjects(), iSubdet, double(timestamp_.iLumi), nFiltered);
175  meRecHitThrmvp.fill(getEcalDQMSetupObjects(), iSubdet, nRHThrp, nRHThrm);
176  meRecHitThrpm.fill(getEcalDQMSetupObjects(), iSubdet, nRHThrp - nRHThrm);
177  }
178 
180 } // namespace ecaldqm
EcalDCCHeaderBlock::COSMICS_LOCAL
Definition: EcalDCCHeaderBlock.h:49
EcalRecHit
Definition: EcalRecHit.h:15
mps_fire.i
i
Definition: mps_fire.py:428
edm::SortedCollection::const_iterator
std::vector< T >::const_iterator const_iterator
Definition: SortedCollection.h:80
ecaldqm
Definition: DQWorker.h:29
hit::id
unsigned int id
Definition: SiStripHitEffFromCalibTree.cc:92
ecaldqm::OccupancyTask::setTokens
void setTokens(edm::ConsumesCollector &) override
Definition: OccupancyTask.cc:15
edm::Run
Definition: Run.h:45
ecaldqm::zside
int zside(DetId const &)
Definition: EcalDQMCommonUtils.cc:189
EBDetId
Definition: EBDetId.h:17
EEDetId::unhashIndex
static EEDetId unhashIndex(int hi)
Definition: EEDetId.cc:65
ecaldqm::MESet::fill
virtual void fill(EcalDQMSetupObjects const, DetId const &, double=1., double=1., double=1.)
Definition: MESet.h:74
EBDetId::unhashIndex
static EBDetId unhashIndex(int hi)
get a DetId from a compact index for arrays
Definition: EBDetId.h:110
l1extraParticles_cfi._params
_params
Definition: l1extraParticles_cfi.py:29
TrendClient_cfi.Digi
Digi
Definition: TrendClient_cfi.py:7
edm::SortedCollection
Definition: SortedCollection.h:49
EcalTrigTowerDetId
Definition: EcalTrigTowerDetId.h:14
edm::ConsumesCollector::esConsumes
auto esConsumes()
Definition: ConsumesCollector.h:97
ecaldqm::DQWorker::GetElectronicsMap
const EcalElectronicsMapping * GetElectronicsMap()
Definition: DQWorker.cc:104
EcalBarrel
Definition: EcalSubdetector.h:10
LEDCalibrationChannels.iphi
iphi
Definition: LEDCalibrationChannels.py:64
DetId
Definition: DetId.h:17
EcalDCCHeaderBlock::PHYSICS_GLOBAL
Definition: EcalDCCHeaderBlock.h:37
testProducerWithPsetDescEmpty_cfi.x1
x1
Definition: testProducerWithPsetDescEmpty_cfi.py:33
EEDetId::validDenseIndex
static bool validDenseIndex(uint32_t din)
Definition: EEDetId.h:213
ecaldqm::OccupancyTask::beginRun
void beginRun(edm::Run const &, edm::EventSetup const &) override
Definition: OccupancyTask.cc:29
ecaldqm::DQWorkerTask
Definition: DQWorkerTask.h:71
ecaldqm::MESet::reset
virtual void reset(EcalElectronicsMapping const *, double=0., double=0., double=0.)
Definition: MESet.cc:98
EEDetId::kSizeForDenseIndexing
Definition: EEDetId.h:329
edm::SortedCollection::begin
const_iterator begin() const
Definition: SortedCollection.h:262
ecaldqm::OccupancyTask::runOnDigis
void runOnDigis(DigiCollection const &, Collections)
Definition: OccupancyTask.cc:73
ecaldqm::kEBRecHit
Definition: Collections.h:36
EcalRecHit::kGood
Definition: EcalRecHit.h:21
ecaldqm::OccupancyTask::recHitThreshold_
float recHitThreshold_
Definition: OccupancyTask.h:39
ecaldqm::OccupancyTask
Definition: OccupancyTask.h:16
ecaldqm::DQWorker::MEs_
MESetCollection MEs_
Definition: DQWorker.h:104
OccupancyTask.h
EEDetId
Definition: EEDetId.h:14
EcalEndcap
Definition: EcalSubdetector.h:10
ecaldqm::OccupancyTask::lasertoken_
edm::ESGetToken< EcalLaserDbService, EcalLaserDbRecord > lasertoken_
Definition: OccupancyTask.h:37
ecaldqm::OccupancyTask::tpThreshold_
float tpThreshold_
Definition: OccupancyTask.h:40
ecaldqm::OccupancyTask::setParams
void setParams(edm::ParameterSet const &) override
Definition: OccupancyTask.cc:10
edm::ParameterSet
Definition: ParameterSet.h:47
ecaldqm::OccupancyTask::runOnRawData
void runOnRawData(EcalRawDataCollection const &)
Definition: OccupancyTask.cc:65
edm::SortedCollection::end
const_iterator end() const
Definition: SortedCollection.h:267
EcalDCCHeaderBlock::PHYSICS_LOCAL
Definition: EcalDCCHeaderBlock.h:48
ecaldqm::MESetCollection::at
MESet & at(const std::string &key)
Definition: MESet.h:399
EBDetId::validDenseIndex
static bool validDenseIndex(uint32_t din)
Definition: EBDetId.h:105
ecaldqm::Collections
Collections
Definition: Collections.h:8
EcalDCCHeaderBlock.h
edm::EventSetup
Definition: EventSetup.h:58
ecaldqm::OccupancyTask::runOnTPDigis
void runOnTPDigis(EcalTrigPrimDigiCollection const &)
Definition: OccupancyTask.cc:98
edm::EventSetup::getData
bool getData(T &iHolder) const
Definition: EventSetup.h:127
ecaldqm::OccupancyTask::OccupancyTask
OccupancyTask()
Definition: OccupancyTask.cc:8
ecaldqm::DQWorker::Timestamp::iLumi
edm::LuminosityBlockNumber_t iLumi
Definition: DQWorker.h:40
ecaldqm::OccupancyTask::setEventTime
void setEventTime(const edm::TimeValue_t &iTime)
Definition: OccupancyTask.cc:30
ecaldqm::DQWorker::getEcalDQMSetupObjects
const EcalDQMSetupObjects getEcalDQMSetupObjects()
Definition: DQWorker.cc:128
EcalDCCHeaderBlock::COSMICS_GLOBAL
Definition: EcalDCCHeaderBlock.h:38
siStripShotFilter_cfi.DigiCollection
DigiCollection
Definition: siStripShotFilter_cfi.py:6
ecaldqm::kEBDigi
Definition: Collections.h:25
edm::SortedCollection::value_type
T value_type
Definition: SortedCollection.h:77
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:29
EcalDCCHeaderBlock::MTCC
Definition: EcalDCCHeaderBlock.h:25
ecaldqm::OccupancyTask::filterRunType
bool filterRunType(short const *) override
Definition: OccupancyTask.cc:17
ecaldqm::DQWorker::timestamp_
Timestamp timestamp_
Definition: DQWorker.h:107
EBDetId::kSizeForDenseIndexing
Definition: EBDetId.h:155
EcalDCCHeaderBlock::COSMIC
Definition: EcalDCCHeaderBlock.h:22
DEFINE_ECALDQM_WORKER
#define DEFINE_ECALDQM_WORKER(TYPE)
Definition: DQWorker.h:141
ParameterSet.h
ecaldqm::OccupancyTask::FillLaser
bool FillLaser
Definition: OccupancyTask.h:38
ecaldqm::OccupancyTask::m_iTime
edm::TimeValue_t m_iTime
Definition: OccupancyTask.h:41
edm::Event
Definition: Event.h:73
ecaldqm::OccupancyTask::runOnRecHits
void runOnRecHits(EcalRecHitCollection const &, Collections)
Definition: OccupancyTask.cc:134
edm::ConsumesCollector
Definition: ConsumesCollector.h:45
EcalCondDBWriter_cfi.laser
laser
Definition: EcalCondDBWriter_cfi.py:46
hit
Definition: SiStripHitEffFromCalibTree.cc:88
edm::TimeValue_t
unsigned long long TimeValue_t
Definition: Timestamp.h:28
EcalDQMCommonUtils.h
ecaldqm::OccupancyTask::beginEvent
void beginEvent(edm::Event const &, edm::EventSetup const &, bool const &, bool &) override
Definition: OccupancyTask.cc:31
ecaldqm::MESet
Definition: MESet.h:42
edm::Timestamp
Definition: Timestamp.h:30