CMS 3D CMS Logo

Public Member Functions

L1RCTNeighborMap Class Reference

#include <L1RCTNeighborMap.h>

List of all members.

Public Member Functions

std::vector< int > east (int crate, int card, int region)
std::vector< int > ne (int crate, int card, int region)
std::vector< int > north (int crate, int card, int region)
std::vector< int > nw (int crate, int card, int region)
std::vector< int > se (int crate, int card, int region)
std::vector< int > south (int crate, int card, int region)
std::vector< int > sw (int crate, int card, int region)
std::vector< int > west (int crate, int card, int region)

Detailed Description

Definition at line 5 of file L1RCTNeighborMap.h.


Member Function Documentation

vector< int > L1RCTNeighborMap::east ( int  crate,
int  card,
int  region 
)

Definition at line 150 of file L1RCTNeighborMap.cc.

Referenced by L1RCT::shareNeighbors().

                                                                {
  int newcrate(0),newcard(0),newregion(0);
  std::vector<int> east(3);
  if(crate < 9){
    if(card != 0 && card != 1 && card != 6){
      newcrate = crate;
      if(region == 0){
        newregion = region+1;
        newcard = card-2;
      }
      else{
        newregion = region-1;
        newcard = card;
      }
    }
    else if(card == 0 || card == 1){
      newcard = card;
      if(region == 0){
        newcrate = crate+9;
        newregion = region;
      }
      else {
        newcrate = crate;
        newregion = region-1;
      }
    }
    else if(card == 6){
      newcrate = crate;
      newregion = 1;
      if(region == 0)
        newcard = 4;
      else
        newcard = 5;
    }
  }
  else {
    newcrate = crate;
    if(card != 6){
      if(region == 0){
        newcard = card;
        newregion = region+1;
      }
      else{
        if(card != 4 && card != 5){
          newcard = card+2;
          newregion = region-1;
        }
        else if(card == 4){
          newcard = 6;
          newregion = 0;
        }
        else if(card == 5){
          newcard = 6;
          newregion = 1;
        }
      }
    }
    else{
      newcrate = -1;
      newcard = -1;
      newregion = -1;
    }
  }
  east.at(0) = newcrate;
  east.at(1) = newcard;
  east.at(2) = newregion;
  return east;
}
vector< int > L1RCTNeighborMap::ne ( int  crate,
int  card,
int  region 
)

Definition at line 449 of file L1RCTNeighborMap.cc.

Referenced by L1RCT::shareNeighbors().

                                                             {
  int newcrate(0),newcard(0),newregion(0);
  std::vector<int> ne(3);
  if(crate < 9){
    if(card == 0){
      newregion = 0;
      newcard = 1;
      if(region == 0){
        if(crate != 0)
          newcrate = crate +8;
        else
          newcrate = 17;
      }
      else{
        if(crate != 0)
          newcrate = crate-1;
        else
          newcrate = 8;
      }
    }
    else if(card == 1){
      newregion = 0;
      newcard = 0;
      if(region == 0)
        newcrate = crate+9;
      else
        newcrate = crate;
    }
    else if(card == 2 || card == 4){
      newregion = !region;
      newcard = card-1+2*region;
      if(crate != 0)
        newcrate = crate-1;
      else
        newcrate = 8;
    }
    else if(card == 5 || card == 3){
      newregion = !region;
      newcard = card-3+2*region;
      newcrate = crate;
    }
    else if(card == 6){
      newregion = 1;
      if(region==0){
        newcard = 5;
        if(crate != 0)
          newcrate = crate-1;
        else
          newcrate = 8;
      }
      else {
        newcard = 4;
        newcrate = crate;
      }
    }
  }
  else {
    if(card == 0 || card ==2){
      newregion = !region;
      newcard = card+1+2*region;
      if(crate!=9)
        newcrate = crate-1;
      else
        newcrate = 17;
    }
    else if(card == 1 || card == 3){
      newregion = !region;
      newcard = card-1+2*region;
      newcrate = crate;
    }
    else if(card == 4){
      newregion = 1;
      if(crate != 9)
        newcrate = crate-1;
      else
        newcrate = 17;
      if(region == 0)
        newcard = 5;
      else
        newcard = 6;
    }
    else if(card == 5){
      newregion = !region;
      newcrate = crate;
      if(region == 0)
        newcard = 4;
      else
        newcard = 6;
    }
    else if(card == 6){
      newcrate = -1;
      newcard = -1;
      newregion = -1;
    }
  }
  ne.at(0) = newcrate;
  ne.at(1) = newcard;
  ne.at(2) = newregion;
  return ne;
}
vector< int > L1RCTNeighborMap::north ( int  crate,
int  card,
int  region 
)

