Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef Forward_CastorSD_h
0002 #define Forward_CastorSD_h
0003 // -*- C++ -*-
0004 //
0005 // Package:     Forward
0006 // Class  :     CastorSD
0007 //
0008 /**\class CastorSD CastorSD.h SimG4CMS/Forward/interface/CastorSD.h
0009  
0010  Description: Stores hits of Castor in appropriate  container
0011  
0012  Usage:
0013     Used in sensitive detector builder 
0014  
0015 */
0016 //
0017 // Original Author:
0018 //         Created:  Tue May 16 10:14:34 CEST 2006
0019 
0020 // system include files
0021 
0022 // user include files
0023 
0024 #include "SimG4CMS/Calo/interface/CaloSD.h"
0025 #include "SimG4CMS/Forward/interface/CastorShowerLibrary.h"
0026 #include "SimG4CMS/Forward/interface/CastorNumberingScheme.h"
0027 #include "SimDataFormats/CaloHit/interface/CastorShowerEvent.h"
0028 #include "FWCore/Framework/interface/Frameworkfwd.h"
0029 #include "FWCore/ParameterSet/interface/ParameterSetfwd.h"
0030 
0031 #include "G4LogicalVolume.hh"
0032 
0033 class CastorSD : public CaloSD {
0034 public:
0035   CastorSD(const std::string &, const SensitiveDetectorCatalog &clg, edm::ParameterSet const &, const SimTrackManager *);
0036   ~CastorSD() override;
0037   uint32_t setDetUnitId(const G4Step *step) override;
0038   void setNumberingScheme(CastorNumberingScheme *scheme);
0039 
0040 protected:
0041   double getEnergyDeposit(const G4Step *) override;
0042   bool getFromLibrary(const G4Step *) override;
0043 
0044 private:
0045   uint32_t rotateUnitID(uint32_t, const G4Track *, const CastorShowerEvent &);
0046   CastorNumberingScheme *numberingScheme;
0047   CastorShowerLibrary *showerLibrary;
0048   G4LogicalVolume *lvC3EF, *lvC3HF, *lvC4EF, *lvC4HF;
0049   G4LogicalVolume *lvCAST;  // Pointer for CAST sensitive volume  (SL trigger)
0050 
0051   bool useShowerLibrary;
0052   double energyThresholdSL;
0053   double non_compensation_factor;
0054 };
0055 
0056 #endif  // CastorSD_h