CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
List of all members | Private Member Functions
CmsTrackerDiskBuilder< FilteredView > Class Template Reference

#include <CmsTrackerDiskBuilder.h>

Inheritance diagram for CmsTrackerDiskBuilder< 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 >
template<>
void build (cms::DDFilteredView &fv, GeometricDet *tracker, const std::string &attribute)
 
template<>
void build (DDFilteredView &fv, GeometricDet *tracker, const std::string &attribute)
 
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 CmsTrackerDiskBuilder< FilteredView >

Class which contructs PixelForward/Disk.

Definition at line 12 of file CmsTrackerDiskBuilder.h.

Member Function Documentation

◆ buildComponent()

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

Implements CmsTrackerLevelBuilder< FilteredView >.

Definition at line 17 of file CmsTrackerDiskBuilder.cc.

17  {
18  CmsTrackerPanelBuilder<FilteredView> theCmsTrackerPanelBuilder;
19  GeometricDet* subdet = new GeometricDet(&fv,
22 
26  theCmsTrackerPanelBuilder.build(fv, subdet, s);
27  break;
28  default:
29  edm::LogError("CmsTrackerDiskBuilder")
30  << " ERROR - I was expecting a Panel, I got a " << ExtractStringFromDDD<FilteredView>::getString(s, &fv);
31  }
32  g->addComponent(subdet);
33 }

References CmsTrackerLevelBuilder< FilteredView >::build(), g, ExtractStringFromDDD< FilteredView >::getString(), GeometricDet::panel, and alignCSCRings::s.

◆ sortNS()

template<class FilteredView >
void CmsTrackerDiskBuilder< FilteredView >::sortNS ( FilteredView &  fv,
GeometricDet det 
)
overrideprivatevirtual

Reimplemented from CmsTrackerLevelBuilder< FilteredView >.

Definition at line 36 of file CmsTrackerDiskBuilder.cc.

36  {
38 
39  switch (det->components().front()->type()) {
42  break;
43  default:
44  edm::LogError("CmsTrackerDiskBuilder")
45  << "ERROR - wrong SubDet to sort..... " << det->components().front()->type();
46  }
47 
48  GeometricDet::GeometricDetContainer zminpanels; // Here z refers abs(z);
49  GeometricDet::GeometricDetContainer zmaxpanels; // So, zmin panel is always closer to ip.
50 
51  uint32_t totalblade = comp.size() / 2;
52  // std::cout << "pixel_disk " << pixel_disk << endl;
53 
54  zminpanels.reserve(totalblade);
55  zmaxpanels.reserve(totalblade);
56  for (uint32_t j = 0; j < totalblade; j++) {
57  if (std::abs(comp[2 * j]->translation().z()) > std::abs(comp[2 * j + 1]->translation().z())) {
58  zmaxpanels.emplace_back(det->component(2 * j));
59  zminpanels.emplace_back(det->component(2 * j + 1));
60 
61  } else if (std::abs(comp[2 * j]->translation().z()) < std::abs(comp[2 * j + 1]->translation().z())) {
62  zmaxpanels.emplace_back(det->component(2 * j + 1));
63  zminpanels.emplace_back(det->component(2 * j));
64  } else {
65  edm::LogWarning("CmsTrackerDiskBuilder") << "WARNING - The Z of both panels are equal! ";
66  }
67  }
68 
69  for (uint32_t fn = 0; fn < zminpanels.size(); fn++) {
70  uint32_t blade = fn + 1;
71  uint32_t panel = 1;
72  uint32_t temp = (blade << 2) | panel;
73  zminpanels[fn]->setGeographicalID(temp);
74  }
75 
76  for (uint32_t bn = 0; bn < zmaxpanels.size(); bn++) {
77  uint32_t blade = bn + 1;
78  uint32_t panel = 2;
79  uint32_t temp = (blade << 2) | panel;
80  zmaxpanels[bn]->setGeographicalID(temp);
81  }
82 
83  det->clearComponents();
84  det->addComponents(zminpanels);
85  det->addComponents(zmaxpanels);
86 }

References funct::abs(), GeometricDet::addComponents(), GeometricDet::clearComponents(), AlCaHLTBitMon_QueryRunRegistry::comp, GeometricDet::component(), GeometricDet::components(), personalPlayback::fn, CmsTrackerLevelBuilderHelper::getPhi(), dqmiolumiharvest::j, GeometricDet::panel, groupFilesInBlocks::temp, and trackerStablePhiSort().

ExtractStringFromDDD::getString
static std::string getString(const std::string &, FilteredView *)
CmsTrackerLevelBuilder
Definition: CmsTrackerLevelBuilder.h:31
GeometricDet::components
ConstGeometricDetContainer & components()
Definition: GeometricDet.h:149
trackerStablePhiSort
void trackerStablePhiSort(RandomAccessIterator begin, RandomAccessIterator end, const Extractor &extr)
Definition: trackerStablePhiSort.h:9
groupFilesInBlocks.temp
list temp
Definition: groupFilesInBlocks.py:142
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
AlCaHLTBitMon_QueryRunRegistry.comp
comp
Definition: AlCaHLTBitMon_QueryRunRegistry.py:249
ExtractStringFromDDD
Definition: ExtractStringFromDDD.h:12
CmsTrackerLevelBuilderHelper::getPhi
static double getPhi(const GeometricDet *a)
Definition: CmsTrackerLevelBuilder.cc:44
CmsTrackerPanelBuilder
Definition: CmsTrackerPanelBuilder.h:12
alignCSCRings.s
s
Definition: alignCSCRings.py:92
DDAxes::z
GeometricDet
Definition: GeometricDet.h:31
CmsTrackerLevelBuilder::build
void build(FilteredView &, GeometricDet *, const std::string &) override
gainCalibHelper::gainCalibPI::type
type
Definition: SiPixelGainCalibHelper.h:39
GeometricDet::addComponents
void addComponents(GeometricDetContainer const &cont)
Definition: GeometricDet.cc:240
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
GeometricDet::panel
Definition: GeometricDet.h:67
GeometricDet::component
GeometricDet * component(size_t index)
Definition: GeometricDet.h:145
GeometricDet::ConstGeometricDetContainer
std::vector< GeometricDet const * > ConstGeometricDetContainer
Definition: GeometricDet.h:34
personalPlayback.fn
fn
Definition: personalPlayback.py:515
GeometricDet::GeometricDetContainer
std::vector< GeometricDet * > GeometricDetContainer
Definition: GeometricDet.h:35
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
GeometricDet::clearComponents
void clearComponents()
Definition: GeometricDet.h:160
g
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
Definition: Activities.doc:4