CMS 3D CMS Logo

GMTCollections.h
Go to the documentation of this file.
1 #ifndef GMTCollections_h
2 #define GMTCollections_h
3 
6 
7 #include "L1TObjectCollections.h"
8 
9 #include <array>
10 
11 namespace l1t {
12  namespace stage2 {
14  public:
15  // If the zero suppression deletes all the blocks used to
16  // fill a collection the BX range cannot be determined.
17  // Set default values here to then create an empty collection
18  // with a defined BX range.
20  edm::Event& e, const int iFirstBx = -2, const int iLastBx = 2, const int oFirstBx = -2, const int oLastBx = 2)
22  regionalMuonCandsBMTF_(std::make_unique<RegionalMuonCandBxCollection>(0, iFirstBx, iLastBx)),
23  regionalMuonCandsOMTF_(std::make_unique<RegionalMuonCandBxCollection>(0, iFirstBx, iLastBx)),
24  regionalMuonCandsEMTF_(std::make_unique<RegionalMuonCandBxCollection>(0, iFirstBx, iLastBx)),
25  muons_(),
26  imdMuonsBMTF_(std::make_unique<MuonBxCollection>(0, oFirstBx, oLastBx)),
27  imdMuonsEMTFNeg_(std::make_unique<MuonBxCollection>(0, oFirstBx, oLastBx)),
28  imdMuonsEMTFPos_(std::make_unique<MuonBxCollection>(0, oFirstBx, oLastBx)),
29  imdMuonsOMTFNeg_(std::make_unique<MuonBxCollection>(0, oFirstBx, oLastBx)),
30  imdMuonsOMTFPos_(std::make_unique<MuonBxCollection>(0, oFirstBx, oLastBx)) {
31  std::generate(muons_.begin(), muons_.end(), [&oFirstBx, &oLastBx] {
32  return std::make_unique<MuonBxCollection>(0, oFirstBx, oLastBx);
33  });
34  };
35 
36  ~GMTCollections() override;
37 
41  inline MuonBxCollection* getMuons(const unsigned int copy) override { return muons_[copy].get(); };
42  inline MuonBxCollection* getImdMuonsBMTF() { return imdMuonsBMTF_.get(); };
47 
48  private:
49  std::unique_ptr<RegionalMuonCandBxCollection> regionalMuonCandsBMTF_;
50  std::unique_ptr<RegionalMuonCandBxCollection> regionalMuonCandsOMTF_;
51  std::unique_ptr<RegionalMuonCandBxCollection> regionalMuonCandsEMTF_;
52  std::array<std::unique_ptr<MuonBxCollection>, 6> muons_;
53  std::unique_ptr<MuonBxCollection> imdMuonsBMTF_;
54  std::unique_ptr<MuonBxCollection> imdMuonsEMTFNeg_;
55  std::unique_ptr<MuonBxCollection> imdMuonsEMTFPos_;
56  std::unique_ptr<MuonBxCollection> imdMuonsOMTFNeg_;
57  std::unique_ptr<MuonBxCollection> imdMuonsOMTFPos_;
58  };
59  } // namespace stage2
60 } // namespace l1t
61 
62 #endif
l1t::stage2::GMTCollections::getMuons
MuonBxCollection * getMuons(const unsigned int copy) override
Definition: GMTCollections.h:41
l1t::stage2::GMTCollections::imdMuonsOMTFNeg_
std::unique_ptr< MuonBxCollection > imdMuonsOMTFNeg_
Definition: GMTCollections.h:56
filterCSVwithJSON.copy
copy
Definition: filterCSVwithJSON.py:36
l1t::stage2::GMTCollections::regionalMuonCandsEMTF_
std::unique_ptr< RegionalMuonCandBxCollection > regionalMuonCandsEMTF_
Definition: GMTCollections.h:51
Muon.h
l1t::stage2::GMTCollections::imdMuonsBMTF_
std::unique_ptr< MuonBxCollection > imdMuonsBMTF_
Definition: GMTCollections.h:53
l1t::stage2::GMTCollections::GMTCollections
GMTCollections(edm::Event &e, const int iFirstBx=-2, const int iLastBx=2, const int oFirstBx=-2, const int oLastBx=2)
Definition: GMTCollections.h:19
models.generate
def generate(map_blobs=False, class_name=None)
Definition: models.py:189
BXVector< RegionalMuonCand >
l1t::stage2::GMTCollections::getImdMuonsOMTFNeg
MuonBxCollection * getImdMuonsOMTFNeg()
Definition: GMTCollections.h:45
l1t::stage2::GMTCollections::getImdMuonsBMTF
MuonBxCollection * getImdMuonsBMTF()
Definition: GMTCollections.h:42
l1t::stage2::GMTCollections::imdMuonsEMTFNeg_
std::unique_ptr< MuonBxCollection > imdMuonsEMTFNeg_
Definition: GMTCollections.h:54
l1t::stage2::GMTCollections::regionalMuonCandsBMTF_
std::unique_ptr< RegionalMuonCandBxCollection > regionalMuonCandsBMTF_
Definition: GMTCollections.h:46
l1t::stage2::GMTCollections::regionalMuonCandsOMTF_
std::unique_ptr< RegionalMuonCandBxCollection > regionalMuonCandsOMTF_
Definition: GMTCollections.h:50
l1t::stage2::GMTCollections::getImdMuonsEMTFPos
MuonBxCollection * getImdMuonsEMTFPos()
Definition: GMTCollections.h:44
l1t::stage2::L1TObjectCollections
Definition: L1TObjectCollections.h:16
l1t::stage2::GMTCollections::getImdMuonsEMTFNeg
MuonBxCollection * getImdMuonsEMTFNeg()
Definition: GMTCollections.h:43
l1t
delete x;
Definition: CaloConfig.h:22
l1t::stage2::GMTCollections::~GMTCollections
~GMTCollections() override
Definition: GMTCollections.cc:9
l1t::stage2::GMTCollections::getRegionalMuonCandsEMTF
RegionalMuonCandBxCollection * getRegionalMuonCandsEMTF()
Definition: GMTCollections.h:40
SiStripSourceConfigTier0_cff.stage2
stage2
Definition: SiStripSourceConfigTier0_cff.py:71
l1t::stage2::GMTCollections
Definition: GMTCollections.h:13
l1t::stage2::GMTCollections::imdMuonsOMTFPos_
std::unique_ptr< MuonBxCollection > imdMuonsOMTFPos_
Definition: GMTCollections.h:57
l1t::stage2::GMTCollections::imdMuonsEMTFPos_
std::unique_ptr< MuonBxCollection > imdMuonsEMTFPos_
Definition: GMTCollections.h:55
std
Definition: JetResolutionObject.h:76
l1t::stage2::GMTCollections::muons_
std::array< std::unique_ptr< MuonBxCollection >, 6 > muons_
Definition: GMTCollections.h:52
l1t::stage2::GMTCollections::getImdMuonsOMTFPos
MuonBxCollection * getImdMuonsOMTFPos()
Definition: GMTCollections.h:46
RegionalMuonCand.h
L1TObjectCollections.h
edm::Event
Definition: Event.h:73
l1t::stage2::GMTCollections::getRegionalMuonCandsOMTF
RegionalMuonCandBxCollection * getRegionalMuonCandsOMTF()
Definition: GMTCollections.h:39
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
l1t::stage2::GMTCollections::getRegionalMuonCandsBMTF
RegionalMuonCandBxCollection * getRegionalMuonCandsBMTF()
Definition: GMTCollections.h:38