ATLAS Offline Software
|
#include <RegSelEtaPhiLUT.h>
Public Types | |
typedef TRegSelEtaPhiModule< IdentifierHash > | EtaPhiModule |
Concrete data type. More... | |
typedef std::set< EtaPhiModule > | moduleset |
tower of the actual modules assigned to each element of the lookup table More... | |
typedef TRegSelEtaPhiModule< moduleset > | map_element |
element type from which the look up table is built More... | |
Public Member Functions | |
RegSelEtaPhiLUT (int Neta=3, int Nphi=32) | |
defines the number of elements in the internal eta-phi element storage NB: these numbers of internal elements, 3, 32, have been optimised for 0.2 x 0.2 rois with 32 x 32 modules More... | |
virtual | ~RegSelEtaPhiLUT () |
destructor More... | |
bool | addModule (EtaPhiModule &m) |
add an element, returns true if element added. More... | |
void | getModules (const RegSelRoI &roi, std::vector< IdentifierHash > &hashids, double r=600) const |
get back a vector of the payload for each of the eta-phi segments that overlap with this roi More... | |
const std::vector< std::vector< map_element > > & | map () const |
access the actual complete map - shouldn't be public really, is only so for the ostream streamer More... | |
const EtaPhiBase | getElements (const RegSelRoI &roi, std::set< EtaPhiModule > &modules, double idradius=600) const |
get the modules from the elements, returns the virtual eta-phi roi corresponding to the virtual eta - phi region of the roi NB: Could return the number of eta-phi modules found rather than the virtual roi More... | |
Private Member Functions | |
void | getRowElements (const EtaPhiBase &virtual_roi, const std::vector< map_element > &row, int first_phi, int last_phi, std::set< EtaPhiModule > &modules) const |
get the modules from the elements in the phi direction, called for each eta slice processed More... | |
Private Attributes | |
double | m_etamin |
eta and phi ranges and number of internal book keeping elements in eta and phi directions More... | |
double | m_etamax |
int | m_Neta |
double | m_ideta |
inverse eta element size More... | |
double | m_phimin |
double | m_phimax |
int | m_Nphi |
double | m_idphi |
inverse phi element size More... | |
TRegSelEtaPhiModule< std::vector< std::vector< map_element > > > | m_grandmap |
overall map, can get the limits from the object, can have different numbers and different ranges for different phi ranges - should swap eta and phi round probably More... | |
Definition at line 45 of file RegSelEtaPhiLUT.h.
Concrete data type.
Definition at line 50 of file RegSelEtaPhiLUT.h.
element type from which the look up table is built
Definition at line 57 of file RegSelEtaPhiLUT.h.
typedef std::set<EtaPhiModule> RegSelEtaPhiLUT::moduleset |
tower of the actual modules assigned to each element of the lookup table
Definition at line 54 of file RegSelEtaPhiLUT.h.
RegSelEtaPhiLUT::RegSelEtaPhiLUT | ( | int | Neta = 3 , |
int | Nphi = 32 |
||
) |
defines the number of elements in the internal eta-phi element storage NB: these numbers of internal elements, 3, 32, have been optimised for 0.2 x 0.2 rois with 32 x 32 modules
constructor the number of elements in the internal eta-phi element storage
inverse element sizes
Definition at line 38 of file RegSelEtaPhiLUT.cxx.
|
virtual |
bool RegSelEtaPhiLUT::addModule | ( | EtaPhiModule & | m | ) |
add an element, returns true if element added.
Could return the number of eta-phi regions element was added to
first check if it overlaps with look up table at all
only do overlapping bits in eta
wrap in phi
does it overlap phi boundary?
Definition at line 87 of file RegSelEtaPhiLUT.cxx.
const EtaPhiBase RegSelEtaPhiLUT::getElements | ( | const RegSelRoI & | roi, |
std::set< EtaPhiModule > & | modules, | ||
double | idradius = 600 |
||
) | const |
get the modules from the elements, returns the virtual eta-phi roi corresponding to the virtual eta - phi region of the roi NB: Could return the number of eta-phi modules found rather than the virtual roi
add an element, returns the virtual eta-phi roi corresponding to the eta phi region of the roi NB: Could return the number of eta-phi modules found rather than the virtual roi
create a virtual roi for the input roi
check roi overlaps with the lookup table
don't have to cover the first_eta>=m_Neta case, etc as that is dealt with by the overlap test earlier
wrap in phi
does the roi overlap the phi boundary?
Definition at line 167 of file RegSelEtaPhiLUT.cxx.
void RegSelEtaPhiLUT::getModules | ( | const RegSelRoI & | roi, |
std::vector< IdentifierHash > & | hashids, | ||
double | r = 600 |
||
) | const |
get back a vector of the payload for each of the eta-phi segments that overlap with this roi
Definition at line 137 of file RegSelEtaPhiLUT.cxx.
|
inlineprivate |
get the modules from the elements in the phi direction, called for each eta slice processed
here, need to iterate over all the modules in the region and test whether they overlap with the roi
Definition at line 97 of file RegSelEtaPhiLUT.h.
|
inline |
access the actual complete map - shouldn't be public really, is only so for the ostream streamer
Definition at line 85 of file RegSelEtaPhiLUT.h.
|
private |
Definition at line 123 of file RegSelEtaPhiLUT.h.
|
private |
eta and phi ranges and number of internal book keeping elements in eta and phi directions
Definition at line 122 of file RegSelEtaPhiLUT.h.
|
private |
overall map, can get the limits from the object, can have different numbers and different ranges for different phi ranges - should swap eta and phi round probably
Definition at line 140 of file RegSelEtaPhiLUT.h.
|
private |
inverse eta element size
Definition at line 128 of file RegSelEtaPhiLUT.h.
|
private |
inverse phi element size
Definition at line 136 of file RegSelEtaPhiLUT.h.
|
private |
Definition at line 125 of file RegSelEtaPhiLUT.h.
|
private |
Definition at line 133 of file RegSelEtaPhiLUT.h.
|
private |
Definition at line 131 of file RegSelEtaPhiLUT.h.
|
private |
Definition at line 130 of file RegSelEtaPhiLUT.h.