Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef Fireworks_Core_CmsShowMain_h
0003 #define Fireworks_Core_CmsShowMain_h
0004 //
0005 // Package:     Core
0006 // Class  :     CmsShowMain
0007 //
0008 /**\class CmsShowMain CmsShowMain.h Fireworks/Core/interface/CmsShowMain.h
0009 
0010    Description: Displays an fwlite::Event in ROOT
0011 
0012    Usage:
0013     <usage>
0014 
0015  */
0016 //
0017 // Original Author:
0018 //         Created:  Mon Dec  3 08:34:30 PST 2007
0019 //
0020 
0021 #include "Fireworks/Core/interface/CmsShowMainBase.h"
0022 // user include files
0023 #include "Fireworks/Core/interface/FWGeometry.h"
0024 
0025 // system include files
0026 #include <vector>
0027 #include <string>
0028 #include <memory>
0029 #include "Rtypes.h"
0030 
0031 // forward declarations
0032 class TGPictureButton;
0033 class TGComboBox;
0034 class TGTextButton;
0035 class TGTextEntry;
0036 class FWEventItemsManager;
0037 class FWViewManagerManager;
0038 class FWModelChangeManager;
0039 class FWColorManager;
0040 class FWSelectionManager;
0041 class FWGUIManager;
0042 class FWEventItem;
0043 class FWPhysicsObjectDesc;
0044 class FWConfigurationManager;
0045 class FWLiteJobMetadataManager;
0046 class TTimer;
0047 class TMonitor;
0048 class TSocket;
0049 class CmsShowNavigator;
0050 class CmsShowTaskExecutor;
0051 class CSGAction;
0052 class CmsShowSearchFiles;
0053 
0054 namespace fwlite {
0055   class Event;
0056 }
0057 
0058 class CmsShowMain : public CmsShowMainBase {
0059 public:
0060   CmsShowMain(int argc, char* argv[]);
0061   ~CmsShowMain() override;
0062   void resetInitialization();
0063   void openData();
0064   void appendData();
0065   void openDataViaURL();
0066   void quit() override;
0067   void doExit();
0068 
0069   //  void writeConfigurationFile(const std::string& iFileName) const;
0070   // ---------- static member functions --------------------
0071 
0072   // ---------- member functions ---------------------------
0073   //  int draw(const fwlite::Event& );
0074 
0075   void notified(TSocket*);
0076   const fwlite::Event* getCurrentEvent() const;
0077   const fireworks::Context* context() const { return m_context.get(); };
0078   bool getVersionCheck() const { return !m_noVersionCheck; }
0079   bool getGlobalTagCheck() const { return m_globalTagCheck; }
0080 
0081   void fileChangedSlot(const TFile* file);
0082 
0083 protected:
0084   void eventChangedImp() override;
0085 
0086 private:
0087   CmsShowMain(const CmsShowMain&);                   // stop default
0088   const CmsShowMain& operator=(const CmsShowMain&);  // stop default
0089 
0090   void loadGeometry();
0091   void setupDataHandling();
0092   void setupSocket(unsigned int);
0093   void connectSocket();
0094   void setLoadedAnyInputFileAfterStartup();
0095 
0096   void autoLoadNewEvent() override;
0097   void checkPosition() override;
0098   void stopPlaying() override;
0099   void checkKeyBindingsOnPLayEventsStateChanged() override;
0100 
0101   void reachedEnd();
0102   void reachedBeginning();
0103 
0104   // Filtering bits.
0105   void navigatorChangedFilterState(int);
0106   void filterButtonClicked();
0107   void preFiltering();
0108   void postFiltering(bool);
0109 
0110   void setLiveMode();
0111   void checkLiveMode();
0112 
0113   // ---------- member data --------------------------------
0114   std::unique_ptr<CmsShowNavigator> m_navigator;
0115   std::unique_ptr<FWLiteJobMetadataManager> m_metadataManager;
0116   std::unique_ptr<fireworks::Context> m_context;
0117 
0118   std::vector<std::string> m_inputFiles;
0119   bool m_loadedAnyInputFile;
0120   const TFile* m_openFile;
0121 
0122   std::unique_ptr<CmsShowSearchFiles> m_searchFiles;
0123 
0124   // live options
0125   bool m_live;
0126   std::unique_ptr<SignalTimer> m_liveTimer;
0127   int m_liveTimeout;
0128   UInt_t m_lastXEventSerial;
0129 
0130   bool m_noVersionCheck;
0131   bool m_globalTagCheck;
0132 
0133   std::unique_ptr<TMonitor> m_monitor;
0134 };
0135 
0136 #endif