Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:05:09

0001 /*
0002  *   File: DataFormats/Scalers/src/L1AcceptBunchCrossing.cc   (W.Badgett)
0003  */
0004 
0005 #include "DataFormats/Scalers/interface/L1AcceptBunchCrossing.h"
0006 #include "DataFormats/Scalers/interface/ScalersRaw.h"
0007 #include <cstdio>
0008 
0009 L1AcceptBunchCrossing::L1AcceptBunchCrossing()
0010     : l1AcceptOffset_(0), orbitNumber_(0), bunchCrossing_(0), eventType_(0) {}
0011 
0012 L1AcceptBunchCrossing::L1AcceptBunchCrossing(const int l1AcceptOffset__,
0013                                              const unsigned int orbitNumber__,
0014                                              const unsigned int bunchCrossing__,
0015                                              const unsigned int eventType__)
0016     : l1AcceptOffset_(l1AcceptOffset__),
0017       orbitNumber_(orbitNumber__),
0018       bunchCrossing_(bunchCrossing__),
0019       eventType_(eventType__) {}
0020 
0021 L1AcceptBunchCrossing::L1AcceptBunchCrossing(const int index, const unsigned long long data) {
0022   l1AcceptOffset_ = -index;
0023   orbitNumber_ = (unsigned int)((data >> ORBIT_NUMBER_SHIFT) & ORBIT_NUMBER_MASK);
0024   bunchCrossing_ = (unsigned int)((data >> BUNCH_CROSSING_SHIFT) & BUNCH_CROSSING_MASK);
0025   eventType_ = (unsigned int)((data >> EVENT_TYPE_SHIFT) & EVENT_TYPE_MASK);
0026 }
0027 
0028 L1AcceptBunchCrossing::~L1AcceptBunchCrossing() {}
0029 
0030 /// Pretty-print operator for L1AcceptBunchCrossing
0031 std::ostream& operator<<(std::ostream& s, const L1AcceptBunchCrossing& c) {
0032   char line[128];
0033 
0034   sprintf(line,
0035           "L1AcceptBC Offset:%2d  Orbit:%10d [0x%8.8X]  BC:%4d [0x%3.3X]  EvtTyp:%d",
0036           c.l1AcceptOffset(),
0037           c.orbitNumber(),
0038           c.orbitNumber(),
0039           c.bunchCrossing(),
0040           c.bunchCrossing(),
0041           c.eventType());
0042   s << line << std::endl;
0043 
0044   return s;
0045 }