BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Reconstruction/MdcPatRec/MdcGeom/include/MdcGeom/MdcLayer.h
Go to the documentation of this file.
1// $Id: MdcLayer.h,v 1.2 2009/12/17 00:38:40 zhangy Exp $ // -*-c++-*-
2// header file for a class called "MdcLayer"
3#ifndef MDCLAYER_H
4#define MDCLAYER_H
5
6#include "MdcGeom/Constants.h"
7#include "MdcGeom/MdcSWire.h"
8#include <CLHEP/Geometry/Point3D.h>
9#include <iostream>
10#include <vector>
11
12class MdcDetector;
13class Trajectory;
14
15class MdcLayer {
16
17public:
18 // Constructor.
19 MdcLayer( int lay, int nwir, MdcSWire** wires, const MdcDetector& theDet );
20
21 // Destructor
23
24 void print( std::ostream& o ) const;
25
26public: // Extractors
27 bool exist( void ) const { return _exist; }
28 int view( void ) const { return _view; }
29 int layNum( void ) const { return _layer; }
30 int nWires( void ) const { return _nwires; }
31 int superLayer( void ) const { return 1 + ( ( layNum() - 1 ) / 4 ); }
32 int subLayer( void ) const { return layNum() - 4 * ( superLayer() - 1 ); }
33 double cellHeight( void ) const { return _cellHeight; }
34 double stDip( void ) const { return _stdip; }
35 double zEnd( void ) const { return _zend; }
36 double rMid( void ) const { return _rmid; }
37 double rEnd( void ) const { return _rend; }
38 double rIn( void ) const { return rMid() - 0.5 * cellHeight(); } // yzhang del
39 double rOut( void ) const { return rMid() + 0.5 * cellHeight(); } // yzhang del
40 // double rIn(void) const { return rMid() - RCSiz1(); }//yzhang change FIXME
41 // double rOut(void) const { return rMid() + RCSiz2(); }//yzhang change FIXME
42 double stereo( void ) const { return _stereo; }
43 double dPhiz( void ) const { return _delphi; }
44 double zLength( void ) const { return getWire( 0 )->zLength(); }
45 double sag( void ) const { return getWire( 0 )->getSag(); }
46 // this function returns the phi offset in the middle of the chamber
47 double phiOffset( void ) const { return phiWire( 0 ); }
48 // this function returns the cell offset w.r.t rear end-plate
49 double phiEPOffset( void ) const { return _phiOffset; }
50 double dPhizDC( double z ) const { return phiWireDC( 0, z ); }
51 double radiusDC( double z ) const { return getWire( 0 )->radiusDC( z ); }
52 MdcSWire* getWire( int wire ) const { return _wires[wire]; }
53 // int view(void) const { return _view; }
54 // TrkEnums::TrkViewInfo whatView() const {
55 // return _view==0?TrkEnums::xyView:TrkEnums::bothView;
56 // }
57 double phiWireDC( int cell, double z ) const;
58 double phiWire( int cell ) const;
59 double xWire( int cell ) const;
60 double yWire( int cell ) const;
61 double dPhi( void ) const { return Constants::twoPi / nWires(); }
62 // return the width of the cell at mid chamber corrected by the
63 // stereo angle
64 double cellWidth( void ) const { return dPhi() * rMid() * cos( stereo() ); }
65 // return the width of the cell at z along the chamber
66 double cellWidth( double z ) const { return dPhi() * radiusDC( z ) * cos( stereo() ); }
67
68 // const MdcSuperLayer SLayer(void) const {return *_sLay;}
69
70 const Trajectory* makeHitTrajInGlobalCoords( int wire, double z = 0 ) const;
71
72public: // Modifiers
73 void View( int v ) { _view = v; }
74 void setCellHeight( double height ) { _cellHeight = height; }
75
76private:
77 const MdcDetector& _mdcDet; // Reference to layer's owner (for whichCells)
78
79 bool _exist; // this layer exist ?
80 int _layer; // layer number
81 int _nwires; // number of wires
82 MdcSWire** _wires; // array of pointers to hits on wires
83 // const MdcSuperLayer* _sLay; // pointer to SuperLayer
84
85 double _stdip; // change in radius from mid to end - nominal
86 // value
87 double _rend; // radius on rear end-plate
88 double _rmid; // radius in the center of the chamber
89 double _zend; // z position of end-plate (in the local reference system)
90 double _stereo; // stereo angle
91 double _delphi; // twist angle between mid and rear chamber
92 double _phiOffset; // offset of first cell
93 double _cellHeight; // cell height
94 int _view; // +1, 0, -1: U, axial, V
95
96 // private:
97 // friend class MdcDetector;
98 // void updateInfo(std::vector<MdcSWire *>::const_iterator it);
99};
100
101#endif /* MdcLayer_CLASS */
**********Class see also m_nmax DOUBLE PRECISION m_amel DOUBLE PRECISION m_x2 DOUBLE PRECISION m_alfinv DOUBLE PRECISION m_Xenph INTEGER m_KeyWtm INTEGER m_idyfs DOUBLE PRECISION m_zini DOUBLE PRECISION m_q2 DOUBLE PRECISION m_Wt_KF DOUBLE PRECISION m_WtCut INTEGER m_KFfin *COMMON c_KarLud $ !Input CMS energy[GeV] $ !CMS energy after beam spread beam strahlung[GeV] $ !Beam energy spread[GeV] $ !z boost due to beam spread $ !electron beam mass *ff pair spectrum $ !minimum v
Definition KarLud.h:35
const Trajectory * makeHitTrajInGlobalCoords(int wire, double z=0) const
double yWire(int cell) const
MdcLayer(int lay, int nwir, MdcSWire **wires, const MdcDetector &theDet)
double phiWire(int cell) const
Definition MdcLayer.cxx:57
double phiWireDC(int cell, double z) const
Definition MdcLayer.cxx:47
void print(std::ostream &o) const
double xWire(int cell) const