File indexing completed on 2024-04-06 12:29:47
0001 #ifndef SimG4CMS_HFShower_h
0002 #define SimG4CMS_HFShower_h
0003
0004
0005
0006
0007
0008 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0009 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0010 #include "Geometry/HcalCommonData/interface/HcalDDDSimConstants.h"
0011 #include "CondFormats/GeometryObjects/interface/HcalSimulationParameters.h"
0012 #include "SimG4CMS/Calo/interface/HFCherenkov.h"
0013 #include "SimG4CMS/Calo/interface/HFFibre.h"
0014
0015 #include "G4ThreeVector.hh"
0016 #include "G4String.hh"
0017
0018 class G4Step;
0019
0020 #include <vector>
0021
0022 class HFShower {
0023 public:
0024 HFShower(const std::string &name,
0025 const HcalDDDSimConstants *hcons,
0026 const HcalSimulationParameters *hps,
0027 edm::ParameterSet const &p,
0028 int chk = 0);
0029
0030 public:
0031 struct Hit {
0032 Hit() {}
0033 int depth;
0034 double time;
0035 double wavelength;
0036 double momentum;
0037 G4ThreeVector position;
0038 };
0039
0040 std::vector<Hit> getHits(const G4Step *aStep, double weight);
0041 std::vector<Hit> getHits(const G4Step *aStep, bool forLibrary);
0042 std::vector<Hit> getHits(const G4Step *aStep, bool forLibraryProducer, double zoffset);
0043
0044 private:
0045 HFCherenkov cherenkov_;
0046 HFFibre fibre_;
0047
0048 int chkFibre_;
0049 bool applyFidCut_;
0050 bool equalizeTimeShift_;
0051 double probMax_;
0052 std::vector<double> gpar_;
0053 };
0054
0055 #endif