Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:30:46

0001 #ifndef MCTruth_PSimHitMap_h
0002 #define MCTruth_PSimHitMap_h
0003 
0004 #include "FWCore/Framework/interface/ConsumesCollector.h"
0005 #include "FWCore/Framework/interface/Event.h"
0006 #include "FWCore/Utilities/interface/InputTag.h"
0007 #include "SimDataFormats/CrossingFrame/interface/CrossingFrame.h"
0008 #include "SimDataFormats/TrackingHit/interface/PSimHitContainer.h"
0009 #include <map>
0010 
0011 class PSimHitMap {
0012 public:
0013   PSimHitMap(const edm::InputTag &iT, edm::ConsumesCollector &&iC) : theMap(), theEmptyContainer() {
0014     sh_token = iC.consumes<CrossingFrame<PSimHit>>(iT);
0015   }
0016 
0017   void fill(const edm::Event &e);
0018 
0019   const edm::PSimHitContainer &hits(int detId) const;
0020 
0021   std::vector<int> detsWithHits() const;
0022 
0023 private:
0024   std::map<int, edm::PSimHitContainer> theMap;
0025   edm::PSimHitContainer theEmptyContainer;
0026   //  edm::InputTag simHitsTag;
0027   edm::EDGetTokenT<CrossingFrame<PSimHit>> sh_token;
0028 };
0029 
0030 #endif