CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/SimG4CMS/Muon/interface/MuonSlaveSD.h

Go to the documentation of this file.
00001 #ifndef MuonSlaveSD_h
00002 #define MuonSlaveSD_h
00003 
00015 #include "SimG4Core/Notification/interface/Observer.h"
00016 #include "SimDataFormats/TrackingHit/interface/PSimHit.h"
00017 
00018 class EndOfEvent;
00019 class EventAction;
00020 
00021 #include <string>
00022 
00023 class MuonSubDetector;
00024 class SimTrackManager;
00025 #include "SimDataFormats/SimHitMaker/interface/TrackingSlaveSD.h"
00026 
00027 class MuonSlaveSD : 
00028 public TrackingSlaveSD
00029 {
00030 public: 
00031   typedef std::vector<PSimHit> Collection;
00032   typedef Collection::const_iterator const_iterator;
00033   MuonSlaveSD(MuonSubDetector*,const SimTrackManager*);
00034   virtual ~MuonSlaveSD();
00035   virtual void clearHits();
00036   virtual bool format();
00037   virtual const_iterator begin() { return hits_.begin();}
00038   virtual const_iterator end()   { return hits_.end();}
00039 
00040 protected: 
00041   Collection         hits_;
00042 
00043 private:
00044   MuonSubDetector* detector;
00045 
00046   const SimTrackManager* m_trackManager;
00047 
00048 };
00049 
00050 class FormatBarrelHits {
00051  public:
00052   bool operator() (const PSimHit & a, const PSimHit & b);
00053   int sortId (const PSimHit & a)  const;
00054 };
00055 
00056 class FormatEndcapHits {
00057  public:
00058   bool operator() (const PSimHit & a, const PSimHit & b);
00059   int sortId (const PSimHit & a)  const;
00060 };
00061 
00062 class FormatRpcHits {
00063  public:
00064   bool operator() (const PSimHit & a, const PSimHit & b);
00065   int sortId (const PSimHit & a)  const;
00066 };
00067 
00068 #endif // MuonSlaveSD_h