2 #ifndef GEAR_SiPlanesParametersImpl_H 
    3 #define GEAR_SiPlanesParametersImpl_H 1 
    5 #include "gear/SiPlanesParameters.h" 
    6 #include "gearimpl/GearParametersImpl.h" 
    7 #include "gearimpl/SiPlanesLayerLayoutImpl.h" 
   12 class SiPlanesLayerLayout;
 
   35   static const int TelescopeWithDUT    = 1 ;
 
   36   static const int TelescopeWithoutDUT = 2 ;
 
   67                        double layerPositionX, 
double layerPositionY, 
double layerPositionZ,
 
   68                        double layerRotationXY, 
double layerRotationZX, 
double layerRotationZY,
 
   69                         double layerSizeX, 
double layerSizeY, 
double layerThickness,
 
   70                         double layerRadLength,
 
   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)
 
   86                      layerPositionX, layerPositionY, layerPositionZ,
 
   87                      layerRotationXY, layerRotationZX, layerRotationZY,
 
   88                      layerSizeX, layerSizeY, layerThickness,
 
   91                      sensitivePositionX, sensitivePositionY, sensitivePositionZ,
 
   92                      sensitiveRotationXY, sensitiveRotationZX, sensitiveRotationZY,
 
   93                      sensitiveSizeX, sensitiveSizeY, sensitiveThickness,
 
   94                      sensitiveNpixelX, sensitiveNpixelY,
 
   95                      sensitivePitchX, sensitivePitchY,
 
   96                      sensitiveResolution, sensitiveResolutionX, sensitiveResolutionY,
 
  101                      sensitiveRadLength ) ;
 
  108                         double layerPositionX, 
double layerPositionY, 
double layerPositionZ,
 
  109                         double layerSizeX, 
double layerSizeY, 
double layerThickness,
 
  110                         double layerRadLength,
 
  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 ){
 
  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 ) ;
 
  164                       double dutPositionX, 
double dutPositionY, 
double dutPositionZ,
 
  165                       double dutSizeX, 
double dutSizeY, 
double dutThickness,
 
  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)
 
  181                    dutPositionX, dutPositionY, dutPositionZ,
 
  182                    dutSizeX, dutSizeY, dutThickness,
 
  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 ) ;
 
  237   int _siplanesType{} ;
 
  239   int _siplanesNumber{} ;
 
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.