CMS 3D CMS Logo

HOTriggerPrimitiveDigi.cc
Go to the documentation of this file.
2 #include <cstdio>
3 
5  int ieta, int iphi, int nsamples, int whichSampleTriggered, int databits) {
6  if ((nsamples < 0) || (nsamples > HO_TP_SAMPLES_MAX))
7  printf("HOTRiggerPrimitiveDigi: nsamples out of range.");
9  printf("HOTriggerPrimitiveDigi: specified Triggering Sample out of range");
10  if ((databits >> nsamples) != 0x0000)
11  printf("HOTRiggerPrimitiveDigi: Specified extra bits out of nsamples range.");
12  int samples = nsamples;
13  if (samples < 0)
14  samples = 0;
17 
18  theHO_TP = (abs(ieta) & 0xf) | ((ieta < 0) ? (0x10) : (0x00)) | ((iphi & 0x7F) << 5) | ((samples & 0xF) << 12) |
19  (((whichSampleTriggered)&0xF) << 16) | ((databits & 0x3FF) << 20);
20 }
21 
22 //Request the value of a given HO TP bit in the HO TP Digi.
23 bool HOTriggerPrimitiveDigi::data(int whichbit) const {
24  if ((whichbit < 0) || (whichbit > nsamples())) {
25  printf("HOTPDigi: Sample bit requested out of range.");
26  return false;
27  }
28  return ((theHO_TP >> (20 + whichbit)) & 0x0001);
29 }
30 
31 /* Stream the formatted contents of the HOTriggerPrimitiveDigi. */
32 std::ostream& operator<<(std::ostream& s, const HOTriggerPrimitiveDigi& HOtpd) {
33  s << "(HO TP " << HOtpd.ieta() << ", " << HOtpd.iphi() << ", ";
34  // s << HOtpd.whichSampleTriggered() << "_of_" << HOtpd.nsamples() << " [";
35  for (int bit = 0; bit < HOtpd.nsamples(); bit++) {
36  if (HOtpd.data(bit))
37  s << "1";
38  else
39  s << "0";
40  if (bit == HOtpd.whichSampleTriggered())
41  s << "* ";
42  else
43  s << " ";
44  }
45  s << " )";
46  return s;
47 }
int ieta() const
get the signed ieta value
int whichSampleTriggered() const
get the number of the triggering sample
int iphi() const
get the iphi value
bool data(int whichbit=HO_TP_SAMPLES_MAX) const
static const int HO_TP_SAMPLES_MAX
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
int nsamples() const
get the number of samples used to compute the TP
std::ostream & operator<<(std::ostream &s, const HOTriggerPrimitiveDigi &HOtpd)