File indexing completed on 2023-10-25 09:55:22
0001 #ifndef L1TMUONBARRELKALMANSECTORPROCESSOR_H
0002 #define L1TMUONBARRELKALMANSECTORPROCESSOR_H
0003
0004 #include "DataFormats/L1TMuon/interface/L1MuKBMTCombinedStub.h"
0005 #include "L1Trigger/L1TMuonBarrel/interface/L1TMuonBarrelKalmanAlgo.h"
0006 #include "L1Trigger/L1TMuonBarrel/interface/L1TMuonBarrelKalmanRegionModule.h"
0007
0008 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0009
0010 class L1TMuonBarrelKalmanSectorProcessor {
0011 public:
0012 L1TMuonBarrelKalmanSectorProcessor(const edm::ParameterSet&, int sector);
0013 ~L1TMuonBarrelKalmanSectorProcessor();
0014
0015 L1MuKBMTrackCollection process(L1TMuonBarrelKalmanAlgo*, const L1MuKBMTCombinedStubRefVector& stubs, int bx);
0016 void verbose(L1TMuonBarrelKalmanAlgo*, const L1MuKBMTrackCollection&);
0017
0018 private:
0019 class TrackSorter {
0020 public:
0021 TrackSorter() {}
0022
0023 bool operator()(const L1MuKBMTrack& a, const L1MuKBMTrack& b) {
0024 if (a.pt() >= b.pt())
0025 return true;
0026 return false;
0027 }
0028 };
0029
0030 int verbose_;
0031 int sector_;
0032
0033 std::vector<L1TMuonBarrelKalmanRegionModule> regions_;
0034
0035
0036 typedef struct {
0037 int pt_1;
0038 int qual_1;
0039 int eta_1;
0040 int HF_1;
0041 int phi_1;
0042 int bx0_1;
0043 int charge_1;
0044 int chargeValid_1;
0045 int dxy_1;
0046 int addr1_1;
0047 int addr2_1;
0048 int addr3_1;
0049 int addr4_1;
0050 int reserved_1;
0051 int wheel_1;
0052 int ptSTA_1;
0053 int SE_1;
0054
0055 int pt_2;
0056 int qual_2;
0057 int eta_2;
0058 int HF_2;
0059 int phi_2;
0060 int bx0_2;
0061 int charge_2;
0062 int chargeValid_2;
0063 int dxy_2;
0064 int addr1_2;
0065 int addr2_2;
0066 int addr3_2;
0067 int addr4_2;
0068 int reserved_2;
0069 int wheel_2;
0070 int ptSTA_2;
0071 int SE_2;
0072
0073 int pt_3;
0074 int qual_3;
0075 int eta_3;
0076 int HF_3;
0077 int phi_3;
0078 int bx0_3;
0079 int charge_3;
0080 int chargeValid_3;
0081 int dxy_3;
0082 int addr1_3;
0083 int addr2_3;
0084 int addr3_3;
0085 int addr4_3;
0086 int reserved_3;
0087 int wheel_3;
0088 int ptSTA_3;
0089 int SE_3;
0090
0091 } bmtf_out;
0092
0093 bmtf_out makeWord(L1TMuonBarrelKalmanAlgo*, const L1MuKBMTrackCollection&);
0094
0095
0096 L1MuKBMTrackCollection cleanNeighbor(const L1MuKBMTrackCollection&, const L1MuKBMTrackCollection&);
0097 L1MuKBMTrackCollection cleanNeighbors(const L1MuKBMTrackCollection&,
0098 const L1MuKBMTrackCollection&,
0099 const L1MuKBMTrackCollection&);
0100 L1MuKBMTrackCollection wedgeSort(const L1MuKBMTrackCollection&,
0101 const L1MuKBMTrackCollection&,
0102 const L1MuKBMTrackCollection&,
0103 const L1MuKBMTrackCollection&,
0104 const L1MuKBMTrackCollection&);
0105 };
0106
0107 #endif