CMS 3D CMS Logo

DTTracoCand.cc
Go to the documentation of this file.
1 //-------------------------------------------------
2 //
3 // Class: DTTracoCand
4 //
5 // Description: Implementation of L1MuDTTracoChip
6 // candidate
7 //
8 //
9 // Author List:
10 // C. Grandi
11 // Modifications:
12 // SV BTIC parameter from config
13 // SV bti Trig pointer stored insted of trigdata
14 // 22/VI/04 SV: last trigger code update
15 // 04/XI/04 SV: bug fixed for wrong MB1 superlayer offset!
16 // III/05 SV: NEWGEO update
17 //----------------------------------------------------------
18 
19 //-----------------------
20 // This Class's Header --
21 //-----------------------
23 
24 //-------------------------------
25 // Collaborating Class Headers --
26 //-------------------------------
30 
31 //---------------
32 // C++ Headers --
33 //---------------
34 #include <iostream>
35 
36 //----------------
37 // Constructors --
38 //----------------
40  : _traco(tc), _btitr(btitr), _step(step), _position(pos), _usable(1) {
41  if (pos < 1 || pos > 4 * DTConfigTraco::NBTITC) {
42  std::cout << "DTTracoCand::DTTracoCand: wrong position: " << pos;
43  std::cout << ", dummy coordinates set!" << std::endl;
44  _tcX = 9999;
45  _tcK = 9999;
46  return;
47  }
48  // abs value of K in local TRACO frame (angle conversion):
49  // for sorting the angle closest to normal of chamber
50  // Ktr = Kbti - BTIC - KRAD
51  _tcK = abs(btitr->K() - tc->KRad() - tc->BTIC());
52 
53  // X in local TRACO frame (position conversion): Xtr = Xbti + BTIC*(i+4 or
54  // o-4)
55  int lstep = tc->BTIC();
56  _tcX = btitr->X() + lstep * ((pos <= DTConfigTraco::NBTITC) * (pos - 1 + DTConfigTraco::NBTITC) + // inner
57  (pos > DTConfigTraco::NBTITC) * (pos - 1 - DTConfigTraco::NBTITC)); // outer
58 
59  // NEWGEO add phi sl offset to inner positions
60  if (btitr->btiSL() == 1)
61  _tcX += tc->IBTIOFF();
62 
63  /* DEBUG
64  btitr->print();
65  std::cout << "K in local " << tc->number() << " TRACO " << K() << std::endl;
66  std::cout << "X in local " << tc->number() << " TRACO " << X() << " offset "
67  << tc->IBTIOFF() << std::endl; print();
68  */
69 
70  /*
71  //OBSOLETE
72  //ATTENTION!! This isn't the "real" MB-superlayer shift
73  //because wires have been renamed/shifted in : DTTrigGeom::cellMapping(int
74  sl, int lay, int tube)
75  //this is a "patch" : to BE FIXED with NEW GEOMETRY!
76 
77  //MB1: half cell shift
78  if(btitr->btiSL()==1 && tc->station()==1)
79  _tcX += (int)(0.5*lstep);
80  //MB2
81  // if(btitr->btiSL()==1 && tc->station()==2)
82  // _tcX += (int)(-lstep);
83 
84  //std::cout << "X in local TRACO frame = " << _tcX << std::endl;
85  //print();
86  */
87 }
88 
90  : _traco(tccand._traco),
91  _btitr(tccand._btitr),
92  _step(tccand._step),
93  _position(tccand._position),
94  _usable(tccand._usable),
95  _tcX(tccand._tcX),
96  _tcK(tccand._tcK) {}
97 
98 //--------------
99 // Destructor --
100 //--------------
102 
103 //--------------
104 // Operations --
105 //--------------
106 
108  if (this != &tccand) {
109  _traco = tccand._traco;
110  _btitr = tccand._btitr;
111  _position = tccand._position;
112  _step = tccand._step;
113  _usable = tccand._usable;
114  _tcX = tccand._tcX;
115  _tcK = tccand._tcK;
116  }
117  return *this;
118 }
119 
120 void DTTracoCand::print() const {
121  // int sl = _btitr->btiSL();
122  std::cout << " step " << _step;
123  std::cout << " Position " << _position;
124  std::cout << " Code = " << _btitr->code();
125  std::cout << " SL = " << _btitr->btiSL();
126  std::cout << " N = " << _btitr->btiNumber();
127  std::cout << " X = " << _btitr->X();
128  std::cout << " K = " << _btitr->K();
129  std::cout << " Kr = " << _traco->KRad();
130  std::cout << " |K-Kr| = " << _tcK << std::endl;
131 }
int btiNumber() const
Return parent BTI number.
Definition: DTBtiTrigData.h:96
int btiSL() const
Return parent BTI superlayer.
Definition: DTBtiTrigData.h:99
int KRad() const
K par of the radial angle of corr center referred to plane sl.
int K() const
Return trigger K parameter.
int BTIC() const
BTIC parameter.
Definition: DTTracoChip.h:123
DTTracoCand()
Constructor.
Definition: DTTracoCand.h:41
void print() const
Print candidate.
Definition: DTTracoCand.cc:120
const DTBtiTrigData * _btitr
Definition: DTTracoCand.h:108
int code() const
Return trigger code.
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
~DTTracoCand()
Destructor.
Definition: DTTracoCand.cc:101
DTTracoCand & operator=(const DTTracoCand &tccand)
Assignment operator.
Definition: DTTracoCand.cc:107
int X() const
Return trigger X parameter.
int IBTIOFF() const
IBTIOFF parameter.
Definition: DTTracoChip.h:126
step
Definition: StallMonitor.cc:98
static const int NBTITC
Definition: DTConfig.h:37
DTTracoChip * _traco
Definition: DTTracoCand.h:106