CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Attributes
L1MuBMDataBuffer Class Reference

#include <L1MuBMDataBuffer.h>

Public Types

typedef std::vector< L1MuBMTrackSegPhi * > TSPhivector
 container to store phi track segments More...
 

Public Member Functions

void addTSphi (int adr, const L1MuBMTrackSegPhi &)
 add new phi track segment to the Data Buffer More...
 
const TSPhivectorgetTSphi () const
 get all track segments from the buffer More...
 
const L1MuBMTrackSegPhigetTSphi (int station, int address) const
 get phi track segment of a given station from the buffer More...
 
 L1MuBMDataBuffer (const L1MuBMSectorProcessor &)
 constructor More...
 
int numberTSphi () const
 return number of non-empty phi track segments More...
 
void printTSphi () const
 print all phi track segments which are in the buffer More...
 
void reset ()
 clear Data Buffer More...
 
virtual ~L1MuBMDataBuffer ()
 destructor More...
 

Private Attributes

const L1MuBMSectorProcessorm_sp
 
TSPhivectorm_tsphi
 

Detailed Description

Data Buffer:

The Data Buffer stores track segment data during the execution of the track assembler

N. Neumeister CERN EP

Definition at line 41 of file L1MuBMDataBuffer.h.

Member Typedef Documentation

container to store phi track segments

Definition at line 46 of file L1MuBMDataBuffer.h.

Constructor & Destructor Documentation

L1MuBMDataBuffer::L1MuBMDataBuffer ( const L1MuBMSectorProcessor sp)

constructor

Definition at line 46 of file L1MuBMDataBuffer.cc.

References m_tsphi.

46  :
47  m_sp(sp), m_tsphi(0) {
48 
49 
50  m_tsphi = new TSPhivector(38);
51  m_tsphi->reserve(38);
52 
53 }
std::vector< L1MuBMTrackSegPhi * > TSPhivector
container to store phi track segments
const L1MuBMSectorProcessor & m_sp
TSPhivector * m_tsphi
L1MuBMDataBuffer::~L1MuBMDataBuffer ( )
virtual

destructor

Definition at line 59 of file L1MuBMDataBuffer.cc.

References m_tsphi.

59  {
60 
61  delete m_tsphi;
62 
63 }
TSPhivector * m_tsphi

Member Function Documentation

void L1MuBMDataBuffer::addTSphi ( int  adr,
const L1MuBMTrackSegPhi ts 
)

add new phi track segment to the Data Buffer

Definition at line 101 of file L1MuBMDataBuffer.cc.

Referenced by getTSphi(), and L1MuBMSectorReceiver::receiveBBMXData().

101  {
102 
103  L1MuBMTrackSegPhi* tmpts = new L1MuBMTrackSegPhi(ts);
104  (*m_tsphi)[adr] = tmpts;
105 
106 }
const TSPhivector& L1MuBMDataBuffer::getTSphi ( ) const
inline

get all track segments from the buffer

Definition at line 58 of file L1MuBMDataBuffer.h.

References addTSphi(), m_tsphi, numberTSphi(), printTSphi(), and relativeConstraints::station.

Referenced by L1MuBMSEU::run(), L1MuBMExtrapolationUnit::run(), and L1MuBMAssignmentUnit::TSR().

58 { return *m_tsphi; }
TSPhivector * m_tsphi
const L1MuBMTrackSegPhi * L1MuBMDataBuffer::getTSphi ( int  station,
int  address 
) const

get phi track segment of a given station from the buffer

Definition at line 90 of file L1MuBMDataBuffer.cc.

References m_tsphi.

90  {
91 
92  int address = (station == 1) ? reladr : reladr + (station-2)*12 + 2;
93  return (*m_tsphi)[address];
94 
95 }
TSPhivector * m_tsphi
int L1MuBMDataBuffer::numberTSphi ( ) const

return number of non-empty phi track segments

Definition at line 126 of file L1MuBMDataBuffer.cc.

References KineDebug3::count(), and m_tsphi.

Referenced by getTSphi(), and L1MuBMSectorProcessor::run().

126  {
127 
128  int count = 0;
129  TSPhivector::iterator iter = m_tsphi->begin();
130  while ( iter != m_tsphi->end() ) {
131  if ( *iter && !(*iter)->empty() ) count++;
132  iter++;
133  }
134  return count;
135 
136 }
TSPhivector * m_tsphi
void L1MuBMDataBuffer::printTSphi ( ) const

print all phi track segments which are in the buffer

Definition at line 112 of file L1MuBMDataBuffer.cc.

References gather_cfg::cout, and m_tsphi.

Referenced by getTSphi(), and L1MuBMSectorProcessor::run().

112  {
113 
114  TSPhivector::const_iterator iter = m_tsphi->begin();
115  while ( iter != m_tsphi->end() ) {
116  if ( *iter ) cout << *(*iter) << endl;
117  iter++;
118  }
119 
120 }
TSPhivector * m_tsphi
void L1MuBMDataBuffer::reset ( void  )

clear Data Buffer

Definition at line 73 of file L1MuBMDataBuffer.cc.

References m_tsphi.

Referenced by L1MuBMSectorProcessor::reset().

73  {
74 
75  TSPhivector::iterator iter = m_tsphi->begin();
76  while ( iter != m_tsphi->end() ) {
77  if ( *iter) {
78  delete *iter;
79  *iter = 0;
80  }
81  iter++;
82  }
83 
84 }
TSPhivector * m_tsphi

Member Data Documentation

const L1MuBMSectorProcessor& L1MuBMDataBuffer::m_sp
private

Definition at line 74 of file L1MuBMDataBuffer.h.

TSPhivector* L1MuBMDataBuffer::m_tsphi
private