00001 #ifndef HcalTestBeam_HcalTB02SD_H 00002 #define HcalTestBeam_HcalTB02SD_H 00003 // -*- C++ -*- 00004 // 00005 // Package: HcalTestBeam 00006 // Class : HcalTB02SD 00007 // 00014 // 00015 // Original Author: 00016 // Created: Fri May 20 10:14:34 CEST 2006 00017 // $Id: HcalTB02SD.h,v 1.4 2008/05/13 07:18:37 sunanda Exp $ 00018 // 00019 00020 // system include files 00021 #include <map> 00022 00023 // user include files 00024 #include "SimG4CMS/Calo/interface/CaloSD.h" 00025 #include "SimG4CMS/HcalTestBeam/interface/HcalTB02NumberingScheme.h" 00026 00027 #include "G4String.hh" 00028 #include <boost/cstdint.hpp> 00029 00030 class HcalTB02SD : public CaloSD { 00031 00032 public: 00033 HcalTB02SD(G4String, const DDCompactView &, SensitiveDetectorCatalog &, 00034 edm::ParameterSet const &, const SimTrackManager*); 00035 virtual ~HcalTB02SD(); 00036 virtual double getEnergyDeposit(G4Step*); 00037 virtual uint32_t setDetUnitId(G4Step* step); 00038 void setNumberingScheme(HcalTB02NumberingScheme* scheme); 00039 00040 private: 00041 00042 void initMap(G4String, const DDCompactView &); 00043 double curve_LY(G4String& , G4StepPoint* ); 00044 double crystalLength(G4String); 00045 00046 private: 00047 00048 HcalTB02NumberingScheme * numberingScheme; 00049 bool useWeight; 00050 bool useBirk; 00051 double birk1, birk2, birk3; 00052 std::map<G4String,double> lengthMap; 00053 }; 00054 00055 #endif