BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
FTWire Class Reference

#include <FTWire.h>

Public Member Functions

 FTWire (const float x, const float y, const float dx, const float dy, const int wireId, FTLayer *layer, const float phi)
 constructors
 FTWire ()
 ~FTWire ()
 destructor
void initNeighbor ()
 initNeighbor
const float x () const
 returns position x
const float y () const
 returns position y
float phi () const
 returns phi
const int localId () const
 returns local ID
FTLayerlayer () const
 returns layer
array< FTWire *, 6 > & getNeighbors ()
 returns pointer of neighbor array
float distance () const
 returns drift distance
float distance_z () const
 returns z_distance from the center of wire by drift distance
float t0 () const
 returns t0 read at begin run
float pedestal () const
 returns pedestal read at begin run
unsigned state () const
 returns state
unsigned stateAND (const unsigned mask) const
 returns state bit
int z (const Lpav &la, double &z) const
 returns z for track la
float time () const
 rerurns TDC time(after t0 subtraction)
float getAdc () const
float getChi2 () const
void clear ()
 clear
float distance (const float distance)
 set drift distance
float t0 (const float t0)
 set t0 at begin-run
float pedestal (const float ped)
 set pedestal at begin-run
unsigned state (const unsigned state)
 set state
void setState (const unsigned state)
 set state directly
void stateOR (const unsigned mask)
 set state bit
void stateXOR (const unsigned mask)
 invert state bit
void stateORXOR (const unsigned mask)
 reset state bit
void chk_left_and_right ()
 check neighbors of phi-side and raise invalid flag if both hits
float time (float t)
 reset time
void wireId (int wireID)
 set wireId
int getWireId ()
 get wireId
void setAdc (float adc)
 wangdy add:set Adc value
void setChi2 (float chi2)
 set residual fit chi2

Detailed Description

Definition at line 33 of file FTWire.h.

Constructor & Destructor Documentation

◆ FTWire() [1/2]

FTWire::FTWire ( const float x,
const float y,
const float dx,
const float dy,
const int wireId,
FTLayer * layer,
const float phi )

constructors

Definition at line 8 of file FTWire.cxx.

10 : _x( x ) // x position in z = 0;
11 , _y( y ) // y position in z = 0;
12 , _dx( dx )
13 , _dy( dy )
14 , _wireId( wireId )
15 , _distance( 0 )
16 , _t0( 0 )
17 , _time( 0 )
18 , m_adc( 0 )
19 , _pedestal( 0 )
20 , _layer( layer )
21 , _phi( phi )
22 , _state( FTWireHitInvalid ) {
23 _neighbor.fill( nullptr );
24}
#define FTWireHitInvalid
Definition FTWire.h:4
NTuple::Array< double > m_adc
FTLayer * layer() const
returns layer
Definition FTWire.h:60
void wireId(int wireID)
set wireId
Definition FTWire.h:132
const float x() const
returns position x
Definition FTWire.h:48
float phi() const
returns phi
Definition FTWire.h:54
const float y() const
returns position y
Definition FTWire.h:51

◆ FTWire() [2/2]

FTWire::FTWire ( )

Definition at line 26 of file FTWire.cxx.

27 : _x( 0 )
28 , _y( 0 )
29 , _dx( 0 )
30 , _dy( 0 )
31 , _layer( nullptr )
32 , _phi( 0 )
33 , _distance( 0 )
34 , _t0( 0 )
35 , _time( 0 )
36 , m_adc( 0 )
37 , _pedestal( 0 )
38 , _state( FTWireHitInvalid ) {
39 _neighbor.fill( nullptr );
40}

◆ ~FTWire()

FTWire::~FTWire ( )
inline

destructor

Definition at line 41 of file FTWire.h.

41{}

Member Function Documentation

◆ chk_left_and_right()

void FTWire::chk_left_and_right ( )

check neighbors of phi-side and raise invalid flag if both hits

Definition at line 189 of file FTWire.cxx.

189 {
190 if ( ( _neighbor[2]->state() & FTWireHit ) && ( _neighbor[3]->state() & FTWireHit ) )
191 {
192 _state |= FTWireHitInvalid;
193 _neighbor[2]->setState( _neighbor[2]->state() | FTWireHitInvalid );
194 _neighbor[3]->setState( _neighbor[3]->state() | FTWireHitInvalid );
195 }
196}
#define FTWireHit
Definition FTWire.h:3
unsigned state() const
returns state
Definition FTWire.h:78

