CMS 3D CMS Logo

EventBase.h
Go to the documentation of this file.
1 #ifndef FWCore_Common_EventBase_h
2 #define FWCore_Common_EventBase_h
3 // -*- C++ -*-
4 //
5 // Package: FWCore/Common
6 // Class : EventBase
7 //
18 //
19 // Original Author: Chris Jones
20 // Created: Thu Aug 27 11:01:06 CDT 2009
21 //
22 
23 // user include files
25 
34 
35 // system include files
36 #include <typeinfo>
37 
38 namespace edm {
39 
40  class ProcessHistory;
41  class ProductID;
42  class TriggerResults;
43  class TriggerNames;
44  class ParameterSet;
45 
46  class EventBase {
47  public:
48  EventBase();
49  virtual ~EventBase();
50 
51  // ---------- const member functions ---------------------
52  template <typename T>
53  bool getByLabel(InputTag const&, Handle<T>&) const;
54 
55  template <typename T>
56  bool get(ProductID const&, Handle<T>&) const;
57 
58  // AUX functions.
59  edm::EventID id() const { return eventAuxiliary().id(); }
60  edm::Timestamp time() const { return eventAuxiliary().time(); }
62  bool isRealData() const { return eventAuxiliary().isRealData(); }
64  int bunchCrossing() const { return eventAuxiliary().bunchCrossing(); }
65  int orbitNumber() const { return eventAuxiliary().orbitNumber(); }
66  virtual edm::EventAuxiliary const& eventAuxiliary() const = 0;
67 
68  virtual TriggerNames const& triggerNames(edm::TriggerResults const& triggerResults) const = 0;
69  virtual TriggerResultsByName triggerResultsByName(edm::TriggerResults const& triggerResults) const = 0;
70  virtual ProcessHistory const& processHistory() const = 0;
71 
72  virtual edm::ParameterSet const* parameterSet(edm::ParameterSetID const& psID) const = 0;
73 
74  protected:
75  static TriggerNames const* triggerNames_(edm::TriggerResults const& triggerResults);
76 
77  static edm::ParameterSet const* parameterSetForID_(edm::ParameterSetID const& psID);
78 
79  private:
80  //EventBase(EventBase const&); // allow default
81 
82  //EventBase const& operator=(EventBase const&); // allow default
83 
84  virtual BasicHandle getByLabelImpl(std::type_info const& iWrapperType,
85  std::type_info const& iProductType,
86  InputTag const& iTag) const = 0;
87  virtual BasicHandle getImpl(std::type_info const& iProductType, ProductID const& iTag) const = 0;
88  // ---------- member data --------------------------------
89  };
90 
91  template <typename T>
93  result.clear();
94  BasicHandle bh = this->getByLabelImpl(typeid(edm::Wrapper<T>), typeid(T), tag);
95  result = convert_handle<T>(std::move(bh));
96  if (result.failedToGet()) {
97  return false;
98  }
99  return true;
100  }
101 
102  template <typename T>
103  bool EventBase::get(ProductID const& pid, Handle<T>& result) const {
104  result.clear();
105  BasicHandle bh = this->getImpl(typeid(T), pid);
106  result = convert_handle_check_type<T>(std::move(bh));
107  if (result.failedToGet()) {
108  return false;
109  }
110  return true;
111  }
112 
113 } // namespace edm
114 
115 #endif
virtual ProcessHistory const & processHistory() const =0
bool isRealData() const
bool get(ProductID const &, Handle< T > &) const
Definition: EventBase.h:103
virtual BasicHandle getByLabelImpl(std::type_info const &iWrapperType, std::type_info const &iProductType, InputTag const &iTag) const =0
Timestamp const & time() const
int bunchCrossing() const
Definition: EventBase.h:64
edm::LuminosityBlockNumber_t luminosityBlock() const
Definition: EventBase.h:61
bool isRealData() const
Definition: EventBase.h:62
unsigned int LuminosityBlockNumber_t
int bunchCrossing() const
LuminosityBlockNumber_t luminosityBlock() const
ExperimentType experimentType() const
static edm::ParameterSet const * parameterSetForID_(edm::ParameterSetID const &psID)
Definition: EventBase.cc:41
int orbitNumber() const
int orbitNumber() const
Definition: EventBase.h:65
virtual edm::ParameterSet const * parameterSet(edm::ParameterSetID const &psID) const =0
static TriggerNames const * triggerNames_(edm::TriggerResults const &triggerResults)
Definition: EventBase.cc:45
virtual BasicHandle getImpl(std::type_info const &iProductType, ProductID const &iTag) const =0
bool failedToGet() const
Definition: HandleBase.h:78
static std::string const triggerResults("TriggerResults")
EventID const & id() const
edm::EventID id() const
Definition: EventBase.h:59
bool getByLabel(InputTag const &, Handle< T > &) const
Definition: EventBase.h:92
HLT enums.
virtual TriggerResultsByName triggerResultsByName(edm::TriggerResults const &triggerResults) const =0
edm::EventAuxiliary::ExperimentType experimentType() const
Definition: EventBase.h:63
virtual TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const =0
virtual ~EventBase()
Definition: EventBase.cc:39
long double T
edm::Timestamp time() const
Definition: EventBase.h:60
def move(src, dest)
Definition: eostools.py:511
virtual edm::EventAuxiliary const & eventAuxiliary() const =0