ATLAS Offline Software
Loading...
Searching...
No Matches
L1CaloRdoEfexTower.cxx
Go to the documentation of this file.
1
3
4
5L1CaloRdoEfexTower::L1CaloRdoEfexTower( int crate, int module, int eta, int phi,
6 int layer, const L1CaloDetectorRegion& region )
7: L1CaloRdo( crate, module, eta, phi, layer, 1 )
8, m_fpgaNumber( 0 )
9, m_mgtNumber( 0 )
10, m_wordNumber( 0 )
11, m_mpodNumber( 0 )
12, m_fibreNumber( 0 )
13, m_copyExists( false )
14, m_overlap( 0 )
15{
16 // At the moment the decoding needs to use the EfexCellMapping class
17 // so we already have a detector region (as well as local eta & phi)
18 // and can just store it.
19 setRegion( region );
20}
21
22std::string
24{
25 return std::string( "EfexTower" );
26}
27
28bool
30{
31 // **FIXME** Implement (if appropriate). And/or other error flags.
32 return false;
33}
34
35const std::vector<uint32_t>&
40
41// For the benefit of the mapping tool,
42// save and return some hardware info.
43uint32_t
48
49uint32_t
54
55uint32_t
60
61uint32_t
66
67uint32_t
72
73bool
75{
76 // We can have overlaps between FPGAs in the same module.
77 if ( m_fpgaNumber != rhs.m_fpgaNumber )
78 return false;
79 return L1CaloRdo::sameDatum( rhs );
80}
81
82void
83L1CaloRdoEfexTower::setSupercells( std::vector<uint32_t>& supercells )
84{
85 m_supercells = supercells;
86}
87
88void
89L1CaloRdoEfexTower::setHardwareInfo( uint32_t fpga, uint32_t mgt, uint32_t word,
90 uint32_t mpod, uint32_t fibre, uint32_t overlap )
91{
92 m_fpgaNumber = fpga;
93 m_mgtNumber = mgt;
94 m_wordNumber = word;
95 m_mpodNumber = mpod;
96 m_fibreNumber = fibre;
97 m_overlap = overlap;
98}
99
100bool
102{
103 return (m_overlap == 0);
104}
105
106void
107L1CaloRdoEfexTower::setCopy( std::list<L1CaloRdoEfexTower>::const_iterator& copy, bool exists )
108{
109 m_copy = copy;
111}
112
113const std::list<L1CaloRdoEfexTower>::const_iterator&
115{
116 return m_copy;
117}
118
119bool
121{
122 return m_copyExists;
123}
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
Simple class to mainly store eta/phi information (indices, granularity, trigger tower coordinates) as...
bool sameDatum(const L1CaloRdoEfexTower &rhs) const
uint32_t getFpgaNumber() const
const std::list< L1CaloRdoEfexTower >::const_iterator & getCopy() const
void setCopy(std::list< L1CaloRdoEfexTower >::const_iterator &copy, bool exists)
void setSupercells(std::vector< uint32_t > &supercells)
uint32_t getMgtNumber() const
std::vector< uint32_t > m_supercells
void setHardwareInfo(uint32_t fpga, uint32_t mgt, uint32_t word, uint32_t mpod, uint32_t fibre, uint32_t overlap)
L1CaloRdoEfexTower(int crate, int module, int eta, int phi, int layer, const L1CaloDetectorRegion &region)
uint32_t getMinipodNumber() const
uint32_t getFibreNumber() const
const std::vector< uint32_t > & getSupercells() const
std::list< L1CaloRdoEfexTower >::const_iterator m_copy
virtual std::string getType() const
uint32_t getWordNumber() const
L1CaloRdo(int crate, int module, int eta, int phi, int layer, int numSlices)
Definition L1CaloRdo.cxx:26
void setRegion(const L1CaloDetectorRegion &region)
bool sameDatum(const L1CaloRdo &rhs) const
bool exists(const std::string &filename)
does a file exist