125 const auto& ns = alignableTracker.trackerNameSpace();
128 <<
"@SUB=TrackerTreeGenerator::analyze" 129 <<
"There are " << tkGeom->
detIds().size()
131 <<
" detUnits in the Geometry Record";
135 <<
"@SUB=TrackerTreeGenerator::analyze" 136 <<
"Create entry for each module AND one entry for virtual " 137 <<
"double-sided module in addition";
140 <<
"@SUB=TrackerTreeGenerator::analyze" 141 <<
"Create one entry for each physical module, do NOT create additional " 142 <<
"entry for virtual double-sided module";
145 for (
const auto& detId: tkGeom->
detIds()){
151 const auto rawId = detId.
rawId();
152 tkTreeVar.
rawId = rawId;
153 tkTreeVar.
subdetId = detId.subdetId();
157 tkTreeVar.
layer = tTopo->pxbLayer(detId);
158 tkTreeVar.
half = ns.tpb().halfBarrelNumber(rawId);
159 tkTreeVar.
rod = tTopo->pxbLadder(detId);
160 tkTreeVar.
module = tTopo->pxbModule(detId);
163 tkTreeVar.
layer = tTopo->pxfDisk(detId);
164 tkTreeVar.
side = tTopo->pxfSide(detId);
165 tkTreeVar.
half = ns.tpe().halfCylinderNumber(rawId);
166 tkTreeVar.
blade = tTopo->pxfBlade(detId);
167 tkTreeVar.
panel = tTopo->pxfPanel(detId);
168 tkTreeVar.
module = tTopo->pxfModule(detId);
171 tkTreeVar.
layer = tTopo->tibLayer(detId);
172 tkTreeVar.
side = tTopo->tibStringInfo(detId)[0];
173 tkTreeVar.
half = ns.tib().halfShellNumber(rawId);
174 tkTreeVar.
rod = tTopo->tibStringInfo(detId)[2];
175 tkTreeVar.
outerInner = tTopo->tibStringInfo(detId)[1];
176 tkTreeVar.
module = tTopo->tibModule(detId);
178 tkTreeVar.
isRPhi = tTopo->tibIsRPhi(detId);
179 tkTreeVar.
isStereo = tTopo->tibIsStereo(detId);
182 tkTreeVar.
layer = tTopo->tidWheel(detId);
183 tkTreeVar.
side = tTopo->tidSide(detId);
184 tkTreeVar.
ring = tTopo->tidRing(detId);
185 tkTreeVar.
outerInner = tTopo->tidModuleInfo(detId)[0];
186 tkTreeVar.
module = tTopo->tidModuleInfo(detId)[1];
188 tkTreeVar.
isRPhi = tTopo->tidIsRPhi(detId);
189 tkTreeVar.
isStereo = tTopo->tidIsStereo(detId);
192 tkTreeVar.
layer = tTopo->tobLayer(detId);
193 tkTreeVar.
side = tTopo->tobRodInfo(detId)[0];
194 tkTreeVar.
rod = tTopo->tobRodInfo(detId)[1];
195 tkTreeVar.
module = tTopo->tobModule(detId);
197 tkTreeVar.
isRPhi = tTopo->tobIsRPhi(detId);
198 tkTreeVar.
isStereo = tTopo->tobIsStereo(detId);
201 tkTreeVar.
layer = tTopo->tecWheel(detId);
202 tkTreeVar.
side = tTopo->tecSide(detId);
203 tkTreeVar.
ring = tTopo->tecRing(detId);
204 tkTreeVar.
petal = tTopo->tecPetalInfo(detId)[1];
205 tkTreeVar.
outerInner = tTopo->tecPetalInfo(detId)[0];
206 tkTreeVar.
module = tTopo->tecModule(detId);
208 tkTreeVar.
isRPhi = tTopo->tecIsRPhi(detId);
209 tkTreeVar.
isStereo = tTopo->tecIsStereo(detId);
215 lUDirection(1.,0.,0.),
216 lVDirection(0.,1.,0.),
217 lWDirection(0.,0.,1.);
219 gUDirection = surface.
toGlobal(lUDirection),
220 gVDirection = surface.
toGlobal(lVDirection),
221 gWDirection = surface.
toGlobal(lWDirection);
222 double dR(999.),
dPhi(999.), dZ(999.);
227 dR = gWDirection.perp() - gPModule.
perp();
229 dZ = gVDirection.z() - gPModule.
z();
235 dR = gUDirection.perp() - gPModule.
perp();
237 dZ = gWDirection.z() - gPModule.
z();
244 dR = gVDirection.perp() - gPModule.
perp();
246 dZ = gWDirection.z() - gPModule.
z();
255 tkTreeVar.
posX = gPModule.
x();
256 tkTreeVar.
posY = gPModule.
y();
257 tkTreeVar.
posZ = gPModule.
z();
260 if(
auto stripGeomDetUnit = dynamic_cast<const StripGeomDetUnit*>(&geomDet)){
267 dynamic_cast<const StripTopology&
>(stripGeomDetUnit->specificTopology());
268 tkTreeVar.
nStrips = topol.nstrips();
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
TrackerGeometry * build(const GeometricDet *gd, const PTrackerParameters &ptp, const TrackerTopology *tTopo)
const Plane & surface() const
The nominal surface of the GeomDet.
const DetIdContainer & detUnitIds() const
Returm a vector of all GeomDetUnit DetIds.
double dPhi(double phi1, double phi2)
const DetIdContainer & detIds() const
Returm a vector of all GeomDet DetIds (including those of GeomDetUnits)
const bool createEntryForDoubleSidedModule_
std::vector< TrackerTreeVariables > vTkTreeVar_
T const * product() const
const TrackerGeomDet * idToDet(DetId) const