AliPhysics  8bb951a (8bb951a)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliParticleContainer::accept_iterator Class Reference

stl iterator over accepted clusters More...

#include <AliParticleContainer.h>

Inheritance diagram for AliParticleContainer::accept_iterator:

Public Member Functions

 accept_iterator (const AliParticleContainer *cont, int startpos, bool forward=true)
 
 accept_iterator (const accept_iterator &other)
 
virtual ~accept_iterator ()
 
accept_iteratoroperator= (const accept_iterator &other)
 
bool operator!= (const accept_iterator &other) const
 
accept_iteratoroperator++ ()
 
accept_iterator operator++ (int)
 
accept_iteratoroperator-- ()
 
accept_iterator operator-- (int)
 
AliVParticle * operator* () const
 

Private Member Functions

 accept_iterator ()
 

Private Attributes

const AliParticleContainerfkContainer
 Container iterated over. More...
 
TArrayI fAcceptIndices
 Indices of accepted clusters. More...
 
int fCurrentPos
 Current position inside the container. More...
 
bool fForward
 Direction, expressed in forward direction. More...
 

Detailed Description

stl iterator over accepted clusters

Author
Markus Fasel marku.nosp@m.s.fa.nosp@m.sel@c.nosp@m.ern..nosp@m.ch, Lawrence Berkeley National Laboratory
Date
March 16, 2016

Bi-directional iterator over all accepted particles in the array. The iterator is used in the standard way a c++ iterator is used. The container is responsible creating it. Afterwards one uses the prefix or postfix increment or decrement operator, depending on the direction of the iteration.

for(AliParticleContainer::iterator it = cont.accept_begin(); it != cont.accept_end(); ++cont){
std::cout << "Particle pt: " << (*it)->Pt() std::endl; // do something with the particle inside
}

As the postfix operator needs to perform a copy of the iterator, the prefix operator will have a better performance and should be preferred.

Note: This class is using a list of accepted clusters in the backend. This list is copied in the copy constructor and the assignment operator. Can be done in a more performant way using c++11 shared_ptr.

Definition at line 56 of file AliParticleContainer.h.

Constructor & Destructor Documentation

AliParticleContainer::accept_iterator::accept_iterator ( const AliParticleContainer cont,
int  start,
bool  forward = true 
)

Content of accept_iterator Constructor, inializing the iterator with

  • Particle container to iterate over
  • Starting position for the iteration
  • Direction of the iteration (default: forward) This constructor also builds a lookup table of accepted clusters.

Note: Iterators should be created by the object it iterates over and not by hand.

Parameters
[in]contContainer to be iterated over (not modified)
[in]startStart position for the iteration
[in]forwardIf true iterator is a forward iterator

Definition at line 510 of file AliParticleContainer.cxx.

AliParticleContainer::accept_iterator::accept_iterator ( const accept_iterator other)

Copy constructor. For the underlying container the pointer is copied.

Parameters
[in]otherReference for the copy

Definition at line 534 of file AliParticleContainer.cxx.

virtual AliParticleContainer::accept_iterator::~accept_iterator ( )
inlinevirtual

Definition at line 63 of file AliParticleContainer.h.

AliParticleContainer::accept_iterator::accept_iterator ( )
private

Member Function Documentation

bool AliParticleContainer::accept_iterator::operator!= ( const accept_iterator other) const

Comparison operator. The comparison is performed based on the current position of the iterator.

Parameters
[in]otherObject to compare to.
Returns
If true the positions of the two iterators match

Definition at line 564 of file AliParticleContainer.cxx.

AliVParticle * AliParticleContainer::accept_iterator::operator* ( ) const

Dereferencing operator. Providing access to the accepted cluster at the current position.

Returns
Accepted cluster at the given position (NULL if iterator is out of range)

Definition at line 625 of file AliParticleContainer.cxx.

AliParticleContainer::accept_iterator & AliParticleContainer::accept_iterator::operator++ ( )

Incrementation prefix operator. Incrementing/Decrementing the postion of the iterator in the array based on the direction.

Returns
State of the iterator (reference) after iteration.

Definition at line 573 of file AliParticleContainer.cxx.

AliParticleContainer::accept_iterator AliParticleContainer::accept_iterator::operator++ ( int  )

Incrementation postfix operator. Incrementing/Decrementing the postion of the iterator in the array based on the direction.

Parameters
[in]Notused, only defining the operator as postfix operator
Returns
State of the iterator (copy) before iteration

Definition at line 588 of file AliParticleContainer.cxx.

AliParticleContainer::accept_iterator & AliParticleContainer::accept_iterator::operator-- ( )

Decrementation prefix operator. Decrementing/Incrementing the postion of the iterator in the array based on the direction.

Returns
State of the iterator (reference) after iteration.

Definition at line 599 of file AliParticleContainer.cxx.

AliParticleContainer::accept_iterator AliParticleContainer::accept_iterator::operator-- ( int  )

Decrementation postfix operator. Decrementing/Incrementing the postion of the iterator in the array based on the direction.

Parameters
[in]Notused, only defining the operator as postfix operator
Returns
State of the iterator (copy) before iteration

Definition at line 614 of file AliParticleContainer.cxx.

AliParticleContainer::accept_iterator & AliParticleContainer::accept_iterator::operator= ( const accept_iterator other)

Assignmet operator, copying properties of the reference iterator

Parameters
[in]otherReference for the assignment
Returns
This object after the assingment

Definition at line 548 of file AliParticleContainer.cxx.

Member Data Documentation

TArrayI AliParticleContainer::accept_iterator::fAcceptIndices
private

Indices of accepted clusters.

Definition at line 78 of file AliParticleContainer.h.

Referenced by accept_iterator(), and operator=().

int AliParticleContainer::accept_iterator::fCurrentPos
private

Current position inside the container.

Definition at line 79 of file AliParticleContainer.h.

Referenced by operator!=(), and operator=().

bool AliParticleContainer::accept_iterator::fForward
private

Direction, expressed in forward direction.

Definition at line 80 of file AliParticleContainer.h.

Referenced by operator=().

const AliParticleContainer* AliParticleContainer::accept_iterator::fkContainer
private

Container iterated over.

Definition at line 77 of file AliParticleContainer.h.

Referenced by accept_iterator(), and operator=().


The documentation for this class was generated from the following files: