File indexing completed on 2023-03-17 11:25:41
0001 #ifndef Tracker_SiPileUpSignals_h
0002 #define Tracker_SiPileUpSignals_h
0003
0004 #include <map>
0005 #include <vector>
0006 #include "SimDataFormats/TrackingHit/interface/PSimHit.h"
0007 #include "FWCore/Utilities/interface/Map.h"
0008
0009 class SimHit;
0010
0011
0012
0013
0014 class SiPileUpSignals {
0015 public:
0016
0017 typedef float Amplitude;
0018
0019
0020 typedef std::map<int, Amplitude> SignalMapType;
0021 typedef std::map<uint32_t, SignalMapType> signalMaps;
0022
0023 SiPileUpSignals() { reset(); }
0024
0025 virtual ~SiPileUpSignals() {}
0026
0027 virtual void add(uint32_t detID,
0028 const std::vector<float>& locAmpl,
0029 const size_t& firstChannelWithSignal,
0030 const size_t& lastChannelWithSignal);
0031
0032 void reset() { resetSignals(); }
0033
0034 const SignalMapType* getSignal(uint32_t detID) const {
0035 auto where = signal_.find(detID);
0036 if (where == signal_.end()) {
0037 return nullptr;
0038 }
0039 return &where->second;
0040 }
0041
0042 private:
0043 void resetSignals();
0044 signalMaps signal_;
0045 };
0046 #endif