CMS 3D CMS Logo

TrackerInteractionGeometry.h
Go to the documentation of this file.
1 #ifndef FastSimulation_TrackerSetup_TrackerInteractionGeometry_H
2 #define FastSimulation_TrackerSetup_TrackerInteractionGeometry_H
3 // v0 who ? when ?
4 // 11 Dec 2003 Florian Beaudette. Removed the surfaces corresponding to ECAL
5 // This will carried out by the FamosTrajectoryManager
6 // 12 Oct 2006 Patrick Janot. Removed hardcoded active geometry & rings
7 // Removed RecHit smearing parameterization
8 // 16 Nov 2007 Patrick Janot. Make the whole thing configurable
9 
10 //FAMOS Headers
12 
13 #include <list>
14 #include <vector>
15 
16 class MediumProperties;
18 
19 namespace edm {
20  class ParameterSet;
21 }
22 
24 public:
25  enum FirstCylinders { PXB = 0, PXD = 3, TIB = 5, TID = 9, TOB = 12, TEC = 18 };
26 
28  TrackerInteractionGeometry(const edm::ParameterSet &trackerMaterial, const GeometricSearchTracker *geomSearchTracker);
29 
32 
35 
37  inline std::list<TrackerLayer>::const_iterator cylinderBegin() const { return _theCylinders.begin(); }
38 
40  inline std::list<TrackerLayer>::const_iterator cylinderEnd() const { return _theCylinders.end(); }
41 
43  inline const int nCylinders() const { return _theCylinders.size(); }
44 
45 private:
46  // Fudge factors to apply to each layer material (private use only)
47  std::vector<double> fudgeFactors(unsigned layerNr);
48  std::vector<double> minDim(unsigned layerNr);
49  std::vector<double> maxDim(unsigned layerNr);
50 
51 private:
53  std::list<TrackerLayer> _theCylinders;
54 
57  unsigned int version;
59  std::vector<double> beamPipeThickness;
61  std::vector<double> pxbThickness;
63  std::vector<double> pxb1CablesThickness;
64  std::vector<double> pxb2CablesThickness;
65  std::vector<double> pxb3CablesThickness;
67  std::vector<double> pxbOutCables1Thickness;
68  std::vector<double> pxbOutCables2Thickness;
70  std::vector<double> pxdThickness;
72  std::vector<double> pxdOutCables1Thickness;
73  std::vector<double> pxdOutCables2Thickness;
75  std::vector<double> tibLayer1Thickness;
76  std::vector<double> tibLayer2Thickness;
77  std::vector<double> tibLayer3Thickness;
78  std::vector<double> tibLayer4Thickness;
80  std::vector<double> tibOutCables1Thickness;
81  std::vector<double> tibOutCables2Thickness;
83  std::vector<double> tidLayer1Thickness;
84  std::vector<double> tidLayer2Thickness;
85  std::vector<double> tidLayer3Thickness;
87  std::vector<double> tidOutsideThickness;
89  std::vector<double> tobInsideThickness;
91  std::vector<double> tobLayer1Thickness;
92  std::vector<double> tobLayer2Thickness;
93  std::vector<double> tobLayer3Thickness;
94  std::vector<double> tobLayer4Thickness;
95  std::vector<double> tobLayer5Thickness;
96  std::vector<double> tobLayer6Thickness;
97  // TOB services (endcap)
98  std::vector<double> tobOutsideThickness;
99  // Tracker EndCap disks layers 1-9
100  std::vector<double> tecLayerThickness;
101  // TOB outside wall (barrel)
102  std::vector<double> barrelCablesThickness;
103  // TEC outside wall (endcap)
104  std::vector<double> endcapCables1Thickness;
105  std::vector<double> endcapCables2Thickness;
106 
109  std::vector<double> beamPipeRadius;
110  std::vector<double> beamPipeLength;
112  std::vector<double> pxb1CablesInnerRadius;
113  std::vector<double> pxb2CablesInnerRadius;
114  std::vector<double> pxb3CablesInnerRadius;
116  std::vector<double> pxbOutCables1InnerRadius;
117  std::vector<double> pxbOutCables1OuterRadius;
118  std::vector<double> pxbOutCables1ZPosition;
119  std::vector<double> pxbOutCables2InnerRadius;
120  std::vector<double> pxbOutCables2OuterRadius;
121  std::vector<double> pxbOutCables2ZPosition;
123  std::vector<double> pixelOutCablesRadius;
124  std::vector<double> pixelOutCablesLength;
125  std::vector<double> pixelOutCablesInnerRadius;
126  std::vector<double> pixelOutCablesOuterRadius;
127  std::vector<double> pixelOutCablesZPosition;
129  std::vector<double> tibOutCables1InnerRadius;
130  std::vector<double> tibOutCables1OuterRadius;
131  std::vector<double> tibOutCables1ZPosition;
132  std::vector<double> tibOutCables2InnerRadius;
133  std::vector<double> tibOutCables2OuterRadius;
134  std::vector<double> tibOutCables2ZPosition;
136  std::vector<double> tobInCablesRadius;
137  std::vector<double> tobInCablesLength;
139  std::vector<double> tidOutCablesInnerRadius;
140  std::vector<double> tidOutCablesZPosition;
142  std::vector<double> tobOutCablesInnerRadius;
143  std::vector<double> tobOutCablesOuterRadius;
144  std::vector<double> tobOutCablesZPosition;
145  std::vector<double> tobOutCablesRadius;
146  std::vector<double> tobOutCablesLength;
148  std::vector<double> tecOutCables1InnerRadius;
149  std::vector<double> tecOutCables1OuterRadius;
150  std::vector<double> tecOutCables1ZPosition;
151  std::vector<double> tecOutCables2InnerRadius;
152  std::vector<double> tecOutCables2OuterRadius;
153  std::vector<double> tecOutCables2ZPosition;
154 
155  // Fudge factors for layer inhomogeneities
156  std::vector<unsigned int> fudgeLayer;
157  std::vector<double> fudgeMin;
158  std::vector<double> fudgeMax;
159  std::vector<double> fudgeFactor;
214 
215  std::vector<MediumProperties *> _mediumProperties;
216 
217  //use hardcoded pre-Phase I upgrade tracker geometry or use flexible geometry
219 };
220 #endif
std::vector< double > pixelOutCablesLength
MediumProperties * _theMPEndcap
The Tracker EndCap layers.
std::vector< double > tibOutCables2OuterRadius
std::vector< double > pxbOutCables2OuterRadius
MediumProperties * _theMPTOB3
The tracker outer barrel layer 3.
std::vector< double > tobLayer5Thickness
const int nCylinders() const
Returns the number of cylinders in the Tracker.
std::vector< double > pxdThickness
Pixel Disks 1-2.
std::vector< double > pxbThickness
Pixel Barrel Layers 1-3.
std::vector< double > pixelOutCablesOuterRadius
std::vector< double > pxbOutCables1Thickness
Pixel Barrel outside cables.
std::vector< double > tidLayer3Thickness
std::vector< double > tibOutCables1Thickness
TIB outside services (endcap)
MediumProperties * _theMPTOB4
The tracker outer barrel layer 4.
std::vector< double > pxb1CablesInnerRadius
Cables and Services at the end of PIXB1,2,3 ("disk")
std::vector< MediumProperties * > _mediumProperties
std::vector< double > tecOutCables2ZPosition
std::vector< double > pxbOutCables1ZPosition
std::list< TrackerLayer > _theCylinders
The list of tracker (sensistive or not) layers.
MediumProperties * _theMPPixelEndcap
The endcap pixel layers.
std::vector< double > beamPipeThickness
Beam Pipe.
std::vector< double > pxb3CablesThickness
std::vector< double > tibOutCables1OuterRadius
std::vector< double > pixelOutCablesZPosition
std::vector< double > pxbOutCables2InnerRadius
MediumProperties * _theMPTIDEOutside
Some material around the tracker inner disks (disk)
std::vector< double > pxb1CablesThickness
Pixel Barrel services at the end of layers 1-3.
std::vector< double > pxb3CablesInnerRadius
std::vector< double > pixelOutCablesRadius
Pixel Outside walls and cables (barrel and endcaps)
MediumProperties * _theMPTOB1
The tracker outer barrel layer 1.
std::vector< double > tobOutCablesRadius
MediumProperties * _theMPBarrelOutside
Cables around the tracker (one barrel, two disks)
std::vector< double > tobLayer3Thickness
std::vector< double > tobOutCablesInnerRadius
Tracker Outer Barrel Outside Cables and walls (barrel and endcaps)
std::vector< double > tecOutCables2OuterRadius
std::vector< double > tibOutCables2InnerRadius
std::vector< double > tobInsideThickness
TOB inside wall (barrel)
std::vector< double > tidOutCablesZPosition
std::vector< double > pxb2CablesInnerRadius
MediumProperties * _theMPTOB6
The tracker outer barrel layer 6.
std::vector< double > tobOutCablesLength
MediumProperties * _theMPTOBEOutside
Some material around the tracker outer barrel (disk)
std::vector< double > minDim(unsigned layerNr)
std::vector< double > barrelCablesThickness
std::vector< double > pixelOutCablesInnerRadius
std::vector< double > pxdOutCables1Thickness
Pixel Endcap outside cables.
std::vector< double > tobLayer6Thickness
MediumProperties * _theMPTOB2
The tracker outer barrel layer 2.
std::vector< double > endcapCables2Thickness
std::vector< double > pxbOutCables1OuterRadius
MediumProperties * _theMPTIBEOutside1
Some material around the tracker inner barrel (disk)
std::vector< double > tibLayer2Thickness
std::vector< double > fudgeFactors(unsigned layerNr)
MediumProperties * _theMPPixelOutside1
A series of cables/walls to reproduce the full sim.
MediumProperties * _theMPPixelBarrel
The barrel pixel layers.
MediumProperties * _theMPTIB2
The tracker inner barrel layer 2.
std::vector< double > tibLayer4Thickness
std::vector< double > tibOutCables1ZPosition
MediumProperties * _theMPTIB1
The tracker inner barrel layer 1.
std::vector< double > tidLayer2Thickness
std::vector< double > tibLayer1Thickness
Tracker Inner barrel layers 1-4.
std::vector< double > tecOutCables1OuterRadius
std::vector< double > tobLayer1Thickness
Tracker Outer barrel layers 1-6.
std::list< TrackerLayer >::const_iterator cylinderEnd() const
Returns the last pointer in the cylinder list.
std::vector< double > tidOutsideThickness
TID outside wall (endcap)
MediumProperties * _theMPTOB5
The tracker outer barrel layer 5.
std::vector< double > tibLayer3Thickness
std::vector< double > pxbOutCables2Thickness
std::vector< double > tibOutCables2Thickness
MediumProperties * _theMPInner1
The tracker inner disks.
std::vector< double > tobLayer4Thickness
std::vector< double > tecOutCables1ZPosition
std::vector< double > endcapCables1Thickness
std::vector< double > tibOutCables1InnerRadius
Tracker Inner Barrel Outside Cables and walls (endcap)
std::vector< double > pxbOutCables1InnerRadius
Pixel Barrel Outside walls and cables.
std::list< TrackerLayer >::const_iterator cylinderBegin() const
Returns the first pointer in the cylinder list.
std::vector< unsigned int > fudgeLayer
TrackerInteractionGeometry(const edm::ParameterSet &trackerMaterial, const GeometricSearchTracker *geomSearchTracker)
Constructor : get the configurable parameters.
std::vector< double > tobLayer2Thickness
std::vector< double > tobInCablesRadius
Tracker outer barrel Inside wall (barrel)
std::vector< double > tobOutCablesZPosition
HLT enums.
std::vector< double > pxbOutCables2ZPosition
std::vector< double > tidOutCablesInnerRadius
Tracker Inner Disks Outside Cables and walls.
std::vector< double > maxDim(unsigned layerNr)
std::vector< double > tecOutCables1InnerRadius
Tracker Endcaps Outside Cables and walls.
std::vector< double > tibOutCables2ZPosition
std::vector< double > pxdOutCables2Thickness
MediumProperties * _theMPTOBBInside
Some material in front of the tracker outer barrel (cylinder)
std::vector< double > tobOutsideThickness
MediumProperties * _theMPTIB4
The tracker inner barrel layer 4.
std::vector< double > tidLayer1Thickness
Tracker Inner disks layers 1-3.
std::vector< double > tecOutCables2InnerRadius
std::vector< double > pxb2CablesThickness
MediumProperties * _theMPTIB3
The tracker inner barrel layer 3.
std::vector< double > tobOutCablesOuterRadius