Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:18:37

0001 #ifndef HLTMuonL2FromL1TPreFilter_h
0002 #define HLTMuonL2FromL1TPreFilter_h
0003 
0004 /** \class HLTMuonL2FromL1TPreFilter
0005  *
0006  *
0007  *  This class is an HLTFilter (-> EDFilter) implementing a first
0008  *  filtering for HLT muons
0009  *
0010  *  \author J. Alcaraz
0011  *
0012  */
0013 
0014 #include "HLTrigger/HLTcore/interface/HLTFilter.h"
0015 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
0016 #include "DataFormats/RecoCandidate/interface/RecoChargedCandidateFwd.h"
0017 #include "HLTMuonL2ToL1TMap.h"
0018 
0019 namespace edm {
0020   class ConfigurationDescriptions;
0021 }
0022 
0023 class HLTMuonL2FromL1TPreFilter : public HLTFilter {
0024 public:
0025   explicit HLTMuonL2FromL1TPreFilter(const edm::ParameterSet&);
0026   ~HLTMuonL2FromL1TPreFilter() override;
0027   static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0028   bool hltFilter(edm::Event&,
0029                  const edm::EventSetup&,
0030                  trigger::TriggerFilterObjectWithRefs& filterproduct) const override;
0031 
0032 private:
0033   /// input tag of the beam spot
0034   edm::InputTag beamSpotTag_;
0035   edm::EDGetTokenT<reco::BeamSpot> beamSpotToken_;
0036 
0037   /// input tag of L2 muons
0038   edm::InputTag candTag_;
0039   edm::EDGetTokenT<reco::RecoChargedCandidateCollection> candToken_;
0040 
0041   /// input tag of the preceeding L1 filter in the path
0042   edm::InputTag previousCandTag_;
0043   edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs> previousCandToken_;
0044 
0045   /// input tag of the map from the L2 seed to the sister L2 seeds of cleaned tracks
0046   edm::InputTag seedMapTag_;
0047   edm::EDGetTokenT<SeedMap> seedMapToken_;
0048 
0049   /// minimum number of muons to fire the trigger
0050   int minN_;
0051 
0052   /// maxEta cut
0053   double maxEta_;
0054 
0055   /// |eta| bins for minNstations cut
0056   /// (#bins must match #minNstations cuts and #minNhits cuts)
0057   std::vector<double> absetaBins_;
0058 
0059   /// minimum number of muon stations used
0060   std::vector<int> minNstations_;
0061 
0062   /// minimum number of valid muon hits
0063   std::vector<int> minNhits_;
0064 
0065   /// choose whether to apply cut on number of chambers (DT+CSC)
0066   bool cutOnChambers_;
0067 
0068   /// minimum number of valid chambers
0069   std::vector<int> minNchambers_;
0070 
0071   /// cut on impact parameter wrt to the beam spot
0072   double maxDr_;
0073 
0074   /// cut on impact parameter wrt to the beam spot
0075   double minDr_;
0076 
0077   /// cut on dz wrt to the beam spot
0078   double maxDz_;
0079 
0080   /// dxy significance cut
0081   double min_DxySig_;
0082 
0083   /// pt threshold in GeV
0084   double minPt_;
0085 
0086   /// pt uncertainty margin (in number of sigmas)
0087   double nSigmaPt_;
0088 
0089   /// require the matching with the L1 firing the L1 filter
0090   bool matchPreviousCand_;
0091 };
0092 
0093 #endif  //HLTMuonL2FromL1TPreFilter_h