Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:07:54

0001 #include "DQM/L1TMonitor/interface/L1TStage2CaloLayer2.h"
0002 
0003 L1TStage2CaloLayer2::L1TStage2CaloLayer2(const edm::ParameterSet& ps)
0004     : monitorDir_(ps.getUntrackedParameter<std::string>("monitorDir", "")),
0005       stage2CaloLayer2JetToken_(
0006           consumes<l1t::JetBxCollection>(ps.getParameter<edm::InputTag>("stage2CaloLayer2JetSource"))),
0007       stage2CaloLayer2EGammaToken_(
0008           consumes<l1t::EGammaBxCollection>(ps.getParameter<edm::InputTag>("stage2CaloLayer2EGammaSource"))),
0009       stage2CaloLayer2TauToken_(
0010           consumes<l1t::TauBxCollection>(ps.getParameter<edm::InputTag>("stage2CaloLayer2TauSource"))),
0011       stage2CaloLayer2EtSumToken_(
0012           consumes<l1t::EtSumBxCollection>(ps.getParameter<edm::InputTag>("stage2CaloLayer2EtSumSource"))),
0013       verbose_(ps.getUntrackedParameter<bool>("verbose", false)) {}
0014 
0015 L1TStage2CaloLayer2::~L1TStage2CaloLayer2() {}
0016 
0017 void L1TStage2CaloLayer2::bookHistograms(DQMStore::IBooker& ibooker, edm::Run const&, edm::EventSetup const&) {
0018   //central jet
0019   ibooker.setCurrentFolder(monitorDir_ + "/Central-Jets");
0020 
0021   stage2CaloLayer2CenJetEtEtaPhi_ = ibooker.book2D(
0022       "CenJetsEtEtaPhi", "CENTRAL JET E_{T} ETA PHI; Jet i#eta; Jet i#phi", 229, -114.5, 114.5, 144, -0.5, 143.5);
0023   stage2CaloLayer2CenJetEta_ = ibooker.book1D("CenJetsEta", "CENTRAL JET ETA; Jet i#eta; Counts", 229, -114.5, 114.5);
0024   stage2CaloLayer2CenJetPhi_ = ibooker.book1D("CenJetsPhi", "CENTRAL JET PHI; Jet i#phi; Counts", 144, -0.5, 143.5);
0025   stage2CaloLayer2CenJetRank_ =
0026       ibooker.book1D("CenJetsRank", "CENTRAL JET E_{T}; Jet iE_{T}; Counts", 2048, -0.5, 2047.5);
0027   stage2CaloLayer2CenJetOcc_ =
0028       ibooker.book2D("CenJetsOcc", "CENTRAL JET OCCUPANCY; i#eta; i#phi", 229, -114.5, 114.5, 144, -0.5, 143.5);
0029   stage2CaloLayer2CenJetBxOcc_ =
0030       ibooker.book2D("CenJetsBxOcc", "CENTRAL JET BX OCCUPANCY; BX; Counts", 5, -2.5, 2.5, 512, -0.5, 2047.5);
0031   stage2CaloLayer2CenJetQual_ = ibooker.book1D("CenJetsQual", "CENTRAL JET QUALITY; Quality; Counts", 32, -0.5, 31.5);
0032 
0033   //forward jet
0034   ibooker.setCurrentFolder(monitorDir_ + "/Forward-Jets");
0035 
0036   stage2CaloLayer2ForJetEtEtaPhi_ = ibooker.book2D(
0037       "ForJetsEtEtaPhi", "FORWARD JET E_{T} ETA PHI; Jet i#eta; Jet i#phi", 229, -114.5, 114.5, 144, -0.5, 143.5);
0038   stage2CaloLayer2ForJetEta_ = ibooker.book1D("ForJetsEta", "FORWARD JET ETA; Jet i#eta; Counts", 229, -114.5, 114.5);
0039   stage2CaloLayer2ForJetPhi_ = ibooker.book1D("ForJetsPhi", "FORWARD JET PHI; Jet i#phi; Counts", 144, -0.5, 143.5);
0040   stage2CaloLayer2ForJetRank_ =
0041       ibooker.book1D("ForJetsRank", "FORWARD JET E_{T}; Jet iE_{T}; Counts", 2048, -0.5, 2047.5);
0042   stage2CaloLayer2ForJetOcc_ =
0043       ibooker.book2D("ForJetsOcc", "FORWARD JET OCCUPANCY; Jet i#eta; Jet i#phi", 229, -114.5, 114.5, 144, -0.5, 143.5);
0044   stage2CaloLayer2ForJetBxOcc_ =
0045       ibooker.book2D("ForJetsBxOcc", "FORWARD JET BX OCCUPANCY; BX; Counts", 5, -2.5, 2.5, 512, -0.5, 2047.5);
0046   stage2CaloLayer2ForJetQual_ = ibooker.book1D("ForJetsQual", "FORWARD JET QUALITY; Quality; Counts", 32, -0.5, 31.5);
0047 
0048   //IsoEG
0049   ibooker.setCurrentFolder(monitorDir_ + "/Isolated-EG");
0050 
0051   stage2CaloLayer2EGIso_ = ibooker.book1D("EGIso", "EG ISO; Iso Flag; Counts", 4, -0.5, 3.5);
0052   stage2CaloLayer2IsoEGEtEtaPhi_ =
0053       ibooker.book2D("IsoEGsEtEtaPhi", "ISO EG E_{T} ETA PHI; i#eta; i#phi", 229, -114.5, 114.5, 144, -0.5, 143.5);
0054   stage2CaloLayer2IsoEGEta_ = ibooker.book1D("IsoEGsEta", "ISO EG ETA; EG i#eta; Counts", 229, -114.5, 114.5);
0055   stage2CaloLayer2IsoEGPhi_ = ibooker.book1D("IsoEGsPhi", "ISO EG PHI; EG i#phi; Counts", 144, -0.5, 143.5);
0056   stage2CaloLayer2IsoEGRank_ = ibooker.book1D("IsoEGsRank", "ISO EG E_{T}; EG iE_{T}; Counts", 512, -0.5, 511.5);
0057   stage2CaloLayer2IsoEGOcc_ =
0058       ibooker.book2D("IsoEGsOcc", "ISO EG OCCUPANCY; i#eta; i#phi", 229, -114.5, 114.5, 144, -0.5, 143.5);
0059   stage2CaloLayer2IsoEGBxOcc_ =
0060       ibooker.book2D("IsoEGsBxOcc", "ISO EG BX OCCUPANCY; BX; Counts", 5, -2.5, 2.5, 128, -0.5, 511.5);
0061   stage2CaloLayer2IsoEGQual_ = ibooker.book1D("IsoEGsQual", "ISO EG QUALITY; Quality; Counts", 32, -0.5, 31.5);
0062 
0063   //NonIsoEG
0064   ibooker.setCurrentFolder(monitorDir_ + "/NonIsolated-EG");
0065 
0066   stage2CaloLayer2NonIsoEGEtEtaPhi_ = ibooker.book2D(
0067       "NonIsoEGsEtEtaPhi", "NonISO EG E_{T} ETA PHI; i#eta; i#phi", 229, -114.5, 114.5, 144, -0.5, 143.5);
0068   stage2CaloLayer2NonIsoEGEta_ =
0069       ibooker.book1D("NonIsoEGsEta", "NonISO EG ETA; NonISO EG i#eta; Counts", 229, -114.5, 114.5);
0070   stage2CaloLayer2NonIsoEGPhi_ =
0071       ibooker.book1D("NonIsoEGsPhi", "NonISO EG PHI; NonISO EG i#phi; Counts", 144, -0.5, 143.5);
0072   stage2CaloLayer2NonIsoEGRank_ =
0073       ibooker.book1D("NonIsoEGsRank", "NonISO EG E_{T}; NonISO EG iE_{T}; Counts", 512, -0.5, 511.5);
0074   stage2CaloLayer2NonIsoEGOcc_ =
0075       ibooker.book2D("NonIsoEGsOcc", "NonISO EG OCCUPANCY; i#eta; i#phi", 229, -114.5, 114.5, 144, -0.5, 143.5);
0076   stage2CaloLayer2NonIsoEGBxOcc_ =
0077       ibooker.book2D("NonIsoEGsBxOcc", "NonISO EG BX OCCUPANCY; BX; Counts", 5, -2.5, 2.5, 128, -0.5, 511.5);
0078   stage2CaloLayer2NonIsoEGQual_ = ibooker.book1D("NonIsoEGsQual", "NonISO EG QUALITY; Quality; Counts", 32, -0.5, 31.5);
0079 
0080   //IsoTau
0081   ibooker.setCurrentFolder(monitorDir_ + "/Isolated-Tau");
0082 
0083   stage2CaloLayer2TauIso_ = ibooker.book1D("TauIso", "Tau ISO; Iso Flag; Counts", 4, -0.5, 3.5);
0084   stage2CaloLayer2IsoTauEtEtaPhi_ =
0085       ibooker.book2D("IsoTausEtEtaPhi", "ISO Tau E_{T} ETA PHI; i#eta; i#phi", 229, -114.5, 114.5, 144, -0.5, 143.5);
0086   stage2CaloLayer2IsoTauEta_ = ibooker.book1D("IsoTausEta", "ISO Tau ETA; ISO Tau i#eta; Counts", 229, -114.5, 114.5);
0087   stage2CaloLayer2IsoTauPhi_ = ibooker.book1D("IsoTausPhi", "ISO Tau PHI; ISO Tau i#phi; Counts", 144, -0.5, 143.5);
0088   stage2CaloLayer2IsoTauRank_ =
0089       ibooker.book1D("IsoTausRank", "ISO Tau E_{T}; ISO Tau iE_{T}; Counts", 512, -0.5, 511.5);
0090   stage2CaloLayer2IsoTauOcc_ =
0091       ibooker.book2D("IsoTausOcc", "ISO Tau OCCUPANCY; i#eta; i#phi", 229, -114.5, 114.5, 144, -0.5, 143.5);
0092   stage2CaloLayer2IsoTauBxOcc_ =
0093       ibooker.book2D("IsoTausBxOcc", "ISO Tau BX OCCUPANCY; BX; Counts", 5, -2.5, 2.5, 128, -0.5, 511.5);
0094   stage2CaloLayer2IsoTauQual_ = ibooker.book1D("IsoTausQual", "ISO Tau QUALITY; Quality; Counts", 32, -0.5, 31.5);
0095 
0096   //NonIsoTau
0097   ibooker.setCurrentFolder(monitorDir_ + "/NonIsolated-Tau");
0098 
0099   stage2CaloLayer2TauEtEtaPhi_ =
0100       ibooker.book2D("TausEtEtaPhi", "Tau E_{T} ETA PHI; i#eta; i#phi", 229, -114.5, 114.5, 144, -0.5, 143.5);
0101   stage2CaloLayer2TauEta_ = ibooker.book1D("TausEta", "NonISO Tau ETA; Tau i#eta; Counts", 229, -114.5, 114.5);
0102   stage2CaloLayer2TauPhi_ = ibooker.book1D("TausPhi", "NonISO Tau PHI; Tau i#phi; Counts", 144, -0.5, 143.5);
0103   stage2CaloLayer2TauRank_ = ibooker.book1D("TausRank", "NonISO Tau E_{T}; Tau iE_{T}; Counts", 512, -0.5, 511.5);
0104   stage2CaloLayer2TauOcc_ =
0105       ibooker.book2D("TausOcc", "NonISO Tau OCCUPANCY; i#eta; i#phi", 229, -114.5, 114.5, 144, -0.5, 143.5);
0106   stage2CaloLayer2TauBxOcc_ =
0107       ibooker.book2D("TausBxOcc", "NonISO Tau BX OCCUPANCY; BX; Counts", 5, -2.5, 2.5, 128, -0.5, 511.5);
0108   stage2CaloLayer2TauQual_ = ibooker.book1D("TausQual", "NonISO Tau QUALITY; Quality; Counts", 32, -0.5, 31.5);
0109 
0110   //EtSums
0111   ibooker.setCurrentFolder(monitorDir_ + "/Energy-Sums");
0112 
0113   stage2CaloLayer2EtSumBxOcc_ =
0114       ibooker.book2D("EtSumBxOcc", "EtSum BX OCCUPANCY; BX; Counts", 5, -2.5, 2.5, 1024, -0.5, 4095.5);
0115   stage2CaloLayer2METRank_ = ibooker.book1D("METRank", "MET E_{T}; iE_{T}; Counts", 4096, -0.5, 4095.5);
0116   stage2CaloLayer2METPhi_ = ibooker.book1D("METPhi", "MET Phi; MET i#Phi; Counts", 144, -0.5, 143.5);
0117   stage2CaloLayer2ETTRank_ = ibooker.book1D("ETTRank", "ETT E_{T}; ETT iE_{T}; Counts", 4096, -0.5, 4095.5);
0118   stage2CaloLayer2MHTRank_ = ibooker.book1D("MHTRank", "MHT E_{T}; MHT iE_{T}; Counts", 4096, -0.5, 4095.5);
0119   stage2CaloLayer2MHTPhi_ = ibooker.book1D("MHTPhi", "MHT Phi; MHT i#phi; Counts", 144, -0.5, 143.5);
0120   stage2CaloLayer2HTTRank_ = ibooker.book1D("HTTRank", "HTT E_{T}; HTT iE_{T}; Counts", 4096, -0.5, 4095.5);
0121   stage2CaloLayer2METHFRank_ = ibooker.book1D("METHFRank", "METHF E_{T}; METHF iE_{T}; Counts", 4096, -0.5, 4095.5);
0122   stage2CaloLayer2METHFPhi_ = ibooker.book1D("METHFPhi", "METHF Phi; METHF i#phi; Counts", 144, -0.5, 143.5);
0123   // stage2CaloLayer2ETTHFRank_ = ibooker.book1D("ETTHFRank", "ETTHF E_{T}", 4096, -0.5, 4095.5);
0124   stage2CaloLayer2MHTHFRank_ = ibooker.book1D("MHTHFRank", "MHTHF E_{T}; MHTHF iE_{T}; Counts", 4096, -0.5, 4095.5);
0125   stage2CaloLayer2MHTHFPhi_ = ibooker.book1D("MHTHFPhi", "MHTHF Phi; MHTHF i#phi; Counts", 144, -0.5, 143.5);
0126   // stage2CaloLayer2HTTHFRank_ = ibooker.book1D("HTTHFRank", "HTTHF E_{T}", 4096, -0.5, 4095.5);
0127   stage2CaloLayer2ETTEMRank_ = ibooker.book1D("ETTEMRank", "ETTEM E_{T}; ETTEM iE_{T}; Counts", 4096, -0.5, 4095.5);
0128 
0129   stage2CaloLayer2Asymmetry_ = ibooker.book1D("Asymmetry", "Asymmetry; Assymmetry; Counts", 256, -0.5, 255.5);
0130   stage2CaloLayer2Centrality_ = ibooker.book1D("Centrality", "Centrality; Centrality; Counts", 9, -1.5, 7.5);
0131 
0132   stage2CaloLayer2MinBiasHFP0_ =
0133       ibooker.book1D("MinBiasHFP0", "HF Min Bias Sum Threshold 0, Positive #eta; N_{towers}; Events", 16, -0.5, 15.5);
0134   stage2CaloLayer2MinBiasHFM0_ =
0135       ibooker.book1D("MinBiasHFM0", "HF Min Bias Sum Threshold 1, Nevagive #eta; N_{towers}; Events", 16, -0.5, 15.5);
0136   stage2CaloLayer2MinBiasHFP1_ =
0137       ibooker.book1D("MinBiasHFP1", "HF Min Bias Sum Threshold 1, Positive #eta; N_{towers}; Events", 16, -0.5, 15.5);
0138   stage2CaloLayer2MinBiasHFM1_ =
0139       ibooker.book1D("MinBiasHFM1", "HF Min Bias Sum Threshold 1, Negative #eta; N_{towers}; Events", 16, -0.5, 15.5);
0140 
0141   stage2CaloLayer2TowCount_ =
0142       ibooker.book1D("TowCount", "Count of Trigger towers above threshold; N_{towers}; Events", 5904, -0.5, 5903.5);
0143 
0144   ibooker.setCurrentFolder(monitorDir_ + "/Timing");
0145   timingStage2CaloLayer2CenJetBxOcc_ = stage2CaloLayer2CenJetBxOcc_;
0146   timingStage2CaloLayer2ForJetBxOcc_ = stage2CaloLayer2ForJetBxOcc_;
0147   timingStage2CaloLayer2IsoEGBxOcc_ = stage2CaloLayer2IsoEGBxOcc_;
0148   timingStage2CaloLayer2NonIsoEGBxOcc_ = stage2CaloLayer2NonIsoEGBxOcc_;
0149   timingStage2CaloLayer2IsoTauBxOcc_ = stage2CaloLayer2TauBxOcc_;
0150   timingStage2CaloLayer2TauBxOcc_ = stage2CaloLayer2EtSumBxOcc_;
0151   timingStage2CaloLayer2EtSumBxOcc_ = stage2CaloLayer2EtSumBxOcc_;
0152 
0153   //Shifter
0154   ibooker.setCurrentFolder(monitorDir_ + "/shifter");
0155   stage2CaloLayer2CenJetEtEtaPhi_shift_ = ibooker.book2D(
0156       "CenJetsEtEtaPhi_shift", "CENTRAL JET E_{T} ETA PHI; Jet i#eta; Jet i#phi", 68, -68, 68, 72, -0.5, 143.5);
0157   stage2CaloLayer2ForJetEtEtaPhi_shift_ = ibooker.book2D(
0158       "ForJetsEtEtaPhi_shift", "FORWARD JET E_{T} ETA PHI; Jet i#eta; Jet i#phi", 58, -116, 116, 36, -0.5, 143.5);
0159   stage2CaloLayer2IsoEGEtEtaPhi_shift_ =
0160       ibooker.book2D("IsoEGsEtEtaPhi_shift", "ISO EG E_{T} ETA PHI; i#eta; i#phi", 70, -70, 70, 72, -0.5, 143.5);
0161   stage2CaloLayer2NonIsoEGEtEtaPhi_shift_ =
0162       ibooker.book2D("NonIsoEGsEtEtaPhi_shift", "NonISO EG E_{T} ETA PHI; i#eta; i#phi", 70, -70, 70, 72, -0.5, 143.5);
0163   stage2CaloLayer2IsoTauEtEtaPhi_shift_ =
0164       ibooker.book2D("IsoTausEtEtaPhi_shift", "ISO Tau E_{T} ETA PHI; i#eta; i#phi", 60, -60, 60, 72, -0.5, 143.5);
0165   stage2CaloLayer2TauEtEtaPhi_shift_ =
0166       ibooker.book2D("TausEtEtaPhi_shift", "Tau E_{T} ETA PHI; i#eta; i#phi", 60, -60, 60, 72, -0.5, 143.5);
0167 }
0168 
0169 void L1TStage2CaloLayer2::analyze(const edm::Event& e, const edm::EventSetup& c) {
0170   if (verbose_) {
0171     edm::LogInfo("L1TStage2CaloLayer2") << "L1TStage2CaloLayer2: analyze...." << std::endl;
0172   }
0173 
0174   // analyze Jet
0175   edm::Handle<l1t::JetBxCollection> Jet;
0176   e.getByToken(stage2CaloLayer2JetToken_, Jet);
0177 
0178   for (int itBX = Jet->getFirstBX(); itBX <= Jet->getLastBX(); ++itBX) {
0179     for (l1t::JetBxCollection::const_iterator itJet = Jet->begin(itBX); itJet != Jet->end(itBX); ++itJet) {
0180       const bool forward = (itJet->hwEta() > 68 || itJet->hwEta() < (-68));
0181       if (forward) {
0182         stage2CaloLayer2ForJetBxOcc_->Fill(itBX, itJet->hwPt());
0183         if (itBX == 0) {
0184           stage2CaloLayer2ForJetRank_->Fill(itJet->hwPt());
0185           if (itJet->hwPt() != 0) {
0186             stage2CaloLayer2ForJetEtEtaPhi_->Fill(itJet->hwEta(), itJet->hwPhi(), itJet->hwPt());
0187             stage2CaloLayer2ForJetEtEtaPhi_shift_->Fill(itJet->hwEta(), itJet->hwPhi(), itJet->hwPt());
0188             stage2CaloLayer2ForJetOcc_->Fill(itJet->hwEta(), itJet->hwPhi());
0189             stage2CaloLayer2ForJetPhi_->Fill(itJet->hwPhi());
0190             stage2CaloLayer2ForJetEta_->Fill(itJet->hwEta());
0191             stage2CaloLayer2ForJetQual_->Fill(itJet->hwQual());
0192           }
0193         }
0194       } else {
0195         stage2CaloLayer2CenJetBxOcc_->Fill(itBX, itJet->hwPt());
0196         if (itBX == 0) {
0197           stage2CaloLayer2CenJetRank_->Fill(itJet->hwPt());
0198           if (itJet->hwPt() != 0) {
0199             stage2CaloLayer2CenJetEtEtaPhi_->Fill(itJet->hwEta(), itJet->hwPhi(), itJet->hwPt());
0200             stage2CaloLayer2CenJetEtEtaPhi_shift_->Fill(itJet->hwEta(), itJet->hwPhi(), itJet->hwPt());
0201             stage2CaloLayer2CenJetOcc_->Fill(itJet->hwEta(), itJet->hwPhi());
0202             stage2CaloLayer2CenJetPhi_->Fill(itJet->hwPhi());
0203             stage2CaloLayer2CenJetEta_->Fill(itJet->hwEta());
0204             stage2CaloLayer2CenJetQual_->Fill(itJet->hwQual());
0205           }
0206         }
0207       }
0208     }
0209   }
0210 
0211   //analyze EGamma
0212   edm::Handle<l1t::EGammaBxCollection> EGamma;
0213   e.getByToken(stage2CaloLayer2EGammaToken_, EGamma);
0214 
0215   for (int itBX = EGamma->getFirstBX(); itBX <= EGamma->getLastBX(); ++itBX) {
0216     for (l1t::EGammaBxCollection::const_iterator itEG = EGamma->begin(itBX); itEG != EGamma->end(itBX); ++itEG) {
0217       bool iso = itEG->hwIso();
0218       if (iso) {
0219         stage2CaloLayer2IsoEGBxOcc_->Fill(itBX, itEG->hwPt());
0220         if (itBX == 0) {
0221           stage2CaloLayer2IsoEGRank_->Fill(itEG->hwPt());
0222           if (itEG->hwPt() != 0) {
0223             stage2CaloLayer2IsoEGEtEtaPhi_->Fill(itEG->hwEta(), itEG->hwPhi(), itEG->hwPt());
0224             stage2CaloLayer2IsoEGEtEtaPhi_shift_->Fill(itEG->hwEta(), itEG->hwPhi(), itEG->hwPt());
0225             stage2CaloLayer2IsoEGOcc_->Fill(itEG->hwEta(), itEG->hwPhi());
0226             stage2CaloLayer2IsoEGPhi_->Fill(itEG->hwPhi());
0227             stage2CaloLayer2IsoEGEta_->Fill(itEG->hwEta());
0228             stage2CaloLayer2IsoEGQual_->Fill(itEG->hwQual());
0229             stage2CaloLayer2EGIso_->Fill(itEG->hwIso());
0230           }
0231         }
0232       } else {
0233         stage2CaloLayer2NonIsoEGBxOcc_->Fill(itBX, itEG->hwPt());
0234         if (itBX == 0) {
0235           stage2CaloLayer2NonIsoEGRank_->Fill(itEG->hwPt());
0236           if (itEG->hwPt() != 0) {
0237             stage2CaloLayer2NonIsoEGEtEtaPhi_->Fill(itEG->hwEta(), itEG->hwPhi(), itEG->hwPt());
0238             stage2CaloLayer2NonIsoEGEtEtaPhi_shift_->Fill(itEG->hwEta(), itEG->hwPhi(), itEG->hwPt());
0239             stage2CaloLayer2NonIsoEGOcc_->Fill(itEG->hwEta(), itEG->hwPhi());
0240             stage2CaloLayer2NonIsoEGPhi_->Fill(itEG->hwPhi());
0241             stage2CaloLayer2NonIsoEGEta_->Fill(itEG->hwEta());
0242             stage2CaloLayer2NonIsoEGQual_->Fill(itEG->hwQual());
0243             stage2CaloLayer2EGIso_->Fill(itEG->hwIso());
0244           }
0245         }
0246       }
0247     }
0248   }
0249 
0250   //analyze Tau
0251   edm::Handle<l1t::TauBxCollection> Tau;
0252   e.getByToken(stage2CaloLayer2TauToken_, Tau);
0253   for (int itBX = Tau->getFirstBX(); itBX <= Tau->getLastBX(); ++itBX) {
0254     for (l1t::TauBxCollection::const_iterator itTau = Tau->begin(itBX); itTau != Tau->end(itBX); ++itTau) {
0255       bool iso = itTau->hwIso();
0256       if (iso) {
0257         stage2CaloLayer2IsoTauBxOcc_->Fill(itBX, itTau->hwPt());
0258         if (itBX == 0) {
0259           stage2CaloLayer2IsoTauRank_->Fill(itTau->hwPt());
0260           if (itTau->hwPt() != 0) {
0261             stage2CaloLayer2IsoTauEtEtaPhi_->Fill(itTau->hwEta(), itTau->hwPhi(), itTau->hwPt());
0262             stage2CaloLayer2IsoTauEtEtaPhi_shift_->Fill(itTau->hwEta(), itTau->hwPhi(), itTau->hwPt());
0263             stage2CaloLayer2IsoTauOcc_->Fill(itTau->hwEta(), itTau->hwPhi());
0264             stage2CaloLayer2IsoTauPhi_->Fill(itTau->hwPhi());
0265             stage2CaloLayer2IsoTauEta_->Fill(itTau->hwEta());
0266             stage2CaloLayer2IsoTauQual_->Fill(itTau->hwQual());
0267             stage2CaloLayer2TauIso_->Fill(itTau->hwIso());
0268           }
0269         }
0270       } else {
0271         stage2CaloLayer2TauBxOcc_->Fill(itBX, itTau->hwPt());
0272         if (itBX == 0) {
0273           stage2CaloLayer2TauRank_->Fill(itTau->hwPt());
0274           if (itTau->hwPt() != 0) {
0275             stage2CaloLayer2TauEtEtaPhi_->Fill(itTau->hwEta(), itTau->hwPhi(), itTau->hwPt());
0276             stage2CaloLayer2TauEtEtaPhi_shift_->Fill(itTau->hwEta(), itTau->hwPhi(), itTau->hwPt());
0277             stage2CaloLayer2TauOcc_->Fill(itTau->hwEta(), itTau->hwPhi());
0278             stage2CaloLayer2TauPhi_->Fill(itTau->hwPhi());
0279             stage2CaloLayer2TauEta_->Fill(itTau->hwEta());
0280             stage2CaloLayer2TauQual_->Fill(itTau->hwQual());
0281             stage2CaloLayer2TauIso_->Fill(itTau->hwIso());
0282           }
0283         }
0284       }
0285     }
0286   }
0287 
0288   //energy sum
0289   edm::Handle<l1t::EtSumBxCollection> EtSum;
0290   e.getByToken(stage2CaloLayer2EtSumToken_, EtSum);
0291   for (int itBX = EtSum->getFirstBX(); itBX <= EtSum->getLastBX(); ++itBX) {
0292     for (l1t::EtSumBxCollection::const_iterator itEtSum = EtSum->begin(itBX); itEtSum != EtSum->end(itBX); ++itEtSum) {
0293       stage2CaloLayer2EtSumBxOcc_->Fill(itBX, itEtSum->hwPt());
0294 
0295       if (itBX == 0) {
0296         if (l1t::EtSum::EtSumType::kMissingEt == itEtSum->getType()) {
0297           ;  // MET
0298           stage2CaloLayer2METRank_->Fill(itEtSum->hwPt());
0299           stage2CaloLayer2METPhi_->Fill(itEtSum->hwPhi());
0300         } else if (l1t::EtSum::EtSumType::kMissingEtHF == itEtSum->getType()) {  // METHF
0301           stage2CaloLayer2METHFRank_->Fill(itEtSum->hwPt());
0302           stage2CaloLayer2METHFPhi_->Fill(itEtSum->hwPhi());
0303         } else if (l1t::EtSum::EtSumType::kTotalEt == itEtSum->getType()) {  // ETT
0304           stage2CaloLayer2ETTRank_->Fill(itEtSum->hwPt());
0305           //} else if(l1t::EtSum::EtSumType::kTotalEtHF == itEtSum->getType()){    // ETTHF
0306           // stage2CaloLayer2ETTHFRank_->Fill(itEtSum->hwPt());
0307         } else if (l1t::EtSum::EtSumType::kMissingHt == itEtSum->getType()) {  // MHT
0308           stage2CaloLayer2MHTRank_->Fill(itEtSum->hwPt());
0309           if (itEtSum->hwPt() > 0)
0310             stage2CaloLayer2MHTPhi_->Fill(itEtSum->hwPhi());
0311         } else if (l1t::EtSum::EtSumType::kMissingHtHF == itEtSum->getType()) {  // MHTHF
0312           stage2CaloLayer2MHTHFRank_->Fill(itEtSum->hwPt());
0313           if (itEtSum->hwPt() > 0)
0314             stage2CaloLayer2MHTHFPhi_->Fill(itEtSum->hwPhi());
0315         } else if (l1t::EtSum::EtSumType::kMinBiasHFP0 == itEtSum->getType()) {  // MBHFP0
0316           stage2CaloLayer2MinBiasHFP0_->Fill(itEtSum->hwPt());
0317         } else if (l1t::EtSum::EtSumType::kMinBiasHFM0 == itEtSum->getType()) {  // MBHFM0
0318           stage2CaloLayer2MinBiasHFM0_->Fill(itEtSum->hwPt());
0319         } else if (l1t::EtSum::EtSumType::kMinBiasHFP1 == itEtSum->getType()) {  // MBHFP1
0320           stage2CaloLayer2MinBiasHFP1_->Fill(itEtSum->hwPt());
0321         } else if (l1t::EtSum::EtSumType::kMinBiasHFM1 == itEtSum->getType()) {  // MBHFM1
0322           stage2CaloLayer2MinBiasHFM1_->Fill(itEtSum->hwPt());
0323           //} else if(l1t::EtSum::EtSumType::kTotalHtHF == itEtSum->getType()){    // HTTHF
0324           //stage2CaloLayer2HTTHFRank_->Fill(itEtSum->hwPt());
0325         } else if (l1t::EtSum::EtSumType::kTotalEtEm == itEtSum->getType()) {  // ETTEM
0326           stage2CaloLayer2ETTEMRank_->Fill(itEtSum->hwPt());
0327         } else if (l1t::EtSum::EtSumType::kTowerCount == itEtSum->getType()) {
0328           stage2CaloLayer2TowCount_->Fill(itEtSum->hwPt());
0329         } else if (l1t::EtSum::EtSumType::kTotalHt == itEtSum->getType()) {
0330           stage2CaloLayer2HTTRank_->Fill(itEtSum->hwPt());
0331         } else if (l1t::EtSum::EtSumType::kAsymEt == itEtSum->getType()) {  //Asym ET
0332           stage2CaloLayer2Asymmetry_->Fill(itEtSum->hwPt());
0333         } else if (l1t::EtSum::EtSumType::kCentrality == itEtSum->getType()) {  //Centrality
0334           if (itEtSum->hwPt() == 0)
0335             stage2CaloLayer2Centrality_->Fill(-1);
0336           else {
0337             for (int i = 0; i < 8; i++)
0338               if (((itEtSum->hwPt() >> i) & 1) == 1)
0339                 stage2CaloLayer2Centrality_->Fill(i);
0340           }
0341         }
0342       }
0343     }
0344   }
0345 }