6 #include <unordered_set>
16 Make3Dtracks::Make3Dtracks(
const Settings* settings,
21 float phiCentreSector)
26 etaMinSector_(etaMinSector),
27 etaMaxSector_(etaMaxSector),
28 phiCentreSector_(phiCentreSector),
31 runRZfilter_(not settings->useRZfilter().
empty()) {
44 for (
const L1track2D& trkRphi : vecTracksRphi) {
45 const vector<Stub*>& stubsOnTrkRphi = trkRphi.stubs();
47 float qOverPt = trkRphi.helix2D().first;
48 float phi0 = trkRphi.helix2D().second;
53 const float small = 0.1;
54 const unsigned int nHelixBits = 18;
58 pair<float, float> helixRphi(qOverPt, phi0);
64 pair<float, float> helixRz(z0, tan_lambda);
69 trkRphi.cellLocationHT(),
75 trkRphi.mergedHTcell());
79 bool cheat_keep =
true;
81 cheat_keep = trk3D.
cheat();
98 list<L1track3D> vecTracks3D_tmp;
101 bool cheat_keep = trk_tmp.
cheat();
103 vecTracks3D_tmp.push_back(trk_tmp);
105 vecTracks3D_rzFiltered_ = vecTracks3D_tmp;
116 vector<const L1track3D*> assocRecoTrk;
119 for (
const L1track3D& trk : allTracks3D) {
120 if (trk.matchedTP() !=
nullptr) {
121 if (trk.matchedTP()->index() == tp.
index())
122 assocRecoTrk.push_back(&trk);
bool enableDigitize() const
const Settings * settings_
std::unique_ptr< TrkRZfilter > rzFilter_
double kf_oneOver2rRange() const
double invPtToInvR() const
unsigned int index() const
double kf_phi0Range() const
std::vector< const L1track3D * > assocTrackCands3D(const TP &tp, bool rzFiltered) const
Exp< T >::type exp(const T &t)
Tan< T >::type tan(const T &t)
void makeUnfilteredTrks(const std::list< L1track2D > &vecTracksRphi)
void makeRZfilteredTrks(const std::list< L1track2D > &vecTracksRphi)
std::list< L1track3D > vecTracks3D_rzFiltered_
std::list< L1track3D > vecTracks3D_unfiltered_
bool trackFitCheat() const
Power< A, B >::type pow(const A &a, const B &b)