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, 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

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

Static Public Member Functions

static const CylinderbarrelBound (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 PlanenegativeEndcapDisk (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 PlanepositiveEndcapDisk (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
< Cylinder > > 
cylinder_
 
static std::vector< float > innerRadius_
 
static std::vector< float > innerZ_
 
static std::vector
< ReferenceCountingPointer
< Plane > > 
negativeDisk_
 
static std::vector< float > outerRadius_
 
static std::vector< float > outerZ_
 
static std::vector
< ReferenceCountingPointer
< Plane > > 
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 
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 16 of file PFGeometry.cc.

References BeamPipe, cylinder_, ECALBarrel, ECALEndcap, epsilon, HCALBarrel, HCALEndcap, innerRadius_, innerZ_, negativeDisk_, outerRadius_, outerZ_, positiveDisk_, PS1, PS2, makeMuonMisalignmentScenario::rot, 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  // HO Barrel
57  innerRadius_.push_back(387.6);
58  outerRadius_.push_back(410.2);
59  innerZ_.push_back(0.);
60  outerZ_.push_back(700.25);
61 
62  // Define reference surfaces
63  const float epsilon = 0.001; // should not matter at all
65  // BeamPipe
66  cylinder_.push_back(new BoundCylinder(Surface::PositionType(0,0,0), rot,
67  SimpleCylinderBounds(innerRadius_[BeamPipe], innerRadius_[BeamPipe], -outerZ_[BeamPipe], outerZ_[BeamPipe])));
68  negativeDisk_.push_back(new Disk(Surface::PositionType(0,0,-outerZ_[BeamPipe]), rot,
69  SimpleDiskBounds(0., innerRadius_[BeamPipe], -epsilon, epsilon)));
70  positiveDisk_.push_back(new Disk(Surface::PositionType(0,0,outerZ_[BeamPipe]), rot,
71  SimpleDiskBounds(0., innerRadius_[BeamPipe], -epsilon, epsilon)));
72  tanTh_.push_back(innerRadius_[BeamPipe]/outerZ_[BeamPipe]);
73  // PS1Wall
74  cylinder_.push_back(new BoundCylinder(Surface::PositionType(0,0,0), rot,
76  negativeDisk_.push_back(new Disk(Surface::PositionType(0,0,-outerZ_[PS1]), rot,
77  SimpleDiskBounds(0., outerRadius_[PS1], -epsilon, epsilon)));
78  positiveDisk_.push_back(new Disk(Surface::PositionType(0,0,outerZ_[PS1]), rot,
79  SimpleDiskBounds(0., outerRadius_[PS1], -epsilon, epsilon)));
80  tanTh_.push_back(outerRadius_[PS1]/outerZ_[PS1]);
81  // PS2Wall
82  cylinder_.push_back(new BoundCylinder(Surface::PositionType(0,0,0), rot,
84  negativeDisk_.push_back(new Disk(Surface::PositionType(0,0,-outerZ_[PS2]), rot,
85  SimpleDiskBounds(0., outerRadius_[PS2], -epsilon, epsilon)));
86  positiveDisk_.push_back(new Disk(Surface::PositionType(0,0,outerZ_[PS2]), rot,
87  SimpleDiskBounds(0., outerRadius_[PS2], -epsilon, epsilon)));
88  tanTh_.push_back(outerRadius_[PS2]/outerZ_[PS2]);
89  // ECALInnerWall
90  cylinder_.push_back(new BoundCylinder(Surface::PositionType(0,0,0), rot,
92  negativeDisk_.push_back(new Disk(Surface::PositionType(0,0,-innerZ_[ECALEndcap]), rot,
93  SimpleDiskBounds(0., innerRadius_[ECALBarrel], -epsilon, epsilon)));
94  positiveDisk_.push_back(new Disk(Surface::PositionType(0,0,innerZ_[ECALEndcap]), rot,
95  SimpleDiskBounds(0., innerRadius_[ECALBarrel], -epsilon, epsilon)));
96  tanTh_.push_back(innerRadius_[ECALBarrel]/innerZ_[ECALEndcap]);
97  // HCALInnerWall
98  cylinder_.push_back(new BoundCylinder(Surface::PositionType(0,0,0), rot,
100  negativeDisk_.push_back(new Disk(Surface::PositionType(0,0,-innerZ_[HCALEndcap]), rot,
101  SimpleDiskBounds(0., innerRadius_[HCALBarrel], -epsilon, epsilon)));
102  positiveDisk_.push_back(new Disk(Surface::PositionType(0,0,innerZ_[HCALEndcap]), rot,
103  SimpleDiskBounds(0., innerRadius_[HCALBarrel], -epsilon, epsilon)));
104  tanTh_.push_back(innerRadius_[HCALBarrel]/innerZ_[HCALEndcap]);
105  // HCALOuterWall
106  cylinder_.push_back(new BoundCylinder(Surface::PositionType(0,0,0), rot,
107  SimpleCylinderBounds(outerRadius_[HCALBarrel], outerRadius_[HCALBarrel], -outerZ_[HCALEndcap], outerZ_[HCALEndcap])));
108  negativeDisk_.push_back(new Disk(Surface::PositionType(0,0,-outerZ_[HCALEndcap]), rot,
109  SimpleDiskBounds(0., outerRadius_[HCALBarrel], -epsilon, epsilon)));
110  positiveDisk_.push_back(new Disk(Surface::PositionType(0,0,outerZ_[HCALEndcap]), rot,
111  SimpleDiskBounds(0., outerRadius_[HCALBarrel], -epsilon, epsilon)));
112  tanTh_.push_back(outerRadius_[HCALBarrel]/outerZ_[HCALEndcap]);
113  }
114 }
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
Cylinder BoundCylinder
Definition: BoundCylinder.h:19
static std::vector< float > innerZ_
Definition: PFGeometry.h:90
static std::vector< float > outerRadius_
Definition: PFGeometry.h:89
static std::vector< float > tanTh_
Definition: PFGeometry.h:96
static std::vector< float > innerRadius_
Definition: PFGeometry.h:88
const double epsilon
static std::vector< ReferenceCountingPointer< Plane > > positiveDisk_
Definition: PFGeometry.h:95
virtual PFGeometry::~PFGeometry ( )
inlinevirtual

destructor

Definition at line 53 of file PFGeometry.h.

53 { }

Member Function Documentation

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

return cylinder used to propagate to barrel

Definition at line 72 of file PFGeometry.h.

References cylinder_.

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

return inner radius of a given layer

Definition at line 56 of file PFGeometry.h.

References innerRadius_.

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

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

return inner position along z axis of a given layer

Definition at line 64 of file PFGeometry.h.

References innerZ_.

Referenced by DisplayManager::createCanvas().

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

return disk used to propagate to negative endcap

Definition at line 76 of file PFGeometry.h.

References negativeDisk_.

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

return outer radius of a given layer

Definition at line 60 of file PFGeometry.h.

References outerRadius_.

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

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

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]; }
static std::vector< float > outerZ_
Definition: PFGeometry.h:91
static const Plane& PFGeometry::positiveEndcapDisk ( PFGeometry::Surface_t  iSurf)
inlinestatic

return disk used to propagate to positive endcap

Definition at line 80 of file PFGeometry.h.

References positiveDisk_.

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

return tan(theta) of the cylinder corner

Definition at line 84 of file PFGeometry.h.

References tanTh_.

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

Member Data Documentation

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

Definition at line 93 of file PFGeometry.h.

Referenced by barrelBound(), and PFGeometry().

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

Definition at line 88 of file PFGeometry.h.

Referenced by innerRadius(), and PFGeometry().

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

Definition at line 90 of file PFGeometry.h.

Referenced by innerZ(), and PFGeometry().

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

Definition at line 94 of file PFGeometry.h.

Referenced by negativeEndcapDisk(), and PFGeometry().

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

Definition at line 89 of file PFGeometry.h.

Referenced by outerRadius(), and PFGeometry().

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

Definition at line 91 of file PFGeometry.h.

Referenced by outerZ(), and PFGeometry().

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

Definition at line 95 of file PFGeometry.h.

Referenced by PFGeometry(), and positiveEndcapDisk().

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

Definition at line 96 of file PFGeometry.h.

Referenced by PFGeometry(), and tanTh().