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

In This Package:

ReadoutPmtCrate.h
Go to the documentation of this file.
00001 
00002 //   **************************************************************************
00003 //   *                                                                        *
00004 //   *                      ! ! ! A T T E N T I O N ! ! !                     *
00005 //   *                                                                        *
00006 //   *  This file was created automatically by GaudiObjDesc, please do not    *
00007 //   *  delete it or edit it by hand.                                         *
00008 //   *                                                                        *
00009 //   *  If you want to change this file, first change the corresponding       *
00010 //   *  xml-file and rerun the tools from GaudiObjDesc (or run make if you    *
00011 //   *  are using it from inside a Gaudi-package).                            *
00012 //   *                                                                        *
00013 //   **************************************************************************
00014 
00015 #ifndef ReadoutEvent_ReadoutPmtCrate_H
00016 #define ReadoutEvent_ReadoutPmtCrate_H 1
00017 
00018 // Include files
00019 #include "Event/Readout.h"
00020 #include "Conventions/Electronics.h"
00021 #include "Event/ReadoutPmtChannel.h"
00022 #include "Event/DaqPmtCrate.h"
00023 #include "GaudiKernel/boost_allocator.h"
00024 #include <ostream>
00025 
00026 // Forward declarations
00027 
00028 namespace DayaBay 
00029 {
00030 
00031   // Forward declarations
00032   class ReadoutTriggerDataPkg;
00033   
00034 
00044   class ReadoutPmtCrate: public Readout
00045   {
00046   public:
00047 
00049     typedef std::map<DayaBay::FeeChannelId,DayaBay::ReadoutPmtChannel> PmtChannelReadouts;
00051     typedef std::map<DayaBay::FadcChannelId,DayaBay::DigitalSignal> FadcReadouts;
00052   
00054   ReadoutPmtCrate(const DayaBay::Detector& detector,
00055                     unsigned int triggerNumber,
00056                     const TimeStamp& triggerTime,
00057                     const DayaBay::Trigger::TriggerType_t& triggerType) : Readout(detector,
00058                                                                          triggerNumber,
00059                                                                          triggerTime,
00060                                                                          triggerType),
00061                                                                                       m_triggerDataPkg(0) {}
00062   
00064   ReadoutPmtCrate(const DayaBay::ReadoutPmtCrate& rhs);
00065   
00067     ReadoutPmtCrate() : m_channelReadout(),
00068                         m_fadcReadout(),
00069                         m_triggerDataPkg(0) {}
00070   
00072   ~ReadoutPmtCrate();
00073   
00075     ReadoutPmtCrate& operator=(const DayaBay::ReadoutPmtCrate& rhs);
00076   
00078     void addChannel(const DayaBay::FeeChannelId& channelId);
00079   
00081     ReadoutPmtChannel& channel(const DayaBay::FeeChannelId& channelId);
00082   
00084     std::vector<DayaBay::FeeChannelId> channels();
00085   
00087     const DayaBay::DaqCrate* daqCrate(const unsigned int run,
00088                                       const unsigned int event,
00089                                       const unsigned int ltbSlot) const;
00090   
00092     const DayaBay::DaqLtb* dummyLtb() const;
00093   
00095     std::ostream& fillStream(std::ostream& s) const;
00096   
00099   const PmtChannelReadouts& channelReadout() const;
00100   
00103   void setChannelReadout(const PmtChannelReadouts& value);
00104   
00107   const FadcReadouts& fadcReadout() const;
00108   
00111   FadcReadouts& fadcReadout();
00112   
00115   void setFadcReadout(const FadcReadouts& value);
00116   
00119   const DayaBay::ReadoutTriggerDataPkg* triggerDataPkg() const;
00120   
00123   void setTriggerDataPkg(DayaBay::ReadoutTriggerDataPkg* value);
00124   
00125   
00126   #ifndef GOD_NOALLOC
00127 
00128     static void* operator new ( size_t size )
00129     {
00130       return ( sizeof(ReadoutPmtCrate) == size ? 
00131                boost::singleton_pool<ReadoutPmtCrate, sizeof(ReadoutPmtCrate)>::malloc() :
00132                ::operator new(size) );
00133     }
00134   
00138     static void* operator new ( size_t size, void* pObj )
00139     {
00140       return ::operator new (size,pObj);
00141     }
00142   
00144     static void operator delete ( void* p )
00145     {
00146       boost::singleton_pool<ReadoutPmtCrate, sizeof(ReadoutPmtCrate)>::is_from(p) ?
00147       boost::singleton_pool<ReadoutPmtCrate, sizeof(ReadoutPmtCrate)>::free(p) :
00148       ::operator delete(p);
00149     }
00150   
00153     static void operator delete ( void* p, void* pObj )
00154     {
00155       ::operator delete (p, pObj);
00156     }
00157   #endif
00158   protected:
00159 
00160   private:
00161 
00162     PmtChannelReadouts              m_channelReadout; 
00163     FadcReadouts                    m_fadcReadout;    
00164     DayaBay::ReadoutTriggerDataPkg* m_triggerDataPkg; 
00165   
00166   }; // class ReadoutPmtCrate
00167 
00168   inline std::ostream& operator<< (std::ostream& str, const ReadoutPmtCrate& obj)
00169   {
00170     return obj.fillStream(str);
00171   }
00172   
00173 } // namespace DayaBay;
00174 
00175 // -----------------------------------------------------------------------------
00176 // end of class
00177 // -----------------------------------------------------------------------------
00178 
00179 // Including forward declarations
00180 #include "ReadoutTriggerDataPkg.h"
00181 
00182 
00183 inline const DayaBay::ReadoutPmtCrate::PmtChannelReadouts& DayaBay::ReadoutPmtCrate::channelReadout() const 
00184 {
00185   return m_channelReadout;
00186 }
00187 
00188 inline void DayaBay::ReadoutPmtCrate::setChannelReadout(const PmtChannelReadouts& value) 
00189 {
00190   m_channelReadout = value;
00191 }
00192 
00193 inline const DayaBay::ReadoutPmtCrate::FadcReadouts& DayaBay::ReadoutPmtCrate::fadcReadout() const 
00194 {
00195   return m_fadcReadout;
00196 }
00197 
00198 inline DayaBay::ReadoutPmtCrate::FadcReadouts& DayaBay::ReadoutPmtCrate::fadcReadout() 
00199 {
00200   return m_fadcReadout;
00201 }
00202 
00203 inline void DayaBay::ReadoutPmtCrate::setFadcReadout(const FadcReadouts& value) 
00204 {
00205   m_fadcReadout = value;
00206 }
00207 
00208 inline const DayaBay::ReadoutTriggerDataPkg* DayaBay::ReadoutPmtCrate::triggerDataPkg() const 
00209 {
00210   return m_triggerDataPkg;
00211 }
00212 
00213 inline void DayaBay::ReadoutPmtCrate::setTriggerDataPkg(DayaBay::ReadoutTriggerDataPkg* value) 
00214 {
00215   m_triggerDataPkg = value;
00216 }
00217 
00218 inline void DayaBay::ReadoutPmtCrate::addChannel(const DayaBay::FeeChannelId& channelId) 
00219 {
00220 
00221           m_channelReadout[channelId] = DayaBay::ReadoutPmtChannel(channelId,
00222                                                                    this);
00223         
00224 }
00225 
00226 inline DayaBay::ReadoutPmtChannel& DayaBay::ReadoutPmtCrate::channel(const DayaBay::FeeChannelId& channelId) 
00227 {
00228 return m_channelReadout[channelId];
00229 }
00230 
00231 inline std::vector<DayaBay::FeeChannelId> DayaBay::ReadoutPmtCrate::channels() 
00232 {
00233 
00234           DayaBay::ReadoutPmtCrate::PmtChannelReadouts::iterator crIter = m_channelReadout.begin();
00235           std::vector<DayaBay::FeeChannelId> channels;
00236           for(;crIter != m_channelReadout.end(); crIter++) 
00237             channels.push_back(crIter->first);
00238           return channels;
00239         
00240 }
00241 
00242 
00243 #endif ///ReadoutEvent_ReadoutPmtCrate_H
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Fri May 16 2014 10:01:16 for ReadoutEvent by doxygen 1.7.4