File indexing completed on 2024-04-06 12:18:39
0001 #ifndef HLTDTActivityFilter_h
0002 #define HLTDTActivityFilter_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
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
0036 #include <bitset>
0037 #include <string>
0038
0039 class DTGeometry;
0040 class L1MuRegionalCand;
0041
0042 namespace edm {
0043 class ConfigurationDescriptions;
0044 }
0045
0046
0047
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
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