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

In This Package:

DaqBenchmark.h

Go to the documentation of this file.
00001 #ifndef DAQFORMATMODULES_DAQBENCHMARK_H
00002 #define DAQFORMATMODULES_DAQBENCHMARK_H
00003 
00004 /*
00005  *  DaqBenchmark.h
00006  *  DaqFormatModules
00007  *
00008  *  Created by Simon Patton on 8/5/10.
00009  *  Copyright 2010 DayaBay Collaboration. All rights reserved.
00010  *
00011  */
00012 
00013 #include <ctime>
00014 
00015 class IStatisticsSvc;
00016 class TH1F;
00017 class TH2F;
00018 
00019 namespace DayaBay {
00020     class DaqFadcChannel;
00021     class DaqLtbFrame;
00022     class DaqPmtChannel;
00023     class DaqPmtCrate;
00024     class ReadoutHeader;
00025     class ReadoutPmtChannel;
00026     class ReadoutPmtCrate;
00027 }
00028 
00029 
00030 namespace DybDaq {
00031     class EventReadout;
00032     class FeeReadout;
00033     class FadcReadout;
00034     class RomData;
00035     class RomFragment;
00036 }
00037 
00038 #include "GaudiAlg/GaudiAlgorithm.h"
00039 
00040 class DaqBenchmark : public GaudiAlgorithm {
00041 
00042  public:
00043 
00047     DaqBenchmark(const std::string& name,
00048                  ISvcLocator* pSvcLocator);
00049 
00053     ~DaqBenchmark();
00054 
00058     virtual StatusCode initialize();
00059 
00063     virtual StatusCode finalize();
00064 
00068     virtual StatusCode execute();
00069 
00070  private:
00071 
00075     DaqBenchmark();
00076   
00080     DaqBenchmark(DaqBenchmark& rhs);
00081   
00085     DaqBenchmark& operator=(DaqBenchmark& rhs);
00086 
00090     TH1F** getSlotLowGainHistograms(const unsigned int slot);
00091 
00095     TH1F* getLowGainHistogram(TH1F** slotLowGainHistograms,
00096                                const unsigned int slot,
00097                                const unsigned int channelNumber);
00098 
00102     TH1F** getSlotHighGainHistograms(const unsigned int slot);
00103 
00107     TH1F* getHighGainHistogram(TH1F** slotHighGainHistograms,
00108                                const unsigned int slot,
00109                                const unsigned int channelNumber);
00110 
00114     TH1F** getSlotTdcHistograms(const unsigned int slot);
00115 
00119     TH1F* getTdcHistogram(TH1F** slotTdcHistograms,
00120                           const unsigned int slot,
00121                           const unsigned int channelNumber);
00122 
00126     TH1F** getSlotHistogram(TH1F*** histograms,
00127                             const unsigned int slot);
00128 
00132     TH2F** getSlotFadcHistograms(const unsigned int slot);
00133 
00137     TH2F* getFadcHistogram(TH2F** slotFadcHistograms,
00138                            const unsigned int slot,
00139                            const unsigned int channelNumber);
00140 
00144     TH2F** getSlotHistogram(TH2F*** histograms,
00145                             const unsigned int slot);
00146 
00150     StatusCode handleDaqFormat(const DayaBay::ReadoutHeader& readoutHeader);
00151 
00155     void handleEvent(const DybDaq::EventReadout& event);
00156 
00160     void handleFragment(const DybDaq::RomFragment& fragment);
00161 
00165     void handleFee(const DybDaq::FeeReadout& readout,
00166                    const unsigned int slot);
00167 
00171     StatusCode handleReadoutEvent(const DayaBay::ReadoutHeader& readoutHeader);
00172 
00176     void handleEvent(const DayaBay::ReadoutPmtCrate& create);
00177 
00181     void handleChannel(const DayaBay::ReadoutPmtChannel& channel);
00182 
00186     StatusCode handleDaqEvent(const DayaBay::ReadoutHeader& readoutHeader);
00187 
00191     void handleEvent(const DayaBay::DaqPmtCrate& crate);
00192 
00196     void handleFrame(const DayaBay::DaqLtbFrame& frame);
00197 
00201     void handleChannel(const DayaBay::DaqPmtChannel& channel);
00202 
00206     void handleChannel(const DayaBay::DaqFadcChannel& channel);
00207 
00208     // Construct histogram path in statistics service                                                                                                             
00212     IStatisticsSvc* m_statsSvc;
00213 
00217     TH1F*** m_feeLowGainHistograms;
00218 
00222     TH1F*** m_feeHighGainHistograms;
00223 
00227     TH1F*** m_feeTdcHistograms;
00228 
00232     TH2F*** m_fadcHistograms;
00233 
00237     unsigned long m_eventCount;
00238 
00242     unsigned long m_payloadLength;
00243 
00247     time_t m_beginTime;
00248 
00252     time_t m_firstEventTime;
00253   
00257     time_t m_lastEventTime;
00258 
00262     bool m_useDaqFormat;
00263 
00267     bool m_useDaqEvent;
00268 
00272     bool m_useReadoutEvent;
00273 
00274 };
00275 
00276 #endif // DAQFORMATMODULES_DAQBENCHMARK_H
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:46:28 2011 for DaqFormatModules by doxygen 1.4.7