CMS 3D CMS Logo

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

General CMS geometry parameters used during Particle Flow reconstruction or drawing. All methods and members are static. More...

#include <PFGeometry.h>

Public Types

enum  Layers_t {
  BeamPipe = 0, PS1 = 1, PS2 = 2, ECALBarrel = 3,
  ECALEndcap = 4, HCALBarrel = 5, HCALEndcap = 6, HOBarrel = 7,
  NPoints = 8
}
 
enum  Surface_t {
  BeamPipeWall = 0, PS1Wall = 1, PS2Wall = 2, ECALInnerWall = 3,
  HCALInnerWall = 4, HCALOuterWall = 5, HOInnerWall = 6, HOOuterWall = 7,
  NSurfPoints = 8
}
 

Public Member Functions

float innerRadius (PFGeometry::Layers_t layer) const
 return inner radius of a given layer More...
 
float innerZ (PFGeometry::Layers_t layer) const
 return inner position along z axis of a given layer More...
 
float outerRadius (PFGeometry::Layers_t layer) const
 return outer radius of a given layer More...
 
float outerZ (PFGeometry::Layers_t layer) const
 return outer position along z axis of a given layer More...
 
 PFGeometry ()
 constructor More...
 
float tanTh (PFGeometry::Surface_t iSurf) const
 return tan(theta) of the cylinder corner More...
 
virtual ~PFGeometry ()
 destructor More...
 

Private Attributes

std::vector< float > innerRadius_
 
std::vector< float > innerZ_
 
std::vector< float > outerRadius_
 
std::vector< float > outerZ_
 
std::vector< float > tanTh_
 

Detailed Description

General CMS geometry parameters used during Particle Flow reconstruction or drawing. All methods and members are static.

Author
Renaud Bruneliere
Date
August 2006

Definition at line 23 of file PFGeometry.h.

Member Enumeration Documentation

◆ Layers_t

Enumerator
BeamPipe 
PS1 
PS2 
ECALBarrel 
ECALEndcap 
HCALBarrel 
HCALEndcap 
HOBarrel 
NPoints 

Definition at line 25 of file PFGeometry.h.

◆ Surface_t

Enumerator
BeamPipeWall 
PS1Wall 
PS2Wall 
ECALInnerWall 
HCALInnerWall 
HCALOuterWall 
HOInnerWall 
HOOuterWall 
NSurfPoints 

Definition at line 37 of file PFGeometry.h.

Constructor & Destructor Documentation

◆ PFGeometry()

PFGeometry::PFGeometry ( )

constructor

Definition at line 7 of file PFGeometry.cc.

References BeamPipe, ECALBarrel, ECALEndcap, HCALBarrel, HCALEndcap, innerRadius_, innerZ_, outerRadius_, outerZ_, PS1, PS2, and tanTh_.

7  {
8  if (innerRadius_.empty()) {
9  // All distances are in cm
10  // BeamPipe
11  innerRadius_.push_back(2.5);
12  outerRadius_.push_back(2.5);
13  innerZ_.push_back(0.);
14  outerZ_.push_back(500.);
15  // PS1
16  innerRadius_.push_back(45.0);
17  outerRadius_.push_back(125.0);
18  innerZ_.push_back(303.16);
19  outerZ_.push_back(303.16);
20  // PS2
21  innerRadius_.push_back(45.0);
22  outerRadius_.push_back(125.0);
23  innerZ_.push_back(307.13);
24  outerZ_.push_back(307.13);
25  // ECALBarrel
26  innerRadius_.push_back(129.0);
27  outerRadius_.push_back(175.0);
28  innerZ_.push_back(0.);
29  outerZ_.push_back(304.5);
30  // ECALEndcap
31  innerRadius_.push_back(31.6);
32  outerRadius_.push_back(171.1);
33  innerZ_.push_back(317.0);
34  outerZ_.push_back(388.0);
35  // HCALBarrel
36  innerRadius_.push_back(183.0);
37  outerRadius_.push_back(285.0);
38  innerZ_.push_back(0.);
39  outerZ_.push_back(433.2);
40  // HCALEndcap
41  innerRadius_.push_back(31.6); // !!! Do not use : Probably wrong !!!
42  outerRadius_.push_back(285.0); // !!! Do not use : Probably wrong !!!
43  innerZ_.push_back(388.0);
44  outerZ_.push_back(560.0);
45 
46  // HO Barrel
47  innerRadius_.push_back(387.6);
48  outerRadius_.push_back(410.2);
49  innerZ_.push_back(0.);
50  outerZ_.push_back(700.25);
51 
52  // Define reference surfaces
54  tanTh_.push_back(outerRadius_[PS1] / outerZ_[PS1]);
55  tanTh_.push_back(outerRadius_[PS2] / outerZ_[PS2]);
59  }
60 }
std::vector< float > tanTh_
Definition: PFGeometry.h:75
std::vector< float > innerZ_
Definition: PFGeometry.h:73
std::vector< float > innerRadius_
Definition: PFGeometry.h:71
std::vector< float > outerRadius_
Definition: PFGeometry.h:72
std::vector< float > outerZ_
Definition: PFGeometry.h:74

