Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-07-17 22:23:13

0001 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0002 #include "FWCore/Framework/interface/EventSetup.h"
0003 #include "FWCore/Framework/interface/MakerMacros.h"
0004 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0005 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0006 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
0007 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
0008 #include "Geometry/Records/interface/CaloGeometryRecord.h"
0009 #include "DataFormats/DetId/interface/DetId.h"
0010 #include "DataFormats/ForwardDetId/interface/HGCScintillatorDetId.h"
0011 #include "DataFormats/ForwardDetId/interface/HGCSiliconDetId.h"
0012 #include "RecoLocalCalo/HGCalRecAlgos/interface/RecHitTools.h"
0013 
0014 #include <vector>
0015 #include <sstream>
0016 
0017 class HGCalTestRecHitTools : public edm::one::EDAnalyzer<> {
0018 public:
0019   explicit HGCalTestRecHitTools(const edm::ParameterSet&);
0020   static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0021 
0022   void beginJob() override {}
0023   void analyze(edm::Event const& iEvent, edm::EventSetup const&) override;
0024   void endJob() override {}
0025 
0026 private:
0027   const edm::ESGetToken<CaloGeometry, CaloGeometryRecord> tok_geom_;
0028   hgcal::RecHitTools tool_;
0029 };
0030 
0031 HGCalTestRecHitTools::HGCalTestRecHitTools(const edm::ParameterSet&)
0032     : tok_geom_(esConsumes<CaloGeometry, CaloGeometryRecord>()) {}
0033 
0034 void HGCalTestRecHitTools::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
0035   edm::ParameterSetDescription desc;
0036   descriptions.add("hgcalRecHitTools", desc);
0037 }
0038 
0039 void HGCalTestRecHitTools::analyze(const edm::Event& /*iEvent*/, const edm::EventSetup& iSetup) {
0040   const CaloGeometry geo = iSetup.getData(tok_geom_);
0041   tool_.setGeometry(geo);
0042 
0043   edm::LogVerbatim("HGCalGeom") << "EE: Last Layer " << tool_.lastLayerEE();
0044   edm::LogVerbatim("HGCalGeom") << "FH: Last Layer " << tool_.lastLayerFH();
0045   edm::LogVerbatim("HGCalGeom") << "BH: First & Last Layer " << tool_.firstLayerBH() << ":" << tool_.lastLayerBH();
0046   edm::LogVerbatim("HGCalGeom") << "Last Layer " << tool_.lastLayer();
0047   std::vector<DetId::Detector> dets = {DetId::HGCalEE, DetId::HGCalHSi, DetId::HGCalHSc};
0048   for (const auto& det : dets) {
0049     auto layer = tool_.firstAndLastLayer(det, 0);
0050     edm::LogVerbatim("HGCalGeom") << "First & Last Layer for Det " << det << " are " << layer.first << ":"
0051                                   << layer.second << " # of wafer types: " << tool_.getWaferTypes(det);
0052     std::vector<double> thick = tool_.getSiThickness(det);
0053     std::ostringstream st1;
0054     for (unsigned int k = 0; k < thick.size(); ++k)
0055       st1 << " : " << thick[k];
0056     edm::LogVerbatim("HGCalGeom") << "Thickness of the wafers" << st1.str();
0057   }
0058 
0059   edm::LogVerbatim("HGCalGeom") << "Maximum # of wafers per layer " << tool_.maxNumberOfWafersPerLayer();
0060   edm::LogVerbatim("HGCalGeom") << "Maximum # of iphi: " << tool_.getScintMaxIphi();
0061   edm::LogVerbatim("HGCalGeom") << "Geometry type " << tool_.getGeometryType();
0062 }
0063 
0064 DEFINE_FWK_MODULE(HGCalTestRecHitTools);