Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:14:36

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/ConfigurationDescriptions.h"
0006 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0007 #include "CondFormats/GeometryObjects/interface/EcalSimulationParameters.h"
0008 #include "Geometry/Records/interface/HcalParametersRcd.h"
0009 #include <iostream>
0010 
0011 class EcalSimParametersAnalyzer : public edm::one::EDAnalyzer<> {
0012 public:
0013   explicit EcalSimParametersAnalyzer(const edm::ParameterSet&);
0014 
0015   void analyze(edm::Event const& iEvent, edm::EventSetup const&) override;
0016   static void fillDescriptions(edm::ConfigurationDescriptions&);
0017 
0018 private:
0019   edm::ESGetToken<EcalSimulationParameters, IdealGeometryRecord> simparToken_;
0020   std::string name_;
0021 };
0022 
0023 EcalSimParametersAnalyzer::EcalSimParametersAnalyzer(const edm::ParameterSet& ic)
0024     : name_(ic.getUntrackedParameter<std::string>("name")) {
0025   simparToken_ = esConsumes<EcalSimulationParameters, IdealGeometryRecord>(edm::ESInputTag{"", name_});
0026 }
0027 
0028 void EcalSimParametersAnalyzer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
0029   edm::ParameterSetDescription desc;
0030   desc.addUntracked<std::string>("name", "EcalHitsEB");
0031   descriptions.add("ecalSimulationParametersAnalyzerEB", desc);
0032 }
0033 
0034 void EcalSimParametersAnalyzer::analyze(const edm::Event& /*iEvent*/, const edm::EventSetup& iSetup) {
0035   const auto& parS = iSetup.getData(simparToken_);
0036   const EcalSimulationParameters* parsim = &parS;
0037   if (parsim != nullptr) {
0038     edm::LogVerbatim("EcalGeom") << "\n nxtalEta_: " << parsim->nxtalEta_ << "\n nxtalPhi_: " << parsim->nxtalPhi_
0039                                  << "\n phiBaskets_: " << parsim->phiBaskets_ << "\n etaBaskets_: ";
0040     std::ostringstream st1;
0041     for (const auto& it : parsim->etaBaskets_)
0042       st1 << it << ", ";
0043     st1 << "\n ncrys_: " << parsim->ncrys_ << "\n nmods_: " << parsim->nmods_ << "\n useWeight_: " << parsim->useWeight_
0044         << "\n depth1Name_: " << parsim->depth1Name_ << "\n depth2Name_: " << parsim->depth2Name_
0045         << "\n lvNames_: " << parsim->lvNames_.size() << " occurences";
0046     edm::LogVerbatim("EcalGeom") << st1.str();
0047     int kount(0);
0048     std::ostringstream st2;
0049     for (const auto& it : parsim->lvNames_) {
0050       st2 << it << ", ";
0051       ++kount;
0052       if (kount == 8) {
0053         st2 << "\n";
0054         kount = 0;
0055       }
0056     }
0057     kount = 0;
0058     st2 << "\n matNames_: " << parsim->matNames_.size() << " occurences";
0059     edm::LogVerbatim("EcalGeom") << st2.str();
0060     std::ostringstream st3;
0061     for (const auto& it : parsim->matNames_) {
0062       st3 << it << ", ";
0063       ++kount;
0064       if (kount == 7) {
0065         st3 << "\n";
0066         kount = 0;
0067       }
0068     }
0069     kount = 0;
0070     st3 << "\n dzs_: " << parsim->dzs_.size() << " occurences";
0071     edm::LogVerbatim("EcalGeom") << st3.str();
0072     std::ostringstream st4;
0073     for (const auto& it : parsim->dzs_) {
0074       st4 << it << ", ";
0075       ++kount;
0076       if (kount == 20) {
0077         st4 << "\n";
0078         kount = 0;
0079       }
0080     }
0081     edm::LogVerbatim("EcalGeom") << st4.str();
0082   }
0083 }
0084 
0085 DEFINE_FWK_MODULE(EcalSimParametersAnalyzer);