CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
CmsShowMain Class Reference

#include <Fireworks/Core/interface/CmsShowMain.h>

Inheritance diagram for CmsShowMain:
CmsShowMainBase

Public Member Functions

void appendData ()
 
 CmsShowMain (int argc, char *argv[])
 
const fireworks::Contextcontext () const
 
void doExit ()
 
void fileChangedSlot (const TFile *file)
 
const fwlite::EventgetCurrentEvent () const
 
bool getGlobalTagCheck () const
 
bool getVersionCheck () const
 
void notified (TSocket *)
 
void openData ()
 
void openDataViaURL ()
 
void quit () override
 
void resetInitialization ()
 
 ~CmsShowMain () override
 
- Public Member Functions inherited from CmsShowMainBase
FWModelChangeManagerchangeManager ()
 
 CmsShowMainBase ()
 
FWColorManagercolorManager ()
 
const char * configFilename () const
 
FWConfigurationManagerconfigurationManager ()
 
void doFirstEvent ()
 
void doLastEvent ()
 
void doNextEvent ()
 
void doPreviousEvent ()
 
void draw ()
 
FWEventItemsManagereiManager ()
 
bool forward () const
 
const std::string & geometryFilename (void)
 
FWGeometrygetGeom ()
 
void goToRunEvent (edm::RunNumber_t, edm::LuminosityBlockNumber_t, edm::EventNumber_t)
 
FWGUIManagerguiManager ()
 
bool isPlaying () const
 
void loadGeometry ()
 
bool loop () const
 
FWModelChangeManagermodelChangeManager ()
 
void partialLoadConfiguration (const std::string &config)
 
void partialWriteToConfigFile (const std::string &config)
 
void playBackward ()
 
void playForward ()
 
void registerPhysicsObject (const FWPhysicsObjectDesc &iItem)
 
void reloadConfiguration (const std::string &config)
 
FWSelectionManagerselectionManager ()
 
void setAutoSaveAllViewsFormat (const std::string &fmt)
 
void setAutoSaveAllViewsHeight (int x)
 
void setConfigFilename (const std::string &f)
 
void setGeometryFilename (const std::string &filename)
 
void setPlayDelay (Float_t val)
 
void setPlayLoop ()
 
void setSimGeometryFilename (const std::string &filename, const std::string &geoname)
 
void setup (FWNavigatorBase *navigator, fireworks::Context *context, FWJobMetadataManager *metadataManager)
 
void setupActions ()
 
void setupAutoLoad (float x)
 
void setupConfiguration ()
 
void setupDebugSupport ()
 
void setupViewManagers ()
 
void startAutoLoadTimer ()
 
CmsShowTaskExecutorstartupTasks ()
 
void stopAutoLoadTimer ()
 
void unsetPlayLoop ()
 
FWViewManagerManagerviewManager ()
 
void writePartialToConfigFile ()
 
void writeToConfigFile (const std::string &config)
 
void writeToCurrentConfigFile ()
 
virtual ~CmsShowMainBase () noexcept(false)
 

Protected Member Functions

void eventChangedImp () override
 
- Protected Member Functions inherited from CmsShowMainBase
fireworks::Contextcontext ()
 
void eventChangedSlot ()
 
void sendVersionInfo ()
 

Private Member Functions

void autoLoadNewEvent () override
 
void checkKeyBindingsOnPLayEventsStateChanged () override
 
void checkLiveMode ()
 
void checkPosition () override
 
 CmsShowMain (const CmsShowMain &)
 
void connectSocket ()
 
void filterButtonClicked ()
 
void loadGeometry ()
 
void navigatorChangedFilterState (int)
 
const CmsShowMainoperator= (const CmsShowMain &)
 
void postFiltering (bool)
 
void preFiltering ()
 
void reachedBeginning ()
 
void reachedEnd ()
 
void setLiveMode ()
 
void setLoadedAnyInputFileAfterStartup ()
 
void setupDataHandling ()
 
void setupSocket (unsigned int)
 
void stopPlaying () override
 

Private Attributes

std::unique_ptr< fireworks::Contextm_context
 
bool m_globalTagCheck
 
std::vector< std::string > m_inputFiles
 
UInt_t m_lastXEventSerial
 
bool m_live
 
int m_liveTimeout
 
std::unique_ptr< SignalTimerm_liveTimer
 
bool m_loadedAnyInputFile
 
std::unique_ptr< FWLiteJobMetadataManagerm_metadataManager
 
std::unique_ptr< TMonitor > m_monitor
 
std::unique_ptr< CmsShowNavigatorm_navigator
 
bool m_noVersionCheck
 
const TFile * m_openFile
 
std::unique_ptr< CmsShowSearchFilesm_searchFiles
 

Detailed Description

Description: Displays an fwlite::Event in ROOT

Usage: <usage>

Definition at line 58 of file CmsShowMain.h.

Constructor & Destructor Documentation

CmsShowMain::CmsShowMain ( int  argc,
char *  argv[] 
)

Definition at line 124 of file CmsShowMain.cc.

References CmsShowTaskExecutor::addTask(), Vispa.Plugins.EdmBrowser.EdmDataAccessor::all(), dir2webdir::argc, cmsBatch::argv, CmsShowMainBase::configFilename(), CmsShowMainBase::configurationManager(), connectSocket(), gather_cfg::cout, MillePedeFileConverter_cfg::e, CmsShowMainBase::eiManager(), relativeConstraints::empty, FWLiteEnabler::enable(), FWColorPopup::EnableFreePalette(), cppFunctionSkipper::exception, beamvalidation::exit(), f, fwLog, CmsShowMainBase::geometryFilename(), CmsShowMainBase::guiManager(), kAdvancedRenderCommandOpt, kAdvancedRenderOpt, kAutoSaveAllViews, kAutoSaveHeight, kAutoSaveType, kChainCommandOpt, kConfigFileCommandOpt, kConfigFileOpt, kEnableFPE, fwlog::kError, kEveCommandOpt, kEveOpt, kExpertCommandOpt, kFieldCommandOpt, kFreePaletteCommandOpt, kGeomFileCommandOpt, kGeomFileOpt, kHelpCommandOpt, kHelpOpt, fwlog::kInfo, kInputFilesCommandOpt, kInputFilesOpt, kLiveCommandOpt, kLogLevelCommandOpt, kLogTreeCacheOpt, kLoopCommandOpt, kLoopOpt, kNoConfigFileCommandOpt, kNoConfigFileOpt, kNoVersionCheck, kPlainRootCommandOpt, kPlayCommandOpt, kPlayOpt, kPortCommandOpt, kPrefetchTreeCacheOpt, kRootInteractiveCommandOpt, kSimGeomFileCommandOpt, kSimGeomFileOpt, kSizeTreeCacheOpt, kSoftCommandOpt, kSyncAllViews, kTGeoNameCommandOpt, kTGeoNameOpt, FWMagField::kUser, kZeroWinOffsets, personalPlayback::level, CmsShowMainBase::loadGeometry(), FWTTreeCache::LoggingOn(), m_context, m_globalTagCheck, m_inputFiles, m_metadataManager, m_navigator, m_noVersionCheck, AlcaSiPixelAliHarvester0T_cff::options, AlCaHLTBitMon_ParallelJobs::p, FWTTreeCache::PrefetchingOn(), FWGUIManager::resetWMOffsets(), writedatasetfile::run, CmsShowMainBase::setAutoSaveAllViewsFormat(), CmsShowMainBase::setAutoSaveAllViewsHeight(), CmsShowMainBase::setConfigFilename(), FWEventItemsManager::setContext(), FWTTreeCache::SetDefaultCacheSize(), CmsShowMainBase::setGeometryFilename(), FWConfigurationManager::setIgnore(), setLiveMode(), CmsShowNavigator::setMaxNumberOfFilesToChain(), CmsShowMainBase::setPlayLoop(), fwlog::setPresentLogLevel(), CmsShowMainBase::setSimGeometryFilename(), CmsShowMainBase::setup(), CmsShowMainBase::setupAutoLoad(), setupDataHandling(), CmsShowMainBase::setupDebugSupport(), setupSocket(), CmsShowMainBase::setupViewManagers(), CmsShowTaskExecutor::startDoingTasks(), CmsShowMainBase::startupTasks(), AlCaHLTBitMon_QueryRunRegistry::string, FWEveViewManager::syncAllViews(), and w.

