Back to home page

Project CMSSW displayed by LXR

 
 

    


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