|  | ATLAS Offline Software
    | 
 
 
 
#include <RegSelectorHashMap.h>
|  | 
| virtual void | HashIDList (const IRoiDescriptor &roi, std::vector< IdentifierHash > &idlist) const override | 
|  | implementation of the IRegSelUT interface  More... 
 | 
|  | 
| virtual void | HashIDList (long layer, const IRoiDescriptor &roi, std::vector< IdentifierHash > &idlist) const override | 
|  | HashIDList interface declaration. return list of non-repeated IdentifierHash.  More... 
 | 
|  | 
| virtual void | ROBIDList (const IRoiDescriptor &roi, std::vector< uint32_t > &roblist) const override | 
|  | rob methods  More... 
 | 
|  | 
| virtual void | ROBIDList (long layer, const IRoiDescriptor &roi, std::vector< uint32_t > &roblist) const override | 
|  | ROBIDList interface declaration. This interface can be used by the ID subdetectors. A list of non-repeated ROBIDs (uint_32_t) is returned by a reference.  More... 
 | 
|  | 
| virtual | ~RegSelectorHashMap () override=default | 
|  | 
| double | etaminValue () const | 
|  | rest of the class implementation  More... 
 | 
|  | 
| double | etamaxValue () const | 
|  | 
| double | phiminValue () const | 
|  | 
| double | phimaxValue () const | 
|  | 
| const std::vector< double > & | etaMinOut (void) const | 
|  | 
| const std::vector< double > & | etaMaxOut (void) const | 
|  | 
| const std::vector< double > & | phiMinOut (void) const | 
|  | 
| const std::vector< double > & | phiMaxOut (void) const | 
|  | 
| void | mountDataStruct (void) | 
|  | 
| const std::vector< IdentifierHash > & | hashIdOut (void) const | 
|  | 
| const std::vector< std::vector< uint32_t > > & | robIdOut (void) const | 
|  | 
| const std::vector< int > & | sampleOut (void) const | 
|  | 
| const std::vector< int > & | layerOut (void) const | 
|  | 
| void | regionSelectorRobIdUint (double etaminIn, double etamaxIn, double phiminIn, double phimaxIn, std::vector< uint32_t > &outRobIDList) const | 
|  | 
| void | regionSelectorRobIdUint (int sampling, double etaminIn, double etamaxIn, double phiminIn, double phimaxIn, std::vector< uint32_t > &outRobIDList) const | 
|  | 
| void | regionSelector (double etaminIn, double etamaxIn, double phiminIn, double phimaxIn, std::vector< IdentifierHash > &outList) const | 
|  | 
| void | regionSelector (int sampling, double etaminIn, double etamaxIn, double phiminIn, double phimaxIn, std::vector< IdentifierHash > &outList) const | 
|  | 
| void | initvar (void) | 
|  | 
| StatusCode | read (const char *filename) | 
|  | 
| void | addLut (const RegionSelectorLUT *detLut) | 
|  | 
| void | summaryDataFile (std::list< RegSelectorMapElement > &dataList) | 
|  | 
| void | verifyInputs (double &etaminIn, double &etamaxIn, double &phiminIn, double &phimaxIn) const | 
|  | 
| void | verifyROBIDOutput (double etaminIn, double etamaxIn, double phiminIn, double phimaxIn, std::vector< uint32_t > &outputIdlist) const | 
|  | 
| void | verifyROBIDOutput (int sampling, double etaminIn, double etamaxIn, double phiminIn, double phimaxIn, std::vector< uint32_t > &outputIdlist) const | 
|  | 
| void | verifyOutput (double etaminIn, double etamaxIn, double phiminIn, double phimaxIn, std::vector< IdentifierHash > *outputIdlist) const | 
|  | 
| void | verifyOutput (int sampling, double etaminIn, double etamaxIn, double phiminIn, double phimaxIn, std::vector< IdentifierHash > *outputIdlist) const | 
|  | 
| void | getEtaPhi (IdentifierHash hashId, double *etaMin, double *etaMax, double *phiMin, double *phiMax) const | 
|  | 
| void | DisableMissingROBs (const std::vector< uint32_t > &vec) | 
|  | 
|  | 
| virtual void | HashIDList_internal (const IRoiDescriptor &roi, std::vector< IdentifierHash > &idlist) const | 
|  | internal implementation of the IRegSelUT interface  More... 
 | 
|  | 
| virtual void | HashIDList_internal (long layer, const IRoiDescriptor &roi, std::vector< IdentifierHash > &idlist) const | 
|  | 
| virtual void | ROBIDList_internal (const IRoiDescriptor &roi, std::vector< uint32_t > &roblist) const | 
|  | rob methods  More... 
 | 
