CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Attributes
HLTMuonL2FromL1TPreFilter Class Reference

#include <HLTMuonL2FromL1TPreFilter.h>

Inheritance diagram for HLTMuonL2FromL1TPreFilter:
HLTFilter edm::global::EDFilter<> edm::global::EDFilterBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

bool hltFilter (edm::Event &, const edm::EventSetup &, trigger::TriggerFilterObjectWithRefs &filterproduct) const override
 
 HLTMuonL2FromL1TPreFilter (const edm::ParameterSet &)
 
 ~HLTMuonL2FromL1TPreFilter () override
 
- Public Member Functions inherited from HLTFilter
 HLTFilter (const edm::ParameterSet &config)
 
int module (edm::Event const &) const
 
const std::string * moduleLabel () const
 
int path (edm::Event const &) const
 
const std::string * pathName (edm::Event const &) const
 
std::pair< int, int > pmid (edm::Event const &) const
 
bool saveTags () const
 
 ~HLTFilter () override
 
- Public Member Functions inherited from edm::global::EDFilter<>
 EDFilter ()=default
 
bool hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsStreamLuminosityBlocks () const final
 
bool wantsStreamRuns () const final
 
- Public Member Functions inherited from edm::global::EDFilterBase
 EDFilterBase ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDFilterBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from HLTFilter
static void makeHLTFilterDescription (edm::ParameterSetDescription &desc)
 
- Static Public Member Functions inherited from edm::global::EDFilterBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Attributes

std::vector< double > absetaBins_
 
edm::InputTag beamSpotTag_
 input tag of the beam spot More...
 
edm::EDGetTokenT< reco::BeamSpotbeamSpotToken_
 
edm::InputTag candTag_
 input tag of L2 muons More...
 
edm::EDGetTokenT< reco::RecoChargedCandidateCollectioncandToken_
 
bool cutOnChambers_
 choose whether to apply cut on number of chambers (DT+CSC) More...
 
bool matchPreviousCand_
 require the matching with the L1 firing the L1 filter More...
 
double maxDr_
 cut on impact parameter wrt to the beam spot More...
 
double maxDz_
 cut on dz wrt to the beam spot More...
 
double maxEta_
 maxEta cut More...
 
double min_DxySig_
 dxy significance cut More...
 
double minDr_
 cut on impact parameter wrt to the beam spot More...
 
int minN_
 minimum number of muons to fire the trigger More...
 
std::vector< int > minNchambers_
 minimum number of valid chambers More...
 
std::vector< int > minNhits_
 minimum number of valid muon hits More...
 
std::vector< int > minNstations_
 minimum number of muon stations used More...
 
double minPt_
 pt threshold in GeV More...
 
double nSigmaPt_
 pt uncertainty margin (in number of sigmas) More...
 
edm::InputTag previousCandTag_
 input tag of the preceeding L1 filter in the path More...
 
edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefspreviousCandToken_
 
edm::InputTag seedMapTag_
 input tag of the map from the L2 seed to the sister L2 seeds of cleaned tracks More...
 
edm::EDGetTokenT< SeedMapseedMapToken_
 

Additional Inherited Members

- Public Types inherited from edm::global::EDFilterBase
typedef EDFilterBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

See header file for documentation

Author
J. Alcaraz

This class is an HLTFilter (-> EDFilter) implementing a first filtering for HLT muons

Author
J. Alcaraz

Definition at line 23 of file HLTMuonL2FromL1TPreFilter.h.

Constructor & Destructor Documentation

HLTMuonL2FromL1TPreFilter::HLTMuonL2FromL1TPreFilter ( const edm::ParameterSet iConfig)
explicit

Definition at line 26 of file HLTMuonL2FromL1TPreFilter.cc.

References absetaBins_, beamSpotTag_, candTag_, cutOnChambers_, edm::InputTag::encode(), Exception, mps_fire::i, edm::isDebugEnabled(), LogDebug, maxDr_, maxDz_, maxEta_, min_DxySig_, minDr_, minN_, minNchambers_, minNhits_, minNstations_, minPt_, nSigmaPt_, previousCandTag_, HLTFilter::saveTags(), seedMapTag_, and ~HLTMuonL2FromL1TPreFilter().

