CMS 3D CMS Logo

CSCTriggerContainer< T > Class Template Reference

Author:
L.
More...

#include <DataFormats/L1CSCTrackFinder/interface/CSCTriggerContainer.h>

List of all members.

Public Member Functions

void clear ()
 CSCTriggerContainer (const std::vector< T > &)
 CSCTriggerContainer (const CSCTriggerContainer &cpy)
 CSCTriggerContainer ()
std::vector< T > get (const int &BX) const
std::vector< T > get (const unsigned &endcap, const unsigned &sector) const
 For objects which span multiple stations.
std::vector< T > get (const unsigned &endcap, const unsigned &sector, const int &BX) const
std::vector< T > get (const unsigned &endcap, const unsigned &station, const unsigned &tsector, const unsigned &tsubsector, const int &BX) const
 For a specific chamber.
std::vector< T > get (const unsigned &endcap, const unsigned &station, const unsigned &tsector, const unsigned &tsubsector, const unsigned &cscid, const int &BX) const
std::vector< T > get () const
CSCTriggerContaineroperator= (const std::vector< T > &)
CSCTriggerContaineroperator= (const CSCTriggerContainer &)
void push_back (const T data)
void push_many (const CSCTriggerContainer< T > data)
void push_many (const std::vector< T > data)

Private Attributes

std::vector< T > _objs


Detailed Description

template<class T>
class CSCTriggerContainer< T >

Author:
L.

Gray

A container class to make things more manageable for a Trigger Processor. DigiCollections make per-BX processing complicated, this class makes it easier.

Any class T must have the following functions: // inherit from base class! T(const T&) operator= station() sector() subsector() BX()

Definition at line 23 of file CSCTriggerContainer.h.


Constructor & Destructor Documentation

template<class T>
CSCTriggerContainer< T >::CSCTriggerContainer (  )  [inline]

Definition at line 27 of file CSCTriggerContainer.h.

00027 {}

template<class T>
CSCTriggerContainer< T >::CSCTriggerContainer ( const CSCTriggerContainer< T > &  cpy  )  [inline]

Definition at line 28 of file CSCTriggerContainer.h.

00028 { _objs = cpy._objs; }

template<class T>
CSCTriggerContainer< T >::CSCTriggerContainer ( const std::vector< T > &  parent  )  [inline]

Definition at line 55 of file CSCTriggerContainer.h.

References CSCTriggerContainer< T >::_objs.

00056 {
00057   _objs = parent;
00058 }


Member Function Documentation

template<class T>
void CSCTriggerContainer< T >::clear ( void   )  [inline]

Definition at line 47 of file CSCTriggerContainer.h.

Referenced by CSCMuonPortCard::clear(), CSCTFDTReceiver::CSCTFDTReceiver(), CSCTFDTReceiver::process(), CSCTFSectorProcessor::run(), and CSCTFSPCoreLogic::run().

00047 { _objs.clear(); } 

template<class T>
std::vector< T > CSCTriggerContainer< T >::get ( const int BX  )  const [inline]

Definition at line 141 of file CSCTriggerContainer.h.

References CSCTriggerContainer< T >::_objs, i, and HLT_VtxMuL3::result.

00142 {
00143   std::vector<T> result;
00144 
00145   for(unsigned i = 0; i < _objs.size(); ++i)
00146     if(_objs[i].BX() == BX) result.push_back(_objs[i]);
00147 
00148   return result;
00149 }

template<class T>
std::vector< T > CSCTriggerContainer< T >::get ( const unsigned &  endcap,
const unsigned &  sector 
) const [inline]

For objects which span multiple stations.

Definition at line 129 of file CSCTriggerContainer.h.

References CSCTriggerContainer< T >::_objs, GeomDetEnumerators::endcap, i, and HLT_VtxMuL3::result.

00130 {
00131   std::vector<T> result;
00132 
00133   for(unsigned i = 0; i < _objs.size(); ++i)
00134     if(_objs[i].endcap() == endcap && _objs[i].sector() == sector)
00135       result.push_back(_objs[i]);
00136 
00137   return result;
00138 }

template<class T>
std::vector< T > CSCTriggerContainer< T >::get ( const unsigned &  endcap,
const unsigned &  sector,
const int BX 
) const [inline]

Definition at line 116 of file CSCTriggerContainer.h.

References CSCTriggerContainer< T >::_objs, GeomDetEnumerators::endcap, i, and HLT_VtxMuL3::result.

00118 {
00119   std::vector<T> result;
00120 
00121   for(unsigned i = 0; i < _objs.size(); ++i)
00122     if(_objs[i].endcap() == endcap && _objs[i].sector() == sector && _objs[i].BX() == BX)
00123       result.push_back(_objs[i]);
00124 
00125   return result;
00126 }

template<class T>
std::vector< T > CSCTriggerContainer< T >::get ( const unsigned &  endcap,
const unsigned &  station,
const unsigned &  tsector,
const unsigned &  tsubsector,
const int BX 
) const [inline]

