Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "L1Trigger/DTTraco/interface/DTTracoCand.h"
00023
00024
00025
00026
00027 #include "L1TriggerConfig/DTTPGConfig/interface/DTConfigTraco.h"
00028 #include "L1Trigger/DTTraco/interface/DTTracoChip.h"
00029 #include "L1Trigger/DTBti/interface/DTBtiTrigData.h"
00030
00031
00032
00033
00034 #include <iostream>
00035
00036
00037
00038
00039 DTTracoCand::DTTracoCand(DTTracoChip* tc,
00040 const DTBtiTrigData* btitr,
00041 int pos, int step) :
00042 _traco(tc), _btitr(btitr), _step(step), _position(pos), _usable(1) {
00043
00044 if(pos<1 || pos>4*DTConfigTraco::NBTITC) {
00045 std::cout << "DTTracoCand::DTTracoCand: wrong position: " << pos;
00046 std::cout << ", dummy coordinates set!" << std::endl;
00047 _tcX = 9999;
00048 _tcK = 9999;
00049 return;
00050 }
00051
00052
00053
00054 _tcK = abs( btitr->K() - tc->KRad() - tc->BTIC() );
00055
00056
00057
00058 int lstep = tc->BTIC();
00059 _tcX = btitr->X() + lstep * (
00060 (pos<=DTConfigTraco::NBTITC)*(pos-1 + DTConfigTraco::NBTITC) +
00061 (pos> DTConfigTraco::NBTITC)*(pos-1 - DTConfigTraco::NBTITC) );
00062
00063
00064 if(btitr->btiSL()==1)
00065 _tcX += tc->IBTIOFF();
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090 }
00091
00092 DTTracoCand::DTTracoCand(const DTTracoCand& tccand) :
00093 _traco(tccand._traco), _btitr(tccand._btitr),
00094 _step(tccand._step), _position(tccand._position), _usable(tccand._usable),
00095 _tcX(tccand._tcX), _tcK(tccand._tcK) {}
00096
00097
00098
00099
00100 DTTracoCand::~DTTracoCand(){
00101 }
00102
00103
00104
00105
00106
00107 DTTracoCand&
00108 DTTracoCand::operator=(const DTTracoCand& tccand){
00109 if(this != &tccand){
00110 _traco = tccand._traco;
00111 _btitr = tccand._btitr;
00112 _position = tccand._position;
00113 _step = tccand._step;
00114 _usable = tccand._usable;
00115 _tcX = tccand._tcX;
00116 _tcK = tccand._tcK;
00117 }
00118 return *this;
00119 }
00120
00121 void
00122 DTTracoCand::print() const {
00123
00124 std::cout << " step " << _step;
00125 std::cout << " Position " << _position;
00126 std::cout << " Code = " << _btitr->code();
00127 std::cout << " SL = " << _btitr->btiSL();
00128 std::cout << " N = " << _btitr->btiNumber();
00129 std::cout << " X = " << _btitr->X();
00130 std::cout << " K = " << _btitr->K();
00131 std::cout << " Kr = " << _traco->KRad();
00132 std::cout << " |K-Kr| = " << _tcK << std::endl;
00133 }
00134