26  : HLTFilter(iConfig),
27  beamSpotTag_( iConfig.getParameter<edm::InputTag>("BeamSpotTag") ),
28  beamSpotToken_(consumes<reco::BeamSpot>(beamSpotTag_)),
29  candTag_( iConfig.getParameter<edm::InputTag >("CandTag") ),
30  candToken_(consumes<reco::RecoChargedCandidateCollection>(candTag_)),
31  previousCandTag_( iConfig.getParameter<edm::InputTag >("PreviousCandTag") ),
32  previousCandToken_(consumes<trigger::TriggerFilterObjectWithRefs>(previousCandTag_)),
33  seedMapTag_( iConfig.getParameter<edm::InputTag >("SeedMapTag") ),
34  seedMapToken_(consumes<SeedMap>(seedMapTag_)),
35  minN_( iConfig.getParameter<int>("MinN") ),
36  maxEta_( iConfig.getParameter<double>("MaxEta") ),
37  absetaBins_( iConfig.getParameter<std::vector<double> >("AbsEtaBins") ),
38  minNstations_( iConfig.getParameter<std::vector<int> >("MinNstations") ),
39  minNhits_( iConfig.getParameter<std::vector<int> >("MinNhits") ),
40  cutOnChambers_( iConfig.getParameter<bool>("CutOnChambers") ),
41  minNchambers_( iConfig.getParameter<std::vector<int> >("MinNchambers") ),
42  maxDr_( iConfig.getParameter<double>("MaxDr") ),
43  minDr_( iConfig.getParameter<double>("MinDr") ),
44  maxDz_( iConfig.getParameter<double>("MaxDz") ),
45  min_DxySig_(iConfig.getParameter<double> ("MinDxySig")),
46  minPt_( iConfig.getParameter<double>("MinPt") ),
47  nSigmaPt_( iConfig.getParameter<double>("NSigmaPt") ),
48  matchPreviousCand_( iConfig.getParameter<bool>("MatchToPreviousCand") )
49 {
50  using namespace std;
51 
52  // check that number of eta bins matches number of nStation cuts
53  if( minNstations_.size()!=absetaBins_.size() ||
54  minNhits_.size()!=absetaBins_.size() ||
55  ( cutOnChambers_ && minNchambers_.size()!=absetaBins_.size() ) ) {
56  throw cms::Exception("Configuration") << "Number of MinNstations, MinNhits, or MinNchambers cuts "
57  << "does not match number of eta bins." << endl;
58  }
59 
60  if(absetaBins_.size()>1) {
61  for(unsigned int i=0; i<absetaBins_.size()-1; ++i) {
62  if(absetaBins_[i+1]<=absetaBins_[i])
63  throw cms::Exception("Configuration") << "Absolute eta bins must be in increasing order." << endl;
64  }
65  }
66 
67  // dump parameters for debugging
68  if(edm::isDebugEnabled()){
69  ostringstream ss;
70  ss<<"Constructed with parameters:"<<endl;
71  ss<<" BeamSpotTag = "<<beamSpotTag_.encode()<<endl;
72  ss<<" CandTag = "<<candTag_.encode()<<endl;
73  ss<<" PreviousCandTag = "<<previousCandTag_.encode()<<endl;
74  ss<<" SeedMapTag = "<<seedMapTag_.encode()<<endl;
75  ss<<" MinN = "<<minN_<<endl;
76  ss<<" MaxEta = "<<maxEta_<<endl;
77  ss<<" MinNstations = ";
78  for(unsigned int j=0; j<absetaBins_.size(); ++j) {
79  ss<<minNstations_[j]<<" (|eta|<"<<absetaBins_[j]<<"), ";
80  }
81  ss<<endl;
82  ss<<" MinNhits = ";
83  for(unsigned int j=0; j<absetaBins_.size(); ++j) {
84  ss<<minNhits_[j]<<" (|eta|<"<<absetaBins_[j]<<"), ";
85  }
86  ss<<endl;
87  ss<<" CutOnChambers = " <<cutOnChambers_<<endl;
88  if ( cutOnChambers_ ) {
89  ss<<" MinNchambers = ";
90  for(unsigned int j=0; j<absetaBins_.size(); ++j) {
91  ss<<minNchambers_[j]<<" (|eta|<"<<absetaBins_[j]<<"), ";
92  }
93  }
94  ss<<endl;
95  ss<<" MaxDr = "<<maxDr_<<endl;
96  ss<<" MinDr = "<<minDr_<<endl;
97  ss<<" MaxDz = "<<maxDz_<<endl;
98  ss<<" MinDxySig = "<<min_DxySig_<<endl;
99  ss<<" MinPt = "<<minPt_<<endl;
100  ss<<" NSigmaPt = "<<nSigmaPt_<<endl;
101  ss<<" saveTags= "<<saveTags();
102  LogDebug("HLTMuonL2FromL1TPreFilter")<<ss.str();
103  }
104 }
#define LogDebug(id)
T getParameter(std::string const &) const
bool isDebugEnabled()
edm::InputTag previousCandTag_
input tag of the preceeding L1 filter in the path
edm::EDGetTokenT< reco::RecoChargedCandidateCollection > candToken_
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
std::vector< int > minNstations_
minimum number of muon stations used
double minDr_
cut on impact parameter wrt to the beam spot
bool cutOnChambers_
choose whether to apply cut on number of chambers (DT+CSC)
std::string encode() const
Definition: InputTag.cc:159
bool matchPreviousCand_
require the matching with the L1 firing the L1 filter
edm::EDGetTokenT< SeedMap > seedMapToken_
double min_DxySig_
dxy significance cut
std::vector< int > minNhits_
minimum number of valid muon hits
edm::InputTag beamSpotTag_
input tag of the beam spot
int minN_
minimum number of muons to fire the trigger
double minPt_
pt threshold in GeV
HLTFilter(const edm::ParameterSet &config)
Definition: HLTFilter.cc:20
edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > previousCandToken_
std::vector< int > minNchambers_
minimum number of valid chambers
bool saveTags() const
Definition: HLTFilter.h:45
double maxDz_
cut on dz wrt to the beam spot
double maxDr_
cut on impact parameter wrt to the beam spot
edm::InputTag candTag_
input tag of L2 muons
double nSigmaPt_
pt uncertainty margin (in number of sigmas)
edm::InputTag seedMapTag_
input tag of the map from the L2 seed to the sister L2 seeds of cleaned tracks
HLTMuonL2FromL1TPreFilter::~HLTMuonL2FromL1TPreFilter ( )
overridedefault

