CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
edmNew::DetSet< T > Class Template Reference

#include <DetSetNew.h>

Public Types

typedef data_type const * const_iterator
 
typedef DetSetVector< TContainer
 
typedef T data_type
 
typedef std::vector< data_typeDataContainer
 
typedef unsigned int id_type
 
typedef data_typeiterator
 
typedef id_type key_type
 
typedef unsigned int size_type
 
typedef data_type value_type
 

Public Member Functions

iterator begin ()
 
const_iterator begin () const
 
id_type detId () const
 
 DetSet ()
 
 DetSet (id_type i, DataContainer const &idata, size_type ioffset, size_type isize)
 
 DetSet (Container const &icont, typename Container::Item const &item, bool update)
 
bool empty () const
 
iterator end ()
 
const_iterator end () const
 
id_type id () const
 
bool isValid () const
 
unsigned int makeKeyOf (const_iterator ci) const
 
template<typename HandleT >
edm::Ref< typename HandleT::element_type, typename HandleT::element_type::value_type::value_type > makeRefTo (HandleT const &handle, const_iterator ci) const
 
int offset () const
 
data_typeoperator[] (size_type i)
 
data_type operator[] (size_type i) const
 
void set (Container const &icont, typename Container::Item const &item, bool update=true)
 
size_type size () const
 

Private Member Functions

DataContainer const & container () const
 
data_type const * data () const
 
data_typedata ()
 

Private Attributes

DataContainer const * m_data
 
id_type m_id
 
int m_offset
 
size_type m_size
 

Detailed Description

template<typename T>
class edmNew::DetSet< T >

Definition at line 21 of file DetSetNew.h.

Member Typedef Documentation

template<typename T>
typedef data_type const* edmNew::DetSet< T >::const_iterator

Definition at line 30 of file DetSetNew.h.

template<typename T>
typedef DetSetVector<T> edmNew::DetSet< T >::Container

Definition at line 23 of file DetSetNew.h.

template<typename T>
typedef T edmNew::DetSet< T >::data_type

Definition at line 26 of file DetSetNew.h.

template<typename T>
typedef std::vector<data_type> edmNew::DetSet< T >::DataContainer

Definition at line 28 of file DetSetNew.h.

template<typename T>
typedef unsigned int edmNew::DetSet< T >::id_type

Definition at line 25 of file DetSetNew.h.

template<typename T>
typedef data_type* edmNew::DetSet< T >::iterator

Definition at line 29 of file DetSetNew.h.

template<typename T>
typedef id_type edmNew::DetSet< T >::key_type

Definition at line 33 of file DetSetNew.h.

template<typename T>
typedef unsigned int edmNew::DetSet< T >::size_type

Definition at line 24 of file DetSetNew.h.

template<typename T>
typedef data_type edmNew::DetSet< T >::value_type

Definition at line 32 of file DetSetNew.h.

Constructor & Destructor Documentation

template<typename T>
edmNew::DetSet< T >::DetSet ( )
inline

Definition at line 37 of file DetSetNew.h.

37 : m_id(0), m_data(0), m_offset(-1), m_size(0){}
size_type m_size
Definition: DetSetNew.h:120
DataContainer const * m_data
Definition: DetSetNew.h:118
id_type m_id
Definition: DetSetNew.h:117
template<typename T>
edmNew::DetSet< T >::DetSet ( id_type  i,
DataContainer const &  idata,
size_type  ioffset,
size_type  isize 
)
inline

Definition at line 39 of file DetSetNew.h.

39  :
40  m_id(i), m_data(&idata), m_offset(ioffset), m_size(isize) {}
size_type m_size
Definition: DetSetNew.h:120
DataContainer const * m_data
Definition: DetSetNew.h:118
id_type m_id
Definition: DetSetNew.h:117
template<typename T>
edmNew::DetSet< T >::DetSet ( Container const &  icont,
typename Container::Item const &  item,
bool  update 
)
inline

Definition at line 43 of file DetSetNew.h.

References update.

44  :
45  m_id(0), m_data(0), m_offset(-1), m_size(0){
46  set(icont,item, update);
47  }
size_type m_size
Definition: DetSetNew.h:120
DataContainer const * m_data
Definition: DetSetNew.h:118
id_type m_id
Definition: DetSetNew.h:117
#define update(a, b)

Member Function Documentation

template<typename T>
iterator edmNew::DetSet< T >::begin ( void  )
inline
template<typename T>
const_iterator edmNew::DetSet< T >::begin ( void  ) const
inline

Definition at line 73 of file DetSetNew.h.

References edmNew::DetSet< T >::data().

73 { return data();}
data_type const * data() const
Definition: DetSetNew.h:107
template<typename T>
DataContainer const& edmNew::DetSet< T >::container ( ) const
inlineprivate

Definition at line 105 of file DetSetNew.h.

References edmNew::DetSet< T >::m_data.

Referenced by edmNew::DetSet< T >::makeKeyOf(), and edmNew::DetSet< T >::makeRefTo().

105 { return *m_data; }
DataContainer const * m_data
Definition: DetSetNew.h:118
template<typename T>
data_type const* edmNew::DetSet< T >::data ( ) const
inlineprivate

