118 const auto& ns = alignableTracker.trackerNameSpace();
120 edm::LogInfo(
"TrackerTreeGenerator") <<
"@SUB=TrackerTreeGenerator::analyze" 121 <<
"There are " << tkGeom->
detIds().size() <<
" dets and " 122 << tkGeom->
detUnitIds().size() <<
" detUnits in the Geometry Record";
125 edm::LogInfo(
"TrackerTreeGenerator") <<
"@SUB=TrackerTreeGenerator::analyze" 126 <<
"Create entry for each module AND one entry for virtual " 127 <<
"double-sided module in addition";
129 edm::LogInfo(
"TrackerTreeGenerator") <<
"@SUB=TrackerTreeGenerator::analyze" 130 <<
"Create one entry for each physical module, do NOT create additional " 131 <<
"entry for virtual double-sided module";
134 for (
const auto& detId : tkGeom->
detIds()) {
139 const auto rawId = detId.
rawId();
140 tkTreeVar.
rawId = rawId;
141 tkTreeVar.
subdetId = detId.subdetId();
146 tkTreeVar.
half = ns.tpb().halfBarrelNumber(rawId);
153 tkTreeVar.
half = ns.tpe().halfCylinderNumber(rawId);
161 tkTreeVar.
half = ns.tib().halfShellNumber(rawId);
201 LocalPoint lPModule(0., 0., 0.), lUDirection(1., 0., 0.), lVDirection(0., 1., 0.), lWDirection(0., 0., 1.);
203 gVDirection = surface.
toGlobal(lVDirection), gWDirection = surface.
toGlobal(lWDirection);
204 double dR(999.),
dPhi(999.),
dZ(999.);
209 dR = gWDirection.perp() - gPModule.
perp();
211 dZ = gVDirection.z() - gPModule.
z();
217 dR = gUDirection.perp() - gPModule.
perp();
219 dZ = gWDirection.z() - gPModule.
z();
226 dR = gVDirection.perp() - gPModule.
perp();
228 dZ = gWDirection.z() - gPModule.
z();
237 tkTreeVar.
posX = gPModule.
x();
238 tkTreeVar.
posY = gPModule.
y();
239 tkTreeVar.
posZ = gPModule.
z();
241 if (
auto stripGeomDetUnit = dynamic_cast<const StripGeomDetUnit*>(&geomDet)) {
247 auto& topol =
dynamic_cast<const StripTopology&
>(stripGeomDetUnit->specificTopology());
248 tkTreeVar.
nStrips = topol.nstrips();
static constexpr auto TEC
bool tibIsDoubleSide(const DetId &id) const
bool tecIsDoubleSide(const DetId &id) const
bool tidIsDoubleSide(const DetId &id) const
unsigned int tobLayer(const DetId &id) const
unsigned int pxbLayer(const DetId &id) const
const edm::ESGetToken< GeometricDet, IdealGeometryRecord > geomDetToken_
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
std::vector< unsigned int > tidModuleInfo(const DetId &id) const
unsigned int pxfBlade(const DetId &id) const
const DetIdContainer & detIds() const override
Returm a vector of all GeomDet DetIds (including those of GeomDetUnits)
unsigned int tibModule(const DetId &id) const
unsigned int tidSide(const DetId &id) const
unsigned int pxfModule(const DetId &id) const
std::vector< unsigned int > tecPetalInfo(const DetId &id) const
unsigned int tidWheel(const DetId &id) const
unsigned int tecWheel(const DetId &id) const
TrackerGeometry * build(const GeometricDet *gd, const PTrackerParameters &ptp, const TrackerTopology *tTopo)
unsigned int pxbLadder(const DetId &id) const
unsigned int tecRing(const DetId &id) const
ring id
bool tibIsStereo(const DetId &id) const
bool tobIsDoubleSide(const DetId &id) const
bool tobIsStereo(const DetId &id) const
bool tibIsRPhi(const DetId &id) const
unsigned int tecModule(const DetId &id) const
unsigned int tecSide(const DetId &id) const
const edm::ESGetToken< PTrackerParameters, PTrackerParametersRcd > ptpToken_
unsigned int pxfDisk(const DetId &id) const
static constexpr auto TOB
const TrackerGeomDet * idToDet(DetId) const override
bool tobIsRPhi(const DetId &id) const
bool tidIsRPhi(const DetId &id) const
bool tecIsRPhi(const DetId &id) const
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
unsigned int pxfPanel(const DetId &id) const
Log< level::Info, false > LogInfo
unsigned int pxfSide(const DetId &id) const
std::vector< unsigned int > tibStringInfo(const DetId &id) const
static constexpr auto TIB
const Plane & surface() const
The nominal surface of the GeomDet.
bool tecIsStereo(const DetId &id) const
bool tidIsStereo(const DetId &id) const
std::vector< unsigned int > tobRodInfo(const DetId &id) const
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > topoToken_
const bool createEntryForDoubleSidedModule_
std::vector< TrackerTreeVariables > vTkTreeVar_
unsigned int tidRing(const DetId &id) const
unsigned int tibLayer(const DetId &id) const
unsigned int tobModule(const DetId &id) const
unsigned int pxbModule(const DetId &id) const
static constexpr auto TID
const DetIdContainer & detUnitIds() const override
Returm a vector of all GeomDetUnit DetIds.