CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HOTriggerPrimitiveDigi.cc
Go to the documentation of this file.
2 #include <cstdio>
3 
4 HOTriggerPrimitiveDigi::HOTriggerPrimitiveDigi(int ieta, int iphi, int nsamples, int whichSampleTriggered, int databits){
5  if ((nsamples<0) || (nsamples>HO_TP_SAMPLES_MAX)) printf("HOTRiggerPrimitiveDigi: nsamples out of range.");
6  if ((whichSampleTriggered<0) || (whichSampleTriggered>nsamples))
7  printf("HOTriggerPrimitiveDigi: specified Triggering Sample out of range");
8  if ( (databits>>nsamples) != 0x0000)
9  printf("HOTRiggerPrimitiveDigi: Specified extra bits out of nsamples range.");
10  int samples=nsamples;
11  if (samples<0) samples=0;
12  if (samples>HO_TP_SAMPLES_MAX) samples=HO_TP_SAMPLES_MAX;
13 
14  theHO_TP=(abs(ieta)&0xf) | ((ieta<0)?(0x10):(0x00)) |
15  ((iphi&0x7F)<<5) |
16  ((samples&0xF)<<12) | (((whichSampleTriggered)&0xF)<<16) |
17  ((databits&0x3FF)<<20);
18 }
19 
20 //Request the value of a given HO TP bit in the HO TP Digi.
21 bool HOTriggerPrimitiveDigi::data(int whichbit) const{
22  if ((whichbit<0) || (whichbit>nsamples())) {
23  printf("HOTPDigi: Sample bit requested out of range.");
24  return false;}
25  return ((theHO_TP>>(20+whichbit))&0x0001);
26 }
27 
28 /* Stream the formatted contents of the HOTriggerPrimitiveDigi. */
29 std::ostream& operator<<(std::ostream& s, const HOTriggerPrimitiveDigi& HOtpd) {
30  s << "(HO TP " << HOtpd.ieta() << ", " << HOtpd.iphi() << ", ";
31  // s << HOtpd.whichSampleTriggered() << "_of_" << HOtpd.nsamples() << " [";
32  for (int bit=0; bit<HOtpd.nsamples(); bit++) {
33  if (HOtpd.data(bit)) s << "1";
34  else s << "0";
35  if (bit==HOtpd.whichSampleTriggered()) s<<"* ";
36  else s << " ";
37  }
38  s << " )";
39  return s;
40 }
41 
#define abs(x)
Definition: mlp_lapack.h:159
std::ostream & operator<<(std::ostream &out, const ALILine &li)
Definition: ALILine.cc:187
static const int HO_TP_SAMPLES_MAX
int iphi() const
get the iphi value
bool data(int whichbit=HO_TP_SAMPLES_MAX) const
int ieta() const
get the signed ieta value
string s
Definition: asciidump.py:422
int nsamples() const
get the number of samples used to compute the TP
int whichSampleTriggered() const
get the number of the triggering sample