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 {
25 
26  public:
27 
28  enum FirstCylinders { PXB=0,PXD=3,TIB=5,TID=9,TOB=12,TEC=18 };
29 
31  TrackerInteractionGeometry(const edm::ParameterSet& trackerMaterial,
32  const GeometricSearchTracker* geomSearchTracker);
33 
36 
39 
41  inline std::list<TrackerLayer>::const_iterator cylinderBegin() const
42  { return _theCylinders.begin(); }
43 
45  inline std::list<TrackerLayer>::const_iterator cylinderEnd() const
46  { return _theCylinders.end(); }
47 
49  inline const int nCylinders() const
50  { return _theCylinders.size(); }
51 
52  private:
53 
54  // Fudge factors to apply to each layer material (private use only)
55  std::vector<double> fudgeFactors(unsigned layerNr);
56  std::vector<double> minDim(unsigned layerNr);
57  std::vector<double> maxDim(unsigned layerNr);
58 
59  private:
60 
62  std::list<TrackerLayer> _theCylinders;
63 
66  unsigned int version;
68  std::vector<double> beamPipeThickness;
70  std::vector<double> pxbThickness;
72  std::vector<double> pxb1CablesThickness;
73  std::vector<double> pxb2CablesThickness;
74  std::vector<double> pxb3CablesThickness;
76  std::vector<double> pxbOutCables1Thickness;
77  std::vector<double> pxbOutCables2Thickness;
79  std::vector<double> pxdThickness;
81  std::vector<double> pxdOutCables1Thickness;
82  std::vector<double> pxdOutCables2Thickness;
84  std::vector<double> tibLayer1Thickness;
85  std::vector<double> tibLayer2Thickness;
86  std::vector<double> tibLayer3Thickness;
87  std::vector<double> tibLayer4Thickness;
89  std::vector<double> tibOutCables1Thickness;
90  std::vector<double> tibOutCables2Thickness;
92  std::vector<double> tidLayer1Thickness;
93  std::vector<double> tidLayer2Thickness;
94  std::vector<double> tidLayer3Thickness;
96  std::vector<double> tidOutsideThickness;
98  std::vector<double> tobInsideThickness;
100  std::vector<double> tobLayer1Thickness;
101  std::vector<double> tobLayer2Thickness;
102  std::vector<double> tobLayer3Thickness;
103  std::vector<double> tobLayer4Thickness;
104  std::vector<double> tobLayer5Thickness;
105  std::vector<double> tobLayer6Thickness;
106  // TOB services (endcap)
107  std::vector<double> tobOutsideThickness;
108  // Tracker EndCap disks layers 1-9
109  std::vector<double> tecLayerThickness;
110  // TOB outside wall (barrel)
111  std::vector<double> barrelCablesThickness;
112  // TEC outside wall (endcap)
113  std::vector<double> endcapCables1Thickness;
114  std::vector<double> endcapCables2Thickness;
115 
118  std::vector<double> beamPipeRadius;
119  std::vector<double> beamPipeLength;
121  std::vector<double> pxb1CablesInnerRadius;
122  std::vector<double> pxb2CablesInnerRadius;
123  std::vector<double> pxb3CablesInnerRadius;
125  std::vector<double> pxbOutCables1InnerRadius;
126  std::vector<double> pxbOutCables1OuterRadius;
127  std::vector<double> pxbOutCables1ZPosition;
128  std::vector<double> pxbOutCables2InnerRadius;
129  std::vector<double> pxbOutCables2OuterRadius;
130  std::vector<double> pxbOutCables2ZPosition;
132  std::vector<double> pixelOutCablesRadius;
133  std::vector<double> pixelOutCablesLength;
134  std::vector<double> pixelOutCablesInnerRadius;
135  std::vector<double> pixelOutCablesOuterRadius;
136  std::vector<double> pixelOutCablesZPosition;
138  std::vector<double> tibOutCables1InnerRadius;
139  std::vector<double> tibOutCables1OuterRadius;
140  std::vector<double> tibOutCables1ZPosition;
141  std::vector<double> tibOutCables2InnerRadius;
142  std::vector<double> tibOutCables2OuterRadius;
143  std::vector<double> tibOutCables2ZPosition;
145  std::vector<double> tobInCablesRadius;
146  std::vector<double> tobInCablesLength;
148  std::vector<double> tidOutCablesInnerRadius;
149  std::vector<double> tidOutCablesZPosition;
151  std::vector<double> tobOutCablesInnerRadius;
152  std::vector<double> tobOutCablesOuterRadius;
153  std::vector<double> tobOutCablesZPosition;
154  std::vector<double> tobOutCablesRadius;
155  std::vector<double> tobOutCablesLength;
157  std::vector<double> tecOutCables1InnerRadius;
158  std::vector<double> tecOutCables1OuterRadius;
159  std::vector<double> tecOutCables1ZPosition;
160  std::vector<double> tecOutCables2InnerRadius;
161  std::vector<double> tecOutCables2OuterRadius;
162  std::vector<double> tecOutCables2ZPosition;
163 
164  // Fudge factors for layer inhomogeneities
165  std::vector<unsigned int> fudgeLayer;
166  std::vector<double> fudgeMin;
167  std::vector<double> fudgeMax;
168  std::vector<double> fudgeFactor;
223 
224  std::vector<MediumProperties *> _mediumProperties;
225 
226  //use hardcoded pre-Phase I upgrade tracker geometry or use flexible geometry
228 
229 };
230 #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
std::vector< double > pxdThickness
Pixel Disks 1-2.
std::vector< double > pxbThickness
Pixel Barrel Layers 1-3.
const int nCylinders() const
Returns the number of cylinders in the Tracker.
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::list< TrackerLayer >::const_iterator cylinderEnd() const
Returns the last pointer in the cylinder list.
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 > 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
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::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::vector< unsigned int > fudgeLayer
std::vector< double > tobLayer2Thickness
std::vector< double > tobInCablesRadius
Tracker outer barrel Inside wall (barrel)
std::list< TrackerLayer >::const_iterator cylinderBegin() const
Returns the first pointer in the cylinder list.
std::vector< double > tobOutCablesZPosition
HLT enums.
std::vector< double > pxbOutCables2ZPosition
std::vector< double > tidOutCablesInnerRadius
Tracker Inner Disks Outside Cables and walls.
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