Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:11:45

0001 #ifndef Fireworks_Geometry_EveService_h
0002 #define Fireworks_Geometry_EveService_h
0003 // -*- C++ -*-
0004 //
0005 // Package:     Fireworks/Eve
0006 // Class  :     EveService
0007 //
0008 /**\class EveService EveService.h Fireworks/Geometry/interface/EveService.h
0009 
0010  Description: [one line class summary]
0011 
0012  Usage:
0013     <usage>
0014 
0015 */
0016 //
0017 // Original Author:  Matevz Tadel
0018 //         Created:  Fri Jun 25 18:56:52 CEST 2010
0019 //
0020 
0021 #include <string>
0022 #include <Rtypes.h>
0023 
0024 namespace edm {
0025   class ParameterSet;
0026   class ActivityRegistry;
0027   class Run;
0028   class Event;
0029   class EventSetup;
0030   class StreamContext;
0031   class GlobalContext;
0032 }  // namespace edm
0033 
0034 class TEveManager;
0035 class TEveElement;
0036 class TEveMagField;
0037 class TEveTrackPropagator;
0038 class TRint;
0039 
0040 class TGTextButton;
0041 class TGLabel;
0042 
0043 class EveService {
0044 public:
0045   EveService(const edm::ParameterSet&, edm::ActivityRegistry&);
0046   virtual ~EveService();
0047 
0048   // ---------- const member functions ---------------------
0049 
0050   // ---------- static member functions --------------------
0051 
0052   // ---------- member functions ---------------------------
0053 
0054   void postBeginJob();
0055   void postEndJob();
0056 
0057   void postGlobalBeginRun(edm::GlobalContext const&);
0058 
0059   void postEvent(edm::StreamContext const&);
0060 
0061   void display(const std::string& info = "");
0062 
0063   TEveManager* getManager();
0064   TEveMagField* getMagField();
0065   void setupFieldForPropagator(TEveTrackPropagator* prop);
0066 
0067   // Shortcuts for adding top level event and geometry elements.
0068   void AddElement(TEveElement* el);
0069   void AddGlobalElement(TEveElement* el);
0070 
0071   // GUI slots -- must be public so that ROOT can call them via CINT.
0072 
0073   void slotExit();
0074   void slotNextEvent();
0075   void slotStep();
0076   void slotContinue();
0077 
0078 protected:
0079   void createEventNavigationGUI();
0080 
0081 private:
0082   EveService(const EveService&);                   // stop default
0083   const EveService& operator=(const EveService&);  // stop default
0084 
0085   // ---------- member data --------------------------------
0086 
0087   TEveManager* m_EveManager;
0088   TRint* m_Rint;
0089 
0090   TEveMagField* m_MagField;
0091 
0092   bool m_AllowStep;
0093   bool m_ShowEvent;
0094 
0095   TGTextButton* m_ContinueButton;
0096   TGTextButton* m_StepButton;
0097   TGLabel* m_StepLabel;
0098 
0099   ClassDef(EveService, 0);
0100 };
0101 
0102 #endif