BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Reconstruction/MdcPatRec/MdcGeom/include/MdcGeom/MdcSuperLayer.h
Go to the documentation of this file.
1// $Id: MdcSuperLayer.h,v 1.1.1.1 2005/07/18 05:51:56 codeman Exp $ // -*-c++-*-
2// header file for a class called "MdcSuperLayer"
3#ifndef __MDCSUPERLAYER_H__
4#define __MDCSUPERLAYER_H__
5
6#include "MdcGeom/MdcLayer.h"
7#include <iostream>
8
9class MdcSuperLayer {
10
11public:
12 // Constructor.
13 MdcSuperLayer( int number );
14
15 // Destructor
17
18public: // Extractors
19 int index( void ) const { return _slayer; }
20 int whichView( void ) const { return _view; }
21 bool exist( void ) const { return _exist; }
22 double rEnd( void ) const { return _radius; }
23 double rad0( void ) const { return 0.5 * ( firstLayer()->rMid() + lastLayer()->rMid() ); }
24 double zEnd( void ) const { return 0.5 * ( firstLayer()->zEnd() + lastLayer()->zEnd() ); }
25 double stDip( void ) const { return 0.5 * ( firstLayer()->stDip() + lastLayer()->stDip() ); }
26 double delPhi( void ) const { return _delphi; }
27 double delPhiinv( void ) const { return _delphiinv; }
28 //----------------------------------------------------------
29 // here |index| is the index of array of pointers to layers
30 // belonging to the superlayer, so this ramges from 0 to 3
31 //----------------------------------------------------------
32
33 const MdcLayer* firstLayer( void ) const { return layers[0]; }
34 const MdcLayer* lastLayer( void ) const { return layers[_nLayers - 1]; }
35 const MdcSuperLayer* next( void ) const { return _next; }
36 const MdcSuperLayer* prev( void ) const { return _prev; }
37 const MdcSuperLayer* nextInView( void ) const { return _nextInView; }
38 const MdcSuperLayer* prevInView( void ) const { return _prevInView; }
39 int slayNum( void ) const { return _slayer; }
40 int nLayers( void ) const { return _nLayers; }
41 const MdcLayer* layer( int i ) const { /*yzhang SKIP assert ( i>=0 && i < nLayer() ) ;*/
42 // const MdcLayer* layer(int i) const { assert ( i>=0 && i < _nLayers ) ;
43 return layers[i];
44 }
45 void setNextInView( MdcSuperLayer* sl ) { _nextInView = sl; }
46 void setPrevInView( MdcSuperLayer* sl ) { _prevInView = sl; }
47 // One line printout
48 void print( std::ostream& o = std::cout ) const;
49
50private:
51 friend class MdcDetector;
52 void addLayer( int index, const MdcLayer* lay );
53 void updateInfo( const MdcSuperLayer* prev, const MdcSuperLayer* next );
54
55 // Data members
56 bool _exist;
57 double _radius; // mean rad.
58 double _delphi; // diff in phi between z=0 and zend (=0 for axial
59 double _delphiinv;
60 int _view; // +1, 0, -1 = U, axial, V
61 int _slayer; // superlayer number
62
63 const MdcLayer* layers[4];
64 const MdcSuperLayer* _next;
65 const MdcSuperLayer* _prev;
66 const MdcSuperLayer* _nextInView;
67 const MdcSuperLayer* _prevInView;
68 int _nLayers; // number of layers
69};
70
71#endif /* MdcSuperLayer_CLASS */
void print(std::ostream &o=std::cout) const
MdcSuperLayer(int number)