22 constexpr unsigned int TPETABINSHCAL = 83;
42 ecalTPSourceRecdLabel_(ps.getParameter<edm::
InputTag>(
"ecalTPSourceRecd").
label()),
44 hcalTPSourceRecdLabel_(ps.getParameter<edm::
InputTag>(
"hcalTPSourceRecd").
label()),
46 ecalTPSourceSentLabel_(ps.getParameter<edm::
InputTag>(
"ecalTPSourceSent").
label()),
48 hcalTPSourceSentLabel_(ps.getParameter<edm::
InputTag>(
"hcalTPSourceSent").
label()),
49 histFolder_(ps.getParameter<std::
string>(
"histFolder")),
50 tpFillThreshold_(ps.getUntrackedParameter<int>(
"etDistributionsFillThreshold", 0))
70 for (
const auto& tp : *ecalTPsSent ) {
72 if ( tp.compressedEt() > 0 ) {
73 ecalSentSet.emplace(tp.id().ieta(), tp.id().iphi(), tp.compressedEt());
81 for (
const auto& tp : *ecalTPsRecd ) {
83 if ( tp.compressedEt() > 0 ) {
84 ecalRecdSet.emplace(tp.id().ieta(), tp.id().iphi(), tp.compressedEt(), tp.sample(0).raw()>>13);
86 if ( ((tp.sample(0).raw()>>13) & 0b11) > 0 ) {
89 ecalMasked.emplace(tp.id().ieta(), tp.id().iphi(), 0);
94 std::set_difference(ecalSentSet.begin(), ecalSentSet.end(), ecalRecdSet.begin(), ecalRecdSet.end(), std::inserter(ecalSentNotRecdSet, ecalSentNotRecdSet.begin()));
95 for (
const auto& tp : ecalSentNotRecdSet ) {
100 if ( ecalMasked.find(tpNoEt) == ecalMasked.end() ) {
107 std::set_difference(ecalRecdSet.begin(), ecalRecdSet.end(), ecalSentSet.begin(), ecalSentSet.end(), std::inserter(ecalRecdNotSentSet, ecalRecdNotSentSet.begin()));
108 for (
const auto& tp : ecalRecdNotSentSet ) {
113 if ( ecalMasked.find(tpNoEt) == ecalMasked.end() ) {
120 std::set_intersection(ecalRecdSet.begin(), ecalRecdSet.end(), ecalSentSet.begin(), ecalSentSet.end(), std::inserter(ecalSentAndRecdSet, ecalSentAndRecdSet.begin()));
121 for (
const auto& tp : ecalSentAndRecdSet ) {
126 for (
const auto& ecalTp : *ecalTPsRecd ) {
132 if(ecalTp.fineGrain()==1){
136 if(((ecalTp.sample(0).raw()>>13)&1)==1){
140 if(((ecalTp.sample(0).raw()>>14)&1)==1){
144 if(((ecalTp.sample(0).raw()>>15)&1)==1){
149 for (
const auto& ecalTp : *ecalTPsSent ) {
154 if(ecalTp.fineGrain()==1){
167 for (
const auto& tp : *hcalTPsSent ) {
169 if ( tp.SOI_compressedEt() > 0 ) {
170 hcalSentSet.emplace(tp.id().ieta(), tp.id().iphi(), tp.SOI_compressedEt());
177 for (
const auto& tp : *hcalTPsRecd ) {
179 if ( tp.SOI_compressedEt() > 0 ) {
180 hcalRecdSet.emplace(tp.id().ieta(), tp.id().iphi(), tp.SOI_compressedEt(), tp.sample(0).raw()>>13);
185 std::set_difference(hcalSentSet.begin(), hcalSentSet.end(), hcalRecdSet.begin(), hcalRecdSet.end(), std::inserter(hcalSentNotRecdSet, hcalSentNotRecdSet.begin()));
186 for (
const auto& tp : hcalSentNotRecdSet ) {
191 if ( hcalMasked.find(tpNoEt) == hcalMasked.end() ) {
198 std::set_difference(hcalRecdSet.begin(), hcalRecdSet.end(), hcalSentSet.begin(), hcalSentSet.end(), std::inserter(hcalRecdNotSentSet, hcalRecdNotSentSet.begin()));
199 for (
const auto& tp : hcalRecdNotSentSet ) {
204 if ( hcalMasked.find(tpNoEt) == hcalMasked.end() ) {
211 std::set_intersection(hcalRecdSet.begin(), hcalRecdSet.end(), hcalSentSet.begin(), hcalSentSet.end(), std::inserter(hcalSentAndRecdSet, hcalSentAndRecdSet.begin()));
212 for (
const auto& tp : hcalSentAndRecdSet ) {
218 for (
const auto& hcalTp : *hcalTPsRecd ) {
223 if(hcalTp.SOI_fineGrain()){
227 if(((hcalTp.sample(0).raw()>>13)&1)==1){
231 if(((hcalTp.sample(0).raw()>>14)&1)==1){
235 if(((hcalTp.sample(0).raw()>>15)&1)==1){
240 for (
const auto& hcalTp : *hcalTPsSent ) {
245 if(hcalTp.SOI_fineGrain()==1){
254 std::string eventString{std::to_string(
id.
run()) +
":" + std::to_string(
id.luminosityBlock()) +
":" + std::to_string(
id.
event())};
258 for (
size_t ibin=1, imatch=
lastMismatchIndex_; ibin<=20; ibin++, imatch=(imatch+19)%20) {
260 for(
int itype=0; itype<4; ++itype) {
278 TPGEtbins, TPGEtMIN, TPGEtMAX);
282 TPGEtbins, TPGEtMIN, TPGEtMAX);
285 "ECal Raw Et Received NOT Sent",
286 TPGEtbins, TPGEtMIN, TPGEtMAX);
289 "ECal Raw Et Sent NOT Received",
290 TPGEtbins, TPGEtMIN, TPGEtMAX);
293 "ECal Raw Et Sent AND Recd",
294 TPGEtbins, TPGEtMIN, TPGEtMAX);
316 "ECal TP Occupancy received for the ECAL Misaligned, Inerror and Down Links"+sourceString(
ecalTPSourceRecdLabel_),
328 "ECal TP Occupancy Received NOT Sent",
332 "ECal TP Occupancy Sent NOT Received",
336 "ECal TP Occupancy Sent AND Received",
343 "ECal Masked TP Occupancy Received NOT Sent",
347 "ECal Masked TP Occupancy Sent NOT Received",
351 "ECal Masked TP Occupancy Sent AND Received",
359 TPGEtbins, TPGEtMIN, TPGEtMAX);
363 TPGEtbins, TPGEtMIN, TPGEtMAX);
366 "Hcal Raw Et Received NOT Sent",
367 TPGEtbins, TPGEtMIN, TPGEtMAX);
370 "Hcal Raw Et Sent NOT Received",
371 TPGEtbins, TPGEtMIN, TPGEtMAX);
374 "Hcal Raw Et Sent AND Received",
375 TPGEtbins, TPGEtMIN, TPGEtMAX);
398 "Hcal TP Occupancy received for the HCAL Misaligned, Inerror and Down Links"+sourceString(
hcalTPSourceRecdLabel_),
410 "HCal TP Occupancy Received NOT Sent",
414 "HCal TP Occupancy Sent NOT Received",
418 "HCal TP Occupancy Sent AND Received",
425 "HCal Masked TP Occupancy Received NOT Sent",
429 "HCal Masked TP Occupancy Sent NOT Received",
433 "HCal Masked TP Occupancy Sent AND Received",
440 "Log of last 20 mismatches (use json tool to copy/paste)",
size_t lastMismatchIndex_
L1TLayer1(const edm::ParameterSet &ps)
MonitorElement * hcalTPRawEtSent_
MonitorElement * hcalTPRawEtRecdNotSent_
MonitorElement * ecalOccRecdNotSent_
void setBinContent(int binx, double content)
set content of bin (1-D)
const unsigned int TPGETABINS
MonitorElement * last20Mismatches_
MonitorElement * ecalOccSentNotRecd_
edm::EDGetTokenT< HcalTrigPrimDigiCollection > hcalTPSourceSent_
MonitorElement * hcalOccMaskedSentNotRecd_
MonitorElement * ecalOccMaskedRecdNotSent_
edm::EDGetTokenT< EcalTrigPrimDigiCollection > ecalTPSourceRecd_
MonitorElement * ecalTPRawEtRecd_
MonitorElement * ecalTPRawEtSentNotRecd_
MonitorElement * hcalOccSentNotRecd_
MonitorElement * ecalOccRecd_
std::string ecalTPSourceSentLabel_
MonitorElement * ecalOccRecd_isECALLinkInError_
std::string ecalTPSourceRecdLabel_
std::set< SimpleTower > SimpleTowerSet
MonitorElement * hcalOccRecd_
MonitorElement * ecalOccRecd_isECALTowerMasked_
MonitorElement * ecalTPRawEtSent_
MonitorElement * hcalOccRecd_isHCALTowerMasked_
MonitorElement * hcalTPRawEtSentNotRecd_
MonitorElement * hcalOccSent_
MonitorElement * hcalOccRecd_isHCALLinkInError_
MonitorElement * ecalOccMaskedSentNotRecd_
MonitorElement * hcalOccMaskedSentAndRecd_
std::array< std::pair< std::string, int >, 20 > last20MismatchArray_
MonitorElement * hcalOccMaskedRecdNotSent_
MonitorElement * hcalOccSentAndRecd_
virtual void bookHistograms(DQMStore::IBooker &ibooker, const edm::Run &, const edm::EventSetup &) override
MonitorElement * book1D(Args &&...args)
MonitorElement * hcalTPRawEtSentAndRecd_
void analyze(const edm::Event &e, const edm::EventSetup &c)
MonitorElement * ecalOccSentAndRecd_
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
MonitorElement * ecalOccSent_isFineGrainVB_
std::string hcalTPSourceSentLabel_
MonitorElement * ecalOccSent_
void updateMismatch(const edm::Event &e, int mismatchType)
void setCurrentFolder(const std::string &fullpath)
MonitorElement * ecalOccRecd_isECALLinkMasked_
MonitorElement * book2D(Args &&...args)
MonitorElement * hcalOccRecd_isHCALLinkMasked_
edm::EDGetTokenT< HcalTrigPrimDigiCollection > hcalTPSourceRecd_
MonitorElement * hcalOccRecd_hasFeatureBits_
MonitorElement * hcalOccSent_hasFeatureBits_
MonitorElement * hcalTPRawEtRecd_
edm::EDGetTokenT< EcalTrigPrimDigiCollection > ecalTPSourceSent_
void beginLuminosityBlock(const edm::LuminosityBlock &, const edm::EventSetup &)
MonitorElement * ecalOccRecd_isFineGrainVB_
MonitorElement * ecalTPRawEtSentAndRecd_
const unsigned int TPGPHIBINS
MonitorElement * ecalOccMaskedSentAndRecd_
std::string hcalTPSourceRecdLabel_
MonitorElement * ecalTPRawEtRecdNotSent_
MonitorElement * hcalOccRecdNotSent_
TH2F * getTH2F(void) const
virtual void dqmBeginRun(const edm::Run &, const edm::EventSetup &)