Definition at line 6 of file L1RCTNeighborMap.cc.

References north().

Referenced by north(), and L1RCT::shareNeighbors().

                                                                {
  std::vector<int> north(3);
  int newregion(0),newcard(0),newcrate(0);
  if(card == 0 || card == 2 || card == 4){
    newcard = card+1;
    newregion = region;
    if(crate != 0 && crate != 9)
      newcrate = crate-1;
    else
      newcrate = crate+8;
  }
  else if(card == 1 || card == 3 || card == 5){
    newcard = card-1;
    newregion = region;
    newcrate = crate;
  }
  else if(card == 6){
    if(region == 0){
      newcard = card;
      newregion = region+1;
      if(crate != 0 && crate != 9)
        newcrate = crate-1;
      else
        newcrate = crate+8;
    }
    else {
      newcard = card;
      newregion = region-1;
      newcrate = crate;
    }
  }
  north.at(0) = newcrate;
  north.at(1) = newcard;
  north.at(2) = newregion;
  return north;
}
vector< int > L1RCTNeighborMap::nw ( int  crate,
int  card,
int  region 
)

Definition at line 550 of file L1RCTNeighborMap.cc.

Referenced by L1RCT::shareNeighbors().

                                                             {
  int newcrate(0),newcard(0),newregion(0);
  std::vector<int> nw(3);
  if(crate > 8){
    if(card == 0){
      newregion = 0;
      newcard = 1;
      if(region == 0){
        if(crate != 9)
          newcrate = crate -10;
        else
          newcrate = 8;
      }
      else{
        if(crate != 9)
          newcrate = crate-1;
        else
          newcrate = 17;
      }
    }
    else if(card == 1){
      newregion = 0;
      newcard = 0;
      if(region == 0)
        newcrate = crate-9;
      else
        newcrate = crate;
    }
    else if(card == 2 || card == 4){
      newregion = !region;
      newcard = card-1+2*region;
      if(crate != 9)
        newcrate = crate-1;
      else
        newcrate = 17;
    }
    else if(card == 5 || card == 3){
      newregion = !region;
      newcard = card-3+2*region;
      newcrate = crate;
    }
    else if(card == 6){
      newregion = 1;
      if(region==0){
        newcard = 5;
        if(crate != 9)
          newcrate = crate-1;
        else
          newcrate = 17;
      }
      else {
        newcard = 4;
        newcrate = crate;
      }
    }
  }
  else {
    if(card == 0 || card ==2){
      newregion = !region;
      newcard = card+1+2*region;
      if(crate!=0)
        newcrate = crate-1;
      else
        newcrate = 8;
    }
    else if(card == 1 || card == 3){
      newregion = !region;
      newcard = card-1+2*region;
      newcrate = crate;
    }
    else if(card == 4){
      newregion = 1;
      if(crate != 0)
        newcrate = crate-1;
      else
        newcrate = 8;
      if(region == 0)
        newcard = 5;
      else
        newcard = 6;
    }
    else if(card == 5){
      newregion = !region;
      newcrate = crate;
      if(region == 0)
        newcard = 4;
      else
        newcard = 6;
    }
    else if(card == 6){
      newcrate = -1;
      newcard = -1;
      newregion = -1;
    }
  }
  nw.at(0) = newcrate;
  nw.at(1) = newcard;
  nw.at(2) = newregion;
  return nw;
}
vector< int > L1RCTNeighborMap::se ( int  crate,
int  card,
int  region 
)

