CMS 3D CMS Logo

List of all members | Private Member Functions
CmsTrackerRingBuilder< FilteredView > Class Template Reference

#include <CmsTrackerRingBuilder.h>

Inheritance diagram for CmsTrackerRingBuilder< FilteredView >:
CmsTrackerLevelBuilder< FilteredView > CmsTrackerAbstractConstruction< FilteredView >

Private Member Functions

void buildComponent (FilteredView &, GeometricDet *, const std::string &) override
 
void sortNS (FilteredView &, GeometricDet *) override
 

Additional Inherited Members

- Public Member Functions inherited from CmsTrackerLevelBuilder< FilteredView >
void build (FilteredView &, GeometricDet *, const std::string &) override
 
 ~CmsTrackerLevelBuilder () override
 
- Public Member Functions inherited from CmsTrackerAbstractConstruction< FilteredView >
virtual ~CmsTrackerAbstractConstruction ()=default
 
- Protected Attributes inherited from CmsTrackerLevelBuilder< FilteredView >
CmsTrackerStringToEnum theCmsTrackerStringToEnum
 

Detailed Description

template<class FilteredView>
class CmsTrackerRingBuilder< FilteredView >

Class which constructs TID/TEC rings

Definition at line 12 of file CmsTrackerRingBuilder.h.

Member Function Documentation

template<class FilteredView >
void CmsTrackerRingBuilder< FilteredView >::buildComponent ( FilteredView &  fv,
GeometricDet g,
const std::string &  s 
)
overrideprivatevirtual

Implements CmsTrackerLevelBuilder< FilteredView >.

Definition at line 15 of file CmsTrackerRingBuilder.cc.

References CmsDetConstruction< FilteredView >::buildComponent().

15  {
16  CmsDetConstruction<FilteredView> theCmsDetConstruction;
17  theCmsDetConstruction.buildComponent(fv, g, s);
18 }
void buildComponent(FilteredView &, GeometricDet *, const std::string &) override
template<class FilteredView >
void CmsTrackerRingBuilder< FilteredView >::sortNS ( FilteredView &  fv,
GeometricDet det 
)
overrideprivatevirtual

Reimplemented from CmsTrackerLevelBuilder< FilteredView >.

Definition at line 21 of file CmsTrackerRingBuilder.cc.

References funct::abs(), GeometricDet::addComponents(), GeometricDet::clearComponents(), AlCaHLTBitMon_QueryRunRegistry::comp, GeometricDet::component(), GeometricDet::components(), GeometricDet::DetUnit, CmsTrackerLevelBuilderHelper::getPhi(), CmsTrackerLevelBuilderHelper::getPhiGluedModule(), CmsTrackerLevelBuilderHelper::getPhiGluedModuleMirror(), CmsTrackerLevelBuilderHelper::getPhiMirror(), ExtractStringFromDDD< FilteredView >::getString(), mps_fire::i, GeometricDet::mergedDet, unpackData-CaloStage2::pname, GeometricDet::setGeographicalID(), AlCaHLTBitMon_QueryRunRegistry::string, groupFilesInBlocks::temp, trackerStablePhiSort(), GeometricDet::translation(), and detailsBasic3DVector::z.

21  {
23  fv.firstChild();
26 
27  switch (comp.front()->type()) {
30  break;
33  break;
34  default:
35  edm::LogError("CmsTrackerRingBuilder")
36  << "ERROR - wrong SubDet to sort..... " << det->components().front()->type();
37  }
38 
39  static std::string const part("TkDDDStructure");
40  static std::string const TECGluedDet("TECGluedDet");
41  static std::string const TECDet("TECDet");
42 
44 
45  // TEC
46  // Module Number: 3 bits [1,...,5 at most]
47  if (pname == TECGluedDet || pname == TECDet) {
48  // TEC-
49  if (det->translation().z() < 0 && pname == TECDet) {
51  }
52 
53  if (det->translation().z() < 0 && pname == TECGluedDet) {
55  }
56 
57  for (uint32_t i = 0; i < comp.size(); i++)
58  det->component(i)->setGeographicalID(i + 1);
59 
60  } else {
61  // TID
62  // Ring Side: 2 bits [back:1 front:2]
63  // Module Number: 5 bits [1,...,20 at most]
64  //
65  for (uint32_t i = 0; i < comp.size(); i++) {
66  if (std::abs(comp[i]->translation().z()) < std::abs(det->translation().z())) {
67  compfw.emplace_back(det->component(i));
68  } else {
69  compbw.emplace_back(det->component(i));
70  }
71  }
72 
73  for (uint32_t i = 0; i < compbw.size(); i++) {
74  uint32_t temp = i + 1;
75  temp |= (1 << 5);
76  compbw[i]->setGeographicalID(temp);
77  }
78 
79  for (uint32_t i = 0; i < compfw.size(); i++) {
80  uint32_t temp = i + 1;
81  temp |= (2 << 5);
82  compfw[i]->setGeographicalID(temp);
83  }
84 
85  det->clearComponents();
86  det->addComponents(compfw);
87  det->addComponents(compbw);
88  }
89 
90  fv.parent();
91 }
std::vector< GeometricDet * > GeometricDetContainer
Definition: GeometricDet.h:34
void clearComponents()
Definition: GeometricDet.h:104
void setGeographicalID(DetId id)
Definition: GeometricDet.h:97
static double getPhiMirror(const GeometricDet *a)
Translation const & translation() const
Definition: GeometricDet.h:120
ConstGeometricDetContainer & components()
Definition: GeometricDet.h:139
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
static double getPhiGluedModuleMirror(const GeometricDet *a)
GeometricDet * component(size_t index)
Definition: GeometricDet.h:114
std::vector< GeometricDet const * > ConstGeometricDetContainer
Definition: GeometricDet.h:33
void trackerStablePhiSort(RandomAccessIterator begin, RandomAccessIterator end, const Extractor &extr)
static std::string getString(std::string const &, DDFilteredView *)
part
Definition: HCALResponse.h:20
void addComponents(GeometricDetContainer const &cont)
static double getPhiGluedModule(const GeometricDet *a)
static double getPhi(const GeometricDet *a)