Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef HLTDTActivityFilter_h
0002 #define HLTDTActivityFilter_h
0003 // -*- C++ -*-
0004 //
0005 // Package:    HLTDTActivityFilter
0006 // Class:      HLTDTActivityFilter
0007 //
0008 
0009 /*
0010 
0011 Description: Filter to select events with activity in the muon barrel system
0012 
0013 */
0014 
0015 //
0016 // Original Author:  Carlo Battilana
0017 //         Created:  Tue Jan 22 13:55:00 CET 2008
0018 //
0019 //
0020 
0021 // Fwk header files
0022 #include "FWCore/Framework/interface/Frameworkfwd.h"
0023 #include "FWCore/Framework/interface/Event.h"
0024 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0025 #include "HLTrigger/HLTcore/interface/HLTFilter.h"
0026 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTReadoutCollection.h"
0027 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuRegionalCand.h"
0028 #include "DataFormats/L1DTTrackFinder/interface/L1MuDTChambPhContainer.h"
0029 #include "DataFormats/L1DTTrackFinder/interface/L1MuDTChambThContainer.h"
0030 #include "DataFormats/DTDigi/interface/DTLocalTriggerCollection.h"
0031 #include "DataFormats/DTDigi/interface/DTDigiCollection.h"
0032 #include "Geometry/Records/interface/MuonGeometryRecord.h"
0033 #include "Geometry/DTGeometry/interface/DTGeometry.h"
0034 
0035 // c++ header files
0036 #include <bitset>
0037 #include <string>
0038 
0039 class DTGeometry;
0040 class L1MuRegionalCand;
0041 
0042 namespace edm {
0043   class ConfigurationDescriptions;
0044 }
0045 
0046 //
0047 // class declaration
0048 //
0049 
0050 class HLTDTActivityFilter : public HLTFilter {
0051 public:
0052   explicit HLTDTActivityFilter(const edm::ParameterSet &);
0053   ~HLTDTActivityFilter() override;
0054   static void fillDescriptions(edm::ConfigurationDescriptions &descriptions);
0055 
0056 private:
0057   bool hltFilter(edm::Event &,
0058                  const edm::EventSetup &,
0059                  trigger::TriggerFilterObjectWithRefs &filterproduct) const override;
0060 
0061   bool hasActivity(const std::bitset<4> &) const;
0062   bool matchChamber(uint32_t rawId, L1MuRegionalCand const &rpcTrig, DTGeometry const *dtGeom) const;
0063 
0064   enum activityType { DCC = 0, DDU = 1, RPC = 2, DIGI = 3 };
0065 
0066   // ----------member data ---------------------------
0067 
0068   edm::ESGetToken<DTGeometry, MuonGeometryRecord> const muonGeometryRecordToken_;
0069 
0070   edm::InputTag inputTag_[4];
0071   bool process_[4];
0072   std::bitset<15> activeSecs_;
0073 
0074   edm::EDGetTokenT<L1MuDTChambPhContainer> inputDCCToken_;
0075   edm::EDGetTokenT<DTLocalTriggerCollection> inputDDUToken_;
0076   edm::EDGetTokenT<L1MuGMTReadoutCollection> inputRPCToken_;
0077   edm::EDGetTokenT<DTDigiCollection> inputDigiToken_;
0078 
0079   bool orTPG_;
0080   bool orRPC_;
0081   bool orDigi_;
0082 
0083   int minQual_;
0084   int maxStation_;
0085   int minBX_[3];
0086   int maxBX_[3];
0087   int minActiveChambs_;
0088   int minChambLayers_;
0089 
0090   float maxDeltaPhi_;
0091   float maxDeltaEta_;
0092 };
0093 
0094 #endif