49 void initField(
float l3Current,
float dipoleCurrent);
57 void debug(
int debugLevel) { mDebugLevel = debugLevel; }
63 void findTrackCandidates();
64 void findMoreTrackCandidates();
65 std::list<Track>::iterator findTrackCandidates(
int ch1,
int ch2,
bool skipUsedPairs =
false);
68 std::list<Track>::iterator addTrack(
const std::list<Track>::iterator&
pos,
const Track& track);
70 void removeDuplicateTracks();
71 void removeConnectedTracks(
int stMin,
int stMax);
72 void followTracks(
const std::list<Track>::iterator& itTrackBegin,
const std::list<Track>::iterator& itTrackEnd,
int nextStation);
73 std::list<Track>::iterator followTrackInStation(
const std::list<Track>::iterator& itTrack,
int nextStation);
74 std::list<Track>::iterator followLinearTrackInChamber(
const std::list<Track>::iterator& itTrack,
int nextChamber);
79 std::list<Track>::iterator recoverTrack(std::list<Track>::iterator& itTrack,
int nextStation);
80 bool completeTracks();
84 uint8_t requestedStationMask()
const;
85 int getTrackIndex(
const std::list<Track>::iterator& itCurrentTrack)
const;
86 void printTracks()
const;
87 void printTrackParam(
const TrackParam& trackParam)
const;
88 template <
class... Args>
89 void print(Args... args)
const;
92 static constexpr double SMaxNonBendingDistanceToTrack = 1.;
94 static constexpr double SMaxBendingDistanceToTrack = 1.;
95 static constexpr double SMinBendingMomentum = 0.8;
97 static constexpr double SDefaultChamberZ[10] = {-526.16, -545.24, -676.4, -695.4, -967.5,
98 -998.5, -1276.5, -1307.5, -1406.6, -1437.6};
100 static constexpr double SChamberThicknessInX0[10] = {0.065, 0.065, 0.075, 0.075, 0.035,
101 0.035, 0.035, 0.035, 0.035, 0.035};
103 TrackFitter mTrackFitter{};
105 std::array<std::list<const Cluster*>, 10> mClusters{};
107 std::list<Track> mTracks{};
109 ErrorMap mErrorMap{};
111 double mChamberResolutionX2 = 0.;
112 double mChamberResolutionY2 = 0.;
113 double mBendingVertexDispersion2 = 0.;
114 double mMaxChi2ForTracking = 0.;
115 double mMaxChi2ForImprovement = 0.;
117 double mMaxMCSAngle2[10]{};
121 std::size_t mNCandidates = 0;
122 std::size_t mNCallTryOneCluster = 0;
123 std::size_t mNCallTryOneClusterFast = 0;
125 std::chrono::duration<double> mTimeFindCandidates{};
126 std::chrono::duration<double> mTimeFindMoreCandidates{};
127 std::chrono::duration<double> mTimeFollowTracks{};
128 std::chrono::duration<double> mTimeCompleteTracks{};
129 std::chrono::duration<double> mTimeImproveTracks{};
130 std::chrono::duration<double> mTimeCleanTracks{};
131 std::chrono::duration<double> mTimeRefineTracks{};