File indexing completed on 2024-04-06 12:30:06
0001 #ifndef SimG4CMS_HGCalTestBeam_HGCalTB16SD01_H
0002 #define SimG4CMS_HGCalTestBeam_HGCalTB16SD01_H 1
0003
0004 #include "FWCore/Utilities/interface/Exception.h"
0005 #include "FWCore/Framework/interface/Frameworkfwd.h"
0006 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0007 #include "SimG4CMS/Calo/interface/CaloSD.h"
0008 #include "SimG4Core/Notification/interface/TrackInformation.h"
0009
0010 #include "G4Material.hh"
0011 #include "G4Step.hh"
0012
0013 #include <string>
0014
0015 class HGCalTB16SD01 : public CaloSD {
0016 public:
0017 HGCalTB16SD01(const std::string&, const SensitiveDetectorCatalog&, edm::ParameterSet const&, const SimTrackManager*);
0018 ~HGCalTB16SD01() override = default;
0019 uint32_t setDetUnitId(const G4Step* step) override;
0020 static uint32_t packIndex(int det, int lay, int x, int y);
0021 static void unpackIndex(const uint32_t& idx, int& det, int& lay, int& x, int& y);
0022
0023 protected:
0024 double getEnergyDeposit(const G4Step*) override;
0025
0026 private:
0027 void initialize(const G4StepPoint* point);
0028
0029 std::string matName_;
0030 bool useBirk_;
0031 double birk1_, birk2_, birk3_;
0032 bool initialize_;
0033 G4Material* matScin_;
0034 };
0035 #endif