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