CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Static Public Member Functions | Private Attributes
l1t::CaloStage2Nav Class Reference

#include <CaloStage2Nav.h>

Public Member Functions

 CaloStage2Nav ()
 
 CaloStage2Nav (int iEta, int iPhi)
 
 CaloStage2Nav (std::pair< int, int > pos)
 
int currIEta () const
 
int currIPhi () const
 
std::pair< int, int > currPos () const
 
std::pair< int, int > east ()
 
std::pair< int, int > move (int iEtaOffset, int iPhiOffset)
 
std::pair< int, int > north ()
 
std::pair< int, int > offsetFromCurrPos (int iEtaOffset, int iPhiOffset) const
 
void resetIEta ()
 
void resetIPhi ()
 
void resetPos ()
 
void setHomePos (int iEta, int iPhi)
 
void setHomePos (std::pair< int, int > pos)
 
std::pair< int, int > south ()
 
std::pair< int, int > west ()
 

Static Public Member Functions

static int offsetIEta (int iEta, int offset)
 
static int offsetIPhi (int iPhi, int offset)
 

Private Attributes

std::pair< int, int > currPos_
 
std::pair< int, int > homePos_
 

Detailed Description

Definition at line 23 of file CaloStage2Nav.h.

Constructor & Destructor Documentation

l1t::CaloStage2Nav::CaloStage2Nav ( )

Definition at line 3 of file CaloStage2Nav.cc.

4 {
5 
6 }
std::pair< int, int > homePos_
Definition: CaloStage2Nav.h:70
std::pair< int, int > currPos_
Definition: CaloStage2Nav.h:71
l1t::CaloStage2Nav::CaloStage2Nav ( int  iEta,
int  iPhi 
)

Definition at line 8 of file CaloStage2Nav.cc.

8  :homePos_(iEta,iPhi),currPos_(homePos_)
9 {
10 
11 }
std::pair< int, int > homePos_
Definition: CaloStage2Nav.h:70
std::pair< int, int > currPos_
Definition: CaloStage2Nav.h:71
l1t::CaloStage2Nav::CaloStage2Nav ( std::pair< int, int >  pos)
explicit

Definition at line 13 of file CaloStage2Nav.cc.

14 {
15 
16 }
std::pair< int, int > homePos_
Definition: CaloStage2Nav.h:70
std::pair< int, int > currPos_
Definition: CaloStage2Nav.h:71

Member Function Documentation

int l1t::CaloStage2Nav::currIEta ( ) const
inline

Definition at line 60 of file CaloStage2Nav.h.

References currPos().

Referenced by l1t::CaloTools::calNrTowers().

60 {return currPos().first;}
std::pair< int, int > currPos() const
Definition: CaloStage2Nav.h:59
int l1t::CaloStage2Nav::currIPhi ( ) const
inline

Definition at line 61 of file CaloStage2Nav.h.

References currPos().

Referenced by l1t::CaloTools::calNrTowers().

61 {return currPos().second;}
std::pair< int, int > currPos() const
Definition: CaloStage2Nav.h:59
std::pair<int,int> l1t::CaloStage2Nav::currPos ( ) const
inline

Definition at line 59 of file CaloStage2Nav.h.

References currPos_.

Referenced by currIEta(), and currIPhi().

59 {return currPos_;}
std::pair< int, int > currPos_
Definition: CaloStage2Nav.h:71
std::pair<int,int> l1t::CaloStage2Nav::east ( )
inline

Definition at line 56 of file CaloStage2Nav.h.

References move().

Referenced by l1t::CaloTools::calNrTowers().

56 {return move(1,0);}
std::pair< int, int > move(int iEtaOffset, int iPhiOffset)
std::pair< int, int > l1t::CaloStage2Nav::move ( int  iEtaOffset,
int  iPhiOffset 
)

Definition at line 26 of file CaloStage2Nav.cc.

Referenced by east(), north(), south(), Vispa.Gui.PortConnection.PointToPointConnection::updateConnection(), and west().

27 {
28  currPos_.first=offsetIEta(currPos_.first,iEtaOffset);
29  currPos_.second=offsetIPhi(currPos_.second,iPhiOffset);
30  return currPos_;
31 }
static int offsetIEta(int iEta, int offset)
Definition: CaloStage2Nav.h:43
static int offsetIPhi(int iPhi, int offset)
Definition: CaloStage2Nav.h:32
std::pair< int, int > currPos_
Definition: CaloStage2Nav.h:71
std::pair<int,int> l1t::CaloStage2Nav::north ( )
inline

Definition at line 54 of file CaloStage2Nav.h.

References move().

Referenced by l1t::CaloTools::calNrTowers().

54 {return move(0,1);}
std::pair< int, int > move(int iEtaOffset, int iPhiOffset)
std::pair< int, int > l1t::CaloStage2Nav::offsetFromCurrPos ( int  iEtaOffset,
int  iPhiOffset 
) const

Definition at line 18 of file CaloStage2Nav.cc.

19 {
20  std::pair<int,int> offsetPos;
21  offsetPos.first = offsetIEta(currPos_.first,iEtaOffset);
22  offsetPos.second = offsetIPhi(currPos_.second,iPhiOffset);
23  return offsetPos;
24 }
static int offsetIEta(int iEta, int offset)
Definition: CaloStage2Nav.h:43
static int offsetIPhi(int iPhi, int offset)
Definition: CaloStage2Nav.h:32
std::pair< int, int > currPos_
Definition: CaloStage2Nav.h:71
static int l1t::CaloStage2Nav::offsetIEta ( int  iEta,
int  offset 
)
inlinestatic

