Level1TriggerRates

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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
/*
 *  File: DataFormats/Scalers/interface/Level1TriggerRates.h   (W.Badgett)
 *
 *  Various Level 1 Trigger Rates from the GT/TS
 *
 */

#ifndef DATAFORMATS_SCALERS_LEVEL1TRIGGERRATES_H
#define DATAFORMATS_SCALERS_LEVEL1TRIGGERRATES_H

#include "DataFormats/Scalers/interface/TimeSpec.h"

#include <ctime>
#include <iosfwd>
#include <string>
#include <vector>

/*! \file Level1TriggerRates.h
 * \Header file for Level 1 Global Trigger Rates
 * 
 * \author: William Badgett
 *
 */

/// \class Level1TriggerRates.h
/// \brief Persistable copy of Level1 Trigger Rates

class Level1TriggerScalers;

class Level1TriggerRates {
public:
#define BX_SPACING (double)25E-9

  Level1TriggerRates();
  Level1TriggerRates(Level1TriggerScalers const& s);
  Level1TriggerRates(Level1TriggerScalers const& s, int runNumber);
  Level1TriggerRates(Level1TriggerScalers const& s1, Level1TriggerScalers const& s2);
  Level1TriggerRates(Level1TriggerScalers const& s1, Level1TriggerScalers const& s2, int runNumber);
  virtual ~Level1TriggerRates();

  void computeRates(Level1TriggerScalers const& t1);
  void computeRates(Level1TriggerScalers const& t1, int runNumber);

  void computeRates(Level1TriggerScalers const& t1, Level1TriggerScalers const& t2);
  void computeRates(Level1TriggerScalers const& t1, Level1TriggerScalers const& t2, int runNumber);

  /// name method
  std::string name() const { return "Level1TriggerRates"; }

  /// empty method (= false)
  bool empty() const { return false; }

  /// get the data

  int version() const { return (version_); }
  timespec collectionTime() { return (collectionTime_.get_timespec()); }

  unsigned long long deltaNS() const { return (deltaNS_); }
  double deltaT() const { return (deltaT_); }

  double gtTriggersRate() const { return (gtTriggersRate_); }

  double gtEventsRate() const { return (gtEventsRate_); }

  timespec collectionTimeLumiSeg() { return (collectionTimeLumiSeg_.get_timespec()); }

  double triggersPhysicsGeneratedFDLRate() const { return (triggersPhysicsGeneratedFDLRate_); }

  double triggersPhysicsLostRate() const { return (triggersPhysicsLostRate_); }

  double triggersPhysicsLostBeamActiveRate() const { return (triggersPhysicsLostBeamActiveRate_); }

  double triggersPhysicsLostBeamInactiveRate() const { return (triggersPhysicsLostBeamInactiveRate_); }

  double l1AsPhysicsRate() const { return (l1AsPhysicsRate_); }

  double l1AsRandomRate() const { return (l1AsRandomRate_); }

  double l1AsTestRate() const { return (l1AsTestRate_); }

  double l1AsCalibrationRate() const { return (l1AsCalibrationRate_); }

  double deadtimePercent() const { return (deadtimePercent_); }

  double deadtimeBeamActivePercent() const { return (deadtimeBeamActivePercent_); }

  double deadtimeBeamActiveTriggerRulesPercent() const { return (deadtimeBeamActiveTriggerRulesPercent_); }

  double deadtimeBeamActiveCalibrationPercent() const { return (deadtimeBeamActiveCalibrationPercent_); }

  double deadtimeBeamActivePrivateOrbitPercent() const { return (deadtimeBeamActivePrivateOrbitPercent_); }

  double deadtimeBeamActivePartitionControllerPercent() const {
    return (deadtimeBeamActivePartitionControllerPercent_);
  }

  double deadtimeBeamActiveTimeSlotPercent() const { return (deadtimeBeamActiveTimeSlotPercent_); }

  timespec collectionTime() const { return (collectionTime_.get_timespec()); }

  timespec collectionTimeLumiSeg() const { return (collectionTimeLumiSeg_.get_timespec()); }

  std::vector<double> gtAlgoCountsRate() const { return (gtAlgoCountsRate_); }
  std::vector<double> gtTechCountsRate() const { return (gtTechCountsRate_); }

  /// equality operator
  int operator==(const Level1TriggerRates& e) const { return false; }

  /// inequality operator
  int operator!=(const Level1TriggerRates& e) const { return false; }

protected:
  int version_;

  TimeSpec collectionTime_;
  unsigned long long deltaNS_;
  double deltaT_;
  double gtTriggersRate_;
  double gtEventsRate_;

  TimeSpec collectionTimeLumiSeg_;
  double triggersPhysicsGeneratedFDLRate_;
  double triggersPhysicsLostRate_;
  double triggersPhysicsLostBeamActiveRate_;
  double triggersPhysicsLostBeamInactiveRate_;
  double l1AsPhysicsRate_;
  double l1AsRandomRate_;
  double l1AsTestRate_;
  double l1AsCalibrationRate_;
  double deadtimePercent_;
  double deadtimeBeamActivePercent_;
  double deadtimeBeamActiveTriggerRulesPercent_;
  double deadtimeBeamActiveCalibrationPercent_;
  double deadtimeBeamActivePrivateOrbitPercent_;
  double deadtimeBeamActivePartitionControllerPercent_;
  double deadtimeBeamActiveTimeSlotPercent_;

  std::vector<double> gtAlgoCountsRate_;
  std::vector<double> gtTechCountsRate_;
};

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

typedef std::vector<Level1TriggerRates> Level1TriggerRatesCollection;

#endif