Go to the documentation of this file.00001 #include "L1Trigger/RegionalCaloTrigger/interface/L1RCTRegion.h"
00002
00003 #include <vector>
00004 using std::vector;
00005
00006 #include <iostream>
00007 using std::cout;
00008 using std::cerr;
00009 using std::endl;
00010
00011 L1RCTRegion::L1RCTRegion() : totalRegionEt(36),
00012 totalRegionHE_FG(36),
00013 etIn9Bits(16),
00014 muonBit(16),
00015 activityBit(16)
00016 {
00017 }
00018
00019
00020 L1RCTRegion::~L1RCTRegion()
00021 {}
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 unsigned short L1RCTRegion::getEtIn7Bits(int i, int j) const{
00034
00035 return totalRegionEt.at(6*(i+1) + j+1);
00036 }
00037
00038 void L1RCTRegion::setEtIn7Bits(int i, int j,unsigned short energy){
00039
00040 if(energy <= 127)
00041 totalRegionEt.at(6*(i+1) + j+1) = energy;
00042 else
00043 totalRegionEt.at(6*(i+1) + j+1) = 127;
00044 }
00045
00046
00047 unsigned short L1RCTRegion::getHE_FGBit(int i, int j) const{
00048 return totalRegionHE_FG.at(6*(i+1)+j+1);
00049 }
00050
00051 void L1RCTRegion::setHE_FGBit(int i, int j, unsigned short HE_FG){
00052 totalRegionHE_FG.at(6*(i+1)+j+1) = HE_FG;
00053 }
00054
00055
00056
00057
00058
00059 unsigned short L1RCTRegion::getEtIn9Bits(int i, int j) const{
00060 return etIn9Bits.at(4*i + j);
00061 }
00062
00063 void L1RCTRegion::setEtIn9Bits(int i, int j,unsigned short energy){
00064 if(energy <=511)
00065 etIn9Bits.at(4*i+j) = energy;
00066 else
00067 etIn9Bits.at(4*i+j) = 511;
00068 }
00069
00070 unsigned short L1RCTRegion::getMuonBit(int i, int j) const{
00071 return muonBit.at(4*i+j);
00072 }
00073
00074 void L1RCTRegion::setMuonBit(int i, int j,unsigned short muon) {
00075 muonBit.at(4*i+j) = muon;
00076 }
00077
00078 void L1RCTRegion::setActivityBit(int i, int j, unsigned short activity){
00079 activityBit.at(4*i+j) = activity;
00080 }
00081
00082 unsigned short L1RCTRegion::getActivityBit(int i, int j) const{
00083 return activityBit.at(4*i+j);
00084 }
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097 vector<unsigned short> L1RCTRegion::giveNorthEt() const{
00098 std::vector<unsigned short> north(4);
00099 for(int i = 0; i<4;i++)
00100 north.at(i) = getEtIn7Bits(3,i);
00101 return north;
00102 }
00103 void L1RCTRegion::setNorthEt(const std::vector<unsigned short>& north) {
00104 for(int i = 0; i<4; i++)
00105 totalRegionEt.at(i+1) = north.at(i);
00106 }
00107 vector<unsigned short> L1RCTRegion::giveNorthHE_FG() const{
00108 std::vector<unsigned short> north(4);
00109 for(int i = 0; i<4; i++)
00110 north.at(i) = getHE_FGBit(3,i);
00111 return north;
00112 }
00113 void L1RCTRegion::setNorthHE_FG(const std::vector<unsigned short>& north){
00114 for(int i = 0; i<4; i++)
00115 totalRegionHE_FG.at(i+1) = north.at(i);
00116 }
00117
00118 vector<unsigned short> L1RCTRegion::giveSouthEt() const{
00119 std::vector<unsigned short> south(4);
00120 for(int i = 0; i<4; i++)
00121 south.at(i) = getEtIn7Bits(0,i);
00122 return south;
00123 }
00124 void L1RCTRegion::setSouthEt(const std::vector<unsigned short>& south){
00125 for(int i = 0; i<4; i++)
00126 totalRegionEt.at(31+i) = south.at(i);
00127 }
00128
00129 vector<unsigned short> L1RCTRegion::giveSouthHE_FG() const{
00130 std::vector<unsigned short> south(4);
00131 for(int i = 0; i<4; i++)
00132 south.at(i) = getHE_FGBit(0,i);
00133 return south;
00134 }
00135 void L1RCTRegion::setSouthHE_FG(const std::vector<unsigned short>& south){
00136 for(int i=0; i<4; i++)
00137 totalRegionHE_FG.at(31+i) = south.at(i);
00138 }
00139
00140 vector<unsigned short> L1RCTRegion::giveWestEt() const{
00141 std::vector<unsigned short> west(4);
00142 for(int i =0; i<4; i++)
00143 west.at(i) = getEtIn7Bits(i,3);
00144 return west;
00145 }
00146 void L1RCTRegion::setWestEt(const std::vector<unsigned short>& west){
00147 for(int i = 0; i<4; i++)
00148 totalRegionEt.at(6*(i+1)) = west.at(i);
00149 }
00150
00151 vector<unsigned short> L1RCTRegion::giveWestHE_FG() const{
00152 std::vector<unsigned short> west(4);
00153 for(int i = 0; i<4; i++)
00154 west.at(i) = getHE_FGBit(i,3);
00155 return west;
00156 }
00157 void L1RCTRegion::setWestHE_FG(const std::vector<unsigned short>& west){
00158 for(int i = 0; i<4; i++)
00159 totalRegionHE_FG.at(6*(i+1)) = west.at(i);
00160 }
00161
00162 vector<unsigned short> L1RCTRegion::giveEastEt() const{
00163 std::vector<unsigned short> east(4);
00164 for(int i = 0; i<4; i++)
00165 east.at(i) = getEtIn7Bits(i,0);
00166 return east;
00167 }
00168 void L1RCTRegion::setEastEt(const std::vector<unsigned short>& east){
00169 for(int i = 0; i<4; i++)
00170 totalRegionEt.at(6*(i+1) + 5) = east.at(i);
00171 }
00172
00173 vector<unsigned short> L1RCTRegion::giveEastHE_FG() const{
00174 std::vector<unsigned short> east(4);
00175 for(int i = 0; i<4; i++)
00176 east.at(i) = getHE_FGBit(i,0);
00177 return east;
00178 }
00179 void L1RCTRegion::setEastHE_FG(const std::vector<unsigned short>& east){
00180 for(int i = 0; i<4; i++)
00181 totalRegionHE_FG.at(6*(i+1) + 5) = east.at(i);
00182 }
00183
00184 unsigned short L1RCTRegion::giveNEEt() const{
00185 unsigned short et = getEtIn7Bits(3,0);
00186 if(et > 7)
00187 return 7;
00188 else
00189 return et;
00190 }
00191 unsigned short L1RCTRegion::giveNEHE_FG() const{
00192 return getHE_FGBit(3,0);
00193 }
00194 void L1RCTRegion::setNEEt(unsigned short ne){
00195 totalRegionEt.at(5) = ne;
00196 }
00197 void L1RCTRegion::setNEHE_FG(unsigned short ne){
00198 totalRegionHE_FG.at(5) = ne;
00199 }
00200
00201 unsigned short L1RCTRegion::giveNWEt() const{
00202 unsigned short et = getEtIn7Bits(3,3);
00203 if(et > 7)
00204 return 7;
00205 else
00206 return et;
00207 }
00208 unsigned short L1RCTRegion::giveNWHE_FG() const{
00209 return getHE_FGBit(3,3);
00210 }
00211 void L1RCTRegion::setNWEt(unsigned short nw){
00212 totalRegionEt.at(0) = nw;
00213 }
00214 void L1RCTRegion::setNWHE_FG(unsigned short nw){
00215 totalRegionHE_FG.at(0) = nw;
00216 }
00217
00218 unsigned short L1RCTRegion::giveSWEt() const{
00219 unsigned short et = getEtIn7Bits(0,3);
00220 if(et > 7)
00221 return 7;
00222 else
00223 return et;
00224 }
00225 unsigned short L1RCTRegion::giveSWHE_FG() const{
00226 return getHE_FGBit(0,3);
00227 }
00228 void L1RCTRegion::setSWEt(unsigned short sw){
00229 totalRegionEt.at(30) = sw;
00230 }
00231 void L1RCTRegion::setSWHE_FG(unsigned short sw){
00232 totalRegionHE_FG.at(30) = sw;
00233 }
00234
00235 unsigned short L1RCTRegion::giveSEEt() const{
00236 unsigned short et = getEtIn7Bits(0,0);
00237 if(et > 7)
00238 return 7;
00239 else
00240 return et;
00241 }
00242 unsigned short L1RCTRegion::giveSEHE_FG() const{
00243 return getHE_FGBit(0,0);
00244 }
00245 void L1RCTRegion::setSEEt(unsigned short se) {
00246 totalRegionEt.at(35) = se;
00247 }
00248 void L1RCTRegion::setSEHE_FG(unsigned short se) {
00249 totalRegionHE_FG.at(35) = se;
00250 }
00251
00252 void L1RCTRegion::print() {
00253
00254 std::cout << " 7 Bit Energies ";
00255 for(int i = 0; i<4; i++){
00256 std::cout << std::endl;
00257 for(int j = 0; j<4; j++){
00258 std::cout << " " << getEtIn7Bits(i,j) << " ";
00259 }
00260 }
00261
00262 std::cout << std::endl << std::endl;
00263 std::cout << " 9 Bit Energies ";
00264 for(int i = 0; i<4; i++){
00265 std::cout << std::endl;
00266 for(int j = 0; j<4; j++){
00267 std::cout << " " << getEtIn9Bits(i,j) << " ";
00268 }
00269 }
00270
00271 std::cout << std::endl << std::endl;
00272 std::cout << " HE || FG bit ";
00273 for(int i = 0; i<4; i++){
00274 std::cout << std::endl;
00275 for(int j = 0; j<4; j++){
00276 std::cout << " " << getHE_FGBit(i,j) << " ";
00277 }
00278 }
00279
00280 std::cout << std::endl << std::endl;
00281 std::cout << " Muon Bit ";
00282 for(int i = 0; i<4; i++){
00283 std::cout << std::endl;
00284 for(int j = 0; j<4; j++){
00285 std::cout << " " << getMuonBit(i,j) << " ";
00286 }
00287 }
00288 std::cout << std::endl;
00289 }
00290
00291 void L1RCTRegion::printEdges(){
00292 std::cout << "North" << std::endl;
00293 for(int i=0; i<4;i++)
00294 std::cout << totalRegionEt.at(i+1) << std::endl;
00295
00296 std::cout << "West" << std::endl;
00297 for(int i=0; i<4;i++)
00298 std::cout << totalRegionEt.at(6*(i+1)) << std::endl;
00299
00300 std::cout << "East" << std::endl;
00301 for(int i=0; i<4;i++)
00302 std::cout << totalRegionEt.at(6*(i+1)+5) << std::endl;
00303
00304 std::cout << "South" << std::endl;
00305 for(int i=0; i<4;i++)
00306 std::cout << totalRegionEt.at(31+i) << std::endl;
00307
00308 std::cout << "NE " << totalRegionEt.at(5) << std::endl;
00309 std::cout << "SE " << totalRegionEt.at(35) << std::endl;
00310 std::cout << "NW " << totalRegionEt.at(0) << std::endl;
00311 std::cout << "SW " << totalRegionEt.at(30) << std::endl;
00312 }