#include <MdcLayer.h>
Public Member Functions | |
double | cellHeight (void) const |
double | cellHeight (void) const |
double | cellWidth (double z) const |
double | cellWidth (void) const |
double | cellWidth (double z) const |
double | cellWidth (void) const |
double | dPhi (void) const |
double | dPhi (void) const |
double | dPhiz (void) const |
double | dPhiz (void) const |
double | dPhizDC (double z) const |
double | dPhizDC (double z) const |
bool | exist (void) const |
bool | exist (void) const |
MdcSWire * | getWire (int wire) const |
MdcSWire * | getWire (int wire) const |
int | layNum (void) const |
int | layNum (void) const |
const Trajectory * | makeHitTrajInGlobalCoords (int wire, double z=0) const |
const Trajectory * | makeHitTrajInGlobalCoords (int wire, double z=0) const |
MdcLayer (int lay, int nwir, MdcSWire **wires, const MdcDetector &theDet) | |
MdcLayer (int lay, int nwir, MdcSWire **wires, const MdcDetector &theDet) | |
int | nWires (void) const |
int | nWires (void) const |
double | phiEPOffset (void) const |
double | phiEPOffset (void) const |
double | phiOffset (void) const |
double | phiOffset (void) const |
double | phiWire (int cell) const |
double | phiWire (int cell) const |
double | phiWireDC (int cell, double z) const |
double | phiWireDC (int cell, double z) const |
void | print (std::ostream &o) const |
void | print (std::ostream &o) const |
double | radiusDC (double z) const |
double | radiusDC (double z) const |
double | rEnd (void) const |
double | rEnd (void) const |
double | rIn (void) const |
double | rIn (void) const |
double | rMid (void) const |
double | rMid (void) const |
double | rOut (void) const |
double | rOut (void) const |
double | sag (void) const |
double | sag (void) const |
void | setCellHeight (double height) |
void | setCellHeight (double height) |
double | stDip (void) const |
double | stDip (void) const |
double | stereo (void) const |
double | stereo (void) const |
int | subLayer (void) const |
int | subLayer (void) const |
int | superLayer (void) const |
int | superLayer (void) const |
void | View (int v) |
int | view (void) const |
void | View (int v) |
int | view (void) const |
double | xWire (int cell) const |
double | xWire (int cell) const |
double | yWire (int cell) const |
double | yWire (int cell) const |
double | zEnd (void) const |
double | zEnd (void) const |
double | zLength (void) const |
double | zLength (void) const |
~MdcLayer () | |
~MdcLayer () | |
Private Attributes | |
double | _cellHeight |
double | _delphi |
bool | _exist |
int | _layer |
const MdcDetector & | _mdcDet |
const MdcDetector & | _mdcDet |
int | _nwires |
double | _phiOffset |
double | _rend |
double | _rmid |
double | _stdip |
double | _stereo |
int | _view |
MdcSWire ** | _wires |
MdcSWire ** | _wires |
double | _zend |
|
00010 : _mdcDet(theDet), _exist(1), _layer(lay), _nwires(nwir), 00011 _wires(wires) 00012 { 00013 if (_nwires == 0) _exist = 0; 00014 // set pointer to layer for wires 00015 for (int wire=0; wire<_nwires; wire++) { 00016 getWire(wire)->setLayerPtr(this); 00017 // _cells.push_back(buildCell(wire)); 00018 } 00019 00020 // get nominal values from wire # 0 00021 _rend = wires[0]->rEnd(); 00022 _rmid = wires[0]->rMid(); 00023 _stdip = _rend - _rmid; 00024 // in the local (DC) system frame 00025 _zend = wires[0]->zEndDC(); 00026 _stereo = wires[0]->stereo(); 00027 // half twist angle 00028 _delphi = wires[0]->dPhiz(); 00029 // stereo view 00030 if((_layer>=0 && _layer<=7)||(_layer>=20&&_layer<=35)){ 00031 _view = (int)(_stereo/(fabs(_stereo))); 00032 } else { 00033 _view = 0; 00034 } 00035 _phiOffset = wires[0]->phiE(); 00036 }
|
|
00022 {};
|
|
|
|
00022 {};
|
|
00033 { return _cellHeight; }
|
|
00033 { return _cellHeight; }
|
|
|
|
|
|
|
|
|
|
00061 { return Constants::twoPi/nWires(); }
|
|
00061 { return Constants::twoPi/nWires(); }
|
|
00043 { return _delphi; }
|
|
00043 { return _delphi; }
|
|
00050 { return phiWireDC(0, z); }
|
|
00050 { return phiWireDC(0, z); }
|
|
00027 { return _exist; }
|
|
00027 { return _exist; }
|
|
00052 { return _wires[wire]; }
|
|
00052 { return _wires[wire]; }
|
|
00029 { return _layer; }
|
|
00029 { return _layer; }
|
|
|
|
00133 { 00134 if ( wire >= 0 && wire < nWires() ) { 00135 return getWire(wire)->getTraj(); 00136 } else { 00137 std::cout << "Error In makeHitTrajInGlobalCoords: wrong cell # "<< wire << "\n" 00138 <<" number of cells in this layer is " << nWires() << std::endl; 00139 return getWire(0)->getTraj(); 00140 } 00141 }
|
|
00030 { return _nwires; }
|
|
00030 { return _nwires; }
|
|
00049 { return _phiOffset; }
|
|
00049 { return _phiOffset; }
|
|
00047 { return phiWire(0); }
|
|
00047 { return phiWire(0); }
|
|
|
|
00088 { 00089 // in the middle of the chamber 00090 if ( cell >= 0 && cell < nWires() ) { 00091 return getWire(cell)->phi(); 00092 } else { 00093 std::cout << "phiWire: wrong cell # " << cell << "\n" 00094 << " number of cells in this layer is " << nWires() 00095 << std::endl; 00096 return 0.; 00097 } 00098 }
|
|
|
|
00075 { 00076 if ( cell >= 0 && cell < nWires() ) { 00077 return getWire(cell)->phiDC(z); 00078 } else { 00079 std::cout << "phiWireDC: wrong cell # " << cell << "\n" 00080 << " number of cells in this layer is " << nWires() 00081 << std::endl; 00082 return 0.; 00083 } 00084 }
|
|
|
|
00042 { 00043 o<< setw(3)<<layNum()<< 00044 setw(3)<<view()<< 00045 setw(4)<<nWires()<< 00046 setw(3)<<superLayer()<< 00047 setw(3)<<subLayer()<< 00048 setw(10)<<stDip()<< 00049 setw(10)<<zEnd()<< 00050 setw(10)<<rMid()<< 00051 setw(10)<<rEnd()<< 00052 setw(10)<<rIn()<< 00053 setw(10)<<rOut()<< 00054 setw(10)<<stereo()<< 00055 setw(10)<<dPhiz()<< 00056 setw(7)<<zLength()<< 00057 setw(10)<<sag()<< 00058 setw(10)<<dPhi()<< 00059 setw(10)<<phiOffset()<< 00060 setw(10)<<phiEPOffset()<< 00061 setw(10)<<dPhizDC(0.)<< 00062 setw(10)<<radiusDC(0.)<< 00063 setw(10)<<phiWireDC(0,0.)<< 00064 setw(10)<<phiWire(0)<< 00065 setw(10)<<xWire(0)<< 00066 setw(10)<<yWire(0)<< 00067 setw(10)<<cellWidth()<< 00068 setw(10)<<cellWidth(0.)<< 00069 std::endl; 00070 }
|
|
|
|
|
|
00037 { return _rend; }
|
|
00037 { return _rend; }
|
|
00038 { return rMid() - 0.5 * cellHeight(); }//yzhang del
|
|
00038 { return rMid() - 0.5 * cellHeight(); }//yzhang del
|
|
00036 { return _rmid; }
|
|
00036 { return _rmid; }
|
|
00039 { return rMid() + 0.5 * cellHeight(); }//yzhang del
|
|
00039 { return rMid() + 0.5 * cellHeight(); }//yzhang del
|
|
|
|
|
|
00077 { _cellHeight = height; }
|
|
00077 { _cellHeight = height; }
|
|
00034 { return _stdip; }
|
|
00034 { return _stdip; }
|
|
00042 { return _stereo; }
|
|
00042 { return _stereo; }
|
|
00032 { return layNum()-4*(superLayer()-1);}
|
|
00032 { return layNum()-4*(superLayer()-1);}
|
|
00031 { return 1+((layNum()-1)/4);}
|
|
00031 { return 1+((layNum()-1)/4);}
|
|
00076 { _view = v; }
|
|
00028 { return _view; }
|
|
00076 { _view = v; }
|
|
00028 { return _view; }
|
|
|
|
00102 { 00103 // in the middle of the chamber 00104 if ( cell >= 0 && cell < nWires() ) { 00105 return getWire(cell)->xMid(); 00106 } else { 00107 std::cout << "xWire: wrong cell # " << cell << "\n" 00108 << " number of cells in this layer is " << nWires() 00109 << std::endl; 00110 return 0.; 00111 } 00112 }
|
|
|
|
00116 { 00117 // in the middle of the chamber 00118 if ( cell >= 0 && cell < nWires() ) { 00119 return getWire(cell)->yMid(); 00120 } else { 00121 std::cout << "YWire: wrong cell # " << cell << "\n" 00122 << " number of cells in this layer is " << nWires() 00123 << std::endl; 00124 return 0.; 00125 } 00126 }
|
|
00035 { return _zend; }
|
|
00035 { return _zend; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|