Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

migrate Alignment/TrackerAlignment to use esConsumes #32301

Merged
merged 1 commit into from
Dec 1, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Alignment/OfflineValidation/plugins/ResidualRefitting.cc
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ ResidualRefitting::ResidualRefitting(const edm::ParameterSet& cfg)
: magFieldToken_(esConsumes()),
topoToken_(esConsumes()),
trackingGeometryToken_(esConsumes()),
propagatorToken_(esConsumes(edm::ESInputTag(cfg.getParameter<std::string>("propagator")))),
propagatorToken_(esConsumes(edm::ESInputTag("", cfg.getParameter<std::string>("propagator")))),
outputFileName_(cfg.getUntrackedParameter<std::string>("histoutputFile")),
muons_(cfg.getParameter<edm::InputTag>("muons")),
muonsRemake_(cfg.getParameter<edm::InputTag>("muonsRemake")), //This Feels Misalignment
Expand Down
19 changes: 11 additions & 8 deletions Alignment/TrackerAlignment/plugins/CosmicRateAnalyzer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,9 @@ class CosmicRateAnalyzer : public edm::one::EDAnalyzer<edm::one::WatchRuns, edm:
void ClearInEventLoop();
void ClearInEndRun();
// ----------member data ---------------------------
const edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> magFieldToken_;
const edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> topoToken_;
const edm::ESGetToken<SiStripLatency, SiStripLatencyRcd> latencyToken_;
edm::EDGetTokenT<reco::TrackCollection> trackTags_;
edm::EDGetTokenT<edmNew::DetSetVector<SiStripCluster> > clustercollectionToken_;
edm::EDGetTokenT<reco::MuonCollection> muonTags_;
Expand Down Expand Up @@ -167,7 +170,10 @@ class CosmicRateAnalyzer : public edm::one::EDAnalyzer<edm::one::WatchRuns, edm:
// constructors and destructor
//
CosmicRateAnalyzer::CosmicRateAnalyzer(const edm::ParameterSet& iConfig)
: trackTags_(consumes<reco::TrackCollection>(iConfig.getParameter<edm::InputTag>("tracksInputTag"))),
: magFieldToken_(esConsumes()),
topoToken_(esConsumes()),
latencyToken_(esConsumes()),
trackTags_(consumes<reco::TrackCollection>(iConfig.getParameter<edm::InputTag>("tracksInputTag"))),
clustercollectionToken_(
consumes<edmNew::DetSetVector<SiStripCluster> >(iConfig.getParameter<edm::InputTag>("tracksInputTag"))),
muonTags_(consumes<reco::MuonCollection>(iConfig.getParameter<edm::InputTag>("muonsInputTag"))) {
Expand Down Expand Up @@ -216,13 +222,10 @@ void CosmicRateAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup
edm::Handle<reco::TrackCollection> tracks;
iEvent.getByToken(trackTags_, tracks);

edm::ESHandle<MagneticField> magFieldHandle_;
iSetup.get<IdealMagneticFieldRecord>().get(magFieldHandle_);
magField = -9999;
magField = magFieldHandle_.product()->inTesla(GlobalPoint(0, 0, 0)).mag();

edm::ESHandle<TrackerTopology> tTopo;
iSetup.get<TrackerTopologyRcd>().get(tTopo);
const TrackerTopology* const tTopo = &iSetup.getData(topoToken_);
const MagneticField* magneticField = &iSetup.getData(magFieldToken_);
magField = magneticField->inTesla(GlobalPoint(0, 0, 0)).mag();
//const SiStripLatency* apvlat = &iSetup.getData(latencyToken_); // unused (for the moment)

edm::Timestamp ts_begin = iEvent.getRun().beginTime();
double t_begin = stampToReal(ts_begin);
Expand Down
38 changes: 21 additions & 17 deletions Alignment/TrackerAlignment/plugins/CreateTrackerAlignmentRcds.cc
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,13 @@ class CreateIdealTkAlRecords : public edm::one::EDAnalyzer<> {
void writeToDB();

// ----------member data ---------------------------

const edm::ESGetToken<GeometricDet, IdealGeometryRecord> geomDetToken_;
const edm::ESGetToken<PTrackerParameters, PTrackerParametersRcd> ptpToken_;
const edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> topoToken_;
const edm::ESGetToken<Alignments, TrackerAlignmentRcd> aliToken_;
const edm::ESGetToken<AlignmentErrorsExtended, TrackerAlignmentErrorExtendedRcd> aliErrorToken_;
const edm::ESGetToken<AlignmentSurfaceDeformations, TrackerSurfaceDeformationRcd> aliSurfaceToken_;
const std::vector<GeomDetEnumerators::SubDetector> skipSubDetectors_;
const bool alignToGlobalTag_;
const bool createReferenceRcd_;
Expand All @@ -100,7 +107,13 @@ class CreateIdealTkAlRecords : public edm::one::EDAnalyzer<> {
// constructors and destructor
//
CreateIdealTkAlRecords::CreateIdealTkAlRecords(const edm::ParameterSet& iConfig)
: skipSubDetectors_(toSubDetectors(iConfig.getUntrackedParameter<std::vector<std::string> >("skipSubDetectors"))),
: geomDetToken_(esConsumes()),
ptpToken_(esConsumes()),
topoToken_(esConsumes()),
aliToken_(esConsumes()),
aliErrorToken_(esConsumes()),
aliSurfaceToken_(esConsumes()),
skipSubDetectors_(toSubDetectors(iConfig.getUntrackedParameter<std::vector<std::string> >("skipSubDetectors"))),
alignToGlobalTag_(iConfig.getUntrackedParameter<bool>("alignToGlobalTag")),
createReferenceRcd_(iConfig.getUntrackedParameter<bool>("createReferenceRcd")),
firstEvent_(true) {}
Expand Down Expand Up @@ -236,19 +249,13 @@ void CreateIdealTkAlRecords::clearAlignmentInfos() {
}

std::unique_ptr<TrackerGeometry> CreateIdealTkAlRecords::retrieveGeometry(const edm::EventSetup& iSetup) {
edm::ESHandle<GeometricDet> geometricDet;
iSetup.get<IdealGeometryRecord>().get(geometricDet);

edm::ESHandle<PTrackerParameters> ptp;
iSetup.get<PTrackerParametersRcd>().get(ptp);

edm::ESHandle<TrackerTopology> tTopoHandle;
iSetup.get<TrackerTopologyRcd>().get(tTopoHandle);
const auto* const tTopo = tTopoHandle.product();
const GeometricDet* geometricDet = &iSetup.getData(geomDetToken_);
const PTrackerParameters& ptp = iSetup.getData(ptpToken_);
const TrackerTopology* tTopo = &iSetup.getData(topoToken_);

TrackerGeomBuilderFromGeometricDet trackerBuilder;

return std::unique_ptr<TrackerGeometry>{trackerBuilder.build(&(*geometricDet), *ptp, tTopo)};
return std::unique_ptr<TrackerGeometry>{trackerBuilder.build(geometricDet, ptp, tTopo)};
}

void CreateIdealTkAlRecords::addAlignmentInfo(const GeomDet& det) {
Expand Down Expand Up @@ -289,12 +296,9 @@ void CreateIdealTkAlRecords::addAlignmentInfo(const GeomDet& det) {
void CreateIdealTkAlRecords::alignToGT(const edm::EventSetup& iSetup) {
LogDebug("Alignment") << "Aligning to global tag\n";

edm::ESHandle<Alignments> alignments;
iSetup.get<TrackerAlignmentRcd>().get(alignments);
edm::ESHandle<AlignmentErrorsExtended> alignmentErrors;
iSetup.get<TrackerAlignmentErrorExtendedRcd>().get(alignmentErrors);
edm::ESHandle<AlignmentSurfaceDeformations> surfaceDeformations;
iSetup.get<TrackerSurfaceDeformationRcd>().get(surfaceDeformations);
const Alignments* alignments = &iSetup.getData(aliToken_);
const AlignmentErrorsExtended* alignmentErrors = &iSetup.getData(aliErrorToken_);
const AlignmentSurfaceDeformations* surfaceDeformations = &iSetup.getData(aliSurfaceToken_);

if (alignments->m_align.size() != alignmentErrors->m_alignError.size())
throw cms::Exception("GeometryMismatch")
Expand Down
36 changes: 21 additions & 15 deletions Alignment/TrackerAlignment/plugins/MCMisalignmentScaler.cc
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,12 @@ class MCMisalignmentScaler : public edm::one::EDAnalyzer<> {
static void fillDescriptions(edm::ConfigurationDescriptions&);

private:
const edm::ESGetToken<SiPixelQuality, SiPixelQualityRcd> pixelQualityToken_;
const edm::ESGetToken<SiStripQuality, SiStripQualityRcd> stripQualityToken_;
const edm::ESGetToken<GeometricDet, IdealGeometryRecord> geomDetToken_;
const edm::ESGetToken<PTrackerParameters, PTrackerParametersRcd> ptpToken_;
const edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> topoToken_;
const edm::ESGetToken<Alignments, TrackerAlignmentRcd> aliToken_;
using ScalerMap = std::unordered_map<unsigned int, std::unordered_map<int, double> >;

void analyze(const edm::Event&, const edm::EventSetup&) override;
Expand All @@ -81,7 +87,13 @@ class MCMisalignmentScaler : public edm::one::EDAnalyzer<> {
// constructors and destructor
//
MCMisalignmentScaler::MCMisalignmentScaler(const edm::ParameterSet& iConfig)
: scalers_{decodeSubDetectors(iConfig.getParameter<edm::VParameterSet>("scalers"))},
: pixelQualityToken_(esConsumes()),
stripQualityToken_(esConsumes()),
geomDetToken_(esConsumes()),
ptpToken_(esConsumes()),
topoToken_(esConsumes()),
aliToken_(esConsumes()),
scalers_{decodeSubDetectors(iConfig.getParameter<edm::VParameterSet>("scalers"))},
pullBadModulesToIdeal_{iConfig.getUntrackedParameter<bool>("pullBadModulesToIdeal")},
outlierPullToIdealCut_{iConfig.getUntrackedParameter<double>("outlierPullToIdealCut")} {}

Expand All @@ -96,30 +108,24 @@ void MCMisalignmentScaler::analyze(const edm::Event&, const edm::EventSetup& iSe
firstEvent_ = false;

// get handle on bad modules
edm::ESHandle<SiPixelQuality> pixelModules;
iSetup.get<SiPixelQualityRcd>().get(pixelModules);
edm::ESHandle<SiStripQuality> stripModules;
iSetup.get<SiStripQualityRcd>().get(stripModules);
const SiPixelQuality* pixelModules = &iSetup.getData(pixelQualityToken_);
const SiStripQuality* stripModules = &iSetup.getData(stripQualityToken_);

// get the tracker geometry
edm::ESHandle<GeometricDet> geometricDet;
iSetup.get<IdealGeometryRecord>().get(geometricDet);
edm::ESHandle<PTrackerParameters> ptp;
iSetup.get<PTrackerParametersRcd>().get(ptp);
edm::ESHandle<TrackerTopology> tTopoHandle;
iSetup.get<TrackerTopologyRcd>().get(tTopoHandle);
const auto* const topology = tTopoHandle.product();
const GeometricDet* geometricDet = &iSetup.getData(geomDetToken_);
const PTrackerParameters& ptp = iSetup.getData(ptpToken_);
const TrackerTopology* topology = &iSetup.getData(topoToken_);

TrackerGeomBuilderFromGeometricDet trackerBuilder;
auto tracker = std::unique_ptr<TrackerGeometry>{trackerBuilder.build(&(*geometricDet), *ptp, topology)};
auto tracker = std::unique_ptr<TrackerGeometry>{trackerBuilder.build(geometricDet, ptp, topology)};

auto dets = tracker->dets();
std::sort(dets.begin(), dets.end(), [](const auto& a, const auto& b) {
return a->geographicalId().rawId() < b->geographicalId().rawId();
});

// get the input alignment
edm::ESHandle<Alignments> alignments;
iSetup.get<TrackerAlignmentRcd>().get(alignments);
const Alignments* alignments = &iSetup.getData(aliToken_);

if (dets.size() != alignments->m_align.size()) {
throw cms::Exception("GeometryMismatch") << "Size mismatch between alignments (size=" << alignments->m_align.size()
Expand Down
22 changes: 13 additions & 9 deletions Alignment/TrackerAlignment/plugins/MisalignedTrackerESProducer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,10 @@ class MisalignedTrackerESProducer : public edm::ESProducer {
std::unique_ptr<TrackerGeometry> produce(const TrackerDigiGeometryRecord& iRecord);

private:
edm::ESGetToken<GeometricDet, IdealGeometryRecord> geomDetToken_;
edm::ESGetToken<PTrackerParameters, PTrackerParametersRcd> ptpToken_;
edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> topoToken_;

const bool theSaveToDB; /// whether or not writing to DB
const bool
theSaveFakeScenario; /// if theSaveToDB is true, save a fake scenario (empty alignments), irrespective of the misalignment scenario below
Expand All @@ -64,7 +68,10 @@ MisalignedTrackerESProducer::MisalignedTrackerESProducer(const edm::ParameterSet
theScenario(p.getParameter<edm::ParameterSet>("scenario")),
theAlignRecordName("TrackerAlignmentRcd"),
theErrorRecordName("TrackerAlignmentErrorExtendedRcd") {
setWhatProduced(this);
auto cc = setWhatProduced(this);
geomDetToken_ = cc.consumes();
ptpToken_ = cc.consumes();
topoToken_ = cc.consumes();
}

//__________________________________________________________________________________________________
Expand All @@ -73,19 +80,16 @@ MisalignedTrackerESProducer::~MisalignedTrackerESProducer() {}
//__________________________________________________________________________________________________
std::unique_ptr<TrackerGeometry> MisalignedTrackerESProducer::produce(const TrackerDigiGeometryRecord& iRecord) {
//Retrieve tracker topology from geometry
edm::ESHandle<TrackerTopology> tTopoHandle;
iRecord.getRecord<TrackerTopologyRcd>().get(tTopoHandle);
const TrackerTopology* const tTopo = tTopoHandle.product();
const TrackerTopology* tTopo = &iRecord.get(topoToken_);

edm::LogInfo("MisalignedTracker") << "Producer called";

// Create the tracker geometry from ideal geometry
edm::ESHandle<GeometricDet> gD;
iRecord.getRecord<IdealGeometryRecord>().get(gD);
edm::ESHandle<PTrackerParameters> ptp;
iRecord.getRecord<PTrackerParametersRcd>().get(ptp);
const GeometricDet* gD = &iRecord.get(geomDetToken_);
const PTrackerParameters& ptp = iRecord.get(ptpToken_);

TrackerGeomBuilderFromGeometricDet trackerBuilder;
std::unique_ptr<TrackerGeometry> theTracker(trackerBuilder.build(&(*gD), *ptp, tTopo));
std::unique_ptr<TrackerGeometry> theTracker(trackerBuilder.build(gD, ptp, tTopo));

// Create the alignable hierarchy
auto theAlignableTracker = std::make_unique<AlignableTracker>(&(*theTracker), tTopo);
Expand Down
9 changes: 4 additions & 5 deletions Alignment/TrackerAlignment/plugins/TkAlCaOverlapTagger.cc
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
#include "FWCore/Framework/interface/EventPrincipal.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/Framework/interface/ESHandle.h"

#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
Expand Down Expand Up @@ -35,6 +34,7 @@ class TkAlCaOverlapTagger : public edm::EDProducer {
void produce(edm::Event& iEvent, const edm::EventSetup& iSetup) override;

private:
const edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> topoToken_;
edm::InputTag src_;
edm::InputTag srcClust_;
bool rejectBadMods_;
Expand All @@ -44,7 +44,8 @@ class TkAlCaOverlapTagger : public edm::EDProducer {
};

TkAlCaOverlapTagger::TkAlCaOverlapTagger(const edm::ParameterSet& iConfig)
: src_(iConfig.getParameter<edm::InputTag>("src")),
: topoToken_(esConsumes()),
src_(iConfig.getParameter<edm::InputTag>("src")),
srcClust_(iConfig.getParameter<edm::InputTag>("Clustersrc")),
rejectBadMods_(iConfig.getParameter<bool>("rejectBadMods")),
BadModsList_(iConfig.getParameter<std::vector<uint32_t> >("BadMods")) {
Expand All @@ -55,9 +56,7 @@ TkAlCaOverlapTagger::~TkAlCaOverlapTagger() {}

void TkAlCaOverlapTagger::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) {
//Retrieve tracker topology from geometry
edm::ESHandle<TrackerTopology> tTopoHandle;
iSetup.get<TrackerTopologyRcd>().get(tTopoHandle);
const TrackerTopology* const tTopo = tTopoHandle.product();
const TrackerTopology* tTopo = &iSetup.getData(topoToken_);

edm::Handle<TrajTrackAssociationCollection> assoMap;
iEvent.getByLabel(src_, assoMap);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,13 @@
// made some variables constant, removed obviously dead code and comments

TrackerSystematicMisalignments::TrackerSystematicMisalignments(const edm::ParameterSet& cfg)
: theAlignableTracker(nullptr) {
: geomDetToken_(esConsumes()),
ptpToken_(esConsumes()),
topoToken_(esConsumes()),
aliToken_(esConsumes()),
aliErrorToken_(esConsumes()),
gprToken_(esConsumes()),
theAlignableTracker(nullptr) {
// use existing geometry
m_fromDBGeom = cfg.getUntrackedParameter<bool>("fromDBGeom");

Expand Down Expand Up @@ -105,27 +111,18 @@ void TrackerSystematicMisalignments::beginJob() {}

void TrackerSystematicMisalignments::analyze(const edm::Event& event, const edm::EventSetup& setup) {
//Retrieve tracker topology from geometry
edm::ESHandle<TrackerTopology> tTopoHandle;
setup.get<TrackerTopologyRcd>().get(tTopoHandle);
const TrackerTopology* const tTopo = tTopoHandle.product();
const GeometricDet* geom = &setup.getData(geomDetToken_);
const PTrackerParameters& ptp = setup.getData(ptpToken_);
const TrackerTopology* tTopo = &setup.getData(topoToken_);

edm::ESHandle<GeometricDet> geom;
setup.get<IdealGeometryRecord>().get(geom);
edm::ESHandle<PTrackerParameters> ptp;
setup.get<PTrackerParametersRcd>().get(ptp);
TrackerGeometry* tracker = TrackerGeomBuilderFromGeometricDet().build(&*geom, *ptp, tTopo);
TrackerGeometry* tracker = TrackerGeomBuilderFromGeometricDet().build(geom, ptp, tTopo);

//take geometry from DB or randomly generate geometry
if (m_fromDBGeom) {
//build the tracker
edm::ESHandle<Alignments> alignments;
edm::ESHandle<AlignmentErrorsExtended> alignmentErrors;

setup.get<TrackerAlignmentRcd>().get(alignments);
setup.get<TrackerAlignmentErrorExtendedRcd>().get(alignmentErrors);

edm::ESHandle<Alignments> globalPositionRcd;
setup.get<TrackerDigiGeometryRecord>().getRecord<GlobalPositionRcd>().get(globalPositionRcd);
const Alignments* alignments = &setup.getData(aliToken_);
const AlignmentErrorsExtended* alignmentErrors = &setup.getData(aliErrorToken_);
const Alignments* globalPositionRcd = &setup.getData(gprToken_);

//apply the latest alignments
GeometryAligner aligner;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,12 @@ class TrackerSystematicMisalignments : public edm::EDAnalyzer {
//align::GlobalVector findSystematicMis( align::PositionType );
align::GlobalVector findSystematicMis(const align::PositionType&, const bool blindToZ, const bool blindToR);

const edm::ESGetToken<GeometricDet, IdealGeometryRecord> geomDetToken_;
const edm::ESGetToken<PTrackerParameters, PTrackerParametersRcd> ptpToken_;
const edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> topoToken_;
const edm::ESGetToken<Alignments, TrackerAlignmentRcd> aliToken_;
const edm::ESGetToken<AlignmentErrorsExtended, TrackerAlignmentErrorExtendedRcd> aliErrorToken_;
const edm::ESGetToken<Alignments, GlobalPositionRcd> gprToken_;
AlignableTracker* theAlignableTracker;

// configurables needed for the systematic misalignment
Expand Down
24 changes: 12 additions & 12 deletions Alignment/TrackerAlignment/plugins/TrackerTreeGenerator.cc
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,9 @@ class TrackerTreeGenerator : public edm::one::EDAnalyzer<edm::one::SharedResourc
void endJob() override;

// ----------member data ---------------------------
const edm::ESGetToken<GeometricDet, IdealGeometryRecord> geomDetToken_;
const edm::ESGetToken<PTrackerParameters, PTrackerParametersRcd> ptpToken_;
const edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> topoToken_;

const bool createEntryForDoubleSidedModule_;
std::vector<TrackerTreeVariables> vTkTreeVar_;
Expand All @@ -90,7 +93,11 @@ class TrackerTreeGenerator : public edm::one::EDAnalyzer<edm::one::SharedResourc
// constructors and destructor
//
TrackerTreeGenerator::TrackerTreeGenerator(const edm::ParameterSet& config)
: createEntryForDoubleSidedModule_(config.getParameter<bool>("createEntryForDoubleSidedModule")), config_(config) {
: geomDetToken_(esConsumes()),
ptpToken_(esConsumes()),
topoToken_(esConsumes()),
createEntryForDoubleSidedModule_(config.getParameter<bool>("createEntryForDoubleSidedModule")),
config_(config) {
usesResource(TFileService::kSharedResource);
}

Expand All @@ -100,20 +107,13 @@ TrackerTreeGenerator::TrackerTreeGenerator(const edm::ParameterSet& config)

// ------------ method called to for each event ------------
void TrackerTreeGenerator::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) {
//iSetup.get<TrackerDigiGeometryRecord>().get(tkGeom);
// now try to take directly the ideal geometry independent of used geometry in Global Tag
edm::ESHandle<GeometricDet> geometricDet;
iSetup.get<IdealGeometryRecord>().get(geometricDet);
const GeometricDet* geometricDet = &iSetup.getData(geomDetToken_);
const PTrackerParameters& ptp = iSetup.getData(ptpToken_);
const TrackerTopology* tTopo = &iSetup.getData(topoToken_);

//Retrieve tracker topology from geometry
edm::ESHandle<TrackerTopology> tTopoHandle;
iSetup.get<TrackerTopologyRcd>().get(tTopoHandle);
const TrackerTopology* const tTopo = tTopoHandle.product();

edm::ESHandle<PTrackerParameters> ptp;
iSetup.get<PTrackerParametersRcd>().get(ptp);
TrackerGeomBuilderFromGeometricDet trackerBuilder;
const TrackerGeometry* tkGeom = trackerBuilder.build(&(*geometricDet), *ptp, tTopo);
const TrackerGeometry* tkGeom = trackerBuilder.build(geometricDet, ptp, tTopo);
AlignableTracker alignableTracker{tkGeom, tTopo};
const auto& ns = alignableTracker.trackerNameSpace();

Expand Down