9 #ifndef PNDFTSCAGBTRACKER_H 10 #define PNDFTSCAGBTRACKER_H 94 void SetHits(std::vector<PndFTSCAGBHit> &hits);
126 void MultiplySS(
float const C[15],
float const V[15],
float K[5][5])
const;
127 void MultiplyMS(
float const C[5][5],
float const V[15],
float K[15])
const;
128 void MultiplySR(
float const C[15],
float const r_in[5],
float r_out[5])
const;
129 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;
141 #if defined(PANDA_STT) || defined(PANDA_FTS) 142 enum { fNFindIterations = 1 };
143 #elif defined(ALICE_ITS) || defined(STAR_HFT) 144 enum { fNFindIterations = 2 };
146 #error UNKNOWN DETECTOR void Merge(FTSCATracks &tracks)
bool ReadSettingsFromFile(string prefix)
void MultiplySS(float const C[15], float const V[15], float K[5][5]) const
void MultiplyMS(float const C[5][5], float const V[15], float K[15]) const
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
PndFTSCAParam fParameters
PndFTSCAGBTrack * fTracks
double SliceTrackerTime() 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)
PndFTSResizableArray< FTSCAStrip > fBStrips
const PndFTSCAGBHit & Hit(int index) const
const PndFTSCAParam & GetParameters() const
float_m IsEqual(const PndFTSCATrackParamVector &p, const FTSCAHit &h)
void PickUpHits(FTSCAElementsOnStation< FTSCANPletV > &a, FTSCAElementsOnStation< FTSCANPletV > &r, int iS)
void ReadSettings(std::istream &in)
double StatTime(int iTimer) const
PndFTSCAGBTrack * Tracks()
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
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 PndFTSCAGBTrack & Track(int i) const
double fSliceTrackerCpuTime
double SliceTrackerCpuTime() const
void Create1Plets(const FTSCATarget &target, const FTSCAHits &hits, FTSCAElementsOnStation< FTSCANPletV > &singlets, int iStation)
void CreateTracks(const FTSCANPlets &triplets, FTSCATracks &tracks)
static const int fNTimers
void InvertCholetsky(float a[15]) const
const PndFTSCAGBHit * Hits() const
void MultiplySR(float const C[15], float const r_in[5], float r_out[5]) const
void FindNeighbours(FTSCANPlets &triplets)
void CreateNPlets(const FTSCATarget &target, const FTSCAHitsV &hits, FTSCANPletsV &singlets)
PndFTSCAGBTrack * Tracks() const
int TrackHit(int i) const
void Refit_1(FTSCANPletV &triplet, const FTSCAHits &hits)