CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
StripTopologyBuilder Class Reference

#include <StripTopologyBuilder.h>

Public Member Functions

StripTopologybuild (const Bounds *, double, const std::string &)
 
 StripTopologyBuilder (void)
 

Private Member Functions

StripTopologyconstructBarrel (float, float)
 
StripTopologyconstructForward (float, float, float, int)
 

Private Attributes

double theAPVNumb
 

Detailed Description

Called by GeomTopologyBuilder, chooses the right topology for Strips.

Definition at line 13 of file StripTopologyBuilder.h.

Constructor & Destructor Documentation

◆ StripTopologyBuilder()

StripTopologyBuilder::StripTopologyBuilder ( void  )

Definition at line 7 of file StripTopologyBuilder.cc.

7 : theAPVNumb(0.0) {}

Member Function Documentation

◆ build()

StripTopology * StripTopologyBuilder::build ( const Bounds bs,
double  apvnumb,
const std::string &  part 
)

Definition at line 9 of file StripTopologyBuilder.cc.

9  {
10  theAPVNumb = apvnumb;
11 
12  StripTopology* result = nullptr;
13  if (part == "barrel") {
14  result = constructBarrel(bs->length(), bs->width());
15  } else {
16  const TrapezoidalPlaneBounds* topo = dynamic_cast<const TrapezoidalPlaneBounds*>(bs);
17  if (topo) {
18  int yAx = topo->yAxisOrientation();
19  result = constructForward(bs->length(), bs->width(), bs->widthAtHalfLength(), yAx);
20  }
21  }
22  return result;
23 }

References cms::cuda::bs, constructBarrel(), constructForward(), mps_fire::result, theAPVNumb, and TrapezoidalPlaneBounds::yAxisOrientation().

Referenced by TrackerGeomBuilderFromGeometricDet::buildSilicon().

◆ constructBarrel()

StripTopology * StripTopologyBuilder::constructBarrel ( float  length,
float  width 
)
private

Definition at line 25 of file StripTopologyBuilder.cc.

25  {
26  int nstrip = int(128 * theAPVNumb);
27  float pitch = width / nstrip;
28 
29  return new RectangularStripTopology(nstrip, pitch, length);
30 }

References createfilelist::int, theAPVNumb, and ApeEstimator_cff::width.

Referenced by build().

◆ constructForward()

StripTopology * StripTopologyBuilder::constructForward ( float  length,
float  width,
float  widthAtHalf,
int  yAxOr 
)
private

Definition at line 32 of file StripTopologyBuilder.cc.

32  {
33  int nstrip = int(128 * theAPVNumb);
34  float rCross = widthAtHalf * length / (2 * (width - widthAtHalf));
35  float aw = atan2(widthAtHalf / 2., static_cast<double>(rCross)) / (nstrip / 2);
36  return new TkRadialStripTopology(nstrip, aw, length, rCross, yAxOr);
37 }

References createfilelist::int, theAPVNumb, and ApeEstimator_cff::width.

Referenced by build().

Member Data Documentation

◆ theAPVNumb

double StripTopologyBuilder::theAPVNumb
private

Definition at line 20 of file StripTopologyBuilder.h.

Referenced by build(), constructBarrel(), and constructForward().

ApeEstimator_cff.width
width
Definition: ApeEstimator_cff.py:24
TkRadialStripTopology
Definition: TkRadialStripTopology.h:28
TrapezoidalPlaneBounds::yAxisOrientation
virtual int yAxisOrientation() const
Definition: TrapezoidalPlaneBounds.cc:16
StripTopologyBuilder::constructForward
StripTopology * constructForward(float, float, float, int)
Definition: StripTopologyBuilder.cc:32
StripTopologyBuilder::theAPVNumb
double theAPVNumb
Definition: StripTopologyBuilder.h:20
cms::cuda::bs
bs
Definition: HistoContainer.h:127
part
part
Definition: HCALResponse.h:20
RectangularStripTopology
Definition: RectangularStripTopology.h:11
createfilelist.int
int
Definition: createfilelist.py:10
TrapezoidalPlaneBounds
Definition: TrapezoidalPlaneBounds.h:15
StripTopologyBuilder::constructBarrel
StripTopology * constructBarrel(float, float)
Definition: StripTopologyBuilder.cc:25
mps_fire.result
result
Definition: mps_fire.py:303
StripTopology
Definition: StripTopology.h:11