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  const DTBtiTrigData* btitr,
41  int pos, int step) :
42  _traco(tc), _btitr(btitr), _step(step), _position(pos), _usable(1) {
43 
44  if(pos<1 || pos>4*DTConfigTraco::NBTITC) {
45  std::cout << "DTTracoCand::DTTracoCand: wrong position: " << pos;
46  std::cout << ", dummy coordinates set!" << std::endl;
47  _tcX = 9999;
48  _tcK = 9999;
49  return;
50  }
51  // abs value of K in local TRACO frame (angle conversion):
52  // for sorting the angle closest to normal of chamber
53  // Ktr = Kbti - BTIC - KRAD
54  _tcK = abs( btitr->K() - tc->KRad() - tc->BTIC() );
55 
56 
57  // X in local TRACO frame (position conversion): Xtr = Xbti + BTIC*(i+4 or o-4)
58  int lstep = tc->BTIC();
59  _tcX = btitr->X() + lstep * (
60  (pos<=DTConfigTraco::NBTITC)*(pos-1 + DTConfigTraco::NBTITC) + // inner
61  (pos> DTConfigTraco::NBTITC)*(pos-1 - DTConfigTraco::NBTITC) ); // outer
62 
63  //NEWGEO add phi sl offset to inner positions
64  if(btitr->btiSL()==1)
65  _tcX += tc->IBTIOFF();
66 
67 /* DEBUG
68  btitr->print();
69  std::cout << "K in local " << tc->number() << " TRACO " << K() << std::endl;
70  std::cout << "X in local " << tc->number() << " TRACO " << X() << " offset " << tc->IBTIOFF() << std::endl;
71  print();
72 */
73 
74 /*
75  //OBSOLETE
76  //ATTENTION!! This isn't the "real" MB-superlayer shift
77  //because wires have been renamed/shifted in : DTTrigGeom::cellMapping(int sl, int lay, int tube)
78  //this is a "patch" : to BE FIXED with NEW GEOMETRY!
79 
80  //MB1: half cell shift
81  if(btitr->btiSL()==1 && tc->station()==1)
82  _tcX += (int)(0.5*lstep);
83  //MB2
84  // if(btitr->btiSL()==1 && tc->station()==2)
85  // _tcX += (int)(-lstep);
86 
87  //std::cout << "X in local TRACO frame = " << _tcX << std::endl;
88  //print();
89 */
90 }
91 
93  _traco(tccand._traco), _btitr(tccand._btitr),
94  _step(tccand._step), _position(tccand._position), _usable(tccand._usable),
95  _tcX(tccand._tcX), _tcK(tccand._tcK) {}
96 
97 //--------------
98 // Destructor --
99 //--------------
101 }
102 
103 //--------------
104 // Operations --
105 //--------------
106 
107 DTTracoCand&
109  if(this != &tccand){
110  _traco = tccand._traco;
111  _btitr = tccand._btitr;
112  _position = tccand._position;
113  _step = tccand._step;
114  _usable = tccand._usable;
115  _tcX = tccand._tcX;
116  _tcK = tccand._tcK;
117  }
118  return *this;
119 }
120 
121 void
123 // int sl = _btitr->btiSL();
124  std::cout << " step " << _step;
125  std::cout << " Position " << _position;
126  std::cout << " Code = " << _btitr->code();
127  std::cout << " SL = " << _btitr->btiSL();
128  std::cout << " N = " << _btitr->btiNumber();
129  std::cout << " X = " << _btitr->X();
130  std::cout << " K = " << _btitr->K();
131  std::cout << " Kr = " << _traco->KRad();
132  std::cout << " |K-Kr| = " << _tcK << std::endl;
133 }
134 
int BTIC() const
BTIC parameter.
Definition: DTTracoChip.h:125
int KRad() const
K par of the radial angle of corr center referred to plane sl.
DTTracoCand()
Constructor.
Definition: DTTracoCand.h:43
int X() const
Return trigger X parameter.
const DTBtiTrigData * _btitr
Definition: DTTracoCand.h:110
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
~DTTracoCand()
Destructor.
Definition: DTTracoCand.cc:100
DTTracoCand & operator=(const DTTracoCand &tccand)
Assignment operator.
Definition: DTTracoCand.cc:108
int btiNumber() const
Return parent BTI number.
int btiSL() const
Return parent BTI superlayer.
int IBTIOFF() const
IBTIOFF parameter.
Definition: DTTracoChip.h:128
int K() const
Return trigger K parameter.
step
static const int NBTITC
Definition: DTConfig.h:38
DTTracoChip * _traco
Definition: DTTracoCand.h:108
void print() const
Print candidate.
Definition: DTTracoCand.cc:122
int code() const
Return trigger code.