/scratch0/jsnuveri/BDSIM/BDSIMgit/bdsim/include/BDSSDManager.hh

00001 #ifndef BDSSDMANAGER_H
00002 #define BDSSDMANAGER_H
00003 
00004 #include "BDSSamplerSD.hh"
00005 #include "BDSEnergyCounterSD.hh"
00006 
00017 class BDSSDManager
00018 {
00019 public:
00020   static BDSSDManager* Instance(); 
00021 
00022   ~BDSSDManager();
00023 
00025   BDSSamplerSD*       GetSamplerPlaneSD() {return samplerPlane;}
00027   BDSSamplerSD*       GetSamplerCylinderSD() {return samplerCylinder;} 
00029   BDSEnergyCounterSD* GetEnergyCounterOnAxisSD(){return eCounterOnAxis;}
00032   BDSEnergyCounterSD* GetEnergyCounterOnAxisSDRO();
00033   
00034 private:
00035   BDSSDManager(); 
00036   static BDSSDManager* _instance;
00037 
00038   //SD instances
00039   BDSSamplerSD*       samplerPlane;
00040   BDSSamplerSD*       samplerCylinder;
00041   BDSEnergyCounterSD* eCounterOnAxis;
00042 
00043   // duplicate ecounter here that's made on demand
00044   // and registered to read out geometry - this requires
00045   // the readout geometry to be already created so can't
00046   // be used during object construction
00047   BDSEnergyCounterSD* eCounterOnAxisRO;
00048 
00050   void ConstructECounterSDOnAxisOnDemand();
00051 };
00052 
00053 
00054 
00055 
00056 #endif

Generated on 28 Jun 2015 for BDSIM by  doxygen 1.4.7