|  | 
| virtual void | ROBIDList_internal (long layer, const IRoiDescriptor &roi, std::vector< uint32_t > &roblist) const | 
|  | 
| template<typename C , typename T > | 
| void | IDList (const IRoiDescriptor &roi, std::vector< T > &idlist, handler< C, T > lister) const | 
|  | 
| template<typename C , typename T > | 
| void | IDList_layer (long layer, const IRoiDescriptor &roi, std::vector< T > &idlist, handler_layer< C, T > lister) const | 
|  | 
|  | 
| void | populateMatrix (int iPage, IdentifierHash value) | 
|  | 
| void | populateMatrixRobId (int iPage, uint32_t value) | 
|  | 
| void | initMatrix (void) | 
|  | 
| void | writeLine (const int &layer, const IdentifierHash &hashId, const std::vector< uint32_t > &robId, const double &emin, const double &emax, const double &pmin, const double &pmax, const int &samp) | 
|  | 
| int | MyRound (double pdValue) | 
|  | 
| void | regionSelectorIN (const int &sampling, const double &etaminIn, const double &etamaxIn, const double &phiminIn, const double &phimaxIn, std::vector< IdentifierHash > *outListIH) const | 
|  | 
| void | regionSelectorINROB (const int &sampling, const double &etaminIn, const double &etamaxIn, const double &phiminIn, const double &phimaxIn, std::vector< uint32_t > *outList) const | 
|  | 
| void | phiCondition (const std::vector< IdentifierHash > &identifier, int i, double etaminIn, double etamaxIn, double phiminIn, double phimaxIn, double etamin, double etamax, std::set< IdentifierHash > *outset) const | 
|  | 
| void | phiConditionRobId (const std::vector< std::vector< uint32_t > > &identifier, int i, double etaminIn, double etamaxIn, double phiminIn, double phimaxIn, double etamin, double etamax, std::set< uint32_t > *outset) const | 
|  | 
| void | findIdentifier (std::vector< IdentifierHash > &auxsetIH, const int iXBeg, const int iXEnd, const int iYBeg, const int iYEnd, const int iPage) const | 
|  | 
| void | findIdentifierROB (std::vector< uint32_t > &auxset, const int iXBeg, const int iXEnd, const int iYBeg, const int iYEnd, const int iPage) const | 
|  | 
Definition at line 40 of file RegSelectorHashMap.h.
 
◆ handler
template<typename C , typename T > 
 
 
◆ handler_layer
template<typename C , typename T > 
 
 
◆ ~RegSelectorHashMap()
  
  | 
        
          | virtual RegSelectorHashMap::~RegSelectorHashMap | ( |  | ) |  |  | overridevirtualdefault | 
 
 
◆ addLut()
Definition at line 611 of file RegSelectorHashMap.cxx.
  615   std::vector<uint32_t> robId_cpy;
 
  620   double etamin(-999.0), etamax(-999.0), phimin(-999.0), phimax(-999.0); 
 
  621   int samp(999), 
layer(999);
 
  623   int tablesize = detLut->
