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

In This Package:

ReadoutPmtChannel.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_ReadoutPmtChannel_H
00016 #define ReadoutEvent_ReadoutPmtChannel_H 1
00017 
00018 // Include files
00019 #include "Conventions/Electronics.h"
00020 #include "GaudiKernel/boost_allocator.h"
00021 #include "GaudiKernel/SerializeSTL.h"
00022 #include <ostream>
00023 
00024 // Forward declarations
00025 
00026 namespace DayaBay 
00027 {
00028 
00029   // Forward declarations
00030   class ReadoutPmtCrate;
00031   using GaudiUtils::operator<<;
00032   
00033 
00043   class ReadoutPmtChannel
00044   {
00045   public:
00046 
00048   ReadoutPmtChannel(const DayaBay::FeeChannelId& channelId,
00049                       DayaBay::ReadoutPmtCrate* readout);
00050   
00052     ReadoutPmtChannel() : m_readout(0),
00053                           m_mode(0x0),
00054                           m_channelId(0),
00055                           m_adc(),
00056                           m_pedestal(),
00057                           m_adcRange(),
00058                           m_adcCycle(),
00059                           m_tdc(),
00060                           m_tdcHitCount(),
00061                           m_waveAdcHigh(),
00062                           m_waveAdcLow(),
00063                           m_waveAdcCycle() {}
00064   
00066     virtual ~ReadoutPmtChannel() {}
00067   
00069    virtual std::ostream& fillStream(std::ostream& s) const;
00070   
00072     unsigned int size() const;
00073   
00075     int peakAdc(unsigned int index) const;
00076   
00078     int peakAdcRange(unsigned int index) const;
00079   
00081     int peakAdcCycle(unsigned int index) const;
00082   
00084     int adc(unsigned int index) const;
00085   
00087     int adcRange(unsigned int index) const;
00088   
00090     int adcCycle(unsigned int index) const;
00091   
00093     int pedestal(unsigned int index) const;
00094   
00096     int tdc(unsigned int index) const;
00097   
00099     int tdcHitCount(unsigned int index) const;
00100   
00102     int maxAdcIndex() const;
00103   
00105     int maxAdc() const;
00106   
00108     int sumAdc() const;
00109   
00111     int earliestTdcIndex() const;
00112   
00114     int earliestTdc() const;
00115   
00117     int earliestAdc() const;
00118   
00120     unsigned int waveSize() const;
00121   
00123     int waveAdcCycle(unsigned int index) const;
00124   
00126     int waveAdcHigh(unsigned int index) const;
00127   
00129     int waveAdcLow(unsigned int index) const;
00130   
00133   const DayaBay::ReadoutPmtCrate* readout() const;
00134   
00137   void setReadout(DayaBay::ReadoutPmtCrate* value);
00138   
00141   int mode() const;
00142   
00145   void setMode(int value);
00146   
00149   const DayaBay::FeeChannelId& channelId() const;
00150   
00153   void setChannelId(const DayaBay::FeeChannelId& value);
00154   
00157   const std::vector<int>& adc() const;
00158   
00161   std::vector<int>& adc();
00162   
00165   void setAdc(const std::vector<int>& value);
00166   
00169   const std::vector<int>& pedestal() const;
00170   
00173   std::vector<int>& pedestal();
00174   
00177   void setPedestal(const std::vector<int>& value);
00178   
00181   const std::vector<int>& adcRange() const;
00182   
00185   std::vector<int>& adcRange();
00186   
00189   void setAdcRange(const std::vector<int>& value);
00190   
00193   const std::vector<int>& adcCycle() const;
00194   
00197   std::vector<int>& adcCycle();
00198   
00201   void setAdcCycle(const std::vector<int>& value);
00202   
00205   const std::vector<int>& tdc() const;
00206   
00209   std::vector<int>& tdc();
00210   
00213   void setTdc(const std::vector<int>& value);
00214   
00217   const std::vector<int>& tdcHitCount() const;
00218   
00221   std::vector<int>& tdcHitCount();
00222   
00225   void setTdcHitCount(const std::vector<int>& value);
00226   
00229   const std::vector<int>& waveAdcHigh() const;
00230   
00233   void setWaveAdcHigh(const std::vector<int>& value);
00234   
00237   const std::vector<int>& waveAdcLow() const;
00238   
00241   void setWaveAdcLow(const std::vector<int>& value);
00242   
00245   const std::vector<int>& waveAdcCycle() const;
00246   
00249   void setWaveAdcCycle(const std::vector<int>& value);
00250   
00251   
00252   #ifndef GOD_NOALLOC
00254     static void* operator new ( size_t size )
00255     {
00256       return ( sizeof(ReadoutPmtChannel) == size ? 
00257                boost::singleton_pool<ReadoutPmtChannel, sizeof(ReadoutPmtChannel)>::malloc() :
00258                ::operator new(size) );
00259     }
00260   
00264     static void* operator new ( size_t size, void* pObj )
00265     {
00266       return ::operator new (size,pObj);
00267     }
00268   
00270     static void operator delete ( void* p )
00271     {
00272       boost::singleton_pool<ReadoutPmtChannel, sizeof(ReadoutPmtChannel)>::is_from(p) ?
00273       boost::singleton_pool<ReadoutPmtChannel, sizeof(ReadoutPmtChannel)>::free(p) :
00274       ::operator delete(p);
00275     }
00276   
00279     static void operator delete ( void* p, void* pObj )
00280     {
00281       ::operator delete (p, pObj);
00282     }
00283   #endif
00284   protected:
00285 
00286   private:
00287 
00288     DayaBay::ReadoutPmtCrate* m_readout;      
00289     int                       m_mode;         
00290     DayaBay::FeeChannelId     m_channelId;    
00291     std::vector<int>          m_adc;          
00292     std::vector<int>          m_pedestal;     
00293     std::vector<int>          m_adcRange;     
00294     std::vector<int>          m_adcCycle;     
00295     std::vector<int>          m_tdc;          
00296     std::vector<int>          m_tdcHitCount;  
00297     std::vector<int>          m_waveAdcHigh;  
00298     std::vector<int>          m_waveAdcLow;   
00299     std::vector<int>          m_waveAdcCycle; 
00300   
00301   }; // class ReadoutPmtChannel
00302 
00303   inline std::ostream& operator<< (std::ostream& str, const ReadoutPmtChannel& obj)
00304   {
00305     return obj.fillStream(str);
00306   }
00307   
00308 } // namespace DayaBay;
00309 
00310 // -----------------------------------------------------------------------------
00311 // end of class
00312 // -----------------------------------------------------------------------------
00313 
00314 // Including forward declarations
00315 #include "ReadoutPmtCrate.h"
00316 
00317 
00318 inline DayaBay::ReadoutPmtChannel::ReadoutPmtChannel(const DayaBay::FeeChannelId& channelId,
00319                                                      DayaBay::ReadoutPmtCrate* readout) 
00320 {
00321 
00322           setChannelId(channelId);
00323                 setReadout(readout);
00324         
00325 }
00326 
00327 inline std::ostream& DayaBay::ReadoutPmtChannel::fillStream(std::ostream& s) const
00328 {
00329   s << "{ " << "readout :       " << m_readout << std::endl
00330             << "mode :  " << m_mode << std::endl
00331             << "channelId :     " << m_channelId << std::endl
00332             << "adc :   " << m_adc << std::endl
00333             << "pedestal :      " << m_pedestal << std::endl
00334             << "adcRange :      " << m_adcRange << std::endl
00335             << "adcCycle :      " << m_adcCycle << std::endl
00336             << "tdc :   " << m_tdc << std::endl
00337             << "tdcHitCount :   " << m_tdcHitCount << std::endl
00338             << "waveAdcHigh :   " << m_waveAdcHigh << std::endl
00339             << "waveAdcLow :    " << m_waveAdcLow << std::endl
00340             << "waveAdcCycle :  " << m_waveAdcCycle << std::endl << " }";
00341   return s;
00342 }
00343 
00344 
00345 inline const DayaBay::ReadoutPmtCrate* DayaBay::ReadoutPmtChannel::readout() const 
00346 {
00347   return m_readout;
00348 }
00349 
00350 inline void DayaBay::ReadoutPmtChannel::setReadout(DayaBay::ReadoutPmtCrate* value) 
00351 {
00352   m_readout = value;
00353 }
00354 
00355 inline int DayaBay::ReadoutPmtChannel::mode() const 
00356 {
00357   return m_mode;
00358 }
00359 
00360 inline void DayaBay::ReadoutPmtChannel::setMode(int value) 
00361 {
00362   m_mode = value;
00363 }
00364 
00365 inline const DayaBay::FeeChannelId& DayaBay::ReadoutPmtChannel::channelId() const 
00366 {
00367   return m_channelId;
00368 }
00369 
00370 inline void DayaBay::ReadoutPmtChannel::setChannelId(const DayaBay::FeeChannelId& value) 
00371 {
00372   m_channelId = value;
00373 }
00374 
00375 inline const std::vector<int>& DayaBay::ReadoutPmtChannel::adc() const 
00376 {
00377   return m_adc;
00378 }
00379 
00380 inline std::vector<int>& DayaBay::ReadoutPmtChannel::adc() 
00381 {
00382   return m_adc;
00383 }
00384 
00385 inline void DayaBay::ReadoutPmtChannel::setAdc(const std::vector<int>& value) 
00386 {
00387   m_adc = value;
00388 }
00389 
00390 inline const std::vector<int>& DayaBay::ReadoutPmtChannel::pedestal() const 
00391 {
00392   return m_pedestal;
00393 }
00394 
00395 inline std::vector<int>& DayaBay::ReadoutPmtChannel::pedestal() 
00396 {
00397   return m_pedestal;
00398 }
00399 
00400 inline void DayaBay::ReadoutPmtChannel::setPedestal(const std::vector<int>& value) 
00401 {
00402   m_pedestal = value;
00403 }
00404 
00405 inline const std::vector<int>& DayaBay::ReadoutPmtChannel::adcRange() const 
00406 {
00407   return m_adcRange;
00408 }
00409 
00410 inline std::vector<int>& DayaBay::ReadoutPmtChannel::adcRange() 
00411 {
00412   return m_adcRange;
00413 }
00414 
00415 inline void DayaBay::ReadoutPmtChannel::setAdcRange(const std::vector<int>& value) 
00416 {
00417   m_adcRange = value;
00418 }
00419 
00420 inline const std::vector<int>& DayaBay::ReadoutPmtChannel::adcCycle() const 
00421 {
00422   return m_adcCycle;
00423 }
00424 
00425 inline std::vector<int>& DayaBay::ReadoutPmtChannel::adcCycle() 
00426 {
00427   return m_adcCycle;
00428 }
00429 
00430 inline void DayaBay::ReadoutPmtChannel::setAdcCycle(const std::vector<int>& value) 
00431 {
00432   m_adcCycle = value;
00433 }
00434 
00435 inline const std::vector<int>& DayaBay::ReadoutPmtChannel::tdc() const 
00436 {
00437   return m_tdc;
00438 }
00439 
00440 inline std::vector<int>& DayaBay::ReadoutPmtChannel::tdc() 
00441 {
00442   return m_tdc;
00443 }
00444 
00445 inline void DayaBay::ReadoutPmtChannel::setTdc(const std::vector<int>& value) 
00446 {
00447   m_tdc = value;
00448 }
00449 
00450 inline const std::vector<int>& DayaBay::ReadoutPmtChannel::tdcHitCount() const 
00451 {
00452   return m_tdcHitCount;
00453 }
00454 
00455 inline std::vector<int>& DayaBay::ReadoutPmtChannel::tdcHitCount() 
00456 {
00457   return m_tdcHitCount;
00458 }
00459 
00460 inline void DayaBay::ReadoutPmtChannel::setTdcHitCount(const std::vector<int>& value) 
00461 {
00462   m_tdcHitCount = value;
00463 }
00464 
00465 inline const std::vector<int>& DayaBay::ReadoutPmtChannel::waveAdcHigh() const 
00466 {
00467   return m_waveAdcHigh;
00468 }
00469 
00470 inline void DayaBay::ReadoutPmtChannel::setWaveAdcHigh(const std::vector<int>& value) 
00471 {
00472   m_waveAdcHigh = value;
00473 }
00474 
00475 inline const std::vector<int>& DayaBay::ReadoutPmtChannel::waveAdcLow() const 
00476 {
00477   return m_waveAdcLow;
00478 }
00479 
00480 inline void DayaBay::ReadoutPmtChannel::setWaveAdcLow(const std::vector<int>& value) 
00481 {
00482   m_waveAdcLow = value;
00483 }
00484 
00485 inline const std::vector<int>& DayaBay::ReadoutPmtChannel::waveAdcCycle() const 
00486 {
00487   return m_waveAdcCycle;
00488 }
00489 
00490 inline void DayaBay::ReadoutPmtChannel::setWaveAdcCycle(const std::vector<int>& value) 
00491 {
00492   m_waveAdcCycle = value;
00493 }
00494 
00495 inline unsigned int DayaBay::ReadoutPmtChannel::size() const 
00496 {
00497 
00498     return m_tdc.size();
00499   
00500 }
00501 
00502 inline int DayaBay::ReadoutPmtChannel::peakAdc(unsigned int index) const 
00503 {
00504 
00505     return index >= m_adc.size() ? 0 : m_adc[index];
00506   
00507 }
00508 
00509 inline int DayaBay::ReadoutPmtChannel::peakAdcRange(unsigned int index) const 
00510 {
00511 
00512     return index >= m_adcRange.size() ? 0 : m_adcRange[index];
00513   
00514 }
00515 
00516 inline int DayaBay::ReadoutPmtChannel::peakAdcCycle(unsigned int index) const 
00517 {
00518 
00519     return index >= m_adcCycle.size() ? 0 : m_adcCycle[index];
00520   
00521 }
00522 
00523 inline int DayaBay::ReadoutPmtChannel::adc(unsigned int index) const 
00524 {
00525 
00526     return peakAdc(index);
00527   
00528 }
00529 
00530 inline int DayaBay::ReadoutPmtChannel::adcRange(unsigned int index) const 
00531 {
00532 
00533     return peakAdcRange(index);
00534   
00535 }
00536 
00537 inline int DayaBay::ReadoutPmtChannel::adcCycle(unsigned int index) const 
00538 {
00539 
00540     return peakAdcCycle(index);
00541   
00542 }
00543 
00544 inline int DayaBay::ReadoutPmtChannel::pedestal(unsigned int index) const 
00545 {
00546 
00547     return index >= m_pedestal.size() ? 0 : m_pedestal[index];
00548   
00549 }
00550 
00551 inline int DayaBay::ReadoutPmtChannel::tdc(unsigned int index) const 
00552 {
00553 
00554     return index >= m_tdc.size() ? 0 : m_tdc[index];
00555   
00556 }
00557 
00558 inline int DayaBay::ReadoutPmtChannel::tdcHitCount(unsigned int index) const 
00559 {
00560 
00561     return index >= m_tdcHitCount.size() ? 0 : m_tdcHitCount[index];
00562   
00563 }
00564 
00565 inline int DayaBay::ReadoutPmtChannel::maxAdcIndex() const 
00566 {
00567 
00568           if( m_adc.empty() ) return 0;
00569           int maxAdcIndex = 0;
00570     int maxAdc = 0;
00571     for(unsigned i=0; i<m_adc.size(); i++) {
00572       if( m_adc[i] > maxAdc ) {
00573         maxAdc = m_adc[i];
00574         maxAdcIndex = i;
00575       }
00576     }
00577           return maxAdcIndex;
00578         
00579 }
00580 
00581 inline int DayaBay::ReadoutPmtChannel::maxAdc() const 
00582 {
00583 
00584           if( m_adc.empty() ) return 0;
00585           return m_adc[maxAdcIndex()];
00586         
00587 }
00588 
00589 inline int DayaBay::ReadoutPmtChannel::sumAdc() const 
00590 {
00591 
00592           if( m_adc.empty() ) return 0;
00593           int sumAdc = 0;
00594     for(unsigned i=0; i<m_adc.size(); i++) {
00595       sumAdc += m_adc[i];
00596     }
00597           return sumAdc;
00598         
00599 }
00600 
00601 inline int DayaBay::ReadoutPmtChannel::earliestTdcIndex() const 
00602 {
00603 
00604           if( m_tdc.empty() ) return 0;
00605           int earliestTdc = 0;
00606     int earliestTdcIndex = 0;
00607           for(unsigned int i=0; i < m_tdc.size(); i++) {
00608       if( i == 0 || m_tdc[i] > earliestTdc ) {
00609         earliestTdc = m_tdc[i];
00610         earliestTdcIndex = i;
00611       }
00612     }
00613           return earliestTdcIndex;
00614         
00615 }
00616 
00617 inline int DayaBay::ReadoutPmtChannel::earliestTdc() const 
00618 {
00619 
00620           if( m_tdc.empty() ) return 0;
00621           return m_tdc[earliestTdcIndex()];
00622         
00623 }
00624 
00625 inline int DayaBay::ReadoutPmtChannel::earliestAdc() const 
00626 {
00627 
00628           if( m_adc.empty() ) return 0;
00629           return m_adc[earliestTdcIndex()];
00630         
00631 }
00632 
00633 inline unsigned int DayaBay::ReadoutPmtChannel::waveSize() const 
00634 {
00635 
00636     return m_waveAdcCycle.size();
00637   
00638 }
00639 
00640 inline int DayaBay::ReadoutPmtChannel::waveAdcCycle(unsigned int index) const 
00641 {
00642 
00643     return index >= m_waveAdcCycle.size() ? 0 : m_waveAdcCycle[index];
00644   
00645 }
00646 
00647 inline int DayaBay::ReadoutPmtChannel::waveAdcHigh(unsigned int index) const 
00648 {
00649 
00650     return index >= m_waveAdcHigh.size() ? 0 : m_waveAdcHigh[index];
00651   
00652 }
00653 
00654 inline int DayaBay::ReadoutPmtChannel::waveAdcLow(unsigned int index) const 
00655 {
00656 
00657     return index >= m_waveAdcLow.size() ? 0 : m_waveAdcLow[index];
00658   
00659 }
00660 
00661 
00662 #endif 
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:24:49 2011 for ReadoutEvent by doxygen 1.4.7