Definition at line 219 of file L1RCTNeighborMap.cc.

Referenced by L1RCT::shareNeighbors().

                                                             {
  int newcrate(0),newcard(0),newregion(0);
  std::vector<int> se(3);
  if(crate < 9){
    if(card == 0){
      if(region == 0){
        newcrate = crate+9;
        newregion = region;
        newcard = 1;
      }
      else{
        newcrate = crate;
        newregion = 0;
        newcard = 1;
      }
    }
    else if(card == 1){
      if(region == 0){
        if(crate != 8)
          newcrate = crate+10;
        else 
          newcrate = 9;
        newregion = 0;
        newcard = 0;
      }
      else {
        if(crate != 8)
          newcrate = crate+1;
        else
          newcrate = 0;
        newregion = 0;
        newcard = 0;
      }
    }
    else if(card == 2 || card == 4){
      newcrate = crate;
      newregion = !region;
      newcard = card-1+2*region;
    }
    else if(card == 5 || card == 3){
      newregion = !region;
      newcard = card-3+2*region;
      if(crate != 8)
        newcrate = crate+1;
      else
        newcrate = 0;
    }
    else if(card == 6){
      if(region == 0){
        newcard = 5;
        newregion = 1;
        newcrate = crate;
      }
      else{
        newcard = 4;
        newregion = 1;
        if(crate != 8)
          newcrate = crate+1;
        else
          newcrate = 0;
      }
    }
  }
  else{
    if(card == 0 || card == 2){
      newregion = !region;
      newcrate = crate;
      newcard = card+2*region+1;
    }
    else if(card == 1 || card == 3){
      newregion = !region;
      newcard = card-1+2*region;
      if(crate != 17)
        newcrate = crate+1;
      else
        newcrate = 9;
    }
    else if(card == 4){
      newcrate = crate;
      if(region == 0){
        newregion = 1;
        newcard = 5;
      }
      else{
        newregion = 1;
        newcard = 6;
      }
    }
    else if(card == 5){
      if(region == 0){
        newcard = 4;
        newregion = 1;
      }
      else{
        newcard = 6;
        newregion = 0;
      }
      if(crate != 17)
        newcrate = crate+1;
      else 
        newcrate = 9;
    }
    else if(card == 6){
      newcard = -1;
      newregion = -1;
      newcrate = -1;
    }
  }

  se.at(0) = newcrate;
  se.at(1) = newcard;
  se.at(2) = newregion;
  return se;
}
vector< int > L1RCTNeighborMap::south ( int  crate,
int  card,
int  region 
)

Definition at line 43 of file L1RCTNeighborMap.cc.

Referenced by L1RCT::shareNeighbors().

                                                                  {
  int newcrate(0),newcard(0),newregion(0);
  std::vector<int> south(3);
  if(card == 0 || card == 2 || card == 4){
    newcard = card+1;
    newregion = region;
    newcrate = crate;
  }
  else if(card == 1 || card == 3 || card == 5){
    newcard = card-1;
    newregion = region;
    if(crate != 8 && crate != 17)
      newcrate = crate+1;
    else
      newcrate = crate-8;
  }
  else if(card == 6){
    if(region == 0){
      newcrate = crate;
      newcard = card;
      newregion = region+1;
    }
    else {
      newcard = card;
      newregion = region-1;
      if(crate != 8 && crate != 17)
        newcrate = crate+1;
      else
        newcrate = crate-8;
    }
  }
  south.at(0) = newcrate;
  south.at(1) = newcard;
  south.at(2) = newregion;
  return south;
}
vector< int > L1RCTNeighborMap::sw ( int  crate,
int  card,
int  region 
)

Definition at line 334 of file L1RCTNeighborMap.cc.

