DQMProtobufReader

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
#ifndef DQMServices_StreamerIO_DQMProtobufReader_h
#define DQMServices_StreamerIO_DQMProtobufReader_h

#include "DQMServices/Core/interface/DQMStore.h"
#include "FWCore/Framework/interface/Frameworkfwd.h"
#include "FWCore/Sources/interface/PuttableSourceBase.h"

#include "DQMFileIterator.h"

namespace dqmservices {

  class DQMProtobufReader : public edm::PuttableSourceBase {
  public:
    typedef dqm::legacy::MonitorElement MonitorElement;
    typedef dqm::legacy::DQMStore DQMStore;

    explicit DQMProtobufReader(edm::ParameterSet const&, edm::InputSourceDescription const&);
    ~DQMProtobufReader() override = default;

    static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);

  private:
    void load(DQMStore* store, std::string filename);
    edm::InputSource::ItemTypeInfo getNextItemType() override;
    std::shared_ptr<edm::RunAuxiliary> readRunAuxiliary_() override;
    std::shared_ptr<edm::LuminosityBlockAuxiliary> readLuminosityBlockAuxiliary_() override;
    void readRun_(edm::RunPrincipal& rpCache) override;
    void readLuminosityBlock_(edm::LuminosityBlockPrincipal& lbCache) override;
    void readEvent_(edm::EventPrincipal&) override;

    // actual reading will happen here
    void beginLuminosityBlock(edm::LuminosityBlock& lb) override;

    void logFileAction(char const* msg, char const* fileName) const;
    bool prepareNextFile();

    DQMFileIterator fiterator_;
    DQMFileIterator::LumiEntry currentLumi_;

    bool const flagSkipFirstLumis_;
    bool const flagEndOfRunKills_;
    bool const flagDeleteDatFiles_;
    bool const flagLoadFiles_;
  };

}  // namespace dqmservices

#endif  // DQMServices_StreamerIO_DQMProtobufReader_h