10#define FTSegment_FLAG_
12#include "MdcFastTrkAlg/FTList.h"
13#include "MdcFastTrkAlg/FTWire.h"
14#include "MdcFastTrkAlg/FTLayer.h"
15#include "MagneticField/IMagneticFieldSvc.h"
16#include "MagneticField/MagneticFieldSvc.h"
100 float kappa(
void)
const;
149 StatusCode scmgn = Gaudi::svcLocator()->service(
"MagneticFieldSvc",m_pmgnIMF);
150 if(scmgn!=StatusCode::SUCCESS) {
151 std::cout<<
"Unable to open Magnetic field service"<<std::endl;
159 delete &_innerBoundHits;
160 delete &_outerBoundHits;
173 _wireHits.
append(outerHits);
174 _outerBoundHits.
clear();
175 _outerBoundHits.
append(outerBound);
183 _wireHits.
append(innerHits);
184 _innerBoundHits.
clear();
185 _innerBoundHits.
append(innerBound);
193 _outerBoundHits.
clear();
202 _innerBoundHits.
clear();
224 return _innerBoundHits;
231 return _outerBoundHits;
266 if (_innerBoundHits.
length() ^ 1) {
267 float phi_1st = _innerBoundHits[0]->phi();
268 float phi_2nd = _innerBoundHits[1]->phi();
269 float phi = 0.5 * (phi_1st + phi_2nd);
270 if (fabs(phi_1st - phi_2nd) >
M_PI) {
275 return _innerBoundHits[0]->phi();
282 if (_outerBoundHits.
length() ^ 1) {
283 float phi_1st = _outerBoundHits[0]->phi();
284 float phi_2nd = _outerBoundHits[1]->phi();
285 float phi = 0.5 * (phi_1st + phi_2nd);
286 if (fabs(phi_1st - phi_2nd) >
M_PI) {
291 return _outerBoundHits[0]->phi();
298 float x_len = _outgoing_x - _incoming_x;
299 float y_len = _outgoing_y - _incoming_y;
301 return sin(phi_l) / sqrt(x_len*x_len + y_len*y_len);
322 return _sList->
first();
double sin(const BesAngle a)
T & first(void) const
returns the first object in the list
void clear(void)
clear lists but the allocated memory remains same
int length(void) const
returns the length of the list
int append(const T &x)
append an object into the end of the list
float incomingPhi(void) const
returns phi of incoming position
FTSuperLayer & superLayer(void) const
returns super-layer
float outgoingY(void) const
returns y of outgoing position
float outgoingPhi(void) const
returns phi of outgoing position
float attr_const(void) const
returns the sin(dphi)/MOD(r_out-r_in)
FTList< FTWire * > & innerBoundHits(void) const
returns innerBoundHits
float s(void) const
returns s for matched 2D track
FTList< FTTrack * > * _trackList
float z(void) const
returns z for matched 2D track
float incomingY(void) const
returns y of incoming position
void update(void)
update information for axial segment
FTList< FTWire * > & wireHits(void) const
returns wire-hit list
void connect_inner(const FTList< FTWire * > &, const FTList< FTWire * > &)
FTSegment(FTSuperLayer *super, FTList< FTWire * > &hits)
constructors
void linkStereoSegments(void)
link stereo segments by tanLambda
FTTrack * track(void) const
returns track
float outgoingX(void) const
returns x of outgoing position
float kappa(void) const
returns kappa(axial)
float r(void) const
returns r from origin
static MdcParameter * param
void connect_outer(const FTList< FTWire * > &, const FTList< FTWire * > &)
connect short segments
FTList< FTWire * > & outerBoundHits(void) const
returns outerBoundHits
int update3D(const FTTrack *track)
update information for stereo segment
float incomingX(void) const
returns x of incoming position
int examine(void)
examine segment