2 #ifndef GEAR_FTDParametersImpl_H
3 #define GEAR_FTDParametersImpl_H 1
5 #include "gear/FTDParameters.h"
6 #include "gearimpl/GearParametersImpl.h"
7 #include "gearimpl/FTDLayerLayoutImpl.h"
35 static const int PIXEL = 1 ;
36 static const int STRIP = 2 ;
38 static const int FACE = 1;
39 static const int BACK = 2;
70 virtual void addLayer(
int nPetals,
int nSensors,
bool isDoubleSided,
int sensorType,
double petalOpAngle,
double phi0,
double alpha,
71 double zposition,
double zoffset,
double zsign0,
73 double supportRinner,
double supportThickness,
74 double supportLengthMin,
double supportLengthMax,
75 double supportWidth,
double supportRadLength,
77 double sensitiveRinner,
double sensitiveThickness,
78 double sensitiveLengthMin,
double sensitiveLengthMax,
79 double sensitiveWidth,
double sensitiveRadLength )
81 _layer.
addLayer( nPetals, nSensors, isDoubleSided, sensorType, petalOpAngle,phi0, alpha,
82 zposition,zoffset,zsign0,
84 supportRinner,supportThickness,
85 supportLengthMin, supportLengthMax,
86 supportWidth, supportRadLength,
88 sensitiveRinner,sensitiveThickness,
89 sensitiveLengthMin, sensitiveLengthMax,
90 sensitiveWidth, sensitiveRadLength ) ;
132 bool isPointInFTD(
const Vector3D & p ,
const bool & sensitive =
false)
const ;
137 int getPetalIndex(
const Vector3D & p,
const bool & sensitive =
false)
const;
150 Vector3D
distanceToPlane(Vector3D p, Vector3D r, Vector3D n, Vector3D u,
151 Vector3D v,
float minU,
float maxU,
float minV,
float maxV)
const ;
160 Vector3D
planeLineIntersection( Vector3D r, Vector3D n, Vector3D linePoint, Vector3D lineDir)
const ;
165 double confiningRatio( Vector3D p , Vector3D r, Vector3D n, Vector3D u, Vector3D v,
166 float minU,
float maxU,
float minV,
float maxV )
const ;
173 float minU,
float maxU,
float minV,
float maxV )
const ;
175 bool isEqual(
double valueOne ,
double valueTwo )
const ;
177 bool isEqual( Vector3D p1 , Vector3D p2 )
const ;
179 bool differsLess(
double valueOne ,
double valueTwo )
const ;
Implementation of GearParameters - a set off parameters that can be used to describe the geometrical ...
double getPhiPoint(Vector3D p) const
returns Phi for a point
virtual const FTDLayerLayout & getFTDLayerLayout() const
Returns the layer layout in the Vertex.
virtual int getSensitiveIndex(const Vector3D &p) const
returns the petal Index which correspond to the layer where the point is.
int getPetalIndex(const Vector3D &p, const bool &sensitive=false) const
returns the petal number corresponding to a given point.
Vector3D planeLineIntersection(Vector3D r, Vector3D n, Vector3D linePoint, Vector3D lineDir) const
returns the first point on the ftd, where it intersects with a given straight line (parameters point ...
bool isPointInFTD(const Vector3D &p, const bool &sensitive=false) const
returns if a point is in support (sensitive == false) or in sensitive (sensitive == true) ...
Simple three dimensional vector providing the components for cartesian, cylindrical and spherical coo...
Abstract description of layers in a FTD detector.
virtual void addLayer(int nPetals, int nSensors, bool isDoubleSided, int sensorType, double petalOpAngle, double phi0, double alpha, double zposition, double zoffset, double zsign0, double supportRinner, double supportThickness, double supportLengthMin, double supportLengthMax, double supportWidth, double supportRadLength, double sensitiveRinner, double sensitiveThickness, double sensitiveLengthMin, double sensitiveLengthMax, double sensitiveWidth, double sensitiveRadLength)
adding a Layer to the vertex one layer consists of a number of petals and sensitive areas (nPetals) t...
virtual int getLayerIndex(const Vector3D &p) const
returns the layerIndex which correspond to the layer where the point is.
Geometry properties of a FTD detector needed for reconstruction code.
Geometry properties of a FTD detector needed for reconstruction code.
Vector3D correctToBorderPoint(Vector3D vPlane, Vector3D u, Vector3D v, float minU, float maxU, float minV, float maxV) const
corrects the vector vPlane into the given borders, given by direction u (minU to maxU) and in directi...
double confiningRatio(Vector3D p, Vector3D r, Vector3D n, Vector3D u, Vector3D v, float minU, float maxU, float minV, float maxV) const
returns the confiningRatio of a point p in a plane when the plane (r,n) is reduced to a finite square...
double correctPhiRange(double Phi) const
returns Phi corrected to Range -M_PI/2 to +M_PI/2
virtual void addLayer(int nPetals, int nSensors, bool isDoubleSided, int sensorType, double petalOpAngle, double phi0, double alpha, double zposition, double zoffset, double zsign0, double supportRinner, double supportThickness, double supportLengthMin, double supportLengthMax, double supportWidth, double supportRadLength, double sensitiveRinner, double sensitiveThickness, double sensitiveLengthMin, double sensitiveLengthMax, double sensitiveWidth, double sensitiveRadLength)
Add a new layer at the given position.
Vector3D distanceToPlane(Vector3D p, Vector3D r, Vector3D n, Vector3D u, Vector3D v, float minU, float maxU, float minV, float maxV) const
returns distance to nearest support petal (sensitive == false) or nearest sensitiv (sensitive == true...