00001 #ifndef QUICK_ANA__I_EVENT_OBJECTS_H 00002 #define QUICK_ANA__I_EVENT_OBJECTS_H 00003 00004 // Copyright Iowa State University 2014. 00005 // Author: Nils Krumnack 00006 // Distributed under the Boost Software License, Version 1.0. 00007 // (See accompanying file LICENSE_1_0.txt or copy at 00008 // http://www.boost.org/LICENSE_1_0.txt) 00009 00010 // Please feel free to contact me (nils.erik.krumnack@cern.ch) for bug 00011 // reports, feature suggestions, praise and complaints. 00012 00013 00014 00015 #include <QuickAna/Global.h> 00016 00017 #include <QuickAna/xAODInclude.h> 00018 #include <QuickAna/xAODEventSelect.h> 00019 00020 namespace ana 00021 { 00028 00029 class IEventObjects 00030 { 00031 // 00032 // public interface 00033 // 00034 00038 public: 00039 virtual ~IEventObjects () = default; 00040 00041 00046 public: 00047 template<class T> T *get (ObjectType type) const; 00048 00049 00055 public: 00056 xAOD::IParticleContainer *getParticles (ObjectType type); 00057 00058 00066 public: 00067 virtual void *getVoid (ObjectType type) const = 0; 00068 00069 00078 public: 00079 virtual StatusCode addCopy (ObjectType type, const std::string& name) = 0; 00080 00081 00088 public: 00089 virtual StatusCode addNew (ObjectType type) = 0; 00090 00091 00096 public: 00097 virtual float eventWeight () const = 0; 00098 00099 00103 public: 00104 xAOD::EventInfo *eventinfo () const; 00105 00106 00110 public: 00111 EventSelectType *eventSelect () const; 00112 00113 00117 public: 00118 xAOD::MuonContainer *muons () const; 00119 00120 00124 public: 00125 xAOD::TauJetContainer *taus () const; 00126 00127 00131 public: 00132 xAOD::ElectronContainer *electrons () const; 00133 00134 00138 public: 00139 xAOD::PhotonContainer *photons () const; 00140 00141 00145 public: 00146 xAOD::JetContainer *jets () const; 00147 00148 00152 public: 00153 xAOD::JetContainer *fat_jets () const; 00154 00155 00159 public: 00160 xAOD::MissingETContainer *met () const; 00161 00162 00166 public: 00167 xAOD::MissingETContainer *met2 () const; 00168 }; 00169 } 00170 00171 #include <QuickAna/IEventObjects.icc> 00172 00173 #endif