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

In This Package:

ROsFadcReadoutTool.h
Go to the documentation of this file.
00001 /*
00002  * \class ROsFadcReadoutTool
00003  *
00004  * \brief Fadc Readout Tool
00005  *
00006  * bseilhan@iit.edu 2010-07-01  initial pass at creating a FADC Tool
00007  *  
00008  * edraeger@iit.edu 2010-07-07  fine tuning, optimization, debugging,
00009  *                               and testing
00010  *
00011  */
00012  
00013 #ifndef ROSFADCREADOUTTOOL_H_QWST9VOD
00014 #define ROSFADCREADOUTTOOL_H_QWST9VOD
00015 
00016 #include "ReadoutSim/IROsFadcReadoutTool.h"
00017 #include "Event/ElecFeeCrate.h" // bring in typedefs
00018 
00019 #include "GaudiAlg/GaudiTool.h"
00020 
00021 namespace DayaBay{
00022   class ReadoutPmtCrate;
00023 }
00024 
00025 class ROsFadcReadoutTool : public GaudiTool, virtual public IROsFadcReadoutTool
00026 {
00027 public:  
00028     
00029     ROsFadcReadoutTool(const std::string& type,
00030                const std::string& name,
00031                const IInterface* parent);
00032                  
00033     virtual ~ROsFadcReadoutTool();
00034 
00035     virtual StatusCode readoutFADC(const DayaBay::ElecFeeCrate *elecCrate,
00036                                    DayaBay::ReadoutPmtCrate *roCrate,
00037                                    unsigned int startCycle, unsigned int stopCycle);
00038                                                                   
00039     virtual StatusCode initialize();
00040     virtual StatusCode finalize();
00041 
00042 private:
00043     typedef std::map<int,DayaBay::AnalogSignal> analogFADCmap;
00044     
00045     // Simulation Frequency (in Hz)
00046     int m_simFrequency;
00047     // Esum Frequency (in Hz)
00048     int m_eSumFrequency;
00049     // Fadc Frequency (in Hz)
00050     int m_fadcFrequency;
00051     double m_adcRange; 
00052     double m_adcBits;
00053     double m_adcOffset;
00054 
00055 private:
00056     
00057     double linearInterpolate(double y1, double y2, double mu, double leftPoint, double rightPoint);
00058 
00059     StatusCode fillFadcMap(const DayaBay::ElecFeeCrate::AnalogMap& input,
00060                            analogFADCmap& output);
00061         
00062     StatusCode upsample(const DayaBay::AnalogSignal& signal, 
00063                         DayaBay::AnalogSignal& output,
00064                         int inputFrequency,
00065                         int outputFrequency, int start, int stop);
00066 
00067     StatusCode digitize(const DayaBay::AnalogSignal& signal,
00068                         DayaBay::DigitalSignal& output,
00069                         double range, double bits, double offset);
00070                         
00071     const int getFadcInputChId(const DayaBay::FeeChannelId& boardId);
00072 
00073 };
00074 
00075 #endif /* end of include guard: ROSFADCREADOUTTOOL_H_QWST9VOD */
| 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