CMS 3D CMS Logo

CmsShowMain.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: Core
4 // Class : CmsShowMain
5 //
6 // Implementation:
7 // <Notes on implementation>
8 //
9 // Original Author:
10 // Created: Mon Dec 3 08:38:38 PST 2007
11 //
12 
13 // system include files
14 #include <memory>
15 
16 #include <sstream>
17 #include <functional>
18 #include <boost/program_options.hpp>
19 #include <cstring>
20 
21 #include "TSystem.h"
22 #include "TGLWidget.h"
23 #include "TTimer.h"
24 #include "TROOT.h"
25 #include "TGFileDialog.h"
26 #include "TGMsgBox.h"
27 #include "TMonitor.h"
28 #include "TServerSocket.h"
29 #include "TEveLine.h"
30 #include "TEveManager.h"
31 #include "TFile.h"
32 #include "TGClient.h"
33 #include "TVirtualX.h"
34 #include <KeySymbols.h>
35 
37 
39 
53 
58 
60 
63 
67 
70 
72 
73 #if defined(R__LINUX)
74 #include "TGX11.h" // !!!! AMT has to be at the end to pass build
75 #include "X11/Xlib.h"
76 #endif
77 //
78 // constants, enums and typedefs
79 //
80 
81 static const char* const kInputFilesOpt = "input-files";
82 static const char* const kInputFilesCommandOpt = "input-files,i";
83 static const char* const kConfigFileOpt = "config-file";
84 static const char* const kConfigFileCommandOpt = "config-file,c";
85 static const char* const kGeomFileOpt = "geom-file";
86 static const char* const kGeomFileCommandOpt = "geom-file,g";
87 static const char* const kSimGeomFileOpt = "sim-geom-file";
88 static const char* const kSimGeomFileCommandOpt = "sim-geom-file";
89 static const char* const kTGeoNameOpt = "tgeo-name";
90 static const char* const kTGeoNameCommandOpt = "tgeo-name";
91 static const char* const kNoConfigFileOpt = "noconfig";
92 static const char* const kNoConfigFileCommandOpt = "noconfig,n";
93 static const char* const kPlayOpt = "play";
94 static const char* const kPlayCommandOpt = "play,p";
95 static const char* const kLoopOpt = "loop";
96 static const char* const kLoopCommandOpt = "loop";
97 static const char* const kLogLevelCommandOpt = "log";
98 static const char* const kLogTreeCacheOpt = "log-tree-cache";
99 static const char* const kSizeTreeCacheOpt = "tree-cache-size";
100 static const char* const kPrefetchTreeCacheOpt = "tree-cache-prefetch";
101 static const char* const kEveOpt = "eve";
102 static const char* const kEveCommandOpt = "eve";
103 static const char* const kAdvancedRenderOpt = "shine";
104 static const char* const kAdvancedRenderCommandOpt = "shine,s";
105 static const char* const kHelpOpt = "help";
106 static const char* const kHelpCommandOpt = "help,h";
107 static const char* const kSoftCommandOpt = "soft";
108 static const char* const kExpertCommandOpt = "expert";
109 static const char* const kPortCommandOpt = "port";
110 static const char* const kPlainRootCommandOpt = "prompt";
111 static const char* const kRootInteractiveCommandOpt = "root-interactive,r";
112 static const char* const kChainCommandOpt = "chain";
113 static const char* const kLiveCommandOpt = "live";
114 static const char* const kFieldCommandOpt = "field";
115 static const char* const kFreePaletteCommandOpt = "free-palette";
116 static const char* const kAutoSaveAllViews = "auto-save-all-views";
117 static const char* const kAutoSaveType = "auto-save-type";
118 static const char* const kAutoSaveHeight = "auto-save-height";
119 static const char* const kSyncAllViews = "sync-all-views";
120 static const char* const kEnableFPE = "enable-fpe";
121 static const char* const kZeroWinOffsets = "zero-window-offsets";
122 static const char* const kNoVersionCheck = "no-version-check";
123 
124 //
125 // constructors and destructor
126 //
128  : CmsShowMainBase(),
129  m_navigator(new CmsShowNavigator(*this)),
130  m_metadataManager(new FWLiteJobMetadataManager()),
131  m_context(new fireworks::Context(
132  changeManager(), selectionManager(), eiManager(), colorManager(), m_metadataManager.get())),
133  m_loadedAnyInputFile(false),
134  m_openFile(nullptr),
135  m_live(false),
136  m_liveTimer(new SignalTimer()),
137  m_liveTimeout(600000),
138  m_lastXEventSerial(0),
139  m_noVersionCheck(false),
140  m_globalTagCheck(true) {
141  try {
142  TGLWidget* w = TGLWidget::Create(gClient->GetDefaultRoot(), kTRUE, kTRUE, nullptr, 10, 10);
143  delete w;
144  } catch (std::exception& iException) {
145  fwLog(fwlog::kError) << "Failed creating an OpenGL window: " << iException.what()
146  << "\n"
147  "Things to check:\n"
148  "- Is DISPLAY environment variable set?\n"
149  "- Are OpenGL libraries installed?\n"
150  "- If running remotely, make sure you use 'ssh -X' or 'ssh -Y'.\n"
151  "See also: https://twiki.cern.ch/twiki/bin/viewauth/CMS/WorkBookFireworks\n";
152  gSystem->Exit(1);
153  }
154 
155  eiManager()->setContext(m_context.get());
156 
157  std::string descString(argv[0]);
158  descString += " [options] <data file>\nGeneral";
159 
160  namespace po = boost::program_options;
161  po::options_description desc(descString);
162  desc.add_options()(kInputFilesCommandOpt, po::value<std::vector<std::string> >(), "Input root files")(
163  kConfigFileCommandOpt, po::value<std::string>(), "Include configuration file")(
164  kNoConfigFileCommandOpt, "Empty configuration")(kNoVersionCheck, "No file version check")(
165  kGeomFileCommandOpt, po::value<std::string>(), "Reco geometry file. Default is cmsGeom10.root")(
167  po::value<std::string>(),
168  "Geometry file for browsing in table view. Default is CmsSimGeom-14.root. Can be simulation or reco geometry in "
169  "TGeo format")(kTGeoNameCommandOpt, po::value<std::string>(), "TGeoManager name. The default is \"cmsGeo;1\"")(
170  kFieldCommandOpt, po::value<double>(), "Set magnetic field value explicitly. Default is auto-field estimation")(
171  kRootInteractiveCommandOpt, "Enable root interactive prompt")(
172  kSoftCommandOpt, "Try to force software rendering to avoid problems with bad hardware drivers")(
173  kExpertCommandOpt, "Enable PF user plugins.")(kHelpCommandOpt, "Display help message");
174 
175  po::options_description livedesc("Live Event Display");
176  livedesc.add_options()(
177  kPlayCommandOpt, po::value<float>(), "Start in play mode with given interval between events in seconds")(
178  kPortCommandOpt, po::value<unsigned int>(), "Listen to port for new data files to open")(
179  kLoopCommandOpt, "Loop events in play mode")(
181  po::value<unsigned int>(),
182  "Chain up to a given number of recently open files. Default is 1 - no chain")(
183  kLiveCommandOpt, "Enforce playback mode if a user is not using display")(
185  po::value<std::string>(),
186  "Auto-save all views with given prefix (run_event_lumi_view.<auto-save-type> is appended)")(
187  kAutoSaveType, po::value<std::string>(), "Image type of auto-saved views, png or jpg (png is default)")(
188  kAutoSaveHeight, po::value<int>(), "Screenshots height when auto-save-all-views is enabled")(
189  kSyncAllViews, "Synchronize all views on new event");
190 
191  po::options_description debugdesc("Debug");
192  debugdesc.add_options()(kLogLevelCommandOpt,
193  po::value<unsigned int>(),
194  "Set log level starting from 0 to 4 : kDebug, kInfo, kWarning, kError")(
195  kEveCommandOpt, "Show TEveBrowser to help debug problems")(kEnableFPE,
196  "Enable detection of floating-point exceptions");
197 
198  po::options_description tcachedesc("TreeCache");
199  tcachedesc.add_options()(kLogTreeCacheOpt, "Log tree cache operations and status")(
200  kSizeTreeCacheOpt, po::value<int>(), "Set size of TTreeCache for data access in MB (default is 50)")(
201  kPrefetchTreeCacheOpt, "Enable prefetching");
202 
203  po::options_description rnrdesc("Appearance");
204  rnrdesc.add_options()(kFreePaletteCommandOpt, "Allow free color selection (requires special configuration!)")(
205  kZeroWinOffsets, "Disable auto-detection of window position offsets")(kAdvancedRenderCommandOpt,
206  "Enable line anti-aliasing");
207  po::positional_options_description p;
208  p.add(kInputFilesOpt, -1);
209 
210  po::options_description hiddendesc("hidden");
211  hiddendesc.add_options();
212 
213  po::options_description all("");
214  all.add(desc).add(rnrdesc).add(livedesc).add(debugdesc).add(tcachedesc);
215 
216  int newArgc = argc;
217  char** newArgv = argv;
218  po::variables_map vm;
219  try {
220  po::store(po::command_line_parser(newArgc, newArgv).options(all).positional(p).run(), vm);
221 
222  po::notify(vm);
223  } catch (const std::exception& e) {
224  // Return with exit status 0 to avoid generating crash reports
225 
226  fwLog(fwlog::kError) << e.what() << std::endl;
227  std::cout << all << std::endl;
228  exit(0);
229  }
230 
231  if (vm.count(kHelpOpt)) {
232  std::cout << all << std::endl;
233  exit(0);
234  }
235 
236  if (vm.count(kLogLevelCommandOpt)) {
237  fwlog::LogLevel level = (fwlog::LogLevel)(vm[kLogLevelCommandOpt].as<unsigned int>());
239  }
240 
241  if (vm.count(kLogTreeCacheOpt)) {
242  fwLog(fwlog::kInfo) << "Enabling logging of TTreCache operations." << std::endl;
244  }
245 
246  if (vm.count(kPrefetchTreeCacheOpt)) {
247  fwLog(fwlog::kInfo) << "Enabling TTreCache prefetching." << std::endl;
249  }
250 
251  if (vm.count(kSizeTreeCacheOpt)) {
252  int ds = vm[kSizeTreeCacheOpt].as<int>();
253  if (ds < 0)
254  throw std::runtime_error("tree-cache-size should be non negative");
255  if (ds > 8192)
256  throw std::runtime_error("tree-cache-size should be smaller than 8 GB");
257  fwLog(fwlog::kInfo) << "Setting default TTreeCache size to " << ds << " MB." << std::endl;
258  FWTTreeCache::SetDefaultCacheSize(ds * 1024 * 1024);
259  }
260 
261  if (vm.count(kPlainRootCommandOpt)) {
262  fwLog(fwlog::kInfo) << "Plain ROOT prompt requested" << std::endl;
263  return;
264  }
265 
266  const char* cmspath = gSystem->Getenv("CMSSW_BASE");
267  if (nullptr == cmspath) {
268  throw std::runtime_error("CMSSW_BASE environment variable not set");
269  }
270 
271  // input file
272  if (vm.count(kInputFilesOpt)) {
273  m_inputFiles = vm[kInputFilesOpt].as<std::vector<std::string> >();
274  }
275 
276  if (m_inputFiles.empty())
277  fwLog(fwlog::kInfo) << "No data file given." << std::endl;
278  else if (m_inputFiles.size() == 1)
279  fwLog(fwlog::kInfo) << "Input " << m_inputFiles.front() << std::endl;
280  else
281  fwLog(fwlog::kInfo) << m_inputFiles.size() << " input files; first: " << m_inputFiles.front()
282  << ", last: " << m_inputFiles.back() << std::endl;
283 
284  // configuration file
285  if (vm.count(kConfigFileOpt)) {
286  setConfigFilename(vm[kConfigFileOpt].as<std::string>());
287  if (access(configFilename(), R_OK) == -1) {
288  fwLog(fwlog::kError) << "Specified configuration file does not exist. Quitting.\n";
289  exit(1);
290  }
291 
292  fwLog(fwlog::kInfo) << "Config " << configFilename() << std::endl;
293  } else {
294  if (vm.count(kNoConfigFileOpt)) {
295  fwLog(fwlog::kInfo) << "No configuration is loaded.\n";
297  }
298  }
299 
300  // geometry
301  if (vm.count(kGeomFileOpt)) {
302  m_globalTagCheck = false;
303  setGeometryFilename(vm[kGeomFileOpt].as<std::string>());
304  fwLog(fwlog::kInfo) << "Geometry file " << geometryFilename() << "\n";
305  }
306 
307  if (vm.count(kSimGeomFileOpt)) {
308  if (vm.count(kTGeoNameOpt))
309  setSimGeometryFilename(vm[kSimGeomFileOpt].as<std::string>(), vm[kTGeoNameOpt].as<std::string>());
310  else
311  setSimGeometryFilename(vm[kSimGeomFileOpt].as<std::string>(), "cmsGeo;1");
312  } else {
313  setSimGeometryFilename("cmsSimGeom-14.root", "cmsGeo;1");
314  }
315 
316  // Free-palette palette
317  if (vm.count(kFreePaletteCommandOpt)) {
319  fwLog(fwlog::kInfo) << "Palette restriction removed on user request!\n";
320  }
321  bool eveMode = vm.count(kEveOpt);
322 
323  //Delay creating guiManager and enabling autoloading until here so that if we have a 'help' request we don't
324  // open any graphics or build dictionaries
326 
327  TEveManager::Create(kFALSE, eveMode ? "FIV" : "FI");
328 
329  if (vm.count(kExpertCommandOpt)) {
330  m_context->setHidePFBuilders(false);
331  } else {
332  m_context->setHidePFBuilders(true);
333  }
334 
335  if (vm.count(kExpertCommandOpt)) {
336  m_context->setHidePFBuilders(false);
337  } else {
338  m_context->setHidePFBuilders(true);
339  }
340 
341  setup(m_navigator.get(), m_context.get(), m_metadataManager.get());
342 
343  if (vm.count(kZeroWinOffsets)) {
345  fwLog(fwlog::kInfo) << "Window offsets reset on user request!\n";
346  }
347 
348  if (vm.count(kAdvancedRenderOpt)) {
349  TEveLine::SetDefaultSmooth(kTRUE);
350  }
351 
352  //figure out where to find macros
353  //tell ROOT where to find our macros
355  // first check if port is not occupied
356  if (vm.count(kPortCommandOpt)) {
357  f = std::bind(&CmsShowMain::setupSocket, this, vm[kPortCommandOpt].as<unsigned int>());
358  startupTasks()->addTask(f);
359  }
360  if (!geometryFilename().empty()) {
361  f = std::bind(&CmsShowMainBase::loadGeometry, this);
362  startupTasks()->addTask(f);
363  }
364  f = std::bind(&CmsShowMainBase::setupViewManagers, this);
365  startupTasks()->addTask(f);
366 
367  if (vm.count(kLiveCommandOpt)) {
368  f = std::bind(&CmsShowMain::setLiveMode, this);
369  startupTasks()->addTask(f);
370  }
371 
372  if (vm.count(kFieldCommandOpt)) {
373  m_context->getField()->setSource(FWMagField::kUser);
374  m_context->getField()->setUserField(vm[kFieldCommandOpt].as<double>());
375  }
376 
377  f = std::bind(&CmsShowMain::setupDataHandling, this);
378  startupTasks()->addTask(f);
379 
380  if (vm.count(kLoopOpt))
381  setPlayLoop();
382 
383  if (eveMode) {
384  f = std::bind(&CmsShowMainBase::setupDebugSupport, this);
385  startupTasks()->addTask(f);
386  }
387  if (vm.count(kChainCommandOpt)) {
388  f = std::bind(
390  startupTasks()->addTask(f);
391  }
392  if (vm.count(kPlayOpt)) {
393  f = std::bind(&CmsShowMainBase::setupAutoLoad, this, vm[kPlayOpt].as<float>());
394  startupTasks()->addTask(f);
395  }
396 
397  if (vm.count(kAutoSaveAllViews)) {
398  std::string type = "png";
399  if (vm.count(kAutoSaveType)) {
400  type = vm[kAutoSaveType].as<std::string>();
401  if (type != "png" && type != "jpg") {
402  fwLog(fwlog::kError) << "Specified auto-save type not supported. Quitting.\n";
403  exit(1);
404  }
405  }
406  std::string fmt = vm[kAutoSaveAllViews].as<std::string>();
407  fmt += "%u_%u_%llu_%s.";
408  fmt += type;
410  }
411  if (vm.count(kAutoSaveHeight)) {
413  }
414  if (vm.count(kSyncAllViews)) {
416  }
417  if (vm.count(kNoVersionCheck)) {
418  m_noVersionCheck = true;
419  }
420  if (vm.count(kEnableFPE)) {
421  gSystem->SetFPEMask();
422  }
423 
424  if (vm.count(kPortCommandOpt)) {
425  f = std::bind(&CmsShowMain::connectSocket, this);
426  startupTasks()->addTask(f);
427  }
428 
430 }
431 
432 //
433 // Destruction
434 //
435 
437  //avoids a seg fault from eve which happens if eve is terminated after the GUI is gone
439 }
440 
441 class DieTimer : public TTimer {
442 protected:
444 
445 public:
446  DieTimer(CmsShowMain* app) : TTimer(), fApp(app) { Start(0, kTRUE); }
447 
448  Bool_t Notify() override {
449  TurnOff();
450  fApp->doExit();
451  delete this;
452  return kFALSE;
453  }
454 };
455 
456 void CmsShowMain::quit() { new DieTimer(this); }
457 
459  // pre terminate eve
460  m_context->deleteEveElements();
462 
463  // sleep at least 150 ms
464  // windows in ROOT GUI are destroyed in 150 ms timeout after
465  gSystem->Sleep(151);
466  gSystem->ProcessEvents();
467  gSystem->ExitLoop();
468 }
469 
470 //
471 // assignment operators
472 //
473 // const CmsShowMain& CmsShowMain::operator=(const CmsShowMain& rhs)
474 // {
475 // //An exception safe implementation is
476 // CmsShowMain temp(rhs);
477 // swap(rhs);
478 //
479 // return *this;
480 // }
481 
482 //
483 // member functions
484 //
485 
487  if (m_navigator.get())
488  return static_cast<const fwlite::Event*>(m_navigator->getCurrentEvent());
489  return nullptr;
490 }
491 
492 void CmsShowMain::fileChangedSlot(const TFile* file) {
493  m_openFile = file;
494  if (file)
495  guiManager()->titleChanged(m_navigator->frameTitle());
496 
497  if (context()->getField()->getSource() == FWMagField::kNone) {
499  }
500  if (geometryFilename().empty()) {
501  std::string gt = m_navigator->getCurrentGlobalTag();
503  }
505 }
506 
509  guiManager()->titleChanged(m_navigator->frameTitle());
511 }
512 
514  //printf("Need to reset\n");
515 }
516 
518  const char* kRootType[] = {"ROOT files", "*.root", nullptr, nullptr};
519  TGFileInfo fi;
520  fi.fFileTypes = kRootType;
521  /* this is how things used to be done:
522  fi.fIniDir = ".";
523  this is bad because the destructor calls delete[] on fIniDir.
524  */
525  fi.fIniDir = new char[128];
526  strncpy(fi.fIniDir, ".", 127);
527  guiManager()->updateStatus("waiting for data file ...");
528  new TGFileDialog(gClient->GetDefaultRoot(), guiManager()->getMainFrame(), kFDOpen, &fi);
529  guiManager()->updateStatus("loading file ...");
530  if (fi.fFilename) {
531  m_navigator->openFile(fi.fFilename);
532 
534  m_navigator->firstEvent();
535  checkPosition();
536  draw();
537  }
538  guiManager()->clearStatus();
539 }
540 
542  const char* kRootType[] = {"ROOT files", "*.root", nullptr, nullptr};
543  TGFileInfo fi;
544  fi.fFileTypes = kRootType;
545  /* this is how things used to be done:
546  fi.fIniDir = ".";
547  this is bad because the destructor calls delete[] on fIniDir.
548  */
549  fi.fIniDir = new char[128];
550  strncpy(fi.fIniDir, ".", 127);
551  guiManager()->updateStatus("waiting for data file ...");
552  new TGFileDialog(gClient->GetDefaultRoot(), guiManager()->getMainFrame(), kFDOpen, &fi);
553  guiManager()->updateStatus("loading file ...");
554  if (fi.fFilename) {
555  m_navigator->appendFile(fi.fFilename, false, false);
557  checkPosition();
558  draw();
559  guiManager()->titleChanged(m_navigator->frameTitle());
560  }
561  guiManager()->clearStatus();
562 }
563 
565  if (m_searchFiles.get() == nullptr) {
566  m_searchFiles =
567  std::make_unique<CmsShowSearchFiles>("", "Open Remote Data Files", guiManager()->getMainFrame(), 500, 400);
568  m_searchFiles->CenterOnParent(kTRUE, TGTransientFrame::kBottomRight);
569  }
570  std::string chosenFile = m_searchFiles->chooseFileFromURL();
571  if (!chosenFile.empty()) {
572  guiManager()->updateStatus("loading file ...");
573  if (m_navigator->openFile(chosenFile)) {
575  m_navigator->firstEvent();
576  checkPosition();
577  draw();
578  guiManager()->clearStatus();
579  } else {
580  guiManager()->updateStatus("failed to load data file");
581  }
582  }
583 }
584 
585 //
586 // const member functions
587 //
588 
589 //_______________________________________________________________________________
592 
593  // case when start with no input file
594  if (!m_loadedAnyInputFile) {
595  if (m_monitor.get())
597  return;
598  }
599 
600  bool reachedEnd = (forward() && m_navigator->isLastEvent()) || (!forward() && m_navigator->isFirstEvent());
601 
602  if (loop() && reachedEnd) {
603  forward() ? m_navigator->firstEvent() : m_navigator->lastEvent();
604  draw();
605  } else if (!reachedEnd) {
606  forward() ? m_navigator->nextEvent() : m_navigator->previousEvent();
607  draw();
608  }
609 
610  // stop loop in case no loop or monitor mode
611  if (reachedEnd && (loop() || m_monitor.get()) == kFALSE) {
612  if (forward() && m_navigator->isLastEvent()) {
614  checkPosition();
615  }
616 
617  if ((!forward()) && m_navigator->isFirstEvent()) {
619  checkPosition();
620  }
621  } else
623 }
624 
625 //______________________________________________________________________________
626 
628  if ((m_monitor.get() || loop()) && isPlaying())
629  return;
630 
632 
633  if (m_navigator->isFirstEvent())
635 
636  if (m_navigator->isLastEvent()) {
637  guiManager()->disableNext();
638  // force enable play events action in --port mode
639  if (m_monitor.get() && !guiManager()->playEventsAction()->isEnabled())
641  }
642 }
643 
644 //==============================================================================
646  guiManager()->updateStatus("Setting up data handling...");
647 
648  // navigator filtering ->
649  m_navigator->fileChanged_.connect(std::bind(&CmsShowMain::fileChangedSlot, this, std::placeholders::_1));
650  m_navigator->editFiltersExternally_.connect(
651  std::bind(&FWGUIManager::updateEventFilterEnable, guiManager(), std::placeholders::_1));
652  m_navigator->filterStateChanged_.connect(
653  std::bind(&CmsShowMain::navigatorChangedFilterState, this, std::placeholders::_1));
654  m_navigator->postFiltering_.connect(std::bind(&CmsShowMain::postFiltering, this, std::placeholders::_1));
655 
656  // navigator fitlering <-
657  guiManager()->showEventFilterGUI_.connect(
658  std::bind(&CmsShowNavigator::showEventFilterGUI, m_navigator.get(), std::placeholders::_1));
660 
661  // Data handling. File related and therefore not in the base class.
662  if (guiManager()->getAction(cmsshow::sOpenData) != nullptr)
663  guiManager()->getAction(cmsshow::sOpenData)->activated.connect(sigc::mem_fun(*this, &CmsShowMain::openData));
664  if (guiManager()->getAction(cmsshow::sAppendData) != nullptr)
665  guiManager()->getAction(cmsshow::sAppendData)->activated.connect(sigc::mem_fun(*this, &CmsShowMain::appendData));
666  if (guiManager()->getAction(cmsshow::sSearchFiles) != nullptr)
667  guiManager()
669  ->activated.connect(sigc::mem_fun(*this, &CmsShowMain::openDataViaURL));
670 
671  setupActions();
672  // init data from CmsShowNavigator configuration, can do this with signals since there were not connected yet
673  guiManager()->setFilterButtonIcon(m_navigator->getFilterState());
674 
675  for (unsigned int ii = 0; ii < m_inputFiles.size(); ++ii) {
676  const std::string& fname = m_inputFiles[ii];
677  if (fname.empty())
678  continue;
679  guiManager()->updateStatus("loading data file ...");
680  if (!m_navigator->appendFile(fname, false, false)) {
681  guiManager()->updateStatus("failed to load data file");
682  } else {
683  m_loadedAnyInputFile = true;
684  }
685  }
686 
687  if (m_loadedAnyInputFile) {
688  m_navigator->firstEvent();
689  checkPosition();
690  if (configurationManager()->getIgnore())
691  guiManager()->initEmpty();
692  else
694  } else {
695  if (configFilename()[0] == '\0') {
696  guiManager()->initEmpty();
697  } else {
699  }
700 
701  bool geoBrowser = (configFilename()[0] != '\0') && (eiManager()->begin() == eiManager()->end());
702 
703  if (m_monitor.get() == nullptr && (configurationManager()->getIgnore() == false) && (!geoBrowser)) {
704  if (m_inputFiles.empty())
705  openDataViaURL();
706  else
707  openData();
708  }
709  }
710 }
711 
713  if (m_loadedAnyInputFile == false) {
714  m_loadedAnyInputFile = true;
715  if ((configFilename()[0] == '\0') && (configurationManager()->getIgnore() == false))
717  }
718 }
719 
720 void CmsShowMain::setupSocket(unsigned int iSocket) {
721  m_monitor = std::make_unique<TMonitor>();
722  TServerSocket* server = new TServerSocket(iSocket, kTRUE);
723  if (server->GetErrorCode()) {
724  fwLog(fwlog::kError) << "CmsShowMain::setupSocket, can't create socket on port " << iSocket << "." << std::endl;
725  exit(0);
726  }
727  m_monitor->Add(server);
728 }
729 
730 void CmsShowMain::connectSocket() { m_monitor->Connect("Ready(TSocket*)", "CmsShowMain", this, "notified(TSocket*)"); }
731 
732 void CmsShowMain::notified(TSocket* iSocket) {
733  TServerSocket* server = dynamic_cast<TServerSocket*>(iSocket);
734  if (server) {
735  TSocket* connection = server->Accept();
736  if (connection) {
737  m_monitor->Add(connection);
738  std::stringstream s;
739  s << "received connection from " << iSocket->GetInetAddress().GetHostName();
740  guiManager()->updateStatus(s.str().c_str());
741  }
742  } else {
743  char buffer[4096];
744  memset(buffer, 0, sizeof(buffer));
745  if (iSocket->RecvRaw(buffer, sizeof(buffer)) <= 0) {
746  m_monitor->Remove(iSocket);
747  //std::stringstream s;
748  //s << "closing connection to "<<iSocket->GetInetAddress().GetHostName();
749  //m_guiManager->updateStatus(s.str().c_str());
750  delete iSocket;
751  return;
752  }
754  std::string::size_type lastNonSpace = fileName.find_last_not_of(" \n\t");
755  if (lastNonSpace != std::string::npos) {
756  fileName.erase(lastNonSpace + 1);
757  }
758 
759  std::stringstream s;
760  s << "New file notified '" << fileName << "'";
761  guiManager()->updateStatus(s.str().c_str());
762 
763  bool appended = m_navigator->appendFile(fileName, true, m_live);
764 
765  if (appended) {
766  if (m_live && isPlaying() && forward())
767  m_navigator->activateNewFileOnNextEvent();
768  else if (!isPlaying())
769  checkPosition();
770 
771  // bootstrap case: --port and no input file
772  if (!m_loadedAnyInputFile) {
773  m_loadedAnyInputFile = true;
774  m_navigator->firstEvent();
775  if (!isPlaying())
776  draw();
777  }
778 
779  std::stringstream sr;
780  sr << "New file registered '" << fileName << "'";
781  guiManager()->updateStatus(sr.str().c_str());
782  } else {
783  std::stringstream sr;
784  sr << "New file NOT registered '" << fileName << "'";
785  guiManager()->updateStatus(sr.str().c_str());
786  }
787  }
788 }
789 
791  if (m_live) {
792  Int_t keycode = gVirtualX->KeysymToKeycode((int)kKey_Space);
793  Window_t id = FWGUIManager::getGUIManager()->getMainFrame()->GetId();
794  gVirtualX->GrabKey(id, keycode, 0, isPlaying());
795  }
796 }
797 
800  if (m_live)
801  m_navigator->resetNewFileOnNextEvent();
804  checkPosition();
805 }
806 
809  if (m_navigator->filesNeedUpdate() == false) {
810  guiManager()->setFilterButtonText(m_navigator->filterStatusMessage());
811  checkPosition();
812  }
813 }
814 
816  if (m_navigator->getFilterState() == CmsShowNavigator::kWithdrawn)
818  else
819  m_navigator->toggleFilterEnable();
820 }
821 
823  // called only if filter has changed
824  guiManager()->updateStatus("Filtering events");
825 }
826 
827 void CmsShowMain::postFiltering(bool doDraw) {
828  // called only filter is changed
829  guiManager()->clearStatus();
830  if (doDraw)
831  draw();
832  checkPosition();
833  guiManager()->setFilterButtonText(m_navigator->filterStatusMessage());
834 }
835 
836 //______________________________________________________________________________
837 
839  m_live = true;
840  m_liveTimer = std::make_unique<SignalTimer>();
841  m_liveTimer->timeout_.connect(std::bind(&CmsShowMain::checkLiveMode, this));
842 
843  Window_t rootw, childw;
844  Int_t root_x, root_y, win_x, win_y;
845  UInt_t mask;
846  gVirtualX->QueryPointer(gClient->GetDefaultRoot()->GetId(), rootw, childw, root_x, root_y, win_x, win_y, mask);
847 
848  m_liveTimer->SetTime(m_liveTimeout);
849  m_liveTimer->Reset();
850  m_liveTimer->TurnOn();
851 }
852 
854  m_liveTimer->TurnOff();
855 
856 #if defined(R__LINUX)
857  TGX11* x11 = dynamic_cast<TGX11*>(gVirtualX);
858  if (x11) {
859  XAnyEvent* ev = (XAnyEvent*)x11->GetNativeEvent();
860  // printf("serial %d \n",(int)ev->serial );
861 
862  if (!isPlaying() && m_lastXEventSerial == ev->serial)
864  m_lastXEventSerial = ev->serial;
865  }
866 #endif
867  m_liveTimer->SetTime((Long_t)(m_liveTimeout));
868  m_liveTimer->Reset();
869  m_liveTimer->TurnOn();
870 }
CmsShowMainBase::configFilename
const char * configFilename() const
Definition: CmsShowMainBase.h:75
personalPlayback.level
level
Definition: personalPlayback.py:22
ActionsList.h
kEnableFPE
static const char *const kEnableFPE
Definition: CmsShowMain.cc:120
CmsShowMain.h
kLogLevelCommandOpt
static const char *const kLogLevelCommandOpt
Definition: CmsShowMain.cc:97
cmsshow::sSearchFiles
const std::string sSearchFiles
Definition: ActionsList.cc:14
FWModelChangeManager.h
cmsBatch.argv
argv
Definition: cmsBatch.py:279
fwLog
#define fwLog(_level_)
Definition: fwLog.h:45
CmsShowMainBase::configurationManager
FWConfigurationManager * configurationManager()
Definition: CmsShowMainBase.h:56
FWGUIManager::filterButtonClicked_
sigc::signal< void > filterButtonClicked_
Definition: FWGUIManager.h:203
CmsShowMain::m_liveTimeout
int m_liveTimeout
Definition: CmsShowMain.h:127
CmsShowMainBase::setupConfiguration
void setupConfiguration()
Definition: CmsShowMainBase.cc:322
CmsShowMainBase::eventChangedImp
virtual void eventChangedImp()
Definition: CmsShowMainBase.cc:145
funct::false
false
Definition: Factorize.h:29
FWTTreeCache::SetDefaultCacheSize
static void SetDefaultCacheSize(int def_size)
Definition: FWTTreeCache.cc:29
FWGUIManager::enableActions
void enableActions(bool enable=true)
Definition: FWGUIManager.cc:316
kEveCommandOpt
static const char *const kEveCommandOpt
Definition: CmsShowMain.cc:102
CmsShowMainBase::loadGeometry
void loadGeometry()
Definition: CmsShowMainBase.cc:395
FWGUIManager::setFilterButtonIcon
void setFilterButtonIcon(int)
Definition: FWGUIManager.cc:1271
kSoftCommandOpt
static const char *const kSoftCommandOpt
Definition: CmsShowMain.cc:107
FWMagField::kNone
Definition: FWMagField.h:18
CmsShowMainBase::guiManager
FWGUIManager * guiManager()
Definition: CmsShowMainBase.h:61
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
kNoConfigFileCommandOpt
static const char *const kNoConfigFileCommandOpt
Definition: CmsShowMain.cc:92
CmsShowMain::notified
void notified(TSocket *)
Definition: CmsShowMain.cc:732
CmsShowMain::stopPlaying
void stopPlaying() override
Definition: CmsShowMain.cc:798
dir2webdir.argc
argc
Definition: dir2webdir.py:39
CmsShowMainFrame::enableNavigatorControls
void enableNavigatorControls()
Definition: CmsShowMainFrame.cc:567
FWGUIManager::playEventsAction
CSGContinuousAction * playEventsAction()
Definition: FWGUIManager.cc:350
FWGUIManager::evePreTerminate
void evePreTerminate()
Definition: FWGUIManager.cc:241
CmsShowMain::CmsShowMain
CmsShowMain(int argc, char *argv[])
Definition: CmsShowMain.cc:127
kLiveCommandOpt
static const char *const kLiveCommandOpt
Definition: CmsShowMain.cc:113
CmsShowMain
Definition: CmsShowMain.h:58
CmsShowMainBase::loop
bool loop() const
Definition: CmsShowMainBase.h:107
kInputFilesCommandOpt
static const char *const kInputFilesCommandOpt
Definition: CmsShowMain.cc:82
kInputFilesOpt
static const char *const kInputFilesOpt
Definition: CmsShowMain.cc:81
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
kHelpCommandOpt
static const char *const kHelpCommandOpt
Definition: CmsShowMain.cc:106
FWConfigurationManager::setIgnore
void setIgnore()
Definition: FWConfigurationManager.h:50
gather_cfg.cout
cout
Definition: gather_cfg.py:144
FWGUIManager::resetWMOffsets
void resetWMOffsets()
Definition: FWGUIManager.cc:1319
CmsShowMain::setupDataHandling
void setupDataHandling()
Definition: CmsShowMain.cc:645
kPrefetchTreeCacheOpt
static const char *const kPrefetchTreeCacheOpt
Definition: CmsShowMain.cc:100
kPlainRootCommandOpt
static const char *const kPlainRootCommandOpt
Definition: CmsShowMain.cc:110
FWGeometry::applyGlobalTag
void applyGlobalTag(const std::string &gt)
Definition: FWGeometry.cc:59
CmsShowMainBase::setSimGeometryFilename
void setSimGeometryFilename(const std::string &filename, const std::string &geoname)
Definition: CmsShowMainBase.h:94
CmsShowMain::setLoadedAnyInputFileAfterStartup
void setLoadedAnyInputFileAfterStartup()
Definition: CmsShowMain.cc:712
kRootInteractiveCommandOpt
static const char *const kRootInteractiveCommandOpt
Definition: CmsShowMain.cc:111
kAutoSaveType
static const char *const kAutoSaveType
Definition: CmsShowMain.cc:117
CmsShowMainBase::setup
void setup(FWNavigatorBase *navigator, fireworks::Context *context, FWJobMetadataManager *metadataManager)
Definition: CmsShowMainBase.cc:199
Context
FWLiteJobMetadataUpdateRequest.h
CmsShowMain::m_navigator
std::unique_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:114
kAdvancedRenderCommandOpt
static const char *const kAdvancedRenderCommandOpt
Definition: CmsShowMain.cc:104
MillePedeFileConverter_cfg.fileName
fileName
Definition: MillePedeFileConverter_cfg.py:32
CmsShowMain::navigatorChangedFilterState
void navigatorChangedFilterState(int)
Definition: CmsShowMain.cc:807
FWColorSelect.h
FWLiteJobMetadataUpdateRequest
Definition: FWLiteJobMetadataUpdateRequest.h:12
CmsShowMainBase::setAutoSaveAllViewsHeight
void setAutoSaveAllViewsHeight(int x)
Definition: CmsShowMainBase.h:128
FWGUIManager::showEventFilterGUI_
sigc::signal< void, const TGWindow * > showEventFilterGUI_
Definition: FWGUIManager.h:204
FWSelectionManager::clearSelection
void clearSelection()
Definition: FWSelectionManager.cc:63
CmsShowMain::m_context
std::unique_ptr< fireworks::Context > m_context
Definition: CmsShowMain.h:116
FWGUIManager::titleChanged
void titleChanged(const char *title)
Definition: FWGUIManager.cc:318
FWEveViewManager.h
CmsShowMainBase::setConfigFilename
void setConfigFilename(const std::string &f)
Definition: CmsShowMainBase.h:74
python.cmstools.all
def all(container)
workaround iterator generators for ROOT classes
Definition: cmstools.py:26
CmsShowMainBase::SignalTimer
Definition: CmsShowMainBase.h:130
CmsShowMain::checkPosition
void checkPosition() override
Definition: CmsShowMain.cc:627
CmsShowMain::preFiltering
void preFiltering()
Definition: CmsShowMain.cc:822
CmsShowMain::setupSocket
void setupSocket(unsigned int)
Definition: CmsShowMain.cc:720
CmsShowMain::m_loadedAnyInputFile
bool m_loadedAnyInputFile
Definition: CmsShowMain.h:119
CmsShowNavigator
Definition: CmsShowNavigator.h:36
CmsShowMain::m_metadataManager
std::unique_ptr< FWLiteJobMetadataManager > m_metadataManager
Definition: CmsShowMain.h:115
CmsShowMain::resetInitialization
void resetInitialization()
Definition: CmsShowMain.cc:513
FWGUIManager::getMainFrame
CmsShowMainFrame * getMainFrame() const
Definition: FWGUIManager.h:197
edmScanValgrind.buffer
buffer
Definition: edmScanValgrind.py:171
DieTimer::Notify
Bool_t Notify() override
Definition: CmsShowMain.cc:448
cmsshow::sOpenData
const std::string sOpenData
Definition: ActionsList.cc:12
FWGUIManager::getAction
CSGAction * getAction(const std::string name)
Definition: FWGUIManager.cc:348
FWGUIManager::updateStatus
void updateStatus(const char *status)
Definition: FWGUIManager.cc:367
alignCSCRings.s
s
Definition: alignCSCRings.py:92
fwlog::LogLevel
LogLevel
Definition: fwLog.h:35
FWSelectionManager.h
trigger::size_type
uint16_t size_type
Definition: TriggerTypeDefs.h:18
CmsShowMainBase::setupActions
void setupActions()
Definition: CmsShowMainBase.cc:74
submitPVValidationJobs.gt
list gt
Definition: submitPVValidationJobs.py:663
CmsShowMain::setLiveMode
void setLiveMode()
Definition: CmsShowMain.cc:838
FWTTreeCache::LoggingOn
static void LoggingOn()
Definition: FWTTreeCache.cc:21
kLoopCommandOpt
static const char *const kLoopCommandOpt
Definition: CmsShowMain.cc:96
FWColorManager.h
kAutoSaveHeight
static const char *const kAutoSaveHeight
Definition: CmsShowMain.cc:118
CmsShowMainBase::setAutoSaveAllViewsFormat
void setAutoSaveAllViewsFormat(const std::string &fmt)
Definition: CmsShowMainBase.h:127
CmsShowSearchFiles.h
CmsShowMain::autoLoadNewEvent
void autoLoadNewEvent() override
Definition: CmsShowMain.cc:590
w
const double w
Definition: UKUtility.cc:23
FWColorPopup::EnableFreePalette
static void EnableFreePalette()
Definition: FWColorSelect.cc:129
CmsShowMainBase
Definition: CmsShowMainBase.h:49
DieTimer::fApp
CmsShowMain * fApp
Definition: CmsShowMain.cc:443
FWLiteJobMetadataManager
Definition: FWLiteJobMetadataManager.h:12
FWMagField::getSource
ESource getSource() const
Definition: FWMagField.h:31
kSimGeomFileCommandOpt
static const char *const kSimGeomFileCommandOpt
Definition: CmsShowMain.cc:88
kSizeTreeCacheOpt
static const char *const kSizeTreeCacheOpt
Definition: CmsShowMain.cc:99
CSGAction::activated
sigc::signal< void > activated
Definition: CSGAction.h:100
kPlayCommandOpt
static const char *const kPlayCommandOpt
Definition: CmsShowMain.cc:94
kHelpOpt
static const char *const kHelpOpt
Definition: CmsShowMain.cc:105
CmsShowMainBase::setupAutoLoad
void setupAutoLoad(float x)
Definition: CmsShowMainBase.cc:301
kGeomFileCommandOpt
static const char *const kGeomFileCommandOpt
Definition: CmsShowMain.cc:86
CmsShowMainBase::isPlaying
bool isPlaying() const
Definition: CmsShowMainBase.h:118
CmsShowMainBase::draw
void draw()
Definition: CmsShowMainBase.cc:176
CmsShowTaskExecutor.h
CmsShowMainBase::startupTasks
CmsShowTaskExecutor * startupTasks()
Definition: CmsShowMainBase.h:66
CmsShowMainBase::stopPlaying
virtual void stopPlaying()
Definition: CmsShowMainBase.cc:374
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
kChainCommandOpt
static const char *const kChainCommandOpt
Definition: CmsShowMain.cc:112
CmsShowMainBase::setupDebugSupport
void setupDebugSupport()
Definition: CmsShowMainBase.cc:349
cppFunctionSkipper.exception
exception
Definition: cppFunctionSkipper.py:10
funct::true
true
Definition: Factorize.h:173
FWMagField::resetFieldEstimate
void resetFieldEstimate() const
Definition: FWMagField.cc:135
FWTableViewManager.h
CmsShowMainBase::startAutoLoadTimer
void startAutoLoadTimer()
Definition: CmsShowMainBase.cc:310
FWLiteEnabler::enable
static void enable()
enable automatic library loading
Definition: FWLiteEnabler.cc:46
FWGUIManager::initEmpty
void initEmpty()
Definition: FWGUIManager.cc:1321
CmsShowNavigator::kWithdrawn
Definition: CmsShowNavigator.h:38
FWEveViewManager::syncAllViews
static void syncAllViews()
Definition: FWEveViewManager.h:76
CmsShowNavigator::setMaxNumberOfFilesToChain
void setMaxNumberOfFilesToChain(unsigned int i)
Definition: CmsShowNavigator.h:99
CmsShowMain::m_openFile
const TFile * m_openFile
Definition: CmsShowMain.h:120
kNoVersionCheck
static const char *const kNoVersionCheck
Definition: CmsShowMain.cc:122
kZeroWinOffsets
static const char *const kZeroWinOffsets
Definition: CmsShowMain.cc:121
CmsShowMainBase::geometryFilename
const std::string & geometryFilename(void)
Definition: CmsShowMainBase.h:91
FWGUIManager::disablePrevious
void disablePrevious()
Definition: FWGUIManager.cc:358
FWTTreeCache.h
contentValuesFiles.server
server
Definition: contentValuesFiles.py:37
CmsShowMain::doExit
void doExit()
Definition: CmsShowMain.cc:458
type
type
Definition: SiPixelVCal_PayloadInspector.cc:37
FWTTreeCache::PrefetchingOn
static void PrefetchingOn()
Definition: FWTTreeCache.cc:25
gainCalibHelper::gainCalibPI::type
type
Definition: SiPixelGainCalibHelper.h:40
FWEventItemsManager::end
const_iterator end() const
Definition: FWEventItemsManager.cc:300
kSyncAllViews
static const char *const kSyncAllViews
Definition: CmsShowMain.cc:119
fireworks::Context::getGeom
FWGeometry * getGeom() const
Definition: Context.h:72
CmsShowNavigator::showEventFilterGUI
void showEventFilterGUI(const TGWindow *p)
Definition: CmsShowNavigator.cc:650
cmsshow::sAppendData
const std::string sAppendData
Definition: ActionsList.cc:13
CmsShowMain::m_noVersionCheck
bool m_noVersionCheck
Definition: CmsShowMain.h:130
kAutoSaveAllViews
static const char *const kAutoSaveAllViews
Definition: CmsShowMain.cc:116
CmsShowMainBase::setupViewManagers
void setupViewManagers()
Definition: CmsShowMainBase.cc:110
CSGAction.h
FWGUIManager::disableNext
void disableNext()
Definition: FWGUIManager.cc:360
FrontierConditions_GlobalTag_cff.file
file
Definition: FrontierConditions_GlobalTag_cff.py:13
CmsShowMain::getCurrentEvent
const fwlite::Event * getCurrentEvent() const
Definition: CmsShowMain.cc:486
kFieldCommandOpt
static const char *const kFieldCommandOpt
Definition: CmsShowMain.cc:114
CmsShowMain::m_live
bool m_live
Definition: CmsShowMain.h:125
CmsShowMainBase::setGeometryFilename
void setGeometryFilename(const std::string &filename)
Definition: CmsShowMainBase.h:90
CmsShowMainBase::stopAutoLoadTimer
void stopAutoLoadTimer()
Definition: CmsShowMainBase.cc:317
kLogTreeCacheOpt
static const char *const kLogTreeCacheOpt
Definition: CmsShowMain.cc:98
CmsShowMain::quit
void quit() override
Definition: CmsShowMain.cc:456
CmsShowMain::m_lastXEventSerial
UInt_t m_lastXEventSerial
Definition: CmsShowMain.h:128
CmsShowMain::filterButtonClicked
void filterButtonClicked()
Definition: CmsShowMain.cc:815
FWGUIManager::setFilterButtonText
void setFilterButtonText(const char *txt)
Definition: FWGUIManager.cc:1269
CmsShowMain::~CmsShowMain
~CmsShowMain() override
Definition: CmsShowMain.cc:436
CSGContinuousAction.h
CmsShowMainBase::selectionManager
FWSelectionManager * selectionManager()
Definition: CmsShowMainBase.h:59
CmsShowMainBase::forward
bool forward() const
Definition: CmsShowMainBase.h:106
kSimGeomFileOpt
static const char *const kSimGeomFileOpt
Definition: CmsShowMain.cc:87
fwLog.h
fwlog::setPresentLogLevel
void setPresentLogLevel(LogLevel)
Definition: fwLog.cc:47
get
#define get
CmsShowMain::openDataViaURL
void openDataViaURL()
Definition: CmsShowMain.cc:564
FWGUIManager::getGUIManager
static FWGUIManager * getGUIManager()
Definition: FWGUIManager.cc:685
DieTimer
Definition: CmsShowMain.cc:441
FWConfigurationManager::getIgnore
bool getIgnore() const
Definition: FWConfigurationManager.h:51
CmsShowMain::m_monitor
std::unique_ptr< TMonitor > m_monitor
Definition: CmsShowMain.h:133
CmsShowMain::connectSocket
void connectSocket()
Definition: CmsShowMain.cc:730
CmsShowTaskExecutor::startDoingTasks
void startDoingTasks() override
Definition: CmsShowTaskExecutor.cc:55
FWMagField.h
fireworks::Context::getField
FWMagField * getField() const
Definition: Context.h:66
alignmentValidation.fname
string fname
main script
Definition: alignmentValidation.py:959
CmsShowMain::reachedEnd
void reachedEnd()
fwlog::kInfo
Definition: fwLog.h:35
FWEventItemsManager::begin
const_iterator begin() const
NOTE: iterator is allowed to return a null object for items that have been removed.
Definition: FWEventItemsManager.cc:299
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
CmsShowMain::m_inputFiles
std::vector< std::string > m_inputFiles
Definition: CmsShowMain.h:118
writedatasetfile.run
run
Definition: writedatasetfile.py:27
CmsShowMain::m_liveTimer
std::unique_ptr< SignalTimer > m_liveTimer
Definition: CmsShowMain.h:126
FWGUIManager::showEventFilterGUI
void showEventFilterGUI()
Definition: FWGUIManager.cc:1265
kTGeoNameCommandOpt
static const char *const kTGeoNameCommandOpt
Definition: CmsShowMain.cc:90
fwlite::Event
Definition: Event.h:87
RunInfoPI::state
state
Definition: RunInfoPayloadInspectoHelper.h:16
FWEventItemsManager::setContext
void setContext(fireworks::Context *)
Definition: FWEventItemsManager.cc:294
kNoConfigFileOpt
static const char *const kNoConfigFileOpt
Definition: CmsShowMain.cc:91
CSGAction::isEnabled
virtual Bool_t isEnabled() const
Definition: CSGAction.cc:289
relativeConstraints.empty
bool empty
Definition: relativeConstraints.py:46
CmsShowMain::context
const fireworks::Context * context() const
Definition: CmsShowMain.h:77
ev
bool ev
Definition: Hydjet2Hadronizer.cc:95
CmsShowTaskExecutor::TaskFunctor
std::function< void()> TaskFunctor
Definition: CmsShowTaskExecutor.h:35
DieTimer::DieTimer
DieTimer(CmsShowMain *app)
Definition: CmsShowMain.cc:446
kAdvancedRenderOpt
static const char *const kAdvancedRenderOpt
Definition: CmsShowMain.cc:103
CmsShowMain::fileChangedSlot
void fileChangedSlot(const TFile *file)
Definition: CmsShowMain.cc:492
kGeomFileOpt
static const char *const kGeomFileOpt
Definition: CmsShowMain.cc:85
CmsShowTaskExecutor::addTask
void addTask(const TaskFunctor &iTask)
Definition: CmsShowTaskExecutor.cc:53
AlcaSiPixelAliHarvester0T_cff.options
options
Definition: AlcaSiPixelAliHarvester0T_cff.py:42
kTGeoNameOpt
static const char *const kTGeoNameOpt
Definition: CmsShowMain.cc:89
CmsShowMain::openData
void openData()
Definition: CmsShowMain.cc:517
fireworks::Context::getInstance
static Context * getInstance()
Definition: Context.cc:193
kPortCommandOpt
static const char *const kPortCommandOpt
Definition: CmsShowMain.cc:109
CmsShowMainFrame.h
CmsShowMain::eventChangedImp
void eventChangedImp() override
Definition: CmsShowMain.cc:507
CmsShowMain::postFiltering
void postFiltering(bool)
Definition: CmsShowMain.cc:827
FWTriggerTableViewManager.h
FWLiteJobMetadataManager.h
FWEventItemsManager.h
fwlog::kError
Definition: fwLog.h:35
kConfigFileCommandOpt
static const char *const kConfigFileCommandOpt
Definition: CmsShowMain.cc:84
CmsShowMainBase::setPlayLoop
void setPlayLoop()
Definition: CmsShowMainBase.cc:354
FWMagField::kUser
Definition: FWMagField.h:18
fireworks
Definition: FWTauProxyBuilderBase.h:35
beamvalidation.exit
def exit(msg="")
Definition: beamvalidation.py:53
CmsShowMainBase::eiManager
FWEventItemsManager * eiManager()
Definition: CmsShowMainBase.h:57
FWConfigurationManager.h
kExpertCommandOpt
static const char *const kExpertCommandOpt
Definition: CmsShowMain.cc:108
CSGAction::enable
void enable()
Definition: CSGAction.cc:269
CmsShowNavigator.h
CSGContinuousAction::switchMode
void switchMode()
Definition: CSGContinuousAction.cc:62
kEveOpt
static const char *const kEveOpt
Definition: CmsShowMain.cc:101
kPlayOpt
static const char *const kPlayOpt
Definition: CmsShowMain.cc:93
CmsShowMain::m_globalTagCheck
bool m_globalTagCheck
Definition: CmsShowMain.h:131
FWGUIManager::updateEventFilterEnable
void updateEventFilterEnable(bool)
Definition: FWGUIManager.cc:1278
cuy.ii
ii
Definition: cuy.py:590
CmsShowMain::appendData
void appendData()
Definition: CmsShowMain.cc:541
FWGUIManager::clearStatus
void clearStatus()
Definition: FWGUIManager.cc:369
kLoopOpt
static const char *const kLoopOpt
Definition: CmsShowMain.cc:95
FWLiteEnabler.h
kFreePaletteCommandOpt
static const char *const kFreePaletteCommandOpt
Definition: CmsShowMain.cc:115
CmsShowMain::checkKeyBindingsOnPLayEventsStateChanged
void checkKeyBindingsOnPLayEventsStateChanged() override
Definition: CmsShowMain.cc:790
kConfigFileOpt
static const char *const kConfigFileOpt
Definition: CmsShowMain.cc:83
CmsShowMain::m_searchFiles
std::unique_ptr< CmsShowSearchFiles > m_searchFiles
Definition: CmsShowMain.h:122
FWViewManagerManager.h
FWGUIManager.h
Context.h
CmsShowMain::checkLiveMode
void checkLiveMode()
Definition: CmsShowMain.cc:853
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37