#ifndef ACCESSTRIGGER_HPP_ #define ACCESSTRIGGER_HPP_ #include #include #include #include "framework/Package.hpp" #include "framework/interfaces/Flow.hpp" #include "framework/interfaces/StandAlone.hpp" #include "edm/TKey.hpp" namespace edm { class Event; } class L3Chunk; class L3PhysicsResults; class HepRootFileManager; class TH1F; class TH2F; namespace d0tutorial { class AccessTrigger : public fwk::Package, public fwk::Filter, public fwk::Analyze, public fwk::JobSummary, public fwk::FileClose { public: AccessTrigger(fwk::Context *ctx); virtual ~AccessTrigger(); virtual fwk::Result filterEvent(const edm::Event& event); virtual fwk::Result analyzeEvent(const edm::Event& event); virtual fwk::Result fileClose(const fwk::FileInfo& info); virtual fwk::Result jobSummary(); virtual std::string packageName() const { return package_name(); } static const std::string package_name() { return "AccessTrigger"; } static const std::string version() { return "$Id"; } private: void access_triggers(const edm::Event& event); void access_l1l2(const edm::Event& event); void access_l3(const edm::Event& event); void use_l3_result(L3PhysicsResults *result); bool trigger_fired(const std::string& trigger); bool trigger_fired(const std::vector& trigger_list); private: bool _debug; unsigned int _events_read; unsigned int _events_passed; unsigned int _events_processed; std::vector _triggers; std::vector _user_triggers; std::set _luminosity_block_numbers; edm::TKey _l3Key; HepRootFileManager *_mgr; TH1F *_l1_tot; TH1F *_l1_em; TH1F *_l1_ctt; TH1F *_l2_em; TH1F *_l1l2_diff; TH1F *_l1l2_eta; TH1F *_l1l2_phi; }; } #endif // ACCESSTRIGGER_HPP_