Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef SimG4CMSForward_MtdSD_h
0002 #define SimG4CMSForward_MtdSD_h
0003 
0004 #include "SimG4CMS/Forward/interface/TimingSD.h"
0005 #include "FWCore/Framework/interface/Frameworkfwd.h"
0006 #include "FWCore/ParameterSet/interface/ParameterSetfwd.h"
0007 
0008 #include "Geometry/MTDCommonData/interface/MTDNumberingScheme.h"
0009 #include "Geometry/MTDCommonData/interface/MTDBaseNumber.h"
0010 
0011 #include <string>
0012 #include <vector>
0013 
0014 class G4Step;
0015 class SimTrackManager;
0016 
0017 //-------------------------------------------------------------------
0018 
0019 class MtdSD : public TimingSD {
0020 public:
0021   MtdSD(const std::string &, const SensitiveDetectorCatalog &, edm::ParameterSet const &, const SimTrackManager *);
0022 
0023   ~MtdSD() override;
0024 
0025   uint32_t setDetUnitId(const G4Step *) override;
0026 
0027 protected:
0028   int getTrackID(const G4Track *) override;
0029 
0030 private:
0031   static constexpr unsigned int k_idsecOffset = 1;
0032   static constexpr unsigned int k_idloopOffset = 2;
0033   static constexpr unsigned int k_idFromCaloOffset = 3;
0034 
0035   double energyCut;
0036   double energyHistoryCut;
0037 
0038   void setNumberingScheme(MTDNumberingScheme *);
0039   void getBaseNumber(const G4Step *);
0040 
0041   MTDNumberingScheme *numberingScheme;
0042   MTDBaseNumber theBaseNumber;
0043   bool isBTL;
0044   bool isETL;
0045 };
0046 
0047 #endif