| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

SimHitSplitSvc.h

Go to the documentation of this file.
00001 
00010 #ifndef SIMHITSPLITSVC_H
00011 #define SIMHITSPLITSVC_H
00012 
00013 #include "MixSimHit.h"
00014 
00015 #include "Event/GenHeader.h"
00016 #include "Event/SimHeader.h"
00017 #include "Event/SimHit.h"
00018 
00019 #include "Conventions/Electronics.h"
00020 
00021 #include "SimHitSplitSvc/ISimHitSplitSvc.h"
00022 
00023 #include "GaudiKernel/Service.h"
00024 #include "GaudiKernel/MsgStream.h"
00025 
00026 #include <map>
00027 #include <deque>
00028 #include <vector>
00029 
00030 using namespace std;
00031 
00032 class SimHitSplitSvc : public Service, 
00033                        virtual public ISimHitSplitSvc
00034 {
00035  public:
00036   SimHitSplitSvc(const string& name, ISvcLocator* pSvcLocator);
00037   virtual ~SimHitSplitSvc();
00038 
00039   virtual StatusCode initialize();
00040   virtual StatusCode queryInterface(const InterfaceID& riid, void** ppint);
00041 
00042   StatusCode getSimHitHeader(SimHeader* sh, vector<SimHitHeader*>& shhs, vector<TimeStamp>& hites, vector<TimeStamp>& hitls);
00043 
00044  private:
00045   //MsgStream
00046   mutable MsgStream m_log;
00047 
00048   //Parameters to dealing with SimHits
00049   deque<double>     m_hitsGap;     //for SimHit
00050   deque<MixSimHit>  m_SimHits;     //SimHits buffer
00051 
00052   //Fill Hits buffer and HitHeader with given SimHeader's
00053   StatusCode fillHitsBuffer(SimHeader* sh);
00054 
00055   //Search Hits buffer for a gap, update the gap vector
00056   StatusCode findGap();
00057 
00058   //Filling one or more SimHitHeader with proper SimHits
00059   //then push_back the SimHitHeader into SimHitHeader vector
00060   StatusCode createHitHeaders(SimHeader* sh, vector<SimHitHeader*>& shhs, vector<TimeStamp>& hites, vector<TimeStamp>& hitls);
00061 
00062   //The absolute time of the SimHeader
00063   TimeStamp         m_absTime;
00064   //SimHit chunks' earliest and latest
00065   vector<TimeStamp> m_hitEarliests;
00066   vector<TimeStamp> m_hitLatests;
00067     
00068   double            m_minTimeGap;
00069   TimeStamp         m_MinTimeGap;
00070 };
00071 
00072 #endif //SIMHITSPLITSVC_H
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:44:14 2011 for SimHitSplitSvc by doxygen 1.4.7