◆ ~PFGeometry()

virtual PFGeometry::~PFGeometry ( )
inlinevirtual

destructor

Definition at line 53 of file PFGeometry.h.

53 {}

Member Function Documentation

◆ innerRadius()

float PFGeometry::innerRadius ( PFGeometry::Layers_t  layer) const
inline

return inner radius of a given layer

Definition at line 56 of file PFGeometry.h.

References innerRadius_, and pixelTopology::layer.

56 { return innerRadius_[layer]; }
constexpr std::array< uint8_t, layerIndexSize< TrackerTraits > > layer
std::vector< float > innerRadius_
Definition: PFGeometry.h:71

◆ innerZ()

float PFGeometry::innerZ ( PFGeometry::Layers_t  layer) const
inline

return inner position along z axis of a given layer

Definition at line 62 of file PFGeometry.h.

References innerZ_, and pixelTopology::layer.

62 { return innerZ_[layer]; }
std::vector< float > innerZ_
Definition: PFGeometry.h:73
constexpr std::array< uint8_t, layerIndexSize< TrackerTraits > > layer

◆ outerRadius()

float PFGeometry::outerRadius ( PFGeometry::Layers_t  layer) const
inline

return outer radius of a given layer

Definition at line 59 of file PFGeometry.h.

References pixelTopology::layer, and outerRadius_.

Referenced by PFTrackTransformer::addPoints(), and PFTrackTransformer::addPointsAndBrems().

59 { return outerRadius_[layer]; }
constexpr std::array< uint8_t, layerIndexSize< TrackerTraits > > layer
std::vector< float > outerRadius_
Definition: PFGeometry.h:72

◆ outerZ()

float PFGeometry::outerZ ( PFGeometry::Layers_t  layer) const
inline

return outer position along z axis of a given layer

Definition at line 65 of file PFGeometry.h.

References pixelTopology::layer, and outerZ_.

Referenced by PFTrackTransformer::addPoints(), and PFTrackTransformer::addPointsAndBrems().

65 { return outerZ_[layer]; }
constexpr std::array< uint8_t, layerIndexSize< TrackerTraits > > layer
std::vector< float > outerZ_
Definition: PFGeometry.h:74

◆ tanTh()

float PFGeometry::tanTh ( PFGeometry::Surface_t  iSurf) const
inline

return tan(theta) of the cylinder corner

Definition at line 68 of file PFGeometry.h.

References tanTh_.

68 { return tanTh_[unsigned(iSurf)]; }
std::vector< float > tanTh_
Definition: PFGeometry.h:75

Member Data Documentation

◆ innerRadius_

std::vector<float> PFGeometry::innerRadius_
private

Definition at line 71 of file PFGeometry.h.

Referenced by innerRadius(), and PFGeometry().

◆ innerZ_

std::vector<float> PFGeometry::innerZ_
private

Definition at line 73 of file PFGeometry.h.

Referenced by innerZ(), and PFGeometry().

◆ outerRadius_

std::vector<float> PFGeometry::outerRadius_
private

Definition at line 72 of file PFGeometry.h.

Referenced by outerRadius(), and PFGeometry().

◆ outerZ_

std::vector<float> PFGeometry::outerZ_
private

Definition at line 74 of file PFGeometry.h.

Referenced by outerZ(), and PFGeometry().

◆ tanTh_

std::vector<float> PFGeometry::tanTh_
private

Definition at line 75 of file PFGeometry.h.

Referenced by PFGeometry(), and tanTh().