pflib v3.0.0-rc1-29-g3a901ac
Pretty Fine HGCROC Interaction Library
All Classes Namespaces Files Functions Variables Typedefs Pages
Elinks.h
1#ifndef pflib_Elinks_h_
2#define pflib_Elinks_h_
3
4#include <vector>
5#include <stdint.h>
6
7namespace pflib {
8
12class Elinks {
13
14 protected:
17 Elinks(int nlinks);
18
19public:
23 int nlinks() const { return n_links; }
24
34 void markActive(int ilink, bool active) {
35 if (ilink<n_links && ilink>=0)
36 m_linksActive[ilink]=active;
37 }
38
45 bool isActive(int ilink) const {
46 return (ilink>=n_links || ilink<0)?(false):(m_linksActive[ilink]);
47 }
48
55 virtual std::vector<uint32_t> spy(int ilink) = 0;
56
63 virtual void setBitslip(int ilink, int bitslip) = 0;
64
71 virtual int scanBitslip(int ilink);
72
73 /*
74 * Get the bitslip value for a given link
75 *
76 * @param[in] ilink link index
77 * @return value of bitslip
78 */
79 virtual int getBitslip(int ilink) = 0;
80
87 virtual uint32_t getStatusRaw(int ilink) = 0;
88
94 virtual void clearErrorCounters(int ilink) = 0;
95
104 virtual void readCounters(int link, uint32_t& nonidles, uint32_t& resyncs) { }
105
109 virtual void resetHard() = 0;
110
123 // void setupBigspy(int mode, int ilink, int presamples);
124
132 // void getBigspySetup(int& mode, int& ilink, int& presamples);
133
138 // bool bigspyDone();
139
144 // std::vector<uint32_t> bigspy();
145
150 virtual int scanAlign(int ilink, bool debug=false);
151
157 virtual void setAlignPhase(int ilink, int iphase) { }
158
162 virtual int getAlignPhase(int ilink) { return -1; }
163 private:
168};
169
170 // factories
171 Elinks* get_Elinks_zcu();
172
173}
174
175#endif // pflib_Elinks_h_
This version of the fast control code interfaces with the CMS Fast control library which can be contr...
Definition Backend.cxx:3