00001 #ifndef MuonHitSim_H 00002 #define MuonHitSim_H 00003 00004 #include "GaudiAlg/GaudiAlgorithm.h" 00005 #include "Conventions/Detectors.h" 00006 #include "Event/SimHeader.h" 00007 #include "GaudiKernel/RndmGenerators.h" 00008 00009 #include <TFile.h> 00010 #include <TH1F.h> 00011 #include <TH2F.h> 00012 00013 using namespace std; 00014 00015 namespace DayaBay 00016 { 00017 class ReadoutPmtCrate; 00018 } 00019 00020 class ICableSvc; 00021 //class IStatisticsSvc; 00022 //class IPmtGeomInfoSvc; 00023 00024 class MuonHitSim: public GaudiAlgorithm 00025 { 00026 public: 00028 MuonHitSim(const std::string& name, ISvcLocator* svcloc); 00029 virtual ~MuonHitSim(); 00030 00032 StatusCode initialize(); 00033 StatusCode execute(); 00034 StatusCode finalize(); 00035 00036 void addPE(const DayaBay::Detector &det, DayaBay::SimHitCollection* hits, double depE, const TimeStamp& ts); 00037 void addWSPE(const DayaBay::Detector &det, DayaBay::SimHitCollection* hits, double trackTotal, const TimeStamp& ts); 00038 //void addPE(Site::Site_t &site, DetectorId::DetectorId_t &det); 00039 00040 private: 00041 IRndmGenSvc* m_ranSvc; 00042 //Rndm::Numbers m_hittime; 00043 int m_earliestHit; 00044 int m_latestHit; 00045 double m_MeVtoPE; 00046 int m_ranSeed; 00047 00048 TFile *m_wsFile; 00049 //TH1F *m_multiplicity; 00050 TH2F *m_tracPEIWS; 00051 TH2F *m_tracPEOWS; 00052 TH2F *m_tracNHitIWS; 00053 TH2F *m_tracNHitOWS; 00054 00055 string m_cableSvcName; 00056 ICableSvc* m_cableSvc; 00057 }; 00058 00059 #endif