diff --git a/Alignment/OfflineValidation/plugins/TrackerGeometryCompare.cc b/Alignment/OfflineValidation/plugins/TrackerGeometryCompare.cc index b2b22fd755934..854b4e8a3b119 100644 --- a/Alignment/OfflineValidation/plugins/TrackerGeometryCompare.cc +++ b/Alignment/OfflineValidation/plugins/TrackerGeometryCompare.cc @@ -53,6 +53,8 @@ #include "DataFormats/TrackerCommon/interface/TrackerTopology.h" #include "Geometry/Records/interface/TrackerTopologyRcd.h" +#include "DetectorDescription/Core/interface/DDCompactView.h" + #include #include #include diff --git a/DetectorDescription/DDCMS/interface/DDRotationMatrix.h b/DetectorDescription/DDCMS/interface/DDRotationMatrix.h new file mode 100644 index 0000000000000..ec28cff8e9b45 --- /dev/null +++ b/DetectorDescription/DDCMS/interface/DDRotationMatrix.h @@ -0,0 +1,11 @@ +#ifndef DetectorDescription_DDCMS_DDRotationMatrix_h +#define DetectorDescription_DDCMS_DDRotationMatrix_h + +#include +#include + +//! A DDRotationMatrix is currently implemented with a ROOT Rotation3D +using DDRotationMatrix = ROOT::Math::Rotation3D; +using DDAxisAngle = ROOT::Math::AxisAngle; + +#endif diff --git a/DetectorDescription/DDCMS/interface/DDTranslation.h b/DetectorDescription/DDCMS/interface/DDTranslation.h new file mode 100644 index 0000000000000..dfda06e9490cb --- /dev/null +++ b/DetectorDescription/DDCMS/interface/DDTranslation.h @@ -0,0 +1,9 @@ +#ifndef DetectorDescription_DDCMS_DDTranslation_h +#define DetectorDescription_DDCMS_DDTranslation_h +#include + +//! A DD Translation is currently implemented with Root Vector3D +typedef ROOT::Math::DisplacementVector3D > DD3Vector; +typedef ROOT::Math::DisplacementVector3D > DDTranslation; + +#endif diff --git a/Geometry/MTDNumberingBuilder/bin/BuildFile.xml b/Geometry/MTDNumberingBuilder/bin/BuildFile.xml deleted file mode 100644 index 9d711db7a3570..0000000000000 --- a/Geometry/MTDNumberingBuilder/bin/BuildFile.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/Geometry/MTDNumberingBuilder/bin/stubs/GeometricTimingDetLoader.cc b/Geometry/MTDNumberingBuilder/bin/stubs/GeometricTimingDetLoader.cc deleted file mode 100644 index f3dda17323dc6..0000000000000 --- a/Geometry/MTDNumberingBuilder/bin/stubs/GeometricTimingDetLoader.cc +++ /dev/null @@ -1,214 +0,0 @@ -#include "GeometricTimingDetLoader.h" - -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/Framework/interface/Event.h" -#include "CondCore/DBOutputService/interface/PoolDBOutputService.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "CondFormats/GeometryObjects/interface/PGeometricTimingDet.h" - -#include "Geometry/Records/interface/IdealGeometryRecord.h" -#include "Geometry/MTDNumberingBuilder/interface/GeometricTimingDet.h" -#include -#include - -#include "Geometry/Records/interface/MTDGeometryRecord.h" - -#include -#include -#include - -// just a reminder to self... beware errors caused by levels. Look -// at how tracker is built and how GeometricSearchTracker.h is built -// up from the hierarchy. - -GeometricTimingDetLoader::GeometricTimingDetLoader(const edm::ParameterSet& iConfig) { - LogDebug("GeometricTimingDetLoader") << "GeometricTimingDetLoader::GeometricTimingDetLoader" << std::endl; -} - -GeometricTimingDetLoader::~GeometricTimingDetLoader() { - LogDebug("GeometricTimingDetLoader") << "GeometricTimingDetLoader::~GeometricTimingDetLoader" << std::endl; -} - -void GeometricTimingDetLoader::beginRun(edm::Run const& /* iEvent */, edm::EventSetup const& es) { - std::cout << "GeometricTimingDetLoader::beginJob" << std::endl; - PGeometricTimingDet* pgd = new PGeometricTimingDet; - edm::Service mydbservice; - if (!mydbservice.isAvailable()) { - std::cout << "PoolDBOutputService unavailable" << std::endl; - return; - } - edm::ESHandle pDD; - edm::ESHandle rDD; - es.get().get(pDD); - es.get().get(rDD); - const GeometricTimingDet* tracker = &(*rDD); - - // so now I have the tracker itself. loop over all its components to store them. - putOne(tracker, pgd, 0); - std::vector tc = tracker->components(); - std::cout << "Tracker has " << tc.size() << " components." << std::endl; //, lets go through them." << std::endl; - std::vector::const_iterator git = tc.begin(); - std::vector::const_iterator egit = tc.end(); - int count = 0; - int lev = 1; - for (; git != egit; ++git) { // one level below "tracker" - putOne(*git, pgd, lev); - std::vector inone = (*git)->components(); - // << ctste.name((*git)->type()) - // std::cout << lev << " type " << (*git)->type() << " " << int((*git)->geographicalId()) << std::endl; // << " has " << inone.size() << " components." << std::endl; - if (inone.empty()) - ++count; - std::vector::const_iterator git2 = inone.begin(); - std::vector::const_iterator egit2 = inone.end(); - ++lev; - for (; git2 != egit2; ++git2) { // level 2 - putOne(*git2, pgd, lev); - std::vector intwo = (*git2)->components(); - // std::cout << lev << "\ttype " << (*git2)->type() << " " << int((*git2)->geographicalId()) << std::endl; // << " has " << intwo.size() << " components." << std::endl; - if (intwo.empty()) - ++count; - std::vector::const_iterator git3 = intwo.begin(); - std::vector::const_iterator egit3 = intwo.end(); - ++lev; - for (; git3 != egit3; ++git3) { // level 3 - putOne(*git3, pgd, lev); - std::vector inthree = (*git3)->components(); - // std::cout << lev << "\t\ttype " << (*git3)->type() << " " << int((*git3)->geographicalId()) << std::endl; // << " has " << inthree.size() << " components." << std::endl; - if (inthree.empty()) - ++count; - std::vector::const_iterator git4 = inthree.begin(); - std::vector::const_iterator egit4 = inthree.end(); - ++lev; - for (; git4 != egit4; ++git4) { //level 4 - putOne(*git4, pgd, lev); - std::vector infour = (*git4)->components(); - // std::cout << lev << "\t\t\ttype " << (*git4)->type() << " " << int((*git4)->geographicalId()) << std::endl; // << " has " << infour.size() << " components." << std::endl; - if (infour.empty()) - ++count; - std::vector::const_iterator git5 = infour.begin(); - std::vector::const_iterator egit5 = infour.end(); - ++lev; - for (; git5 != egit5; ++git5) { // level 5 - putOne(*git5, pgd, lev); - std::vector infive = (*git5)->components(); - // std::cout << lev << "\t\t\t\ttype " << (*git5)->type() << " " << int((*git5)->geographicalId()) << std::endl; // << " has " << infive.size() << " components." << std::endl; - if (infive.empty()) - ++count; - std::vector::const_iterator git6 = infive.begin(); - std::vector::const_iterator egit6 = infive.end(); - ++lev; - for (; git6 != egit6; ++git6) { //level 6 - putOne(*git6, pgd, lev); - std::vector insix = (*git6)->components(); - // std::cout << lev << "\t\t\t\t\ttype " << (*git6)->type() << " " << int((*git6)->geographicalId()) << std::endl; // << " has " << insix.size() << " components." << std::endl; - if (insix.empty()) - ++count; - } // level 6 - --lev; - } // level 5 - --lev; - } // level 4 - --lev; - } //level 3 - --lev; - } // level 2 - --lev; - } - std::vector modules = tracker->deepComponents(); - std::cout << " No. of Tracker components \"deepComponents\" = " << modules.size() << std::endl; - std::cout << " Counted # of lowest \"leaves\" = " << count << std::endl; - if (mydbservice->isNewTagRequest("PGeometricTimingDetRcd")) { - mydbservice->createNewIOV( - pgd, mydbservice->beginOfTime(), mydbservice->endOfTime(), "PGeometricTimingDetRcd"); - } else { - std::cout << "PGeometricTimingDetRcd Tag is already present." << std::endl; - } -} - -void GeometricTimingDetLoader::putOne(const GeometricTimingDet* gd, PGeometricTimingDet* pgd, int lev) { - // std::cout << "putting name: " << gd->name().name(); - // std::cout << " gid: " << gd->geographicalID(); - // std::cout << " type: " << gd->type() << std::endl; - // std::cout << "shape = " << gd->shape()<<"; name = "<name().name()<<"; parameter number = "<params().size()<translation(); - const DDRotationMatrix& rot = gd->rotation(); - DD3Vector x, y, z; - rot.GetComponents(x, y, z); - item.name_ = gd->name(); - item.level_ = lev; - item.x_ = tran.X(); - item.y_ = tran.Y(); - item.z_ = tran.Z(); - item.phi_ = gd->phi(); - item.rho_ = gd->rho(); - item.a11_ = x.X(); - item.a12_ = y.X(); - item.a13_ = z.X(); - item.a21_ = x.Y(); - item.a22_ = y.Y(); - item.a23_ = z.Y(); - item.a31_ = x.Z(); - item.a32_ = y.Z(); - item.a33_ = z.Z(); - item.shape_ = static_cast(gd->shape()); - item.type_ = gd->type(); - if (gd->shape() == DDSolidShape::ddbox) { - item.params_0 = gd->params()[0]; - item.params_1 = gd->params()[1]; - item.params_2 = gd->params()[2]; - item.params_3 = 0; - item.params_4 = 0; - item.params_5 = 0; - item.params_6 = 0; - item.params_7 = 0; - item.params_8 = 0; - item.params_9 = 0; - item.params_10 = 0; - } else if (gd->shape() == DDSolidShape::ddtrap) { - item.params_0 = gd->params()[0]; - item.params_1 = gd->params()[1]; - item.params_2 = gd->params()[2]; - item.params_3 = gd->params()[3]; - item.params_4 = gd->params()[4]; - item.params_5 = gd->params()[5]; - item.params_6 = gd->params()[6]; - item.params_7 = gd->params()[7]; - item.params_8 = gd->params()[8]; - item.params_9 = gd->params()[9]; - item.params_10 = gd->params()[10]; - } else { - item.params_0 = 0; - item.params_1 = 0; - item.params_2 = 0; - item.params_3 = 0; - item.params_4 = 0; - item.params_5 = 0; - item.params_6 = 0; - item.params_7 = 0; - item.params_8 = 0; - item.params_9 = 0; - item.params_10 = 0; - } - item.geographicalID_ = gd->geographicalID(); - // FIXME: These are moved to PGeometricTimingDetExtra: - //item.volume_ = gd->volume(); - //item.density_ = gd->density(); - //item.weight_ = gd->weight(); - //item.copy_ = gd->copyno(); - //item.material_ = gd->material(); - item.radLength_ = gd->radLength(); - item.xi_ = gd->xi(); - item.pixROCRows_ = gd->pixROCRows(); - item.pixROCCols_ = gd->pixROCCols(); - item.pixROCx_ = gd->pixROCx(); - item.pixROCy_ = gd->pixROCy(); - item.stereo_ = gd->stereo(); - item.siliconAPVNum_ = gd->siliconAPVNum(); - pgd->pgeomdets_.push_back(item); -} - -#include "FWCore/Framework/interface/MakerMacros.h" -DEFINE_FWK_MODULE(GeometricTimingDetLoader); diff --git a/Geometry/MTDNumberingBuilder/bin/stubs/GeometricTimingDetLoader.h b/Geometry/MTDNumberingBuilder/bin/stubs/GeometricTimingDetLoader.h deleted file mode 100644 index 9deb579f81108..0000000000000 --- a/Geometry/MTDNumberingBuilder/bin/stubs/GeometricTimingDetLoader.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef MTDNumberingBuilder_GeometricTimingDetLoader_h -#define MTDNumberingBuilder_GeometricTimingDetLoader_h - -#include "FWCore/Framework/interface/one/EDAnalyzer.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -#include - -class GeometricTimingDet; -class PGeometricTimingDet; - -class GeometricTimingDetLoader : public edm::one::EDAnalyzer { -public: - explicit GeometricTimingDetLoader(const edm::ParameterSet& iConfig); - ~GeometricTimingDetLoader() override; - - void beginJob() override {} - 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 {} - void endJob() override {} - -private: - void putOne(const GeometricTimingDet* gd, PGeometricTimingDet* pgd, int lev); -}; - -#endif diff --git a/Geometry/MTDNumberingBuilder/doc/GeometricDetBuilder.png b/Geometry/MTDNumberingBuilder/doc/GeometricDetBuilder.png deleted file mode 100644 index 9a673f54261e0..0000000000000 Binary files a/Geometry/MTDNumberingBuilder/doc/GeometricDetBuilder.png and /dev/null differ diff --git a/Geometry/MTDNumberingBuilder/interface/CmsMTDDebugNavigator.h b/Geometry/MTDNumberingBuilder/interface/CmsMTDDebugNavigator.h deleted file mode 100644 index a6059ec567eb9..0000000000000 --- a/Geometry/MTDNumberingBuilder/interface/CmsMTDDebugNavigator.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef Geometry_MTDNumberingBuilder_CmsMTDDebugNavigator_H -#define Geometry_MTDNumberingBuilder_CmsMTDDebugNavigator_H - -#include "Geometry/MTDNumberingBuilder/interface/CmsMTDStringToEnum.h" -#include "Geometry/MTDNumberingBuilder/interface/GeometricTimingDetExtra.h" - -#include - -class GeometricTimingDet; -/** - * This class travel recursively a GeometricTimingDet and dumps the information about type - */ -class CmsMTDDebugNavigator { -public: - CmsMTDDebugNavigator(const std::vector&); - void dump(const GeometricTimingDet&, const std::vector&); - -private: - void iterate(const GeometricTimingDet&, int, const std::vector&); - int numinstances[30]; - CmsMTDStringToEnum _CmsMTDStringToEnum; - std::map _helperMap; -}; - -#endif diff --git a/Geometry/MTDNumberingBuilder/interface/GeometricTimingDet.h b/Geometry/MTDNumberingBuilder/interface/GeometricTimingDet.h index 013097dfa5886..fa2b34b12ae6f 100644 --- a/Geometry/MTDNumberingBuilder/interface/GeometricTimingDet.h +++ b/Geometry/MTDNumberingBuilder/interface/GeometricTimingDet.h @@ -2,11 +2,12 @@ #define Geometry_MTDNumberingBuilder_GeometricTimingDet_H #include "CondFormats/GeometryObjects/interface/PGeometricTimingDet.h" -#include "DetectorDescription/Core/interface/DDExpandedView.h" #include "DetectorDescription/Core/interface/DDSolidShapes.h" #include "DataFormats/GeometrySurface/interface/Surface.h" #include "DataFormats/GeometrySurface/interface/Bounds.h" #include "DataFormats/DetId/interface/DetId.h" +#include +#include #include #include @@ -27,18 +28,16 @@ namespace cms { class GeometricTimingDet { public: - using NavRange = DDExpandedView::NavRange; + using NavRange = std::pair; using ConstGeometricTimingDetContainer = std::vector; using GeometricTimingDetContainer = std::vector; using RotationMatrix = ROOT::Math::Rotation3D; using Translation = ROOT::Math::DisplacementVector3D >; #ifdef PoolAlloc - using GeoHistory = std::vector >; using nav_type = std::vector >; #else - using GeoHistory = std::vector; - using nav_type = DDExpandedView::nav_type; + using nav_type = std::vector; #endif using Position = Surface::PositionType; diff --git a/Geometry/MTDNumberingBuilder/interface/GeometricTimingDetExtra.h b/Geometry/MTDNumberingBuilder/interface/GeometricTimingDetExtra.h deleted file mode 100644 index 9757d657e5a59..0000000000000 --- a/Geometry/MTDNumberingBuilder/interface/GeometricTimingDetExtra.h +++ /dev/null @@ -1,80 +0,0 @@ -#ifndef Geometry_MTDNumberingBuilder_GeometricTimingDetExtra_H -#define Geometry_MTDNumberingBuilder_GeometricTimingDetExtra_H - -#include "Geometry/MTDNumberingBuilder/interface/GeometricTimingDet.h" -#include "DetectorDescription/Core/interface/DDExpandedView.h" -#include "DataFormats/DetId/interface/DetId.h" - -#include -#include "FWCore/ParameterSet/interface/types.h" - -#include - -class GeometricTimingDetExtra { -public: -#ifdef PoolAlloc - using GeoHistory = std::vector >; -#else - using GeoHistory = std::vector; -#endif - - explicit GeometricTimingDetExtra(GeometricTimingDet const* gd, - DetId id, - GeoHistory& gh, - double vol, - double dens, - double wgt, - double cpy, - const std::string& mat, - const std::string& name, - bool dd = false); - - /** - * - */ - ~GeometricTimingDetExtra(); - - /** - * get and set associated GeometricTimingDet - * DOES NO CHECKING! - */ - GeometricTimingDet const* geometricDet() const { return _mygd; } - - /** - * set or add or clear components - */ - void setGeographicalId(DetId id) { _geographicalId = id; } - DetId geographicalId() const { return _geographicalId; } - - GeoHistory const& parents() const { return _parents; } - //rr - int copyno() const { return _copy; } - double volume() const { return _volume; } - double density() const { return _density; } - double weight() const { return _weight; } - std::string const& material() const { return _material; } - - /** - * what it says... used the DD in memory model to build the geometry... or not. - */ - bool wasBuiltFromDD() const { return _fromDD; } - - std::string const& name() const { return _name; } - -private: - /** Data members **/ - - GeometricTimingDet const* _mygd; - DetId _geographicalId; - GeoHistory _parents; - double _volume; - double _density; - double _weight; - int _copy; - std::string _material; - std::string _name; - bool _fromDD; // may not need this, keep an eye on it. -}; - -#undef PoolAlloc -#endif diff --git a/Geometry/MTDNumberingBuilder/plugins/MTDGeometricTimingDetExtraESModule.cc b/Geometry/MTDNumberingBuilder/plugins/MTDGeometricTimingDetExtraESModule.cc deleted file mode 100644 index 06cd4bfc33049..0000000000000 --- a/Geometry/MTDNumberingBuilder/plugins/MTDGeometricTimingDetExtraESModule.cc +++ /dev/null @@ -1,198 +0,0 @@ -#include "Geometry/MTDNumberingBuilder/plugins/DDCmsMTDConstruction.h" -#include "CondFormats/GeometryObjects/interface/PGeometricTimingDet.h" -#include "CondFormats/GeometryObjects/interface/PGeometricTimingDetExtra.h" -#include "Geometry/Records/interface/IdealGeometryRecord.h" -#include "Geometry/Records/interface/PGeometricTimingDetExtraRcd.h" -#include "DetectorDescription/Core/interface/DDCompactView.h" -#include "DetectorDescription/Core/interface/DDSolid.h" -#include "DetectorDescription/Core/interface/DDMaterial.h" -#include "Geometry/MTDNumberingBuilder/plugins/ExtractStringFromDD.h" -#include "CondDBCmsMTDConstruction.h" - -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "FWCore/Framework/interface/ESTransientHandle.h" -#include "FWCore/Framework/interface/ModuleFactory.h" -#include "FWCore/Framework/interface/ESProducer.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "Geometry/MTDNumberingBuilder/interface/GeometricTimingDet.h" -#include "Geometry/MTDNumberingBuilder/interface/GeometricTimingDetExtra.h" - -#include - -class MTDGeometricTimingDetExtraESModule : public edm::ESProducer { -public: - MTDGeometricTimingDetExtraESModule(const edm::ParameterSet& p); - ~MTDGeometricTimingDetExtraESModule() override; - std::unique_ptr > produce(const IdealGeometryRecord&); - -protected: -private: - void putOne(std::vector& gde, - const GeometricTimingDet* gd, - const DDExpandedView& ev, - int lev); - - edm::ESGetToken timingDetToken_; - edm::ESGetToken compactViewToken_; - edm::ESGetToken pTimingDetExtraToken_; - const bool fromDDD_; -}; - -using namespace edm; - -MTDGeometricTimingDetExtraESModule::MTDGeometricTimingDetExtraESModule(const edm::ParameterSet& p) - : fromDDD_(p.getParameter("fromDDD")) { - auto cc = setWhatProduced(this); - const edm::ESInputTag kEmptyTag; - timingDetToken_ = cc.consumes(kEmptyTag); - if (fromDDD_) { - compactViewToken_ = cc.consumes(kEmptyTag); - } else { - pTimingDetExtraToken_ = cc.consumesFrom(kEmptyTag); - } -} - -MTDGeometricTimingDetExtraESModule::~MTDGeometricTimingDetExtraESModule() {} - -std::unique_ptr > MTDGeometricTimingDetExtraESModule::produce( - const IdealGeometryRecord& iRecord) { - auto gde = std::make_unique >(); - // get the GeometricTimingDet which has a nav_type - auto const& gd = iRecord.get(timingDetToken_); - if (fromDDD_) { - // traverse all components from the tracker down; - // read the DD if from DD - const GeometricTimingDet* tracker = &(gd); - auto cpv = iRecord.getTransientHandle(compactViewToken_); - DDExpandedView ev(*cpv); - ev.goTo(tracker->navType()); - putOne((*gde), tracker, ev, 0); - int count = 0; - int lev = 1; - // CmsMTDStringToEnum ctst - gde->reserve(tracker->deepComponents().size()); - for (const auto* git : tracker->components()) { - ev.goTo(git->navType()); - putOne((*gde), git, ev, lev); - std::vector const& inone = git->components(); - if (inone.empty()) - ++count; - ++lev; - for (const auto* git2 : inone) { - ev.goTo(git2->navType()); - putOne((*gde), git2, ev, lev); - std::vector const& intwo = git2->components(); - if (intwo.empty()) - ++count; - ++lev; - for (const auto* git3 : intwo) { - ev.goTo(git3->navType()); - putOne((*gde), git3, ev, lev); - std::vector const& inthree = git3->components(); - if (inthree.empty()) - ++count; - ++lev; - for (const auto* git4 : inthree) { - ev.goTo(git4->navType()); - putOne((*gde), git4, ev, lev); - std::vector const& infour = git4->components(); - if (infour.empty()) - ++count; - ++lev; - for (const auto* git5 : infour) { - ev.goTo(git5->navType()); - putOne((*gde), git5, ev, lev); - std::vector const& infive = git5->components(); - if (infive.empty()) - ++count; - ++lev; - for (const auto* git6 : infive) { - ev.goTo(git6->navType()); - putOne((*gde), git6, ev, lev); - std::vector const& insix = git6->components(); - if (insix.empty()) { - ++count; - } else { - edm::LogError("GeometricTimingDetExtra") << "Hierarchy has exceeded hard-coded level 6 for Tracker "; - } - } // level 6 - --lev; - } // level 5 - --lev; - } // level 4 - --lev; - } //level 3 - --lev; - } // level 2 - --lev; - } - } else { - // if it is not from the DD, then just get the GDE from ES and match w/ GD. - PGeometricTimingDetExtra const& pgde = iRecord.get(pTimingDetExtraToken_); - std::map helperMap; - const GeometricTimingDet* tracker = &gd; - helperMap[gd.geographicalID()] = tracker; - for (const auto* git : tracker->components()) { // level 1 - helperMap[git->geographicalID()] = git; - for (const auto* git2 : git->components()) { // level 2 - helperMap[git2->geographicalID()] = git2; - for (const auto* git3 : git2->components()) { // level 3 - helperMap[git3->geographicalID()] = git3; - for (const auto* git4 : git3->components()) { // level 4 - helperMap[git4->geographicalID()] = git4; - for (const auto* git5 : git4->components()) { // level 5 - helperMap[git5->geographicalID()] = git5; - for (const auto* git6 : git5->components()) { // level 6 - helperMap[git6->geographicalID()] = git6; - if (!git6->components().empty()) { - edm::LogError("GeometricTimingDetExtra") - << "Hierarchy has exceeded hard-coded level of 6 for Tracker "; - } - } // level 6 - } // level 5 - } // level 4 - } //level 3 - } // level 2 - } - - const std::vector& pgdes = pgde.pgdes_; - gde->reserve(pgdes.size()); - std::vector evs; //EMPTY - std::string nm; //EMPTY - for (const auto& pgde : pgdes) { - gde->emplace_back(GeometricTimingDetExtra(helperMap[pgde.geographicalId_], - pgde.geographicalId_, - evs, - pgde.volume_, - pgde.density_, - pgde.weight_, - pgde.copy_, - pgde.material_, - nm)); - } - } - return gde; -} - -void MTDGeometricTimingDetExtraESModule::putOne(std::vector& gde, - const GeometricTimingDet* gd, - const DDExpandedView& ev, - int lev) { - std::string matname = ((ev.logicalPart()).material()).name().name(); - std::string lpname = ((ev.logicalPart()).name().name()); - std::vector evs = GeometricTimingDetExtra::GeoHistory(ev.geoHistory().begin(), ev.geoHistory().end()); - gde.emplace_back(GeometricTimingDetExtra( - gd, - gd->geographicalId(), - evs, - ((ev.logicalPart()).solid()).volume(), - ((ev.logicalPart()).material()).density(), - ((ev.logicalPart()).material()).density() * (((ev.logicalPart()).solid()).volume() / 1000.), - ev.copyno(), - matname, - lpname, - true)); -} - -DEFINE_FWK_EVENTSETUP_MODULE(MTDGeometricTimingDetExtraESModule); diff --git a/Geometry/MTDNumberingBuilder/src/CmsMTDDebugNavigator.cc b/Geometry/MTDNumberingBuilder/src/CmsMTDDebugNavigator.cc deleted file mode 100644 index d3bad7ed40b76..0000000000000 --- a/Geometry/MTDNumberingBuilder/src/CmsMTDDebugNavigator.cc +++ /dev/null @@ -1,44 +0,0 @@ -#include "Geometry/MTDNumberingBuilder/interface/CmsMTDDebugNavigator.h" -#include "Geometry/MTDNumberingBuilder/interface/GeometricTimingDet.h" -#include "Geometry/MTDNumberingBuilder/interface/GeometricTimingDetExtra.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" - -#include "FWCore/MessageLogger/interface/MessageLogger.h" - -CmsMTDDebugNavigator::CmsMTDDebugNavigator(const std::vector& gdes) { - for (const auto& gdei : gdes) { - const GeometricTimingDetExtra* gdeaddr = &gdei; - _helperMap[gdei.geographicalId().rawId()] = gdeaddr; - } -} - -void CmsMTDDebugNavigator::dump(const GeometricTimingDet& in, const std::vector& gdes) { - edm::LogInfo("CmsMTDDebugNavigator") << " CmsMTDDebugNavigator - Starting debug"; - for (int k = 0; k < 20; k++) - numinstances[k] = 0; - iterate(in, 0, gdes); - - for (int k = 0; k < 20; k++) { - edm::LogInfo("CmsMTDDebugNavigator") << " CmsMTDDebugNavigator has found " << numinstances[k] - << " GeometricTimingDets at level " << k; - } -} - -void CmsMTDDebugNavigator::iterate(const GeometricTimingDet& in, - int level, - const std::vector& gdes) { - numinstances[level]++; - std::string spaces(' ', level * 2); - for (unsigned int k = 0; k < in.components().size(); k++) { - const GeometricTimingDetExtra* extra = _helperMap[in.components()[k]->geographicalId().rawId()]; - edm::LogInfo("CmsMTDDebugNavigator") << level << spaces << "### VOLUME " << in.components()[k]->name() - << " of type " << in.components()[k]->type() << " copy number " - << extra->copyno() << " positioned in " << in.name() - << " global position of centre " << in.components()[k]->translation() - << " volume = " << extra->volume() << " cm3" - << " density = " << extra->density() << " g/cm3" - << " weight " << extra->weight() << " g" << std::endl; - iterate(*((in.components())[k]), level + 1, gdes); - } - return; -} diff --git a/Geometry/MTDNumberingBuilder/src/GeometricTimingDetExtra.cc b/Geometry/MTDNumberingBuilder/src/GeometricTimingDetExtra.cc deleted file mode 100644 index 11a7d19e499d6..0000000000000 --- a/Geometry/MTDNumberingBuilder/src/GeometricTimingDetExtra.cc +++ /dev/null @@ -1,27 +0,0 @@ -#include "Geometry/MTDNumberingBuilder/interface/GeometricTimingDetExtra.h" - -/** - * Constructors to be used when looping over DDD - */ -GeometricTimingDetExtra::GeometricTimingDetExtra(GeometricTimingDet const* gd, - DetId id, - GeoHistory& gh, - double vol, - double dens, - double wgt, - double cpy, - const std::string& mat, - const std::string& name, - bool dd) - : _mygd(gd), - _geographicalId(id), - _parents(gh), - _volume(vol), - _density(dens), - _weight(wgt), - _copy((int)(cpy)), - _material(mat), - _name(name), - _fromDD(dd) {} - -GeometricTimingDetExtra::~GeometricTimingDetExtra() {} diff --git a/Geometry/MTDNumberingBuilder/src/module.cc b/Geometry/MTDNumberingBuilder/src/module.cc index 2463f63d94c7c..cdf71ff3f5aaa 100644 --- a/Geometry/MTDNumberingBuilder/src/module.cc +++ b/Geometry/MTDNumberingBuilder/src/module.cc @@ -1,8 +1,5 @@ #include "Geometry/MTDNumberingBuilder/interface/GeometricTimingDet.h" -#include "Geometry/MTDNumberingBuilder/interface/GeometricTimingDetExtra.h" #include "FWCore/Utilities/interface/typelookup.h" TYPELOOKUP_DATA_REG(GeometricTimingDet); -TYPELOOKUP_DATA_REG(GeometricTimingDetExtra); -TYPELOOKUP_DATA_REG(std::vector); diff --git a/Geometry/MTDNumberingBuilder/test/GeometricTimingDetAnalyzer.cc b/Geometry/MTDNumberingBuilder/test/GeometricTimingDetAnalyzer.cc index 4632bacdbb7b5..894939f23f7d2 100644 --- a/Geometry/MTDNumberingBuilder/test/GeometricTimingDetAnalyzer.cc +++ b/Geometry/MTDNumberingBuilder/test/GeometricTimingDetAnalyzer.cc @@ -38,6 +38,11 @@ #include "DataFormats/Math/interface/Rounding.h" +// Trivial using definition valid both for DDD and DD4hep + +#include "DetectorDescription/DDCMS/interface/DDTranslation.h" +#include "DetectorDescription/DDCMS/interface/DDRotationMatrix.h" + // // // class decleration diff --git a/Geometry/TrackerNumberingBuilder/interface/GeometricDet.h b/Geometry/TrackerNumberingBuilder/interface/GeometricDet.h index 14e4cf5d27769..4b1e758e3bcbf 100644 --- a/Geometry/TrackerNumberingBuilder/interface/GeometricDet.h +++ b/Geometry/TrackerNumberingBuilder/interface/GeometricDet.h @@ -2,7 +2,6 @@ #define Geometry_TrackerNumberingBuilder_GeometricDet_H #include "CondFormats/GeometryObjects/interface/PGeometricDet.h" -#include "DetectorDescription/Core/interface/DDExpandedView.h" #include "DetectorDescription/Core/interface/DDSolidShapes.h" #include "DataFormats/GeometrySurface/interface/Surface.h" #include "DataFormats/GeometrySurface/interface/Bounds.h" @@ -29,18 +28,16 @@ namespace cms { class GeometricDet { public: - using NavRange = DDExpandedView::NavRange; + using NavRange = std::pair; using ConstGeometricDetContainer = std::vector; using GeometricDetContainer = std::vector; using RotationMatrix = ROOT::Math::Rotation3D; using Translation = ROOT::Math::DisplacementVector3D >; #ifdef PoolAlloc - using GeoHistory = std::vector >; using nav_type = std::vector >; #else - using GeoHistory = std::vector; - using nav_type = DDExpandedView::nav_type; + using nav_type = std::vector; #endif using Position = Surface::PositionType; diff --git a/RecoTracker/TkDetLayers/src/Phase2EndcapRingBuilder.cc b/RecoTracker/TkDetLayers/src/Phase2EndcapRingBuilder.cc index 6f1d795eefcb6..0d95cdd46625a 100644 --- a/RecoTracker/TkDetLayers/src/Phase2EndcapRingBuilder.cc +++ b/RecoTracker/TkDetLayers/src/Phase2EndcapRingBuilder.cc @@ -1,5 +1,6 @@ #include "Phase2EndcapRingBuilder.h" #include "TrackingTools/DetLayers/interface/DetLayerException.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" using namespace edm; using namespace std;