00001 #ifndef SimG4CMS_HFShowerPMT_h 00002 #define SimG4CMS_HFShowerPMT_h 00003 00004 // File: HFShowerPMT.h 00005 // Description: Maps HF PMT's to given 00007 00008 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00009 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00010 #include "DetectorDescription/Core/interface/DDsvalues.h" 00011 #include "SimG4CMS/Calo/interface/HFCherenkov.h" 00012 00013 class DDCompactView; 00014 class G4Step; 00015 00016 #include <string> 00017 #include <vector> 00018 00019 class HFShowerPMT { 00020 00021 public: 00022 00023 HFShowerPMT(std::string & name, const DDCompactView & cpv, 00024 edm::ParameterSet const & p); 00025 virtual ~HFShowerPMT(); 00026 double getHits(G4Step * aStep); 00027 double getRadius(); 00028 00029 private: 00030 00031 std::vector<double> getDDDArray(const std::string&, const DDsvalues_type&); 00032 00033 private: 00034 00035 HFCherenkov* cherenkov; 00036 double pePerGeV; // PE per GeV of energy deposit 00037 int indexR, indexF; 00038 std::vector<double> rTable; // R-table 00039 std::vector<int> pmtR1, pmtFib1; // R-index, fibre table for right box 00040 std::vector<int> pmtR2, pmtFib2; // R-index, fibre table for left box 00041 00042 }; 00043 00044 #endif // HFShowerPMT_h