Member Function Documentation

void HLTMuonL2FromL1TPreFilter::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 109 of file HLTMuonL2FromL1TPreFilter.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), and HLTFilter::makeHLTFilterDescription().

109  {
112  desc.add<edm::InputTag>("BeamSpotTag",edm::InputTag("hltOfflineBeamSpot"));
113  desc.add<edm::InputTag>("CandTag",edm::InputTag("hltL2MuonCandidates"));
114  desc.add<edm::InputTag>("PreviousCandTag",edm::InputTag(""));
115  desc.add<edm::InputTag>("SeedMapTag",edm::InputTag("hltL2Muons"));
116  desc.add<int>("MinN",1);
117  desc.add<double>("MaxEta",2.5);
118  desc.add<std::vector<double> >("AbsEtaBins", std::vector<double>(1, 9999.));
119  desc.add<std::vector<int> >("MinNstations", std::vector<int>(1, 1));
120  desc.add<std::vector<int> >("MinNhits", std::vector<int>(1, 0));
121  desc.add<bool> ("CutOnChambers", false);
122  desc.add<std::vector<int> >("MinNchambers", std::vector<int>(1, 0));
123  desc.add<double>("MaxDr",9999.0);
124  desc.add<double>("MinDr",-1.0);
125  desc.add<double>("MaxDz",9999.0);
126  desc.add<double>("MinDxySig",-1.0);
127  desc.add<double>("MinPt",0.0);
128  desc.add<double>("NSigmaPt",0.0);
129  desc.add<bool>("MatchToPreviousCand",true);
130  descriptions.add("hltMuonL2FromL1TPreFilter",desc);
131 }
ParameterDescriptionBase * add(U const &iLabel, T const &value)
static void makeHLTFilterDescription(edm::ParameterSetDescription &desc)
Definition: HLTFilter.cc:29
void add(std::string const &label, ParameterSetDescription const &psetDescription)
bool HLTMuonL2FromL1TPreFilter::hltFilter ( edm::Event iEvent,
const edm::EventSetup iSetup,
trigger::TriggerFilterObjectWithRefs filterproduct 
) const
overridevirtual

