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

In This Package:

ROsFecReadoutTool.h
Go to the documentation of this file.
00001 /*
00002  * \class ROsFecReadoutTool
00003  *
00004  * \brief Fec Readout Tool
00005  *
00006  * viktor
00007  *
00008  */
00009 
00010 #ifndef _ROFECREADOUTTOOLL_H_
00011 #define _ROFECREADOUTTOOLL_H_
00012 
00013 #include "ReadoutSim/IROsReadoutTool.h"
00014 #include "GaudiAlg/GaudiTool.h"
00015 
00016 #include "Conventions/Detectors.h"
00017 #include "Conventions/Trigger.h"
00018 
00019 #include "Event/ReadoutRpcCrate.h"
00020 #include "Event/ElecFecCrate.h"
00021 
00022 #include <vector>
00023 #include <string>
00024 
00025 namespace DayaBay{
00026   class ElecHeader;
00027   class SimTrigHeader;
00028   class ReadoutTriggerDataPkg;
00029   class ReadoutRpcTriggerDataPkg;
00030   class ReadoutRpcTriggerDataFrame;
00031   class SimReadoutHeader;
00032 }
00033 
00034 class ROsFecReadoutTool : public GaudiTool , virtual public IROsReadoutTool
00035 {
00036 public:
00037 
00038     ROsFecReadoutTool(const std::string& type,
00039                                   const std::string& name,
00040                                   const IInterface* parent);
00041 
00042     virtual ~ROsFecReadoutTool();
00043 
00044     virtual StatusCode mutate(DayaBay::SimReadoutHeader *roHeader,
00045                               std::vector<DayaBay::ReadoutTriggerDataPkg*>& trigDataPkg,
00046                                           const DayaBay::ElecHeader& elecHeader);
00047 
00048     virtual StatusCode initialize();
00049     virtual StatusCode finalize();
00050 
00051 private:
00052     virtual StatusCode makeReadouts(DayaBay::SimReadoutHeader *roHeader,
00053                                     std::vector<DayaBay::ReadoutTriggerDataPkg*>& trigDataPkg,
00054                                     const DayaBay::ElecHeader& elecHeader);
00055     DayaBay::ReadoutRpcCrate* readoutCrate(const DayaBay::ReadoutRpcTriggerDataFrame *tdf,
00056                                     const DayaBay::ElecFecCrate *cr, Context context);
00057     DayaBay::ReadoutFecBoard* readoutBoard(const DayaBay::ReadoutRpcTriggerDataFrame *tdf,
00058                                     const DayaBay::ElecFecBoard *brd, Context context);
00059 private:
00060     std::vector<std::string> m_detectorsToProcess; 
00061     std::set<DayaBay::Detector> m_detectors; 
00062     std::map<DayaBay::ElecChannelId, TimeStamp> m_lastRead; 
00063     int m_refuseTime; 
00064     int m_readoutWindow; 
00065     int m_readoutWindowPosition; 
00066     // FIXME: explain better the readout window position, decide on the convention: clocks counted from the end or from the beginning of the window?
00067 };
00068 
00069 
00070 
00071 #endif /* _ROFECREADOUTTOOLL_H_ */
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Fri May 16 2014 10:17:05 for ReadoutSim by doxygen 1.7.4