2 #ifndef GEAR_ZPlanarParametersImpl_H
3 #define GEAR_ZPlanarParametersImpl_H 1
5 #include "gear/ZPlanarParameters.h"
6 #include "gearimpl/GearParametersImpl.h"
7 #include "gearimpl/ZPlanarLayerLayoutImpl.h"
12 class ZPlanarLayerLayoutImpl;
37 ZPlanarParametersImpl(
int type,
double shellInnerRadius,
double shellOuterRadius,
double shellHalfLength,
double shellGap,
double shellRadLength ) ;
44 static const int CCD = 1 ;
45 static const int CMOS = 2 ;
46 static const int HYBRID = 3 ;
70 virtual void addLayer(
int nLadders,
double phi0,
71 double ladderDistance,
double ladderOffset,
double ladderThickness,
72 double ladderLength,
double ladderWidth,
double ladderRadLength,
73 double sensitiveDistance,
double sensitiveOffset,
double sensitiveThickness,
74 double sensitiveLength,
double sensitiveWidth,
double sensitiveRadLength )
77 ladderDistance, ladderOffset, ladderThickness, ladderLength, ladderWidth, ladderRadLength,
78 sensitiveDistance, sensitiveOffset, sensitiveThickness, sensitiveLength, sensitiveWidth, sensitiveRadLength ) ;
89 virtual int getType()
const {
return _type ; }
155 double _shellInnerRadius{} ;
157 double _shellOuterRadius{} ;
159 double _shellHalfLength{} ;
163 double _shellRadLength{} ;
169 bool isPointInLadder(Vector3D p ,
bool sensitive =
false, SensorID* sensorID=0 )
const ;
182 Vector3D distanceToPlane(Vector3D p, Vector3D r, Vector3D n, Vector3D u, Vector3D v,
float minU,
float maxU,
float minV,
float maxV)
const ;
190 Vector3D planeLineIntersection( Vector3D r, Vector3D n, Vector3D linePoint, Vector3D lineDir)
const ;
195 double confiningRatio( Vector3D p , Vector3D r, Vector3D n, Vector3D u, Vector3D v,
float minU,
float maxU,
float minV,
float maxV )
const ;
201 Vector3D correctToBorderPoint( Vector3D vPlane , Vector3D u, Vector3D v,
float minU,
float maxU,
float minV,
float maxV )
const ;
203 bool isEqual(
double valueOne ,
double valueTwo )
const ;
205 bool isEqual( Vector3D p1 , Vector3D p2 )
const ;
207 bool differsLess(
double valueOne ,
double valueTwo )
const ;
212 double correctPhiRange(
double Phi )
const ;
216 double getPhiPoint( Vector3D p )
const ;
Implementation of GearParameters - a set off parameters that can be used to describe the geometrical ...
Geometry properties of a vertex detector needed for reconstruction code.
virtual bool isPointInSensitive(Vector3D p, SensorID *sensorID=0) const
returns wheter a point is inside a sensitive volume
virtual double getShellOuterRadius() const
The outer radius of the support shell in mm.
Abstract description of layers in a Vertex detector.
virtual double getShellGap() const
The gap length (z) of the support shell in mm.
virtual const ZPlanarLayerLayout & getZPlanarLayerLayout() const
Returns the layer layout in the Vertex.
Simple three dimensional vector providing the components for cartesian, cylindrical and spherical coo...
Abstract description of layers in a Vertex detector.
virtual double getShellRadLength() const
The radiation length in the support shell.
virtual double getShellInnerRadius() const
The inner radius of the support shell in mm.
Geometry properties of a planar detector (parallel to z-axis) needed for reconstruction code...
virtual Vector3D intersectionSensitive(Vector3D p, Vector3D v) const
returns the first point where a given strainght line (parameters point p and direction v) crosses a s...
virtual Vector3D distanceToNearestLadder(Vector3D p) const
returns vector from given point p to nearest ladder
virtual Vector3D distanceToNearestSensitive(Vector3D p) const
returns vector from given point p to nearest sensitive volume
virtual void addLayer(int nLadders, double phi0, double ladderDistance, double ladderOffset, double ladderThickness, double ladderLength, double ladderWidth, double ladderRadLength, double sensitiveDistance, double sensitiveOffset, double sensitiveThickness, double sensitiveLength, double sensitiveWidth, double sensitiveRadLength)
Add a new layer at the given positon.
virtual Vector3D intersectionLadder(Vector3D p, Vector3D v) const
returns the first point where a given strainght line (parameters point p and direction v) crosses a l...
virtual double getShellHalfLength() const
The half length (z) of the support shell in mm.
virtual int getType() const
The type of Vertex detector: ZPlanarParametersImpl.CCD, ZPlanarParametersImpl.CMOS or ZPlanarParamete...
Helper struct for decoding a sensor ID.
virtual void addLayer(int nLadders, double phi0, double ladderDistance, double ladderOffset, double ladderThickness, double ladderLength, double ladderWidth, double ladderRadLength, double sensitiveDistance, double sensitiveOffset, double sensitiveThickness, double sensitiveLength, double sensitiveWidth, double sensitiveRadLength)
adding a Layer to the vertex one layer consiste of a number of ladders and sensitive areas (nLadders)...
virtual bool isPointInLadder(Vector3D p) const
returns whether a point is inside a ladder
ZPlanarParametersImpl(int type, double shellInnerRadius, double shellOuterRadius, double shellHalfLength, double shellGap, double shellRadLength)
C'tor.