2 #ifndef GEAR_ZPlanarLayerLayoutImpl_H
3 #define GEAR_ZPlanarLayerLayoutImpl_H 1
5 #include "gear/ZPlanarLayerLayout.h"
30 double internalPhi0{} ;
39 typedef std::vector<Layer> LayerVec ;
51 virtual int getNLadders(
int layerIndex)
const {
return _lVec.at( layerIndex ).NLadders ; }
57 virtual double getPhi0(
int layerIndex)
const {
return M_PI/2. - _lVec.at( layerIndex ).internalPhi0 ; }
62 virtual double getLadderRadLength(
int layerIndex)
const {
return _lVec.at( layerIndex ).RadLength ; }
67 virtual double getLadderDistance(
int layerIndex)
const {
return _lVec.at( layerIndex ).Distance ; }
72 virtual double getLadderThickness(
int layerIndex)
const {
return _lVec.at( layerIndex ).Thickness ; }
81 virtual double getLadderOffset(
int layerIndex)
const {
return _lVec.at( layerIndex ).Offset ; }
86 virtual double getLadderWidth(
int layerIndex)
const {
return _lVec.at( layerIndex ).Width ; }
94 virtual double getLadderLength(
int layerIndex)
const {
return _lVec.at( layerIndex ).Length ; }
116 virtual double getSensitiveWidth(
int layerIndex)
const {
return _sVec.at( layerIndex ).Width ; }
124 virtual void addLayer(
int nLadders,
double phi0,
126 double ladderDistance,
double ladderOffset,
double ladderThickness,
127 double ladderLength,
double ladderWidth,
double ladderRadLength,
129 double sensitiveDistance,
double sensitiveOffset,
double sensitiveThickness,
130 double sensitiveLength,
double sensitiveWidth,
double sensitiveRadLength);
134 virtual double getMaxRadius(
int layerIndex ,
bool sensitive=
false )
const ;
138 virtual double getStartInnerPhi(
int layerIndex ,
bool sensitive=
false )
const ;
142 virtual double getEndInnerPhi(
int layerIndex ,
bool sensitive=
false )
const ;
146 virtual double getStartOuterPhi(
int layerIndex ,
bool sensitive=
false )
const ;
150 virtual double getEndOuterPhi(
int layerIndex ,
bool sensitive=
false )
const ;
156 virtual double getThicknessForPhi(
int layerIndex,
double phi ,
bool sensitive=
false )
const ;
161 double getInternalPhi0(
int layerIndex)
const {
return _lVec.at( layerIndex ).internalPhi0 ; }
virtual int getNLadders(int layerIndex) const
The number of ladders in the layer layerIndex - layer indexing starts at 0 for the layer closest to I...
virtual double getSensitiveThickness(int layerIndex) const
The thickness in mm of the sensitive area in ladders in layer layerIndex.
virtual double getLadderRadLength(int layerIndex) const
The radiation length in the support structure ladders of layer layerIndex - layer indexing starts at ...
virtual double getSensitiveOffset(int layerIndex) const
Same as getLadderOffset() except for the sensitive part of the ladder.
virtual double getMaxRadius(int layerIndex, bool sensitive=false) const
returns maximum radius for a given layer
Abstract description of layers in a Vertex detector.
virtual double getLadderDistance(int layerIndex) const
The distance of ladders in layer layerIndex from the IP - layer indexing starts at 0 for the layer cl...
virtual double getStartOuterPhi(int layerIndex, bool sensitive=false) const
returns starting phi for first ladder in layer layerIndex (on side away from IP)
virtual double getSensitiveRadLength(int layerIndex) const
The radiation length in sensitive volumes in layer layerIndex - layer indexing starts at 0 for the la...
virtual double getSensitiveWidth(int layerIndex) const
The width of the sensitive area in ladders in layer layerIndex in mm.
virtual double getSensitiveDistance(int layerIndex) const
The distance of sensitive area in ladders in layer layerIndex from the IP.
Abstract description of layers in a Vertex detector.
virtual double getLadderWidth(int layerIndex) const
The width of the ladder in layer in mm for ladders in layer layerIndex - layer indexing starting at 0...
virtual int getNLayers() const
The total number of layers.
virtual double getLadderThickness(int layerIndex) const
The thickness in mm of the ladders in layerIndex - layer indexing starting at 0 for the layer closest...
virtual double getLadderOffset(int layerIndex) const
The offset of the ladder in mm defines the shift of the ladder in the direction of increasing phi per...
virtual double getPhi0(int layerIndex) const
Azimuthal angle of the (outward pointing) normal of the first ladder.
virtual double getThicknessForPhi(int layerIndex, double phi, bool sensitive=false) const
returns thickness as viewed under the angle phi only for the first ladder in layer layerIndex...
Geometry properties of a planar detector (parallel to z-axis) needed for reconstruction code...
virtual double getSensitiveLength(int layerIndex) const
The length of the sensitive area in ladders in z direction in mm for ladders in layer layerIndex...
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 double getEndOuterPhi(int layerIndex, bool sensitive=false) const
returns ending phi for first ladder in layer layerIndex (on side away from IP)
virtual double getEndInnerPhi(int layerIndex, bool sensitive=false) const
returns ending phi for first ladder in layer layerIndex (on side facing IP)
virtual double getLadderLength(int layerIndex) const
The (half) length of the ladder in z direction in mm for ladders in layer layerIndex - layer indexing...
Helper class for layer properties.
virtual double getStartInnerPhi(int layerIndex, bool sensitive=false) const
returns starting phi for first ladder in layer layerIndex (on side facing IP)