|
ATLAS Offline Software
|
Go to the documentation of this file.
33 #ifndef REGSELETAPHILUT_H
34 #define REGSELETAPHILUT_H
80 std::vector<IdentifierHash>& hashids,
86 const std::vector< std::vector< map_element > >&
map()
const {
return m_grandmap.payload(); };
99 const std::vector< map_element >&
row,
100 int first_phi,
int last_phi,
101 std::set<EtaPhiModule>& modules )
const {
103 for (
int j=first_phi ; j<=last_phi ; j++ ) {
108 moduleset::const_iterator rpitr=tower.
payload().begin();
109 moduleset::const_iterator rpend=tower.
payload().end();
111 while ( rpitr!=rpend ) {
112 if ( virtual_roi.
overlap( *rpitr ) ) modules.insert( *rpitr );
149 for (
unsigned i=0 ;
i<
f.map().
size() ;
i++ ) {
151 const std::vector< RegSelEtaPhiLUT::map_element >&
row =
f.map()[
i];
153 s <<
"row " <<
i << std::endl;
155 for (
unsigned j=0 ; j<
row.size() ; j++ ) {
159 s <<
"\t" << j <<
"\t" << (
EtaPhiBase)tower <<
" \t:";
161 RegSelEtaPhiLUT::moduleset::const_iterator rpitr=tower.
payload().begin();
162 RegSelEtaPhiLUT::moduleset::const_iterator rpend=tower.
payload().end();
164 while ( rpitr!=rpend ) {
179 #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