CMS 3D CMS Logo

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 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)
 
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::auto_ptr< fireworks::Contextm_context
 
std::vector< std::string > m_inputFiles
 
UInt_t m_lastXEventSerial
 
bool m_live
 
int m_liveTimeout
 
std::auto_ptr< SignalTimer > m_liveTimer
 
bool m_loadedAnyInputFile
 
std::auto_ptr< FWLiteJobMetadataManagerm_metadataManager
 
std::auto_ptr< TMonitor > m_monitor
 
std::auto_ptr< CmsShowNavigatorm_navigator
 
bool m_noVersionCheck
 
const TFile * m_openFile
 
std::auto_ptr< CmsShowSearchFilesm_searchFiles
 

Detailed Description

Description: Displays an fwlite::Event in ROOT

Usage: <usage>

Definition at line 59 of file CmsShowMain.h.

Constructor & Destructor Documentation

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

Definition at line 122 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(), FWLiteEnabler::enable(), FWColorPopup::EnableFreePalette(), cppFunctionSkipper::exception, cmsRelvalreport::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, kRootInteractiveCommandOpt, kSimGeomFileCommandOpt, kSimGeomFileOpt, kSizeTreeCacheOpt, kSoftCommandOpt, kSyncAllViews, FWMagField::kUser, kZeroWinOffsets, hcalDigis_cfi::level, CmsShowMainBase::loadGeometry(), FWTTreeCache::LoggingOn(), m_context, m_inputFiles, m_metadataManager, m_navigator, m_noVersionCheck, AlcaSiPixelAliHarvester0T_cff::options, AlCaHLTBitMon_ParallelJobs::p, FWGUIManager::resetWMOffsets(), findQualityFiles::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.

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

Definition at line 435 of file CmsShowMain.cc.

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

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

Member Function Documentation

void CmsShowMain::appendData ( )

Definition at line 553 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().

554 {
555  const char* kRootType[] = {"ROOT files","*.root", nullptr, nullptr};
556  TGFileInfo fi;
557  fi.fFileTypes = kRootType;
558  /* this is how things used to be done:
559  fi.fIniDir = ".";
560  this is bad because the destructor calls delete[] on fIniDir.
561  */
562  fi.fIniDir = new char[128];
563  strncpy(fi.fIniDir, ".", 127);
564  guiManager()->updateStatus("waiting for data file ...");
565  new TGFileDialog(gClient->GetDefaultRoot(), guiManager()->getMainFrame(), kFDOpen, &fi);
566  guiManager()->updateStatus("loading file ...");
567  if (fi.fFilename) {
568  m_navigator->appendFile(fi.fFilename, false, false);
570  checkPosition();
571  draw();
572  guiManager()->titleChanged(m_navigator->frameTitle());
573  }
574  guiManager()->clearStatus();
575 }
void setLoadedAnyInputFileAfterStartup()
Definition: CmsShowMain.cc:747
void checkPosition() override
Definition: CmsShowMain.cc:655
FWGUIManager * guiManager()
void updateStatus(const char *status)
CmsShowMainFrame * getMainFrame() const
Definition: FWGUIManager.h:201
void clearStatus()
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115
void titleChanged(const char *title)
void CmsShowMain::autoLoadNewEvent ( )
overrideprivatevirtual

Implements CmsShowMainBase.

Definition at line 608 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().

