ATLAS Offline Software
Loading...
Searching...
No Matches
SGTileRawChannelGetterTool.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
5/*
6 * File: TileRawChannelGetterTool.cxx
7 * Author: Stephen Cole <scole@niu.edu>
8 *
9 * Created on March 1, 2011, 9:28 AM
10 */
11
14
15namespace D3PD{
17 const std::string& name,
18 const IInterface* parent):
19 Base(type,name,parent) {
20 }
21
22
25
28 return StatusCode::SUCCESS;
29 }
30
31 const std::type_info& SGTileRawChannelGetterTool::typeinfo() const {
32 return typeid(TileRawChannelContainer);
33 }
34
35 const std::type_info& SGTileRawChannelGetterTool::elementTypeinfo() const {
36 return typeid(TileRawChannel);
37 }
38
39 size_t SGTileRawChannelGetterTool::sizeHint(bool allowMissing){
40 const TileRawChannelContainer* tdc=get(allowMissing);
41 if(!tdc)return 0;
42 const TileRawChannelCollection* col=*(tdc->begin());
43 size_t rval=0;
44 size_t digSize=sizeof(TileRawChannel);
46 for(it=col->begin();it<col->end();++it)++rval;
47 return rval*digSize;
48 }
49
50 StatusCode SGTileRawChannelGetterTool::reset(bool allowMissing){
51 const TileRawChannelContainer* tdc=get(allowMissing);
52 if(!tdc){
55 return StatusCode::FAILURE;
56 }
57 m_evtItr=tdc->begin();
58 m_evtEnd=tdc->end();
59 if(m_evtItr==m_evtEnd){
61 return StatusCode::SUCCESS;
62 }
64 m_digItr=col->begin();
65 m_digEnd=col->end();
66
67 return StatusCode::SUCCESS;
68 }
69
71 const TileRawChannel* tileR=0;
72 const TileRawChannelCollection* col=0;
73 do{
74 if(m_evtItr==m_evtEnd)return 0;
75 if(m_digItr==m_digEnd){
76 tileR=0;
77 ++m_evtItr;
78 if(m_evtItr!=m_evtEnd){
79 col=*m_evtItr;
80 m_digItr=col->begin();
81 m_digEnd=col->end();
82 }
83 }
84 else {
85 tileR=*m_digItr;
86 ++m_digItr;
87 }
88 }while(!tileR);
89
90 // if(m_evtItr==m_evtEnd)return 0;
91 // col=*m_evtItr;
92 // ++m_evtItr;
93
94 return tileR;
95 }
96
97}
#define CHECK(...)
Evaluate an expression and check for errors.
virtual const TileRawChannelContainer * get(bool allowMissing=false)
D3PD::SGCollectionGetterTool< TileRawChannelContainer > Base
const void * nextUntyped()
Return a pointer to the next element in the collection.
size_t sizeHint(bool allowMissing=false)
Return an estimate of the number of elements in the iteration.
TileRawChannelCollection::const_iterator m_digItr
SGTileRawChannelGetterTool(const std::string &type, const std::string &name, const IInterface *parent)
Standard Gaudi tool constructor.
StatusCode initialize()
Standard Gaudi initialize method.
TileRawChannelContainer::const_iterator m_evtEnd
TileRawChannelContainer::const_iterator m_evtItr
TileRawChannelCollection::const_iterator m_digEnd
StatusCode reset(bool allowMissing=false)
Reset the iteration to the start of the collection.
const std::type_info & elementTypeinfo() const
Return the element type of the collection.
const std::type_info & typeinfo() const
Return the type of object retrieved by this tool.
DataModel_detail::const_iterator< DataVector > const_iterator
Standard const_iterator.
Definition DataVector.h:838
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
const_iterator end() const
return const_iterator for end of container
const_iterator begin() const
return const_iterator for first entry
Block filler tool for noisy FEB information.