File indexing completed on 2025-01-09 23:33:30
0001 #ifndef GMTCollections_h
0002 #define GMTCollections_h
0003
0004 #include "DataFormats/L1TMuon/interface/RegionalMuonCand.h"
0005 #include "DataFormats/L1Trigger/interface/Muon.h"
0006
0007 #include "DataFormats/L1TMuon/interface/RegionalMuonShower.h"
0008 #include "DataFormats/L1Trigger/interface/MuonShower.h"
0009
0010 #include "L1TObjectCollections.h"
0011 #include "GMTPutTokens.h"
0012
0013 #include <array>
0014
0015 namespace l1t {
0016 namespace stage2 {
0017 class GMTCollections : public L1TObjectCollections {
0018 public:
0019
0020
0021
0022
0023 GMTCollections(edm::Event& e,
0024 GMTPutTokens const& iTokens,
0025 const int iFirstBx = -2,
0026 const int iLastBx = 2,
0027 const int oFirstBx = -2,
0028 const int oLastBx = 2)
0029 : L1TObjectCollections(e),
0030 regionalMuonCandsBMTF_(0, iFirstBx, iLastBx),
0031 regionalMuonCandsOMTF_(0, iFirstBx, iLastBx),
0032 regionalMuonCandsEMTF_(0, iFirstBx, iLastBx),
0033 muons_{{{0, oFirstBx, oLastBx},
0034 {0, oFirstBx, oLastBx},
0035 {0, oFirstBx, oLastBx},
0036 {0, oFirstBx, oLastBx},
0037 {0, oFirstBx, oLastBx},
0038 {0, oFirstBx, oLastBx}}},
0039 imdMuonsBMTF_(0, oFirstBx, oLastBx),
0040 imdMuonsEMTFNeg_(0, oFirstBx, oLastBx),
0041 imdMuonsEMTFPos_(0, oFirstBx, oLastBx),
0042 imdMuonsOMTFNeg_(0, oFirstBx, oLastBx),
0043 imdMuonsOMTFPos_(0, oFirstBx, oLastBx),
0044 regionalMuonShowersEMTF_(0, iFirstBx, iLastBx),
0045 muonShowers_{{{0, oFirstBx, oLastBx},
0046 {0, oFirstBx, oLastBx},
0047 {0, oFirstBx, oLastBx},
0048 {0, oFirstBx, oLastBx},
0049 {0, oFirstBx, oLastBx},
0050 {0, oFirstBx, oLastBx}}},
0051 tokens_(iTokens) {};
0052
0053 ~GMTCollections() override;
0054
0055 inline RegionalMuonCandBxCollection* getRegionalMuonCandsBMTF() { return ®ionalMuonCandsBMTF_; };
0056 inline RegionalMuonCandBxCollection* getRegionalMuonCandsOMTF() { return ®ionalMuonCandsOMTF_; };
0057 inline RegionalMuonCandBxCollection* getRegionalMuonCandsEMTF() { return ®ionalMuonCandsEMTF_; };
0058 inline MuonBxCollection* getMuons(const unsigned int copy) override { return &muons_[copy]; };
0059 inline MuonBxCollection* getImdMuonsBMTF() { return &imdMuonsBMTF_; };
0060 inline MuonBxCollection* getImdMuonsEMTFNeg() { return &imdMuonsEMTFNeg_; };
0061 inline MuonBxCollection* getImdMuonsEMTFPos() { return &imdMuonsEMTFPos_; };
0062 inline MuonBxCollection* getImdMuonsOMTFNeg() { return &imdMuonsOMTFNeg_; };
0063 inline MuonBxCollection* getImdMuonsOMTFPos() { return &imdMuonsOMTFPos_; };
0064
0065 inline RegionalMuonShowerBxCollection* getRegionalMuonShowersEMTF() { return ®ionalMuonShowersEMTF_; };
0066 inline MuonShowerBxCollection* getMuonShowers(const unsigned int copy) override { return &muonShowers_[copy]; };
0067
0068 static constexpr size_t NUM_OUTPUT_COPIES{6};
0069
0070 private:
0071 RegionalMuonCandBxCollection regionalMuonCandsBMTF_;
0072 RegionalMuonCandBxCollection regionalMuonCandsOMTF_;
0073 RegionalMuonCandBxCollection regionalMuonCandsEMTF_;
0074 std::array<MuonBxCollection, 6> muons_;
0075 MuonBxCollection imdMuonsBMTF_;
0076 MuonBxCollection imdMuonsEMTFNeg_;
0077 MuonBxCollection imdMuonsEMTFPos_;
0078 MuonBxCollection imdMuonsOMTFNeg_;
0079 MuonBxCollection imdMuonsOMTFPos_;
0080
0081 RegionalMuonShowerBxCollection regionalMuonShowersEMTF_;
0082 std::array<MuonShowerBxCollection, 6> muonShowers_;
0083 GMTPutTokens tokens_;
0084 };
0085 }
0086 }
0087
0088 #endif