CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DTTracoTrigData.h
Go to the documentation of this file.
1 //-------------------------------------------------
2 //
11 //
12 //--------------------------------------------------
13 #ifndef DT_TRACO_TRIG_DATA_H
14 #define DT_TRACO_TRIG_DATA_H
15 
16 //------------------------------------
17 // Collaborating Class Declarations --
18 //------------------------------------
21 
22 //----------------------
23 // Base Class Headers --
24 //----------------------
26 
27 //---------------
28 // C++ Headers --
29 //---------------
30 
31 // ---------------------
32 // -- Class Interface --
33 // ---------------------
34 
35 typedef unsigned char myint8;
36 
37 class DTTracoTrigData : public DTTrigData {
38 public:
39  // public methods
40 
43 
46 
48  ~DTTracoTrigData() override {}
49 
50  // Non-const methods
51 
53  inline void setParent(DTTracoId tracoid) { _tracoid = tracoid; }
54 
56  inline void setStep(int step) { _step = step; }
57 
59  inline void setPV(int first, int code, int K, int ioflag) {
60  _pvfirst = first;
61  _pvcode = code;
62  _pvKval = K;
63  _pvIOflag = ioflag;
64  /*
65  cout<<"setPV called, stored:"<<
66  " first=" << first <<
67  " code=" << code <<
68  " K=" << K <<
69  " ioflag=" << ioflag << endl;
70  */
71  }
72 
74  inline void setPVCorr(int ic) { _pvCorr = ic; }
75 
77  inline void setCodeIn(int code) { _codeIn = code; }
79  inline void setCodeOut(int code) { _codeOut = code; }
80 
82  inline void setPosIn(int pos) { _posIn = pos; }
83 
85  inline void setPosOut(int pos) { _posOut = pos; }
86 
88  inline void setEqIn(int eq) { _eqIn = eq; }
89 
91  inline void setEqOut(int eq) { _eqOut = eq; }
92 
94  inline void setK(int k) { _Kval = k; }
95 
97  inline void setX(int x) { _Xval = x; }
98 
100  inline void setAngles(int psi, int psir, int dpsir) {
101  if (psi & 0x200)
102  psi |= 0xFFFFFC00;
103  if (psir & 0x800)
104  psir |= 0xFFFFF000;
105  if (dpsir & 0x200)
106  dpsir |= 0xFFFFFC00;
107 
108  _psi = psi;
109  _psiR = psir;
110  _dPsiR = dpsir;
111  }
112 
114  void resetVar() {
115  _codeIn = 0;
116  _codeOut = 0;
117  _posIn = 0;
118  _posOut = 0;
119  _eqIn = 0;
120  _eqOut = 0;
121  _Kval = 255;
122  _Xval = 0;
123  /*
124  _psi = -DTConfig::RESOLPSI;
125  _psiR = -DTConfig::RESOLPSIR/2;
126  _dPsiR = -DTConfig::RESOLPSI;
127  */
128  // SV notazione complemento a due:
129  _psi = 0x1FF;
130  _psiR = 0xFFF;
131  _dPsiR = 0x1FF;
132  }
133 
135  void resetPV() {
136  _pvfirst = 0;
137  _pvcode = 0;
138  _pvKval = 9999;
139  _pvCorr = 0;
140  _pvIOflag = 0;
141  }
142 
144  void clear() {
145  resetVar();
146  resetPV();
147  }
148 
150  DTChamberId ChamberId() const override { return _tracoid.ChamberId(); }
151 
153  void print() const override;
154 
156  inline DTTracoId parentId() const { return _tracoid; }
157 
159  inline int tracoNumber() const { return _tracoid.traco(); }
160 
162  inline int step() const { return _step; }
163 
165  inline int code() const { return _codeIn * 10 + _codeOut; }
166 
168  inline int posMask() const { return _posOut * 1000 + _posIn; }
169 
171  inline int posIn() const { return _posIn; }
172 
174  inline int posOut() const { return _posOut; }
175 
177  inline int eqIn() const { return _eqIn; }
178 
180  inline int eqOut() const { return _eqOut; }
181 
183  inline int isFirst() const { return _pvfirst; }
184 
186  inline int pvCode() const { return _pvcode; }
187 
189  inline int pvK() const { return _pvKval; }
190 
192  inline int pvCorr() const { return _pvCorr; }
193 
195  inline int pvIO() const { return _pvIOflag; }
196 
198  inline int K() const { return _Kval; }
199 
201  inline int X() const { return _Xval; }
202 
204  int psi() const { return _psi; }
205 
207  int psiR() const { return _psiR; }
208 
210  int DeltaPsiR() const { return _dPsiR; }
211 
213  int qdec() const;
214 
215 private:
216  // parent TRACO
217  DTTracoId _tracoid; // this is 4 bytes
218 
219  // step number
221 
222  // inner segment position
224  // outer segment position
226  // inner segment bti trigger equation
228  // outer segment bti trigger equation
230 
231  // inner segment code
233  // outer segment code
235 
236  // preview first/second track
238 
239  // preview code for TS
241  // preview K variable for TS
242  int _pvKval;
243  // preview correlation bit
245  // preview io bit
247 
248  // K variable value
249  int _Kval;
250  // X variable value
251  int _Xval;
252 
253  // K converted to angle (psi)
254  long int _psi;
255  // X converted to angle (psi_r, phi)
256  long int _psiR;
257  // bending angle (delta(psi_r), phiB)
258  long int _dPsiR;
259 };
260 
261 #endif
void resetVar()
Reset all variables but preview.
void setParent(DTTracoId tracoid)
Set the parent TRACO Identifier.
DTTracoTrigData()
Constructor.
void setAngles(int psi, int psir, int dpsir)
Set trigger angles.
int posIn() const
Return the position of inner segment.
int posOut() const
Return the position of outer segment.
void setEqOut(int eq)
Set bti trigger equation of segment, outer layer.
int psiR() const
Return trigger X parameter converted to angle.
int step() const
Return step.
void setPosOut(int pos)
Set position of segment, outer layer.
int posMask() const
Return correlator output code (position of segments)
int tracoNumber() const
Return parent TRACO number.
void setX(int x)
Set trigger X parameter.
int pvCorr() const
Return the preview correaltion bit.
int X() const
Return trigger X parameter.
void setPosIn(int pos)
Set position of segment, inner layer.
std::map< std::string, int, std::less< std::string > > psi
void setK(int k)
Set trigger K parameter.
int traco() const
Returns the traco.
Definition: DTTracoId.h:59
void clear()
Clear.
DTChamberId ChamberId() const override
Return chamber identifier.
void setCodeOut(int code)
Set trigger code outer layer.
DTChamberId ChamberId() const
Returns the chamber id.
Definition: DTTracoId.h:61
int psi() const
Return trigger K parameter converted to angle.
int isFirst() const
Return non 0 if the track is a first track.
DTTracoId parentId() const
Return parent TRACO identifier.
int pvK() const
Return the preview K.
void setPVCorr(int ic)
Set trigger preview correlation bit.
int DeltaPsiR() const
Return DeltaPsiR.
unsigned char myint8
void setStep(int step)
Set trigger step.
int eqOut() const
Return bti trigger equation of outer segment.
int pvCode() const
Return the preview code.
void setCodeIn(int code)
Set trigger code inner layer.
void print() const override
print
void setPV(int first, int code, int K, int ioflag)
Set trigger preview parameters.
int qdec() const
Return the trigger code in new format.
int code() const
Return trigger code.
int K() const
Return trigger K parameter.
step
Definition: StallMonitor.cc:98
void setEqIn(int eq)
Set bti trigger equation of segment, inner layer.
int pvIO() const
Return the preview i/o bit.
int eqIn() const
Return bti trigger equation of inner segment.
void resetPV()
Reset preview variables.
~DTTracoTrigData() override
Destructor.