1111#include " Geometry/Records/interface/MTDTopologyRcd.h"
1212#include " CondFormats/GeometryObjects/interface/PMTDParameters.h"
1313#include " Geometry/Records/interface/PMTDParametersRcd.h"
14+ #include " Geometry/MTDGeometryBuilder/interface/MTDGeometry.h"
15+ #include " Geometry/Records/interface/MTDDigiGeometryRecord.h"
1416
1517#include < memory>
1618
@@ -25,13 +27,18 @@ class MTDTopologyEP : public edm::ESProducer {
2527 ReturnType produce (const MTDTopologyRcd&);
2628
2729private:
28- void fillParameters (const PMTDParameters&, int & mtdTopologyMode, MTDTopology::ETLValues&);
30+ void fillBTLtopology (const MTDGeometry&, MTDTopology::BTLValues&) {};
31+ void fillETLtopology (const PMTDParameters&, int & mtdTopologyMode, MTDTopology::ETLValues&);
2932
30- const edm::ESGetToken<PMTDParameters, PMTDParametersRcd> token_;
33+ edm::ESGetToken<MTDGeometry, MTDDigiGeometryRecord> mtdgeoToken_;
34+ edm::ESGetToken<PMTDParameters, PMTDParametersRcd> mtdparToken_;
3135};
3236
33- MTDTopologyEP::MTDTopologyEP (const edm::ParameterSet& conf)
34- : token_{setWhatProduced (this ).consumesFrom <PMTDParameters, PMTDParametersRcd>(edm::ESInputTag ())} {}
37+ MTDTopologyEP::MTDTopologyEP (const edm::ParameterSet& conf) {
38+ auto cc = setWhatProduced (this );
39+ mtdgeoToken_ = cc.consumesFrom <MTDGeometry, MTDDigiGeometryRecord>(edm::ESInputTag ());
40+ mtdparToken_ = cc.consumesFrom <PMTDParameters, PMTDParametersRcd>(edm::ESInputTag ());
41+ }
3542
3643void MTDTopologyEP::fillDescriptions (edm::ConfigurationDescriptions& descriptions) {
3744 edm::ParameterSetDescription ttc;
@@ -40,22 +47,19 @@ void MTDTopologyEP::fillDescriptions(edm::ConfigurationDescriptions& description
4047
4148MTDTopologyEP::ReturnType MTDTopologyEP::produce (const MTDTopologyRcd& iRecord) {
4249 int mtdTopologyMode;
50+ MTDTopology::BTLValues btlVals;
4351 MTDTopology::ETLValues etlVals;
4452
45- fillParameters (iRecord.get (token_), mtdTopologyMode, etlVals);
53+ fillBTLtopology (iRecord.get (mtdgeoToken_), btlVals);
54+
55+ fillETLtopology (iRecord.get (mtdparToken_), mtdTopologyMode, etlVals);
4656
47- return std::make_unique<MTDTopology>(mtdTopologyMode, etlVals);
57+ return std::make_unique<MTDTopology>(mtdTopologyMode, btlVals, etlVals);
4858}
4959
50- void MTDTopologyEP::fillParameters (const PMTDParameters& ptp, int & mtdTopologyMode, MTDTopology::ETLValues& etlVals) {
60+ void MTDTopologyEP::fillETLtopology (const PMTDParameters& ptp, int & mtdTopologyMode, MTDTopology::ETLValues& etlVals) {
5161 mtdTopologyMode = ptp.topologyMode_ ;
5262
53- // for legacy geometry scenarios no topology informastion is stored, only for newer ETL 2-discs layout
54-
55- if (mtdTopologyMode <= static_cast <int >(MTDTopologyMode::Mode::barphiflat)) {
56- return ;
57- }
58-
5963 // Check on the internal consistency of thr ETL layout information provided by parameters
6064
6165 for (size_t it = 3 ; it <= 9 ; it++) {
0 commit comments