Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:21:35

0001 // system include files
0002 #include <memory>
0003 
0004 // user include files
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 // constructors and destructor
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   // now do what ever initialization is needed
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   // do anything here that needs to be done at destruction time
0045   // (e.g. close files, deallocate resources etc.)
0046 }
0047 
0048 //
0049 // member functions
0050 //
0051 
0052 // ------------ method called to produce the data  ------------
0053 void L1RCTRelValAnalyzer::analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup) {
0054   using namespace edm;
0055 
0056   // as in L1GctTestAnalyzer.cc
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 }