CMS 3D CMS Logo

CaloLayer1Collections.h
Go to the documentation of this file.
1 #ifndef CaloLayer1Collections_h
2 #define CaloLayer1Collections_h
3 
8 #include "L1TObjectCollections.h"
10 
11 namespace l1t {
12  namespace stage2 {
14  public:
20  cicadaDigis_(std::make_unique<CICADABxCollection>()) {
21  // Pre-allocate:
22  // 72 iPhi values
23  // 28 iEta values in Ecal, 28 + 12 iEta values in Hcal + HF
24  // 2 hemispheres
25  ecalDigis_->reserve(72 * 28 * 2);
26  hcalDigis_->reserve(72 * 40 * 2);
27  // 7 regions * 18 cards * 2 hemispheres
28  caloRegions_->reserve(7 * 18 * 2);
30  ecalDigisBx_.begin(), ecalDigisBx_.end(), [] { return std::make_unique<EcalTrigPrimDigiCollection>(); });
31  };
32 
33  ~CaloLayer1Collections() override;
34 
35  inline EcalTrigPrimDigiCollection* getEcalDigis() { return ecalDigis_.get(); };
36  inline HcalTrigPrimDigiCollection* getHcalDigis() { return hcalDigis_.get(); };
37  inline L1CaloRegionCollection* getRegions() { return caloRegions_.get(); };
38 
39  inline EcalTrigPrimDigiCollection* getEcalDigisBx(const unsigned int copy) override {
40  return ecalDigisBx_[copy].get();
41  };
43 
44  private:
45  std::unique_ptr<EcalTrigPrimDigiCollection> ecalDigis_;
46  std::unique_ptr<HcalTrigPrimDigiCollection> hcalDigis_;
47  std::unique_ptr<L1CaloRegionCollection> caloRegions_;
48 
49  std::array<std::unique_ptr<EcalTrigPrimDigiCollection>, 5> ecalDigisBx_;
50  std::unique_ptr<CICADABxCollection> cicadaDigis_;
51  };
52  } // namespace stage2
53 } // namespace l1t
54 
55 #endif
std::unique_ptr< L1CaloRegionCollection > caloRegions_
std::unique_ptr< HcalTrigPrimDigiCollection > hcalDigis_
delete x;
Definition: CaloConfig.h:22
void generate(uint32_t const nbins, float const *initValues, std::vector< float > &values)
std::array< std::unique_ptr< EcalTrigPrimDigiCollection >, 5 > ecalDigisBx_
std::unique_ptr< CICADABxCollection > cicadaDigis_
HcalTrigPrimDigiCollection * getHcalDigis()
EcalTrigPrimDigiCollection * getEcalDigisBx(const unsigned int copy) override
EcalTrigPrimDigiCollection * getEcalDigis()
L1CaloRegionCollection * getRegions()
CICADABxCollection * getCICADABxCollection()
std::unique_ptr< EcalTrigPrimDigiCollection > ecalDigis_
std::vector< L1CaloRegion > L1CaloRegionCollection