BOSS 6.6.4.p03
BESIII Offline Software System
Loading...
Searching...
No Matches
MdcLayer Class Reference

#include <MdcLayer.h>

Public Member Functions

 MdcLayer (int lay, int nwir, MdcSWire **wires, const MdcDetector &theDet)
 
 ~MdcLayer ()
 
void print (std::ostream &o) const
 
bool exist (void) const
 
int view (void) const
 
int layNum (void) const
 
int nWires (void) const
 
int superLayer (void) const
 
int subLayer (void) const
 
double cellHeight (void) const
 
double stDip (void) const
 
double zEnd (void) const
 
double rMid (void) const
 
double rEnd (void) const
 
double rIn (void) const
 
double rOut (void) const
 
double stereo (void) const
 
double dPhiz (void) const
 
double zLength (void) const
 
double sag (void) const
 
double phiOffset (void) const
 
double phiEPOffset (void) const
 
double dPhizDC (double z) const
 
double radiusDC (double z) const
 
MdcSWiregetWire (int wire) const
 
double phiWireDC (int cell, double z) const
 
double phiWire (int cell) const
 
double xWire (int cell) const
 
double yWire (int cell) const
 
double dPhi (void) const
 
double cellWidth (void) const
 
double cellWidth (double z) const
 
const TrajectorymakeHitTrajInGlobalCoords (int wire, double z=0) const
 
void View (int v)
 
void setCellHeight (double height)
 

Detailed Description

Definition at line 15 of file MdcLayer.h.

Constructor & Destructor Documentation

◆ MdcLayer()

MdcLayer::MdcLayer ( int  lay,
int  nwir,
MdcSWire **  wires,
const MdcDetector theDet 
)

Definition at line 9 of file MdcLayer.cxx.

10 : _mdcDet(theDet), _exist(1), _layer(lay), _nwires(nwir),
11 _wires(wires)
12{
13 if (_nwires == 0) _exist = 0;
14 // set pointer to layer for wires
15 for (int wire=0; wire<_nwires; wire++) {
16 getWire(wire)->setLayerPtr(this);
17// _cells.push_back(buildCell(wire));
18 }
19
20 // get nominal values from wire # 0
21 _rend = wires[0]->rEnd();
22 _rmid = wires[0]->rMid();
23 _stdip = _rend - _rmid;
24 // in the local (DC) system frame
25 _zend = wires[0]->zEndDC();
26 _stereo = wires[0]->stereo();
27 // half twist angle
28 _delphi = wires[0]->dPhiz();
29 // stereo view
30 if((_layer>=0 && _layer<=7)||(_layer>=20&&_layer<=35)){
31 _view = (int)(_stereo/(fabs(_stereo)));
32 } else {
33 _view = 0;
34 }
35 _phiOffset = wires[0]->phiE();
36}
MdcSWire * getWire(int wire) const
Definition: MdcLayer.h:52
double rEnd(void) const
Definition: MdcSWire.h:43
double phiE(void) const
Definition: MdcSWire.h:51
double rMid(void) const
Definition: MdcSWire.h:50
double zEndDC(void) const
Definition: MdcSWire.h:49
double stereo(void) const
Definition: MdcSWire.h:53
void setLayerPtr(const MdcLayer *lay)
Definition: MdcSWire.h:74
double dPhiz(void) const
Definition: MdcSWire.h:48

◆ ~MdcLayer()

MdcLayer::~MdcLayer ( )
inline

Definition at line 22 of file MdcLayer.h.

22{};

Member Function Documentation

◆ cellHeight()

double MdcLayer::cellHeight ( void  ) const
inline

Definition at line 33 of file MdcLayer.h.

33{ return _cellHeight; }

Referenced by rIn(), and rOut().

◆ cellWidth() [1/2]

double MdcLayer::cellWidth ( double  z) const
inline

Definition at line 66 of file MdcLayer.h.

66{ return dPhi()*radiusDC(z)*cos(stereo()); }
double cos(const BesAngle a)
Definition: BesAngle.h:213
double radiusDC(double z) const
Definition: MdcLayer.h:51
double stereo(void) const
Definition: MdcLayer.h:42
double dPhi(void) const
Definition: MdcLayer.h:61

◆ cellWidth() [2/2]

double MdcLayer::cellWidth ( void  ) const
inline

Definition at line 64 of file MdcLayer.h.

64{ return dPhi()*rMid()*cos(stereo()); }
double rMid(void) const
Definition: MdcLayer.h:36

Referenced by print().

◆ dPhi()

double MdcLayer::dPhi ( void  ) const
inline

Definition at line 61 of file MdcLayer.h.

61{ return Constants::twoPi/nWires(); }
static const double twoPi
Definition: Constants.h:39
int nWires(void) const
Definition: MdcLayer.h:30

Referenced by cellWidth(), print(), and MdcxHit::process().

◆ dPhiz()

double MdcLayer::dPhiz ( void  ) const
inline

Definition at line 43 of file MdcLayer.h.

