CPUSpender

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
#include "FWCore/Framework/interface/MakerMacros.h"
#include "FWCore/Framework/interface/stream/EDAnalyzer.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/EventSetup.h"

class CPUSpender : public edm::stream::EDAnalyzer<> {
public:
  /// Constructor
  CPUSpender(const edm::ParameterSet& pset) { timePerEvent_ = pset.getUntrackedParameter<int>("secPerEvent"); }

  /// Destructor
  ~CPUSpender() override {}

  void analyze(const edm::Event& event, const edm::EventSetup& eventSetup) override {
    time_t s = time(nullptr);
    while (time(nullptr) - s < timePerEvent_) {
      continue;
    }
  }

  // Operations
  void beginJob() {}
  void endJob() {}

protected:
  //  void printTrackRecHits(const reco::Track &, edm::ESHandle<GlobalTrackingGeometry>) const;

private:
  unsigned int timePerEvent_;
};

DEFINE_FWK_MODULE(CPUSpender);