CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/Fireworks/Eve/interface/EveService.h

Go to the documentation of this file.
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