125  : CmsShowMainBase(),
126  m_navigator(new CmsShowNavigator(*this)),
130  m_loadedAnyInputFile(false),
131  m_openFile(nullptr),
132  m_live(false),
133  m_liveTimer(new SignalTimer()),
134  m_liveTimeout(600000),
136  m_noVersionCheck(false),
137  m_globalTagCheck(true) {
138  try {
139  TGLWidget* w = TGLWidget::Create(gClient->GetDefaultRoot(), kTRUE, kTRUE, nullptr, 10, 10);
140  delete w;
141  } catch (std::exception& iException) {
142  fwLog(fwlog::kError) << "Failed creating an OpenGL window: " << iException.what()
143  << "\n"
144  "Things to check:\n"
145  "- Is DISPLAY environment variable set?\n"
146  "- Are OpenGL libraries installed?\n"
147  "- If running remotely, make sure you use 'ssh -X' or 'ssh -Y'.\n"
148  "See also: https://twiki.cern.ch/twiki/bin/viewauth/CMS/WorkBookFireworks\n";
149  gSystem->Exit(1);
150  }
151 
152  eiManager()->setContext(m_context.get());
153 
154  std::string descString(argv[0]);
155  descString += " [options] <data file>\nGeneral";
156 
157  namespace po = boost::program_options;
158  po::options_description desc(descString);
159  desc.add_options()(kInputFilesCommandOpt, po::value<std::vector<std::string> >(), "Input root files")(
160  kConfigFileCommandOpt, po::value<std::string>(), "Include configuration file")(
161  kNoConfigFileCommandOpt, "Empty configuration")(kNoVersionCheck, "No file version check")(
162  kGeomFileCommandOpt, po::value<std::string>(), "Reco geometry file. Default is cmsGeom10.root")(
164  po::value<std::string>(),
165  "Geometry file for browsing in table view. Default is CmsSimGeom-14.root. Can be simulation or reco geometry in "
166  "TGeo format")(kTGeoNameCommandOpt, po::value<std::string>(), "TGeoManager name. The default is \"cmsGeo;1\"")(
167  kFieldCommandOpt, po::value<double>(), "Set magnetic field value explicitly. Default is auto-field estimation")(
168  kRootInteractiveCommandOpt, "Enable root interactive prompt")(
169  kSoftCommandOpt, "Try to force software rendering to avoid problems with bad hardware drivers")(
170  kExpertCommandOpt, "Enable PF user plugins.")(kHelpCommandOpt, "Display help message");
171 
172  po::options_description livedesc("Live Event Display");
173  livedesc.add_options()(
174  kPlayCommandOpt, po::value<float>(), "Start in play mode with given interval between events in seconds")(
175  kPortCommandOpt, po::value<unsigned int>(), "Listen to port for new data files to open")(
176  kLoopCommandOpt, "Loop events in play mode")(
178  po::value<unsigned int>(),
179  "Chain up to a given number of recently open files. Default is 1 - no chain")(
180  kLiveCommandOpt, "Enforce playback mode if a user is not using display")(
182  po::value<std::string>(),
183  "Auto-save all views with given prefix (run_event_lumi_view.<auto-save-type> is appended)")(
184  kAutoSaveType, po::value<std::string>(), "Image type of auto-saved views, png or jpg (png is default)")(
185  kAutoSaveHeight, po::value<int>(), "Screenshots height when auto-save-all-views is enabled")(
186  kSyncAllViews, "Synchronize all views on new event");
187 
188  po::options_description debugdesc("Debug");
189  debugdesc.add_options()(kLogLevelCommandOpt,
190  po::value<unsigned int>(),
191  "Set log level starting from 0 to 4 : kDebug, kInfo, kWarning, kError")(
192  kEveCommandOpt, "Show TEveBrowser to help debug problems")(kEnableFPE,
193  "Enable detection of floating-point exceptions");
194 
195  po::options_description tcachedesc("TreeCache");
196  tcachedesc.add_options()(kLogTreeCacheOpt, "Log tree cache operations and status")(
197  kSizeTreeCacheOpt, po::value<int>(), "Set size of TTreeCache for data access in MB (default is 50)")(
198  kPrefetchTreeCacheOpt, "Enable prefetching");
199 
200  po::options_description rnrdesc("Appearance");
201  rnrdesc.add_options()(kFreePaletteCommandOpt, "Allow free color selection (requires special configuration!)")(
202  kZeroWinOffsets, "Disable auto-detection of window position offsets")(kAdvancedRenderCommandOpt,
203  "Enable line anti-aliasing");
204  po::positional_options_description p;
205  p.add(kInputFilesOpt, -1);
206 
207  po::options_description hiddendesc("hidden");
208  hiddendesc.add_options();
209 
210  po::options_description all("");
211  all.add(desc).add(rnrdesc).add(livedesc).add(debugdesc).add(tcachedesc);
212 
213  int newArgc = argc;
214  char** newArgv = argv;
215  po::variables_map vm;
216  try {
217  po::store(po::command_line_parser(newArgc, newArgv).options(all).positional(p).run(), vm);
218 
219  po::notify(vm);
220  } catch (const std::exception& e) {
221  // Return with exit status 0 to avoid generating crash reports
222 
223  fwLog(fwlog::kError) << e.what() << std::endl;
224  std::cout << all << std::endl;
225  exit(0);
226  }
227 
228  if (vm.count(kHelpOpt)) {
229  std::cout << all << std::endl;
230  exit(0);
231  }
232 
233  if (vm.count(kLogLevelCommandOpt)) {
234  fwlog::LogLevel level = (fwlog::LogLevel)(vm[kLogLevelCommandOpt].as<unsigned int>());
236  }
237 
238  if (vm.count(kLogTreeCacheOpt)) {
239  fwLog(fwlog::kInfo) << "Enabling logging of TTreCache operations." << std::endl;
241  }
242 
243  if (vm.count(kPrefetchTreeCacheOpt)) {
244  fwLog(fwlog::kInfo) << "Enabling TTreCache prefetching." << std::endl;
246  }
247 
248  if (vm.count(kSizeTreeCacheOpt)) {
249  int ds = vm[kSizeTreeCacheOpt].as<int>();
250  if (ds < 0)
251  throw std::runtime_error("tree-cache-size should be non negative");
252  if (ds > 8192)
253  throw std::runtime_error("tree-cache-size should be smaller than 8 GB");
254  fwLog(fwlog::kInfo) << "Setting default TTreeCache size to " << ds << " MB." << std::endl;
255  FWTTreeCache::SetDefaultCacheSize(ds * 1024 * 1024);
256  }
257 
258  if (vm.count(kPlainRootCommandOpt)) {
259  fwLog(fwlog::kInfo) << "Plain ROOT prompt requested" << std::endl;
260  return;
261  }
262 
263  const char* cmspath = gSystem->Getenv("CMSSW_BASE");
264  if (nullptr == cmspath) {
265  throw std::runtime_error("CMSSW_BASE environment variable not set");
266  }
267 
268  // input file
269  if (vm.count(kInputFilesOpt)) {
270  m_inputFiles = vm[kInputFilesOpt].as<std::vector<std::string> >();
271  }
272 
273  if (m_inputFiles.empty())
274  fwLog(fwlog::kInfo) << "No data file given." << std::endl;
275  else if (m_inputFiles.size() == 1)
276  fwLog(fwlog::kInfo) << "Input " << m_inputFiles.front() << std::endl;
277  else
278  fwLog(fwlog::kInfo) << m_inputFiles.size() << " input files; first: " << m_inputFiles.front()
279  << ", last: " << m_inputFiles.back() << std::endl;
280 
281  // configuration file
282  if (vm.count(kConfigFileOpt)) {
283  setConfigFilename(vm[kConfigFileOpt].as<std::string>());
284  if (access(configFilename(), R_OK) == -1) {
285  fwLog(fwlog::kError) << "Specified configuration file does not exist. Quitting.\n";
286  exit(1);
287  }
288 
289  fwLog(fwlog::kInfo) << "Config " << configFilename() << std::endl;
290  } else {
291  if (vm.count(kNoConfigFileOpt)) {
292  fwLog(fwlog::kInfo) << "No configuration is loaded.\n";
294  }
295  }
296 
297  // geometry
298  if (vm.count(kGeomFileOpt)) {
299  m_globalTagCheck = false;
300  setGeometryFilename(vm[kGeomFileOpt].as<std::string>());
301  fwLog(fwlog::kInfo) << "Geometry file " << geometryFilename() << "\n";
302  }
303 
304  if (vm.count(kSimGeomFileOpt)) {
305  if (vm.count(kTGeoNameOpt))
306  setSimGeometryFilename(vm[kSimGeomFileOpt].as<std::string>(), vm[kTGeoNameOpt].as<std::string>());
307  else
308  setSimGeometryFilename(vm[kSimGeomFileOpt].as<std::string>(), "cmsGeo;1");
309  } else {
310  setSimGeometryFilename("cmsSimGeom-14.root", "cmsGeo;1");
311  }
312 
313  // Free-palette palette
314  if (vm.count(kFreePaletteCommandOpt)) {
316  fwLog(fwlog::kInfo) << "Palette restriction removed on user request!\n";
317  }
318  bool eveMode = vm.count(kEveOpt);
319 
320  //Delay creating guiManager and enabling autoloading until here so that if we have a 'help' request we don't
321  // open any graphics or build dictionaries
323 
324  TEveManager::Create(kFALSE, eveMode ? "FIV" : "FI");
325 
326  if (vm.count(kExpertCommandOpt)) {
327  m_context->setHidePFBuilders(false);
328  } else {
329  m_context->setHidePFBuilders(true);
330  }
331 
332  if (vm.count(kExpertCommandOpt)) {
333  m_context->setHidePFBuilders(false);
334  } else {
335  m_context->setHidePFBuilders(true);
336  }
337 
338  setup(m_navigator.get(), m_context.get(), m_metadataManager.get());
339 
340  if (vm.count(kZeroWinOffsets)) {
342  fwLog(fwlog::kInfo) << "Window offsets reset on user request!\n";
343  }
344 
345  if (vm.count(kAdvancedRenderOpt)) {
346  TEveLine::SetDefaultSmooth(kTRUE);
347  }
348 
349  //figure out where to find macros
350  //tell ROOT where to find our macros
352  // first check if port is not occupied
353  if (vm.count(kPortCommandOpt)) {
354  f = boost::bind(&CmsShowMain::setupSocket, this, vm[kPortCommandOpt].as<unsigned int>());
355  startupTasks()->addTask(f);
356  }
357  if (!geometryFilename().empty()) {
358  f = boost::bind(&CmsShowMainBase::loadGeometry, this);
359  startupTasks()->addTask(f);
360  }
361  f = boost::bind(&CmsShowMainBase::setupViewManagers, this);
362  startupTasks()->addTask(f);
363 
364  if (vm.count(kLiveCommandOpt)) {
365  f = boost::bind(&CmsShowMain::setLiveMode, this);
366  startupTasks()->addTask(f);
367  }
368 
369  if (vm.count(kFieldCommandOpt)) {
370  m_context->getField()->setSource(FWMagField::kUser);
371  m_context->getField()->setUserField(vm[kFieldCommandOpt].as<double>());
372  }
373 
374  f = boost::bind(&CmsShowMain::setupDataHandling, this);
375  startupTasks()->addTask(f);
376 
377  if (vm.count(kLoopOpt))
378  setPlayLoop();
379 
380  if (eveMode) {
381  f = boost::bind(&CmsShowMainBase::setupDebugSupport, this);
382  startupTasks()->addTask(f);
383  }
384  if (vm.count(kChainCommandOpt)) {
385  f = boost::bind(
387  startupTasks()->addTask(f);
388  }
389  if (vm.count(kPlayOpt)) {
390  f = boost::bind(&CmsShowMainBase::setupAutoLoad, this, vm[kPlayOpt].as<float>());
391  startupTasks()->addTask(f);
392  }
393 
394  if (vm.count(kAutoSaveAllViews)) {
395  std::string type = "png";
396  if (vm.count(kAutoSaveType)) {
397  type = vm[kAutoSaveType].as<std::string>();
398  if (type != "png" && type != "jpg") {
399  fwLog(fwlog::kError) << "Specified auto-save type not supported. Quitting.\n";
400  exit(1);
401  }
402  }
403  std::string fmt = vm[kAutoSaveAllViews].as<std::string>();
404  fmt += "%u_%u_%llu_%s.";
405  fmt += type;
407  }
408  if (vm.count(kAutoSaveHeight)) {
410  }
411  if (vm.count(kSyncAllViews)) {
413  }
414  if (vm.count(kNoVersionCheck)) {
415  m_noVersionCheck = true;
416  }
417  if (vm.count(kEnableFPE)) {
418  gSystem->SetFPEMask();
419  }
420 
421  if (vm.count(kPortCommandOpt)) {
422  f = boost::bind(&CmsShowMain::connectSocket, this);
423  startupTasks()->addTask(f);
424  }
425 
427 }
static const char *const kPlayCommandOpt
Definition: CmsShowMain.cc:91
static const char *const kNoVersionCheck
Definition: CmsShowMain.cc:119
static void PrefetchingOn()
Definition: FWTTreeCache.cc:25
type
Definition: HCALResponse.h:21
static const char *const kGeomFileCommandOpt
Definition: CmsShowMain.cc:83
FWSelectionManager * selectionManager()
static const char *const kChainCommandOpt
Definition: CmsShowMain.cc:109
static const char *const kAutoSaveAllViews
Definition: CmsShowMain.cc:113
bool m_loadedAnyInputFile
Definition: CmsShowMain.h:119
const double w
Definition: UKUtility.cc:23
FWGUIManager * guiManager()
FWColorManager * colorManager()
static const char *const kZeroWinOffsets
Definition: CmsShowMain.cc:118
void setupSocket(unsigned int)
Definition: CmsShowMain.cc:714
static const char *const kSyncAllViews
Definition: CmsShowMain.cc:116
static const char *const kFieldCommandOpt
Definition: CmsShowMain.cc:111
void setAutoSaveAllViewsHeight(int x)
static const char *const kLogTreeCacheOpt
Definition: CmsShowMain.cc:95
void startDoingTasks() override
FWEventItemsManager * eiManager()
static const char *const kSimGeomFileOpt
Definition: CmsShowMain.cc:84
static const char *const kTGeoNameCommandOpt
Definition: CmsShowMain.cc:87
static const char *const kNoConfigFileOpt
Definition: CmsShowMain.cc:88
const char * configFilename() const
void setup(FWNavigatorBase *navigator, fireworks::Context *context, FWJobMetadataManager *metadataManager)
void setContext(fireworks::Context *)
static const char *const kTGeoNameOpt
Definition: CmsShowMain.cc:86
static const char *const kConfigFileCommandOpt
Definition: CmsShowMain.cc:81
void setupDataHandling()
Definition: CmsShowMain.cc:642
FWModelChangeManager * changeManager()
static const char *const kExpertCommandOpt
Definition: CmsShowMain.cc:105
static const char *const kAdvancedRenderOpt
Definition: CmsShowMain.cc:100
static const char *const kGeomFileOpt
Definition: CmsShowMain.cc:82
LogLevel
Definition: fwLog.h:35
void setupAutoLoad(float x)
static const char *const kPortCommandOpt
Definition: CmsShowMain.cc:106
void setGeometryFilename(const std::string &filename)
static const char *const kPlayOpt
Definition: CmsShowMain.cc:90
void resetWMOffsets()
CmsShowTaskExecutor * startupTasks()
UInt_t m_lastXEventSerial
Definition: CmsShowMain.h:128
std::unique_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:114
static const char *const kEveOpt
Definition: CmsShowMain.cc:98
std::unique_ptr< fireworks::Context > m_context
Definition: CmsShowMain.h:116
static void enable()
enable automatic library loading
std::unique_ptr< FWLiteJobMetadataManager > m_metadataManager
Definition: CmsShowMain.h:115
static const char *const kConfigFileOpt
Definition: CmsShowMain.cc:80
static const char *const kFreePaletteCommandOpt
Definition: CmsShowMain.cc:112
static const char *const kLoopOpt
Definition: CmsShowMain.cc:92
static const char *const kEveCommandOpt
Definition: CmsShowMain.cc:99
double f[11][100]
void setSimGeometryFilename(const std::string &filename, const std::string &geoname)
static const char *const kSoftCommandOpt
Definition: CmsShowMain.cc:104
std::unique_ptr< SignalTimer > m_liveTimer
Definition: CmsShowMain.h:126
static const char *const kLogLevelCommandOpt
Definition: CmsShowMain.cc:94
static const char *const kNoConfigFileCommandOpt
Definition: CmsShowMain.cc:89
static const char *const kEnableFPE
Definition: CmsShowMain.cc:117
std::vector< std::string > m_inputFiles
Definition: CmsShowMain.h:118
void setLiveMode()
Definition: CmsShowMain.cc:832
static const char *const kPrefetchTreeCacheOpt
Definition: CmsShowMain.cc:97
static const char *const kLiveCommandOpt
Definition: CmsShowMain.cc:110
static const char *const kHelpCommandOpt
Definition: CmsShowMain.cc:103
static const char *const kInputFilesCommandOpt
Definition: CmsShowMain.cc:79
#define fwLog(_level_)
Definition: fwLog.h:45
bool m_globalTagCheck
Definition: CmsShowMain.h:131
static const char *const kInputFilesOpt
Definition: CmsShowMain.cc:78
static const char *const kPlainRootCommandOpt
Definition: CmsShowMain.cc:107
const TFile * m_openFile
Definition: CmsShowMain.h:120
void setAutoSaveAllViewsFormat(const std::string &fmt)
static const char *const kAutoSaveType
Definition: CmsShowMain.cc:114
static const char *const kRootInteractiveCommandOpt
Definition: CmsShowMain.cc:108
bool m_noVersionCheck
Definition: CmsShowMain.h:130
static const char *const kAdvancedRenderCommandOpt
Definition: CmsShowMain.cc:101
boost::function0< void > TaskFunctor
FWConfigurationManager * configurationManager()
void addTask(const TaskFunctor &iTask)
int m_liveTimeout
Definition: CmsShowMain.h:127
void setMaxNumberOfFilesToChain(unsigned int i)
const std::string & geometryFilename(void)
static void EnableFreePalette()
static void LoggingOn()
Definition: FWTTreeCache.cc:21
void setPresentLogLevel(LogLevel)
Definition: fwLog.cc:47
static const char *const kSizeTreeCacheOpt
Definition: CmsShowMain.cc:96
static const char *const kSimGeomFileCommandOpt
Definition: CmsShowMain.cc:85
static void syncAllViews()
void connectSocket()
Definition: CmsShowMain.cc:724
static const char *const kHelpOpt
Definition: CmsShowMain.cc:102
static void SetDefaultCacheSize(int def_size)
Definition: FWTTreeCache.cc:29
static const char *const kLoopCommandOpt
Definition: CmsShowMain.cc:93
static const char *const kAutoSaveHeight
Definition: CmsShowMain.cc:115
void setConfigFilename(const std::string &f)
def exit(msg="")
CmsShowMain::~CmsShowMain ( )
override

Definition at line 433 of file CmsShowMain.cc.

References FWSelectionManager::clearSelection(), and CmsShowMainBase::selectionManager().

433  {
434  //avoids a seg fault from eve which happens if eve is terminated after the GUI is gone
436 }
FWSelectionManager * selectionManager()
CmsShowMain::CmsShowMain ( const CmsShowMain )
private

Member Function Documentation

void CmsShowMain::appendData ( )

Definition at line 538 of file CmsShowMain.cc.

References checkPosition(), FWGUIManager::clearStatus(), CmsShowMainBase::draw(), FWGUIManager::getMainFrame(), CmsShowMainBase::guiManager(), m_navigator, setLoadedAnyInputFileAfterStartup(), FWGUIManager::titleChanged(), and FWGUIManager::updateStatus().

Referenced by setupDataHandling().

538  {
539  const char* kRootType[] = {"ROOT files", "*.root", nullptr, nullptr};
540  TGFileInfo fi;
541  fi.fFileTypes = kRootType;
542  /* this is how things used to be done:
543  fi.fIniDir = ".";
544  this is bad because the destructor calls delete[] on fIniDir.
545  */
546  fi.fIniDir = new char[128];
547  strncpy(fi.fIniDir, ".", 127);
548  guiManager()->updateStatus("waiting for data file ...");
549  new TGFileDialog(gClient->GetDefaultRoot(), guiManager()->getMainFrame(), kFDOpen, &fi);
550  guiManager()->updateStatus("loading file ...");
551  if (fi.fFilename) {
552  m_navigator->appendFile(fi.fFilename, false, false);
554  checkPosition();
555  draw();
556  guiManager()->titleChanged(m_navigator->frameTitle());
557  }
558  guiManager()->clearStatus();
559 }
void setLoadedAnyInputFileAfterStartup()
Definition: CmsShowMain.cc:706
void checkPosition() override
Definition: CmsShowMain.cc:624
FWGUIManager * guiManager()
void updateStatus(const char *status)
std::unique_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:114
CmsShowMainFrame * getMainFrame() const
Definition: FWGUIManager.h:196
void clearStatus()
void titleChanged(const char *title)
void CmsShowMain::autoLoadNewEvent ( )
overrideprivatevirtual

Implements CmsShowMainBase.

Definition at line 587 of file CmsShowMain.cc.

References checkPosition(), CmsShowMainBase::draw(), FWGUIManager::enableActions(), CmsShowMainBase::forward(), CmsShowMainBase::guiManager(), CmsShowMainBase::loop(), m_loadedAnyInputFile, m_monitor, m_navigator, reachedEnd(), CmsShowMainBase::startAutoLoadTimer(), and CmsShowMainBase::stopAutoLoadTimer().

587  {
589 
590  // case when start with no input file
591  if (!m_loadedAnyInputFile) {
592  if (m_monitor.get())
594  return;
595  }
596 
597  bool reachedEnd = (forward() && m_navigator->isLastEvent()) || (!forward() && m_navigator->isFirstEvent());
598 
599  if (loop() && reachedEnd) {
600  forward() ? m_navigator->firstEvent() : m_navigator->lastEvent();
601  draw();
602  } else if (!reachedEnd) {
603  forward() ? m_navigator->nextEvent() : m_navigator->previousEvent();
604  draw();
605  }
606 
607  // stop loop in case no loop or monitor mode
608  if (reachedEnd && (loop() || m_monitor.get()) == kFALSE) {
609  if (forward() && m_navigator->isLastEvent()) {
611  checkPosition();
612  }
613 
614  if ((!forward()) && m_navigator->isFirstEvent()) {
616  checkPosition();
617  }
618  } else
620 }
void checkPosition() override
Definition: CmsShowMain.cc:624
bool m_loadedAnyInputFile
Definition: CmsShowMain.h:119
FWGUIManager * guiManager()
void enableActions(bool enable=true)
bool loop() const
std::unique_ptr< TMonitor > m_monitor
Definition: CmsShowMain.h:133
std::unique_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:114
bool forward() const
void reachedEnd()
void CmsShowMain::checkKeyBindingsOnPLayEventsStateChanged ( )
overrideprivatevirtual

Reimplemented from CmsShowMainBase.

Definition at line 784 of file CmsShowMain.cc.

References FWGUIManager::getGUIManager(), FWGUIManager::getMainFrame(), CmsShowMainBase::isPlaying(), and m_live.

784  {
785  if (m_live) {
786  Int_t keycode = gVirtualX->KeysymToKeycode((int)kKey_Space);
787  Window_t id = FWGUIManager::getGUIManager()->getMainFrame()->GetId();
788  gVirtualX->GrabKey(id, keycode, 0, isPlaying());
789  }
790 }
CmsShowMainFrame * getMainFrame() const
Definition: FWGUIManager.h:196
static FWGUIManager * getGUIManager()
bool isPlaying() const
void CmsShowMain::checkLiveMode ( )
private

Definition at line 847 of file CmsShowMain.cc.

References ev, CmsShowMainBase::guiManager(), CmsShowMainBase::isPlaying(), m_lastXEventSerial, m_liveTimeout, m_liveTimer, FWGUIManager::playEventsAction(), and CSGContinuousAction::switchMode().

Referenced by setLiveMode().

847  {
848  m_liveTimer->TurnOff();
849 
850 #if defined(R__LINUX)
851  TGX11* x11 = dynamic_cast<TGX11*>(gVirtualX);
852  if (x11) {
853  XAnyEvent* ev = (XAnyEvent*)x11->GetNativeEvent();
854  // printf("serial %d \n",(int)ev->serial );
855 
856  if (!isPlaying() && m_lastXEventSerial == ev->serial)
858  m_lastXEventSerial = ev->serial;
859  }
860 #endif
861  m_liveTimer->SetTime((Long_t)(m_liveTimeout));
862  m_liveTimer->Reset();
863  m_liveTimer->TurnOn();
864 }
FWGUIManager * guiManager()
bool ev
UInt_t m_lastXEventSerial
Definition: CmsShowMain.h:128
std::unique_ptr< SignalTimer > m_liveTimer
Definition: CmsShowMain.h:126
CSGContinuousAction * playEventsAction()
bool isPlaying() const
int m_liveTimeout
Definition: CmsShowMain.h:127
void CmsShowMain::checkPosition ( )
overrideprivatevirtual

Implements CmsShowMainBase.

Definition at line 624 of file CmsShowMain.cc.

References FWGUIManager::disableNext(), FWGUIManager::disablePrevious(), CSGAction::enable(), CmsShowMainFrame::enableNavigatorControls(), FWGUIManager::getMainFrame(), CmsShowMainBase::guiManager(), CSGAction::isEnabled(), CmsShowMainBase::isPlaying(), CmsShowMainBase::loop(), m_monitor, m_navigator, and FWGUIManager::playEventsAction().

Referenced by appendData(), autoLoadNewEvent(), navigatorChangedFilterState(), notified(), openData(), openDataViaURL(), postFiltering(), setupDataHandling(), and stopPlaying().

624  {
625  if ((m_monitor.get() || loop()) && isPlaying())
626  return;
627 
629 
630  if (m_navigator->isFirstEvent())
632 
633  if (m_navigator->isLastEvent()) {
634  guiManager()->disableNext();
635  // force enable play events action in --port mode
636  if (m_monitor.get() && !guiManager()->playEventsAction()->isEnabled())
638  }
639 }
FWGUIManager * guiManager()
void enable()
Definition: CSGAction.cc:268
bool loop() const
virtual Bool_t isEnabled() const
Definition: CSGAction.cc:288
std::unique_ptr< TMonitor > m_monitor
Definition: CmsShowMain.h:133
std::unique_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:114
CmsShowMainFrame * getMainFrame() const
Definition: FWGUIManager.h:196
void disablePrevious()
CSGContinuousAction * playEventsAction()
bool isPlaying() const
void disableNext()
void CmsShowMain::connectSocket ( )
private

Definition at line 724 of file CmsShowMain.cc.

References m_monitor.

Referenced by CmsShowMain().

724 { m_monitor->Connect("Ready(TSocket*)", "CmsShowMain", this, "notified(TSocket*)"); }
std::unique_ptr< TMonitor > m_monitor
Definition: CmsShowMain.h:133
const fireworks::Context* CmsShowMain::context ( ) const
inline

Definition at line 77 of file CmsShowMain.h.

Referenced by fileChangedSlot(), CmsShowNavigator::getProcessList(), and CmsShowNavigator::updateFileFilters().

77 { return m_context.get(); };
std::unique_ptr< fireworks::Context > m_context
Definition: CmsShowMain.h:116
void CmsShowMain::doExit ( )

Definition at line 455 of file CmsShowMain.cc.

References FWGUIManager::evePreTerminate(), CmsShowMainBase::guiManager(), and m_context.

Referenced by DieTimer::Notify().

455  {
456  // pre terminate eve
457  m_context->deleteEveElements();
459 
460  // sleep at least 150 ms
461  // windows in ROOT GUI are destroyed in 150 ms timeout after
462  gSystem->Sleep(151);
463  gSystem->ProcessEvents();
464  gSystem->ExitLoop();
465 }
FWGUIManager * guiManager()
std::unique_ptr< fireworks::Context > m_context
Definition: CmsShowMain.h:116
void evePreTerminate()
void CmsShowMain::eventChangedImp ( )
overrideprotectedvirtual

Reimplemented from CmsShowMainBase.

Definition at line 504 of file CmsShowMain.cc.

References CmsShowMainBase::eventChangedImp(), getCurrentEvent(), CmsShowMainBase::guiManager(), m_metadataManager, m_navigator, m_openFile, and FWGUIManager::titleChanged().

504  {
506  guiManager()->titleChanged(m_navigator->frameTitle());
508 }
const fwlite::Event * getCurrentEvent() const
Definition: CmsShowMain.cc:483
FWGUIManager * guiManager()
std::unique_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:114
virtual void eventChangedImp()
std::unique_ptr< FWLiteJobMetadataManager > m_metadataManager
Definition: CmsShowMain.h:115
const TFile * m_openFile
Definition: CmsShowMain.h:120
void titleChanged(const char *title)
void CmsShowMain::fileChangedSlot ( const TFile *  file)

Definition at line 489 of file CmsShowMain.cc.

References FWGeometry::applyGlobalTag(), context(), relativeConstraints::empty, FrontierConditions_GlobalTag_cff::file, CmsShowMainBase::geometryFilename(), getCurrentEvent(), fireworks::Context::getField(), fireworks::Context::getGeom(), fireworks::Context::getInstance(), FWMagField::getSource(), CmsShowMainBase::guiManager(), FWMagField::kNone, m_metadataManager, m_navigator, m_openFile, FWMagField::resetFieldEstimate(), AlCaHLTBitMon_QueryRunRegistry::string, and FWGUIManager::titleChanged().

Referenced by setupDataHandling().

489  {
490  m_openFile = file;
491  if (file)
492  guiManager()->titleChanged(m_navigator->frameTitle());
493 
494  if (context()->getField()->getSource() == FWMagField::kNone) {
496  }
497  if (geometryFilename().empty()) {
498  std::string gt = m_navigator->getCurrentGlobalTag();
500  }
502 }
const fwlite::Event * getCurrentEvent() const
Definition: CmsShowMain.cc:483
FWGUIManager * guiManager()
FWMagField * getField() const
Definition: Context.h:66
std::unique_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:114
std::unique_ptr< FWLiteJobMetadataManager > m_metadataManager
Definition: CmsShowMain.h:115
ESource getSource() const
Definition: FWMagField.h:31
static Context * getInstance()
Definition: Context.cc:193
const TFile * m_openFile
Definition: CmsShowMain.h:120
void applyGlobalTag(const std::string &gt)
Definition: FWGeometry.cc:55
const std::string & geometryFilename(void)
const fireworks::Context * context() const
Definition: CmsShowMain.h:77
void titleChanged(const char *title)
void resetFieldEstimate() const
Definition: FWMagField.cc:135
FWGeometry * getGeom() const
Definition: Context.h:72
void CmsShowMain::filterButtonClicked ( )
private

Definition at line 809 of file CmsShowMain.cc.

References CmsShowMainBase::guiManager(), CmsShowNavigator::kWithdrawn, m_navigator, and FWGUIManager::showEventFilterGUI().

Referenced by setupDataHandling().

809  {
810  if (m_navigator->getFilterState() == CmsShowNavigator::kWithdrawn)
812  else
813  m_navigator->toggleFilterEnable();
814 }
FWGUIManager * guiManager()
std::unique_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:114
void showEventFilterGUI()
const fwlite::Event * CmsShowMain::getCurrentEvent ( ) const

Definition at line 483 of file CmsShowMain.cc.

References m_navigator.

Referenced by eventChangedImp(), and fileChangedSlot().

483  {
484  if (m_navigator.get())
485  return static_cast<const fwlite::Event*>(m_navigator->getCurrentEvent());
486  return nullptr;
487 }
std::unique_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:114
bool CmsShowMain::getGlobalTagCheck ( ) const
inline

Definition at line 79 of file CmsShowMain.h.

References FrontierConditions_GlobalTag_cff::file.

Referenced by CmsShowNavigator::appendFile(), and CmsShowNavigator::openFile().

79 { return m_globalTagCheck; }
bool m_globalTagCheck
Definition: CmsShowMain.h:131
bool CmsShowMain::getVersionCheck ( ) const
inline

Definition at line 78 of file CmsShowMain.h.

Referenced by CmsShowNavigator::appendFile(), and CmsShowNavigator::openFile().

78 { return !m_noVersionCheck; }
bool m_noVersionCheck
Definition: CmsShowMain.h:130
void CmsShowMain::loadGeometry ( )
private
void CmsShowMain::navigatorChangedFilterState ( int  state)
private

Definition at line 801 of file CmsShowMain.cc.

References checkPosition(), CmsShowMainBase::guiManager(), m_navigator, FWGUIManager::setFilterButtonIcon(), and FWGUIManager::setFilterButtonText().

Referenced by setupDataHandling().

801  {
803  if (m_navigator->filesNeedUpdate() == false) {
804  guiManager()->setFilterButtonText(m_navigator->filterStatusMessage());
805  checkPosition();
806  }
807 }
void checkPosition() override
Definition: CmsShowMain.cc:624
FWGUIManager * guiManager()
void setFilterButtonIcon(int)
std::unique_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:114
void setFilterButtonText(const char *txt)
void CmsShowMain::notified ( TSocket *  iSocket)

Definition at line 726 of file CmsShowMain.cc.

References edmScanValgrind::buffer, checkPosition(), CmsShowMainBase::draw(), MillePedeFileConverter_cfg::fileName, CmsShowMainBase::forward(), CmsShowMainBase::guiManager(), CmsShowMainBase::isPlaying(), m_live, m_loadedAnyInputFile, m_monitor, m_navigator, alignCSCRings::s, contentValuesFiles::server, AlCaHLTBitMon_QueryRunRegistry::string, and FWGUIManager::updateStatus().

726  {
727  TServerSocket* server = dynamic_cast<TServerSocket*>(iSocket);
728  if (server) {
729  TSocket* connection = server->Accept();
730  if (connection) {
731  m_monitor->Add(connection);
732  std::stringstream s;
733  s << "received connection from " << iSocket->GetInetAddress().GetHostName();
734  guiManager()->updateStatus(s.str().c_str());
735  }
736  } else {
737  char buffer[4096];
738  memset(buffer, 0, sizeof(buffer));
739  if (iSocket->RecvRaw(buffer, sizeof(buffer)) <= 0) {
740  m_monitor->Remove(iSocket);
741  //std::stringstream s;
742  //s << "closing connection to "<<iSocket->GetInetAddress().GetHostName();
743  //m_guiManager->updateStatus(s.str().c_str());
744  delete iSocket;
745  return;
746  }
747  std::string fileName(buffer);
748  std::string::size_type lastNonSpace = fileName.find_last_not_of(" \n\t");
749  if (lastNonSpace != std::string::npos) {
750  fileName.erase(lastNonSpace + 1);
751  }
752 
753  std::stringstream s;
754  s << "New file notified '" << fileName << "'";
755  guiManager()->updateStatus(s.str().c_str());
756 
757  bool appended = m_navigator->appendFile(fileName, true, m_live);
758 
759  if (appended) {
760  if (m_live && isPlaying() && forward())
761  m_navigator->activateNewFileOnNextEvent();
762  else if (!isPlaying())
763  checkPosition();
764 
765  // bootstrap case: --port and no input file
766  if (!m_loadedAnyInputFile) {
767  m_loadedAnyInputFile = true;
768  m_navigator->firstEvent();
769  if (!isPlaying())
770  draw();
771  }
772 
773  std::stringstream sr;
774  sr << "New file registered '" << fileName << "'";
775  guiManager()->updateStatus(sr.str().c_str());
776  } else {
777  std::stringstream sr;
778  sr << "New file NOT registered '" << fileName << "'";
779  guiManager()->updateStatus(sr.str().c_str());
780  }
781  }
782 }
void checkPosition() override
Definition: CmsShowMain.cc:624
bool m_loadedAnyInputFile
Definition: CmsShowMain.h:119
FWGUIManager * guiManager()
void updateStatus(const char *status)
uint16_t size_type
std::unique_ptr< TMonitor > m_monitor
Definition: CmsShowMain.h:133
std::unique_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:114
bool isPlaying() const
bool forward() const
void CmsShowMain::openData ( )

Definition at line 514 of file CmsShowMain.cc.

References checkPosition(), FWGUIManager::clearStatus(), CmsShowMainBase::draw(), FWGUIManager::getMainFrame(), CmsShowMainBase::guiManager(), m_navigator, setLoadedAnyInputFileAfterStartup(), and FWGUIManager::updateStatus().

Referenced by setupDataHandling().

514  {
515  const char* kRootType[] = {"ROOT files", "*.root", nullptr, nullptr};
516  TGFileInfo fi;
517  fi.fFileTypes = kRootType;
518  /* this is how things used to be done:
519  fi.fIniDir = ".";
520  this is bad because the destructor calls delete[] on fIniDir.
521  */
522  fi.fIniDir = new char[128];
523  strncpy(fi.fIniDir, ".", 127);
524  guiManager()->updateStatus("waiting for data file ...");
525  new TGFileDialog(gClient->GetDefaultRoot(), guiManager()->getMainFrame(), kFDOpen, &fi);
526  guiManager()->updateStatus("loading file ...");
527  if (fi.fFilename) {
528  m_navigator->openFile(fi.fFilename);
529 
531  m_navigator->firstEvent();
532  checkPosition();
533  draw();
534  }
535  guiManager()->clearStatus();
536 }
void setLoadedAnyInputFileAfterStartup()
Definition: CmsShowMain.cc:706
void checkPosition() override
Definition: CmsShowMain.cc:624
FWGUIManager * guiManager()
void updateStatus(const char *status)
std::unique_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:114
CmsShowMainFrame * getMainFrame() const
Definition: FWGUIManager.h:196
void clearStatus()
void CmsShowMain::openDataViaURL ( )

Definition at line 561 of file CmsShowMain.cc.

References checkPosition(), FWGUIManager::clearStatus(), CmsShowMainBase::draw(), CmsShowMainBase::guiManager(), m_navigator, m_searchFiles, setLoadedAnyInputFileAfterStartup(), AlCaHLTBitMon_QueryRunRegistry::string, and FWGUIManager::updateStatus().

Referenced by setupDataHandling().

561  {
562  if (m_searchFiles.get() == nullptr) {
563  m_searchFiles = std::unique_ptr<CmsShowSearchFiles>(
564  new CmsShowSearchFiles("", "Open Remote Data Files", guiManager()->getMainFrame(), 500, 400));
565  m_searchFiles->CenterOnParent(kTRUE, TGTransientFrame::kBottomRight);
566  }
567  std::string chosenFile = m_searchFiles->chooseFileFromURL();
568  if (!chosenFile.empty()) {
569  guiManager()->updateStatus("loading file ...");
570  if (m_navigator->openFile(chosenFile)) {
572  m_navigator->firstEvent();
573  checkPosition();
574  draw();
575  guiManager()->clearStatus();
576  } else {
577  guiManager()->updateStatus("failed to load data file");
578  }
579  }
580 }
void setLoadedAnyInputFileAfterStartup()
Definition: CmsShowMain.cc:706
void checkPosition() override
Definition: CmsShowMain.cc:624
FWGUIManager * guiManager()
std::unique_ptr< CmsShowSearchFiles > m_searchFiles
Definition: CmsShowMain.h:122
void updateStatus(const char *status)
std::unique_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:114
void clearStatus()
const CmsShowMain& CmsShowMain::operator= ( const CmsShowMain )
private
void CmsShowMain::postFiltering ( bool  doDraw)
private

Definition at line 821 of file CmsShowMain.cc.

References checkPosition(), FWGUIManager::clearStatus(), CmsShowMainBase::draw(), CmsShowMainBase::guiManager(), m_navigator, and FWGUIManager::setFilterButtonText().

Referenced by setupDataHandling().

821  {
822  // called only filter is changed
823  guiManager()->clearStatus();
824  if (doDraw)
825  draw();
826  checkPosition();
827  guiManager()->setFilterButtonText(m_navigator->filterStatusMessage());
828 }
void checkPosition() override
Definition: CmsShowMain.cc:624
FWGUIManager * guiManager()
std::unique_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:114
void clearStatus()
void setFilterButtonText(const char *txt)
void CmsShowMain::preFiltering ( )
private

Definition at line 816 of file CmsShowMain.cc.

References CmsShowMainBase::guiManager(), and FWGUIManager::updateStatus().

816  {
817  // called only if filter has changed
818  guiManager()->updateStatus("Filtering events");
819 }
FWGUIManager * guiManager()
void updateStatus(const char *status)
void CmsShowMain::quit ( )
overridevirtual

Implements CmsShowMainBase.

Definition at line 453 of file CmsShowMain.cc.

453 { new DieTimer(this); }
void CmsShowMain::reachedBeginning ( )
private
void CmsShowMain::reachedEnd ( )
private

Referenced by autoLoadNewEvent().

void CmsShowMain::resetInitialization ( )

Definition at line 510 of file CmsShowMain.cc.

510  {
511  //printf("Need to reset\n");
512 }
void CmsShowMain::setLiveMode ( )
private

Definition at line 832 of file CmsShowMain.cc.

References checkLiveMode(), m_live, m_liveTimeout, and m_liveTimer.

Referenced by CmsShowMain().

832  {
833  m_live = true;
834  m_liveTimer.reset(new SignalTimer());
835  m_liveTimer->timeout_.connect(boost::bind(&CmsShowMain::checkLiveMode, this));
836 
837  Window_t rootw, childw;
838  Int_t root_x, root_y, win_x, win_y;
839  UInt_t mask;
840  gVirtualX->QueryPointer(gClient->GetDefaultRoot()->GetId(), rootw, childw, root_x, root_y, win_x, win_y, mask);
841 
842  m_liveTimer->SetTime(m_liveTimeout);
843  m_liveTimer->Reset();
844  m_liveTimer->TurnOn();
845 }
void checkLiveMode()
Definition: CmsShowMain.cc:847
std::unique_ptr< SignalTimer > m_liveTimer
Definition: CmsShowMain.h:126
int m_liveTimeout
Definition: CmsShowMain.h:127
void CmsShowMain::setLoadedAnyInputFileAfterStartup ( )
private

Definition at line 706 of file CmsShowMain.cc.

References CmsShowMainBase::configFilename(), CmsShowMainBase::configurationManager(), m_loadedAnyInputFile, and CmsShowMainBase::setupConfiguration().

Referenced by appendData(), openData(), and openDataViaURL().

706  {
707  if (m_loadedAnyInputFile == false) {
708  m_loadedAnyInputFile = true;
709  if ((configFilename()[0] == '\0') && (configurationManager()->getIgnore() == false))
711  }
712 }
bool m_loadedAnyInputFile
Definition: CmsShowMain.h:119
const char * configFilename() const
FWConfigurationManager * configurationManager()
void CmsShowMain::setupDataHandling ( )
private

Definition at line 642 of file CmsShowMain.cc.

References CSGAction::activated, appendData(), FWEventItemsManager::begin(), checkPosition(), CmsShowMainBase::configFilename(), CmsShowMainBase::configurationManager(), CmsShowMainBase::eiManager(), FWEventItemsManager::end(), fileChangedSlot(), filterButtonClicked(), FWGUIManager::filterButtonClicked_, alignmentValidation::fname, FWGUIManager::getAction(), FWConfigurationManager::getIgnore(), CmsShowMainBase::guiManager(), cuy::ii, FWGUIManager::initEmpty(), m_inputFiles, m_loadedAnyInputFile, m_monitor, m_navigator, navigatorChangedFilterState(), openData(), openDataViaURL(), postFiltering(), cmsshow::sAppendData, FWGUIManager::setFilterButtonIcon(), CmsShowMainBase::setupActions(), CmsShowMainBase::setupConfiguration(), CmsShowNavigator::showEventFilterGUI(), FWGUIManager::showEventFilterGUI_, cmsshow::sOpenData, cmsshow::sSearchFiles, AlCaHLTBitMon_QueryRunRegistry::string, FWGUIManager::updateEventFilterEnable(), and FWGUIManager::updateStatus().

Referenced by CmsShowMain().

642  {
643  guiManager()->updateStatus("Setting up data handling...");
644 
645  // navigator filtering ->
646  m_navigator->fileChanged_.connect(boost::bind(&CmsShowMain::fileChangedSlot, this, _1));
647  m_navigator->editFiltersExternally_.connect(boost::bind(&FWGUIManager::updateEventFilterEnable, guiManager(), _1));
648  m_navigator->filterStateChanged_.connect(boost::bind(&CmsShowMain::navigatorChangedFilterState, this, _1));
649  m_navigator->postFiltering_.connect(boost::bind(&CmsShowMain::postFiltering, this, _1));
650 
651  // navigator fitlering <-
653  guiManager()->filterButtonClicked_.connect(boost::bind(&CmsShowMain::filterButtonClicked, this));
654 
655  // Data handling. File related and therefore not in the base class.
656  if (guiManager()->getAction(cmsshow::sOpenData) != nullptr)
657  guiManager()->getAction(cmsshow::sOpenData)->activated.connect(sigc::mem_fun(*this, &CmsShowMain::openData));
658  if (guiManager()->getAction(cmsshow::sAppendData) != nullptr)
659  guiManager()->getAction(cmsshow::sAppendData)->activated.connect(sigc::mem_fun(*this, &CmsShowMain::appendData));
660  if (guiManager()->getAction(cmsshow::sSearchFiles) != nullptr)
661  guiManager()
663  ->activated.connect(sigc::mem_fun(*this, &CmsShowMain::openDataViaURL));
664 
665  setupActions();
666  // init data from CmsShowNavigator configuration, can do this with signals since there were not connected yet
667  guiManager()->setFilterButtonIcon(m_navigator->getFilterState());
668 
669  for (unsigned int ii = 0; ii < m_inputFiles.size(); ++ii) {
670  const std::string& fname = m_inputFiles[ii];
671  if (fname.empty())
672  continue;
673  guiManager()->updateStatus("loading data file ...");
674  if (!m_navigator->appendFile(fname, false, false)) {
675  guiManager()->updateStatus("failed to load data file");
676  } else {
677  m_loadedAnyInputFile = true;
678  }
679  }
680 
681  if (m_loadedAnyInputFile) {
682  m_navigator->firstEvent();
683  checkPosition();
684  if (configurationManager()->getIgnore())
685  guiManager()->initEmpty();
686  else
688  } else {
689  if (configFilename()[0] == '\0') {
690  guiManager()->initEmpty();
691  } else {
693  }
694 
695  bool geoBrowser = (configFilename()[0] != '\0') && (eiManager()->begin() == eiManager()->end());
696 
697  if (m_monitor.get() == nullptr && (configurationManager()->getIgnore() == false) && (!geoBrowser)) {
698  if (m_inputFiles.empty())
699  openDataViaURL();
700  else
701  openData();
702  }
703  }
704 }
void fileChangedSlot(const TFile *file)
Definition: CmsShowMain.cc:489
void navigatorChangedFilterState(int)
Definition: CmsShowMain.cc:801
void openData()
Definition: CmsShowMain.cc:514
void showEventFilterGUI(const TGWindow *p)
sigc::signal< void > filterButtonClicked_
Definition: FWGUIManager.h:202
void checkPosition() override
Definition: CmsShowMain.cc:624
bool m_loadedAnyInputFile
Definition: CmsShowMain.h:119
FWGUIManager * guiManager()
void appendData()
Definition: CmsShowMain.cc:538
void setFilterButtonIcon(int)
FWEventItemsManager * eiManager()
sigc::signal< void > activated
Definition: CSGAction.h:100
const char * configFilename() const
const std::string sOpenData
Definition: ActionsList.cc:12
void updateStatus(const char *status)
void filterButtonClicked()
Definition: CmsShowMain.cc:809
const std::string sAppendData
Definition: ActionsList.cc:13
std::unique_ptr< TMonitor > m_monitor
Definition: CmsShowMain.h:133
sigc::signal< void, const TGWindow * > showEventFilterGUI_
Definition: FWGUIManager.h:203
std::unique_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:114
std::vector< std::string > m_inputFiles
Definition: CmsShowMain.h:118
ii
Definition: cuy.py:590
void postFiltering(bool)
Definition: CmsShowMain.cc:821
const_iterator begin() const
NOTE: iterator is allowed to return a null object for items that have been removed.
CSGAction * getAction(const std::string name)
void updateEventFilterEnable(bool)
string fname
main script
FWConfigurationManager * configurationManager()
void openDataViaURL()
Definition: CmsShowMain.cc:561
const_iterator end() const
const std::string sSearchFiles
Definition: ActionsList.cc:14
void CmsShowMain::setupSocket ( unsigned int  iSocket)
private

Definition at line 714 of file CmsShowMain.cc.

References beamvalidation::exit(), fwLog, fwlog::kError, m_monitor, and contentValuesFiles::server.

Referenced by CmsShowMain().

714  {
715  m_monitor = std::unique_ptr<TMonitor>(new TMonitor);
716  TServerSocket* server = new TServerSocket(iSocket, kTRUE);
717  if (server->GetErrorCode()) {
718  fwLog(fwlog::kError) << "CmsShowMain::setupSocket, can't create socket on port " << iSocket << "." << std::endl;
719  exit(0);
720  }
721  m_monitor->Add(server);
722 }
std::unique_ptr< TMonitor > m_monitor
Definition: CmsShowMain.h:133
#define fwLog(_level_)
Definition: fwLog.h:45
def exit(msg="")
void CmsShowMain::stopPlaying ( )
overrideprivatevirtual

Reimplemented from CmsShowMainBase.

Definition at line 792 of file CmsShowMain.cc.

References checkPosition(), FWGUIManager::enableActions(), CmsShowMainBase::guiManager(), m_live, m_navigator, CmsShowMainBase::stopAutoLoadTimer(), and CmsShowMainBase::stopPlaying().

792  {
794  if (m_live)
795  m_navigator->resetNewFileOnNextEvent();
798  checkPosition();
799 }
void checkPosition() override
Definition: CmsShowMain.cc:624
FWGUIManager * guiManager()
void enableActions(bool enable=true)
virtual void stopPlaying()
std::unique_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:114

Member Data Documentation

std::unique_ptr<fireworks::Context> CmsShowMain::m_context
private

Definition at line 116 of file CmsShowMain.h.

Referenced by CmsShowMain(), and doExit().

bool CmsShowMain::m_globalTagCheck
private

Definition at line 131 of file CmsShowMain.h.

Referenced by CmsShowMain().

std::vector<std::string> CmsShowMain::m_inputFiles
private

Definition at line 118 of file CmsShowMain.h.

Referenced by CmsShowMain(), and setupDataHandling().

UInt_t CmsShowMain::m_lastXEventSerial
private

Definition at line 128 of file CmsShowMain.h.

Referenced by checkLiveMode().

bool CmsShowMain::m_live
private
int CmsShowMain::m_liveTimeout
private

Definition at line 127 of file CmsShowMain.h.

Referenced by checkLiveMode(), and setLiveMode().

std::unique_ptr<SignalTimer> CmsShowMain::m_liveTimer
private

Definition at line 126 of file CmsShowMain.h.

Referenced by checkLiveMode(), and setLiveMode().

bool CmsShowMain::m_loadedAnyInputFile
private
std::unique_ptr<FWLiteJobMetadataManager> CmsShowMain::m_metadataManager
private

Definition at line 115 of file CmsShowMain.h.

Referenced by CmsShowMain(), eventChangedImp(), and fileChangedSlot().

std::unique_ptr<TMonitor> CmsShowMain::m_monitor
private
std::unique_ptr<CmsShowNavigator> CmsShowMain::m_navigator
private
bool CmsShowMain::m_noVersionCheck
private

Definition at line 130 of file CmsShowMain.h.

Referenced by CmsShowMain().

const TFile* CmsShowMain::m_openFile
private

Definition at line 120 of file CmsShowMain.h.

Referenced by eventChangedImp(), and fileChangedSlot().

std::unique_ptr<CmsShowSearchFiles> CmsShowMain::m_searchFiles
private

Definition at line 122 of file CmsShowMain.h.

Referenced by openDataViaURL().