1 #ifndef RecoTracker_MkFitCMS_interface_MkStdSeqs_h 2 #define RecoTracker_MkFitCMS_interface_MkStdSeqs_h 12 class IterationConfig;
35 const float drth_central,
36 const float drth_obarrel,
37 const float drth_forward);
41 template <
class TRACK>
43 int seedHits =
t.getNSeedHits();
44 int seedReduction = (seedHits <= 5) ? 2 : 3;
45 return t.nFoundHits() - seedReduction >= nMinHits;
49 template <
class TRACK>
51 return t.nFoundHits() >= nMinHits;
55 template <
class TRACK>
57 int enhits =
t.nHitsByTypeEncoded(trk_inf);
58 int npixhits =
t.nPixelDecoded(enhits);
59 int enlyrs =
t.nLayersByTypeEncoded(trk_inf);
60 int npixlyrs =
t.nPixelDecoded(enlyrs);
61 int nmatlyrs =
t.nTotMatchDecoded(enlyrs);
62 int llyr =
t.getLastFoundHitLyr();
63 int lplyr =
t.getLastFoundPixelHitLyr();
64 float invpt =
t.invpT();
65 float invptmin = 1.43;
66 float d0BS =
t.d0BeamSpot(bspot.
x, bspot.
y);
69 bool endsInsidePix = (llyr == 2 || llyr == 18 || llyr == 45);
70 bool lastInsidePix = ((0 <= lplyr && lplyr < 3) || (18 <= lplyr && lplyr < 20) || (45 <= lplyr && lplyr < 47));
71 return !(((npixhits <= 3 || npixlyrs <= 3) && endsInsidePix &&
72 (invpt < invptmin || (invpt >= invptmin &&
std::abs(d0BS) >
d0_max))) ||
73 ((npixlyrs <= 3 && nmatlyrs <= 6) && lastInsidePix && llyr != lplyr &&
std::abs(d0BS) >
d0_max));
77 template <
class TRACK>
79 float d0BS =
t.d0BeamSpot(bspot.
x, bspot.
y);
83 encoded =
t.nLayersByTypeEncoded(tk_info);
84 int nLyrs =
t.nTotMatchDecoded(encoded);
85 encoded =
t.nHitsByTypeEncoded(tk_info);
86 int nHits =
t.nTotMatchDecoded(encoded);
88 int seedReduction = (
t.getNSeedHits() <= 5) ? 2 : 3;
90 float invpt =
t.invpT();
91 float invptmin = 1.11;
94 float thetasymmin = 1.11;
96 return (((
t.nFoundHits() - seedReduction >= 4 && invpt < invptmin) ||
97 (
t.nFoundHits() - seedReduction >= 3 && invpt > invptmin && thetasym <= thetasymmin) ||
98 (
t.nFoundHits() - seedReduction >= 4 && invpt > invptmin && thetasym > thetasymmin)) &&
99 !((nLyrs <= 4 || nHits <= 4) && std::abs(d0BS) >
d0_max && invpt < invptmin));
103 template <
class TRACK>
105 float d0BS =
t.d0BeamSpot(bspot.
x, bspot.
y);
109 encoded =
t.nLayersByTypeEncoded(tk_info);
110 int nLyrs =
t.nTotMatchDecoded(encoded);
111 encoded =
t.nHitsByTypeEncoded(tk_info);
112 int nHits =
t.nTotMatchDecoded(encoded);
114 float invpt =
t.invpT();
115 float invptmin = 1.11;
118 float thetasymmin_l = 0.80;
119 float thetasymmin_h = 1.11;
122 ((nLyrs <= 3 ||
nHits <= 3)) ||
123 ((nLyrs <= 4 || nHits <= 4) && (invpt < invptmin || (thetasym > thetasymmin_l &&
std::abs(d0BS) >
d0_max))) ||
124 ((nLyrs <= 6 ||
nHits <= 6) && (invpt > invptmin && thetasym > thetasymmin_h &&
std::abs(d0BS) >
d0_max)));
127 template <
class TRACK>
129 return !(
t.hasNanNSillyValues());
void find_and_remove_duplicates(TrackVec &tracks, const IterationConfig &itconf)
bool qfilter_n_hits_pixseed(const TRACK &t, int nMinHits)
bool qfilter_pixelLessFwd(const TRACK &t, const BeamSpot &bspot, const TrackerInfo &tk_info)
quality filter tuned for pixelLess iteration during forward search
void cmssw_Map_TrackHitIndices(const EventOfHits &eoh, TrackVec &seeds)
void find_duplicates(TrackVec &tracks)
bool qfilter_n_hits(const TRACK &t, int nMinHits)
bool qfilter_n_layers(const TRACK &t, const BeamSpot &bspot, const TrackerInfo &trk_inf)
void cmssw_LoadHits_End(EventOfHits &eoh)
void find_duplicates_sharedhits_pixelseed(TrackVec &tracks, const float fraction, const float drth_central, const float drth_obarrel, const float drth_forward)
void cmssw_LoadHits_Begin(EventOfHits &eoh, const std::vector< const HitVec *> &orig_hitvectors)
void find_duplicates_sharedhits(TrackVec &tracks, const float fraction)
void remove_duplicates(TrackVec &tracks)
void cmssw_ReMap_TrackHitIndices(const EventOfHits &eoh, TrackVec &out_tracks)
bool qfilter_pixelLessBkwd(const TRACK &t, const BeamSpot &bspot, const TrackerInfo &tk_info)
quality filter tuned for pixelLess iteration during backward search
void loadDeads(EventOfHits &eoh, const std::vector< DeadVec > &deadvectors)
Abs< T >::type abs(const T &t)
std::vector< Track > TrackVec
auto const & tracks
cannot be loose
caConstants::TupleMultiplicity const CAHitNtupletGeneratorKernelsGPU::HitToTuple const cms::cuda::AtomicPairCounter GPUCACell const *__restrict__ uint32_t const *__restrict__ gpuPixelDoublets::CellNeighborsVector const gpuPixelDoublets::CellTracksVector const GPUCACell::OuterHitOfCell const int32_t nHits
bool qfilter_nan_n_silly(const TRACK &t)
int clean_cms_seedtracks_iter(TrackVec *seed_ptr, const IterationConfig &itrcfg, const BeamSpot &bspot)