emcTowerContainerT< T > Class Template Reference
[Tower calibration]

#include <emcTowerContainerT.h>

Inherits emcTowerContainer.

Inheritance diagram for emcTowerContainerT< T >:

Inheritance graph
[legend]
List of all members.

Detailed Description

template<class T>
class emcTowerContainerT< T >

(Template) Implementation of emcTowerContainer based on TClonesArray.

Using this class creating a new container (which is usually driven by the need to have a new version of the content class emcTowerContent) is very easy. Assuming you want to define version 123 (!) make a new emcTowerContainerv123.h file containing the following lines, defining a typedef using the template :

#ifndef __EMCTOWERCONTAINERV123_H__
#define __EMCTOWERCONTAINERV123_H__

#ifndef __EMCTOWERCONTAINERT_H__
#include "emcTowerContainerT.h"
#endif
#ifndef __EMCTOWERCONTENTV123_H__
#include "emcTowerContentv123.h"
#endif

typedef emcTowerContainerT<emcTowerContentv123> emcTowerContainerv123;

#endif

And that's it !

Author:
Laurent Aphecetche

Definition at line 39 of file emcTowerContainerT.h.

Public Member Functions

 emcTowerContainerT ()
 emcTowerContainerT (unsigned int defaultsize)
 emcTowerContainerT (const emcTowerContainerT &)
emcTowerContainerToperator= (const emcTowerContainerT &)
emcTowerContainerTclone (void) const
 Make a copy of this object.
emcTowerContainerTcreate (void) const
 Make an empty copy of this object (i.e. copy only the type).
virtual ~emcTowerContainerT ()
unsigned int capacity (void) const
 the size you'll never exceed for this object.
T * addTower (unsigned int i)
 Add a new (using default ctor) tower.
T * addTower (unsigned int i, const emcTowerContent &)
 Add a new (using copy ctor) tower.
T * findTower (int towerID) const
 Return a given tower (or 0 if not found) by its towerid.
T * getTower (unsigned int i) const
 Return a given tower (or 0 if not found) by its index.
void identify (std::ostream &os=std::cout) const
int isValid () const
bool removeTower (unsigned int i)
void Reset ()
bool resize (unsigned int newsize)
 Set a new size for this container. Old data are lost.
unsigned int size (void) const
 the actual size of the object.

Protected Attributes

TClonesArray * fEmcTowers

Private Member Functions

void allocate (unsigned int thesize)
void copy (emcTowerContainerT &dest) const
bool expand (unsigned int)
bool expand_for (unsigned int)

Private Attributes

std::map< int, int > fTowerIdToIndex
bool fTowerIdToIndexIsUpToDate

Static Private Attributes

static const unsigned int fgDefaultSize = 1000
static const unsigned int fgMaxSize = 24768


Constructor & Destructor Documentation

template<class T>
emcTowerContainerT< T >::emcTowerContainerT  ) 
 

Definition at line 115 of file emcTowerContainerT.h.

References emcTowerContainerT< T >::allocate(), and emcTowerContainerT< T >::fgDefaultSize.

template<class T>
emcTowerContainerT< T >::emcTowerContainerT unsigned int  defaultsize  ) 
 

Definition at line 124 of file emcTowerContainerT.h.

References emcTowerContainerT< T >::allocate().

template<class T>
emcTowerContainerT< T >::emcTowerContainerT const emcTowerContainerT< T > &   ) 
 

Definition at line 134 of file emcTowerContainerT.h.

References emcTowerContainerT< T >::copy().

template<class T>
emcTowerContainerT< T >::~emcTowerContainerT  )  [virtual]
 

Definition at line 156 of file emcTowerContainerT.h.

References emcTowerContainerT< T >::fEmcTowers.


Member Function Documentation

template<class T>
T * emcTowerContainerT< T >::addTower unsigned int  i,
const emcTowerContent t
[virtual]
 

Add a new (using copy ctor) tower.

t must be of a compatible type, otherwise this will return 0.

Reimplemented from emcTowerContainer.

Definition at line 184 of file emcTowerContainerT.h.

References emcTowerContainerT< T >::capacity(), emcTowerContainerT< T >::expand_for(), emcTowerContainerT< T >::fTowerIdToIndexIsUpToDate, and test().

