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

Enumerator
BeamPipe 
PS1 
PS2 
ECALBarrel 
ECALEndcap 
HCALBarrel 
HCALEndcap 
HOBarrel 
NPoints 

Definition at line 25 of file PFGeometry.h.

Enumerator
BeamPipeWall 
PS1Wall 
PS2Wall 
ECALInnerWall 
HCALInnerWall 
HCALOuterWall 
HOInnerWall 
HOOuterWall 
NSurfPoints 

Definition at line 37 of file PFGeometry.h.

Constructor & Destructor Documentation

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_.

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

destructor

Definition at line 53 of file PFGeometry.h.

53 { }

Member Function Documentation

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_.

57  { return innerRadius_[layer]; }
std::vector< float > innerRadius_
Definition: PFGeometry.h:76
float PFGeometry::innerZ ( PFGeometry::Layers_t  layer) const
inline

return inner position along z axis of a given layer

Definition at line 64 of file PFGeometry.h.

References innerZ_.

65  { return innerZ_[layer]; }
std::vector< float > innerZ_
Definition: PFGeometry.h:78
float PFGeometry::outerRadius ( PFGeometry::Layers_t  layer) const
inline

return outer radius of a given layer

Definition at line 60 of file PFGeometry.h.

References outerRadius_.

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

61  { return outerRadius_[layer]; }
std::vector< float > outerRadius_
Definition: PFGeometry.h:77
float PFGeometry::outerZ ( PFGeometry::Layers_t  layer) const
inline

return outer position along z axis of a given layer

Definition at line 68 of file PFGeometry.h.

References outerZ_.

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

69  { return outerZ_[layer]; }
std::vector< float > outerZ_
Definition: PFGeometry.h:79
float PFGeometry::tanTh ( PFGeometry::Surface_t  iSurf) const
inline

return tan(theta) of the cylinder corner

Definition at line 72 of file PFGeometry.h.

References tanTh_.

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

Member Data Documentation

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

Definition at line 76 of file PFGeometry.h.

Referenced by innerRadius(), and PFGeometry().

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

Definition at line 78 of file PFGeometry.h.

Referenced by innerZ(), and PFGeometry().

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

Definition at line 77 of file PFGeometry.h.

Referenced by outerRadius(), and PFGeometry().

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

Definition at line 79 of file PFGeometry.h.

Referenced by outerZ(), and PFGeometry().

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

Definition at line 80 of file PFGeometry.h.

Referenced by PFGeometry(), and tanTh().