Definition at line 107 of file DetSetNew.h.

References edmNew::DetSet< T >::m_data, edmNew::DetSet< T >::m_offset, and edmNew::DetSet< T >::m_size.

Referenced by edmNew::DetSet< T >::begin(), edmNew::DetSet< T >::end(), and edmNew::DetSet< T >::operator[]().

107  {
108  if(m_offset|m_size) assert(m_data);
109  return m_data ? (&((*m_data)[m_offset])) : 0;
110  }
size_type m_size
Definition: DetSetNew.h:120
DataContainer const * m_data
Definition: DetSetNew.h:118
template<typename T>
data_type* edmNew::DetSet< T >::data ( )
inlineprivate

Definition at line 112 of file DetSetNew.h.

References edmNew::DetSet< T >::m_data, and edmNew::DetSet< T >::m_offset.

112  {
113  assert(m_data);
114  return const_cast<data_type *>(&((*m_data)[m_offset]));
115  }
DataContainer const * m_data
Definition: DetSetNew.h:118
template<typename T>
id_type edmNew::DetSet< T >::detId ( ) const
inline
template<typename T>
bool edmNew::DetSet< T >::empty ( ) const
inline
template<typename T>
iterator edmNew::DetSet< T >::end ( void  )
inline
template<typename T>
const_iterator edmNew::DetSet< T >::end ( void  ) const
inline

Definition at line 76 of file DetSetNew.h.

References edmNew::DetSet< T >::data(), and edmNew::DetSet< T >::m_size.

Referenced by Types.LuminosityBlockRange::cppID(), and Types.EventRange::cppID().

76 { return data()+m_size;}
size_type m_size
Definition: DetSetNew.h:120
data_type const * data() const
Definition: DetSetNew.h:107
template<typename T>
id_type edmNew::DetSet< T >::id ( ) const
inline
template<typename T>
bool edmNew::DetSet< T >::isValid ( void  ) const
inline
template<typename T>
unsigned int edmNew::DetSet< T >::makeKeyOf ( const_iterator  ci) const
inline

Definition at line 99 of file DetSetNew.h.

References edmNew::DetSet< T >::container().

99  {
100  return ci - &(container().front());
101  }
DataContainer const & container() const
Definition: DetSetNew.h:105
template<typename T>
template<typename HandleT >
edm::Ref<typename HandleT::element_type, typename HandleT::element_type::value_type::value_type> edmNew::DetSet< T >::makeRefTo ( HandleT const &  handle,
const_iterator  ci 
) const
inline
template<typename T>
int edmNew::DetSet< T >::offset ( ) const
inline

Definition at line 78 of file DetSetNew.h.

References edmNew::DetSet< T >::m_offset.

78 {return m_offset;}
template<typename T>
data_type& edmNew::DetSet< T >::operator[] ( size_type  i)
inline

Definition at line 57 of file DetSetNew.h.

References edmNew::DetSet< T >::data(), and mps_fire::i.

57  {
58  return data()[i];
59  }
data_type const * data() const
Definition: DetSetNew.h:107
template<typename T>
data_type edmNew::DetSet< T >::operator[] ( size_type  i) const
inline

Definition at line 62 of file DetSetNew.h.

References edmNew::DetSet< T >::data(), and mps_fire::i.

62  {
63  return data()[i];
64  }
data_type const * data() const
Definition: DetSetNew.h:107
template<typename T>
void edmNew::DetSet< T >::set ( Container const &  icont,
typename Container::Item const &  item,
bool  update = true 
)
inline

Definition at line 672 of file DetSetVectorNew.h.

References edmNew::DetSetVector< T >::data(), edmNew::dstvdetails::DetSetVectorTrans::Item::id, edmNew::dstvdetails::DetSetVectorTrans::Item::initializing(), edmNew::dstvdetails::DetSetVectorTrans::Item::offset, edmNew::dstvdetails::DetSetVectorTrans::Item::size, and edmNew::DetSetVector< T >::update().

Referenced by edmNew::DetSetVector< T >::IterHelp::operator()().

673  {
674  // if an item is being updated we wait
675  if (update) icont.update(item);
676  while(item.initializing()) nanosleep(0,0);
677  m_data=&icont.data();
678  m_id=item.id;
679  m_offset = item.offset;
680  m_size=item.size;
681  }
size_type m_size
Definition: DetSetNew.h:120
DataContainer const * m_data
Definition: DetSetNew.h:118
id_type m_id
Definition: DetSetNew.h:117
#define update(a, b)
template<typename T>
size_type edmNew::DetSet< T >::size ( void  ) const
inline

Member Data Documentation

template<typename T>
DataContainer const* edmNew::DetSet< T >::m_data
private

Definition at line 118 of file DetSetNew.h.

Referenced by edmNew::DetSet< T >::container(), and edmNew::DetSet< T >::data().

template<typename T>
id_type edmNew::DetSet< T >::m_id
private

Definition at line 117 of file DetSetNew.h.

Referenced by edmNew::DetSet< T >::detId(), and edmNew::DetSet< T >::id().

template<typename T>
int edmNew::DetSet< T >::m_offset
private
template<typename T>
size_type edmNew::DetSet< T >::m_size
private