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

In This Package:

CalibReadoutPmtCrate.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 CalibReadoutEvent_CalibReadoutPmtCrate_H
00016 #define CalibReadoutEvent_CalibReadoutPmtCrate_H 1
00017 
00018 // Include files
00019 #include "Event/CalibReadout.h"
00020 #include "Conventions/Electronics.h"
00021 #include "Event/CalibReadoutPmtChannel.h"
00022 #include "GaudiKernel/boost_allocator.h"
00023 #include <ostream>
00024 
00025 // Forward declarations
00026 
00027 namespace DayaBay 
00028 {
00029 
00030   // Forward declarations
00031 
00041   class CalibReadoutPmtCrate: public CalibReadout
00042   {
00043   public:
00044 
00046     typedef std::vector<DayaBay::CalibReadoutPmtChannel> PmtChannelReadouts;
00047   
00049   CalibReadoutPmtCrate(const DayaBay::Detector& detector,
00050                          unsigned int triggerNumber,
00051                          const TimeStamp& triggerTime,
00052                          const DayaBay::Trigger::TriggerType_t& triggerType) : CalibReadout(detector,
00053                                                                               triggerNumber,
00054                                                                               triggerTime,
00055                                                                               triggerType) {}
00056   
00058   CalibReadoutPmtCrate(const DayaBay::CalibReadoutPmtCrate& rhs);
00059   
00061     CalibReadoutPmtCrate() : m_channelReadout() {}
00062   
00064     virtual ~CalibReadoutPmtCrate() {}
00065   
00067     CalibReadoutPmtCrate& operator=(const DayaBay::CalibReadoutPmtCrate& rhs);
00068   
00070     void addSensor(const DayaBay::DetectorSensor& sensorId);
00071   
00073     CalibReadoutPmtChannel* sensor(const DayaBay::DetectorSensor& sensorId);
00074   
00076     std::vector<DayaBay::DetectorSensor> sensors();
00077   
00079     std::ostream& fillStream(std::ostream& s) const;
00080   
00083   const PmtChannelReadouts& channelReadout() const;
00084   
00087   void setChannelReadout(const PmtChannelReadouts& value);
00088   
00089   
00090   #ifndef GOD_NOALLOC
00092     static void* operator new ( size_t size )
00093     {
00094       return ( sizeof(CalibReadoutPmtCrate) == size ? 
00095                boost::singleton_pool<CalibReadoutPmtCrate, sizeof(CalibReadoutPmtCrate)>::malloc() :
00096                ::operator new(size) );
00097     }
00098   
00102     static void* operator new ( size_t size, void* pObj )
00103     {
00104       return ::operator new (size,pObj);
00105     }
00106   
00108     static void operator delete ( void* p )
00109     {
00110       boost::singleton_pool<CalibReadoutPmtCrate, sizeof(CalibReadoutPmtCrate)>::is_from(p) ?
00111       boost::singleton_pool<CalibReadoutPmtCrate, sizeof(CalibReadoutPmtCrate)>::free(p) :
00112       ::operator delete(p);
00113     }
00114   
00117     static void operator delete ( void* p, void* pObj )
00118     {
00119       ::operator delete (p, pObj);
00120     }
00121   #endif
00122   protected:
00123 
00124   private:
00125 
00126     PmtChannelReadouts m_channelReadout; 
00127   
00128   }; // class CalibReadoutPmtCrate
00129 
00130   inline std::ostream& operator<< (std::ostream& str, const CalibReadoutPmtCrate& obj)
00131   {
00132     return obj.fillStream(str);
00133   }
00134   
00135 } // namespace DayaBay;
00136 
00137 // -----------------------------------------------------------------------------
00138 // end of class
00139 // -----------------------------------------------------------------------------
00140 
00141 // Including forward declarations
00142 
00143 inline const DayaBay::CalibReadoutPmtCrate::PmtChannelReadouts& DayaBay::CalibReadoutPmtCrate::channelReadout() const 
00144 {
00145   return m_channelReadout;
00146 }
00147 
00148 inline void DayaBay::CalibReadoutPmtCrate::setChannelReadout(const PmtChannelReadouts& value) 
00149 {
00150   m_channelReadout = value;
00151 }
00152 
00153 inline void DayaBay::CalibReadoutPmtCrate::addSensor(const DayaBay::DetectorSensor& sensorId) 
00154 {
00155 
00156           if(! this->sensor(sensorId) ){ 
00157              m_channelReadout.push_back(
00158                       DayaBay::CalibReadoutPmtChannel(sensorId, this) 
00159                                        );
00160           }
00161         
00162 }
00163 
00164 inline DayaBay::CalibReadoutPmtChannel* DayaBay::CalibReadoutPmtCrate::sensor(const DayaBay::DetectorSensor& sensorId) 
00165 {
00166 
00167           DayaBay::CalibReadoutPmtCrate::PmtChannelReadouts::iterator crIter, 
00168             crEnd = m_channelReadout.end();
00169           for(crIter=m_channelReadout.begin(); crIter!=crEnd; crIter++){
00170             if( crIter->pmtSensorId() == sensorId ) return &(*crIter);
00171           }
00172           return 0;
00173         
00174 }
00175 
00176 inline std::vector<DayaBay::DetectorSensor> DayaBay::CalibReadoutPmtCrate::sensors() 
00177 {
00178 
00179           DayaBay::CalibReadoutPmtCrate::PmtChannelReadouts::iterator crIter = m_channelReadout.begin();
00180           std::vector<DayaBay::DetectorSensor> sensors;
00181           for(;crIter != m_channelReadout.end(); crIter++) 
00182             sensors.push_back(crIter->pmtSensorId());
00183           return sensors;
00184         
00185 }
00186 
00187 
00188 #endif 
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:23:27 2011 for CalibReadoutEvent by doxygen 1.4.7