32 candTag_ (iConfig.getParameter<
edm::
InputTag > (
"CandTag") ),
33 previousCandTag_ (iConfig.getParameter<
edm::
InputTag > (
"PreviousCandTag")),
34 beamspotTag_ (iConfig.getParameter<
edm::
InputTag > (
"BeamSpotTag")),
35 min_N_ (iConfig.getParameter<
int> (
"MinN")),
36 max_Eta_ (iConfig.getParameter<double> (
"MaxEta")),
37 min_Nhits_ (iConfig.getParameter<
int> (
"MinNhits")),
38 max_Dz_ (iConfig.getParameter<double> (
"MaxDz")),
39 min_DxySig_ (iConfig.getParameter<double> (
"MinDxySig")),
40 min_Pt_ (iConfig.getParameter<double> (
"MinPt")),
41 nsigma_Pt_ (iConfig.getParameter<double> (
"NSigmaPt")),
42 max_NormalizedChi2_ (iConfig.getParameter<double> (
"MaxNormalizedChi2")),
43 max_DXYBeamSpot_ (iConfig.getParameter<double> (
"MaxDXYBeamSpot")),
44 min_DXYBeamSpot_ (iConfig.getParameter<double> (
"MinDXYBeamSpot")),
45 min_NmuonHits_ (iConfig.getParameter<
int> (
"MinNmuonHits")),
46 max_PtDifference_ (iConfig.getParameter<double> (
"MaxPtDifference")),
47 min_TrackPt_ (iConfig.getParameter<double> (
"MinTrackPt")),
48 matchPreviousCand_( iConfig.getParameter<
bool>(
"MatchToPreviousCand") )
69 desc.
add<
int>(
"MinN",1);
70 desc.
add<
double>(
"MaxEta",2.5);
71 desc.
add<
int>(
"MinNhits",0);
72 desc.
add<
double>(
"MaxDz",9999.0);
73 desc.
add<
double>(
"MinDxySig",-1.0);
74 desc.
add<
double>(
"MinPt",3.0);
75 desc.
add<
double>(
"NSigmaPt",0.0);
76 desc.
add<
double>(
"MaxNormalizedChi2",9999.0);
77 desc.
add<
double>(
"MaxDXYBeamSpot",9999.0);
78 desc.
add<
double>(
"MinDXYBeamSpot",-1.0);
79 desc.
add<
int>(
"MinNmuonHits",0);
80 desc.
add<
double>(
"MaxPtDifference",9999.0);
81 desc.
add<
double>(
"MinTrackPt",0.0);
82 desc.
add<
bool>(
"MatchToPreviousCand",
true);
83 descriptions.
add(
"hltMuonL3SimplePreFilter", desc);
102 vector<RecoChargedCandidateRef> vcands;
103 if (previousLevelCands.
isValid()) {
112 for (
unsigned int iMu=0; iMu<mucands->size(); iMu++) {
123 LogDebug(
"HLTMuonL3SimplePreFilter") <<
" Muon in loop, q*pt= " << tk->charge()*tk->pt() <<
" (" << cand->charge()*cand->pt() <<
") " 124 <<
", eta= " << tk->eta() <<
" (" << cand->eta() <<
") " <<
", hits= " << tk->numberOfValidHits()
125 <<
", d0= " << tk->d0() <<
", dz= " << tk->dz();
128 if (tk->numberOfValidHits()<
min_Nhits_)
continue;
134 if (recoBeamSpotHandle.
isValid()){
138 if (
std::abs((cand->vz()-beamSpot.
z0()) - ((cand->vx()-beamSpot.
x0())*cand->px()+(cand->vy()-beamSpot.
y0())*cand->py())/cand->pt() * cand->pz()/cand->pt())>
max_Dz_)
continue;
153 double candPt = cand->pt();
162 double pt = cand->pt();
163 double err0 = tk->error(0);
164 double abspar0 =
std::abs(tk->parameter(0));
168 LogTrace(
"HLTMuonL3SimplePreFilter") <<
" ...Muon in loop, trackkRef pt= " 169 << tk->pt() <<
", ptLx= " << ptLx
170 <<
" cand pT " << cand->pt();
180 LogDebug(
"HLTMuonL3SimplePreFilter") <<
" >>>>> Result of HLTMuonL3PreFilter is " << accept <<
", number of muons passing thresholds= " <<
n;
188 unsigned int i_max=vcands.size();
190 if (candref == vcands[i])
return true;
double z0() const
z coordinate
bool hltFilter(edm::Event &, const edm::EventSetup &, trigger::TriggerFilterObjectWithRefs &filterproduct) const override
void getObjects(Vids &ids, VRphoton &refs) const
various physics-level getters:
bool isNonnull() const
Checks for non-null.
const double min_DXYBeamSpot_
const double min_TrackPt_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
edm::InputTag beamspotTag_
static bool triggerdByPreviousLevel(const reco::RecoChargedCandidateRef &, const std::vector< reco::RecoChargedCandidateRef > &)
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
edm::InputTag previousCandTag_
const double max_NormalizedChi2_
void addObject(int id, const reco::RecoEcalCandidateRef &ref)
setters for L3 collections: (id=physics type, and Ref<C>)
edm::EDGetTokenT< reco::BeamSpot > beamspotToken_
#define DEFINE_FWK_MODULE(type)
edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > previousCandToken_
Abs< T >::type abs(const T &t)
ParameterDescriptionBase * add(U const &iLabel, T const &value)
static void makeHLTFilterDescription(edm::ParameterSetDescription &desc)
const double max_DXYBeamSpot_
void addCollectionTag(const edm::InputTag &collectionTag)
collectionTags
void add(std::string const &label, ParameterSetDescription const &psetDescription)
edm::EDGetTokenT< reco::RecoChargedCandidateCollection > candToken_
HLTMuonL3SimplePreFilter(const edm::ParameterSet &)
~HLTMuonL3SimplePreFilter() override
double y0() const
y coordinate
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
const Point & position() const
position
int numberOfValidMuonHits() const
double x0() const
x coordinate
const double max_PtDifference_