609 {
611 
612  // case when start with no input file
614  {
615  if (m_monitor.get())
617  return;
618  }
619 
620  bool reachedEnd = (forward() && m_navigator->isLastEvent()) || (!forward() && m_navigator->isFirstEvent());
621 
622  if (loop() && reachedEnd)
623  {
624  forward() ? m_navigator->firstEvent() : m_navigator->lastEvent();
625  draw();
626  }
627  else if (!reachedEnd)
628  {
629  forward() ? m_navigator->nextEvent() : m_navigator->previousEvent();
630  draw();
631  }
632 
633  // stop loop in case no loop or monitor mode
634  if (reachedEnd && (loop() || m_monitor.get()) == kFALSE)
635  {
636  if (forward() && m_navigator->isLastEvent())
637  {
639  checkPosition();
640  }
641 
642  if ((!forward()) && m_navigator->isFirstEvent())
643  {
645  checkPosition();
646  }
647  }
648  else
650 }
void checkPosition() override
Definition: CmsShowMain.cc:655
bool m_loadedAnyInputFile
Definition: CmsShowMain.h:120
FWGUIManager * guiManager()
void enableActions(bool enable=true)
bool loop() const
std::auto_ptr< TMonitor > m_monitor
Definition: CmsShowMain.h:133
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115
bool forward() const
void reachedEnd()
void CmsShowMain::checkKeyBindingsOnPLayEventsStateChanged ( )
overrideprivatevirtual

Reimplemented from CmsShowMainBase.

Definition at line 848 of file CmsShowMain.cc.

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

849 {
850  if (m_live) {
851  Int_t keycode = gVirtualX->KeysymToKeycode((int)kKey_Space);
852  Window_t id = FWGUIManager::getGUIManager()->getMainFrame()->GetId();
853  gVirtualX->GrabKey(id, keycode, 0, isPlaying());
854  }
855 }
CmsShowMainFrame * getMainFrame() const
Definition: FWGUIManager.h:201
static FWGUIManager * getGUIManager()
bool isPlaying() const
void CmsShowMain::checkLiveMode ( )
private

Definition at line 930 of file CmsShowMain.cc.

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

Referenced by setLiveMode().

931 {
932  m_liveTimer->TurnOff();
933 
934 #if defined(R__LINUX)
935  TGX11 *x11 = dynamic_cast<TGX11*>(gVirtualX);
936  if (x11) {
937  XAnyEvent *ev = (XAnyEvent*) x11->GetNativeEvent();
938  // printf("serial %d \n",(int)ev->serial );
939 
940  if ( !isPlaying() && m_lastXEventSerial == ev->serial )
942  m_lastXEventSerial = ev->serial;
943  }
944 #endif
945  m_liveTimer->SetTime((Long_t)(m_liveTimeout));
946  m_liveTimer->Reset();
947  m_liveTimer->TurnOn();
948 }
FWGUIManager * guiManager()
bool ev
std::auto_ptr< SignalTimer > m_liveTimer
Definition: CmsShowMain.h:127
UInt_t m_lastXEventSerial
Definition: CmsShowMain.h:129
CSGContinuousAction * playEventsAction()
bool isPlaying() const
int m_liveTimeout
Definition: CmsShowMain.h:128
void CmsShowMain::checkPosition ( )
overrideprivatevirtual

Implements CmsShowMainBase.

Definition at line 655 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().

656 {
657  if ((m_monitor.get() || loop() ) && isPlaying())
658  return;
659 
661 
662  if (m_navigator->isFirstEvent())
664 
665  if (m_navigator->isLastEvent())
666  {
667  guiManager()->disableNext();
668  // force enable play events action in --port mode
669  if (m_monitor.get() && !guiManager()->playEventsAction()->isEnabled())
671  }
672 }
FWGUIManager * guiManager()
void enable()
Definition: CSGAction.cc:284
bool loop() const
virtual Bool_t isEnabled() const
Definition: CSGAction.cc:308
std::auto_ptr< TMonitor > m_monitor
Definition: CmsShowMain.h:133
CmsShowMainFrame * getMainFrame() const
Definition: FWGUIManager.h:201
void disablePrevious()
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115
CSGContinuousAction * playEventsAction()
bool isPlaying() const
void disableNext()
void CmsShowMain::connectSocket ( )
private

Definition at line 771 of file CmsShowMain.cc.

References m_monitor.

Referenced by CmsShowMain().

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

Definition at line 79 of file CmsShowMain.h.

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

