1 #ifndef cond_SmallWORMDict_h 2 #define cond_SmallWORMDict_h 8 #include <boost/iterator_adaptors.hpp> 9 #include <boost/iterator/transform_iterator.hpp> 10 #include <boost/iterator/counting_iterator.hpp> 14 namespace SmallWORMDict {
34 Frame(
char const*
ib,
unsigned int il,
unsigned int iind) :
b(ib),
l(il), ind(iind) {}
46 int k = (0 ==
i) ? 0 :
v->m_index[i - 1];
47 return frame(&
v->m_data[k],
v->m_index[i] - k, i);
50 Frame const&
frame(
char const*
b,
unsigned int l,
unsigned int ind)
const {
64 typedef boost::transform_iterator<IterHelp, boost::counting_iterator<int> >
const_iterator;
67 return boost::make_transform_iterator(boost::counting_iterator<int>(0),
IterHelp(*
this));
70 const_iterator
end()
const {
71 return boost::make_transform_iterator(boost::counting_iterator<int>(
size()),
IterHelp(*
this));
75 int k = (0 ==
i) ? 0 : m_index[i - 1];
76 return Frame(&m_data[k], m_index[i] - k, i);
81 const_iterator
find(
char const* s)
const;
84 explicit SmallWORMDict(std::vector<std::string>
const& idict);
89 size_t index(
char const* s)
const;
const_iterator end() const
std::vector< unsigned int > m_index
const_iterator begin() const
result_type const & operator()(int i) const
Frame operator[](int i) const
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Frame const & frame(char const *b, unsigned int l, unsigned int ind) const
std::vector< char > m_data
IterHelp(SmallWORMDict const &iv)
boost::transform_iterator< IterHelp, boost::counting_iterator< int > > const_iterator
#define COND_SERIALIZABLE
Frame(char const *ib, unsigned int il, unsigned int iind)