Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:29:48

0001 #ifndef SimG4CMS_HGCScintSD_h
0002 #define SimG4CMS_HGCScintSD_h
0003 ///////////////////////////////////////////////////////////////////////////////
0004 // File: HGCScintSD.h
0005 // Description: Stores hits of the High Granularity Calorimeter (HGC) in the
0006 //              appropriate container (post TDR version)
0007 ///////////////////////////////////////////////////////////////////////////////
0008 
0009 #include "SimG4CMS/Calo/interface/CaloSD.h"
0010 #include "SimG4Core/Notification/interface/BeginOfJob.h"
0011 #include "SimG4CMS/Calo/interface/HGCalNumberingScheme.h"
0012 
0013 #include <string>
0014 
0015 class HGCalDDDConstants;
0016 class G4LogicalVolume;
0017 class G4Step;
0018 
0019 class HGCScintSD : public CaloSD, public Observer<const BeginOfJob *> {
0020 public:
0021   HGCScintSD(const std::string &,
0022              const HGCalDDDConstants *,
0023              const SensitiveDetectorCatalog &,
0024              edm::ParameterSet const &,
0025              const SimTrackManager *);
0026   ~HGCScintSD() override = default;
0027 
0028   uint32_t setDetUnitId(const G4Step *step) override;
0029 
0030 protected:
0031   double getEnergyDeposit(const G4Step *) override;
0032   using CaloSD::update;
0033   void update(const BeginOfJob *) override;
0034   void initRun() override;
0035   bool filterHit(CaloG4Hit *, double) override;
0036 
0037 private:
0038   uint32_t setDetUnitId(int, int, int, int, G4ThreeVector &);
0039   bool isItinFidVolume(const G4ThreeVector &);
0040 
0041   const HGCalDDDConstants *hgcons_;
0042   std::unique_ptr<HGCalNumberingScheme> numberingScheme_;
0043   DetId::Detector mydet_;
0044   std::string nameX_;
0045   HGCalGeometryMode::GeometryMode geom_mode_;
0046   double eminHit_, slopeMin_, distanceFromEdge_;
0047   int levelT1_, levelT2_, firstLayer_, verbose_;
0048   bool storeAllG4Hits_, fiducialCut_;
0049   bool useBirk_;
0050   double birk1_, birk2_, birk3_, weight_;
0051   bool checkID_;
0052   std::string fileName_;
0053   std::vector<int> tiles_;
0054 };
0055 
0056 #endif  // HGCScintSD_h