maxHash();
 
  633   for( 
int j=0; j<tablesize; ++j){
 
  636           detLut->
phiMin(j)==phimin && detLut->
phiMax(j) == phimax &&
 
  638         robId_cpy.push_back(detLut->
robId(j));
 
  653      robId_cpy.push_back(detLut->
robId(j));
 
  659      double stepPhi = std::fabs(phimax-phimin);
 
  660      double stepEta = std::fabs(
etamin-etamax);
 
 
 
 
◆ DisableMissingROBs()
      
        
          | void RegSelectorHashMap::DisableMissingROBs | ( | const std::vector< uint32_t > & | vec | ) |  | 
      
 
 
◆ etaMaxOut()
      
        
          | const std::vector< double > & RegSelectorHashMap::etaMaxOut | ( | void |  | ) | const | 
      
 
 
◆ etamaxValue()
      
        
          | double RegSelectorHashMap::etamaxValue | ( |  | ) | const | 
      
 
 
◆ etaMinOut()
      
        
          | const std::vector< double > & RegSelectorHashMap::etaMinOut | ( | void |  | ) | const | 
      
 
 
◆ etaminValue()
      
        
          | double RegSelectorHashMap::etaminValue | ( |  | ) | const | 
      
 
 
◆ findIdentifier()
Definition at line 971 of file RegSelectorHashMap.cxx.
  975  int xEta, yPhi, iPosition;
 
  977   for(xEta= iXBeg; xEta < iXEnd; ++xEta){
 
  978     for(yPhi=iYBeg; yPhi < iYEnd; ++yPhi){
 
  979       iPosition = iPage + (yPhi* 
m_iColumns + xEta);
 
  986   if(auxsetIH.size()!=0){
 
  987     sort(auxsetIH.begin(),auxsetIH.end());
 
  988     auxsetIH.erase(
unique(auxsetIH.begin(),auxsetIH.end()),auxsetIH.end());
 
 
 
 
◆ findIdentifierROB()
  
  | 
        
          | void RegSelectorHashMap::findIdentifierROB | ( | std::vector< uint32_t > & | auxset, |  
          |  |  | const int | iXBeg, |  
          |  |  | const int | iXEnd, |  
          |  |  | const int | iYBeg, |  
          |  |  | const int | iYEnd, |  
          |  |  | const int | iPage |  
          |  | ) |  | const |  | private | 
 
Definition at line 993 of file RegSelectorHashMap.cxx.
  997   int xEta, yPhi, iPosition;
 
  998   unsigned int i,size_rod;
 
 1000   for(xEta= iXBeg; xEta < iXEnd; ++xEta){
 
 1001     for(yPhi=iYBeg; yPhi < iYEnd; ++yPhi){
 
 1002       iPosition = iPage + (yPhi* 
m_iColumns + xEta);
 
 1004           for(
i=0; 
i < size_rod; ++
i)
 
 1010   if(auxset.size()!=0){
 
 1011     sort(auxset.begin(),auxset.end());
 
 1012     auxset.erase(
unique(auxset.begin(),auxset.end()),auxset.end());
 
 
 
 
◆ getEtaPhi()
      
        
          | void RegSelectorHashMap::getEtaPhi | ( | IdentifierHash | hashId, | 
        
          |  |  | double * | etaMin, | 
        
          |  |  | double * | etaMax, | 
        
          |  |  | double * | phiMin, | 
        
          |  |  | double * | phiMax | 
        
          |  | ) |  | const | 
      
 
 
◆ HashIDList() [1/2]
implementation of the IRegSelUT interface 
implementation of the IRegSelUT interface 
 hash id methods 
hash id methods 
Implements IRegSelLUT.
Definition at line 20 of file RegSelectorHashMap.cxx.
 
 
◆ HashIDList() [2/2]
HashIDList interface declaration. return list of non-repeated IdentifierHash. 
- Parameters
- 
  
    | long | layer,long int to decide which layer within the detector. |  | IRoiDescriptor | roi,the IRoiDescriptor for the roi, all enabled elements in the roi are found. |  
 
- Returns
- std::vector<IdentifierHash> which is a list of non-repeated Offline Identifier Hash numbers. 
Implements IRegSelLUT.
Definition at line 24 of file RegSelectorHashMap.cxx.
 
 
◆ HashIDList_internal() [1/2]
internal implementation of the IRegSelUT interface 
implementation of the IRegSelUT interface 
hash id methods 
Definition at line 44 of file RegSelectorHashMap.cxx.
 
 
◆ HashIDList_internal() [2/2]
◆ hashIdOut()
◆ IDList()
template<typename C , typename T > 
 
Definition at line 88 of file IRegSelLUT.h.
   92       for ( 
unsigned iroi=roi.
size() ; iroi-- ;  )  IDList<C>( *(roi.
at(iroi)), idlist, lister );
 
   97     (
dynamic_cast<const C*
>(
this)->*lister)( roi, idlist ); 
 
 
 
 
◆ IDList_layer()
template<typename C , typename T > 
 
Definition at line 106 of file IRegSelLUT.h.
  110       for ( 
unsigned iroi=roi.
size() ; iroi-- ;  )  IDList_layer<C>( 
layer, *(roi.
at(iroi)), idlist, lister );
 
  115     (
dynamic_cast<const C*
>(
this)->*lister)( 
layer, roi, idlist ); 
 
 
 
 
◆ initMatrix()
  
  | 
        
          | void RegSelectorHashMap::initMatrix | ( | void |  | ) |  |  | private | 
 
 
◆ initvar()
      
        
          | void RegSelectorHashMap::initvar | ( | void |  | ) |  | 
      
 
 
◆ layerOut()
      
        
          | const std::vector< int > & RegSelectorHashMap::layerOut | ( | void |  | ) | const | 
      
 
 
◆ mountDataStruct()
      
        
          | void RegSelectorHashMap::mountDataStruct | ( | void |  | ) |  | 
      
 
Definition at line 118 of file RegSelectorHashMap.cxx.
  119   int iNumRanges, iRepeatOverX, iRepeatOverY, xEta, yPhi, 
k;
 
  120   int iPage, iPosition, iXeta, iYphi; 
 
  121   double dEtaMin=-999, dEtaMax=-999, dPhiMin= -999, dPhiMax = -999;
 
  137   for(
k=0;
k<iNumRanges;++
k){
 
  145     iRepeatOverX = std::abs(iRepeatOverX);
 
  148     iRepeatOverY = std::abs(iRepeatOverY);
 
  154     for(yPhi=0;yPhi<iRepeatOverY;++yPhi){
 
  156      for(xEta=0;xEta<iRepeatOverX;++xEta){
 
  157         iPosition = iPage + (iYphi* 
m_iColumns +iXeta);
 
  168    for(
k=0;
k<iNumRanges;++
k){    
 
  169          std::cout << 
"REGSELECTOR HASH TABLE " <<   
 
  174      std::cout << std::hex;
 
  177      std::cout << std::dec;
 
  178          std::cout << std::endl;     
 
  181    for(
k=0;
k<iNumRanges;++
k){    
 
  188      iRepeatOverX = std::abs(iRepeatOverX);      
 
  190      iRepeatOverY = std::abs(iRepeatOverY);      
 
  194      for(yPhi=0;yPhi<iRepeatOverY;++yPhi){   
 
  196       for(xEta=0;xEta<iRepeatOverX;++xEta){      
 
  197          iPosition = iPage + (iYphi* 
m_iColumns +iXeta);     
 
  198          std::cout << 
"REGSELECTOR MAPS " <<     
 
  199          iXeta << 
" " << iYphi << 
" " << iPosition << 
" " <<     
 
  201      std::cout << std::hex;
 
  203                  std::cout << 
"0x" << 
m_robIDMap[iPosition][
i]  << 
" ";      
 
  204      std::cout << std::dec;
 
  205          std::cout << std::endl;     
 
 
 
 
◆ MyRound()
  
  | 
        
          | int RegSelectorHashMap::MyRound | ( | double | pdValue | ) |  |  | private | 
 
Definition at line 291 of file RegSelectorHashMap.cxx.
  295   dFloor = std::floor(pdValue);
 
  296   dAux = std::fabs(pdValue-dFloor);
 
  298     iReturn = (
int) (dFloor + 1);
 
  300     iReturn = (
int) dFloor;
 
 
 
 
◆ phiCondition()
  
  | 
        
          | void RegSelectorHashMap::phiCondition | ( | const std::vector< IdentifierHash > & | identifier, |  
          |  |  | int | i, |  
          |  |  | double | etaminIn, |  
          |  |  | double | etamaxIn, |  
          |  |  | double | phiminIn, |  
          |  |  | double | phimaxIn, |  
          |  |  | double | etamin, |  
          |  |  | double | etamax, |  
          |  |  | std::set< IdentifierHash > * | outset |  
          |  | ) |  | const |  | private | 
 
Definition at line 462 of file RegSelectorHashMap.cxx.
  467   double phimin, phimax;
 
  472     if( (etaminIn <= etamax) && (etamaxIn >= 
etamin) ){
 
  473       if( (phiminIn <= phimax) && (phimaxIn >= phimin) ){
 
  479     if( (etaminIn <= etamax) && (etamaxIn >= 
etamin) ){
 
  480       if( (phiminIn <= phimax) && (phimaxIn >= phimin) ){
 
  487     if( (etaminIn <= etamax) && (etamaxIn >= 
etamin) ){
 
  488       if( (phiminIn <= phimax) && (phimaxIn >= phimin) ){
 
 
 
 
◆ phiConditionRobId()
  
  | 
        
          | void RegSelectorHashMap::phiConditionRobId | ( | const std::vector< std::vector< uint32_t > > & | identifier, |  
          |  |  | int | i, |  
          |  |  | double | etaminIn, |  
          |  |  | double | etamaxIn, |  
          |  |  | double | phiminIn, |  
          |  |  | double | phimaxIn, |  
          |  |  | double | etamin, |  
          |  |  | double | etamax, |  
          |  |  | std::set< uint32_t > * | outset |  
          |  | ) |  | const |  | private | 
 
Definition at line 496 of file RegSelectorHashMap.cxx.
  501   double phimin, phimax;
 
  506     if( (etaminIn <= etamax) && (etamaxIn >= 
etamin) ){
 
  507       if( (phiminIn <= phimax) && (phimaxIn >= phimin) ){
 
  513     if( (etaminIn <= etamax) && (etamaxIn >= 
etamin) ){
 
  514       if( (phiminIn <= phimax) && (phimaxIn >= phimin) ){
 
  521     if( (etaminIn <= etamax) && (etamaxIn >= 
etamin) ){
 
  522       if( (phiminIn <= phimax) && (phimaxIn >= phimin) ){
 
 
 
 
◆ phiMaxOut()
      
        
          | const std::vector< double > & RegSelectorHashMap::phiMaxOut | ( | void |  | ) | const | 
      
 
 
◆ phimaxValue()
      
        
          | double RegSelectorHashMap::phimaxValue | ( |  | ) | const | 
      
 
 
◆ phiMinOut()
      
        
          | const std::vector< double > & RegSelectorHashMap::phiMinOut | ( | void |  | ) | const | 
      
 
 
◆ phiminValue()
      
        
          | double RegSelectorHashMap::phiminValue | ( |  | ) | const | 
      
 
 
◆ populateMatrix()
  
  | 
        
          | void RegSelectorHashMap::populateMatrix | ( | int | iPage, |  
          |  |  | IdentifierHash | value |  
          |  | ) |  |  |  | private | 
 
Definition at line 227 of file RegSelectorHashMap.cxx.
  228   int xEta,yPhi, iPosition;
 
  229   int max_iPosition(0);
 
  234     for(yPhi= 0; yPhi < 
m_iLines; ++yPhi){
 
  235       iPosition = iPage + (yPhi* 
m_iColumns + xEta);
 
  236       if(iPosition>max_iPosition) max_iPosition=iPosition;
 
  242     for(yPhi= 0; yPhi < 
m_iLines; ++yPhi){
 
  243       iPosition = iPage + (yPhi* 
m_iColumns + xEta);
 
 
 
 
◆ populateMatrixRobId()
  
  | 
        
          | void RegSelectorHashMap::populateMatrixRobId | ( | int | iPage, |  
          |  |  | uint32_t | value |  
          |  | ) |  |  |  | private | 
 
 
◆ read()
      
        
          | StatusCode RegSelectorHashMap::read | ( | const char * | filename | ) |  | 
      
 
Definition at line 554 of file RegSelectorHashMap.cxx.
  560   double emin, emax, pmin, pmax;
 
  561   double stepPhi, stepEta;
 
  562   char robIdStr[12], robIdStr2[12];
 
  564   std::vector<uint32_t> robId;
 
  568   std::string unresolvedFileName(
filename);
 
  570   if (fullFileName == 
"") {
 
  571     std::cerr << 
"LArTTRegionSelectorIdentifierHash: FATAL: Could not find input file in DATAPATH" <<  unresolvedFileName<< std::endl;
 
  572     return StatusCode::FAILURE;
 
  575   std::ifstream 
fin(fullFileName.c_str());
 
  578      sc = StatusCode::FAILURE;
 
  581   if (strncmp(
buffer,
" TT-ID",6)==0){
 
  586       int test = sscanf(pch, 
" %u %d %d %lf %lf %lf %lf %11s %11s",  
 
  587                         &hashId, &
layer, &samp, &emin, &emax, &pmin, &pmax, robIdStr, robIdStr2);
 
  588       robId.push_back(strtol(robIdStr,
nullptr,16));
 
  590         robId.push_back(strtol(robIdStr2,
nullptr,16));
 
  592       stepPhi = std::fabs(pmax-pmin);
 
  593       stepEta = std::fabs(emin-emax);
 
  603     }
while((
fin.getline(
buffer, 128, 
'\n')));
 
 
 
 
◆ regionSelector() [1/2]
      
        
          | void RegSelectorHashMap::regionSelector | ( | double | etaminIn, | 
        
          |  |  | double | etamaxIn, | 
        
          |  |  | double | phiminIn, | 
        
          |  |  | double | phimaxIn, | 
        
          |  |  | std::vector< IdentifierHash > & | outList | 
        
          |  | ) |  | const | 
      
 
 
◆ regionSelector() [2/2]
      
        
          | void RegSelectorHashMap::regionSelector | ( | int | sampling, | 
        
          |  |  | double | etaminIn, | 
        
          |  |  | double | etamaxIn, | 
        
          |  |  | double | phiminIn, | 
        
          |  |  | double | phimaxIn, | 
        
          |  |  | std::vector< IdentifierHash > & | outList | 
        
          |  | ) |  | const | 
      
 
 
◆ regionSelectorIN()
  
  | 
        
          | void RegSelectorHashMap::regionSelectorIN | ( | const int & | sampling, |  
          |  |  | const double & | etaminIn, |  
          |  |  | const double & | etamaxIn, |  
          |  |  | const double & | phiminIn, |  
          |  |  | const double & | phimaxIn, |  
          |  |  | std::vector< IdentifierHash > * | outListIH |  
          |  | ) |  | const |  | private | 
 
why are we making this
need to check whether spans the pi boundary - using iYBeg > iYEnd isn't good enough since it it is very nearly 2pi, then iYBeg and iYEnd will be equal 
wrap phi
why reduce the RoI size?
This is WRONG!! this forces all rois to increase as the radius increases - oh dear
Definition at line 305 of file RegSelectorHashMap.cxx.
  309   int iYBeg, iYEnd, iXBeg, iXEnd, 
k, iPage;
 
  311   std::vector<IdentifierHash>& auxsetIH=(*outListIH);
 
  321   bool pi_boundary = 
false;
 
  322   if ( phiminIn>phimaxIn ) pi_boundary = 
true;
 
  335     if(iXBeg < 0) iXBeg = 0;
 
  337     if(iXEnd < 0) iXEnd = 0;
 
 
 
 
◆ regionSelectorINROB()
  
  | 
        
          | void RegSelectorHashMap::regionSelectorINROB | ( | const int & | sampling, |  
          |  |  | const double & | etaminIn, |  
          |  |  | const double & | etamaxIn, |  
          |  |  | const double & | phiminIn, |  
          |  |  | const double & | phimaxIn, |  
          |  |  | std::vector< uint32_t > * | outList |  
          |  | ) |  | const |  | private | 
 
why do we reduce the size of the RoI here? if we must mess with it, shouldn't we make it larger?
need to check whether spans the pi boundary - using (iYBeg > iYEnd) isn't good enough since it it is very nearly 2pi, then iYBeg and iYEnd will be equal. 
wrap phi
why reduce the size of the RoI?
This is WRONG!! this forces all rois to increase as the radius increases - oh dear
Definition at line 382 of file RegSelectorHashMap.cxx.
  386   int iYBeg{}, iYEnd{}, iXBeg{}, iXEnd{}, 
k{}, iPage{};
 
  388   std::vector<uint32_t>& auxset=(*outList);
 
  401   bool pi_boundary = 
false;
 
  402   if ( phiminIn>phimaxIn ) pi_boundary = 
true;
 
  414     if(iXBeg < 0) iXBeg = 0;
 
  416     if(iXEnd < 0) iXEnd = 0;
 
 
 
 
◆ regionSelectorRobIdUint() [1/2]
      
        
          | void RegSelectorHashMap::regionSelectorRobIdUint | ( | double | etaminIn, | 
        
          |  |  | double | etamaxIn, | 
        
          |  |  | double | phiminIn, | 
        
          |  |  | double | phimaxIn, | 
        
          |  |  | std::vector< uint32_t > & | outRobIDList | 
        
          |  | ) |  | const | 
      
 
 
◆ regionSelectorRobIdUint() [2/2]
      
        
          | void RegSelectorHashMap::regionSelectorRobIdUint | ( | int | sampling, | 
        
          |  |  | double | etaminIn, | 
        
          |  |  | double | etamaxIn, | 
        
          |  |  | double | phiminIn, | 
        
          |  |  | double | phimaxIn, | 
        
          |  |  | std::vector< uint32_t > & | outRobIDList | 
        
          |  | ) |  | const | 
      
 
 
◆ removeDuplicates()
template<typename T > 
  
  | 
        
          | static void IRegSelLUT::removeDuplicates | ( | std::vector< T > & | vec | ) |  |  | inlinestaticprotectedinherited | 
 
useful for removing duplicates if required ... 
Definition at line 78 of file IRegSelLUT.h.
   80     vec.erase(std::unique(
vec.begin(), 
vec.end()), 
vec.end());
 
 
 
 
◆ ROBIDList() [1/2]
  
  | 
        
          | void RegSelectorHashMap::ROBIDList | ( | const IRoiDescriptor & | roi, |  
          |  |  | std::vector< uint32_t > & | roblist |  
          |  | ) |  | const |  | overridevirtual | 
 
 
◆ ROBIDList() [2/2]
  
  | 
        
          | void RegSelectorHashMap::ROBIDList | ( | long | layer, |  
          |  |  | const IRoiDescriptor & | roi, |  
          |  |  | std::vector< uint32_t > & | roblist |  
          |  | ) |  | const |  | overridevirtual | 
 
ROBIDList interface declaration. This interface can be used by the ID subdetectors. A list of non-repeated ROBIDs (uint_32_t) is returned by a reference. 
- Parameters
- 
  
    | long | layer,long int to decide which layer within the detector. |  | IRoiDescriptor | the IRoiDescriptorfor the roi, all enabled elements in the roi are found. |  
 
- Returns
- std::vector<uint32_t> which is a list of non-repeated ROBID numbers. 
Implements IRegSelLUT.
Definition at line 34 of file RegSelectorHashMap.cxx.
 
 
◆ ROBIDList_internal() [1/2]
  
  | 
        
          | void RegSelectorHashMap::ROBIDList_internal | ( | const IRoiDescriptor & | roi, |  
          |  |  | std::vector< uint32_t > & | roblist |  
          |  | ) |  | const |  | protectedvirtual | 
 
 
◆ ROBIDList_internal() [2/2]
  
  | 
        
          | void RegSelectorHashMap::ROBIDList_internal | ( | long | layer, |  
          |  |  | const IRoiDescriptor & | roi, |  
          |  |  | std::vector< uint32_t > & | roblist |  
          |  | ) |  | const |  | protectedvirtual | 
 
 
◆ robIdOut()
      
        
          | const std::vector< std::vector< uint32_t > > & RegSelectorHashMap::robIdOut | ( | void |  | ) | const | 
      
 
 
◆ sampleOut()
      
        
          | const std::vector< int > & RegSelectorHashMap::sampleOut | ( | void |  | ) | const | 
      
 
 
◆ summaryDataFile()
Definition at line 675 of file RegSelectorHashMap.cxx.
  677       it != dataList.end(); ++
it){ 
 
  678     std::cout << 
"position: " << (*it).layerDiskPosition() << 
" number: " << (*it).layerDiskNumber() << std::endl;
 
  681     std::cout << 
"hashId: ";
 
  682     std::vector<IdentifierHash> aux = (*it).hashId();
 
  684       std::cout << (*i) << 
" ";
 
  685     std::cout << std::endl;
 
 
 
 
◆ verifyInputs()
      
        
          | void RegSelectorHashMap::verifyInputs | ( | double & | etaminIn, | 
        
          |  |  | double & | etamaxIn, | 
        
          |  |  | double & | phiminIn, | 
        
          |  |  | double & | phimaxIn | 
        
          |  | ) |  | const | 
      
 
Definition at line 690 of file RegSelectorHashMap.cxx.
  694     while (phiminIn > 2*
M_PI ) phiminIn -= 2*
M_PI;
 
  695     while (phiminIn < 0      ) phiminIn += 2*
M_PI;
 
  696     while (phimaxIn > 2*
M_PI ) phimaxIn -= 2*
M_PI;
 
  697     while (phimaxIn < 0      ) phimaxIn += 2*
M_PI;
 
  699     while (phiminIn > 
M_PI  ) phiminIn -= 2*
M_PI;
 
  700     while (phiminIn < -
M_PI ) phiminIn += 2*
M_PI;
 
  701     while (phimaxIn > 
M_PI  ) phimaxIn -= 2*
M_PI;
 
  702     while (phimaxIn < -
M_PI ) phimaxIn += 2*
M_PI;
 
 
 
 
◆ verifyOutput() [1/2]
      
        
          | void RegSelectorHashMap::verifyOutput | ( | double | etaminIn, | 
        
          |  |  | double | etamaxIn, | 
        
          |  |  | double | phiminIn, | 
        
          |  |  | double | phimaxIn, | 
        
          |  |  | std::vector< IdentifierHash > * | outputIdlist | 
        
          |  | ) |  | const | 
      
 
Definition at line 850 of file RegSelectorHashMap.cxx.
  854   std::set<IdentifierHash> myset;
 
  855   std::vector<IdentifierHash> outset;
 
  856   double etamin, etamax, etatmp, phimintmp, phimaxtmp;
 
  859   if(etaminIn > etamaxIn){
 
  865   phimintmp = phiminIn;
 
  866   phimaxtmp = phimaxIn;
 
  868   for(
i= 0; 
i < vecsize; ++
i){
 
  875     if(phiminIn > phimaxIn ){
 
  879       phimaxIn = phimaxtmp;
 
  885     phiminIn = phimintmp; phimaxIn = phimaxtmp;
 
  889   for(
it = myset.begin(); 
it!= myset.end(); ++
it){
 
  890     outset.push_back(*
it);
 
  893   if(outset == (*outputIdlist) ){
 
  894     std::cout << 
"equal vectors " << std::endl;
 
  897     std::cout << 
"eta(" << etaminIn << 
"," << etamaxIn << 
")   phi(" << phiminIn << 
"," << phimaxIn << 
")" << std::endl;
 
  898     std::cout << 
"desired output ";
 
  899     for(
unsigned int i=0; 
i < outset.size(); ++
i)
 
  900       std::cout << std::dec << outset[
i] << 
" ";
 
  901     std::cout << std::endl;
 
  902     std::cout << 
"obtained output ";
 
  903     for(
unsigned int i=0; 
i < (*outputIdlist).size(); ++
i)
 
  904       std::cout << std::dec << (*outputIdlist)[
i] << 
" ";
 
  905     std::cout << std::endl;
 
 
 
 
◆ verifyOutput() [2/2]
      
        
          | void RegSelectorHashMap::verifyOutput | ( | int | sampling, | 
        
          |  |  | double | etaminIn, | 
        
          |  |  | double | etamaxIn, | 
        
          |  |  | double | phiminIn, | 
        
          |  |  | double | phimaxIn, | 
        
          |  |  | std::vector< IdentifierHash > * | outputIdlist | 
        
          |  | ) |  | const | 
      
 
Definition at line 909 of file RegSelectorHashMap.cxx.
  913   std::set<IdentifierHash> myset;
 
  914   std::vector<IdentifierHash> outset;
 
  915   double etamin, etamax, etatmp, phimintmp, phimaxtmp;
 
  918   if(etaminIn > etamaxIn){
 
  924   phimintmp = phiminIn;
 
  925   phimaxtmp = phimaxIn;
 
  927   for(
i= 0; 
i < vecsize; ++
i){
 
  935       if(phiminIn > phimaxIn ){
 
  939         phimaxIn = phimaxtmp;
 
  946     phiminIn = phimintmp; phimaxIn = phimaxtmp;
 
  950   for(
it = myset.begin(); 
it!= myset.end(); ++
it){
 
  951     outset.push_back(*
it);
 
  954   if(outset == (*outputIdlist) ){
 
  955     std::cout << 
"equal vectors " << std::endl;
 
  958     std::cout << 
"sampling " << sampling << 
"eta(" << etaminIn << 
"," << etamaxIn << 
")   phi(" << phiminIn << 
"," << phimaxIn << 
")" << std::endl;
 
  959     std::cout << 
"desired output ";
 
  960     for(
unsigned int i=0; 
i < outset.size(); ++
i)
 
  961       std::cout << std::dec << outset[
i] << 
" ";
 
  962     std::cout << std::endl;
 
  963     std::cout << 
"obtained output ";
 
  964     for(
unsigned int i=0; 
i < (*outputIdlist).size(); ++
i)
 
  965       std::cout << std::dec << (*outputIdlist)[
i] << 
" ";
 
  966     std::cout << std::endl;
 
 
 
 
◆ verifyROBIDOutput() [1/2]
      
        
          | void RegSelectorHashMap::verifyROBIDOutput | ( | double | etaminIn, | 
        
          |  |  | double | etamaxIn, | 
        
          |  |  | double | phiminIn, | 
        
          |  |  | double | phimaxIn, | 
        
          |  |  | std::vector< uint32_t > & | outputIdlist | 
        
          |  | ) |  | const | 
      
 
Definition at line 719 of file RegSelectorHashMap.cxx.
  723   std::set<uint32_t> myset;
 
  724   std::vector<uint32_t> outset;
 
  725   std::vector<std::vector<uint32_t> > 
identifier;
 
  726   double etamin, etamax, etatmp, phimintmp, phimaxtmp;
 
  731   if(etaminIn > etamaxIn){
 
  737   phimintmp = phiminIn;
 
  738   phimaxtmp = phimaxIn;
 
  740   for(
i= 0; 
i < vecsize; ++
i){
 
  747     if(phiminIn > phimaxIn ){
 
  751       phimaxIn = phimaxtmp;
 
  757     phiminIn = phimintmp; phimaxIn = phimaxtmp;
 
  761   for(
it = myset.begin(); 
it!= myset.end(); ++
it){
 
  762     outset.push_back(*
it);
 
  765   if( (outset == outputIdlist) || (outputIdlist.size() >= outset.size()) ){
 
  766     std::cout << 
"equal vectors " << std::endl;
 
  769     std::cout << 
"nonequal vectors " << std::endl;
 
  770     std::cout << 
"eta(" << etaminIn << 
"," << etamaxIn << 
")   phi(" << phiminIn << 
"," << phimaxIn << 
")" << std::endl;
 
  771     std::cout << 
"desired output ";
 
  772     for(
unsigned int i=0; 
i < outset.size(); ++
i)
 
  773       std::cout << std::dec << outset[
i] << 
" ";
 
  774     std::cout << std::endl;
 
  775     std::cout << 
"obtained output ";
 
  776     for(
unsigned int i=0; 
i < outputIdlist.size(); ++
i)
 
  777       std::cout << std::dec << outputIdlist[
i] << 
" ";
 
  778     std::cout << std::endl;
 
 
 
 
◆ verifyROBIDOutput() [2/2]
      
        
          | void RegSelectorHashMap::verifyROBIDOutput | ( | int | sampling, | 
        
          |  |  | double | etaminIn, | 
        
          |  |  | double | etamaxIn, | 
        
          |  |  | double | phiminIn, | 
        
          |  |  | double | phimaxIn, | 
        
          |  |  | std::vector< uint32_t > & | outputIdlist | 
        
          |  | ) |  | const | 
      
 
Definition at line 783 of file RegSelectorHashMap.cxx.
  789   std::set<uint32_t> myset;
 
  790   std::vector<std::vector<uint32_t> > 
identifier;
 
  791   std::vector<uint32_t> outset;
 
  792   double etamin, etamax, etatmp, phimintmp, phimaxtmp;
 
  797   if(etaminIn > etamaxIn){
 
  803   phimintmp = phiminIn;
 
  804   phimaxtmp = phimaxIn;
 
  806   for(
i= 0; 
i < vecsize; ++
i){
 
  814       if(phiminIn > phimaxIn ){
 
  818         phimaxIn = phimaxtmp;
 
  825     phiminIn = phimintmp; phimaxIn = phimaxtmp;
 
  829   for(
it = myset.begin(); 
it!= myset.end(); ++
it){
 
  830     outset.push_back(*
it);
 
  833   if(outset == outputIdlist){
 
  834     std::cout << 
"equal vectors " << std::endl;
 
  837     std::cout << 
"sampling " << sampling << 
"eta(" << etaminIn << 
"," << etamaxIn << 
")   phi(" << phiminIn << 
"," << phimaxIn << 
")" << std::endl;
 
  838     std::cout << 
"desired output ";
 
  839     for(
unsigned int i=0; 
i < outset.size(); ++
i)
 
  840       std::cout << std::dec << outset[
i] << 
" ";
 
  841     std::cout << std::endl;
 
  842     std::cout << 
"obtained output ";
 
  843     for(
unsigned int i=0; 
i < outputIdlist.size(); ++
i)
 
  844       std::cout << std::dec << outputIdlist[
i] << 
" ";
 
  845     std::cout << std::endl;
 
 
 
 
◆ writeLine()
◆ m_dataList
◆ m_etamax
  
  | 
        
          | std::vector<double> RegSelectorHashMap::m_etamax |  | private | 
 
 
◆ m_etamaxDet
  
  | 
        
          | double RegSelectorHashMap::m_etamaxDet {} |  | private | 
 
 
◆ m_etamin
  
  | 
        
          | std::vector<double> RegSelectorHashMap::m_etamin |  | private | 
 
 
◆ m_etaminDet
  
  | 
        
          | double RegSelectorHashMap::m_etaminDet {} |  | private | 
 
 
◆ m_hashId
◆ m_hashIDMap
◆ m_iColumns
  
  | 
        
          | int RegSelectorHashMap::m_iColumns {} |  | private | 
 
 
◆ m_iLines
  
  | 
        
          | int RegSelectorHashMap::m_iLines {} |  | private | 
 
 
◆ m_layer
  
  | 
        
          | std::vector<int> RegSelectorHashMap::m_layer |  | private | 
 
 
◆ m_NumSamples
  
  | 
        
          | int RegSelectorHashMap::m_NumSamples {} |  | private | 
 
 
◆ m_phimax
  
  | 
        
          | std::vector<double> RegSelectorHashMap::m_phimax |  | private | 
 
 
◆ m_phimaxDet
  
  | 
        
          | double RegSelectorHashMap::m_phimaxDet {} |  | private | 
 
 
◆ m_phimin
  
  | 
        
          | std::vector<double> RegSelectorHashMap::m_phimin |  | private | 
 
 
◆ m_phiminDet
  
  | 
        
          | double RegSelectorHashMap::m_phiminDet {} |  | private | 
 
 
◆ m_readFromFile
  
  | 
        
          | bool RegSelectorHashMap::m_readFromFile {} |  | private | 
 
 
◆ m_robId
  
  | 
        
          | std::vector<std::vector<uint32_t> > RegSelectorHashMap::m_robId |  | private | 
 
 
◆ m_robIDMap
  
  | 
        
          | std::vector<std::vector<uint32_t> > RegSelectorHashMap::m_robIDMap |  | private | 
 
 
◆ m_sample
  
  | 
        
          | std::vector<int> RegSelectorHashMap::m_sample |  | private | 
 
 
◆ m_stepMinEta
  
  | 
        
          | double RegSelectorHashMap::m_stepMinEta {} |  | private | 
 
 
◆ m_stepMinPhi
  
  | 
        
          | double RegSelectorHashMap::m_stepMinPhi {} |  | private | 
 
 
The documentation for this class was generated from the following files:
 
JetConstituentVector::iterator iterator
std::vector< IdentifierHash > m_hashId
void populateMatrix(int iPage, IdentifierHash value)
void findIdentifierROB(std::vector< uint32_t > &auxset, const int iXBeg, const int iXEnd, const int iYBeg, const int iYEnd, const int iPage) const
virtual void ROBIDList_internal(const IRoiDescriptor &roi, std::vector< uint32_t > &roblist) const
rob methods
int sampling(int hashId) const
virtual double etaMinus() const =0
std::vector< std::vector< uint32_t > > m_robId
void regionSelectorIN(const int &sampling, const double &etaminIn, const double &etamaxIn, const double &phiminIn, const double &phimaxIn, std::vector< IdentifierHash > *outListIH) const
virtual unsigned size() const =0
number of constituents
void findIdentifier(std::vector< IdentifierHash > &auxsetIH, const int iXBeg, const int iXEnd, const int iYBeg, const int iYEnd, const int iPage) const
std::vector< std::vector< uint32_t > > m_robIDMap
std::vector< size_t > vec
unsigned int maxHash(void) const
std::vector< double > m_etamax
virtual double etaPlus() const =0
double etaMin(int hashId) const
virtual void HashIDList_internal(const IRoiDescriptor &roi, std::vector< IdentifierHash > &idlist) const
internal implementation of the IRegSelUT interface
void sort(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of sort for DataVector/List.
double phiMax(int hashId) const
std::vector< double > m_phimax
void regionSelectorINROB(const int &sampling, const double &etaminIn, const double &etamaxIn, const double &phiminIn, const double &phimaxIn, std::vector< uint32_t > *outList) const
::StatusCode StatusCode
StatusCode definition for legacy code.
std::vector< int > m_sample
void writeLine(const int &layer, const IdentifierHash &hashId, const std::vector< uint32_t > &robId, const double &emin, const double &emax, const double &pmin, const double &pmax, const int &samp)
void verifyInputs(double &etaminIn, double &etamaxIn, double &phiminIn, double &phimaxIn) const
virtual double phiMinus() const =0
std::vector< double > m_etamin
std::vector< double > m_phimin
std::vector< int > m_layer
virtual double phiPlus() const =0
extreme phi values
int robId(int hashId) const
void phiCondition(const std::vector< IdentifierHash > &identifier, int i, double etaminIn, double etamaxIn, double phiminIn, double phimaxIn, double etamin, double etamax, std::set< IdentifierHash > *outset) const
void regionSelectorRobIdUint(double etaminIn, double etamaxIn, double phiminIn, double phimaxIn, std::vector< uint32_t > &outRobIDList) const
int layerDiskNumber(int hashId) const
double etaMax(int hashId) const
DataModel_detail::iterator< DVL > unique(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of unique for DataVector/List.
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
static std::string find_file(const std::string &logical_file_name, const std::string &search_path)
virtual bool isFullscan() const =0
is this a full detector RoI?
void regionSelector(double etaminIn, double etamaxIn, double phiminIn, double phimaxIn, std::vector< IdentifierHash > &outList) const
void phiConditionRobId(const std::vector< std::vector< uint32_t > > &identifier, int i, double etaminIn, double etamaxIn, double phiminIn, double phimaxIn, double etamin, double etamax, std::set< uint32_t > *outset) const
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
virtual const IRoiDescriptor * at(int i) const =0
find an RoiDescriptor constituent
int MyRound(double pdValue)
static void removeDuplicates(std::vector< T > &vec)
useful for removing duplicates if required ...
int hashId(int value) const
virtual bool composite() const =0
Super RoI access methods.
std::vector< IdentifierHash > m_hashIDMap
double phiMin(int hashId) const