Implements HLTFilter.

Definition at line 138 of file HLTMuonL2FromL1TPreFilter.cc.

References funct::abs(), absetaBins_, accept(), trigger::TriggerFilterObjectWithRefs::addCollectionTag(), trigger::TriggerRefsCollections::addObject(), allMuons_cfi::allMuons, ecalDrivenElectronSeedsParameters_cff::beamSpot, beamSpotToken_, candTag_, candToken_, cutOnChambers_, DEFINE_FWK_MODULE, spr::find(), alignBH_cfg::fixed, edm::Event::getByToken(), HLTMuonL2ToL1TMap::getL1Keys(), trigger::TriggerRefsCollections::getObjects(), mps_fire::i, edm::isDebugEnabled(), HLTMuonL2ToL1TMap::isTriggeredByL1(), LogDebug, matchPreviousCand_, maxDr_, maxDz_, maxEta_, min_DxySig_, minDr_, minN_, minNchambers_, minNhits_, minNstations_, minPt_, RPCpg::mu, trigger::TriggerRefsCollections::muonSize(), gen::n, nSigmaPt_, reco::BeamSpot::position(), previousCandToken_, EnergyCorrector::pt, HLTFilter::saveTags(), seedMapToken_, and trigger::TriggerMuon.

139 {
140  // All HLT filters must create and fill an HLT filter object,
141  // recording any reconstructed physics objects satisfying (or not)
142  // this HLT filter, and place it in the Event.
143 
144  using namespace std;
145  using namespace edm;
146  using namespace reco;
147  using namespace trigger;
148 // using namespace l1extra;
149 
150  // save Tag
151  if (saveTags()) filterproduct.addCollectionTag(candTag_);
152 
153  // get hold of all muon candidates available at this level
155  iEvent.getByToken(candToken_, allMuons);
156 
157  // get hold of the beam spot
158  Handle<BeamSpot> beamSpotHandle;
159  iEvent.getByToken(beamSpotToken_, beamSpotHandle);
160  BeamSpot::Point beamSpot = beamSpotHandle->position();
161 
162  // get the L2 to L1 map object for this event
164 
165  // number of eta bins for cut on number of stations
166  const std::vector<double>::size_type nAbsetaBins = absetaBins_.size();
167 
168  // look at all allMuons, check cuts and add to filter object
169  int n = 0;
170  for(auto cand=allMuons->begin(); cand!=allMuons->end(); cand++){
171  TrackRef mu = cand->get<TrackRef>();
172 
173  // check if this muon passed previous level
174  if(matchPreviousCand_ && !mapL2ToL1.isTriggeredByL1(mu)) continue;
175 
176  // eta cut
177  if(std::abs(mu->eta()) > maxEta_) continue;
178 
179  // cut on number of stations
180  bool failNstations(false), failNhits(false), failNchambers(false);
181  for(unsigned int i=0; i<nAbsetaBins; ++i) {
182  if( std::abs(mu->eta())<absetaBins_[i] ) {
183  if(mu->hitPattern().muonStationsWithAnyHits() < minNstations_[i]) {
184  failNstations=true;
185  }
186  if(mu->numberOfValidHits() < minNhits_[i]) {
187  failNhits=true;
188  }
189  if( cutOnChambers_ &&
190  ( mu->hitPattern().dtStationsWithAnyHits() +
191  mu->hitPattern().cscStationsWithAnyHits() < minNchambers_[i]) ) {
192  failNchambers=true;
193  }
194  break;
195  }
196  }
197  if(failNstations || failNhits || failNchambers) continue;
198 
199  //dr cut
200  if(std::abs(mu->dxy(beamSpot)) > maxDr_) continue;
201 
202  //dr cut
203  if(std::abs(mu->dxy(beamSpot)) < minDr_) continue;
204 
205  //dz cut
206  if(std::abs(mu->dz(beamSpot)) > maxDz_) continue;
207 
208  // dxy significance cut (safeguard against bizarre values)
209  if (min_DxySig_ > 0 && (mu->dxyError() <= 0 || std::abs(mu->dxy(beamSpot)/mu->dxyError()) < min_DxySig_)) continue;
210 
211  // Pt threshold cut
212  double pt = mu->pt();
213  double abspar0 = std::abs(mu->parameter(0));
214  double ptLx = pt;
215  // convert 50% efficiency threshold to 90% efficiency threshold
216  if(abspar0 > 0) ptLx += nSigmaPt_*mu->error(0)/abspar0*pt;
217  if(ptLx < minPt_) continue;
218 
219  // add the good candidate to the filter object
220  filterproduct.addObject(TriggerMuon, RecoChargedCandidateRef(Ref<RecoChargedCandidateCollection>(allMuons, cand-allMuons->begin())));
221 
222  n++;
223  }
224 
225  // filter decision
226  const bool accept (n >= minN_);
227 
228  // dump event for debugging
229  if(edm::isDebugEnabled()){
230  ostringstream ss;
231  ss<<"L2mu#"
232  <<'\t'<<"q*pt"<<'\t' //scientific is too wide
233  <<'\t'<<"q*ptLx"<<'\t' //scientific is too wide
234  <<'\t'<<"eta"
235  <<'\t'<<"phi"
236  <<'\t'<<"nStations"
237  <<'\t'<<"nHits"
238  <<'\t'<<"dr"<<'\t' //scientific is too wide
239  <<'\t'<<"dz"<<'\t' //scientific is too wide
240  <<'\t'<<"L1seed#"
241  <<'\t'<<"isPrev"
242  <<'\t'<<"isFired"
243  <<endl;
244  ss<<"-----------------------------------------------------------------------------------------------------------------------"<<endl;
245  for (auto cand = allMuons->begin(); cand != allMuons->end(); cand++) {
246  TrackRef mu = cand->get<TrackRef>();
247  ss<<setprecision(2)
248  <<cand-allMuons->begin()
249  <<'\t'<<scientific<<mu->charge()*mu->pt()
250  <<'\t'<<scientific<<mu->charge()*mu->pt()*(1. + ((mu->parameter(0) != 0) ? nSigmaPt_*mu->error(0)/std::abs(mu->parameter(0)) : 0.))
251  <<'\t'<<fixed<<mu->eta()
252  <<'\t'<<fixed<<mu->phi()
253  <<'\t'<<mu->hitPattern().muonStationsWithAnyHits()
254  <<'\t'<<mu->numberOfValidHits()
255  <<'\t'<<scientific<<mu->d0()
256  <<'\t'<<scientific<<mu->dz()
257  <<'\t'<<mapL2ToL1.getL1Keys(mu)
258  <<'\t'<<mapL2ToL1.isTriggeredByL1(mu);
259  vector<RecoChargedCandidateRef> firedMuons;
260  filterproduct.getObjects(TriggerMuon, firedMuons);
261  ss<<'\t'<<(find(firedMuons.begin(), firedMuons.end(), RecoChargedCandidateRef(Ref<RecoChargedCandidateCollection>(allMuons, cand-allMuons->begin()))) != firedMuons.end())
262  <<endl;
263  }
264  ss<<"-----------------------------------------------------------------------------------------------------------------------"<<endl;
265  ss<<"Decision of filter is "<<accept<<", number of muons passing = "<<filterproduct.muonSize();
266  LogDebug("HLTMuonL2FromL1TPreFilter")<<ss.str();
267  }
268 
269  return accept;
270 }
#define LogDebug(id)
bool isDebugEnabled()
void getObjects(Vids &ids, VRphoton &refs) const
various physics-level getters:
edm::EDGetTokenT< reco::RecoChargedCandidateCollection > candToken_
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
std::vector< int > minNstations_
minimum number of muon stations used
double minDr_
cut on impact parameter wrt to the beam spot
edm::Ref< RecoChargedCandidateCollection > RecoChargedCandidateRef
reference to an object in a collection of RecoChargedCandidate objects
math::XYZPoint Point
point in the space
Definition: BeamSpot.h:29
bool cutOnChambers_
choose whether to apply cut on number of chambers (DT+CSC)
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:20
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
Definition: TopDQMHelpers.h:30
uint16_t size_type
void addObject(int id, const reco::RecoEcalCandidateRef &ref)
setters for L3 collections: (id=physics type, and Ref<C>)
bool matchPreviousCand_
require the matching with the L1 firing the L1 filter
edm::EDGetTokenT< SeedMap > seedMapToken_
double min_DxySig_
dxy significance cut
std::vector< int > minNhits_
minimum number of valid muon hits
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
const int mu
Definition: Constants.h:22
int minN_
minimum number of muons to fire the trigger
double minPt_
pt threshold in GeV
edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > previousCandToken_
void addCollectionTag(const edm::InputTag &collectionTag)
collectionTags
std::vector< int > minNchambers_
minimum number of valid chambers
fixed size matrix
bool saveTags() const
Definition: HLTFilter.h:45
HLT enums.
double maxDz_
cut on dz wrt to the beam spot
double maxDr_
cut on impact parameter wrt to the beam spot
const Point & position() const
position
Definition: BeamSpot.h:62
edm::InputTag candTag_
input tag of L2 muons
double nSigmaPt_
pt uncertainty margin (in number of sigmas)

