/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Reconstruction/MdcPatRec/MdcGeom/MdcGeom-00-01-17/MdcGeom/MdcSuperLayer.h

Go to the documentation of this file.
00001 // $Id: MdcSuperLayer.h,v 1.1.1.1 2005/07/18 05:51:56 codeman Exp $ // -*-c++-*-
00002 // header file for a class called "MdcSuperLayer"
00003 #ifndef __MDCSUPERLAYER_H__
00004 #define __MDCSUPERLAYER_H__
00005 
00006 #include <iostream>
00007 #include "MdcGeom/MdcLayer.h"
00008 
00009 class MdcSuperLayer {
00010 
00011   public:
00012     // Constructor.
00013      MdcSuperLayer( int number);
00014 
00015     // Destructor
00016     ~MdcSuperLayer();
00017 
00018   public: // Extractors
00019   
00020     int index(void)        const  {return _slayer; }
00021     int whichView(void)    const {return _view;}
00022     bool exist(void)       const {return _exist;}
00023     double rEnd(void)      const {return _radius;}
00024     double rad0(void)      const { return 0.5 * (firstLayer()->rMid() +
00025                                                  lastLayer()->rMid()); }
00026     double zEnd(void)      const { return 0.5 * (firstLayer()->zEnd() +
00027                                                  lastLayer()->zEnd()); }
00028     double stDip(void)     const { return 0.5 * (firstLayer()->stDip() +
00029                                                  lastLayer()->stDip()); }
00030     double delPhi(void)    const {return _delphi;}
00031     double delPhiinv(void) const {return _delphiinv;}
00032     //----------------------------------------------------------
00033     // here |index| is the index of array of pointers to layers
00034     // belonging to the superlayer, so this ramges from 0 to 3
00035     //----------------------------------------------------------
00036 
00037     const MdcLayer* firstLayer(void) const { return layers[0];}
00038     const MdcLayer* lastLayer(void)  const { return layers[_nLayers - 1];}
00039     const MdcSuperLayer* next(void)       const { return _next;}
00040     const MdcSuperLayer* prev(void)       const { return _prev;}
00041     const MdcSuperLayer* nextInView(void) const { return _nextInView;}
00042     const MdcSuperLayer* prevInView(void) const { return _prevInView;}
00043     int   slayNum(void)                 const { return _slayer;}
00044     int   nLayers(void)                 const { return _nLayers;}
00045     const MdcLayer* layer(int i)     const { /*yzhang SKIP assert ( i>=0 && i < nLayer() ) ;*/
00046 //    const MdcLayer* layer(int i)     const { assert ( i>=0 && i < _nLayers ) ;
00047                                                 return layers[i]; }
00048     void setNextInView(MdcSuperLayer* sl)  {_nextInView = sl;}
00049     void setPrevInView(MdcSuperLayer* sl)  {_prevInView = sl;}
00050     // One line printout
00051     void print(std::ostream& o=std::cout) const ;
00052 
00053 
00054   private:
00055     friend class MdcDetector;
00056     void addLayer(int index, const MdcLayer * lay);
00057     void updateInfo(const MdcSuperLayer* prev, const MdcSuperLayer* next);
00058 
00059   // Data members
00060     bool   _exist;
00061     double _radius;    // mean rad.
00062     double _delphi;    // diff in phi between z=0 and zend (=0 for axial
00063     double _delphiinv;
00064     int   _view;       // +1, 0, -1 = U, axial, V
00065     int _slayer;   // superlayer number
00066 
00067     const MdcLayer* layers[4];
00068     const MdcSuperLayer* _next;
00069     const MdcSuperLayer* _prev;
00070     const MdcSuperLayer* _nextInView;
00071     const MdcSuperLayer* _prevInView;
00072     int   _nLayers;    // number of layers
00073 
00074 };
00075 
00076 #endif /* MdcSuperLayer_CLASS */
00077 

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