9 #ifndef PNDFTSCAGBTRACKER_H
10 #define PNDFTSCAGBTRACKER_H
106 uint_v::Memory &NTrackHits,
int &nTracksV, float_m active0,
bool dir );
109 uint_v::Memory &NTrackHits,
int &nTracksV, float_m active0 );
112 uint_v::Memory &NTrackHits,
int &nTracksV, float_m active0,
bool dir,
bool init =
false );
131 void MultiplySS(
float const C[15],
float const V[15],
float K[5][5])
const;
132 void MultiplyMS(
float const C[5][5],
float const V[15],
float K[15])
const;
133 void MultiplySR(
float const C[15],
float const r_in[5],
float r_out[5])
const;
134 void FilterTracks(
float const r[5],
float const C[15],
float const m[5],
float const V[15],
float R[5],
float W[15],
float &chi2)
const;
145 unsigned char min_best_l,
147 unsigned int& nCalls);
152 #if defined( PANDA_STT ) || defined( PANDA_FTS )
153 enum { fNFindIterations = 1 };
154 #elif defined ( ALICE_ITS ) || defined( STAR_HFT )
155 enum { fNFindIterations = 2 };
157 #error UNKNOWN DETECTOR
void Merge(FTSCATracks &tracks)
bool ReadSettingsFromFile(string prefix)
PndFTSCAParam fParameters
const PndFTSCAGBTrack & Track(int i) const
PndFTSCAGBTrack * fTracks
int TrackHit(int i) const
void InitialTrackApproximation(PndFTSCATrackParamVector &t, uint_v &firstHits, uint_v::Memory &NTrackHits, int &nTracksV, float_m active0)
float_m FitTrackCA(PndFTSCATrackParamVector &t, uint_v &firstHits, uint_v::Memory &NTrackHits, int &nTracksV, float_m active0, bool dir, bool init=false)
void FilterTracks(float const r[5], float const C[15], float const m[5], float const V[15], float R[5], float W[15], float &chi2) const
PndFTSResizableArray< FTSCAStrip > fBStrips
double StatTime(int iTimer) const
void MultiplyMS(float const C[5][5], float const V[15], float K[15]) const
float_m IsEqual(const PndFTSCATrackParamVector &p, const FTSCAHit &h)
PndFTSCAGBTrack * Tracks() const
void PickUpHits(FTSCAElementsOnStation< FTSCANPletV > &a, FTSCAElementsOnStation< FTSCANPletV > &r, int iS)
void InvertCholetsky(float a[15]) const
void ReadSettings(std::istream &in)
PndFTSCAGBTrack * Tracks()
double SliceTrackerCpuTime() const
double fStatTime[fNTimers]
float_m Refit(FTSCANPletV &triplet, const FTSCAHits &hits)
float_m FitTrack(PndFTSCATrackParamVector &t, uint_v &firstHits, uint_v::Memory &NTrackHits, int &nTracksV, float_m active0, bool dir)
L1CATFIterTimerInfo fStatGTi
double SliceTrackerTime() const
PndFTSResizableArray< FTSCAStrip > fFStrips
PndFTSResizableArray< PndFTSCAGBHit > fHits
void EstimatePV(const FTSCAHitsV &hits, float &zPV)
void FindBestCandidate(int ista, FTSCATrack &best_tr, int currITrip, FTSCATrack &curr_tr, unsigned char min_best_l, const FTSCANPlets &triplets, unsigned int &nCalls)
friend class PndFTSCAPerformance
Try to group close hits in row formed by one track. After sort hits.
void SetHits(std::vector< PndFTSCAGBHit > &hits)
PndFTSCAParam & GetParametersNonConst()
const PndFTSCAParam & GetParameters() const
const PndFTSCAGBHit * Hits() const
PndFTSCAGBTracker & operator=(const PndFTSCAGBTracker &)
void MultiplySS(float const C[15], float const V[15], float K[5][5]) const
double fSliceTrackerCpuTime
void Create1Plets(const FTSCATarget &target, const FTSCAHits &hits, FTSCAElementsOnStation< FTSCANPletV > &singlets, int iStation)
void CreateTracks(const FTSCANPlets &triplets, FTSCATracks &tracks)
void MultiplySR(float const C[15], float const r_in[5], float r_out[5]) const
static const int fNTimers
void FindNeighbours(FTSCANPlets &triplets)
void CreateNPlets(const FTSCATarget &target, const FTSCAHitsV &hits, FTSCANPletsV &singlets)
const PndFTSCAGBHit & Hit(int index) const
void Refit_1(FTSCANPletV &triplet, const FTSCAHits &hits)