CMS 3D CMS Logo

List of all members | Private Member Functions
CmsMTDDiscBuilder Class Reference

#include <CmsMTDDiscBuilder.h>

Inheritance diagram for CmsMTDDiscBuilder:
CmsMTDLevelBuilder CmsMTDAbstractConstruction

Private Member Functions

void buildComponent (DDFilteredView &, GeometricTimingDet *, std::string) override
 
void sortNS (DDFilteredView &, GeometricTimingDet *) override
 

Additional Inherited Members

- Public Member Functions inherited from CmsMTDLevelBuilder
void build (DDFilteredView &, GeometricTimingDet *, std::string) override
 
 ~CmsMTDLevelBuilder () override
 
- Public Member Functions inherited from CmsMTDAbstractConstruction
virtual ~CmsMTDAbstractConstruction ()=default
 
- Static Public Member Functions inherited from CmsMTDLevelBuilder
static double getPhi (const GeometricTimingDet *a)
 
static double getPhiGluedModule (const GeometricTimingDet *a)
 
static double getPhiGluedModuleMirror (const GeometricTimingDet *a)
 
static double getPhiMirror (const GeometricTimingDet *a)
 
static double getPhiModule (const GeometricTimingDet *a)
 
static double getPhiModuleMirror (const GeometricTimingDet *a)
 
static bool isLessModZ (const GeometricTimingDet *a, const GeometricTimingDet *b)
 
static bool isLessR (const GeometricTimingDet *a, const GeometricTimingDet *b)
 
static bool isLessRModule (const GeometricTimingDet *a, const GeometricTimingDet *b)
 
static bool isLessZ (const GeometricTimingDet *a, const GeometricTimingDet *b)
 
static bool phiSortNP (const GeometricTimingDet *a, const GeometricTimingDet *b)
 
static bool subDetByType (const GeometricTimingDet *a, const GeometricTimingDet *b)
 
- Protected Attributes inherited from CmsMTDLevelBuilder
CmsMTDStringToEnum theCmsMTDStringToEnum
 

Detailed Description

Class which contructs Phase2 Outer Tracker/Discs.

Definition at line 11 of file CmsMTDDiscBuilder.h.

Member Function Documentation

void CmsMTDDiscBuilder::buildComponent ( DDFilteredView fv,
GeometricTimingDet g,
std::string  s 
)
overrideprivatevirtual

Implements CmsMTDLevelBuilder.

Definition at line 13 of file CmsMTDDiscBuilder.cc.

References GeometricTimingDet::addComponent(), CmsMTDLevelBuilder::build(), GeometricTimingDet::ETLRing, Exception, DDFilteredView::logicalPart(), DDName::name(), DDBase< N, C >::name(), and AlCaHLTBitMon_QueryRunRegistry::string.

13  {
14  CmsMTDETLRingBuilder theCmsMTDETLRingBuilder;
15  const std::string ringname = fv.logicalPart().name().name().substr(0, 4);
17 
18  switch (theCmsMTDStringToEnum.type(ringname)) {
20  theCmsMTDETLRingBuilder.build(fv, subdet, s);
21  break;
22  default:
23  throw cms::Exception("CmsMTDDiscBuilder") << " ERROR - I was expecting a Ring, I got a " << ringname;
24  }
25 
26  g->addComponent(subdet);
27 }
GeometricTimingDet::GeometricTimingEnumType type(std::string const &) const
const DDLogicalPart & logicalPart() const
The logical-part of the current node in the filtered-view.
const N & name() const
Definition: DDBase.h:59
CmsMTDStringToEnum theCmsMTDStringToEnum
void addComponent(GeometricTimingDet *)
void build(DDFilteredView &, GeometricTimingDet *, std::string) override
const std::string & name() const
Returns the name.
Definition: DDName.cc:40
void CmsMTDDiscBuilder::sortNS ( DDFilteredView fv,
GeometricTimingDet det 
)
overrideprivatevirtual

Reimplemented from CmsMTDLevelBuilder.

Definition at line 30 of file CmsMTDDiscBuilder.cc.

References AlCaHLTBitMon_QueryRunRegistry::comp, GeometricTimingDet::component(), GeometricTimingDet::components(), GeometricTimingDet::ETLRing, GeometricTimingDet::setGeographicalID(), and GeometricTimingDet::translation().

30  {
32 
33  switch (det->components().front()->type()) {
35  std::stable_sort(comp.begin(), comp.end(), isLessRModule);
36  break;
37  default:
38  edm::LogError("CmsMTDDiscBuilder") << "ERROR - wrong SubDet to sort..... " << det->components().front()->type();
39  }
40 
42  uint32_t totalrings = comp.size();
43 
44  const uint32_t side = det->translation().z() > 0 ? 1 : 0;
45 
46  for (uint32_t rn = 0; rn < totalrings; ++rn) {
47  det->component(rn)->setGeographicalID(ETLDetId(side, rn + 1, 0, 0));
48  }
49 }
ConstGeometricTimingDetContainer & components()
GeometricTimingDet * component(size_t index)
static bool isLessRModule(const GeometricTimingDet *a, const GeometricTimingDet *b)
void setGeographicalID(DetId id)
std::vector< GeometricTimingDet const * > ConstGeometricTimingDetContainer
Detector identifier class for the Endcap Timing Layer.
Definition: ETLDetId.h:15
std::vector< GeometricTimingDet * > GeometricTimingDetContainer
Translation const & translation() const