template<class T>
T * emcTowerContainerT< T >::addTower unsigned int  i  )  [virtual]
 

Add a new (using default ctor) tower.

Reimplemented from emcTowerContainer.

Definition at line 164 of file emcTowerContainerT.h.

References emcTowerContainerT< T >::capacity(), emcTowerContainerT< T >::expand_for(), and emcTowerContainerT< T >::fTowerIdToIndexIsUpToDate.

Referenced by emcTowerContainerT< T >::copy().

template<class T>
void emcTowerContainerT< T >::allocate unsigned int  thesize  )  [private]
 

Definition at line 213 of file emcTowerContainerT.h.

References emcTowerContainerT< T >::fEmcTowers, and emcTowerContainerT< T >::fTowerIdToIndexIsUpToDate.

Referenced by emcTowerContainerT< T >::copy(), and emcTowerContainerT< T >::emcTowerContainerT().

template<class T>
unsigned int emcTowerContainerT< T >::capacity void   )  const [virtual]
 

the size you'll never exceed for this object.

Reimplemented from emcTowerContainer.

Definition at line 223 of file emcTowerContainerT.h.

References emcTowerContainerT< T >::fEmcTowers.

Referenced by emcTowerContainerT< T >::addTower(), and emcTowerContainerT< T >::expand_for().

template<class T>
emcTowerContainerT< T > * emcTowerContainerT< T >::clone void   )  const [virtual]
 

Make a copy of this object.

Reimplemented from emcTowerContainer.

Definition at line 231 of file emcTowerContainerT.h.

template<class T>
void emcTowerContainerT< T >::copy emcTowerContainerT< T > &  dest  )  const [private]
 

Definition at line 247 of file emcTowerContainerT.h.

References emcTowerContainerT< T >::addTower(), emcTowerContainerT< T >::allocate(), emcTowerContainerT< T >::fEmcTowers, emcTowerContainerT< T >::getTower(), emcTowerContainerT< T >::Reset(), and emcTowerContainerT< T >::size().

Referenced by emcTowerContainerT< T >::emcTowerContainerT(), and emcTowerContainerT< T >::operator=().

template<class T>
emcTowerContainerT< T > * emcTowerContainerT< T >::create void   )  const [virtual]
 

Make an empty copy of this object (i.e. copy only the type).

Reimplemented from emcTowerContainer.

Definition at line 239 of file emcTowerContainerT.h.

template<class T>
bool emcTowerContainerT< T >::expand unsigned  int  )  [private]
 

Definition at line 275 of file emcTowerContainerT.h.

References emcTowerContainerT< T >::fEmcTowers, and emcTowerContainerT< T >::fgMaxSize.

Referenced by emcTowerContainerT< T >::expand_for(), and emcTowerContainerT< T >::resize().

template<class T>
bool emcTowerContainerT< T >::expand_for unsigned  int  )  [private]
 

Definition at line 296 of file emcTowerContainerT.h.

References emcTowerContainerT< T >::capacity(), emcTowerContainerT< T >::expand(), emcTowerContainerT< T >::fgMaxSize, and min.

Referenced by emcTowerContainerT< T >::addTower().

template<class T>
T * emcTowerContainerT< T >::findTower int  towerID  )  const [virtual]
 

Return a given tower (or 0 if not found) by its towerid.

Reimplemented from emcTowerContainer.

Definition at line 318 of file emcTowerContainerT.h.

References emcTowerContainerT< T >::fTowerIdToIndex, emcTowerContainerT< T >::fTowerIdToIndexIsUpToDate, emcTowerContainerT< T >::getTower(), and emcTowerContainerT< T >::size().

template<class T>
T * emcTowerContainerT< T >::getTower unsigned int  i  )  const [virtual]
 

Return a given tower (or 0 if not found) by its index.

Reimplemented from emcTowerContainer.

Definition at line 344 of file emcTowerContainerT.h.

References emcTowerContainerT< T >::fEmcTowers.

Referenced by emcTowerContainerT< T >::copy(), and emcTowerContainerT< T >::findTower().

template<class T>
void emcTowerContainerT< T >::identify std::ostream &  os = std::cout  )  const [virtual]
 

