CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_9/src/SimG4Core/PrintGeomInfo/interface/PrintSensitive.h

Go to the documentation of this file.
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, unsigned int 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