2 #ifndef GEAR_ZPlanarLayerLayoutImpl_H 
    3 #define GEAR_ZPlanarLayerLayoutImpl_H 1 
    5 #include "gear/ZPlanarLayerLayout.h" 
   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)