79 { return m_context.get(); };
std::auto_ptr< fireworks::Context > m_context
Definition: CmsShowMain.h:117
void CmsShowMain::doExit ( )

Definition at line 465 of file CmsShowMain.cc.

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

Referenced by DieTimer::Notify().

466 {
467  // pre terminate eve
468  m_context->deleteEveElements();
470 
471  // sleep at least 150 ms
472  // windows in ROOT GUI are destroyed in 150 ms timeout after
473  gSystem->Sleep(151);
474  gSystem->ProcessEvents();
475  gSystem->ExitLoop();
476 }
FWGUIManager * guiManager()
std::auto_ptr< fireworks::Context > m_context
Definition: CmsShowMain.h:117
void evePreTerminate()
void CmsShowMain::eventChangedImp ( )
overrideprotectedvirtual

Reimplemented from CmsShowMainBase.

Definition at line 517 of file CmsShowMain.cc.

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

518 {
520  guiManager()->titleChanged(m_navigator->frameTitle());
522 }
const fwlite::Event * getCurrentEvent() const
Definition: CmsShowMain.cc:495
FWGUIManager * guiManager()
std::auto_ptr< FWLiteJobMetadataManager > m_metadataManager
Definition: CmsShowMain.h:116
virtual void eventChangedImp()
const TFile * m_openFile
Definition: CmsShowMain.h:121
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115
void titleChanged(const char *title)
void CmsShowMain::fileChangedSlot ( const TFile *  file)

Definition at line 503 of file CmsShowMain.cc.

References context(), FrontierConditions_GlobalTag_cff::file, getCurrentEvent(), fireworks::Context::getField(), FWMagField::getSource(), CmsShowMainBase::guiManager(), FWMagField::kNone, m_metadataManager, m_navigator, m_openFile, FWMagField::resetFieldEstimate(), and FWGUIManager::titleChanged().

Referenced by setupDataHandling().

504 {
505  m_openFile = file;
506  if (file)
507  guiManager()->titleChanged(m_navigator->frameTitle());
508 
509 
510  if (context()->getField()->getSource() == FWMagField::kNone) {
512  }
514 }
const fwlite::Event * getCurrentEvent() const
Definition: CmsShowMain.cc:495
FWGUIManager * guiManager()
std::auto_ptr< FWLiteJobMetadataManager > m_metadataManager
Definition: CmsShowMain.h:116
FWMagField * getField() const
Definition: Context.h:77
ESource getSource() const
Definition: FWMagField.h:33
const TFile * m_openFile
Definition: CmsShowMain.h:121
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115
const fireworks::Context * context() const
Definition: CmsShowMain.h:79
void titleChanged(const char *title)
void resetFieldEstimate() const
Definition: FWMagField.cc:162
void CmsShowMain::filterButtonClicked ( )
private

Definition at line 880 of file CmsShowMain.cc.

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

Referenced by setupDataHandling().

881 {
882  if (m_navigator->getFilterState() == CmsShowNavigator::kWithdrawn )
884  else
885  m_navigator->toggleFilterEnable();
886 }
FWGUIManager * guiManager()
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115
void showEventFilterGUI()
const fwlite::Event * CmsShowMain::getCurrentEvent ( ) const

Definition at line 495 of file CmsShowMain.cc.

References m_navigator.

Referenced by eventChangedImp(), and fileChangedSlot().

496 {
497  if (m_navigator.get())
498  return static_cast<const fwlite::Event*>(m_navigator->getCurrentEvent());
499  return nullptr;
500 }
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115
bool CmsShowMain::getVersionCheck ( ) const
inline

Definition at line 80 of file CmsShowMain.h.

References FrontierConditions_GlobalTag_cff::file.

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

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

Definition at line 869 of file CmsShowMain.cc.

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

Referenced by setupDataHandling().

