00001 #ifndef LCDG4CalSDNonProj_h 00002 #define LCDG4CalSDNonProj_h 1 00003 00004 #include "LCDG4CalHit.hh" 00005 #include "LCDG4CalSD.hh" 00006 #include "G4LogicalVolume.hh" 00007 #include <map> 00008 00009 // XML 00010 #include "xercesc/dom/deprecated/DOM_Element.hpp" 00011 00012 class G4Step; 00013 class G4HCofThisEvent; 00014 class G4TouchableHistory; 00015 class NonProjCalGeomParams; 00016 class NonProjCalGeometry; 00017 00018 /* SensitiveDetector for calorimeter-like subdetectors */ 00019 00020 class LCDG4CalSDNonProj : public LCDG4CalSD { 00021 00022 public: 00023 // constructor 00024 LCDG4CalSDNonProj(G4String name, 00025 const XERCES_CPP_NAMESPACE::DOM_Element& voldb); 00026 // destructor 00027 ~LCDG4CalSDNonProj(); 00028 00029 // Implementations of pure virtual methods in base class 00030 // find calorimeter cell from a given position 00031 unsigned int findCell(const G4ThreeVector& position); 00032 // get cell center 00033 G4ThreeVector getCellCenter(unsigned int cellIndex); 00034 // get cell indices which depend on virtual cells 00035 unsigned int getIndex1(unsigned int cellIndex) const; 00036 unsigned int getIndex2(unsigned int cellIndex) const; 00037 unsigned int getIndex3(unsigned int cellIndex) const; 00038 00039 private: 00040 const NonProjCalGeomParams* hcalpar; 00041 const NonProjCalGeometry* hcal; 00042 00043 // aggregated hits for barrel with combined energies 00044 // std::map<unsigned int,LCDG4CalHit*> m_cellhitaggb; 00045 }; 00046 00047 #endif // LCDG4CalSDNonProj_h
1.3.4