CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/SimG4CMS/HcalTestBeam/interface/HcalTB06BeamSD.h

Go to the documentation of this file.
00001 #ifndef SimG4CMS_HcalTB06BeamSD_h
00002 #define SimG4CMS_HcalTB06BeamSD_h
00003 
00004 // File: HcalTB06BeamSD.h
00005 // Description: Stores hits of Beam counters for H2 TB06 in appropriate 
00006 //              containers
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