Definition at line 55 of file SingleLongTrackProducer.cc.
References funct::abs(), debug, reco::deltaR2(), PVValHelper::dxy, PVValHelper::dz, reco::HitPattern::getHitPattern(), goodTracks_cfi::goodTracks, h, Hcal_Conditions_forGlobalTag_cff::hb, iEvent, matchInDr, WZElectronSkims53X_cff::max, maxDxy, maxDz, maxEta, SiStripPI::min, minNumberOfLayers, minPt, HerwigMaxPtPartonFilter_cfi::moduleLabel, eostools::move(), DiMuonV_cfg::muons, muonsToken, onlyValidHits, PrimVtxToken, rpcPointValidation_cfi::recHit, reco::Track::recHitsOk(), HLT_2024v14_cff::track, reco::HitPattern::TRACK_HITS, reco::HitPattern::trackerLayersWithMeasurement(), DiMuonV_cfg::tracks, tracksToken, reco::HitPattern::validHitFilter(), AlignmentTracksFromVertexSelector_cfi::vertices, and L1BJetProducer_cff::vtx.
65 <<
"Input track collection is not valid.\n Returning empty output track collection.";
73 <<
"Input muon collection is not valid.\n Returning empty output track collection.";
81 <<
"Input vertex collection is not valid.\n Returning empty output track collection.";
88 std::vector<reco::Track> selTracks;
90 unsigned int tMuon = 0;
96 double chiNdof =
track.normalizedChi2();
107 if (
muon.isTrackerMuon()) {
123 edm::LogPrint(
"SingleLongTrackProducer") <<
"deltaR2 (general) track to matched Track: " << dR2min
124 <<
" chi2Ndof: " << chiNdof <<
" best Track chi2Ndof: " << fitProb;
130 selTracks.push_back(bestTrack);
135 <<
" number of Tracker Muons: " << tMuon <<
", thereof " << selTracks.size() <<
" tracks passed preselection.";
138 bool hitIsNotValid{
false};
140 for (
const auto &
track : selTracks) {
142 if (
track.recHitsOk()) {
144 auto hb =
track.recHitsBegin();
147 for (
unsigned int h = 0;
h <
track.recHitsSize();
h++) {
151 hitIsNotValid =
true;
156 if (hitIsNotValid ==
true)
160 for (
unsigned int h = 0;
h <
track.recHitsSize();
h++) {
164 edm::LogPrint(
"SingleLongTrackProducer") <<
"hit not valid: " <<
h;
174 auto const &moduleType = moduleDescription().moduleName();
175 auto const &
moduleLabel = moduleDescription().moduleLabel();
177 <<
" output track size: " <<
goodTracks.get()->size();
const edm::EDGetTokenT< std::vector< reco::Track > > tracksToken
int trackerLayersWithMeasurement() const
const edm::EDGetTokenT< std::vector< reco::Muon > > muonsToken
std::vector< Track > TrackCollection
collection of Tracks
Log< level::Error, false > LogError
muons
the two sets of parameters below are mutually exclusive, depending if RECO or ALCARECO is used the us...
static bool validHitFilter(uint16_t pattern)
Abs< T >::type abs(const T &t)
Log< level::Warning, true > LogPrint
uint16_t getHitPattern(HitCategory category, int position) const
const edm::EDGetTokenT< reco::VertexCollection > PrimVtxToken
constexpr auto deltaR2(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
const int minNumberOfLayers
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.