File indexing completed on 2024-04-06 12:30:03
0001 #ifndef HcalTestBeam_HcalTB02SD_H
0002 #define HcalTestBeam_HcalTB02SD_H
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #include <cstdint>
0021 #include <map>
0022 #include <string>
0023
0024
0025 #include "SimG4CMS/Calo/interface/CaloSD.h"
0026 #include "Geometry/HcalTestBeamData/interface/HcalTB02Parameters.h"
0027 #include "FWCore/Framework/interface/Frameworkfwd.h"
0028 #include "FWCore/ParameterSet/interface/ParameterSetfwd.h"
0029 #include "SimG4CMS/HcalTestBeam/interface/HcalTB02NumberingScheme.h"
0030
0031 class HcalTB02SD : public CaloSD {
0032 public:
0033 HcalTB02SD(const std::string&,
0034 const HcalTB02Parameters*,
0035 const SensitiveDetectorCatalog&,
0036 edm::ParameterSet const&,
0037 const SimTrackManager*);
0038 ~HcalTB02SD() override;
0039 uint32_t setDetUnitId(const G4Step* step) override;
0040 void setNumberingScheme(HcalTB02NumberingScheme* scheme);
0041
0042 protected:
0043 double getEnergyDeposit(const G4Step*) override;
0044
0045 private:
0046 double curve_LY(const std::string&, const G4StepPoint*);
0047 double crystalLength(const std::string&);
0048
0049 std::unique_ptr<HcalTB02NumberingScheme> numberingScheme_;
0050 bool useWeight_, useBirk_;
0051 double birk1_, birk2_, birk3_;
0052 const HcalTB02Parameters* hcalTB02Parameters_;
0053 };
0054
0055 #endif