00001 #ifndef PERREADOUTEVENT_PERDAQPMTCRATE_H
00002 #define PERREADOUTEVENT_PERDAQPMTCRATE_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #include "Event/DaqPmtCrate.h"
00013
00014 class PerUintValue;
00015
00016 class PerDaqPmtCrate : public DayaBay::DaqPmtCrate {
00017
00018 public:
00019
00023 typedef std::vector<const PerUintValue*> AdcPeakValues;
00024
00028 typedef std::vector<const PerUintValue*> AdcValues;
00029
00033 typedef std::vector<const PerUintValue*> PreAdcValues;
00034
00038 typedef std::vector<const PerUintValue*> GainValues;
00039
00043 typedef std::vector<const PerUintValue*> TdcValues;
00044
00048 PerDaqPmtCrate(const DybDaq::EventReadout* eventReadout);
00049
00053 PerDaqPmtCrate(const PerDaqPmtCrate& rhs);
00054
00058 virtual ~PerDaqPmtCrate();
00059
00060
00061
00062 const DayaBay::DaqPmtChannel& channel(const DayaBay::FeeChannelId& channelId) const;
00063
00064 const DaqPmtCrate::PmtChannelPtrList& channel(int board, int chan) const;
00065
00069 const AdcPeakValues& peaks(int board, int channel, int highGain = 1) const;
00070
00074 const AdcValues& adcs(int board, int channel, int highGain = 1) const;
00075
00079 const PreAdcValues& preAdcRaws(int board, int channel, int highGain = 1) const;
00080
00084 const GainValues& gains(int board, int channel) const;
00085
00089 const TdcValues& tdcs(int board, int channel, int highGain = 1) const;
00090
00091 private:
00092
00096 PerDaqPmtCrate();
00097
00101 PerDaqPmtCrate& operator=(const PerDaqPmtCrate& rhs);
00102
00106 mutable std::vector<const PerUintValue*>* m_returnedPeaks;
00107
00111 mutable std::vector<const PerUintValue*>* m_returnedAdcs;
00112
00116 mutable std::vector<const PerUintValue*>* m_returnedPreAdcs;
00117
00121 mutable std::vector<const PerUintValue*>* m_returnedGains;
00122
00126 mutable std::vector<const PerUintValue*>* m_returnedTdcs;
00127
00131 static DaqPmtCrate::PmtChannelPtrList* m_channels;
00132 };
00133
00134 #endif // PERREADOUTEVENT_PERDAQPMTCRATE_H