00001 #ifndef Tracker_SiPileUpSignals_h
00002 #define Tracker_SiPileUpSignals_h
00003
00004 #include <map>
00005 #include <vector>
00006 #include "SimDataFormats/TrackingHit/interface/PSimHit.h"
00007
00008 class SimHit;
00012 class SiPileUpSignals{
00013
00014 public:
00015
00016 typedef float Amplitude;
00017
00018
00019
00020 typedef std::map< int, Amplitude, std::less<int> > signal_map_type;
00021 typedef std::map< int , std::vector < std::pair < const PSimHit*, Amplitude > >, std::less<int> > HitToDigisMapType;
00022 typedef std::map< int , std::vector < std::pair < const PSimHit*, int > >, std::less<int> > HitCounterToDigisMapType;
00023
00024 virtual ~SiPileUpSignals(){}
00025
00026
00027 SiPileUpSignals(){reset();}
00028 virtual void add(const std::vector<double>& locAmpl,
00029 const unsigned int& firstChannelWithSignal, const unsigned int& lastChannelWithSignal,
00030 const PSimHit& hit,const int& counter);
00031 void reset(){resetLink(); }
00032 const HitToDigisMapType& dumpLink() const {return theMapLink;}
00033 const HitCounterToDigisMapType& dumpCounterLink() const {return theCounterMapLink;}
00034
00035 private:
00036 void resetLink();
00037 HitToDigisMapType theMapLink;
00038 HitCounterToDigisMapType theCounterMapLink;
00039 };
00040 #endif