870 {
872  if (m_navigator->filesNeedUpdate() == false)
873  {
874  guiManager()->setFilterButtonText(m_navigator->filterStatusMessage());
875  checkPosition();
876  }
877 }
void checkPosition() override
Definition: CmsShowMain.cc:655
FWGUIManager * guiManager()
void setFilterButtonIcon(int)
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115
void setFilterButtonText(const char *txt)
void CmsShowMain::notified ( TSocket *  iSocket)

Definition at line 778 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, definitions::server, AlCaHLTBitMon_QueryRunRegistry::string, and FWGUIManager::updateStatus().

779 {
780  TServerSocket* server = dynamic_cast<TServerSocket*> (iSocket);
781  if (server)
782  {
783  TSocket* connection = server->Accept();
784  if (connection)
785  {
786  m_monitor->Add(connection);
787  std::stringstream s;
788  s << "received connection from "<<iSocket->GetInetAddress().GetHostName();
789  guiManager()->updateStatus(s.str().c_str());
790  }
791  }
792  else
793  {
794  char buffer[4096];
795  memset(buffer,0,sizeof(buffer));
796  if (iSocket->RecvRaw(buffer, sizeof(buffer)) <= 0)
797  {
798  m_monitor->Remove(iSocket);
799  //std::stringstream s;
800  //s << "closing connection to "<<iSocket->GetInetAddress().GetHostName();
801  //m_guiManager->updateStatus(s.str().c_str());
802  delete iSocket;
803  return;
804  }
805  std::string fileName(buffer);
806  std::string::size_type lastNonSpace = fileName.find_last_not_of(" \n\t");
807  if (lastNonSpace != std::string::npos)
808  {
809  fileName.erase(lastNonSpace+1);
810  }
811 
812  std::stringstream s;
813  s <<"New file notified '"<<fileName<<"'";
814  guiManager()->updateStatus(s.str().c_str());
815 
816  bool appended = m_navigator->appendFile(fileName, true, m_live);
817 
818  if (appended)
819  {
820  if (m_live && isPlaying() && forward())
821  m_navigator->activateNewFileOnNextEvent();
822  else if (!isPlaying())
823  checkPosition();
824 
825  // bootstrap case: --port and no input file
827  {
828  m_loadedAnyInputFile = true;
829  m_navigator->firstEvent();
830  if (!isPlaying())
831  draw();
832  }
833 
834  std::stringstream sr;
835  sr <<"New file registered '"<<fileName<<"'";
836  guiManager()->updateStatus(sr.str().c_str());
837  }
838  else
839  {
840  std::stringstream sr;
841  sr <<"New file NOT registered '"<<fileName<<"'";
842  guiManager()->updateStatus(sr.str().c_str());
843  }
844  }
845 }
void checkPosition() override
Definition: CmsShowMain.cc:655
bool m_loadedAnyInputFile
Definition: CmsShowMain.h:120
FWGUIManager * guiManager()
void updateStatus(const char *status)
uint16_t size_type
std::auto_ptr< TMonitor > m_monitor
Definition: CmsShowMain.h:133
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115
bool isPlaying() const
bool forward() const
void CmsShowMain::openData ( )

Definition at line 528 of file CmsShowMain.cc.

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

Referenced by setupDataHandling().

529 {
530  const char* kRootType[] = {"ROOT files","*.root", nullptr, nullptr};
531  TGFileInfo fi;
532  fi.fFileTypes = kRootType;
533  /* this is how things used to be done:
534  fi.fIniDir = ".";
535  this is bad because the destructor calls delete[] on fIniDir.
536  */
537  fi.fIniDir = new char[128];
538  strncpy(fi.fIniDir, ".", 127);
539  guiManager()->updateStatus("waiting for data file ...");
540  new TGFileDialog(gClient->GetDefaultRoot(), guiManager()->getMainFrame(), kFDOpen, &fi);
541  guiManager()->updateStatus("loading file ...");
542  if (fi.fFilename) {
543  m_navigator->openFile(fi.fFilename);
544 
546  m_navigator->firstEvent();
547  checkPosition();
548  draw();
549  }
550  guiManager()->clearStatus();
551 }
void setLoadedAnyInputFileAfterStartup()
Definition: CmsShowMain.cc:747
void checkPosition() override
Definition: CmsShowMain.cc:655
FWGUIManager * guiManager()
void updateStatus(const char *status)
CmsShowMainFrame * getMainFrame() const
Definition: FWGUIManager.h:201
void clearStatus()
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115
void CmsShowMain::openDataViaURL ( )