Reimplemented from emcTowerContainer.

template<class T>
int emcTowerContainerT< T >::isValid  )  const [virtual]
 

Reimplemented from emcTowerContainer.

Definition at line 363 of file emcTowerContainerT.h.

template<class T>
emcTowerContainerT< T > & emcTowerContainerT< T >::operator= const emcTowerContainerT< T > &   ) 
 

Definition at line 145 of file emcTowerContainerT.h.

References emcTowerContainerT< T >::copy().

template<class T>
bool emcTowerContainerT< T >::removeTower unsigned int  i  )  [virtual]
 

Reimplemented from emcTowerContainer.

Definition at line 381 of file emcTowerContainerT.h.

References emcTowerContainerT< T >::fEmcTowers, emcTowerContainerT< T >::fTowerIdToIndexIsUpToDate, and emcTowerContainerT< T >::size().

template<class T>
void emcTowerContainerT< T >::Reset  )  [virtual]
 

Reimplemented from emcTowerContainer.

Definition at line 371 of file emcTowerContainerT.h.

References emcTowerContainerT< T >::fEmcTowers, emcTowerContainerT< T >::fTowerIdToIndex, and emcTowerContainerT< T >::fTowerIdToIndexIsUpToDate.

Referenced by emcTowerContainerT< T >::copy(), and emcTowerContainerT< T >::resize().

template<class T>
bool emcTowerContainerT< T >::resize unsigned int  newsize  )  [virtual]
 

Set a new size for this container. Old data are lost.

Reimplemented from emcTowerContainer.

Definition at line 399 of file emcTowerContainerT.h.

References emcTowerContainerT< T >::expand(), emcTowerContainerT< T >::fEmcTowers, emcTowerContainerT< T >::Reset(), and emcTowerContainerT< T >::size().

template<class T>
unsigned int emcTowerContainerT< T >::size void   )  const [virtual]
 

the actual size of the object.

Reimplemented from emcTowerContainer.

Definition at line 416 of file emcTowerContainerT.h.

References emcTowerContainerT< T >::fEmcTowers.

Referenced by emcTowerContainerT< T >::copy(), emcTowerContainerT< T >::findTower(), emcTowerContainerT< T >::removeTower(), and emcTowerContainerT< T >::resize().


Member Data Documentation

template<class T>
TClonesArray* emcTowerContainerT< T >::fEmcTowers [protected]
 

Definition at line 81 of file emcTowerContainerT.h.

Referenced by emcTowerContainerT< T >::allocate(), emcTowerContainerT< T >::capacity(), emcTowerContainerT< T >::copy(), emcTowerContainerT< T >::expand(), emcTowerContainerT< T >::getTower(), emcTowerContainerT< T >::removeTower(), emcTowerContainerT< T >::Reset(), emcTowerContainerT< T >::resize(), emcTowerContainerT< T >::size(), and emcTowerContainerT< T >::~emcTowerContainerT().

template<class T>
const unsigned int emcTowerContainerT< T >::fgDefaultSize = 1000 [static, private]
 

Definition at line 89 of file emcTowerContainerT.h.

Referenced by emcTowerContainerT< T >::emcTowerContainerT().

template<class T>
const unsigned int emcTowerContainerT< T >::fgMaxSize = 24768 [static, private]
 

Definition at line 90 of file emcTowerContainerT.h.

Referenced by emcTowerContainerT< T >::expand(), and emcTowerContainerT< T >::expand_for().

template<class T>
std::map<int,int> emcTowerContainerT< T >::fTowerIdToIndex [mutable, private]
 

Definition at line 92 of file emcTowerContainerT.h.

Referenced by emcTowerContainerT< T >::findTower(), and emcTowerContainerT< T >::Reset().

template<class T>
bool emcTowerContainerT< T >::fTowerIdToIndexIsUpToDate [mutable, private]
 

Definition at line 93 of file emcTowerContainerT.h.

Referenced by emcTowerContainerT< T >::addTower(), emcTowerContainerT< T >::allocate(), emcTowerContainerT< T >::findTower(), emcTowerContainerT< T >::removeTower(), and emcTowerContainerT< T >::Reset().


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