00001 #ifndef PileUpFP420_h 00002 #define PileUpFP420_h 00003 00004 #include "SimRomanPot/SimFP420/interface/HitDigitizerFP420.h" 00005 #include <map> 00006 00007 class SimHit; 00008 00009 // Class which takes the responses from each SimHit and piles-up them. 00010 class PileUpFP420{ 00011 00012 public: 00013 00014 typedef float Amplitude; 00015 typedef std::map< int, Amplitude, std::less<int> > signal_map_type; 00016 typedef std::map< int , std::vector < std::pair < const PSimHit*, Amplitude > >, std::less<int> > HitToDigisMapType; 00017 00018 virtual ~PileUpFP420(){} 00019 00020 PileUpFP420(){reset();} 00021 virtual void add(HitDigitizerFP420::hit_map_type, const PSimHit& hit, int); 00022 void reset(){resetLink();resetSignal();} 00023 signal_map_type dumpSignal() {return theMap;} 00024 HitToDigisMapType dumpLink() {return theMapLink;} 00025 private: 00026 void resetLink(); 00027 void resetSignal(); 00028 HitToDigisMapType theMapLink; 00029 signal_map_type theMap; 00030 00031 }; 00032 #endif