◆ clear()

void FTWire::clear ( )

clear

Definition at line 148 of file FTWire.cxx.

148 {
149 _distance = 0.;
150 _time = 0.;
151 _t0 = 0.;
152 m_adc = 0.0;
153 _pedestal = 0.;
154 _state = FTWireHitInvalid;
155}

◆ distance() [1/2]

float FTWire::distance ( ) const
inline

returns drift distance

Definition at line 66 of file FTWire.h.

66{ return _distance; }

Referenced by distance(), FTTrack::r_phi2Fit(), FTTrack::r_phi3Fit(), FTTrack::r_phi4Fit(), FTTrack::r_phiFit(), FTTrack::r_phiReFit(), and FTTrack::s_zFit().

◆ distance() [2/2]

float FTWire::distance ( const float distance)
inline

set drift distance

Definition at line 100 of file FTWire.h.

100{ return _distance = distance; }
float distance() const
returns drift distance
Definition FTWire.h:66

◆ distance_z()

float FTWire::distance_z ( ) const

returns z_distance from the center of wire by drift distance

Definition at line 46 of file FTWire.cxx.

46{ return _distance * std::fabs( _layer->tanSlant() ); }

◆ getAdc()

float FTWire::getAdc ( ) const
inline

Definition at line 90 of file FTWire.h.

90{ return m_adc; }

◆ getChi2()

float FTWire::getChi2 ( ) const
inline

Definition at line 93 of file FTWire.h.

93{ return m_chi2; }

◆ getNeighbors()

array< FTWire *, 6 > & FTWire::getNeighbors ( )
inline

returns pointer of neighbor array

Definition at line 63 of file FTWire.h.

63{ return _neighbor; }

◆ getWireId()

int FTWire::getWireId ( )
inline

get wireId

Definition at line 135 of file FTWire.h.

135{ return _wireId; }

◆ initNeighbor()

void FTWire::initNeighbor ( )

initNeighbor

Definition at line 48 of file FTWire.cxx.

48 {
49 getInnerNeighbor();
50 getMidNeighbor();
51 getOuterNeighbor();
52}

◆ layer()

FTLayer * FTWire::layer ( ) const
inline

returns layer

Definition at line 60 of file FTWire.h.

60{ return _layer; }

Referenced by FTWire(), FTTrack::r_phi2Fit(), FTTrack::r_phi3Fit(), FTTrack::r_phi4Fit(), FTTrack::r_phiFit(), FTTrack::r_phiReFit(), and FTTrack::s_zFit().

◆ localId()

const int FTWire::localId ( ) const

returns local ID

Definition at line 42 of file FTWire.cxx.

42 {
43 return FTGeom::instance()->wire2wireIndexLayer( _wireId );
44}
static FTGeom * instance()
Definition FTGeom.cxx:162
const int wire2wireIndexLayer(const int wire_id)
Definition FTGeom.h:78

◆ pedestal() [1/2]

float FTWire::pedestal ( ) const
inline

returns pedestal read at begin run

Definition at line 75 of file FTWire.h.

75{ return _pedestal; }

◆ pedestal() [2/2]

float FTWire::pedestal ( const float ped)
inline

set pedestal at begin-run

Definition at line 106 of file FTWire.h.

106{ return _pedestal = ped; }

◆ phi()

float FTWire::phi ( ) const
inline

returns phi

Definition at line 54 of file FTWire.h.

54{ return _phi; }

Referenced by FTWire().

◆ setAdc()

void FTWire::setAdc ( float adc)
inline

wangdy add:set Adc value

Definition at line 138 of file FTWire.h.

138{ m_adc = adc; }

◆ setChi2()

void FTWire::setChi2 ( float chi2)
inline

set residual fit chi2

Definition at line 141 of file FTWire.h.

141{ m_chi2 = chi2; }

Referenced by FTTrack::r_phi4Fit(), and FTTrack::r_phiReFit().

◆ setState()

void FTWire::setState ( const unsigned state)
inline

set state directly

Definition at line 114 of file FTWire.h.

114{ _state = state; }

◆ state() [1/2]

unsigned FTWire::state ( ) const
inline

returns state

Definition at line 78 of file FTWire.h.

78{ return _state; }

Referenced by chk_left_and_right(), setState(), and state().

◆ state() [2/2]

unsigned FTWire::state ( const unsigned state)
inline

set state

Definition at line 109 of file FTWire.h.

