DD4hep - The AIDA detector description toolkit for high energy physics experiments
DD4hep  Rev:Unversioneddirectory
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DetectorData.h
Go to the documentation of this file.
1 #ifndef DDRec_DetectorData_H_
2 #define DDRec_DetectorData_H_
3 
4 #include <bitset>
5 #include <ostream>
6 
7 #include "DD4hep/Detector.h"
8 
9 namespace DD4hep {
10  namespace DDRec {
11 
21  template< class T>
22  struct StructExtension : public T {
23  StructExtension() : T() { }
25  StructExtension(const T& t) : T(t) {}
28  };
29 
42  double zHalf ;
44  double rMin ;
46  double rMax ;
48  double driftLength ;
50  double rMinReadout ;
52  double rMaxReadout ;
58  double padHeight ;
60  double padWidth ;
62  double maxRow ;
64  double padGap ;
65  };
67 
68  std::ostream& operator<<( std::ostream& io , const FixedPadSizeTPCData& d ) ;
69 
70 
80  struct ZPlanarStruct{
82  double zHalfShell ;
84  double gapShell ;
86  double rInnerShell ;
88  double rOuterShell ;
89 
91  double widthStrip ;
93  double lengthStrip ;
95  double pitchStrip ;
97  double angleStrip ;
98 
102  struct LayerLayout{
103 
104  // default c'tor with zero initialization
106  ladderNumber(0),
107  phi0(0),
108  sensorsPerLadder(0),
109  lengthSensor(0),
110  distanceSupport(0),
111  thicknessSupport(0),
112  offsetSupport(0),
113  widthSupport(0),
114  zHalfSupport(0),
117  offsetSensitive(0),
118  widthSensitive(0),
119  zHalfSensitive(0) {
120  }
121 
122 
125 
127  double phi0 ;
128 
132  double lengthSensor ;
133 
139  double offsetSupport ;
141  double widthSupport ;
143  double zHalfSupport ;
144 
150  double offsetSensitive ;
152  double widthSensitive ;
154  double zHalfSensitive ;
155  } ;
156 
157  std::vector<LayerLayout> layers ;
158 
159  } ;
161 
162  std::ostream& operator<<( std::ostream& io , const ZPlanarData& d ) ;
163 
164 
165 
176 
178  double widthStrip ;
180  double lengthStrip ;
182  double pitchStrip ;
184  double angleStrip ;
185 
187  struct SensorType{
188  enum {
191  };
192  } ;
193 
197  struct LayerLayout{
198 
200  petalHalfAngle(0),
201  alphaPetal(0),
202  zPosition(0),
203  petalNumber(0),
204  sensorsPerPetal(0),
205  typeFlags(0),
206  phi0(0),
207  zOffsetSupport(0),
208  distanceSupport(0),
209  thicknessSupport(0),
212  lengthSupport(0),
213  zOffsetSensitive(0),
218  lengthSensitive(0) {
219  }
220 
222  double petalHalfAngle ;
223 
227  double alphaPetal ;
228 
230  double zPosition ;
231 
234 
237 
239  std::bitset<32> typeFlags ;
240 
242  double phi0 ;
243 
247  double zOffsetSupport ;
257  double lengthSupport ;
258 
273  } ;
274 
275  std::vector<LayerLayout> layers ;
276 
277  } ;
279 
280  std::ostream& operator<<( std::ostream& io , const ZDiskPetalsData& d ) ;
281 
293 
296 
297  struct Section{
298 
300  rInner(0),
301  rOuter(0),
302  zPos(0){
303  }
304 
306  double rInner ;
308  double rOuter ;
310  double zPos ;
311  } ;
312 
317  std::vector<Section> sections ;
318 
319  } ;
320 
322 
323  std::ostream& operator<<( std::ostream& io , const ConicalSupportData& d ) ;
324 
325 
335 
340  };
341 
344 
346  double extent[4] ;
347 
352 
357 
366  double outer_phi0 ;
367 
370  double inner_phi0 ;
371 
372 
376  double phi0 ;
377 
379  double gap0;
380 
382  double gap1;
383 
385  double gap2;
386 
387 
388  struct Layer {
389 
390  Layer() :
391  distance(0),
392  phi0(0),
398  inner_thickness(0),
399  outer_thickness(0),
401  cellSize0(0),
402  cellSize1(0) {
403  }
404 
406  double distance;
407 
409  double phi0 ;
410 
413 
418 
423 
426 
429 
432 
433 
434 
436  double cellSize0 ;
438  double cellSize1 ;
439  } ;
440 
441  std::vector<Layer> layers ;
442  } ;
443 
445 
446  std::ostream& operator<<( std::ostream& io , const LayeredCalorimeterData& d ) ;
447 
448 
449  } /* namespace DDRec */
450 } /* namespace DD4hep */
451 
452 #endif // DDRec_DetectorData_H_
double petalHalfAngle
half angle covered by petal
Definition: DetectorData.h:222
double distanceSensitive
The distance of the petal sensitive from the z-axis.
Definition: DetectorData.h:264
double gap0
Gap between modules(eg. stave gap) in the phi-direction.
Definition: DetectorData.h:379
double offsetSensitive
The offset of the ladder sensitive, i.e. the shift in the direction of increasing phi...
Definition: DetectorData.h:150
StructExtension< ZPlanarStruct > ZPlanarData
Definition: DetectorData.h:160
double rOuter
outer r at start of section
Definition: DetectorData.h:308
double zHalf
half length of the TPC
Definition: DetectorData.h:42
double thicknessSupport
The thickness of the ladder support from the origin (IP).
Definition: DetectorData.h:137
LayoutType
enum for encoding the sensor type in typeFlags
Definition: DetectorData.h:337
double cellSize1
second cell size, perpendicular to the first direction cellSize0 and the depth of the layers...
Definition: DetectorData.h:438
double zHalfShell
The half length (z) of the support shell (w/o gap) - 0. if no shell exists.
Definition: DetectorData.h:82
StructExtension< ZDiskPetalsStruct > ZDiskPetalsData
Definition: DetectorData.h:278
double pitchStrip
strip pitch (if applicable )
Definition: DetectorData.h:182
double outer_nRadiationLengths
Absorber material in behind of sensitive element in the layer, units of radiation lengths...
Definition: DetectorData.h:420
double maxRow
maximum number of rows
Definition: DetectorData.h:62
double rOuterShell
The outer radius of the support shell.
Definition: DetectorData.h:88
std::vector< LayerLayout > layers
Definition: DetectorData.h:275
int petalNumber
The number of petals in the layer.
Definition: DetectorData.h:233
double thicknessSensitive
The thickness of the petal sensitive.
Definition: DetectorData.h:266
double widthStrip
width of the strips (if applicable )
Definition: DetectorData.h:91
double zHalfSensitive
The half length of the ladder sensitive in z.
Definition: DetectorData.h:154
double lengthSupport
The radial length of the petal support.
Definition: DetectorData.h:257
StructExtension(const StructExtension< T > &t)
Definition: DetectorData.h:24
double zPos
z position at start of section
Definition: DetectorData.h:310
double rMin
inner radius of the TPC
Definition: DetectorData.h:44
double distanceSensitive
The distance of the ladder sensitive from the origin (IP).
Definition: DetectorData.h:146
double distance
distance from Origin (or the z-axis) to the inner-most face of the layer
Definition: DetectorData.h:406
double zPosition
z-position of layer ( z-position of middle axis )
Definition: DetectorData.h:230
double rInner
inner r at start of section
Definition: DetectorData.h:306
std::vector< LayerLayout > layers
Definition: DetectorData.h:157
double rMaxReadout
outer r of active volume
Definition: DetectorData.h:52
int ladderNumber
The number of ladders in the layer.
Definition: DetectorData.h:124
double lengthSensitive
The radial length of the petal sensitive.
Definition: DetectorData.h:272
double gapShell
The length of the gap in mm (gap position at z=0).
Definition: DetectorData.h:84
double lengthStrip
length of the strips (if applicable )
Definition: DetectorData.h:93
double outer_nInteractionLengths
Absorber material in behind of sensitive element in the layer, units of radiation lengths...
Definition: DetectorData.h:422
bool isSymmetricInZ
if true the sections are repeated at negative z
Definition: DetectorData.h:295
double distanceSupport
The distance of the petal support from the z-axis.
Definition: DetectorData.h:249
double thicknessSupport
The thickness of the petal support.
Definition: DetectorData.h:251
double angleStrip
strip stereo angle (if applicable )
Definition: DetectorData.h:184
double zHalfSupport
The half length of the ladder support in z.
Definition: DetectorData.h:143
double absorberThickness
thickness of the absorber part of the layer. Consider using inner/outer_nRadiationLengths and inner/o...
Definition: DetectorData.h:412
double inner_thickness
Distance between the innermost face of the layer (closest to IP) and the center of the sensitive elem...
Definition: DetectorData.h:425
std::vector< Section > sections
Definition: DetectorData.h:317
double phi0
Azimuthal angle of the (outward pointing) normal of the first ladder.
Definition: DetectorData.h:127
int sensorsPerLadder
number of sensor per ladder
Definition: DetectorData.h:130
StructExtension< LayeredCalorimeterStruct > LayeredCalorimeterData
Definition: DetectorData.h:444
StructExtension< FixedPadSizeTPCStruct > FixedPadSizeTPCData
Definition: DetectorData.h:66
double padHeight
pad height of readout rows
Definition: DetectorData.h:58
LayoutType layoutType
type of layout: BarrelLayout or EndcapLayout
Definition: DetectorData.h:343
double outer_thickness
Distance between the center of the sensitive element and the outermost face of the layer...
Definition: DetectorData.h:428
double phi0
azimuthal angle of vector defined by the Z-axis to first petal x-positive, y-positive edge ...
Definition: DetectorData.h:242
double padGap
gap between pads
Definition: DetectorData.h:64
double widthSensitive
The width of the ladder sensitive.
Definition: DetectorData.h:152
double driftLength
driftLength in z (half length of active volume)
Definition: DetectorData.h:48
double widthInnerSensitive
The inner width of the petal sensitive.
Definition: DetectorData.h:268
std::ostream & operator<<(std::ostream &io, const FixedPadSizeTPCData &d)
Definition: DetectorData.cpp:7
double padWidth
fixed pad width ( at middle of row)
Definition: DetectorData.h:60
double sensitive_thickness
Thickness of the sensitive element (e.g. scintillator)
Definition: DetectorData.h:431
double innerWallThickness
thickness of the inner wall (field cage)
Definition: DetectorData.h:54
double widthOuterSupport
The outer width of the petal support.
Definition: DetectorData.h:255
double rInnerShell
The inner radius of the support shell.
Definition: DetectorData.h:86
double gap1
Gap between modules(eg. middle stave gap) in the z-direction.
Definition: DetectorData.h:382
double inner_nInteractionLengths
Absorber material in front of sensitive element in the layer, units of radiation lengths.
Definition: DetectorData.h:417
double lengthSensor
sensor length (if divided in sensors)
Definition: DetectorData.h:132
double widthOuterSensitive
The outer width of the petal sensitive.
Definition: DetectorData.h:270
std::bitset< 32 > typeFlags
Bit flag describing sensor type - use enum SensorType to access the bits.
Definition: DetectorData.h:239
double gap2
Gap between modules(reserved for future use) e.g in the r-direction.
Definition: DetectorData.h:385
Handle class describing a detector element.
Definition: Detector.h:172
double pitchStrip
strip pitch (if applicable )
Definition: DetectorData.h:95
double offsetSupport
The offset of the ladder support, i.e. the shift in the direction of increasing phi, perpendicular to the ladders's normal.
Definition: DetectorData.h:139
double widthSupport
The width of the ladder support.
Definition: DetectorData.h:141
double angleStrip
strip stereo angle (if applicable )
Definition: DetectorData.h:97
double thicknessSensitive
The thickness of the ladder sensitive from the origin (IP).
Definition: DetectorData.h:148
double inner_nRadiationLengths
Absorber material in front of sensitive element in the layer, units of radiation lengths.
Definition: DetectorData.h:415
StructExtension(const Geometry::DetElement &)
Definition: DetectorData.h:26
double outerWallThickness
thickness of the outer wall (field cage)
Definition: DetectorData.h:56
double phi0
phi0 of layer: potential rotation around normal to absorber plane, e.g. if layers are 'staggered' in ...
Definition: DetectorData.h:409
StructExtension< ConicalSupportStruct > ConicalSupportData
Definition: DetectorData.h:321
double rMinReadout
inner r of active volume
Definition: DetectorData.h:50
double rMax
outer radius of the TPC
Definition: DetectorData.h:46
double cellSize0
cell size along the first axis where first is either along the beam (BarrelLayout) or up (EndcapLayou...
Definition: DetectorData.h:436
double widthInnerSupport
The inner width of the petal support.
Definition: DetectorData.h:253
double lengthStrip
length of the strips (if applicable )
Definition: DetectorData.h:180
int sensorsPerPetal
number of sensor per petal
Definition: DetectorData.h:236
double extent[4]
extent of the calorimeter in the r-z-plane [ rmin, rmax, zmin, zmax ] in mm.
Definition: DetectorData.h:346
double distanceSupport
The distance of the ladder support from the origin (IP).
Definition: DetectorData.h:135
double widthStrip
width of the strips (if applicable )
Definition: DetectorData.h:178
enum for encoding the sensor type in typeFlags
Definition: DetectorData.h:187
StructExtension(const StructExtension< T > &t, const Geometry::DetElement &)
Definition: DetectorData.h:27