CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PFGeometry.cc
Go to the documentation of this file.
6 
7 std::vector< float > PFGeometry::innerRadius_;
8 std::vector< float > PFGeometry::outerRadius_;
9 std::vector< float > PFGeometry::innerZ_;
10 std::vector< float > PFGeometry::outerZ_;
11 std::vector< ReferenceCountingPointer<BoundCylinder> > PFGeometry::cylinder_;
12 std::vector< ReferenceCountingPointer<BoundPlane> > PFGeometry::negativeDisk_;
13 std::vector< ReferenceCountingPointer<BoundPlane> > PFGeometry::positiveDisk_;
14 std::vector< float > PFGeometry::tanTh_;
15 
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
PFGeometry()
constructor
Definition: PFGeometry.cc:16
const double epsilon
static std::vector< ReferenceCountingPointer< Plane > > positiveDisk_
Definition: PFGeometry.h:95