109 {
110 return _state = ( _state & FTWireStateMask ) | state;
111 }
#define FTWireStateMask
Definition FTWire.h:19

◆ stateAND()

unsigned FTWire::stateAND ( const unsigned mask) const
inline

returns state bit

Definition at line 81 of file FTWire.h.

81{ return _state & mask; }

Referenced by FTTrack::r_phiFit().

◆ stateOR()

void FTWire::stateOR ( const unsigned mask)
inline

set state bit

Definition at line 117 of file FTWire.h.

117{ _state |= mask; }

Referenced by FTTrack::r_phi2Fit(), FTTrack::r_phi3Fit(), FTTrack::r_phi4Fit(), FTTrack::r_phiFit(), and FTTrack::r_phiReFit().

◆ stateORXOR()

void FTWire::stateORXOR ( const unsigned mask)
inline

reset state bit

Definition at line 123 of file FTWire.h.

123{ _state = ( _state | mask ) ^ mask; }

◆ stateXOR()

void FTWire::stateXOR ( const unsigned mask)
inline

invert state bit

Definition at line 120 of file FTWire.h.

120{ _state ^= mask; }

◆ t0() [1/2]

float FTWire::t0 ( ) const
inline

returns t0 read at begin run

Definition at line 72 of file FTWire.h.

72{ return _t0; }

Referenced by t0().

◆ t0() [2/2]

float FTWire::t0 ( const float t0)
inline

set t0 at begin-run

Definition at line 103 of file FTWire.h.

103{ return _t0 = t0; }
float t0() const
returns t0 read at begin run
Definition FTWire.h:72

◆ time() [1/2]

float FTWire::time ( ) const
inline

rerurns TDC time(after t0 subtraction)

Definition at line 87 of file FTWire.h.

87{ return _time; }

Referenced by FTTrack::r_phi2Fit(), FTTrack::r_phi3Fit(), FTTrack::r_phi4Fit(), FTTrack::r_phiReFit(), and FTTrack::s_zFit().

◆ time() [2/2]

float FTWire::time ( float t)
inline

reset time

Definition at line 129 of file FTWire.h.

129{ return _time = t; }
int t()
Definition t.c:1

◆ wireId()

void FTWire::wireId ( int wireID)
inline

set wireId

Definition at line 132 of file FTWire.h.

132{ _wireId = wireID; }

Referenced by FTWire().

◆ x()

const float FTWire::x ( ) const
inline

returns position x

Definition at line 48 of file FTWire.h.

48{ return _x; }

Referenced by FTWire(), FTTrack::r_phi2Fit(), FTTrack::r_phi3Fit(), FTTrack::r_phi4Fit(), FTTrack::r_phiFit(), and FTTrack::r_phiReFit().

◆ y()

const float FTWire::y ( ) const
inline

returns position y

Definition at line 51 of file FTWire.h.

51{ return _y; }

Referenced by FTWire(), FTTrack::r_phi2Fit(), FTTrack::r_phi3Fit(), FTTrack::r_phi4Fit(), FTTrack::r_phiFit(), and FTTrack::r_phiReFit().

◆ z()

int FTWire::z ( const Lpav & la,
double & z ) const

returns z for track la

Definition at line 157 of file FTWire.cxx.

157 {
158 HepVector center = la.center();
159 double rho = la.radius();
160 double dx2 = center( 1 ) - _x;
161 double dy2 = center( 2 ) - _y;
162 double par1 = _dx * _dx + _dy * _dy;
163 double par2 = ( _dx * dx2 + _dy * dy2 ) / par1;
164 double par3 = _dx * dy2 - _dy * dx2;
165 double par4 = rho * rho * par1 - par3 * par3;
166
167 if ( par4 < 0. ) return 0;
168
169 par4 = std::sqrt( par4 ) / par1;
170 double delta = par2 + par4;
171
172 if ( delta >= 0. && delta < 1. )
173 {
174 z = _layer->zf() + delta * ( _layer->zb() - _layer->zf() );
175 return 1;
176 }
177 else
178 {
179 delta = par2 - par4;
180 if ( delta >= 0. && delta < 1. )
181 {
182 z = _layer->zf() + delta * ( _layer->zb() - _layer->zf() );
183 return 1;
184 }
185 }
186 return 0;
187}
int z(const Lpav &la, double &z) const
returns z for track la
Definition FTWire.cxx:157
HepVector center() const

Referenced by FTTrack::s_zFit(), and z().


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