/
githubmirror
/
cmssw
Обзор
Документация
Войти
/
githubmirror
/
cmssw
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
CondTools/Geometry/plugins/PTrackerAdditionalParametersPerDetDBBuilder.cc
56 строк
2 KB
Ernesto Migliore
proto implementation of big pixels for phase-2 - test on T33 and T35 geometry (all InnerTracker)
24 апр 2024, 13:20
24 апр 2024, 13:20
f00a907
Код
Авторство
О чём код?
#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/ESTransientHandle.h" #include "FWCore/Framework/interface/MakerMacros.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/ServiceRegistry/interface/Service.h" #include "CondCore/DBOutputService/interface/PoolDBOutputService.h" #include "CondFormats/GeometryObjects/interface/PTrackerAdditionalParametersPerDet.h" #include "Geometry/Records/interface/IdealGeometryRecord.h" #include "Geometry/TrackerNumberingBuilder/interface/GeometricDet.h" class PTrackerAdditionalParametersPerDetDBBuilder : public edm::one::EDAnalyzer<edm::one::WatchRuns> { public: PTrackerAdditionalParametersPerDetDBBuilder(const edm::ParameterSet&); void beginRun(edm::Run const& iEvent, edm::EventSetup const&) override; void analyze(edm::Event const& iEvent, edm::EventSetup const&) override {} void endRun(edm::Run const& iEvent, edm::EventSetup const&) override {} private: const edm::ESGetToken<GeometricDet, IdealGeometryRecord> geomDetToken_; }; PTrackerAdditionalParametersPerDetDBBuilder::PTrackerAdditionalParametersPerDetDBBuilder( const edm::ParameterSet& iConfig) : geomDetToken_(esConsumes<edm::Transition::BeginRun>()) {} void PTrackerAdditionalParametersPerDetDBBuilder::beginRun(const edm::Run&, edm::EventSetup const& es) { PTrackerAdditionalParametersPerDet ptitp; edm::Service<cond::service::PoolDBOutputService> mydbservice; if (!mydbservice.isAvailable()) { edm::LogError("PTrackerAdditionalParametersPerDetDBBuilder") << "PoolDBOutputService unavailable"; return; } const GeometricDet* gd = &es.getData(geomDetToken_); std::vector<const GeometricDet*> comp; gd->deepComponents(comp); for (auto& i : comp) { ptitp.setGeographicalId(i->geographicalId()); ptitp.setBigPixelsX(i->bigPixelsx()); ptitp.setBigPixelsY(i->bigPixelsy()); ptitp.setBigPixelsPitchX(i->bigPixelsPitchx()); ptitp.setBigPixelsPitchY(i->bigPixelsPitchy()); } if (mydbservice->isNewTagRequest("PTrackerAdditionalParametersPerDetRcd")) { mydbservice->createOneIOV(ptitp, mydbservice->beginOfTime(), "PTrackerAdditionalParametersPerDetRcd"); } else { edm::LogError("PTrackerAdditionalParametersPerDetDBBuilder") << "PTrackerAdditionalParametersPerDet and PTrackerAdditionalParametersPerDetRcd Tag already present"; } } DEFINE_FWK_MODULE(PTrackerAdditionalParametersPerDetDBBuilder);