00001 #ifndef HelpfulWatchers_BeginOfTrackCounter_h 00002 #define HelpfulWatchers_BeginOfTrackCounter_h 00003 // -*- C++ -*- 00004 // 00005 // Package: HelpfulWatchers 00006 // Class : BeginOfTrackCounter 00007 // 00017 // 00018 // Original Author: 00019 // Created: Tue Nov 29 12:26:39 EST 2005 00020 // $Id: BeginOfTrackCounter.h,v 1.1 2005/11/29 18:42:56 chrjones Exp $ 00021 // 00022 00023 // system include files 00024 #include <string> 00025 00026 // user include files 00027 #include "SimG4Core/Watcher/interface/SimProducer.h" 00028 #include "SimG4Core/Notification/interface/Observer.h" 00029 #include "SimG4Core/Notification/interface/BeginOfTrack.h" 00030 00031 // forward declarations 00032 namespace simwatcher { 00033 class BeginOfTrackCounter : public SimProducer, 00034 public Observer<const BeginOfTrack*> 00035 { 00036 00037 public: 00038 BeginOfTrackCounter(const edm::ParameterSet&); 00039 00040 // ---------- const member functions --------------------- 00041 00042 // ---------- static member functions -------------------- 00043 00044 // ---------- member functions --------------------------- 00045 void produce(edm::Event&, const edm::EventSetup&); 00046 00047 private: 00048 BeginOfTrackCounter(const BeginOfTrackCounter&); // stop default 00049 00050 const BeginOfTrackCounter& operator=(const BeginOfTrackCounter&); // stop default 00051 00052 void update(const BeginOfTrack*); 00053 // ---------- member data -------------------------------- 00054 int m_count; 00055 std::string m_label; 00056 }; 00057 00058 } 00059 #endif