00001 #ifndef Fireworks_Eve_EveService_h 00002 #define Fireworks_Eve_EveService_h 00003 // -*- C++ -*- 00004 // 00005 // Package: Fireworks/Eve 00006 // Class : EveService 00007 // 00016 // 00017 // Original Author: Matevz Tadel 00018 // Created: Fri Jun 25 18:56:52 CEST 2010 00019 // $Id: EveService.h,v 1.6 2013/06/25 03:48:24 matevz Exp $ 00020 // 00021 00022 #include <string> 00023 #include <Rtypes.h> 00024 00025 namespace edm 00026 { 00027 class ParameterSet; 00028 class ActivityRegistry; 00029 class Run; 00030 class Event; 00031 class EventSetup; 00032 } 00033 00034 class TEveManager; 00035 class TEveElement; 00036 class TEveMagField; 00037 class TEveTrackPropagator; 00038 class TRint; 00039 00040 class TGTextButton; 00041 class TGLabel; 00042 00043 class EveService 00044 { 00045 public: 00046 EveService(const edm::ParameterSet&, edm::ActivityRegistry&); 00047 virtual ~EveService(); 00048 00049 // ---------- const member functions --------------------- 00050 00051 // ---------- static member functions -------------------- 00052 00053 // ---------- member functions --------------------------- 00054 00055 void postBeginJob(); 00056 void postEndJob(); 00057 00058 void postBeginRun(const edm::Run&, const edm::EventSetup&); 00059 00060 void postProcessEvent(const edm::Event&, const edm::EventSetup&); 00061 00062 void display(const std::string& info=""); 00063 00064 TEveManager* getManager(); 00065 TEveMagField* getMagField(); 00066 void setupFieldForPropagator(TEveTrackPropagator* prop); 00067 00068 // Shortcuts for adding top level event and geometry elements. 00069 void AddElement(TEveElement* el); 00070 void AddGlobalElement(TEveElement* el); 00071 00072 // GUI slots -- must be public so that ROOT can call them via CINT. 00073 00074 void slotExit(); 00075 void slotNextEvent(); 00076 void slotStep(); 00077 void slotContinue(); 00078 00079 protected: 00080 void createEventNavigationGUI(); 00081 00082 private: 00083 EveService(const EveService&); // stop default 00084 const EveService& operator=(const EveService&); // stop default 00085 00086 // ---------- member data -------------------------------- 00087 00088 TEveManager *m_EveManager; 00089 TRint *m_Rint; 00090 00091 TEveMagField *m_MagField; 00092 00093 bool m_AllowStep; 00094 bool m_ShowEvent; 00095 00096 TGTextButton *m_ContinueButton; 00097 TGTextButton *m_StepButton; 00098 TGLabel *m_StepLabel; 00099 00100 ClassDef(EveService, 0); 00101 }; 00102 00103 #endif