CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_1/src/CalibFormats/CaloObjects/interface/CaloTSamplesBase.h

Go to the documentation of this file.
00001 #ifndef CALOTSAMPLESBASE_H
00002 #define CALOTSAMPLESBASE_H 1
00003 
00004 #include <ostream>
00005 #include "DataFormats/DetId/interface/DetId.h"
00006 #include <assert.h>
00007 
00008 template <class Ttype> 
00009 class CaloTSamplesBase 
00010 {
00011    public:
00012 
00013       CaloTSamplesBase<Ttype>( Ttype*   mydata, 
00014                                uint32_t size    )  ;
00015 
00016       CaloTSamplesBase<Ttype>( const CaloTSamplesBase<Ttype>& cs )  ;
00017 
00018       CaloTSamplesBase<Ttype>( Ttype*       mydata , 
00019                                uint32_t     length ,
00020                                const DetId& id     , 
00021                                uint32_t     size   ,
00022                                uint32_t     pre      ) ;
00023 
00024       virtual ~CaloTSamplesBase<Ttype>() ;
00025 
00026       void setZero() ;
00027 
00028       DetId    id()   const ;
00029       uint32_t size() const ;
00030       uint32_t pre()  const ;
00031       bool     zero() const ;
00032 
00033       Ttype&       operator[]( uint32_t i ) ;
00034 
00035       const Ttype& operator[]( uint32_t i ) const ;
00036 
00037       CaloTSamplesBase<Ttype>& operator=( const CaloTSamplesBase<Ttype>& cs ) ;
00038 
00039       CaloTSamplesBase<Ttype>& operator*=( Ttype value ) ;
00040 
00041       CaloTSamplesBase<Ttype>& operator+=( Ttype value ) ;
00042 
00043       CaloTSamplesBase<Ttype>& operator+=( const CaloTSamplesBase<Ttype>& cs ) ;
00044 
00045       virtual uint32_t capacity() const = 0 ;
00046 
00047    private:
00048 
00049       virtual Ttype* data( uint32_t i ) = 0 ;
00050       virtual const Ttype* cdata( uint32_t i ) const = 0 ;
00051 
00052       DetId    m_id   ;
00053       uint32_t m_size ;
00054       uint32_t m_pre  ;
00055 } ;
00056 
00057 template <class Ttype>
00058 std::ostream& operator<<( std::ostream& s, 
00059                           const CaloTSamplesBase<Ttype>& sam ) ;
00060 
00061 #endif