/search.css" rel="stylesheet" type="text/css"/> /search.js">
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

HistoryKeeper.h
Go to the documentation of this file.
00001 #ifndef HISTORYKEEPER_H
00002 #define HISTORYKEEPER_H
00003 
00004 #include "G4DataHelpers/IHistoryKeeper.h"
00005 #include "GaudiKernel/Service.h"
00006 #include "Event/SimParticleHistory.h"
00007 #include "Event/SimUnobservableStatisticsHeader.h"
00008 
00009 class HistoryKeeper : public Service, public virtual IHistoryKeeper
00010 {
00011   public:
00012   HistoryKeeper( const std::string& name, ISvcLocator* svcloc)
00013     : Service( name, svcloc )
00014     , mCurrentHistory(0)
00015     , mCurrentUnobservable(0)
00016     {};
00017     
00018   virtual ~HistoryKeeper() {};
00019 
00021   virtual StatusCode initialize() { mCurrentHistory = 0; return StatusCode::SUCCESS; };  
00023   virtual StatusCode finalize() { if(mCurrentHistory) delete mCurrentHistory; mCurrentHistory = 0; return StatusCode::SUCCESS;};
00024 
00026   virtual StatusCode queryInterface ( const InterfaceID& riid, void** ppvInterface );
00027   
00029   virtual const InterfaceID& type() const
00030     { return IHistoryKeeper::interfaceID(); };
00031   
00033   virtual StatusCode GetCurrentHistory(DayaBay::SimParticleHistory* &outHistory)
00034     {
00035        if(mCurrentHistory==0) 
00036          mCurrentHistory = new DayaBay::SimParticleHistory();
00037        outHistory = mCurrentHistory;
00038        return StatusCode::SUCCESS;
00039     }
00040   
00043   virtual StatusCode ClaimCurrentHistory(DayaBay::SimParticleHistory* &outHistory) 
00044     {
00045       outHistory = mCurrentHistory;
00046       mCurrentHistory = 0;
00047       return StatusCode::SUCCESS;
00048     }
00049 
00051   virtual StatusCode GetCurrentUnobservable(DayaBay::SimUnobservableStatisticsHeader* &outUnobservable)
00052     {
00053        if(mCurrentUnobservable==0) 
00054          mCurrentUnobservable = new DayaBay::SimUnobservableStatisticsHeader();
00055        outUnobservable = mCurrentUnobservable;
00056        return StatusCode::SUCCESS;
00057     }
00058   
00061   virtual StatusCode ClaimCurrentUnobservable(DayaBay::SimUnobservableStatisticsHeader* &outUnobservable) 
00062     {
00063       outUnobservable = mCurrentUnobservable;
00064       mCurrentUnobservable = 0;
00065       return StatusCode::SUCCESS;
00066     }
00067 
00068   private: 
00069   DayaBay::SimParticleHistory* mCurrentHistory;
00070   DayaBay::SimUnobservableStatisticsHeader* mCurrentUnobservable;
00071 
00072 };
00073 
00074 
00075 
00076 
00077 #endif /* HISTORYKEEPER_H */
00078 
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Fri May 16 2014 10:05:42 for G4DataHelpers by doxygen 1.7.4