File indexing completed on 2024-04-06 12:19:42
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019 #ifndef L1MUDT_ETA_PROCESSOR_H
0020 #define L1MUDT_ETA_PROCESSOR_H
0021
0022
0023
0024
0025
0026 #include <vector>
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036 #include "DataFormats/Common/interface/Handle.h"
0037 #include "FWCore/Framework/interface/ConsumesCollector.h"
0038 #include "FWCore/Framework/interface/Event.h"
0039 #include "FWCore/Framework/interface/ESHandle.h"
0040 #include "FWCore/Framework/interface/EventSetup.h"
0041 #include "FWCore/Utilities/interface/ESGetToken.h"
0042 #include "FWCore/Utilities/interface/EDGetToken.h"
0043 #include "L1Trigger/DTTrackFinder/interface/L1MuDTAddressArray.h"
0044 class L1MuDTChambThContainer;
0045 class L1MuDTTrackSegEta;
0046 class L1MuDTTrackFinder;
0047 class L1MuDTTrack;
0048 class L1MuDTEtaPatternLut;
0049 class L1MuDTQualPatternLut;
0050 class L1MuDTTFMasks;
0051 class L1MuDTTFMasksRcd;
0052 class L1MuDTEtaPatternLutRcd;
0053 class L1MuDTQualPatternLutRcd;
0054
0055
0056
0057
0058 class L1MuDTEtaProcessor {
0059 public:
0060
0061 L1MuDTEtaProcessor(const L1MuDTTrackFinder&, int id, edm::ConsumesCollector iC);
0062
0063
0064 virtual ~L1MuDTEtaProcessor();
0065
0066
0067 inline int id() const { return m_epid; }
0068
0069
0070 virtual void run(int bx, const edm::Event& e, const edm::EventSetup& c);
0071
0072
0073 virtual void reset();
0074
0075
0076 void print() const;
0077
0078
0079 inline const L1MuDTTrackFinder& tf() const { return m_tf; }
0080
0081
0082 inline int eta(int id) const { return m_eta[id]; }
0083
0084
0085 inline bool fineBit(int id) const { return m_fine[id]; }
0086
0087 private:
0088
0089 void receiveData(int bx, const edm::Event& e, const edm::EventSetup& c);
0090
0091
0092 void receiveAddresses();
0093
0094
0095 void runEtaTrackFinder(const edm::EventSetup& c);
0096
0097
0098 void runEtaMatchingUnit(const edm::EventSetup& c);
0099
0100
0101 void assign();
0102
0103
0104 static int quality(int id, int stat);
0105
0106 private:
0107 const L1MuDTTrackFinder& m_tf;
0108 int m_epid;
0109
0110 int m_mask;
0111
0112 int m_eta[12];
0113 bool m_fine[12];
0114
0115 std::vector<int> m_foundPattern;
0116 int m_pattern[12];
0117
0118 int m_address[12];
0119 L1MuDTTrack* m_TrackCand[12];
0120 L1MuDTTrack* m_TracKCand[12];
0121 std::vector<const L1MuDTTrackSegEta*> m_tseta;
0122 edm::EDGetTokenT<L1MuDTChambThContainer> m_DTDigiToken;
0123
0124 edm::ESGetToken<L1MuDTEtaPatternLut, L1MuDTEtaPatternLutRcd> theEtaToken;
0125 edm::ESGetToken<L1MuDTQualPatternLut, L1MuDTQualPatternLutRcd> theQualToken;
0126 edm::ESGetToken<L1MuDTTFMasks, L1MuDTTFMasksRcd> theMsksToken;
0127 edm::ESHandle<L1MuDTEtaPatternLut> theEtaPatternLUT;
0128 edm::ESHandle<L1MuDTQualPatternLut> theQualPatternLUT;
0129 edm::ESHandle<L1MuDTTFMasks> msks;
0130 };
0131
0132 #endif