12#include"TrackUtil/Helix.h"
13#include"TrackUtil/Lpav.h"
14#include"TrackUtil/zav.h"
16#include "MdcFastTrkAlg/FTList.h"
17#include "MdcFastTrkAlg/FTSegment.h"
18#include "MdcFastTrkAlg/MdcParameter.h"
19#include "MagneticField/IMagneticFieldSvc.h"
20#include "MagneticField/MagneticFieldSvc.h"
22#ifndef ENABLE_BACKWARDS_COMPATIBILITY
44 int r_phi3Fit(
int l,
float vx,
float xy,
int vtx_flag);
81 float d_z(
float s,
float z)
const;
150#ifdef FTTrack_NO_INLINE
154#define FTTrack_INLINE_DEFINE_HERE
157#ifdef FTTrack_INLINE_DEFINE_HERE
161 float kappa,
float chi2_kappa)
165 _axial_segments(axial_segments),
166 _stereo_segments(NULL),
167 _stereo_segments_cache(NULL),
168 _stereo_segments_by_superLayer(NULL),
171 _chi2_kappa(chi2_kappa)
173 StatusCode scmgn = Gaudi::svcLocator()->service(
"MagneticFieldSvc",m_pmgnIMF);
174 if(scmgn!=StatusCode::SUCCESS) {
175 std::cout<<
"Unable to open Magnetic field service"<<std::endl;
294 return (Dz < 10*(7-
n)) ? Dz : 9999.;
305 float s_tmp =
s->s();
306 float z_tmp =
s->z();
307 if (
d_z(s_tmp,z_tmp) < 9998.){
HepGeom::Point3D< double > HepPoint3D
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
Helix * helix(void) const
returns helix parameters
int r_phiReFit(float vx, float xy, int vtx_flag)
do r-phi refit
int get_nhits(void)
calculate the wire hits number
void append_stereo_cache(FTSegment *)
append stereo segment to the cache
FTTrack(FTList< FTSegment * > &axial_segments, float kappa, float chi2_kappa)
constructor
FTList< FTSegment * > & axial_segments(void) const
returns axial segments
float SigmaZ(float z)
add z for culculation of tanLambda
FTList< FTSegment * > * _stereo_segments
int r_phi4Fit(float vx, float xy, int vtx_flag)
void setFTFinder(FTFinder *)
void updateSZ(void)
update s and z information for linking
const zav & Zav(void) const
returns zav
int r_phiFit(void)
do r-phi circle fit
FTList< FTList< FTSegment * > * > * _stereo_segments_by_superLayer
static MdcParameter * param
float SigmaSZ(float sz)
add s for culculation of dz, tanLambda
FTList< FTSegment * > & stereo_segments(void) const
returns stereo_segments
float SigmaS(float s)
add s for culculation of tanLambda
const Lpav & lpav(void) const
returns lpav
void append_stereo(FTSegment *, float s, float z)
append stereo segment to the stereo segment list
int r_phi3Fit(int l, float vx, float xy, int vtx_flag)
float SigmaSS(float ss)
add s for culculation of dz, tanLambda
float kappa_tmp(void) const
returns kappa at linking
int r_phi2Fit(float vx, float xy, int vtx_flag)
float d_z(float s, float z) const
int s_zFit(void)
do s-z linear fit
FTList< FTSegment * > * _stereo_segments_cache
int linkStereoSegments(void)
link stereo segments by tanLambda
float chi2_kappa_tmp(void) const
returns sigmaKappa at linking
FTList< FTSegment * > & _axial_segments