/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Reconstruction/KalFitAlg/KalFitAlg-00-07-55-p03/KalFitAlg/KalFitLayer_Mdc.h

Go to the documentation of this file.
00001 //
00002 //  Directly inspisrated from FTLayer of Kakuno-san
00003 //
00004 //
00005 #ifndef _DEFINE_LAYER_Mdc_H_
00006 #define _DEFINE_LAYER_Mdc_H_
00007 
00008 #include <math.h>
00009 #include <iostream>
00010 #include "KalFitAlg/KalFitSuper_Mdc.h"
00011 //class KalFitSuper_Mdc;
00012 
00013 class KalFitLayer_Mdc{
00014 public:
00016   KalFitLayer_Mdc(const KalFitSuper_Mdc & super,
00017                 const double radius, const double stereoAngle, 
00018                 const double zf, const double zb, const double offset,
00019                 const int layerID, const int localLayerID);
00020   
00022   ~KalFitLayer_Mdc(){};
00023 
00024 public: // Selectors
00026   const int localLayerId(void) const;
00027 
00029   const int layerId(void) const;
00030 
00032   const double tanSlant(void) const;
00033 
00035   const double r(void) const;
00036 
00038   const double zf(void) const;
00039 
00041   const double zb(void) const;
00042 
00044   const int offset(void) const;
00045 
00047   const KalFitSuper_Mdc & superLayer(void) const;
00048 
00050   const double limit(void) const;
00051 
00053   double z(const double d) const;
00054 
00056   double csize(void) const;
00057 
00058 private: // private data members
00059   const double _radius;
00060   const double _tanSlant;
00061   const double _zf;                             // z of forward endplate
00062   const double _zb;                             // z of backward endplate
00063   const int _layerId;
00064   const int _localLayerId;
00065   const int _offset;
00066   const KalFitSuper_Mdc & _superLayer;
00067 };
00068 
00069 //----------------------------------
00070 #ifdef KalFitLayer_Mdc_NO_INLINE
00071 #define inline 
00072 #else
00073 #undef inline
00074 #define KalFitLayer_Mdc_INLINE_DEFINE_HERE
00075 #endif
00076 
00077 #ifdef KalFitLayer_Mdc_INLINE_DEFINE_HERE
00078 
00079 inline
00080 KalFitLayer_Mdc::KalFitLayer_Mdc(const KalFitSuper_Mdc & super,
00081                              const double radius, const double stereoAngle, 
00082                              const double zf, const double zb, const double offset,
00083                              const int layerID, const int localLayerID)  : _radius(radius),
00084   _tanSlant(1./tan(stereoAngle)),
00085   _zf(zf),
00086   _zb(zb),
00087   _layerId(layerID),
00088   _localLayerId(localLayerID),
00089   _offset((int)(2.0*offset)),
00090   _superLayer(super)
00091 {
00092 }
00093 
00094 inline
00095 const int KalFitLayer_Mdc::layerId(void) const { return _layerId;}
00096 inline
00097 const int KalFitLayer_Mdc::localLayerId(void) const { return _localLayerId;}
00098 inline
00099 const double KalFitLayer_Mdc::tanSlant(void) const { return _tanSlant;}
00100 
00101 inline
00102 const double KalFitLayer_Mdc::r(void) const { return _radius;}
00103 
00104 inline
00105 const double KalFitLayer_Mdc::zf(void) const { return _zf;}
00106 
00107 inline
00108 const double KalFitLayer_Mdc::zb(void) const { return _zb;}
00109 
00110 inline
00111 const double KalFitLayer_Mdc::limit(void) const {  return (double)(_zf-_zb)/_tanSlant;}
00112   
00113 inline
00114 double 
00115 KalFitLayer_Mdc::z(const double d) const
00116 {
00117   return (double)_zb+d*_tanSlant;
00118 }
00119 
00120 inline
00121 const int
00122 KalFitLayer_Mdc::offset(void) const
00123 {
00124   return _offset;
00125 }
00126 
00127 inline
00128 const KalFitSuper_Mdc & 
00129 KalFitLayer_Mdc::superLayer(void) const
00130 {
00131   return _superLayer;
00132 }
00133 
00134 inline
00135 double
00136 KalFitLayer_Mdc::csize(void) const
00137 {
00138   return 2*M_PI*_radius/_superLayer.nWire();
00139 }
00140 
00141 #endif
00142 
00143 #undef inline
00144 
00145 #endif 
00146 

Generated on Tue Nov 29 23:13:22 2016 for BOSS_7.0.2 by  doxygen 1.4.7