CMS 3D CMS Logo

List of all members | Public Member Functions
PixelForwardLayerBuilder< T1, T2 > Class Template Reference

#include <PixelForwardLayerBuilder.h>

Public Member Functions

ForwardDetLayerbuild (const GeometricDet *aPixelForwardLayer, const TrackerGeometry *theGeomDetGeometry) __attribute__((cold))
 
 PixelForwardLayerBuilder ()
 

Detailed Description

template<class T1, class T2>
class PixelForwardLayerBuilder< T1, T2 >

A concrete builder for PixelForwardLayer

Definition at line 20 of file PixelForwardLayerBuilder.h.

Constructor & Destructor Documentation

◆ PixelForwardLayerBuilder()

template<class T1, class T2>
PixelForwardLayerBuilder< T1, T2 >::PixelForwardLayerBuilder ( )
inline

Definition at line 22 of file PixelForwardLayerBuilder.h.

22 {};

Member Function Documentation

◆ build()

template<class T1 , class T2 >
ForwardDetLayer * PixelForwardLayerBuilder< T1, T2 >::build ( const GeometricDet aPixelForwardLayer,
const TrackerGeometry theGeomDetGeometry 
)

Definition at line 28 of file PixelForwardLayerBuilder.h.

References PixelBladeBuilder< T >::build(), GeometricDet::components(), and mps_fire::i.

Referenced by GeometricSearchTrackerBuilder::build().

29  {
30  std::vector<const GeometricDet*> theGeometricPanels = aPixelForwardLayer->components();
31  int panelsSize = theGeometricPanels.size();
32 
33  /*
34  int num = 0;
35  for(std::vector<const GeometricDet*>::const_iterator it= theGeometricPanels.begin();
36  it!=theGeometricPanels.end(); it++, ++num) {
37  edm::LogInfo("TkDetLayers") << "PanelsSize: " << panelsSize << " , "
38  << "PanelNum: " << num << " , "
39  << "panel.phi(): " << (*it)->positionBounds().phi() << " , "
40  << "panel.z(): " << (*it)->positionBounds().z() << " , "
41  << "panel.y(): " << (*it)->positionBounds().y() << " , "
42  << "panel.x(): " << (*it)->positionBounds().x() << " , "
43  << "panel.r(): " << (*it)->positionBounds().perp() << " , "
44  << "panel.rmax(): " << (*it)->bounds()->rSpan().second << " , "
45  << "comp.size(): " << (*it)->components().size();
46  }
47  */
48 
49  //edm::LogInfo(TkDetLayers) << "pixelFwdLayer.panels().size(): " << panelsSize ;
50 
51  std::vector<const T1*> theBlades;
52  PixelBladeBuilder<T1> myBladeBuilder;
53 
54  theBlades.reserve((panelsSize / 2));
55  for (int i = 0; i < (panelsSize / 2); i++) {
56  theBlades.push_back(
57  myBladeBuilder.build(theGeometricPanels[i], theGeometricPanels[i + (panelsSize / 2)], theGeomDetGeometry));
58  }
59 
60  return new T2(theBlades);
61 }
ConstGeometricDetContainer & components()
Definition: GeometricDet.h:152
T * build(const GeometricDet *geometricDetFrontPanel, const GeometricDet *geometricDetBackPanel, const TrackerGeometry *theGeomDetGeometry) __attribute__((cold))