CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
GlobalAlgBlk.cc
Go to the documentation of this file.
1 
15 // this class header
17 
18 
19 // system include files
20 
21 
22 // user include files
23 
26 
27 
28 // constructors
29 
30 // empty constructor, all members set to zero;
31 GlobalAlgBlk::GlobalAlgBlk(int orbitNr, int bxNr, int bxInEvent):
32  m_orbitNr(orbitNr), m_bxNr(bxNr), m_bxInEvent(bxInEvent)
33 {
34 
35  //Clear out the header data
36  m_finalOR=0;
37  m_preScColumn=0;
38 
39  // Reserve/Clear out the decision words
42 
45 
48 
49 }
50 
51 
52 // empty constructor, all members set to zero;
54 {
55 
56  //Clear out the header data
57  m_orbitNr=0;
58  m_bxNr=0;
59  m_bxInEvent=0;
60  m_finalOR=0;
61  m_finalORPreVeto = 0;
62  m_finalORVeto = 0;
63  m_preScColumn=0;
64 
65  // Reserve/Clear out the decision words
68 
71 
74 
75 }
76 
77 
78 
79 // destructor
81 {
82 
83  // empty now
84 }
85 
86 
88 void GlobalAlgBlk::setAlgoDecisionInitial(unsigned int bit, bool val)
89 {
90  if(bit < m_algoDecisionInitial.size()) {
91 
92  m_algoDecisionInitial.at(bit) = val;
93 
94  } else {
95  // Need some erorr checking here.
96  LogTrace("L1TGlobal") << "Attempting to set an algorithm bit " << bit << " beyond limit " << m_algoDecisionInitial.size();
97  }
98 
99 }
100 void GlobalAlgBlk::setAlgoDecisionPreScaled(unsigned int bit, bool val)
101 {
102 
103  if(bit < m_algoDecisionPreScaled.size()) {
104 
105  m_algoDecisionPreScaled.at(bit) = val;
106  } else {
107  // Need some erorr checking here.
108  LogTrace("L1TGlobal") << "Attempting to set an algorithm bit " << bit << " beyond limit " << m_algoDecisionPreScaled.size();
109  }
110 
111 }
112 void GlobalAlgBlk::setAlgoDecisionFinal(unsigned int bit, bool val)
113 {
114 
115  if(bit < m_algoDecisionFinal.size()) {
116  m_algoDecisionFinal.at(bit) = val;
117  } else {
118  // Need some erorr checking here.
119  LogTrace("L1TGlobal") << "Attempting to set an algorithm bit " << bit << " beyond limit " << m_algoDecisionFinal.size();
120  }
121 
122 }
123 
125 bool GlobalAlgBlk::getAlgoDecisionInitial(unsigned int bit) const
126 {
127  if(bit>=m_algoDecisionInitial.size()) return false;
128  return m_algoDecisionInitial.at(bit);
129 }
130 bool GlobalAlgBlk::getAlgoDecisionPreScaled(unsigned int bit) const
131 {
132  if(bit>=m_algoDecisionPreScaled.size()) return false;
133  return m_algoDecisionPreScaled.at(bit);
134 }
135 bool GlobalAlgBlk::getAlgoDecisionFinal(unsigned int bit) const
136 {
137  if(bit>=m_algoDecisionFinal.size()) return false;
138  return m_algoDecisionFinal.at(bit);
139 }
140 
141 
142 // reset the content of a GlobalAlgBlk
144 {
145 
146  //Clear out the header data
147  m_orbitNr=0;
148  m_bxNr=0;
149  m_bxInEvent=0;
150  m_finalOR=0;
151  m_finalORPreVeto = 0;
152  m_finalORVeto = 0;
153  m_preScColumn=0;
154 
155  // Clear out the decision words
156  // but leave the vector intact
160 
161 
162 }
163 
164 // pretty print the content of a GlobalAlgBlk
165 void GlobalAlgBlk::print(std::ostream& myCout) const
166 {
167 
168 
169  myCout << " uGtGlobalAlgBlk: " << std::endl;
170 
171  myCout << " Orbit Number (hex): 0x" << std::hex << std::setw(8) << std::setfill('0') << m_orbitNr << std::endl;
172 
173  myCout << " Bx Number (hex): 0x" << std::hex << std::setw(4) << std::setfill('0') << m_bxNr << std::endl;
174 
175  myCout << " Local Bx (hex): 0x" << std::hex << std::setw(1) << std::setfill('0') << m_bxInEvent << std::endl;
176 
177  myCout << " PreScale Column: " <<std::setw(2) << m_preScColumn << std::endl;
178 
179  myCout << " Final OR Veto: " << std::hex << std::setw(1) << std::setfill('0') << m_finalORVeto << std::endl;
180 
181  myCout << " Final OR: " << std::hex << std::setw(1) << std::setfill('0') << m_finalOR << std::endl;
182 
183  // Loop through bits to create a hex word of algorithm bits.
184  int lengthWd = m_algoDecisionInitial.size();
185  myCout << " Decision (Initial) 0x" << std::hex;
186  int digit = 0;
187  for(int i=lengthWd-1; i>-1; i--) {
188  if(m_algoDecisionInitial.at(i)) digit |= (1 << (i%4));
189  if((i%4) == 0){
190  myCout << std::hex << std::setw(1) << digit;
191  digit = 0;
192  if(i%32 == 0 && i<lengthWd-1) myCout << " ";
193  }
194  } //end loop over algorithm bits
195  myCout << std::endl;
196 
197  // Loop through bits to create a hex word of algorithm bits.
198  lengthWd = m_algoDecisionPreScaled.size();
199  myCout << " Decision (Prescaled) 0x" << std::hex;
200  digit = 0;
201  for(int i=lengthWd-1; i>-1; i--) {
202  if(m_algoDecisionPreScaled.at(i)) digit |= (1 << (i%4));
203  if((i%4) == 0){
204  myCout << std::hex << std::setw(1) << digit;
205  digit = 0;
206  if(i%32 == 0 && i<lengthWd-1) myCout << " ";
207  }
208  } //end loop over algorithm bits
209  myCout << std::endl;
210 
211 
212  // Loop through bits to create a hex word of algorithm bits.
213  lengthWd = m_algoDecisionFinal.size();
214  myCout << " Decision (Final) 0x" << std::hex;
215  digit = 0;
216  for(int i=lengthWd-1; i>-1; i--) {
217  if(m_algoDecisionFinal.at(i)) digit |= (1 << (i%4));
218  if((i%4) == 0){
219  myCout << std::hex << std::setw(1) << digit;
220  digit = 0;
221  if(i%32 == 0 && i<lengthWd-1) myCout << " ";
222  }
223  } //end loop over algorithm bits
224  myCout << std::endl;
225 
226 }
227 
228 
int i
Definition: DBlmapReader.cc:9
std::vector< bool > m_algoDecisionInitial
Definition: GlobalAlgBlk.h:113
void setAlgoDecisionInitial(unsigned int bit, bool val)
Set decision bits.
Definition: GlobalAlgBlk.cc:88
GlobalAlgBlk()
constructors
Definition: GlobalAlgBlk.cc:53
bool m_finalORPreVeto
Definition: GlobalAlgBlk.h:106
bool getAlgoDecisionFinal(unsigned int bit) const
int m_bxNr
bunch cross number of the actual bx
Definition: GlobalAlgBlk.h:99
bool getAlgoDecisionInitial(unsigned int bit) const
Get decision bits.
static const unsigned int maxPhysicsTriggers
Definition: GlobalAlgBlk.h:52
void setAlgoDecisionPreScaled(unsigned int bit, bool val)
void print(std::ostream &myCout) const
pretty print the content of a GlobalAlgBlk
void reset()
reset the content of a GlobalAlgBlk
virtual ~GlobalAlgBlk()
destructor
Definition: GlobalAlgBlk.cc:80
#define LogTrace(id)
int m_orbitNr
orbit number
Definition: GlobalAlgBlk.h:96
std::vector< bool > m_algoDecisionFinal
Definition: GlobalAlgBlk.h:115
int m_bxInEvent
bunch cross in the GT event record (E,F,0,1,2)
Definition: GlobalAlgBlk.h:102
std::vector< bool > m_algoDecisionPreScaled
Definition: GlobalAlgBlk.h:114
bool m_finalORVeto
Definition: GlobalAlgBlk.h:107
void setAlgoDecisionFinal(unsigned int bit, bool val)
bool getAlgoDecisionPreScaled(unsigned int bit) const