00001 #ifndef SimG4Core_PrintSensitive_H 00002 #define SimG4Core_PrintSensitive_H 00003 00004 #include "SimG4Core/Watcher/interface/SimWatcher.h" 00005 #include "SimG4Core/Notification/interface/Observer.h" 00006 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00007 00008 #include "G4NavigationHistory.hh" 00009 00010 #include <iostream> 00011 #include <string> 00012 00013 class BeginOfRun; 00014 class G4VPhysicalVolume; 00015 00016 class PrintSensitive : public SimWatcher, 00017 public Observer<const BeginOfRun *> { 00018 00019 public: 00020 00021 PrintSensitive(edm::ParameterSet const & p); 00022 ~PrintSensitive(); 00023 00024 private: 00025 00026 void update(const BeginOfRun * run); 00027 void dumpTouch(G4VPhysicalVolume * pv, uint leafDepth, bool printIt, 00028 std::ostream & out = std::cout); 00029 G4VPhysicalVolume * getTopPV(); 00030 00031 private: 00032 std::string name; 00033 int nchar; 00034 G4NavigationHistory fHistory; 00035 }; 00036 00037 #endif