17 std::vector<reco::TrackRef> refit(4);
25 ok[1] = gmrTrack != tevMap1.
end();
26 ok[2] = fmsTrack != tevMap2.
end();
27 ok[3] = pmrTrack != tevMap3.
end();
32 if (ok[0]) refit[0] = trackerTrack;
33 if (ok[1]) refit[1] = (*gmrTrack).val;
34 if (ok[2]) refit[2] = (*fmsTrack).val;
35 if (ok[3]) refit[3] = (*pmrTrack).val;
37 for (
unsigned int i=0;
i<4;
i++)
38 prob[
i] = (ok[
i] && refit[
i]->numberOfValidHits())
50 if (prob[0]>0.) chosen=0;
54 if ( prob[0]>0. && prob[3]>0. && ((prob[3]-prob[0]) > 30.) ) chosen=0;
55 if ( prob[2]>0. && ((prob[chosen]-prob[2]) > 0.) ) chosen=2;
57 return refit.at(chosen);
69 std::vector<reco::TrackRef> refit(4);
78 ok[1] = gmrTrack != tevMap1.
end();
79 ok[2] = fmsTrack != tevMap2.
end();
80 ok[3] = pmrTrack != tevMap3.
end();
84 if (ok[0]) refit[0] = trackerTrack;
85 if (ok[1]) refit[1] = (*gmrTrack).val;
86 if (ok[2]) refit[2] = (*fmsTrack).val;
87 if (ok[3]) refit[3] = (*pmrTrack).val;
89 for (
unsigned int i=0;
i<4;
i++)
90 prob[
i] = (ok[
i] && refit[
i]->numberOfValidHits())
95 if (prob[1] ) result = refit[1];
96 if ((prob[1] == 0) && prob[3]) result = refit[3];
98 if (prob[1] && prob[3] && ((prob[1] - prob[3]) > 0.05 )) result = refit[3];
100 if (prob[0] && prob[2] && fabs(prob[2] - prob[0]) > 30.) {
105 if ((prob[1] == 0) && (prob[3] == 0) && prob[2]) result = refit[2];
108 double probmin = 0.0;
110 if (prob[1] && prob[3]) {
111 probmin = prob[3]; tmin = refit[3];
112 if ( prob[1] < prob[3] ) { probmin = prob[1]; tmin = refit[1]; }
113 }
else if ((prob[3] == 0) && prob[1]) {
114 probmin = prob[1]; tmin = refit[1];
115 }
else if ((prob[1] == 0) && prob[3]) {
116 probmin = prob[3]; tmin = refit[3];
119 if (probmin && prob[2] && ( (probmin - prob[2]) > 3.5 )) {
134 tevMap1, tevMap2, tevMap3);
145 tevMap1, tevMap2, tevMap3);
153 int nDOF = (int)track->ndof();
154 if ( nDOF > 0 && track->chi2()> 0) {
155 return -
log(TMath::Prob(track->chi2(), nDOF));
const_iterator end() const
last iterator over the map (read only)
const_iterator find(const key_type &k) const
find element with specified reference key
virtual TrackRef track() const
reference to a Track
reco::TrackRef tevOptimized(const reco::TrackRef &combinedTrack, const reco::TrackRef &trackerTrack, const reco::TrackToTrackMap tevMap1, const reco::TrackToTrackMap tevMap2, const reco::TrackToTrackMap tevMap3)
reco::TrackRef tevOptimizedOld(const reco::TrackRef &combinedTrack, const reco::TrackRef &trackerTrack, const reco::TrackToTrackMap tevMap1, const reco::TrackToTrackMap tevMap2, const reco::TrackToTrackMap tevMap3)
virtual TrackRef combinedMuon() const
reference to a stand-alone muon Track
Log< T >::type log(const T &t)
double trackProbability(const reco::TrackRef track)