File indexing completed on 2024-11-15 23:40:40
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019 #ifndef L1MUBM_ETA_PROCESSOR_H
0020 #define L1MUBM_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/Event.h"
0038 #include "FWCore/Framework/interface/ESHandle.h"
0039 #include "FWCore/Framework/interface/EventSetup.h"
0040 #include "FWCore/Utilities/interface/EDGetToken.h"
0041 #include "DataFormats/L1TMuon/interface/BMTF/L1MuBMAddressArray.h"
0042 #include "DataFormats/L1DTTrackFinder/interface/L1MuDTChambThDigi.h"
0043 #include "DataFormats/L1DTTrackFinder/interface/L1MuDTChambThContainer.h"
0044 #include "FWCore/Framework/interface/ConsumesCollector.h"
0045 #include "CondFormats/L1TObjects/interface/L1TMuonBarrelParams.h"
0046 #include "CondFormats/DataRecord/interface/L1TMuonBarrelParamsRcd.h"
0047
0048 #include "L1Trigger/L1TMuonBarrel/interface/L1MuBMTQualPatternLut.h"
0049 #include "L1Trigger/L1TMuonBarrel/interface/L1MuBMTEtaPatternLut.h"
0050
0051 class L1MuBMTrackSegEta;
0052 class L1MuBMTrackFinder;
0053 class L1MuBMTrack;
0054 class L1MuBMTEtaPatternLut;
0055 class L1MuBMTQualPatternLut;
0056 class L1MuDTTFMasks;
0057 class L1TMuonBarrelParamsRcd;
0058
0059
0060
0061
0062
0063 class L1MuBMEtaProcessor {
0064 public:
0065
0066 L1MuBMEtaProcessor(L1MuBMTrackFinder&, int id, edm::ConsumesCollector&& iC);
0067
0068
0069 virtual ~L1MuBMEtaProcessor();
0070
0071
0072 inline int id() const { return m_epid; }
0073
0074
0075 virtual void run(int bx, const edm::Event& e, const edm::EventSetup& c);
0076
0077
0078 virtual void reset();
0079
0080
0081 void print() const;
0082
0083
0084 inline const L1MuBMTrackFinder& tf() const { return m_tf; }
0085
0086
0087 inline int eta(int id) const { return m_eta[id]; }
0088
0089
0090 inline bool fineBit(int id) const { return m_fine[id]; }
0091
0092 private:
0093
0094 void receiveData(int bx, const edm::Event& e, const L1TMuonBarrelParams& params);
0095
0096
0097 void receiveAddresses();
0098
0099
0100 void runEtaTrackFinder(const L1TMuonBarrelParams& params);
0101
0102
0103 void runEtaMatchingUnit(const L1TMuonBarrelParams& params);
0104
0105
0106 void assign();
0107
0108
0109 static int quality(int id, int stat);
0110
0111 private:
0112 L1MuBMTrackFinder& m_tf;
0113 int m_epid;
0114
0115 int m_mask;
0116
0117 int m_eta[12];
0118 bool m_fine[12];
0119
0120 std::vector<int> m_foundPattern;
0121 int m_pattern[12];
0122
0123 int m_address[12];
0124 L1MuBMTrack* m_TrackCand[12];
0125 L1MuBMTrack* m_TracKCand[12];
0126 std::vector<const L1MuBMTrackSegEta*> m_tseta;
0127
0128 edm::ESGetToken<L1TMuonBarrelParams, L1TMuonBarrelParamsRcd> m_bmtfParamsToken;
0129 L1MuDTTFMasks msks;
0130 L1MuBMTEtaPatternLut theEtaPatternLUT;
0131 L1MuBMTQualPatternLut theQualPatternLUT;
0132
0133 edm::EDGetTokenT<L1MuDTChambThContainer> m_DTDigiToken;
0134 };
0135
0136 #endif