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_PFProducer_PFGeometry_h
2 #define RecoParticleFlow_PFProducer_PFGeometry_h
3 
5 
6 // system include files
7 #include <vector>
8 
19 class BoundCylinder;
20 class BoundDisk;
21 class BoundPlane;
22 
23 class PFGeometry {
24  public:
25  typedef enum {
26  BeamPipe = 0,
27  PS1 = 1,
28  PS2 = 2,
33  NPoints = 7
34  } Layers_t;
35 
36  typedef enum {
38  PS1Wall = 1,
39  PS2Wall = 2,
44  } Surface_t;
45 
47  PFGeometry();
48 
50  virtual ~PFGeometry() { }
51 
53  static const float innerRadius(PFGeometry::Layers_t layer)
54  { return innerRadius_[layer]; }
55 
57  static const float outerRadius(PFGeometry::Layers_t layer)
58  { return outerRadius_[layer]; }
59 
61  static const float innerZ(PFGeometry::Layers_t layer)
62  { return innerZ_[layer]; }
63 
65  static const float outerZ(PFGeometry::Layers_t layer)
66  { return outerZ_[layer]; }
67 
70  { return *(cylinder_[unsigned(iSurf)]); }
71 
74  { return *(negativeDisk_[unsigned(iSurf)]); }
75 
78  { return *(positiveDisk_[unsigned(iSurf)]); }
79 
81  static float tanTh(PFGeometry::Surface_t iSurf)
82  { return tanTh_[unsigned(iSurf)]; }
83 
84  private:
85  static std::vector< float > innerRadius_;
86  static std::vector< float > outerRadius_;
87  static std::vector< float > innerZ_;
88  static std::vector< float > outerZ_;
89 
90  static std::vector< ReferenceCountingPointer<BoundCylinder> > cylinder_;
91  static std::vector< ReferenceCountingPointer<BoundPlane> > negativeDisk_;
92  static std::vector< ReferenceCountingPointer<BoundPlane> > positiveDisk_;
93  static std::vector< float > tanTh_;
94 };
95 
96 #endif
static std::vector< ReferenceCountingPointer< BoundCylinder > > cylinder_
Definition: PFGeometry.h:90
static std::vector< float > outerZ_
Definition: PFGeometry.h:88
static std::vector< ReferenceCountingPointer< BoundPlane > > negativeDisk_
Definition: PFGeometry.h:91
General CMS geometry parameters used during Particle Flow reconstruction or drawing. All methods and members are static.
Definition: PFGeometry.h:23
static std::vector< float > innerZ_
Definition: PFGeometry.h:87
static const BoundCylinder & barrelBound(PFGeometry::Surface_t iSurf)
return cylinder used to propagate to barrel
Definition: PFGeometry.h:69
static const float outerZ(PFGeometry::Layers_t layer)
return outer position along z axis of a given layer
Definition: PFGeometry.h:65
static const BoundPlane & negativeEndcapDisk(PFGeometry::Surface_t iSurf)
return disk used to propagate to negative endcap
Definition: PFGeometry.h:73
static float tanTh(PFGeometry::Surface_t iSurf)
return tan(theta) of the cylinder corner
Definition: PFGeometry.h:81
static std::vector< float > outerRadius_
Definition: PFGeometry.h:86
virtual ~PFGeometry()
destructor
Definition: PFGeometry.h:50
static std::vector< float > tanTh_
Definition: PFGeometry.h:93
static const float outerRadius(PFGeometry::Layers_t layer)
return outer radius of a given layer
Definition: PFGeometry.h:57
static const float innerRadius(PFGeometry::Layers_t layer)
return inner radius of a given layer
Definition: PFGeometry.h:53
static std::vector< float > innerRadius_
Definition: PFGeometry.h:85
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:61
static const BoundPlane & positiveEndcapDisk(PFGeometry::Surface_t iSurf)
return disk used to propagate to positive endcap
Definition: PFGeometry.h:77
static std::vector< ReferenceCountingPointer< BoundPlane > > positiveDisk_
Definition: PFGeometry.h:92