|
ATLAS Offline Software
|
Go to the documentation of this file.
32 #ifndef REGSELETAPHILUT_H
33 #define REGSELETAPHILUT_H
79 std::vector<IdentifierHash>& hashids,
85 const std::vector< std::vector< map_element > >&
map()
const {
return m_grandmap.payload(); };
98 const std::vector< map_element >&
row,
99 int first_phi,
int last_phi,
100 std::set<EtaPhiModule>& modules )
const {
102 for (
int j=first_phi ; j<=last_phi ; j++ ) {
107 moduleset::const_iterator rpitr=tower.
payload().begin();
108 moduleset::const_iterator rpend=tower.
payload().end();
110 while ( rpitr!=rpend ) {
111 if ( virtual_roi.
overlap( *rpitr ) ) modules.insert( *rpitr );
148 for (
unsigned i=0 ;
i<
f.map().
size() ;
i++ ) {
150 const std::vector< RegSelEtaPhiLUT::map_element >&
row =
f.map()[
i];
152 s <<
"row " <<
i << std::endl;
154 for (
unsigned j=0 ; j<
row.size() ; j++ ) {
158 s <<
"\t" << j <<
"\t" << (
EtaPhiBase)tower <<
" \t:";
160 RegSelEtaPhiLUT::moduleset::const_iterator rpitr=tower.
payload().begin();
161 RegSelEtaPhiLUT::moduleset::const_iterator rpend=tower.
payload().end();
163 while ( rpitr!=rpend ) {
178 #endif // __REGSELETAPHILUT_H
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 -...
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 ...
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
template class with payload added NB: >, <, == and != operators should be defined for the payload for...
base class, with just the eta-phi limits and the overlap functionality
TRegSelEtaPhiModule< IdentifierHash > EtaPhiModule
Concrete data type.
double m_ideta
inverse eta element size
RegSelEtaPhiLUT(int Neta=3, int Nphi=32)
defines the number of elements in the internal eta-phi element storage NB: these numbers of internal ...
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
double m_idphi
inverse phi element size
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
std::ostream & operator<<(std::ostream &s, const RegSelEtaPhiLUT &f)
bool overlap(const EtaPhiBase &e) const
do two eta-phi regions overlap?
bool addModule(EtaPhiModule &m)
add an element, returns true if element added.
virtual ~RegSelEtaPhiLUT()
destructor
const T & payload() const
std::set< EtaPhiModule > moduleset
tower of the actual modules assigned to each element of the lookup table
TRegSelEtaPhiModule< moduleset > map_element
element type from which the look up table is built
double m_etamin
eta and phi ranges and number of internal book keeping elements in eta and phi directions