Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:30:03

0001 #ifndef HcalTestBeam_HcalTB02SD_H
0002 #define HcalTestBeam_HcalTB02SD_H
0003 // -*- C++ -*-
0004 //
0005 // Package:     HcalTestBeam
0006 // Class  :     HcalTB02SD
0007 //
0008 /**\class HcalTB02SD HcalTB02SD.h SimG4CMS/HcalTestBeam/interface/HcalTB02SD.h
0009   
0010  Description:  Stores hits of Test Beam 2002 calorimeters
0011   
0012  Usage: Activation is done using the XML file by choosing HcalTB02SensitiveDetector
0013 */
0014 //
0015 // Original Author:
0016 //         Created:  Fri May 20 10:14:34 CEST 2006
0017 //
0018 
0019 // system include files
0020 #include <cstdint>
0021 #include <map>
0022 #include <string>
0023 
0024 // user include files
0025 #include "SimG4CMS/Calo/interface/CaloSD.h"
0026 #include "Geometry/HcalTestBeamData/interface/HcalTB02Parameters.h"
0027 #include "FWCore/Framework/interface/Frameworkfwd.h"
0028 #include "FWCore/ParameterSet/interface/ParameterSetfwd.h"
0029 #include "SimG4CMS/HcalTestBeam/interface/HcalTB02NumberingScheme.h"
0030 
0031 class HcalTB02SD : public CaloSD {
0032 public:
0033   HcalTB02SD(const std::string&,
0034              const HcalTB02Parameters*,
0035              const SensitiveDetectorCatalog&,
0036              edm::ParameterSet const&,
0037              const SimTrackManager*);
0038   ~HcalTB02SD() override;
0039   uint32_t setDetUnitId(const G4Step* step) override;
0040   void setNumberingScheme(HcalTB02NumberingScheme* scheme);
0041 
0042 protected:
0043   double getEnergyDeposit(const G4Step*) override;
0044 
0045 private:
0046   double curve_LY(const std::string&, const G4StepPoint*);
0047   double crystalLength(const std::string&);
0048 
0049   std::unique_ptr<HcalTB02NumberingScheme> numberingScheme_;
0050   bool useWeight_, useBirk_;
0051   double birk1_, birk2_, birk3_;
0052   const HcalTB02Parameters* hcalTB02Parameters_;
0053 };
0054 
0055 #endif