37 beamspotTag_ (iConfig.getParameter<
edm::
InputTag > (
"BeamSpotTag")),
39 candTag_ (iConfig.getParameter<
InputTag > (
"CandTag")),
41 previousCandTag_ (iConfig.getParameter<
InputTag > (
"PreviousCandTag")),
43 min_N_ (iConfig.getParameter<
int> (
"MinN")),
44 max_Eta_ (iConfig.getParameter<double> (
"MaxEta")),
45 min_Nhits_ (iConfig.getParameter<
int> (
"MinNhits")),
46 max_Dr_ (iConfig.getParameter<double> (
"MaxDr")),
47 max_Dz_ (iConfig.getParameter<double> (
"MaxDz")),
48 min_Pt_ (iConfig.getParameter<double> (
"MinPt")),
49 nsigma_Pt_ (iConfig.getParameter<double> (
"NSigmaPt"))
53 <<
" CandTag/MinN/MaxEta/MinNhits/MaxDr/MaxDz/MinPt/NSigmaPt : " 64 produces<TriggerFilterObjectWithRefs>();
79 desc.
add<
int>(
"MinN",0);
80 desc.
add<
double>(
"MaxEta",9999.0);
81 desc.
add<
int>(
"MinNhits",0);
82 desc.
add<
double>(
"MaxDr",9999.0);
83 desc.
add<
double>(
"MaxDz",9999.0);
84 desc.
add<
double>(
"MinPt",0.0);
85 desc.
add<
double>(
"NSigmaPt",9999.0);
86 descriptions.
add(
"hltMuonL1toL3TkPreFilter", desc);
103 std::map<l1extra::L1MuonParticleRef, std::vector<RecoChargedCandidateRef> > L1toL3s;
105 unsigned int maxN = mucands->size();
119 beamSpot = *recoBeamSpotHandle;
123 vector<l1extra::L1MuonParticleRef> vl1cands;
126 auto L1toL3s_it = L1toL3s.begin();
127 auto L1toL3s_end = L1toL3s.end();
128 for (; L1toL3s_it!=L1toL3s_end; ++L1toL3s_it){
134 unsigned int maxItk=L1toL3s_it->second.size();
135 for (; iTk!=maxItk; iTk++){
140 if (fabs(tk->eta())>
max_Eta_)
continue;
143 if (tk->numberOfValidHits()<
min_Nhits_)
continue;
150 if (fabs(tk->dz())>
max_Dz_)
continue;
153 double pt = tk->pt();
154 double err0 = tk->error(0);
155 double abspar0 = fabs(tk->parameter(0));
159 LogTrace(
"HLTMuonL1toL3TkPreFilter") <<
" ...Muon in loop, pt= " 160 << pt <<
", ptLx= " << ptLx;
171 vector<RecoChargedCandidateRef> vref;
173 for (
auto &
i : vref) {
175 LogDebug(
"HLTMuonL1toL3TkPreFilter")
176 <<
" Track passing filter: pt= " << tk->pt() <<
", eta: " 183 LogDebug(
"HLTMuonL1toL3TkPreFilter") <<
" >>>>> Result of HLTMuonL1toL3TkPreFilter is " << accept <<
", number of muons passing thresholds= " <<
n;
194 for (
auto & vcand : vcands) {
198 LogDebug(
"HLTMuonL1toL3TkPreFilter") <<
"The L1 mu triggered";
edm::EDGetTokenT< reco::BeamSpot > beamspotToken_
bool hltFilter(edm::Event &, const edm::EventSetup &, trigger::TriggerFilterObjectWithRefs &filterproduct) const override
void getObjects(Vids &ids, VRphoton &refs) const
various physics-level getters:
edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > previousCandToken_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
enum start value shifted to 81 so as to avoid clashes with PDG codes
HLTMuonL1toL3TkPreFilter(const edm::ParameterSet &)
edm::Ref< RecoChargedCandidateCollection > RecoChargedCandidateRef
reference to an object in a collection of RecoChargedCandidate objects
edm::EDGetTokenT< reco::RecoChargedCandidateCollection > candToken_
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
void addObject(int id, const reco::RecoEcalCandidateRef &ref)
setters for L3 collections: (id=physics type, and Ref<C>)
~HLTMuonL1toL3TkPreFilter() override
#define DEFINE_FWK_MODULE(type)
ParameterDescriptionBase * add(U const &iLabel, T const &value)
std::vector< RecoChargedCandidate > RecoChargedCandidateCollection
collectin of RecoChargedCandidate objects
bool triggeredAtL1(const l1extra::L1MuonParticleRef &l1mu, std::vector< l1extra::L1MuonParticleRef > &vcands) const
static void makeHLTFilterDescription(edm::ParameterSetDescription &desc)
void addCollectionTag(const edm::InputTag &collectionTag)
collectionTags
void add(std::string const &label, ParameterSetDescription const &psetDescription)
const Point & position() const
position
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)