#include <L1RCTReceiverCard.h>
Public Member Functions | |
int | cardNumber () |
int | crateNumber () |
void | fileInput (char *filename) |
void | fillInput (const std::vector< unsigned short > &input) |
void | fillMuonBits () |
void | fillRegionSums () |
void | fillTauBits () |
unsigned short | getEtIn10BitsRegion (int i) |
unsigned short | getMuonBitRegion (int i) |
unsigned short | getOverFlowBitRegion (int i) |
L1RCTRegion * | getRegion (int i) |
unsigned short | getTauBitRegion (int i) |
L1RCTReceiverCard (int crateNumber, int cardNumber, const L1RCTLookupTables *rctLookupTables) | |
void | print () |
void | printEdges () |
void | randomInput () |
std::vector< unsigned short > | towerToRegionMap (int towernum) |
~L1RCTReceiverCard () | |
Private Member Functions | |
unsigned short | calcMuonBit (L1RCTRegion region) |
unsigned short | calcRegionSum (L1RCTRegion region) |
unsigned short | calcTauBit (L1RCTRegion region) |
L1RCTReceiverCard () | |
Private Attributes | |
unsigned short | cardNo |
unsigned short | crtNo |
std::vector< unsigned short > | etIn10Bits |
std::vector< unsigned short > | muonBits |
std::vector< unsigned short > | overFlowBits |
const L1RCTLookupTables * | rctLookupTables_ |
std::vector< L1RCTRegion > | regions |
std::vector< unsigned short > | tauBits |
Definition at line 14 of file L1RCTReceiverCard.h.
L1RCTReceiverCard::L1RCTReceiverCard | ( | int | crateNumber, |
int | cardNumber, | ||
const L1RCTLookupTables * | rctLookupTables | ||
) |
Definition at line 18 of file L1RCTReceiverCard.cc.
: regions(2),crtNo(crateNumber),cardNo(cardNumber), rctLookupTables_(rctLookupTables), etIn10Bits(2), overFlowBits(2),muonBits(2),tauBits(2) { }
L1RCTReceiverCard::~L1RCTReceiverCard | ( | ) |
Definition at line 25 of file L1RCTReceiverCard.cc.
{}
L1RCTReceiverCard::L1RCTReceiverCard | ( | ) | [private] |
unsigned short L1RCTReceiverCard::calcMuonBit | ( | L1RCTRegion | region | ) | [private] |
Definition at line 244 of file L1RCTReceiverCard.cc.
References L1RCTRegion::getMuonBit(), i, and j.
Referenced by fillMuonBits().
unsigned short L1RCTReceiverCard::calcRegionSum | ( | L1RCTRegion | region | ) | [private] |
Definition at line 219 of file L1RCTReceiverCard.cc.
References L1RCTRegion::getEtIn9Bits(), i, and j.
Referenced by fillRegionSums().
{ unsigned short sum = 0; unsigned short overflow = 0; for(int i = 0; i<4; i++){ for(int j = 0; j<4; j++){ unsigned short towerEt = region.getEtIn9Bits(i,j); // If tower is saturated, peg the region to max value //if(towerEt == 0x1FF) sum = 0x3FF; // HARDWARE DOESN'T DO THIS!! //else sum = sum + towerEt; } } if(sum > 1023){ sum = 1023; overflow = 1; } unsigned short sumFullInfo = sum*2 + overflow; return sumFullInfo; }
unsigned short L1RCTReceiverCard::calcTauBit | ( | L1RCTRegion | region | ) | [private] |
Definition at line 171 of file L1RCTReceiverCard.cc.
References submit::answer, L1RCTRegion::getActivityBit(), and i.
Referenced by fillTauBits().
{ bitset<4> etaPattern; bitset<4> phiPattern; bitset<4> badPattern5(string("0101")); bitset<4> badPattern7(string("0111")); bitset<4> badPattern9(string("1001")); bitset<4> badPattern10(string("1010")); bitset<4> badPattern11(string("1011")); bitset<4> badPattern13(string("1101")); bitset<4> badPattern14(string("1110")); bitset<4> badPattern15(string("1111")); for(int i = 0; i<4; i++){ phiPattern[i] = region.getActivityBit(i,0) || region.getActivityBit(i,1) || region.getActivityBit(i,2) || region.getActivityBit(i,3); etaPattern[i] = region.getActivityBit(0,i) || region.getActivityBit(1,i) || region.getActivityBit(2,i) || region.getActivityBit(3,i); } bool answer; if(etaPattern != badPattern5 && etaPattern != badPattern7 && etaPattern != badPattern10 && etaPattern != badPattern11 && etaPattern != badPattern13 && etaPattern != badPattern14 && etaPattern != badPattern15 && phiPattern != badPattern5 && phiPattern != badPattern7 && phiPattern != badPattern10 && phiPattern != badPattern11 && phiPattern != badPattern13 && phiPattern != badPattern14 && phiPattern != badPattern15 && etaPattern != badPattern9 && phiPattern != badPattern9){ // adding in "9" //return false; answer = false; } //else return true; else { answer = true; } // std::cout << "Tau veto set to " << answer << std::endl; return answer; }
int L1RCTReceiverCard::cardNumber | ( | ) | [inline] |
int L1RCTReceiverCard::crateNumber | ( | ) | [inline] |
void L1RCTReceiverCard::fileInput | ( | char * | filename | ) |
Definition at line 34 of file L1RCTReceiverCard.cc.
References fillInput(), i, LaserDQM_cfg::input, and x.
void L1RCTReceiverCard::fillInput | ( | const std::vector< unsigned short > & | input | ) |
Definition at line 70 of file L1RCTReceiverCard.cc.
References cardNo, cuy::col, crtNo, i, L1RCTLookupTables::lookup(), alignCSCRings::r, rctLookupTables_, regions, and towerToRegionMap().
Referenced by fileInput(), and randomInput().
{ std::vector<unsigned short> ecalInput(32); std::vector<unsigned short> ecalFG(32); std::vector<unsigned short> hcalInput(32); std::vector<unsigned short> hcalMuon(32); for(int i = 0; i<32; i++){ ecalInput.at(i) = input.at(i)/2; ecalFG.at(i) = input.at(i) & 1; hcalInput.at(i) = input.at(i+32)/2; hcalMuon.at(i) = input.at(i+32) & 1; unsigned long lookup = rctLookupTables_->lookup(ecalInput.at(i),hcalInput.at(i),ecalFG.at(i),crtNo, cardNo, i); // tower number 0-31 now unsigned short etIn7Bits = lookup&127; unsigned short etIn9Bits = (lookup >> 8)&511; unsigned short HE_FGBit = (lookup>>7)&1; unsigned short activityBit = (lookup>>17)&1; std::vector<unsigned short> indices = towerToRegionMap(i); unsigned short r = indices.at(0); unsigned short row = indices.at(1); unsigned short col = indices.at(2); regions.at(r).setEtIn7Bits(row,col,etIn7Bits); regions.at(r).setEtIn9Bits(row,col,etIn9Bits); regions.at(r).setHE_FGBit(row,col,HE_FGBit); regions.at(r).setMuonBit(row,col,hcalMuon.at(i)); regions.at(r).setActivityBit(row,col,activityBit); } }
void L1RCTReceiverCard::fillMuonBits | ( | ) |
Definition at line 239 of file L1RCTReceiverCard.cc.
References calcMuonBit(), i, muonBits, and regions.
void L1RCTReceiverCard::fillRegionSums | ( | ) |
Definition at line 212 of file L1RCTReceiverCard.cc.
References calcRegionSum(), etIn10Bits, i, overFlowBits, and regions.
{ for(int i = 0; i<2; i++){ etIn10Bits.at(i) = (calcRegionSum(regions.at(i)))/2; overFlowBits.at(i) = (calcRegionSum(regions.at(i)) & 1); } }
void L1RCTReceiverCard::fillTauBits | ( | ) |
Definition at line 166 of file L1RCTReceiverCard.cc.
References calcTauBit(), i, regions, and tauBits.
unsigned short L1RCTReceiverCard::getEtIn10BitsRegion | ( | int | i | ) | [inline] |
Definition at line 61 of file L1RCTReceiverCard.h.
References etIn10Bits.
{return etIn10Bits.at(i);}
unsigned short L1RCTReceiverCard::getMuonBitRegion | ( | int | i | ) | [inline] |
unsigned short L1RCTReceiverCard::getOverFlowBitRegion | ( | int | i | ) | [inline] |
Definition at line 60 of file L1RCTReceiverCard.h.
References overFlowBits.
{return overFlowBits.at(i);}
L1RCTRegion* L1RCTReceiverCard::getRegion | ( | int | i | ) | [inline] |
unsigned short L1RCTReceiverCard::getTauBitRegion | ( | int | i | ) | [inline] |
void L1RCTReceiverCard::print | ( | void | ) |
Definition at line 255 of file L1RCTReceiverCard.cc.
References cardNo, gather_cfg::cout, crtNo, etIn10Bits, i, muonBits, regions, and tauBits.
{ std::cout <<"Receiver Card " << cardNo << " in Crate " << crtNo <<std::endl; for(int i=0;i<2;i++){ std::cout << "Region " << i << " information" << std::endl; regions.at(i).print(); std::cout << "Region Et sum " << etIn10Bits.at(i) << std::endl; std::cout << "Tau Veto Bit " << tauBits.at(i) << std::endl; std::cout << "Muon Bit " << muonBits.at(i) << std::endl; } }
void L1RCTReceiverCard::printEdges | ( | ) | [inline] |
Definition at line 67 of file L1RCTReceiverCard.h.
References regions.
void L1RCTReceiverCard::randomInput | ( | ) |
Definition at line 27 of file L1RCTReceiverCard.cc.
References fillInput(), i, and LaserDQM_cfg::input.
vector< unsigned short > L1RCTReceiverCard::towerToRegionMap | ( | int | towernum | ) |
Definition at line 101 of file L1RCTReceiverCard.cc.
Referenced by fillInput().
{ std::vector<unsigned short> returnVec(3); unsigned short region; unsigned short towerrow; unsigned short towercol; if(crtNo <9){ if(cardNo != 6){ if(towernum < 16){ region = 0; towerrow = towernum%4; towercol = 3-(towernum/4); } else{ region = 1; towerrow = towernum%4; towercol = 7-(towernum/4); } } else{ if(towernum < 16){ region = 0; towerrow = towernum%4; towercol = 3-(towernum/4); } else{ region = 1; towerrow = towernum%4; towercol = (towernum/4)-4; } } } else{ if(cardNo != 6){ if(towernum < 16){ region = 0; towerrow = towernum%4; towercol = towernum/4; } else{ region = 1; towerrow = towernum%4; towercol = (towernum/4)-4; } } else{ if(towernum < 16){ region = 0; towerrow = towernum%4; towercol = towernum/4; } else{ region = 1; towerrow = towernum%4; towercol = 7-(towernum/4); } } } returnVec.at(0)=region; returnVec.at(1)=towerrow; returnVec.at(2)=towercol; return returnVec; }
unsigned short L1RCTReceiverCard::cardNo [private] |
Definition at line 83 of file L1RCTReceiverCard.h.
Referenced by cardNumber(), fillInput(), print(), and towerToRegionMap().
unsigned short L1RCTReceiverCard::crtNo [private] |
Definition at line 82 of file L1RCTReceiverCard.h.
Referenced by crateNumber(), fillInput(), print(), and towerToRegionMap().
std::vector<unsigned short> L1RCTReceiverCard::etIn10Bits [private] |
Definition at line 87 of file L1RCTReceiverCard.h.
Referenced by fillRegionSums(), getEtIn10BitsRegion(), and print().
std::vector<unsigned short> L1RCTReceiverCard::muonBits [private] |
Definition at line 89 of file L1RCTReceiverCard.h.
Referenced by fillMuonBits(), getMuonBitRegion(), and print().
std::vector<unsigned short> L1RCTReceiverCard::overFlowBits [private] |
Definition at line 88 of file L1RCTReceiverCard.h.
Referenced by fillRegionSums(), and getOverFlowBitRegion().
const L1RCTLookupTables* L1RCTReceiverCard::rctLookupTables_ [private] |
Definition at line 85 of file L1RCTReceiverCard.h.
Referenced by fillInput().
std::vector<L1RCTRegion> L1RCTReceiverCard::regions [private] |
Definition at line 77 of file L1RCTReceiverCard.h.
Referenced by fillInput(), fillMuonBits(), fillRegionSums(), fillTauBits(), getRegion(), print(), and printEdges().
std::vector<unsigned short> L1RCTReceiverCard::tauBits [private] |
Definition at line 90 of file L1RCTReceiverCard.h.
Referenced by fillTauBits(), getTauBitRegion(), and print().