Definition at line 43 of file CaloStage2Nav.h.

References funct::abs(), and hltrates_dqm_sourceclient-live_cfg::offset.

Referenced by l1t::CaloTools::calHwEtSum(), l1t::Stage2Layer2ClusterAlgorithmFirmwareImp1::clustering(), l1t::Stage2Layer2ClusterAlgorithmFirmwareImp1::filtering(), l1t::Stage2Layer2TauAlgorithmFirmwareImp1::merging(), l1t::Stage2Layer2EGammaAlgorithmFirmwareImp1::processEvent(), l1t::Stage2Layer2ClusterAlgorithmFirmwareImp1::refining(), and l1t::Stage2Layer2ClusterAlgorithmFirmwareImp1::sharing().

43  {
44  if(iEta==0) return 0;//invalid starting position
45  else if(iEta*offset>=0) return iEta+offset; //same sign so cant cross zero
46  else if(std::abs(iEta)>std::abs(offset)) return iEta+offset; //offset smaller than iEta, cant cross zero
47  else if(iEta>0) return iEta+offset-1; //must cross zero, if initial iEta postive, then need to sub 1 from result
48  else return iEta+offset+1;
49  }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
static int l1t::CaloStage2Nav::offsetIPhi ( int  iPhi,
int  offset 
)
inlinestatic

Definition at line 32 of file CaloStage2Nav.h.

References hltrates_dqm_sourceclient-live_cfg::offset.

Referenced by l1t::CaloTools::calHwEtSum(), l1t::Stage2Layer2ClusterAlgorithmFirmwareImp1::clustering(), l1t::Stage2Layer2ClusterAlgorithmFirmwareImp1::filtering(), l1t::Stage2Layer2TauAlgorithmFirmwareImp1::merging(), l1t::Stage2Layer2EGammaAlgorithmFirmwareImp1::processEvent(), l1t::Stage2Layer2ClusterAlgorithmFirmwareImp1::refining(), and l1t::Stage2Layer2ClusterAlgorithmFirmwareImp1::sharing().

32  {
33  if(iPhi==0) return 0; //some debate here on whether I should accept 0 and just cast it to 72, I've decided that it is less confusing for 0,0 (the invalid position) to not move eta or phi rather than allowing phi to move
34  else {
35  iPhi+=offset;
36  while(iPhi<=0) iPhi+=72;
37  while(iPhi>72) iPhi-=72;
38  return iPhi;
39  }
40  }
void l1t::CaloStage2Nav::resetIEta ( )
inline

Definition at line 64 of file CaloStage2Nav.h.

References currPos_, and homePos_.

64 {currPos_.first=homePos_.first;}
std::pair< int, int > homePos_
Definition: CaloStage2Nav.h:70
std::pair< int, int > currPos_
Definition: CaloStage2Nav.h:71
void l1t::CaloStage2Nav::resetIPhi ( )
inline

Definition at line 65 of file CaloStage2Nav.h.

References currPos_, and homePos_.

Referenced by l1t::CaloTools::calNrTowers().

65 {currPos_.second=homePos_.second;}
std::pair< int, int > homePos_
Definition: CaloStage2Nav.h:70
std::pair< int, int > currPos_
Definition: CaloStage2Nav.h:71
void l1t::CaloStage2Nav::resetPos ( )
inline

Definition at line 63 of file CaloStage2Nav.h.

References currPos_, and homePos_.

std::pair< int, int > homePos_
Definition: CaloStage2Nav.h:70
std::pair< int, int > currPos_
Definition: CaloStage2Nav.h:71
void l1t::CaloStage2Nav::setHomePos ( int  iEta,
int  iPhi 
)
inline

Definition at line 66 of file CaloStage2Nav.h.

References homePos_.

66 {homePos_.first=iEta;homePos_.second=iPhi;}
std::pair< int, int > homePos_
Definition: CaloStage2Nav.h:70
void l1t::CaloStage2Nav::setHomePos ( std::pair< int, int >  pos)
inline

Definition at line 67 of file CaloStage2Nav.h.

References setHomePos().

Referenced by setHomePos().

67 {setHomePos(pos.first,pos.second);}
void setHomePos(int iEta, int iPhi)
Definition: CaloStage2Nav.h:66
std::pair<int,int> l1t::CaloStage2Nav::south ( )
inline

Definition at line 55 of file CaloStage2Nav.h.

References move().

55 {return move(0,-1);}
std::pair< int, int > move(int iEtaOffset, int iPhiOffset)
std::pair<int,int> l1t::CaloStage2Nav::west ( )
inline

Definition at line 57 of file CaloStage2Nav.h.

References move().

57 {return move(-1,0);}
std::pair< int, int > move(int iEtaOffset, int iPhiOffset)

Member Data Documentation

std::pair<int,int> l1t::CaloStage2Nav::currPos_
private

Definition at line 71 of file CaloStage2Nav.h.

Referenced by currPos(), resetIEta(), resetIPhi(), and resetPos().

std::pair<int,int> l1t::CaloStage2Nav::homePos_
private

Definition at line 70 of file CaloStage2Nav.h.

Referenced by resetIEta(), resetIPhi(), resetPos(), and setHomePos().