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& , 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);