ATLAS Offline Software
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
jet::JetCellAccessor::const_iterator Class Reference

#include <JetCellAccessor.h>

Collaboration diagram for jet::JetCellAccessor::const_iterator:

Public Member Functions

const CaloCelloperator* () const
 
const CaloCelloperator-> () const
 
weight_t weight () const
 Accessor for weight associated to this cell. More...
 
unsigned index () const
 Accessor for the index of the cell in the original CaloCellContainer. More...
 
const_iteratoroperator++ ()
 
const_iteratoroperator-- ()
 
const_iteratoroperator++ (int)
 
const_iteratoroperator-- (int)
 
bool operator== (const const_iterator &b) const
 
bool operator!= (const const_iterator &b) const
 

Protected Member Functions

 const_iterator (constit_iterator constIt, constit_iterator constItE, bool endIt=false)
 
void prefetchCell ()
 
void nextConstituent ()
 
bool setCellIteratorFromConstit (const xAOD::IParticle *p)
 

Protected Attributes

cell_iterator m_cellIt
 
cell_iterator m_endCellItinConstit
 
constit_iterator m_constitIt
 
constit_iterator m_constitItE
 

Friends

class JetCellAccessor
 

Detailed Description

Definition at line 43 of file JetCellAccessor.h.

Constructor & Destructor Documentation

◆ const_iterator()

jet::JetCellAccessor::const_iterator::const_iterator ( constit_iterator  constIt,
constit_iterator  constItE,
bool  endIt = false 
)
protected

Definition at line 17 of file JetCellAccessor.cxx.

17  :
18  m_cellIt( nullptr, voidCont.begin() ) ,
19  m_endCellItinConstit( nullptr, voidCont.end()) ,
20  m_constitIt(constIt),
21  m_constitItE(constItE) {
22 
23  if( constItE == constIt ) return;
24 
25  if( ! endIt ) {
26  // setup the iterator
27  --m_constitIt;
28  nextConstituent();
29  //if (m_cellIt!=m_endCellItinConstit) std::cout << " ---> building begin cellIT" << (*m_cellIt)<<std::endl;
30 
31  } else {
32  // Build an end iterator by finding a valid end cell iterator:
33  bool foundCells = false;
34  // start from the last constituent, loop until one valid is found.
35  for(--constItE ; constIt != constItE; --constItE) {
36  foundCells =setCellIteratorFromConstit(**constItE);
37  if( foundCells) break;
38  }
39  if ( ! foundCells ) foundCells = setCellIteratorFromConstit(**constIt);
40  if( foundCells) m_cellIt = m_endCellItinConstit;
41  // else no cell in this jet : cell iterators are already positionned to a void container.
42  }
43 
44  }

Member Function Documentation

◆ index()

unsigned jet::JetCellAccessor::const_iterator::index ( ) const
inline

Accessor for the index of the cell in the original CaloCellContainer.

Definition at line 58 of file JetCellAccessor.h.

58 {return m_cellIt.index();}

◆ nextConstituent()

void jet::JetCellAccessor::const_iterator::nextConstituent ( )
protected

Definition at line 61 of file JetCellAccessor.cxx.

61  {
62  ++m_constitIt;
63  if(m_constitIt == m_constitItE) return;
65  // if (m_cellIt!=m_endCellItinConstit) std::cout << " nextConstituent cell= " << (*m_cellIt)<<std::endl;
66 
67  // Use prefetching technique to speed up the loop over cells.
68  for (auto it=m_cellIt; it !=m_endCellItinConstit; ++it)
70 
72  } else nextConstituent();
73  }

◆ operator!=()

Definition at line 65 of file JetCellAccessor.h.

65 { return m_cellIt!=b.m_cellIt;}

◆ operator*()

const CaloCell* jet::JetCellAccessor::const_iterator::operator* ( ) const
inline

Definition at line 49 of file JetCellAccessor.h.

49 {return (*m_cellIt);}

◆ operator++() [1/2]

const_iterator& jet::JetCellAccessor::const_iterator::operator++ ( )
inline

Definition at line 60 of file JetCellAccessor.h.

60 {++m_cellIt; ; prefetchCell() ; return *this;}

◆ operator++() [2/2]

const_iterator& jet::JetCellAccessor::const_iterator::operator++ ( int  )
inline

Definition at line 62 of file JetCellAccessor.h.

62 {++m_cellIt; prefetchCell() ; return *this;}

◆ operator--() [1/2]

const_iterator& jet::JetCellAccessor::const_iterator::operator-- ( )
inline

