File indexing completed on 2023-03-17 11:13:21
0001
0002 #include <memory>
0003
0004
0005 #include "CommonTools/UtilAlgos/interface/TFileService.h"
0006 #include "FWCore/Framework/interface/Frameworkfwd.h"
0007
0008 #include "FWCore/Framework/interface/Event.h"
0009 #include "FWCore/Framework/interface/MakerMacros.h"
0010
0011 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0012 #include "FWCore/ServiceRegistry/interface/Service.h"
0013
0014 #include "DataFormats/L1CaloTrigger/interface/L1CaloCollections.h"
0015
0016 #include "L1Trigger/RegionalCaloTrigger/interface/L1RCTRelValAnalyzer.h"
0017
0018 using std::cout;
0019 using std::endl;
0020 using std::string;
0021
0022
0023
0024
0025 L1RCTRelValAnalyzer::L1RCTRelValAnalyzer(const edm::ParameterSet &iConfig)
0026 : m_rctEmCands(consumes(iConfig.getParameter<edm::InputTag>("rctEmCandsLabel"))),
0027 m_rctRegions(consumes(iConfig.getParameter<edm::InputTag>("rctRegionsLabel"))) {
0028
0029
0030 usesResource(TFileService::kSharedResource);
0031 edm::Service<TFileService> fs;
0032 h_emRank = fs->make<TH1F>("emRank", "emRank", 64, 0., 64.);
0033 h_emIeta = fs->make<TH1F>("emOccupancyIeta", "emOccupancyIeta", 22, 0., 22.);
0034 h_emIphi = fs->make<TH1F>("emOccupancyIphi", "emOccupancyIphi", 18, 0., 18.);
0035 h_emIsoOccIetaIphi = fs->make<TH2F>("emIsoOccupancy2D", "emIsoOccupancy2D", 22, 0., 22., 18, 0., 18.);
0036 h_emNonIsoOccIetaIphi = fs->make<TH2F>("emNonIsoOccupancy2D", "emNonIsoOccupancy2D", 22, 0., 22., 18, 0., 18.);
0037
0038 h_regionSum = fs->make<TH1F>("regionSum", "regionSum", 100, 0., 100.);
0039 h_regionSumIetaIphi = fs->make<TH2F>("regionSumEtWeighted2D", "regionSumEtWeighted2D", 22, 0., 22., 18, 0., 18.);
0040 h_regionOccIetaIphi = fs->make<TH2F>("regionOccupancy2D", "regionOccupancy2D", 22, 0., 22., 18, 0., 18.);
0041 }
0042
0043 L1RCTRelValAnalyzer::~L1RCTRelValAnalyzer() {
0044
0045
0046 }
0047
0048
0049
0050
0051
0052
0053 void L1RCTRelValAnalyzer::analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup) {
0054 using namespace edm;
0055
0056
0057 Handle<L1CaloEmCollection> rctEmCands = iEvent.getHandle(m_rctEmCands);
0058 Handle<L1CaloRegionCollection> rctRegions = iEvent.getHandle(m_rctRegions);
0059
0060 for (auto em = rctEmCands->begin(); em != rctEmCands->end(); em++) {
0061 if ((*em).rank() > 0) {
0062 h_emRank->Fill((*em).rank());
0063 h_emIeta->Fill((*em).regionId().ieta());
0064 h_emIphi->Fill((*em).regionId().iphi());
0065 if ((*em).isolated()) {
0066 h_emIsoOccIetaIphi->Fill((*em).regionId().ieta(), (*em).regionId().iphi());
0067 } else {
0068 h_emNonIsoOccIetaIphi->Fill((*em).regionId().ieta(), (*em).regionId().iphi());
0069 }
0070 }
0071 }
0072
0073 for (auto rgn = rctRegions->begin(); rgn != rctRegions->end(); rgn++) {
0074 if ((*rgn).et() > 0) {
0075 h_regionSum->Fill((*rgn).et());
0076 h_regionSumIetaIphi->Fill((*rgn).gctEta(), (*rgn).gctPhi(), (*rgn).et());
0077 h_regionOccIetaIphi->Fill((*rgn).gctEta(), (*rgn).gctPhi());
0078 }
0079 }
0080 }