CMS 3D CMS Logo

TrackerGeomBuilderFromGeometricDet.cc
Go to the documentation of this file.
20 
21 #include <cfloat>
22 #include <cassert>
23 using std::string;
24 using std::vector;
25 
26 namespace {
27  void verifyDUinTG(TrackerGeometry const& tg) {
28  int off = 0;
29  int end = 0;
30  for (int i = 1; i != 7; i++) {
31  auto det = GeomDetEnumerators::tkDetEnum[i];
32  off = tg.offsetDU(det);
33  end = tg.endsetDU(det);
34  assert(end >= off); // allow empty subdetectors. Needed for upgrade
35  for (int j = off; j != end; ++j) {
36  assert(tg.detUnits()[j]->geographicalId().subdetId() == i);
37  assert(GeomDetEnumerators::subDetGeom[tg.detUnits()[j]->subDetector()] == det);
38  assert(tg.detUnits()[j]->index() == j);
39  }
40  }
41  }
42 } // namespace
43 
46  const PTrackerParameters& ptp,
47  const TrackerTopology* tTopo) {
48  if (ptp.vpars.size() != 6) {
49  throw cms::Exception("TrackerGeomBuilderFromGeometricDet")
50  << "Tracker parameters block from XMLs called vPars is expected to have 6 entries, but has " << ptp.vpars.size()
51  << " entrie(s).";
52  }
53 
54  const int BIG_PIX_PER_ROC_X = ptp.vpars[2];
55  const int BIG_PIX_PER_ROC_Y = ptp.vpars[3];
56 
57  thePixelDetTypeMap.clear();
58  theStripDetTypeMap.clear();
59 
61  std::vector<const GeometricDet*> comp;
62  gd->deepComponents(comp);
63 
64  if (tTopo)
65  theTopo = tTopo;
66 
67  //define a vector which associate to the detid subdetector index -1 (from 0 to 5) the GeometridDet enumerator to be able to know which type of subdetector it is
68 
69  std::vector<GeometricDet::GDEnumType> gdsubdetmap(
70  6, GeometricDet::unknown); // hardcoded "6" should not be a surprise...
72 
73  LogDebug("SubDetectorGeometricDetType") << "GeometriDet enumerator values of the subdetectors";
74  for (unsigned int i = 0; i < subdetgd.size(); ++i) {
75  assert(subdetgd[i]->geographicalId().subdetId() > 0 && subdetgd[i]->geographicalId().subdetId() < 7);
76  gdsubdetmap[subdetgd[i]->geographicalId().subdetId() - 1] = subdetgd[i]->type();
77  LogTrace("SubDetectorGeometricDetType")
78  << "subdet " << i << " type " << subdetgd[i]->type() << " detid " << subdetgd[i]->geographicalId().rawId()
79  << " subdetid " << subdetgd[i]->geographicalId().subdetId();
80  }
81 
82  std::vector<const GeometricDet*> dets[6];
83  std::vector<const GeometricDet*>& pixB = dets[0];
84  pixB.reserve(comp.size());
85  std::vector<const GeometricDet*>& pixF = dets[1];
86  pixF.reserve(comp.size());
87  std::vector<const GeometricDet*>& tib = dets[2];
88  tib.reserve(comp.size());
89  std::vector<const GeometricDet*>& tid = dets[3];
90  tid.reserve(comp.size());
91  std::vector<const GeometricDet*>& tob = dets[4];
92  tob.reserve(comp.size());
93  std::vector<const GeometricDet*>& tec = dets[5];
94  tec.reserve(comp.size());
95 
96  for (auto& i : comp)
97  dets[i->geographicalId().subdetId() - 1].emplace_back(i);
98 
99  //loop on all the six elements of dets and firstly check if they are from pixel-like detector and call buildPixel, then loop again and check if they are strip and call buildSilicon. "unknown" can be filled either way but the vector of GeometricDet must be empty !!
100  // this order is VERY IMPORTANT!!!!! For the moment I (AndreaV) understand that some pieces of code rely on pixel-like being before strip-like
101 
102  // now building the Pixel-like subdetectors
103  for (unsigned int i = 0; i < 6; ++i) {
104  if (gdsubdetmap[i] == GeometricDet::PixelBarrel)
105  buildPixel(dets[i],
106  ptitpx,
107  tracker,
109  false,
110  BIG_PIX_PER_ROC_X,
111  BIG_PIX_PER_ROC_Y);
112  if (gdsubdetmap[i] == GeometricDet::PixelPhase1Barrel)
113  buildPixel(
114  dets[i], ptitpx, tracker, GeomDetEnumerators::SubDetector::P1PXB, false, BIG_PIX_PER_ROC_X, BIG_PIX_PER_ROC_Y);
115  // Phase2 case
116  if (gdsubdetmap[i] == GeometricDet::PixelPhase2Barrel)
117  buildPixel(
118  dets[i], ptitpx, tracker, GeomDetEnumerators::SubDetector::P2PXB, true, BIG_PIX_PER_ROC_X, BIG_PIX_PER_ROC_Y);
119  //
120  if (gdsubdetmap[i] == GeometricDet::PixelEndCap)
121  buildPixel(dets[i],
122  ptitpx,
123  tracker,
125  false,
126  BIG_PIX_PER_ROC_X,
127  BIG_PIX_PER_ROC_Y);
128  if (gdsubdetmap[i] == GeometricDet::PixelPhase1EndCap)
129  buildPixel(dets[i],
130  ptitpx,
131  tracker,
133  false,
134  BIG_PIX_PER_ROC_X,
135  BIG_PIX_PER_ROC_Y);
136  if (gdsubdetmap[i] == GeometricDet::PixelPhase2EndCap)
137  buildPixel(
138  dets[i], ptitpx, tracker, GeomDetEnumerators::SubDetector::P2PXEC, true, BIG_PIX_PER_ROC_X, BIG_PIX_PER_ROC_Y);
139  if (gdsubdetmap[i] == GeometricDet::OTPhase2Barrel)
140  buildPixel(
141  dets[i], ptitpx, tracker, GeomDetEnumerators::SubDetector::P2OTB, true, BIG_PIX_PER_ROC_X, BIG_PIX_PER_ROC_Y);
142  if (gdsubdetmap[i] == GeometricDet::OTPhase2EndCap)
143  buildPixel(
144  dets[i], ptitpx, tracker, GeomDetEnumerators::SubDetector::P2OTEC, true, BIG_PIX_PER_ROC_X, BIG_PIX_PER_ROC_Y);
145  }
146  //now building Strips
147  for (unsigned int i = 0; i < 6; ++i) {
148  if (gdsubdetmap[i] == GeometricDet::TIB)
150  if (gdsubdetmap[i] == GeometricDet::TID)
152  if (gdsubdetmap[i] == GeometricDet::TOB)
154  if (gdsubdetmap[i] == GeometricDet::TEC)
156  }
157  // and finally the "empty" subdetectors (maybe it is not needed)
158  for (unsigned int i = 0; i < 6; ++i) {
159  if (gdsubdetmap[i] == GeometricDet::unknown) {
160  if (!dets[i].empty())
161  throw cms::Exception("NotEmptyUnknownSubDet")
162  << "Subdetector " << i + 1 << " is unknown but it is not empty: " << dets[i].size();
163  buildSilicon(
164  dets[i], tracker, GeomDetEnumerators::tkDetEnum[i + 1], "barrel"); // "barrel" is used but it is irrelevant
165  }
166  }
167  buildGeomDet(tracker); //"GeomDet"
168 
169  verifyDUinTG(*tracker);
170 
171  return tracker;
172 }
173 
175  std::vector<const GeometricDet*> const& gdv,
176  const PTrackerAdditionalParametersPerDet* const& ptitp,
179  bool upgradeGeometry,
180  int BIG_PIX_PER_ROC_X, // in x direction, rows. BIG_PIX_PER_ROC_X = 0 for SLHC
181  int BIG_PIX_PER_ROC_Y) // in y direction, cols. BIG_PIX_PER_ROC_Y = 0 for SLHC
182 {
183  LogDebug("BuildingGeomDetUnits") << " Pixel type. Size of vector: " << gdv.size()
184  << " GeomDetType subdetector: " << det
185  << " logical subdetector: " << GeomDetEnumerators::subDetGeom[det]
186  << " big pix per ROC x: " << BIG_PIX_PER_ROC_X << " y: " << BIG_PIX_PER_ROC_Y
187  << " is upgrade: " << upgradeGeometry;
188 
189  tracker->setOffsetDU(GeomDetEnumerators::subDetGeom[det]);
190 
191  std::map<DetId, bool> brickedness_map;
192 
193  std::vector<bool> brickedParams = ptitp->getAllBricked();
194  std::vector<int> geographicalIdParams = ptitp->getAllGeographicalIds();
195 
196  for (unsigned int i = 0; i < geographicalIdParams.size(); i++) {
197  brickedness_map[geographicalIdParams.at(i)] = brickedParams.at(i);
198  }
199 
200  for (auto const& i : gdv) {
201  std::string const& detName = i->name();
202  if (thePixelDetTypeMap.find(detName) == thePixelDetTypeMap.end()) {
203  std::unique_ptr<const Bounds> bounds(i->bounds());
204  PixelTopology* t = PixelTopologyBuilder().build(bounds.get(),
205  upgradeGeometry,
206  brickedness_map[i->geographicalId()],
207  (int)i->pixROCRows(),
208  (int)i->pixROCCols(),
209  BIG_PIX_PER_ROC_X,
210  BIG_PIX_PER_ROC_Y,
211  (int)i->pixROCx(),
212  (int)i->pixROCy());
213 
214  thePixelDetTypeMap[detName] = new PixelGeomDetType(t, detName, det);
215  tracker->addType(thePixelDetTypeMap[detName]);
216  }
217 
219  GeomDetUnit* temp = new PixelGeomDetUnit(&(*plane), thePixelDetTypeMap[detName], i->geographicalId());
220 
221  tracker->addDetUnit(temp);
222  tracker->addDetUnitId(i->geographicalId());
223  }
224  tracker->setEndsetDU(GeomDetEnumerators::subDetGeom[det]);
225 }
226 
227 void TrackerGeomBuilderFromGeometricDet::buildSilicon(std::vector<const GeometricDet*> const& gdv,
230  const std::string& part) {
231  LogDebug("BuildingGeomDetUnits") << " Strip type. Size of vector: " << gdv.size()
232  << " GeomDetType subdetector: " << det
233  << " logical subdetector: " << GeomDetEnumerators::subDetGeom[det] << " part "
234  << part;
235 
236  tracker->setOffsetDU(GeomDetEnumerators::subDetGeom[det]);
237 
238  for (auto const& i : gdv) {
239  std::string const& detName = i->name();
240  if (theStripDetTypeMap.find(detName) == theStripDetTypeMap.end()) {
241  std::unique_ptr<const Bounds> bounds(i->bounds());
242  StripTopology* t = StripTopologyBuilder().build(bounds.get(), i->siliconAPVNum(), part);
243  theStripDetTypeMap[detName] = new StripGeomDetType(t, detName, det, i->stereo());
244  tracker->addType(theStripDetTypeMap[detName]);
245  }
246 
247  double scale = (theTopo->partnerDetId(i->geographicalId())) ? 0.5 : 1.0;
248 
250  GeomDetUnit* temp = new StripGeomDetUnit(&(*plane), theStripDetTypeMap[detName], i->geographicalId());
251 
252  tracker->addDetUnit(temp);
253  tracker->addDetUnitId(i->geographicalId());
254  }
255  tracker->setEndsetDU(GeomDetEnumerators::subDetGeom[det]);
256 }
257 
259  PlaneBuilderForGluedDet gluedplaneBuilder;
260  auto const& gdu = tracker->detUnits();
261  auto const& gduId = tracker->detUnitIds();
262 
263  for (u_int32_t i = 0; i < gdu.size(); i++) {
264  tracker->addDet(gdu[i]);
265  tracker->addDetId(gduId[i]);
266  string gduTypeName = gdu[i]->type().name();
267 
268  //this step is time consuming >> TO FIX with a MAP?
269  if ((gduTypeName.find("Ster") != std::string::npos || gduTypeName.find("Lower") != std::string::npos) &&
270  (theTopo->glued(gduId[i]) != 0 || theTopo->stack(gduId[i]) != 0)) {
271  int partner_pos = -1;
272  for (u_int32_t jj = 0; jj < gduId.size(); jj++) {
273  if (theTopo->partnerDetId(gduId[i]) == gduId[jj]) {
274  partner_pos = jj;
275  break;
276  }
277  }
278  if (partner_pos == -1) {
279  throw cms::Exception("Configuration") << "Module Type is Stereo or Lower but no partner detector found \n"
280  << "There is a problem on Tracker geometry configuration\n";
281  }
282 
283  const GeomDetUnit* dus = gdu[i];
284  const GeomDetUnit* dum = gdu[partner_pos];
285  std::vector<const GeomDetUnit*> composed(2);
286  composed[0] = dum;
287  composed[1] = dus;
288  DetId composedDetId;
289  if (gduTypeName.find("Ster") != std::string::npos) {
290  PlaneBuilderForGluedDet::ResultType plane = gluedplaneBuilder.plane(composed);
291  composedDetId = theTopo->glued(gduId[i]);
292  GluedGeomDet* gluedDet = new GluedGeomDet(&(*plane), dum, dus, composedDetId);
293  tracker->addDet((GeomDet*)gluedDet);
294  tracker->addDetId(composedDetId);
295 
296  } else if (gduTypeName.find("Lower") != std::string::npos) {
297  //The plane is *not* built in the middle, but on the Lower surface
298  Plane* plane = new Plane(dus->surface());
299  composedDetId = theTopo->stack(gduId[i]);
300  StackGeomDet* stackDet = new StackGeomDet(&(*plane), dus, dum, composedDetId);
301  tracker->addDet((GeomDet*)stackDet);
302  tracker->addDetId(composedDetId);
303  }
304  }
305  }
306 }
307 
309  const GeometricDet* gd, double scale) const {
310  PlaneBuilderFromGeometricDet planeBuilder;
311  PlaneBuilderFromGeometricDet::ResultType plane = planeBuilder.plane(gd);
312  //
313  // set medium properties (if defined)
314  //
315  plane->setMediumProperties(MediumProperties(gd->radLength() * scale, gd->xi() * scale));
316 
317  return plane;
318 }
GeomDetEnumerators::SubDetector
SubDetector
Definition: GeomDetEnumerators.h:10
SectorBuilder_Tib_cff.TIB
TIB
Definition: SectorBuilder_Tib_cff.py:16
AlCaHLTBitMon_QueryRunRegistry.comp
string comp
Definition: AlCaHLTBitMon_QueryRunRegistry.py:249
mps_fire.i
i
Definition: mps_fire.py:428
TrackerGeomBuilderFromGeometricDet::thePixelDetTypeMap
std::map< std::string, const PixelGeomDetType * > thePixelDetTypeMap
Definition: TrackerGeomBuilderFromGeometricDet.h:42
TrackerGeomBuilderFromGeometricDet::buildGeomDet
void buildGeomDet(TrackerGeometry *)
Definition: TrackerGeomBuilderFromGeometricDet.cc:258
GeometricDet::PixelEndCap
Definition: GeometricDet.h:52
StripGeomDetUnit.h
MessageLogger.h
TrackerGeometry.h
GeomDet
Definition: GeomDet.h:27
StripGeomDetType.h
L1EGammaCrystalsEmulatorProducer_cfi.scale
scale
Definition: L1EGammaCrystalsEmulatorProducer_cfi.py:10
TrackerGeomBuilderFromGeometricDet::buildPixel
void buildPixel(std::vector< const GeometricDet * > const &, const PTrackerAdditionalParametersPerDet *const &, TrackerGeometry *, GeomDetType::SubDetector det, bool upgradeGeometry, int BIG_PIX_PER_ROC_X, int BIG_PIX_PER_ROC_Y)
Definition: TrackerGeomBuilderFromGeometricDet.cc:174
PTrackerParameters
Definition: PTrackerParameters.h:6
PlaneBuilderForGluedDet
Definition: PlaneBuilderForGluedDet.h:15
TrackerGeomBuilderFromGeometricDet::buildPlaneWithMaterial
PlaneBuilderFromGeometricDet::ResultType buildPlaneWithMaterial(const GeometricDet *gd, double scaleFactor=1.) const
Definition: TrackerGeomBuilderFromGeometricDet.cc:308
TrackerGeomBuilderFromGeometricDet::build
TrackerGeometry * build(const GeometricDet *gd, const PTrackerAdditionalParametersPerDet *ptitp, const PTrackerParameters &ptp, const TrackerTopology *tTopo)
Definition: TrackerGeomBuilderFromGeometricDet.cc:44
GeometricDet::components
ConstGeometricDetContainer & components()
Definition: GeometricDet.h:150
TrackerTopology
Definition: TrackerTopology.h:16
GeometricDet::TID
Definition: GeometricDet.h:54
PTrackerAdditionalParametersPerDet
Definition: PTrackerAdditionalParametersPerDet.h:9
SectorBuilder_Tec_cff.TEC
TEC
Definition: SectorBuilder_Tec_cff.py:16
cms::cuda::assert
assert(be >=bs)
GeomDetEnumerators::P2OTB
Definition: GeomDetEnumerators.h:23
GluedGeomDet.h
GeometricDet::PixelBarrel
Definition: GeometricDet.h:51
StripTopologyBuilder.h
TrackerTopology::stack
uint32_t stack(const DetId &id) const
Definition: TrackerTopology.cc:104
GeometricDet::OTPhase2Barrel
Definition: GeometricDet.h:72
PTrackerParameters.h
ReferenceCountingPointer
Definition: ReferenceCounted.h:60
groupFilesInBlocks.temp
list temp
Definition: groupFilesInBlocks.py:142
DetId
Definition: DetId.h:17
PlaneBuilderForGluedDet::plane
ResultType plane(const std::vector< const GeomDetUnit * > &dets) const
Definition: PlaneBuilderForGluedDet.cc:10
GeomDetEnumerators::PixelBarrel
Definition: GeomDetEnumerators.h:11
GeomDet::surface
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
TrackerTopology.h
PTrackerAdditionalParametersPerDet::getAllBricked
std::vector< bool > getAllBricked() const
Definition: PTrackerAdditionalParametersPerDet.cc:42
GeometricDet::PixelPhase1EndCap
Definition: GeometricDet.h:69
part
part
Definition: HCALResponse.h:20
TrackerGeomBuilderFromGeometricDet::theStripDetTypeMap
std::map< std::string, const StripGeomDetType * > theStripDetTypeMap
Definition: TrackerGeomBuilderFromGeometricDet.h:43
TrackerTopology::glued
uint32_t glued(const DetId &id) const
Definition: TrackerTopology.cc:85
TrackerGeometry::endsetDU
unsigned int endsetDU(SubDetector sid) const
Definition: TrackerGeometry.h:73
TrackerGeometry::detUnits
const DetContainer & detUnits() const override
Returm a vector of all GeomDet.
Definition: TrackerGeometry.h:61
GeomDetEnumerators::P1PXEC
Definition: GeomDetEnumerators.h:26
GeometricDet::PixelPhase2Barrel
Definition: GeometricDet.h:75
GeomDetEnumerators::tkDetEnum
constexpr SubDetector tkDetEnum[8]
Definition: GeomDetEnumerators.h:37
PixelGeomDetUnit
Definition: PixelGeomDetUnit.h:15
mps_fire.end
end
Definition: mps_fire.py:242
MediumProperties.h
GeometricDet
Definition: GeometricDet.h:31
TrackerTopology::partnerDetId
DetId partnerDetId(const DetId &id) const
Definition: TrackerTopology.cc:233
GeomDetEnumerators::P2OTEC
Definition: GeomDetEnumerators.h:24
PixelTopology
Definition: PixelTopology.h:10
GeometricDet::unknown
Definition: GeometricDet.h:49
PixelGeomDetType.h
GluedGeomDet
Definition: GluedGeomDet.h:7
GeometricDet::radLength
double radLength() const
Definition: GeometricDet.h:126
PlaneBuilderFromGeometricDet::plane
ResultType plane(const GeometricDet *gd) const
Definition: PlaneBuilderFromGeometricDet.cc:23
GeometricDet::PixelPhase2EndCap
Definition: GeometricDet.h:76
PbPb_ZMuSkimMuonDPG_cff.tracker
tracker
Definition: PbPb_ZMuSkimMuonDPG_cff.py:60
GeomDetEnumerators::P1PXB
Definition: GeomDetEnumerators.h:25
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:233
PTrackerParameters::vpars
std::vector< int > vpars
Definition: PTrackerParameters.h:19
GeometricDet::PixelPhase1Barrel
Definition: GeometricDet.h:68
GeometricDet::OTPhase2EndCap
Definition: GeometricDet.h:71
createfilelist.int
int
Definition: createfilelist.py:10
GeometricDet::TIB
Definition: GeometricDet.h:53
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
PixelTopologyBuilder::build
PixelTopology * build(const Bounds *bounds, bool upgradeGeometry, bool isBricked, int ROWS_PER_ROC, int COLS_PER_ROC, int BIG_PIX_PER_ROC_X, int BIG_PIX_PER_ROC_Y, int ROCS_X, int ROCS_Y)
Definition: PixelTopologyBuilder.cc:8
GeometricDet::deepComponents
ConstGeometricDetContainer deepComponents() const
Definition: GeometricDet.cc:252
StackGeomDet.h
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
StripTopologyBuilder
Definition: StripTopologyBuilder.h:13
PixelTopologyBuilder
Definition: PixelTopologyBuilder.h:12
PTrackerAdditionalParametersPerDet::getAllGeographicalIds
std::vector< int > getAllGeographicalIds() const
Definition: PTrackerAdditionalParametersPerDet.cc:34
PlaneBuilderForGluedDet.h
TrackerGeomBuilderFromGeometricDet::buildSilicon
void buildSilicon(std::vector< const GeometricDet * > const &, TrackerGeometry *, GeomDetType::SubDetector det, const std::string &part)
Definition: TrackerGeomBuilderFromGeometricDet.cc:227
GeomDet.h
StackGeomDet
Definition: StackGeomDet.h:7
StripGeomDetType
Definition: StripGeomDetType.h:11
MediumProperties
Definition: MediumProperties.h:12
GeometricDet::ConstGeometricDetContainer
std::vector< GeometricDet const * > ConstGeometricDetContainer
Definition: GeometricDet.h:34
GeometricDet::TOB
Definition: GeometricDet.h:55
GeomDetEnumerators::subDetGeom
constexpr SubDetector subDetGeom[21]
Definition: GeomDetEnumerators.h:40
DetId.h
PTrackerAdditionalParametersPerDet.h
StripTopologyBuilder::build
StripTopology * build(const Bounds *, double, const std::string &)
Definition: StripTopologyBuilder.cc:9
relativeConstraints.empty
bool empty
Definition: relativeConstraints.py:46
Exception
Definition: hltDiff.cc:245
SectorBuilder_Tid_cff.TID
TID
Definition: SectorBuilder_Tid_cff.py:16
Plane
Definition: Plane.h:16
findQualityFiles.jj
string jj
Definition: findQualityFiles.py:188
PixelGeomDetUnit.h
GeometricDet::xi
double xi() const
Definition: GeometricDet.h:127
Exception.h
TrackerGeomBuilderFromGeometricDet::theTopo
const TrackerTopology * theTopo
Definition: TrackerGeomBuilderFromGeometricDet.h:44
GeomDetEnumerators::PixelEndcap
Definition: GeomDetEnumerators.h:12
TrackerGeomBuilderFromGeometricDet.h
GeomDetEnumerators::P2PXB
Definition: GeomDetEnumerators.h:27
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:234
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
submitPVValidationJobs.t
string t
Definition: submitPVValidationJobs.py:644
TrackerGeometry::offsetDU
unsigned int offsetDU(SubDetector sid) const
Definition: TrackerGeometry.h:72
SectorBuilder_Tob_cff.TOB
TOB
Definition: SectorBuilder_Tob_cff.py:16
StripTopology
Definition: StripTopology.h:11
PixelGeomDetType
Definition: PixelGeomDetType.h:11
PixelTopologyBuilder.h
PlaneBuilderFromGeometricDet
Definition: PlaneBuilderFromGeometricDet.h:11
GeometricDet::TEC
Definition: GeometricDet.h:56
GeomDetEnumerators::P2PXEC
Definition: GeomDetEnumerators.h:28
StripGeomDetUnit
Definition: StripGeomDetUnit.h:15
TrackerGeometry
Definition: TrackerGeometry.h:14