Referenced by L1RCT::shareNeighbors().

                                                             {
  int newcrate(0),newcard(0),newregion(0);
  std::vector<int> sw(3);
  if(crate > 8){
    if(card == 0){
      if(region == 0){
        newcrate = crate-9;
        newregion = region;
        newcard = 1;
      }
      else{
        newcrate = crate;
        newregion = 0;
        newcard = 1;
      }
    }
    else if(card == 1){
      if(region == 0){
        if(crate != 17)
          newcrate = crate-8;
        else
          newcrate = 0;
        newregion = 0;
        newcard = 0;
      }
      else {
        if(crate != 17)
          newcrate = crate+1;
        else
          newcrate = 9;
        newregion = 0;
        newcard = 0;
      }
    }
    else if(card == 2 || card == 4){
      newcrate = crate;
      newregion = !region;
      newcard = card-1+2*region;
    }
    else if(card == 5 || card == 3){
      newregion = !region;
      newcard = card-3+2*region;
      if(crate != 17)
        newcrate = crate+1;
      else
        newcrate = 9;
    }
    else if(card == 6){
      if(region == 0){
        newcard = 5;
        newregion = 1;
        newcrate = crate;
      }
      else{
        newcard = 4;
        newregion = 1;
        if(crate != 17)
          newcrate = crate+1;
        else
          newcrate = 9;
      }
    }
  }
  else{
    if(card == 0 || card == 2){
      newregion = !region;
      newcrate = crate;
      newcard = card+1+2*region;
    }
    else if(card == 1 || card == 3){
      newregion = !region;
      newcard = card-1+2*region;
      if(crate != 8)
        newcrate = crate+1;
      else
        newcrate = 0;
    }
    else if(card == 4){
      newcrate = crate;
      if(region == 0){
        newregion = 1;
        newcard = 5;
      }
      else{
        newregion = 1;
        newcard = 6;
      }
    }
    else if(card == 5){
      if(region == 0){
        newcard = 4;
        newregion = 1;
      }
      else{
        newcard = 6;
        newregion = 0;
      }
      if(crate != 8)
        newcrate = crate+1;
      else 
        newcrate = 0;
    }
    else if(card == 6){
      newcard = -1;
      newregion = -1;
      newcrate = -1;
    }
  }

  sw.at(0) = newcrate;
  sw.at(1) = newcard;
  sw.at(2) = newregion;
  return sw;
}
vector< int > L1RCTNeighborMap::west ( int  crate,
int  card,
int  region 
)

Definition at line 80 of file L1RCTNeighborMap.cc.

Referenced by L1RCT::shareNeighbors().

                                                                {
  int newcrate(0),newcard(0),newregion(0);
  std::vector<int> west(3);
  if(crate < 9){
    newcrate = crate;
    if(card != 6){
      if(region == 0){
        newcard = card;
        newregion = region+1;
      }
      else{
        if(card != 4 && card != 5){
          newcard = card+2;
          newregion = region-1;
        }
        else if(card == 4){
          newcard = 6;
          newregion = 0;
        }
        else if(card == 5){
          newcard = 6;
          newregion = 1;
        }
      }
    }
    else{
      newcrate = -1;
      newcard = -1;
      newregion = -1;
    }
  }
  else{
    if(card == 0 || card == 1){
      if(region == 0){
        newcrate = crate-9;
        newregion = region;
        newcard = card;
      }
      else {
        newcrate = crate;
        newregion = region-1;
        newcard = card;
      }
    }
    else if(card != 6){
      newcrate = crate;
      if(region == 0){
        newcard = card-2;
        newregion = region+1;
      }
      else{
        newcard = card;
        newregion = region-1;
      }
    }
    else if(card == 6){
      newcrate = crate;
      newregion = 1;
      if(region == 0)
        newcard = 4;
      else
        newcard = 5;
    }
  }
  west.at(0) = newcrate;
  west.at(1) = newcard;
  west.at(2) = newregion;
  return west;
}