OnlineLuminosityRecord

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
#ifndef DATAFORMATS_ONLINEMETADATA_ONLINELUMINOSITYRECORD_H
#define DATAFORMATS_ONLINEMETADATA_ONLINELUMINOSITYRECORD_H

//---------------------------------------------------------------------------
//!  \class OnlineLuminosityRecord
//!  \brief Class to contain the online luminosity from soft FED 1022
//!
//!  \author Remi Mommsen - Fermilab
//---------------------------------------------------------------------------

#include <cstdint>
#include <ostream>

#include "DataFormats/OnlineMetaData/interface/OnlineMetaDataRaw.h"
#include "DataFormats/Provenance/interface/Timestamp.h"

class OnlineLuminosityRecord {
public:
  OnlineLuminosityRecord();
  OnlineLuminosityRecord(const online::Luminosity_v1&);
  virtual ~OnlineLuminosityRecord();

  /// Return the time when the lumi was recorded
  const edm::Timestamp& timestamp() const { return timestamp_; }

  /// Return the lumi-section number
  uint16_t lumiSection() const { return lumiSection_; }

  /// Return the lumi-nibble number
  uint16_t lumiNibble() const { return lumiNibble_; }

  /// Return the luminosity for the current nibble
  float instLumi() const { return instLumi_; }

  /// Return the average pileup for th current nibble
  float avgPileUp() const { return avgPileUp_; }

private:
  edm::Timestamp timestamp_;
  float instLumi_;
  float avgPileUp_;
  uint16_t lumiSection_;
  uint16_t lumiNibble_;
};

/// Pretty-print operator for OnlineLuminosityRecord
std::ostream& operator<<(std::ostream&, const OnlineLuminosityRecord&);

#endif  // DATAFORMATS_ONLINEMETADATA_ONLINELUMINOSITYRECORD_H