File indexing completed on 2024-06-28 02:36:16
0001 #ifndef CaloLayer1Collections_h
0002 #define CaloLayer1Collections_h
0003
0004 #include "DataFormats/EcalDigi/interface/EcalDigiCollections.h"
0005 #include "DataFormats/HcalDigi/interface/HcalDigiCollections.h"
0006 #include "DataFormats/L1CaloTrigger/interface/L1CaloCollections.h"
0007 #include "EventFilter/L1TRawToDigi/interface/UnpackerCollections.h"
0008 #include "L1TObjectCollections.h"
0009 #include "DataFormats/L1CaloTrigger/interface/CICADA.h"
0010
0011 namespace l1t {
0012 namespace stage2 {
0013 class CaloLayer1Collections : public L1TObjectCollections {
0014 public:
0015 CaloLayer1Collections(edm::Event& e)
0016 : L1TObjectCollections(e),
0017 ecalDigis_(new EcalTrigPrimDigiCollection()),
0018 hcalDigis_(new HcalTrigPrimDigiCollection()),
0019 caloRegions_(new L1CaloRegionCollection()),
0020 cicadaDigis_(std::make_unique<CICADABxCollection>()) {
0021
0022
0023
0024
0025 ecalDigis_->reserve(72 * 28 * 2);
0026 hcalDigis_->reserve(72 * 40 * 2);
0027
0028 caloRegions_->reserve(7 * 18 * 2);
0029 std::generate(
0030 ecalDigisBx_.begin(), ecalDigisBx_.end(), [] { return std::make_unique<EcalTrigPrimDigiCollection>(); });
0031 };
0032
0033 ~CaloLayer1Collections() override;
0034
0035 inline EcalTrigPrimDigiCollection* getEcalDigis() { return ecalDigis_.get(); };
0036 inline HcalTrigPrimDigiCollection* getHcalDigis() { return hcalDigis_.get(); };
0037 inline L1CaloRegionCollection* getRegions() { return caloRegions_.get(); };
0038
0039 inline EcalTrigPrimDigiCollection* getEcalDigisBx(const unsigned int copy) override {
0040 return ecalDigisBx_[copy].get();
0041 };
0042 inline CICADABxCollection* getCICADABxCollection() { return cicadaDigis_.get(); };
0043
0044 private:
0045 std::unique_ptr<EcalTrigPrimDigiCollection> ecalDigis_;
0046 std::unique_ptr<HcalTrigPrimDigiCollection> hcalDigis_;
0047 std::unique_ptr<L1CaloRegionCollection> caloRegions_;
0048
0049 std::array<std::unique_ptr<EcalTrigPrimDigiCollection>, 5> ecalDigisBx_;
0050 std::unique_ptr<CICADABxCollection> cicadaDigis_;
0051 };
0052 }
0053 }
0054
0055 #endif