LHCInfoPerFillTester

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

#include "CondFormats/RunInfo/interface/LHCInfoPerFill.h"
#include "CondFormats/DataRecord/interface/LHCInfoPerFillRcd.h"

#include <memory>
#include <iostream>
#include <vector>
#include <cassert>

class LHCInfoPerFillTester : public edm::one::EDAnalyzer<> {
public:
  explicit LHCInfoPerFillTester(const edm::ParameterSet&)
      : tokenInfoPerFill_(esConsumes<LHCInfoPerFill, LHCInfoPerFillRcd>()) {}

private:
  void beginJob() override {}
  void analyze(const edm::Event&, const edm::EventSetup&) override;
  void endJob() override {}

  edm::ESWatcher<LHCInfoPerFillRcd> infoPerFillWatcher_;

  edm::ESGetToken<LHCInfoPerFill, LHCInfoPerFillRcd> tokenInfoPerFill_;
};

void LHCInfoPerFillTester::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) {
  assert(infoPerFillWatcher_.check(iSetup));

  const LHCInfoPerFill& lhcInfoPerFill = iSetup.getData(tokenInfoPerFill_);
  const float EPS = 1E-4;
  assert(lhcInfoPerFill.fillNumber() == 3);
  assert(lhcInfoPerFill.bunchesInBeam1() == 10);
  assert(lhcInfoPerFill.bunchesInBeam2() == 8);
  assert(lhcInfoPerFill.collidingBunches() == 5);
  assert(lhcInfoPerFill.targetBunches() == 4);
  assert(lhcInfoPerFill.fillType() == lhcInfoPerFill.PROTONS);
  assert(lhcInfoPerFill.particleTypeForBeam1() == lhcInfoPerFill.PROTON);
  assert(lhcInfoPerFill.particleTypeForBeam2() == lhcInfoPerFill.PROTON);
  assert(abs(lhcInfoPerFill.intensityForBeam1() - 1016.5) < EPS);
  assert(abs(lhcInfoPerFill.intensityForBeam2() - 1096.66) < EPS);
  assert(abs(lhcInfoPerFill.energy() - 7000) < EPS);
  assert(abs(lhcInfoPerFill.delivLumi() - 2E-07) < EPS);
  assert(abs(lhcInfoPerFill.recLumi() - 2E-07) < EPS);
  assert(abs(lhcInfoPerFill.instLumi() - 0) < EPS);
  assert(abs(lhcInfoPerFill.instLumiError() - 0) < EPS);
  assert(lhcInfoPerFill.createTime() == 6561530930997627120);
  assert(lhcInfoPerFill.beginTime() == 6561530930997627120);
  assert(lhcInfoPerFill.endTime() == 6561530930997627120);
  assert(lhcInfoPerFill.injectionScheme() == "None");
  assert(lhcInfoPerFill.lumiPerBX().size() == 2);
  assert(abs(lhcInfoPerFill.lumiPerBX()[0] - 0.000114139) < EPS);
  assert(abs(lhcInfoPerFill.lumiPerBX()[1] - 0.000114139) < EPS);
  assert(lhcInfoPerFill.lhcState() == "some lhcState");
  assert(lhcInfoPerFill.lhcComment() == "some lhcComment");
  assert(lhcInfoPerFill.ctppsStatus() == "some ctppsStatus");
  edm::LogInfo("LHCInfoPerFillTester") << "LHCInfoPerFill retrieved:\n" << lhcInfoPerFill;
}

DEFINE_FWK_MODULE(LHCInfoPerFillTester);