00001 00002 // File: ZdcSD.h 00003 // Date: 02.04 00004 // Description: Stores hits of Zdc in appropriate container 00005 // 00007 #ifndef ZdcSD_h 00008 #define ZdcSD_h 00009 #include "SimG4CMS/Calo/interface/CaloSD.h" 00010 #include "SimG4CMS/Forward/interface/ZdcShowerLibrary.h" 00011 #include "SimG4CMS/Forward/interface/ZdcNumberingScheme.h" 00012 #undef debug 00013 00014 class ZdcSD : public CaloSD { 00015 00016 public: 00017 ZdcSD(G4String, const DDCompactView &, SensitiveDetectorCatalog &, 00018 edm::ParameterSet const &,const SimTrackManager*); 00019 00020 virtual ~ZdcSD(); 00021 virtual bool ProcessHits(G4Step * step,G4TouchableHistory * tHistory); 00022 virtual uint32_t setDetUnitId(G4Step* step); 00023 virtual double getEnergyDeposit(G4Step*, edm::ParameterSet const &); 00024 00025 void setNumberingScheme(ZdcNumberingScheme* scheme); 00026 void getFromLibrary(G4Step * step); 00027 00028 00029 protected: 00030 virtual void initRun(); 00031 private: 00032 00033 int verbosity; 00034 bool useShowerLibrary,useShowerHits; 00035 int setTrackID(G4Step * step); 00036 double thFibDir; 00037 double zdcHitEnergyCut; 00038 ZdcShowerLibrary * showerLibrary; 00039 ZdcNumberingScheme * numberingScheme; 00040 00041 std::vector<ZdcShowerLibrary::Hit> hits; 00042 00043 }; 00044 00045 #endif // ZdcSD_h