Definition at line 578 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().

579 {
580  if (m_searchFiles.get() == nullptr) {
581  m_searchFiles = std::auto_ptr<CmsShowSearchFiles>(new CmsShowSearchFiles("",
582  "Open Remote Data Files",
583  guiManager()->getMainFrame(),
584  500, 400));
585  m_searchFiles->CenterOnParent(kTRUE,TGTransientFrame::kBottomRight);
586  }
587  std::string chosenFile = m_searchFiles->chooseFileFromURL();
588  if(!chosenFile.empty()) {
589  guiManager()->updateStatus("loading file ...");
590  if(m_navigator->openFile(chosenFile)) {
592  m_navigator->firstEvent();
593  checkPosition();
594  draw();
595  guiManager()->clearStatus();
596  } else {
597  guiManager()->updateStatus("failed to load data file");
598  }
599  }
600 }
void setLoadedAnyInputFileAfterStartup()
Definition: CmsShowMain.cc:747
void checkPosition() override
Definition: CmsShowMain.cc:655
FWGUIManager * guiManager()
void updateStatus(const char *status)
void clearStatus()
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115
std::auto_ptr< CmsShowSearchFiles > m_searchFiles
Definition: CmsShowMain.h:123
const CmsShowMain& CmsShowMain::operator= ( const CmsShowMain )
private
void CmsShowMain::postFiltering ( bool  doDraw)
private

Definition at line 896 of file CmsShowMain.cc.

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

Referenced by setupDataHandling().

897 {
898  // called only filter is changed
899  guiManager()->clearStatus();
900  if (doDraw) draw();
901  checkPosition();
902  guiManager()->setFilterButtonText(m_navigator->filterStatusMessage());
903 }
void checkPosition() override
Definition: CmsShowMain.cc:655
FWGUIManager * guiManager()
void clearStatus()
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115
void setFilterButtonText(const char *txt)
void CmsShowMain::preFiltering ( )
private

Definition at line 889 of file CmsShowMain.cc.

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

890 {
891  // called only if filter has changed
892  guiManager()->updateStatus("Filtering events");
893 }
FWGUIManager * guiManager()
void updateStatus(const char *status)
void CmsShowMain::quit ( )
overridevirtual

Implements CmsShowMainBase.

Definition at line 460 of file CmsShowMain.cc.

461 {
462  new DieTimer(this);
463 }
void CmsShowMain::reachedBeginning ( )
private
void CmsShowMain::reachedEnd ( )
private

Referenced by autoLoadNewEvent().

void CmsShowMain::resetInitialization ( )

Definition at line 524 of file CmsShowMain.cc.

524  {
525  //printf("Need to reset\n");
526 }
void CmsShowMain::setLiveMode ( )
private

Definition at line 908 of file CmsShowMain.cc.

References checkLiveMode(), m_live, m_liveTimeout, m_liveTimer, and RecoTauDiscriminantConfiguration::mask.

Referenced by CmsShowMain().