Definition at line 61 of file JetCellAccessor.h.

61 {--m_cellIt; prefetchCell() ; return *this;}

◆ operator--() [2/2]

const_iterator& jet::JetCellAccessor::const_iterator::operator-- ( int  )
inline

Definition at line 63 of file JetCellAccessor.h.

63 {--m_cellIt; prefetchCell() ; return *this;}

◆ operator->()

const CaloCell* jet::JetCellAccessor::const_iterator::operator-> ( ) const
inline

Definition at line 50 of file JetCellAccessor.h.

50 {return (*m_cellIt);}

◆ operator==()

bool jet::JetCellAccessor::const_iterator::operator== ( const const_iterator b) const
inline

Definition at line 64 of file JetCellAccessor.h.

64 { return m_cellIt==b.m_cellIt;}

◆ prefetchCell()

void jet::JetCellAccessor::const_iterator::prefetchCell ( )
inlineprotected

Definition at line 69 of file JetCellAccessor.h.

◆ setCellIteratorFromConstit()

bool jet::JetCellAccessor::const_iterator::setCellIteratorFromConstit ( const xAOD::IParticle p)
protected

Definition at line 46 of file JetCellAccessor.cxx.

46  {
47  // return true if the cell iterator could be set from the current constituent
48 
49  if( part->type() == xAOD::Type::CaloCluster ){
50  const auto *cellLink = static_cast<const xAOD::CaloCluster*>(part)->getCellLinks();
51  if( cellLink == nullptr) return false;
52  m_cellIt = cellLink->begin();
53  m_endCellItinConstit = cellLink->end();
54 
55  return true;
56  }
57 
58  return false;
59  }

◆ weight()

weight_t jet::JetCellAccessor::const_iterator::weight ( ) const
inline

Accessor for weight associated to this cell.

Definition at line 54 of file JetCellAccessor.h.

54 {return m_cellIt.weight();}

Friends And Related Function Documentation

◆ JetCellAccessor

friend class JetCellAccessor
friend

Definition at line 44 of file JetCellAccessor.h.

Member Data Documentation

◆ m_cellIt

cell_iterator jet::JetCellAccessor::const_iterator::m_cellIt
protected

Definition at line 75 of file JetCellAccessor.h.

◆ m_constitIt

constit_iterator jet::JetCellAccessor::const_iterator::m_constitIt
protected

Definition at line 77 of file JetCellAccessor.h.

◆ m_constitItE

constit_iterator jet::JetCellAccessor::const_iterator::m_constitItE
protected

Definition at line 78 of file JetCellAccessor.h.

◆ m_endCellItinConstit

cell_iterator jet::JetCellAccessor::const_iterator::m_endCellItinConstit
protected

Definition at line 76 of file JetCellAccessor.h.


The documentation for this class was generated from the following files:
LArG4FSStartPointFilter.part
part
Definition: LArG4FSStartPointFilter.py:21
jet::JetCellAccessor::const_iterator::m_endCellItinConstit
cell_iterator m_endCellItinConstit
Definition: JetCellAccessor.h:76
jet::JetCellAccessor::const_iterator::m_constitItE
constit_iterator m_constitItE
Definition: JetCellAccessor.h:78
jet::JetCellAccessor::const_iterator::setCellIteratorFromConstit
bool setCellIteratorFromConstit(const xAOD::IParticle *p)
Definition: JetCellAccessor.cxx:46
skel.it
it
Definition: skel.GENtoEVGEN.py:423
xAOD::CaloCluster
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
Definition: Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloCluster.h:19
xAOD::CaloCluster_v1
Description of a calorimeter cluster.
Definition: CaloCluster_v1.h:59
jet::JetCellAccessor::const_iterator::nextConstituent
void nextConstituent()
Definition: JetCellAccessor.cxx:61
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
jet::JetCellAccessor::const_iterator::m_cellIt
cell_iterator m_cellIt
Definition: JetCellAccessor.h:75
CxxUtils::prefetchObj
void prefetchObj(const T *ptr)
Generic prefetch of the object of specific types (sizes).
Definition: prefetch.h:108
jet::JetCellAccessor::const_iterator::prefetchCell
void prefetchCell()
Definition: JetCellAccessor.h:69
jet::JetCellAccessor::const_iterator::m_constitIt
constit_iterator m_constitIt
Definition: JetCellAccessor.h:77
CaloPrefetch::nextDDE
void nextDDE(Iter iter, Iter endIter)
Prefetch next CaloDDE.
Definition: CaloPrefetch.h:47