Member Data Documentation

std::vector<double> HLTMuonL2FromL1TPreFilter::absetaBins_
private

|eta| bins for minNstations cut (#bins must match #minNstations cuts and #minNhits cuts)

Definition at line 56 of file HLTMuonL2FromL1TPreFilter.h.

Referenced by hltFilter(), and HLTMuonL2FromL1TPreFilter().

edm::InputTag HLTMuonL2FromL1TPreFilter::beamSpotTag_
private

input tag of the beam spot

Definition at line 33 of file HLTMuonL2FromL1TPreFilter.h.

Referenced by HLTMuonL2FromL1TPreFilter().

edm::EDGetTokenT<reco::BeamSpot> HLTMuonL2FromL1TPreFilter::beamSpotToken_
private

Definition at line 34 of file HLTMuonL2FromL1TPreFilter.h.

Referenced by hltFilter().

edm::InputTag HLTMuonL2FromL1TPreFilter::candTag_
private

input tag of L2 muons

Definition at line 37 of file HLTMuonL2FromL1TPreFilter.h.

Referenced by hltFilter(), and HLTMuonL2FromL1TPreFilter().

edm::EDGetTokenT<reco::RecoChargedCandidateCollection> HLTMuonL2FromL1TPreFilter::candToken_
private

Definition at line 38 of file HLTMuonL2FromL1TPreFilter.h.

Referenced by hltFilter().

bool HLTMuonL2FromL1TPreFilter::cutOnChambers_
private

choose whether to apply cut on number of chambers (DT+CSC)

Definition at line 65 of file HLTMuonL2FromL1TPreFilter.h.

Referenced by hltFilter(), and HLTMuonL2FromL1TPreFilter().

bool HLTMuonL2FromL1TPreFilter::matchPreviousCand_
private

require the matching with the L1 firing the L1 filter

Definition at line 89 of file HLTMuonL2FromL1TPreFilter.h.

Referenced by hltFilter().

double HLTMuonL2FromL1TPreFilter::maxDr_
private

cut on impact parameter wrt to the beam spot

Definition at line 71 of file HLTMuonL2FromL1TPreFilter.h.

Referenced by hltFilter(), and HLTMuonL2FromL1TPreFilter().

double HLTMuonL2FromL1TPreFilter::maxDz_
private

cut on dz wrt to the beam spot

Definition at line 77 of file HLTMuonL2FromL1TPreFilter.h.

Referenced by hltFilter(), and HLTMuonL2FromL1TPreFilter().

double HLTMuonL2FromL1TPreFilter::maxEta_
private

maxEta cut

Definition at line 52 of file HLTMuonL2FromL1TPreFilter.h.

Referenced by hltFilter(), and HLTMuonL2FromL1TPreFilter().

double HLTMuonL2FromL1TPreFilter::min_DxySig_
private

dxy significance cut

Definition at line 80 of file HLTMuonL2FromL1TPreFilter.h.

Referenced by hltFilter(), and HLTMuonL2FromL1TPreFilter().

double HLTMuonL2FromL1TPreFilter::minDr_
private

cut on impact parameter wrt to the beam spot

Definition at line 74 of file HLTMuonL2FromL1TPreFilter.h.

Referenced by hltFilter(), and HLTMuonL2FromL1TPreFilter().

int HLTMuonL2FromL1TPreFilter::minN_
private

minimum number of muons to fire the trigger

Definition at line 49 of file HLTMuonL2FromL1TPreFilter.h.

Referenced by hltFilter(), and HLTMuonL2FromL1TPreFilter().

std::vector<int> HLTMuonL2FromL1TPreFilter::minNchambers_
private

minimum number of valid chambers

Definition at line 68 of file HLTMuonL2FromL1TPreFilter.h.

Referenced by hltFilter(), and HLTMuonL2FromL1TPreFilter().

std::vector<int> HLTMuonL2FromL1TPreFilter::minNhits_
private

minimum number of valid muon hits

Definition at line 62 of file HLTMuonL2FromL1TPreFilter.h.

Referenced by hltFilter(), and HLTMuonL2FromL1TPreFilter().

std::vector<int> HLTMuonL2FromL1TPreFilter::minNstations_
private

minimum number of muon stations used

Definition at line 59 of file HLTMuonL2FromL1TPreFilter.h.

Referenced by hltFilter(), and HLTMuonL2FromL1TPreFilter().

double HLTMuonL2FromL1TPreFilter::minPt_
private

pt threshold in GeV

Definition at line 83 of file HLTMuonL2FromL1TPreFilter.h.

Referenced by hltFilter(), and HLTMuonL2FromL1TPreFilter().

double HLTMuonL2FromL1TPreFilter::nSigmaPt_
private

pt uncertainty margin (in number of sigmas)

Definition at line 86 of file HLTMuonL2FromL1TPreFilter.h.

Referenced by hltFilter(), and HLTMuonL2FromL1TPreFilter().

edm::InputTag HLTMuonL2FromL1TPreFilter::previousCandTag_
private

input tag of the preceeding L1 filter in the path

Definition at line 41 of file HLTMuonL2FromL1TPreFilter.h.

Referenced by HLTMuonL2FromL1TPreFilter().

edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs> HLTMuonL2FromL1TPreFilter::previousCandToken_
private

Definition at line 42 of file HLTMuonL2FromL1TPreFilter.h.

Referenced by hltFilter().

edm::InputTag HLTMuonL2FromL1TPreFilter::seedMapTag_
private

input tag of the map from the L2 seed to the sister L2 seeds of cleaned tracks

Definition at line 45 of file HLTMuonL2FromL1TPreFilter.h.

Referenced by HLTMuonL2FromL1TPreFilter().

edm::EDGetTokenT<SeedMap> HLTMuonL2FromL1TPreFilter::seedMapToken_
private

Definition at line 46 of file HLTMuonL2FromL1TPreFilter.h.

Referenced by hltFilter().