CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
StripTopologyBuilder.cc
Go to the documentation of this file.
1 
7 
8 
9 
11 
12 StripTopology* StripTopologyBuilder::build(const Bounds* bs,double apvnumb,std::string part)
13 {
14  theAPVNumb = apvnumb;
15 
17  if (part == "barrel") {
18  result = constructBarrel( bs->length(), bs->width());
19  }
20  else {
21  int yAx = (dynamic_cast<const TrapezoidalPlaneBounds*>(bs))->yAxisOrientation();
22  result = constructForward( bs->length(), bs->width(),bs->widthAtHalfLength(),yAx);
23  }
24  return result;
25 }
26 
28 {
29  int nstrip = int(128*theAPVNumb);
30  float pitch = width/nstrip;
31 
32  return new RectangularStripTopology(nstrip,pitch,length);
33 }
34 
35 StripTopology* StripTopologyBuilder::constructForward( float length, float width, float widthAtHalf, int yAxOr)
36 {
37  int nstrip = int(128*theAPVNumb);
38  float rCross = widthAtHalf*length/(2*(width-widthAtHalf));
39  float aw = atan2(widthAtHalf/2., static_cast<double>(rCross))/(nstrip/2);
40  return new RadialStripTopology(nstrip, aw, length, rCross, yAxOr);
41 }
42 
virtual float widthAtHalfLength() const
Width at half length. Useful for e.g. pitch definition.
Definition: Bounds.h:35
virtual float length() const =0
StripTopology * build(const Bounds *, double, std::string)
StripTopology * constructForward(float, float, float, int)
tuple result
Definition: query.py:137
part
Definition: HCALResponse.h:21
StripTopology * constructBarrel(float, float)
Definition: Bounds.h:18
virtual float width() const =0