43{ return _delphi; }

Referenced by print().

◆ dPhizDC()

double MdcLayer::dPhizDC ( double  z) const
inline

Definition at line 50 of file MdcLayer.h.

50{ return phiWireDC(0, z); }
double phiWireDC(int cell, double z) const
Definition: MdcLayer.cxx:74

Referenced by print().

◆ exist()

bool MdcLayer::exist ( void  ) const
inline

Definition at line 27 of file MdcLayer.h.

27{ return _exist; }

◆ getWire()

MdcSWire * MdcLayer::getWire ( int  wire) const
inline

◆ layNum()

int MdcLayer::layNum ( void  ) const
inline

◆ makeHitTrajInGlobalCoords()

const Trajectory * MdcLayer::makeHitTrajInGlobalCoords ( int  wire,
double  z = 0 
) const

Definition at line 132 of file MdcLayer.cxx.

133{
134 if ( wire >= 0 && wire < nWires() ) {
135 return getWire(wire)->getTraj();
136 } else {
137 std::cout << "Error In makeHitTrajInGlobalCoords: wrong cell # "<< wire << "\n"
138 <<" number of cells in this layer is " << nWires() << std::endl;
139 return getWire(0)->getTraj();
140 }
141}
const MdcSagTraj * getTraj(void) const
Definition: MdcSWire.h:34

Referenced by MdcHit::hitTraj().

◆ nWires()

◆ phiEPOffset()

double MdcLayer::phiEPOffset ( void  ) const
inline

Definition at line 49 of file MdcLayer.h.

49{ return _phiOffset; }

Referenced by print().

◆ phiOffset()

double MdcLayer::phiOffset ( void  ) const
inline

Definition at line 47 of file MdcLayer.h.

47{ return phiWire(0); }
double phiWire(int cell) const
Definition: MdcLayer.cxx:87

Referenced by MdcSeg::addHits(), print(), and MdcxHit::process().

◆ phiWire()

double MdcLayer::phiWire ( int  cell) const

Definition at line 87 of file MdcLayer.cxx.

88{
89 // in the middle of the chamber
90 if ( cell >= 0 && cell < nWires() ) {
91 return getWire(cell)->phi();
92 } else {
93 std::cout << "phiWire: wrong cell # " << cell << "\n"
94 << " number of cells in this layer is " << nWires()
95 << std::endl;
96 return 0.;
97 }
98}
double phi(void) const
Definition: MdcSWire.h:52

Referenced by MdcTrkRecon::fillEvent(), phiOffset(), and print().

◆ phiWireDC()

double MdcLayer::phiWireDC ( int  cell,
double  z 
) const

Definition at line 74 of file MdcLayer.cxx.

75{
76 if ( cell >= 0 && cell < nWires() ) {
77 return getWire(cell)->phiDC(z);
78 } else {
79 std::cout << "phiWireDC: wrong cell # " << cell << "\n"
80 << " number of cells in this layer is " << nWires()
81 << std::endl;
82 return 0.;
83 }
84}
double phiDC(double z) const
Definition: MdcSWire.h:60

Referenced by dPhizDC(), and print().

◆ print()

void MdcLayer::print ( std::ostream &  o) const

Definition at line 41 of file MdcLayer.cxx.

42{
43 o<< setw(3)<<layNum()<<
44 setw(3)<<view()<<
45 setw(4)<<nWires()<<
46 setw(3)<<superLayer()<<
47 setw(3)<<subLayer()<<
48 setw(10)<<stDip()<<
49 setw(10)<<zEnd()<<
50 setw(10)<<rMid()<<
51 setw(10)<<rEnd()<<
52 setw(10)<<rIn()<<
53 setw(10)<<rOut()<<
54 setw(10)<<stereo()<<
55 setw(10)<<dPhiz()<<
56 setw(7)<<zLength()<<
57 setw(10)<<sag()<<
58 setw(10)<<dPhi()<<
59 setw(10)<<phiOffset()<<
60 setw(10)<<phiEPOffset()<<
61 setw(10)<<dPhizDC(0.)<<
62 setw(10)<<radiusDC(0.)<<
63 setw(10)<<phiWireDC(0,0.)<<
64 setw(10)<<phiWire(0)<<
65 setw(10)<<xWire(0)<<
66 setw(10)<<yWire(0)<<
67 setw(10)<<cellWidth()<<
68 setw(10)<<cellWidth(0.)<<
69 std::endl;
70}
double yWire(int cell) const
Definition: MdcLayer.cxx:115
double zEnd(void) const
Definition: MdcLayer.h:35
double phiOffset(void) const
Definition: MdcLayer.h:47
double sag(void) const
Definition: MdcLayer.h:45
double zLength(void) const
Definition: MdcLayer.h:44
double phiEPOffset(void) const
Definition: MdcLayer.h:49
double cellWidth(void) const
Definition: MdcLayer.h:64
double rEnd(void) const
Definition: MdcLayer.h:37
double stDip(void) const
Definition: MdcLayer.h:34
double dPhizDC(double z) const
Definition: MdcLayer.h:50
int superLayer(void) const
Definition: MdcLayer.h:31
double rOut(void) const
Definition: MdcLayer.h:39
int view(void) const
Definition: MdcLayer.h:28
double dPhiz(void) const
Definition: MdcLayer.h:43
int subLayer(void) const
Definition: MdcLayer.h:32
int layNum(void) const
Definition: MdcLayer.h:29
double xWire(int cell) const
Definition: MdcLayer.cxx:101
double rIn(void) const
Definition: MdcLayer.h:38

