Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:29:38

0001 #ifndef __SimCalorimetry_HGCCalSimProducers_HGCDigitizerTypes_h__
0002 #define __SimCalorimetry_HGCCalSimProducers_HGCDigitizerTypes_h__
0003 
0004 #include <unordered_map>
0005 #include <array>
0006 #include <functional>
0007 
0008 #include "DataFormats/DetId/interface/DetId.h"
0009 
0010 namespace hgc_digi {
0011 
0012   //15 time samples: 9 pre-samples, 1 in-time, 5 post-samples
0013   constexpr size_t nSamples = 15;
0014   constexpr size_t npreHits = 30;
0015   typedef float HGCSimData_t;
0016 
0017   typedef std::array<HGCSimData_t, nSamples> HGCSimHitData;
0018 
0019   typedef std::vector<HGCSimData_t> HGCSimDataCollection;
0020   typedef std::array<HGCSimDataCollection, nSamples> PUSimHitData;
0021 
0022   typedef std::vector<std::pair<float, float> > HitsRecordData;
0023   typedef std::array<HitsRecordData, nSamples> HitsRecordForMultipleBxs;
0024 
0025   struct HGCCellHitInfo {
0026     std::array<PUSimHitData, 2> PUhit_info;
0027     int thickness;
0028     double size;
0029     HitsRecordForMultipleBxs hitsRecord;
0030   };
0031   struct HGCCellInfo {
0032     //1st array=energy, 2nd array=energy weighted time-of-flight
0033     std::array<HGCSimHitData, 2> hit_info;
0034     int thickness;
0035     double size;
0036   };
0037 
0038   typedef std::unordered_map<uint32_t, HGCCellInfo> HGCSimHitDataAccumulator;
0039   typedef std::unordered_map<uint32_t, HGCCellHitInfo> HGCPUSimHitDataAccumulator;
0040 }  // namespace hgc_digi
0041 #endif