909 {
910  m_live = true;
911  m_liveTimer.reset(new SignalTimer());
912  m_liveTimer->timeout_.connect(boost::bind(&CmsShowMain::checkLiveMode,this));
913 
914  Window_t rootw, childw;
915  Int_t root_x, root_y, win_x, win_y;
916  UInt_t mask;
917  gVirtualX->QueryPointer(gClient->GetDefaultRoot()->GetId(),
918  rootw, childw,
919  root_x, root_y,
920  win_x, win_y,
921  mask);
922 
923 
924  m_liveTimer->SetTime(m_liveTimeout);
925  m_liveTimer->Reset();
926  m_liveTimer->TurnOn();
927 }
void checkLiveMode()
Definition: CmsShowMain.cc:930
std::auto_ptr< SignalTimer > m_liveTimer
Definition: CmsShowMain.h:127
int m_liveTimeout
Definition: CmsShowMain.h:128
void CmsShowMain::setLoadedAnyInputFileAfterStartup ( )
private

Definition at line 747 of file CmsShowMain.cc.

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

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

748 {
749  if (m_loadedAnyInputFile == false) {
750  m_loadedAnyInputFile = true;
751  if ((configFilename()[0] == '\0') && (configurationManager()->getIgnore() == false))
753  }
754 }
bool m_loadedAnyInputFile
Definition: CmsShowMain.h:120
const char * configFilename() const
FWConfigurationManager * configurationManager()
void CmsShowMain::setupDataHandling ( )
private

Definition at line 676 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().

677 {
678  guiManager()->updateStatus("Setting up data handling...");
679 
680  // navigator filtering ->
681  m_navigator->fileChanged_.connect(boost::bind(&CmsShowMain::fileChangedSlot, this, _1));
682  m_navigator->editFiltersExternally_.connect(boost::bind(&FWGUIManager::updateEventFilterEnable, guiManager(), _1));
683  m_navigator->filterStateChanged_.connect(boost::bind(&CmsShowMain::navigatorChangedFilterState, this, _1));
684  m_navigator->postFiltering_.connect(boost::bind(&CmsShowMain::postFiltering, this, _1));
685 
686  // navigator fitlering <-
689 
690  // Data handling. File related and therefore not in the base class.
691  if (guiManager()->getAction(cmsshow::sOpenData) != nullptr)
692  guiManager()->getAction(cmsshow::sOpenData)->activated.connect(sigc::mem_fun(*this, &CmsShowMain::openData));
693  if (guiManager()->getAction(cmsshow::sAppendData) != nullptr)
694  guiManager()->getAction(cmsshow::sAppendData)->activated.connect(sigc::mem_fun(*this, &CmsShowMain::appendData));
695  if (guiManager()->getAction(cmsshow::sSearchFiles) != nullptr)
697 
698  setupActions();
699  // init data from CmsShowNavigator configuration, can do this with signals since there were not connected yet
700  guiManager()->setFilterButtonIcon(m_navigator->getFilterState());
701 
702  for (unsigned int ii = 0; ii < m_inputFiles.size(); ++ii)
703  {
704  const std::string& fname = m_inputFiles[ii];
705  if (fname.empty())
706  continue;
707  guiManager()->updateStatus("loading data file ...");
708  if (!m_navigator->appendFile(fname, false, false))
709  {
710  guiManager()->updateStatus("failed to load data file");
711  }
712  else
713  {
714  m_loadedAnyInputFile = true;
715  }
716  }
717 
719  {
720  m_navigator->firstEvent();
721  checkPosition();
722  if (configurationManager()->getIgnore())
723  guiManager()->initEmpty();
724  else
726  }
727  else {
728  if (configFilename()[0] == '\0') {
729  guiManager()->initEmpty();
730  }
731  else {
733  }
734 
735  bool geoBrowser = (configFilename()[0] !='\0') && (eiManager()->begin() == eiManager()->end());
736 
737  if (m_monitor.get() == nullptr && (configurationManager()->getIgnore() == false) && ( !geoBrowser)) {
738  if (m_inputFiles.empty())
739  openDataViaURL();
740  else
741  openData();
742  }
743  }
744 }
void fileChangedSlot(const TFile *file)
Definition: CmsShowMain.cc:503
void navigatorChangedFilterState(int)
Definition: CmsShowMain.cc:869
void openData()
Definition: CmsShowMain.cc:528
void showEventFilterGUI(const TGWindow *p)
sigc::signal< void > filterButtonClicked_
Definition: FWGUIManager.h:207
void checkPosition() override
Definition: CmsShowMain.cc:655
bool m_loadedAnyInputFile
Definition: CmsShowMain.h:120
FWGUIManager * guiManager()
void appendData()
Definition: CmsShowMain.cc:553
void setFilterButtonIcon(int)
FWEventItemsManager * eiManager()
sigc::signal< void > activated
Definition: CSGAction.h:88
const char * configFilename() const
const std::string sOpenData
Definition: ActionsList.cc:12
void updateStatus(const char *status)
void filterButtonClicked()
Definition: CmsShowMain.cc:880
const std::string sAppendData
Definition: ActionsList.cc:13
std::auto_ptr< TMonitor > m_monitor
Definition: CmsShowMain.h:133
sigc::signal< void, const TGWindow * > showEventFilterGUI_
Definition: FWGUIManager.h:208
std::vector< std::string > m_inputFiles
Definition: CmsShowMain.h:119
ii
Definition: cuy.py:588
void postFiltering(bool)
Definition: CmsShowMain.cc:896
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)
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115
string fname
main script
FWConfigurationManager * configurationManager()
void openDataViaURL()
Definition: CmsShowMain.cc:578
const_iterator end() const
const std::string sSearchFiles
Definition: ActionsList.cc:14
void CmsShowMain::setupSocket ( unsigned int  iSocket)
private

