CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PFGeometry.h
Go to the documentation of this file.
1 #ifndef RecoParticleFlow_PFTracking_PFGeometry_h
2 #define RecoParticleFlow_PFTracking_PFGeometry_h
3 
5 
6 // system include files
7 #include <vector>
8 
19 class Cylinder;
20 class Disk;
21 class Plane;
22 
23 class PFGeometry {
24  public:
25  typedef enum {
26  BeamPipe = 0,
27  PS1 = 1,
28  PS2 = 2,
33  HOBarrel = 7,
34  NPoints = 8
35  } Layers_t;
36 
37  typedef enum {
39  PS1Wall = 1,
40  PS2Wall = 2,
47  } Surface_t;
48 
50  PFGeometry();
51 
53  virtual ~PFGeometry() { }
54 
56  static const float innerRadius(PFGeometry::Layers_t layer)
57  { return innerRadius_[layer]; }
58 
60  static const float outerRadius(PFGeometry::Layers_t layer)
61  { return outerRadius_[layer]; }
62 
64  static const float innerZ(PFGeometry::Layers_t layer)
65  { return innerZ_[layer]; }
66 
68  static const float outerZ(PFGeometry::Layers_t layer)
69  { return outerZ_[layer]; }
70 
73  { return *(cylinder_[unsigned(iSurf)]); }
74 
77  { return *(negativeDisk_[unsigned(iSurf)]); }
78 
81  { return *(positiveDisk_[unsigned(iSurf)]); }
82 
84  static float tanTh(PFGeometry::Surface_t iSurf)
85  { return tanTh_[unsigned(iSurf)]; }
86 
87  private:
88  static std::vector< float > innerRadius_;
89  static std::vector< float > outerRadius_;
90  static std::vector< float > innerZ_;
91  static std::vector< float > outerZ_;
92 
93  static std::vector< ReferenceCountingPointer<Cylinder> > cylinder_;
94  static std::vector< ReferenceCountingPointer<Plane> > negativeDisk_;
95  static std::vector< ReferenceCountingPointer<Plane> > positiveDisk_;
96  static std::vector< float > tanTh_;
97 };
98 
99 #endif
static std::vector< ReferenceCountingPointer< Cylinder > > cylinder_
Definition: PFGeometry.h:93
static std::vector< float > outerZ_
Definition: PFGeometry.h:91
static std::vector< ReferenceCountingPointer< Plane > > negativeDisk_
Definition: PFGeometry.h:94
General CMS geometry parameters used during Particle Flow reconstruction or drawing. All methods and members are static.
Definition: PFGeometry.h:23
Definition: Plane.h:17
static std::vector< float > innerZ_
Definition: PFGeometry.h:90
static const float outerZ(PFGeometry::Layers_t layer)
return outer position along z axis of a given layer
Definition: PFGeometry.h:68
static const Plane & negativeEndcapDisk(PFGeometry::Surface_t iSurf)
return disk used to propagate to negative endcap
Definition: PFGeometry.h:76
static float tanTh(PFGeometry::Surface_t iSurf)
return tan(theta) of the cylinder corner
Definition: PFGeometry.h:84
static std::vector< float > outerRadius_
Definition: PFGeometry.h:89
static const Plane & positiveEndcapDisk(PFGeometry::Surface_t iSurf)
return disk used to propagate to positive endcap
Definition: PFGeometry.h:80
virtual ~PFGeometry()
destructor
Definition: PFGeometry.h:53
static std::vector< float > tanTh_
Definition: PFGeometry.h:96
static const float outerRadius(PFGeometry::Layers_t layer)
return outer radius of a given layer
Definition: PFGeometry.h:60
static const float innerRadius(PFGeometry::Layers_t layer)
return inner radius of a given layer
Definition: PFGeometry.h:56
static std::vector< float > innerRadius_
Definition: PFGeometry.h:88
static const Cylinder & barrelBound(PFGeometry::Surface_t iSurf)
return cylinder used to propagate to barrel
Definition: PFGeometry.h:72
PFGeometry()
constructor
Definition: PFGeometry.cc:16
static const float innerZ(PFGeometry::Layers_t layer)
return inner position along z axis of a given layer
Definition: PFGeometry.h:64
static std::vector< ReferenceCountingPointer< Plane > > positiveDisk_
Definition: PFGeometry.h:95