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

In This Package:

TrigReadProc.h

Go to the documentation of this file.
00001 
00021 #ifndef TRIGREADPROC_H
00022 #define TRIGREADPROC_H
00023 
00024 #include "Stage/StageProcessor.h"
00025 #include "Event/ElecHeader.h"
00026 #include "Event/SimTrigHeader.h"
00027 #include "Event/SimReadoutHeader.h"
00028 #include "Event/SimReadout.h"
00029 
00030 #include "ReadoutSim/IROsReadoutTool.h"
00031 #include "ReadoutSim/IROsTriggerDataPackerTool.h"
00032 #include "TrigSim/ITsTriggerTool.h"
00033 #include "FastTrigReadSim/IFastTrigReadSimTool.h"
00034 
00036 #include "Stage/IStage.h"
00037 #include "Stage/FFTimeStamp.h"
00038 #include "Stage/HeaderStageData.h"
00039 
00040 using namespace DayaBay;
00041 
00042 class ITsTriggerTool;
00043 
00044 class TrigReadProc : public StageProcessor<DayaBay::SimReadoutHeader>
00045 {
00046 public:
00047     TrigReadProc(const std::string& name,ISvcLocator* pSvcLocator);
00048     virtual ~TrigReadProc();
00049    
00050     virtual StatusCode initialize();
00051     virtual StatusCode execute(); 
00052     virtual StatusCode finalize();
00053   
00054 private:
00055 
00057     std::vector<std::string> m_trigToolNames;
00058     std::vector<ITsTriggerTool*> m_trigTools;
00059     
00060     std::string m_trigFilterName;
00061     ITsTriggerTool* m_triggerSorter;
00062     
00064     std::vector<std::string> m_roToolNames;
00065     std::vector<IROsReadoutTool*> m_roTools;
00066     
00067     std::string m_roTrigPackName;
00068     IROsTriggerDataPackerTool* m_roTrigPackTool;
00069 
00071     typedef HeaderStageData<ElecHeader> ElecData;
00072     typedef HeaderStageData<SimReadoutHeader> SimReadoutData;
00073     
00076     SimReadoutData::DataList m_SimRODataList;
00077 
00079     FFTimeStamp m_currentTime;
00080 
00082     std::string m_fastToolName;
00083     IFastTrigReadSimTool* m_fastTool;
00084 
00085 private:
00086 
00087     // implemenation details
00088 
00089     // Run trigger sim on ElecHeader, produce TrigHeader
00090     StatusCode runTrigSim(const ElecHeader& elecHeader, 
00091                           SimTrigHeader*& trigHeader);
00092 
00093     // Run readout sim on ElecHeader and TrigHeader, produce SimReadoutHeader
00094     StatusCode runReadoutSim(const ElecHeader& elecHeader, 
00095                              const SimTrigHeader& trigHeader,
00096                              SimReadoutHeader*& sroHeader);
00097 
00098     // Get the next SimReadoutHeader, Triger and Readout
00099     StatusCode TR_execute(const ElecHeader* ehead,SimReadoutHeader*& srhead);
00100 
00101     // Fast trigger and readout simulation
00102     StatusCode fastTrigReadSim(const ElecHeader* ehead,SimReadoutHeader*& srhead);
00103 
00104     const SimReadoutHeader* m_currentSRHeader;
00105 };
00106 
00107 #endif  // TRIGREADPROC_H
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 21:02:48 2011 for TrigReadProc by doxygen 1.4.7