◆ radiusDC()

double MdcLayer::radiusDC ( double  z) const
inline

Definition at line 51 of file MdcLayer.h.

51{ return getWire(0)->radiusDC(z); }
double radiusDC(double z) const
Definition: MdcSWire.h:57

Referenced by cellWidth(), and print().

◆ rEnd()

double MdcLayer::rEnd ( void  ) const
inline

Definition at line 37 of file MdcLayer.h.

37{ return _rend; }

Referenced by MdcTrackList::pickHits(), and print().

◆ rIn()

double MdcLayer::rIn ( void  ) const
inline

Definition at line 38 of file MdcLayer.h.

38{ return rMid() - 0.5 * cellHeight(); }//yzhang del
double cellHeight(void) const
Definition: MdcLayer.h:33

Referenced by MdcTrackList::pickHits(), and print().

◆ rMid()

double MdcLayer::rMid ( void  ) const
inline

◆ rOut()

double MdcLayer::rOut ( void  ) const
inline

Definition at line 39 of file MdcLayer.h.

39{ return rMid() + 0.5 * cellHeight(); }//yzhang del

Referenced by MdcTrackList::pickHits(), and print().

◆ sag()

double MdcLayer::sag ( void  ) const
inline

Definition at line 45 of file MdcLayer.h.

45{ return getWire(0)->getSag(); }
double getSag(void) const
Definition: MdcSWire.h:31

Referenced by print().

◆ setCellHeight()

void MdcLayer::setCellHeight ( double  height)
inline

Definition at line 77 of file MdcLayer.h.

77{ _cellHeight = height; }

◆ stDip()

double MdcLayer::stDip ( void  ) const
inline

Definition at line 34 of file MdcLayer.h.

34{ return _stdip; }

Referenced by print(), and MdcSuperLayer::stDip().

◆ stereo()

double MdcLayer::stereo ( void  ) const
inline

Definition at line 42 of file MdcLayer.h.

42{ return _stereo; }

Referenced by cellWidth(), print(), and MdcxHit::process().

◆ subLayer()

int MdcLayer::subLayer ( void  ) const
inline

Definition at line 32 of file MdcLayer.h.

32{ return layNum()-4*(superLayer()-1);}

Referenced by print().

◆ superLayer()

int MdcLayer::superLayer ( void  ) const
inline

Definition at line 31 of file MdcLayer.h.

31{ return 1+((layNum()-1)/4);}

Referenced by print(), and subLayer().

◆ View()

void MdcLayer::View ( int  v)
inline

Definition at line 76 of file MdcLayer.h.

76{ _view = v; }
**********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

◆ view()

int MdcLayer::view ( void  ) const
inline

◆ xWire()

double MdcLayer::xWire ( int  cell) const

Definition at line 101 of file MdcLayer.cxx.

102{
103 // in the middle of the chamber
104 if ( cell >= 0 && cell < nWires() ) {
105 return getWire(cell)->xMid();
106 } else {
107 std::cout << "xWire: wrong cell # " << cell << "\n"
108 << " number of cells in this layer is " << nWires()
109 << std::endl;
110 return 0.;
111 }
112}
double xMid(void) const
Definition: MdcSWire.h:41

Referenced by print(), and MdcxHit::process().

◆ yWire()

double MdcLayer::yWire ( int  cell) const

Definition at line 115 of file MdcLayer.cxx.

116{
117 // in the middle of the chamber
118 if ( cell >= 0 && cell < nWires() ) {
119 return getWire(cell)->yMid();
120 } else {
121 std::cout << "YWire: wrong cell # " << cell << "\n"
122 << " number of cells in this layer is " << nWires()
123 << std::endl;
124 return 0.;
125 }
126}
double yMid(void) const
Definition: MdcSWire.h:42

Referenced by print(), and MdcxHit::process().

◆ zEnd()

double MdcLayer::zEnd ( void  ) const
inline

Definition at line 35 of file MdcLayer.h.

35{ return _zend; }

Referenced by print(), and MdcSuperLayer::zEnd().

◆ zLength()

double MdcLayer::zLength ( void  ) const
inline

Definition at line 44 of file MdcLayer.h.

44{ return getWire(0)->zLength(); }
double zLength(void) const
Definition: MdcSWire.h:47

Referenced by MdcHit::MdcHit(), MdcHitOnTrack::MdcHitOnTrack(), print(), and MdcxHit::process().


The documentation for this class was generated from the following files: