Go to the documentation of this file.00001 #ifndef SimG4CMS_HcalTB06BeamSD_h
00002 #define SimG4CMS_HcalTB06BeamSD_h
00003
00004
00005
00006
00008
00009 #include "SimG4CMS/Calo/interface/CaloSD.h"
00010
00011 #include "G4String.hh"
00012
00013 #include <boost/cstdint.hpp>
00014 #include <string>
00015
00016 class DDCompactView;
00017 class DDFilteredView;
00018 class G4Step;
00019
00020 class HcalTB06BeamSD : public CaloSD {
00021
00022 public:
00023
00024 HcalTB06BeamSD(G4String , const DDCompactView &, SensitiveDetectorCatalog &,
00025 edm::ParameterSet const &, const SimTrackManager*);
00026 virtual ~HcalTB06BeamSD();
00027 virtual double getEnergyDeposit(G4Step* );
00028 virtual uint32_t setDetUnitId(G4Step* step);
00029 static uint32_t packIndex(int det, int lay, int x, int y);
00030 static void unpackIndex(const uint32_t & idx, int& det, int& lay,
00031 int& x, int& y);
00032
00033 private:
00034
00035 std::vector<G4String> getNames(DDFilteredView&);
00036 bool isItWireChamber(G4String);
00037
00038 bool useBirk;
00039 double birk1, birk2, birk3;
00040 std::vector<G4String> wcNames;
00041 G4String matName;
00042
00043 };
00044
00045 #endif // HcalTB06BeamSD_h