CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Static 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, NPoints = 7
}
 
enum  Surface_t {
  BeamPipeWall = 0, PS1Wall = 1, PS2Wall = 2, ECALInnerWall = 3,
  HCALInnerWall = 4, HCALOuterWall = 5, NSurfPoints = 6
}
 

Public Member Functions

 PFGeometry ()
 constructor More...
 
virtual ~PFGeometry ()
 destructor More...
 

Static Public Member Functions

static const BoundCylinderbarrelBound (PFGeometry::Surface_t iSurf)
 return cylinder used to propagate to barrel More...
 
static const float innerRadius (PFGeometry::Layers_t layer)
 return inner radius of a given layer More...
 
static const float innerZ (PFGeometry::Layers_t layer)
 return inner position along z axis of a given layer More...
 
static const BoundPlanenegativeEndcapDisk (PFGeometry::Surface_t iSurf)
 return disk used to propagate to negative endcap More...
 
static const float outerRadius (PFGeometry::Layers_t layer)
 return outer radius of a given layer More...
 
static const float outerZ (PFGeometry::Layers_t layer)
 return outer position along z axis of a given layer More...
 
static const BoundPlanepositiveEndcapDisk (PFGeometry::Surface_t iSurf)
 return disk used to propagate to positive endcap More...
 
static float tanTh (PFGeometry::Surface_t iSurf)
 return tan(theta) of the cylinder corner More...
 

Static Private Attributes

static std::vector
< ReferenceCountingPointer
< BoundCylinder > > 
cylinder_
 
static std::vector< float > innerRadius_
 
static std::vector< float > innerZ_
 
static std::vector
< ReferenceCountingPointer
< BoundPlane > > 
negativeDisk_
 
static std::vector< float > outerRadius_
 
static std::vector< float > outerZ_
 
static std::vector
< ReferenceCountingPointer
< BoundPlane > > 
positiveDisk_
 
static 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 
NPoints 

Definition at line 25 of file PFGeometry.h.

Enumerator
BeamPipeWall 
PS1Wall 
PS2Wall 
ECALInnerWall 
HCALInnerWall 
HCALOuterWall 
NSurfPoints 

Definition at line 36 of file PFGeometry.h.

Constructor & Destructor Documentation

PFGeometry::PFGeometry ( )

constructor

Definition at line 16 of file PFGeometry.cc.

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