Definition at line 758 of file CmsShowMain.cc.

References cmsRelvalreport::exit, fwLog, fwlog::kError, m_monitor, and definitions::server.

Referenced by CmsShowMain().

759 {
760  m_monitor = std::auto_ptr<TMonitor>(new TMonitor);
761  TServerSocket* server = new TServerSocket(iSocket,kTRUE);
762  if (server->GetErrorCode())
763  {
764  fwLog(fwlog::kError) << "CmsShowMain::setupSocket, can't create socket on port "<< iSocket << "." << std::endl;
765  exit(0);
766  }
767  m_monitor->Add(server);
768 }
std::auto_ptr< TMonitor > m_monitor
Definition: CmsShowMain.h:133
#define fwLog(_level_)
Definition: fwLog.h:50
void CmsShowMain::stopPlaying ( )
overrideprivatevirtual

Reimplemented from CmsShowMainBase.

Definition at line 858 of file CmsShowMain.cc.

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

859 {
861  if (m_live)
862  m_navigator->resetNewFileOnNextEvent();
865  checkPosition();
866 }
void checkPosition() override
Definition: CmsShowMain.cc:655
FWGUIManager * guiManager()
void enableActions(bool enable=true)
virtual void stopPlaying()
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115

Member Data Documentation

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

Definition at line 117 of file CmsShowMain.h.

Referenced by CmsShowMain(), and doExit().

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

Definition at line 119 of file CmsShowMain.h.

Referenced by CmsShowMain(), and setupDataHandling().

UInt_t CmsShowMain::m_lastXEventSerial
private

Definition at line 129 of file CmsShowMain.h.

Referenced by checkLiveMode().

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

Definition at line 128 of file CmsShowMain.h.

Referenced by checkLiveMode(), and setLiveMode().

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

Definition at line 127 of file CmsShowMain.h.

Referenced by checkLiveMode(), and setLiveMode().

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

Definition at line 116 of file CmsShowMain.h.

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

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

Definition at line 131 of file CmsShowMain.h.

Referenced by CmsShowMain().

const TFile* CmsShowMain::m_openFile
private

Definition at line 121 of file CmsShowMain.h.

Referenced by eventChangedImp(), and fileChangedSlot().

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

Definition at line 123 of file CmsShowMain.h.

Referenced by openDataViaURL().