For a specific chamber.

in a station.

Parameters:
tsubsector  For a specific station in a sector.

Definition at line 100 of file CSCTriggerContainer.h.

References CSCTriggerContainer< T >::_objs, GeomDetEnumerators::endcap, i, and HLT_VtxMuL3::result.

00103 {
00104   std::vector<T> result;  
00105 
00106   for(unsigned i = 0; i < _objs.size(); ++i)
00107     if(_objs[i].endcap() == endcap && _objs[i].station() == station && 
00108        _objs[i].sector() == tsector && (station != 1 || _objs[i].subsector() == tsubsector) 
00109        && _objs[i].BX() == BX)
00110       result.push_back(_objs[i]);
00111   
00112   return result;
00113 }

template<class T>
std::vector< T > CSCTriggerContainer< T >::get ( const unsigned &  endcap,
const unsigned &  station,
const unsigned &  tsector,
const unsigned &  tsubsector,
const unsigned &  cscid,
const int BX 
) const [inline]

Definition at line 84 of file CSCTriggerContainer.h.

References CSCTriggerContainer< T >::_objs, GeomDetEnumerators::endcap, i, and HLT_VtxMuL3::result.

00087 {
00088   std::vector<T> result;  
00089 
00090   for(unsigned i = 0; i < _objs.size(); i++)
00091     if(_objs[i].endcap() == endcap && _objs[i].station() == station && 
00092        _objs[i].sector() == tsector && (station != 1 || _objs[i].subsector() == tsubsector) && 
00093        _objs[i].cscid() == cscid && _objs[i].BX() == BX)
00094       result.push_back(_objs[i]);
00095   
00096   return result;
00097 }

template<class T>
std::vector< T > CSCTriggerContainer< T >::get ( void   )  const [inline]

Definition at line 78 of file CSCTriggerContainer.h.

References CSCTriggerContainer< T >::_objs.

Referenced by CSCTFTrackBuilder::buildTracks(), CSCTFSPCoreLogic::loadData(), CSCTriggerContainer< csc::L1Track >::push_many(), CSCTFSectorProcessor::run(), CSCTFMuonSorter::run(), and CSCMuonPortCard::sort().

00079 {
00080   return _objs;
00081 }

template<class T>
CSCTriggerContainer< T > & CSCTriggerContainer< T >::operator= ( const std::vector< T > &  rhs  )  [inline]

Definition at line 71 of file CSCTriggerContainer.h.

References CSCTriggerContainer< T >::_objs.

00072 {
00073   _objs = rhs;
00074   return *this;
00075 }

template<class T>
CSCTriggerContainer< T > & CSCTriggerContainer< T >::operator= ( const CSCTriggerContainer< T > &  rhs  )  [inline]

Definition at line 61 of file CSCTriggerContainer.h.

References CSCTriggerContainer< T >::_objs.

00062 {
00063   if(this != &rhs)
00064     {
00065       _objs = rhs._objs;
00066     }
00067   return *this;
00068 }

template<class T>
void CSCTriggerContainer< T >::push_back ( const T  data  )  [inline]

Definition at line 44 of file CSCTriggerContainer.h.

Referenced by CSCTFCandidateBuilder::buildCandidates(), CSCTFTrackBuilder::buildTracks(), CSCMuonPortCard::loadDigis(), CSCTFDTReceiver::process(), CSCTFSectorProcessor::run(), and CSCTFSPCoreLogic::run().

00044 { _objs.push_back(data); }

template<class T>
void CSCTriggerContainer< T >::push_many ( const CSCTriggerContainer< T >  data  )  [inline]

Definition at line 46 of file CSCTriggerContainer.h.

00046 { std::vector<T> vec = data.get(); _objs.insert(_objs.end(), vec.begin(), vec.end()); }

template<class T>
void CSCTriggerContainer< T >::push_many ( const std::vector< T >  data  )  [inline]

Definition at line 45 of file CSCTriggerContainer.h.

Referenced by CSCTFTrackBuilder::buildTracks(), and CSCTFSectorProcessor::run().

00045 { _objs.insert(_objs.end(), data.begin(), data.end()); }


Member Data Documentation

template<class T>
std::vector<T> CSCTriggerContainer< T >::_objs [private]

Definition at line 51 of file CSCTriggerContainer.h.

Referenced by CSCTriggerContainer< csc::L1Track >::clear(), CSCTriggerContainer< csc::L1Track >::CSCTriggerContainer(), CSCTriggerContainer< T >::CSCTriggerContainer(), CSCTriggerContainer< T >::get(), CSCTriggerContainer< T >::operator=(), CSCTriggerContainer< csc::L1Track >::push_back(), and CSCTriggerContainer< csc::L1Track >::push_many().


The documentation for this class was generated from the following file:
Generated on Tue Jun 9 18:17:31 2009 for CMSSW by  doxygen 1.5.4