17 {
18  if (!innerRadius_.size()) {
19  // All distances are in cm
20  // BeamPipe
21  innerRadius_.push_back(2.5);
22  outerRadius_.push_back(2.5);
23  innerZ_.push_back(0.);
24  outerZ_.push_back(500.);
25  // PS1
26  innerRadius_.push_back(45.0);
27  outerRadius_.push_back(125.0);
28  innerZ_.push_back(303.16);
29  outerZ_.push_back(303.16);
30  // PS2
31  innerRadius_.push_back(45.0);
32  outerRadius_.push_back(125.0);
33  innerZ_.push_back(307.13);
34  outerZ_.push_back(307.13);
35  // ECALBarrel
36  innerRadius_.push_back(129.0);
37  outerRadius_.push_back(175.0);
38  innerZ_.push_back(0.);
39  outerZ_.push_back(304.5);
40  // ECALEndcap
41  innerRadius_.push_back(31.6);
42  outerRadius_.push_back(171.1);
43  innerZ_.push_back(317.0);
44  outerZ_.push_back(388.0);
45  // HCALBarrel
46  innerRadius_.push_back(183.0);
47  outerRadius_.push_back(285.0);
48  innerZ_.push_back(0.);
49  outerZ_.push_back(433.2);
50  // HCALEndcap
51  innerRadius_.push_back(31.6); // !!! Do not use : Probably wrong !!!
52  outerRadius_.push_back(285.0); // !!! Do not use : Probably wrong !!!
53  innerZ_.push_back(388.0);
54  outerZ_.push_back(560.0);
55 
56  // Define reference surfaces
57  const float epsilon = 0.001; // should not matter at all
59  // BeamPipe
60  cylinder_.push_back(new BoundCylinder(Surface::PositionType(0,0,0), rot,
61  SimpleCylinderBounds(innerRadius_[BeamPipe], innerRadius_[BeamPipe], -outerZ_[BeamPipe], outerZ_[BeamPipe])));
62  negativeDisk_.push_back(new BoundPlane(Surface::PositionType(0,0,-outerZ_[BeamPipe]), rot,
63  SimpleDiskBounds(0., innerRadius_[BeamPipe], -epsilon, epsilon)));
64  positiveDisk_.push_back(new BoundPlane(Surface::PositionType(0,0,outerZ_[BeamPipe]), rot,
65  SimpleDiskBounds(0., innerRadius_[BeamPipe], -epsilon, epsilon)));
66  tanTh_.push_back(innerRadius_[BeamPipe]/outerZ_[BeamPipe]);
67  // PS1Wall
68  cylinder_.push_back(new BoundCylinder(Surface::PositionType(0,0,0), rot,
70  negativeDisk_.push_back(new BoundPlane(Surface::PositionType(0,0,-outerZ_[PS1]), rot,
71  SimpleDiskBounds(0., outerRadius_[PS1], -epsilon, epsilon)));
72  positiveDisk_.push_back(new BoundPlane(Surface::PositionType(0,0,outerZ_[PS1]), rot,
73  SimpleDiskBounds(0., outerRadius_[PS1], -epsilon, epsilon)));
74  tanTh_.push_back(outerRadius_[PS1]/outerZ_[PS1]);
75  // PS2Wall
76  cylinder_.push_back(new BoundCylinder(Surface::PositionType(0,0,0), rot,
78  negativeDisk_.push_back(new BoundPlane(Surface::PositionType(0,0,-outerZ_[PS2]), rot,
79  SimpleDiskBounds(0., outerRadius_[PS2], -epsilon, epsilon)));
80  positiveDisk_.push_back(new BoundPlane(Surface::PositionType(0,0,outerZ_[PS2]), rot,
81  SimpleDiskBounds(0., outerRadius_[PS2], -epsilon, epsilon)));
82  tanTh_.push_back(outerRadius_[PS2]/outerZ_[PS2]);
83  // ECALInnerWall
84  cylinder_.push_back(new BoundCylinder(Surface::PositionType(0,0,0), rot,
86  negativeDisk_.push_back(new BoundPlane(Surface::PositionType(0,0,-innerZ_[ECALEndcap]), rot,
87  SimpleDiskBounds(0., innerRadius_[ECALBarrel], -epsilon, epsilon)));
88  positiveDisk_.push_back(new BoundPlane(Surface::PositionType(0,0,innerZ_[ECALEndcap]), rot,
89  SimpleDiskBounds(0., innerRadius_[ECALBarrel], -epsilon, epsilon)));
90  tanTh_.push_back(innerRadius_[ECALBarrel]/innerZ_[ECALEndcap]);
91  // HCALInnerWall
92  cylinder_.push_back(new BoundCylinder(Surface::PositionType(0,0,0), rot,
94  negativeDisk_.push_back(new BoundPlane(Surface::PositionType(0,0,-innerZ_[HCALEndcap]), rot,
95  SimpleDiskBounds(0., innerRadius_[HCALBarrel], -epsilon, epsilon)));
96  positiveDisk_.push_back(new BoundPlane(Surface::PositionType(0,0,innerZ_[HCALEndcap]), rot,
97  SimpleDiskBounds(0., innerRadius_[HCALBarrel], -epsilon, epsilon)));
98  tanTh_.push_back(innerRadius_[HCALBarrel]/innerZ_[HCALEndcap]);
99  // HCALOuterWall
100  cylinder_.push_back(new BoundCylinder(Surface::PositionType(0,0,0), rot,
101  SimpleCylinderBounds(outerRadius_[HCALBarrel], outerRadius_[HCALBarrel], -outerZ_[HCALEndcap], outerZ_[HCALEndcap])));
102  negativeDisk_.push_back(new BoundPlane(Surface::PositionType(0,0,-outerZ_[HCALEndcap]), rot,
103  SimpleDiskBounds(0., outerRadius_[HCALBarrel], -epsilon, epsilon)));
104  positiveDisk_.push_back(new BoundPlane(Surface::PositionType(0,0,outerZ_[HCALEndcap]), rot,
105  SimpleDiskBounds(0., outerRadius_[HCALBarrel], -epsilon, epsilon)));
106  tanTh_.push_back(outerRadius_[HCALBarrel]/outerZ_[HCALEndcap]);
107  }
108 }
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
static std::vector< float > innerZ_
Definition: PFGeometry.h:87
static std::vector< float > outerRadius_
Definition: PFGeometry.h:86
static std::vector< float > tanTh_
Definition: PFGeometry.h:93
static std::vector< float > innerRadius_
Definition: PFGeometry.h:85
const double epsilon
static std::vector< ReferenceCountingPointer< BoundPlane > > positiveDisk_
Definition: PFGeometry.h:92
virtual PFGeometry::~PFGeometry ( )
inlinevirtual

destructor

Definition at line 50 of file PFGeometry.h.

50 { }

Member Function Documentation

static const BoundCylinder& PFGeometry::barrelBound ( PFGeometry::Surface_t  iSurf)
inlinestatic

return cylinder used to propagate to barrel

Definition at line 69 of file PFGeometry.h.

References cylinder_.

70  { return *(cylinder_[unsigned(iSurf)]); }
static std::vector< ReferenceCountingPointer< BoundCylinder > > cylinder_
Definition: PFGeometry.h:90
static const float PFGeometry::innerRadius ( PFGeometry::Layers_t  layer)
inlinestatic

return inner radius of a given layer

Definition at line 53 of file PFGeometry.h.

References innerRadius_.

Referenced by DisplayManager::createCanvas(), and GoodSeedProducer::PSforTMVA().

54  { return innerRadius_[layer]; }
static std::vector< float > innerRadius_
Definition: PFGeometry.h:85
static const float PFGeometry::innerZ ( PFGeometry::Layers_t  layer)
inlinestatic

return inner position along z axis of a given layer

Definition at line 61 of file PFGeometry.h.

References innerZ_.

Referenced by DisplayManager::createCanvas().

62  { return innerZ_[layer]; }
static std::vector< float > innerZ_
Definition: PFGeometry.h:87
static const BoundPlane& PFGeometry::negativeEndcapDisk ( PFGeometry::Surface_t  iSurf)
inlinestatic

return disk used to propagate to negative endcap

Definition at line 73 of file PFGeometry.h.

References negativeDisk_.

74  { return *(negativeDisk_[unsigned(iSurf)]); }
static std::vector< ReferenceCountingPointer< BoundPlane > > negativeDisk_
Definition: PFGeometry.h:91
static const float PFGeometry::outerRadius ( PFGeometry::Layers_t  layer)
inlinestatic

return outer radius of a given layer

Definition at line 57 of file PFGeometry.h.

References outerRadius_.

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

58  { return outerRadius_[layer]; }
static std::vector< float > outerRadius_
Definition: PFGeometry.h:86
static const float PFGeometry::outerZ ( PFGeometry::Layers_t  layer)
inlinestatic

return outer position along z axis of a given layer

Definition at line 65 of file PFGeometry.h.

References outerZ_.

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

66  { return outerZ_[layer]; }
static std::vector< float > outerZ_
Definition: PFGeometry.h:88
static const BoundPlane& PFGeometry::positiveEndcapDisk ( PFGeometry::Surface_t  iSurf)
inlinestatic

return disk used to propagate to positive endcap

Definition at line 77 of file PFGeometry.h.

References positiveDisk_.

78  { return *(positiveDisk_[unsigned(iSurf)]); }
static std::vector< ReferenceCountingPointer< BoundPlane > > positiveDisk_
Definition: PFGeometry.h:92
static float PFGeometry::tanTh ( PFGeometry::Surface_t  iSurf)
inlinestatic

return tan(theta) of the cylinder corner

Definition at line 81 of file PFGeometry.h.

References tanTh_.

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

Member Data Documentation

std::vector< ReferenceCountingPointer< BoundCylinder > > PFGeometry::cylinder_
staticprivate

Definition at line 90 of file PFGeometry.h.

Referenced by barrelBound(), and PFGeometry().

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

Definition at line 85 of file PFGeometry.h.

Referenced by innerRadius(), and PFGeometry().

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

Definition at line 87 of file PFGeometry.h.

Referenced by innerZ(), and PFGeometry().

std::vector< ReferenceCountingPointer< BoundPlane > > PFGeometry::negativeDisk_
staticprivate

Definition at line 91 of file PFGeometry.h.

Referenced by negativeEndcapDisk(), and PFGeometry().

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

Definition at line 86 of file PFGeometry.h.

Referenced by outerRadius(), and PFGeometry().

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

Definition at line 88 of file PFGeometry.h.

Referenced by outerZ(), and PFGeometry().

std::vector< ReferenceCountingPointer< BoundPlane > > PFGeometry::positiveDisk_
staticprivate

Definition at line 92 of file PFGeometry.h.

Referenced by PFGeometry(), and positiveEndcapDisk().

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

Definition at line 93 of file PFGeometry.h.

Referenced by PFGeometry(), and tanTh().