GEAR  1.9.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Friends Pages
SiPlanesParametersImpl.h
1 // -*- C++ -*-
2 #ifndef GEAR_SiPlanesParametersImpl_H
3 #define GEAR_SiPlanesParametersImpl_H 1
4 
5 #include "gear/SiPlanesParameters.h"
6 #include "gearimpl/GearParametersImpl.h"
7 #include "gearimpl/SiPlanesLayerLayoutImpl.h"
8 
9 
10 namespace gear {
11 
12 class SiPlanesLayerLayout;
13 
21 
22 public:
28  SiPlanesParametersImpl(int siplanesID, int siplanesType, int siplanesNumber) ;
29 
30  // Destructor.
31  virtual ~SiPlanesParametersImpl() { /* nop */; }
32 
33  // static constants enums( for the type of layout )
34 
35  static const int TelescopeWithDUT = 1 ;
36  static const int TelescopeWithoutDUT = 2 ;
37 
66  virtual void addLayer(int layerID,
67  double layerPositionX, double layerPositionY, double layerPositionZ,
68  double layerRotationXY, double layerRotationZX, double layerRotationZY,
69  double layerSizeX, double layerSizeY, double layerThickness,
70  double layerRadLength,
71  // sensitive
72  int sensitiveID,
73  double sensitivePositionX, double sensitivePositionY, double sensitivePositionZ,
74  double sensitiveRotationXY, double sensitiveRotationZX, double sensitiveRotationZY,
75  double sensitiveSizeX, double sensitiveSizeY, double sensitiveThickness,
76  int sensitiveNpixelX, int sensitiveNpixelY,
77  double sensitivePitchX,double sensitivePitchY,
78  double sensitiveResolution, double sensitiveResolutionX, double sensitiveResolutionY,
79  double sensitiveRotation1,
80  double sensitiveRotation2,
81  double sensitiveRotation3,
82  double sensitiveRotation4,
83  double sensitiveRadLength)
84  {
85  _layer.addLayer( layerID,
86  layerPositionX, layerPositionY, layerPositionZ,
87  layerRotationXY, layerRotationZX, layerRotationZY,
88  layerSizeX, layerSizeY, layerThickness,
89  layerRadLength,
90  sensitiveID,
91  sensitivePositionX, sensitivePositionY, sensitivePositionZ,
92  sensitiveRotationXY, sensitiveRotationZX, sensitiveRotationZY,
93  sensitiveSizeX, sensitiveSizeY, sensitiveThickness,
94  sensitiveNpixelX, sensitiveNpixelY,
95  sensitivePitchX, sensitivePitchY,
96  sensitiveResolution, sensitiveResolutionX, sensitiveResolutionY,
97  sensitiveRotation1,
98  sensitiveRotation2,
99  sensitiveRotation3,
100  sensitiveRotation4,
101  sensitiveRadLength ) ;
102  return ;
103  }
104 
107  virtual void addLayer(int layerID,
108  double layerPositionX, double layerPositionY, double layerPositionZ,
109  double layerSizeX, double layerSizeY, double layerThickness,
110  double layerRadLength,
111  // sensitive
112  int sensitiveID,
113  double sensitivePositionX, double sensitivePositionY, double sensitivePositionZ,
114  double sensitiveSizeX, double sensitiveSizeY, double sensitiveThickness,
115  int sensitiveNpixelX, int sensitiveNpixelY,
116  double sensitivePitchX, double sensitivePitchY,
117  double sensitiveResolution,
118  double sensitiveRotation1,
119  double sensitiveRotation2,
120  double sensitiveRotation3,
121  double sensitiveRotation4,
122  double sensitiveRadLength ){
123 
124  // call addLayer with layerRotation parameters set to 0
125  addLayer( layerID, layerPositionX, layerPositionY, layerPositionZ, 0., 0., 0.,
126  layerSizeX, layerSizeY, layerThickness, layerRadLength,
127  sensitiveID, sensitivePositionX, sensitivePositionY, sensitivePositionZ, 0., 0., 0., sensitiveSizeX, sensitiveSizeY,
128  sensitiveThickness, sensitiveNpixelX, sensitiveNpixelY, sensitivePitchX, sensitivePitchY, sensitiveResolution, sensitiveResolution, sensitiveResolution,
129  sensitiveRotation1, sensitiveRotation2, sensitiveRotation3, sensitiveRotation4, sensitiveRadLength ) ;
130  }
131 
132 
163  virtual void addDUT(int dutID,
164  double dutPositionX, double dutPositionY, double dutPositionZ,
165  double dutSizeX, double dutSizeY, double dutThickness,
166  double dutRadLength,
167  // sensitive
168  int dutsensitiveID,
169  double dutsensitivePositionX, double dutsensitivePositionY, double dutsensitivePositionZ,
170  double dutsensitiveSizeX, double dutsensitiveSizeY, double dutsensitiveThickness,
171  int dutsensitiveNpixelX, int dutsensitiveNpixelY,
172  double dutsensitivePitchX,double dutsensitivePitchY,
173  double dutsensitiveResolution,
174  double dutsensitiveRotation1,
175  double dutsensitiveRotation2,
176  double dutsensitiveRotation3,
177  double dutsensitiveRotation4,
178  double dutsensitiveRadLength)
179  {
180  _layer.addDUT( dutID,
181  dutPositionX, dutPositionY, dutPositionZ,
182  dutSizeX, dutSizeY, dutThickness,
183  dutRadLength,
184  dutsensitiveID,
185  dutsensitivePositionX, dutsensitivePositionY, dutsensitivePositionZ,
186  dutsensitiveSizeX, dutsensitiveSizeY, dutsensitiveThickness,
187  dutsensitiveNpixelX, dutsensitiveNpixelY,
188  dutsensitivePitchX, dutsensitivePitchY,
189  dutsensitiveResolution,
190  dutsensitiveRotation1,
191  dutsensitiveRotation2,
192  dutsensitiveRotation3,
193  dutsensitiveRotation4,
194  dutsensitiveRadLength ) ;
195  return ;
196  }
197 
198 
201  virtual const SiPlanesLayerLayout & getSiPlanesLayerLayout() const { return _layer ; }
202 
203 
206  virtual int getSiPlanesID() const { return _siplanesID ; }
207 
211  virtual int getSiPlanesType() const { return _siplanesType ; }
212 
215  virtual int getSiPlanesNumber() const { return _siplanesNumber ; }
216 
220  virtual void setSiPlanesID(int value ) { _siplanesID = value ; }
221 
225  virtual void setSiPlanesType(int value) { _siplanesType = value ; }
226 
229  virtual void setSiPlanesNumber(int value) { _siplanesNumber = value ; }
230 
231 protected:
232 
233  SiPlanesLayerLayoutImpl _layer{} ;
234 
235  int _siplanesID{};
236 
237  int _siplanesType{} ;
238 
239  int _siplanesNumber{} ;
240 
241 private:
242 
243 }; // class
244 
245 } // namespace gear
246 
247 #endif /* ifndef GEAR_SIPLANESPARAMETERS_H */
Implementation of GearParameters - a set off parameters that can be used to describe the geometrical ...
virtual void addLayer(int layerID, double layerPositionX, double layerPositionY, double layerPositionZ, double layerSizeX, double layerSizeY, double layerThickness, double layerRadLength, int sensitiveID, double sensitivePositionX, double sensitivePositionY, double sensitivePositionZ, double sensitiveSizeX, double sensitiveSizeY, double sensitiveThickness, int sensitiveNpixelX, int sensitiveNpixelY, double sensitivePitchX, double sensitivePitchY, double sensitiveResolution, double sensitiveRotation1, double sensitiveRotation2, double sensitiveRotation3, double sensitiveRotation4, double sensitiveRadLength)
Adding a Layer to the SiPlanes detector (without parameters for layer rotation)
virtual void addLayer(int layerID, double layerPositionX, double layerPositionY, double layerPositionZ, double layerRotationXY, double layerRotationZX, double layerRotationZY, double layerSizeX, double layerSizeY, double layerThickness, double layerRadLength, int sensitiveID, double sensitivePositionX, double sensitivePositionY, double sensitivePositionZ, double sensitiveRotationXY, double sensitiveRotationZX, double sensitiveRotationZY, double sensitiveSizeX, double sensitiveSizeY, double sensitiveThickness, int sensitiveNpixelX, int sensitiveNpixelY, double sensitivePitchX, double sensitivePitchY, double sensitiveResolution, double sensitiveResolutionX, double sensitiveResolutionY, double Rotation1, double Rotation2, double Rotation3, double Rotation4, double sensitiveRadLength)
Add a new layer at the given position.
Abstract description of layers in pixel beam telescope.
virtual int getSiPlanesType() const
Returns the type of SiPlanes detector: SiPlanesParametersImpl.TelescopeWithDUT or SiPlanesParametersI...
virtual void addDUT(int dutID, double dutPositionX, double dutPositionY, double dutPositionZ, double dutSizeX, double dutSizeY, double dutThickness, double dutRadLength, int dutsensitiveID, double dutsensitivePositionX, double dutsensitivePositionY, double dutsensitivePositionZ, double dutsensitiveSizeX, double dutsensitiveSizeY, double dutsensitiveThickness, int dutsensitiveNpixelX, int dutsensitiveNpixelY, double dutsensitivePitchX, double dutsensitivePitchY, double dutsensitiveResolution, double dutsensitiveRotation1, double dutsensitiveRotation2, double dutsensitiveRotation3, double dutsensitiveRotation4, double dutsensitiveRadLength)
Adding DUT to the SiPlanes detector.
Abstract description of layers in a pixel beam telescope.
virtual const SiPlanesLayerLayout & getSiPlanesLayerLayout() const
Returns the layer layout of SiPlanes detector.
SiPlanesParametersImpl(int siplanesID, int siplanesType, int siplanesNumber)
C'tor.
virtual void addDUT(int dutID, double dutPositionX, double dutPositionY, double dutPositionZ, double dutSizeX, double dutSizeY, double dutThickness, double dutRadLength, int dutsensitiveID, double dutsensitivePositionX, double dutsensitivePositionY, double dutsensitivePositionZ, double dutsensitiveSizeX, double dutsensitiveSizeY, double dutsensitiveThickness, int dutsensitiveNpixelX, int dutsensitiveNpixelY, double dutsensitivePitchX, double dutsensitivePitchY, double dutsensitiveResolution, double dutsensitiveRotation1, double dutsensitiveRotation2, double dutsensitiveRotation3, double dutsensitiveRotation4, double dutsensitiveRadLength)
Add a DUT at the given position.
virtual void setSiPlanesType(int value)
Returns the type of SiPlanes detector: SiPlanesParametersImpl.TelescopeWithDUT or SiPlanesParametersI...
Geometry properties of a pixel beam telescope needed for reconstruction code.
virtual int getSiPlanesID() const
Returns the ID of SiPlanes detector setup.
virtual void setSiPlanesID(int value)
Returns the ID of SiPlanes detector setup.
Abstract description of layers in pixel beam telescope with or without DUT.
virtual int getSiPlanesNumber() const
Returns the number of Si planes.
virtual void setSiPlanesNumber(int value)
Returns the number of Si planes.
virtual void addLayer(int layerID, double layerPositionX, double layerPositionY, double layerPositionZ, double layerRotationXY, double layerRotationZX, double layerRotationZY, double layerSizeX, double layerSizeY, double layerThickness, double layerRadLength, int sensitiveID, double sensitivePositionX, double sensitivePositionY, double sensitivePositionZ, double sensitiveRotationXY, double sensitiveRotationZX, double sensitiveRotationZY, double sensitiveSizeX, double sensitiveSizeY, double sensitiveThickness, int sensitiveNpixelX, int sensitiveNpixelY, double sensitivePitchX, double sensitivePitchY, double sensitiveResolution, double sensitiveResolutionX, double sensitiveResolutionY, double sensitiveRotation1, double sensitiveRotation2, double sensitiveRotation3, double sensitiveRotation4, double sensitiveRadLength)
Adding a Layer to the SiPlanes detector.