![]() |
![]() |
00001 #ifndef SimG4CMS_HFShowerParam_h 00002 #define SimG4CMS_HFShowerParam_h 00004 // File: HFShowerParam.h 00005 // Description: Generates hits for HF with some parametrized information 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/HFFibre.h" 00012 00013 #include "G4ThreeVector.hh" 00014 00015 class DDCompactView; 00016 class G4Step; 00017 00018 #include <string> 00019 #include <vector> 00020 00021 class HFShowerParam { 00022 00023 public: 00024 00025 HFShowerParam(std::string & name, const DDCompactView & cpv, 00026 edm::ParameterSet const & p); 00027 virtual ~HFShowerParam(); 00028 std::vector<double> getHits(G4Step * aStep); 00029 G4ThreeVector getPosHit(int i); 00030 int getDepth(int i); 00031 double getTSlice(int i); 00032 00033 private: 00034 00035 std::vector<double> getDDDArray(const std::string&, const DDsvalues_type&); 00036 00037 struct Hit { 00038 Hit() {} 00039 G4ThreeVector position; 00040 int depth; 00041 double time; 00042 }; 00043 00044 private: 00045 00046 HFFibre* fibre; 00047 double pePerGeV; 00048 bool trackEM; 00049 std::vector<double> gpar; 00050 std::vector<Hit> hits; 00051 }; 00052 00053 #endif // HFShowerParam_h