CMS 3D CMS Logo

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

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

Inheritance diagram for CmsShowMain:
CmsShowMainBase

Public Member Functions

void appendData ()
 
 CmsShowMain (int argc, char *argv[])
 
const fireworks::Contextcontext () const
 
void doExit ()
 
void fileChangedSlot (const TFile *file)
 
const fwlite::EventgetCurrentEvent () const
 
bool getVersionCheck () const
 
void notified (TSocket *)
 
void openData ()
 
void openDataViaURL ()
 
virtual void quit ()
 
void resetInitialization ()
 
virtual ~CmsShowMain ()
 
- 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 ()
 

Protected Member Functions

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

Private Member Functions

virtual void autoLoadNewEvent ()
 
virtual void checkKeyBindingsOnPLayEventsStateChanged ()
 
void checkLiveMode ()
 
virtual void checkPosition ()
 
 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 setupDataHandling ()
 
void setupSocket (unsigned int)
 
virtual void stopPlaying ()
 

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< SignalTimerm_liveTimer
 
bool m_loadedAnyInputFile
 
std::auto_ptr
< FWLiteJobMetadataManager
m_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 60 of file CmsShowMain.h.

Constructor & Destructor Documentation

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

Definition at line 119 of file CmsShowMain.cc.

References CmsShowTaskExecutor::addTask(), cond::ecalcond::all, dir2webdir::argc, getDQMSummary::argv, CmsShowMainBase::configFilename(), CmsShowMainBase::configurationManager(), connectSocket(), gather_cfg::cout, alignCSCRings::e, CmsShowMainBase::eiManager(), AutoLibraryLoader::enable(), FWColorPopup::EnableFreePalette(), cppFunctionSkipper::exception, cmsRelvalreport::exit, f, fmt, fwLog, CmsShowMainBase::geometryFilename(), CmsShowMainBase::guiManager(), kAdvancedRenderCommandOpt, kAdvancedRenderOpt, kAutoSaveAllViews, kAutoSaveHeight, kAutoSaveType, kChainCommandOpt, kConfigFileCommandOpt, kConfigFileOpt, kEnableFPE, fwlog::kError, kEveCommandOpt, kEveOpt, kFieldCommandOpt, kFreePaletteCommandOpt, kGeomFileCommandOpt, kGeomFileOpt, kHelpCommandOpt, kHelpOpt, fwlog::kInfo, kInputFilesCommandOpt, kInputFilesOpt, kLiveCommandOpt, kLogLevelCommandOpt, kLogLevelOpt, kLoopCommandOpt, kLoopOpt, kNoConfigFileCommandOpt, kNoConfigFileOpt, kNoVersionCheck, kPlainRootCommandOpt, kPlayCommandOpt, kPlayOpt, kPortCommandOpt, kRootInteractiveCommandOpt, kSimGeomFileCommandOpt, kSimGeomFileOpt, kSoftCommandOpt, kSyncAllViews, FWMagField::kUser, kZeroWinOffsets, testEve_cfg::level, CmsShowMainBase::loadGeometry(), m_context, m_inputFiles, m_metadataManager, m_navigator, m_noVersionCheck, AlCaHLTBitMon_ParallelJobs::options, AlCaHLTBitMon_ParallelJobs::p, FWGUIManager::resetWMOffsets(), DTTTrigCorrFirst::run, CmsShowMainBase::setAutoSaveAllViewsFormat(), CmsShowMainBase::setAutoSaveAllViewsHeight(), CmsShowMainBase::setConfigFilename(), FWEventItemsManager::setContext(), CmsShowMainBase::setGeometryFilename(), FWConfigurationManager::setIgnore(), setLiveMode(), CmsShowNavigator::setMaxNumberOfFilesToChain(), CmsShowMainBase::setPlayLoop(), fwlog::setPresentLogLevel(), CmsShowMainBase::setSimGeometryFilename(), CmsShowMainBase::setup(), CmsShowMainBase::setupAutoLoad(), CmsShowMainBase::setupConfiguration(), setupDataHandling(), CmsShowMainBase::setupDebugSupport(), setupSocket(), CmsShowMainBase::setupViewManagers(), CmsShowTaskExecutor::startDoingTasks(), CmsShowMainBase::startupTasks(), AlCaHLTBitMon_QueryRunRegistry::string, FWEveViewManager::syncAllViews(), and w.

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

Definition at line 409 of file CmsShowMain.cc.

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

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

Member Function Documentation

void CmsShowMain::appendData ( )

Definition at line 526 of file CmsShowMain.cc.

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

Referenced by setupDataHandling().

527 {
528  const char* kRootType[] = {"ROOT files","*.root", 0, 0};
529  TGFileInfo fi;
530  fi.fFileTypes = kRootType;
531  /* this is how things used to be done:
532  fi.fIniDir = ".";
533  this is bad because the destructor calls delete[] on fIniDir.
534  */
535  fi.fIniDir = new char[128];
536  strncpy(fi.fIniDir, ".", 127);
537  guiManager()->updateStatus("waiting for data file ...");
538  new TGFileDialog(gClient->GetDefaultRoot(), guiManager()->getMainFrame(), kFDOpen, &fi);
539  guiManager()->updateStatus("loading file ...");
540  if (fi.fFilename) {
541  m_navigator->appendFile(fi.fFilename, false, false);
542  m_loadedAnyInputFile = true;
543  checkPosition();
544  draw();
545  guiManager()->titleChanged(m_navigator->frameTitle());
546  }
547  guiManager()->clearStatus();
548 }
bool m_loadedAnyInputFile
Definition: CmsShowMain.h:120
virtual void checkPosition()
Definition: CmsShowMain.cc:628
FWGUIManager * guiManager()
void updateStatus(const char *status)
CmsShowMainFrame * getMainFrame() const
Definition: FWGUIManager.h:199
void clearStatus()
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115
void titleChanged(const char *title)
void CmsShowMain::autoLoadNewEvent ( )
privatevirtual

Implements CmsShowMainBase.

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

582 {
584 
585  // case when start with no input file
587  {
588  if (m_monitor.get())
590  return;
591  }
592 
593  bool reachedEnd = (forward() && m_navigator->isLastEvent()) || (!forward() && m_navigator->isFirstEvent());
594 
595  if (loop() && reachedEnd)
596  {
597  forward() ? m_navigator->firstEvent() : m_navigator->lastEvent();
598  draw();
599  }
600  else if (!reachedEnd)
601  {
602  forward() ? m_navigator->nextEvent() : m_navigator->previousEvent();
603  draw();
604  }
605 
606  // stop loop in case no loop or monitor mode
607  if (reachedEnd && (loop() || m_monitor.get()) == kFALSE)
608  {
609  if (forward() && m_navigator->isLastEvent())
610  {
612  checkPosition();
613  }
614 
615  if ((!forward()) && m_navigator->isFirstEvent())
616  {
618  checkPosition();
619  }
620  }
621  else
623 }
bool m_loadedAnyInputFile
Definition: CmsShowMain.h:120
virtual void checkPosition()
Definition: CmsShowMain.cc:628
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 ( )
privatevirtual

Reimplemented from CmsShowMainBase.

Definition at line 799 of file CmsShowMain.cc.

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

800 {
801  if (m_live) {
802  Int_t keycode = gVirtualX->KeysymToKeycode((int)kKey_Space);
803  Window_t id = FWGUIManager::getGUIManager()->getMainFrame()->GetId();
804  gVirtualX->GrabKey(id, keycode, 0, isPlaying());
805  }
806 }
CmsShowMainFrame * getMainFrame() const
Definition: FWGUIManager.h:199
static FWGUIManager * getGUIManager()
bool isPlaying() const
void CmsShowMain::checkLiveMode ( )
private

Definition at line 881 of file CmsShowMain.cc.

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

Referenced by setLiveMode().

882 {
883  m_liveTimer->TurnOff();
884 
885 #if defined(R__LINUX)
886  TGX11 *x11 = dynamic_cast<TGX11*>(gVirtualX);
887  if (x11) {
888  XAnyEvent *ev = (XAnyEvent*) x11->GetNativeEvent();
889  // printf("serial %d \n",(int)ev->serial );
890 
891  if ( !isPlaying() && m_lastXEventSerial == ev->serial )
893  m_lastXEventSerial = ev->serial;
894  }
895 #endif
896  m_liveTimer->SetTime((Long_t)(m_liveTimeout));
897  m_liveTimer->Reset();
898  m_liveTimer->TurnOn();
899 }
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 ( )
privatevirtual

Implements CmsShowMainBase.

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

629 {
630  if ((m_monitor.get() || loop() ) && isPlaying())
631  return;
632 
634 
635  if (m_navigator->isFirstEvent())
637 
638  if (m_navigator->isLastEvent())
639  {
640  guiManager()->disableNext();
641  // force enable play events action in --port mode
642  if (m_monitor.get() && !guiManager()->playEventsAction()->isEnabled())
644  }
645 }
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:199
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 722 of file CmsShowMain.cc.

References m_monitor.

Referenced by CmsShowMain().

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

Definition at line 80 of file CmsShowMain.h.

References m_context.

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

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

Definition at line 439 of file CmsShowMain.cc.

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

Referenced by DieTimer::Notify().

440 {
441  // pre terminate eve
442  m_context->deleteEveElements();
444 
445  // sleep at least 150 ms
446  // windows in ROOT GUI are destroyed in 150 ms timeout after
447  gSystem->Sleep(151);
448  gSystem->ProcessEvents();
449  gSystem->ExitLoop();
450 }
FWGUIManager * guiManager()
std::auto_ptr< fireworks::Context > m_context
Definition: CmsShowMain.h:117
void evePreTerminate()
void CmsShowMain::eventChangedImp ( )
protectedvirtual

Reimplemented from CmsShowMainBase.

Definition at line 491 of file CmsShowMain.cc.

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

492 {
494  guiManager()->titleChanged(m_navigator->frameTitle());
496 }
const fwlite::Event * getCurrentEvent() const
Definition: CmsShowMain.cc:469
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 477 of file CmsShowMain.cc.

References context(), mergeVDriftHistosByStation::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().

478 {
479  m_openFile = file;
480  if (file)
481  guiManager()->titleChanged(m_navigator->frameTitle());
482 
483 
484  if (context()->getField()->getSource() == FWMagField::kNone) {
486  }
488 }
const fwlite::Event * getCurrentEvent() const
Definition: CmsShowMain.cc:469
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:80
void titleChanged(const char *title)
void resetFieldEstimate() const
Definition: FWMagField.cc:162
void CmsShowMain::filterButtonClicked ( )
private

Definition at line 831 of file CmsShowMain.cc.

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

Referenced by setupDataHandling().

832 {
833  if (m_navigator->getFilterState() == CmsShowNavigator::kWithdrawn )
835  else
836  m_navigator->toggleFilterEnable();
837 }
FWGUIManager * guiManager()
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115
void showEventFilterGUI()
const fwlite::Event * CmsShowMain::getCurrentEvent ( ) const

Definition at line 469 of file CmsShowMain.cc.

References m_navigator.

Referenced by eventChangedImp(), and fileChangedSlot().

470 {
471  if (m_navigator.get())
472  return static_cast<const fwlite::Event*>(m_navigator->getCurrentEvent());
473  return 0;
474 }
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115
bool CmsShowMain::getVersionCheck ( ) const
inline

Definition at line 81 of file CmsShowMain.h.

References m_noVersionCheck.

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

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

Definition at line 820 of file CmsShowMain.cc.

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

Referenced by setupDataHandling().

821 {
823  if (m_navigator->filesNeedUpdate() == false)
824  {
825  guiManager()->setFilterButtonText(m_navigator->filterStatusMessage());
826  checkPosition();
827  }
828 }
virtual void checkPosition()
Definition: CmsShowMain.cc:628
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 729 of file CmsShowMain.cc.

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

730 {
731  TServerSocket* server = dynamic_cast<TServerSocket*> (iSocket);
732  if (server)
733  {
734  TSocket* connection = server->Accept();
735  if (connection)
736  {
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  }
743  else
744  {
745  char buffer[4096];
746  memset(buffer,0,sizeof(buffer));
747  if (iSocket->RecvRaw(buffer, sizeof(buffer)) <= 0)
748  {
749  m_monitor->Remove(iSocket);
750  //std::stringstream s;
751  //s << "closing connection to "<<iSocket->GetInetAddress().GetHostName();
752  //m_guiManager->updateStatus(s.str().c_str());
753  delete iSocket;
754  return;
755  }
756  std::string fileName(buffer);
757  std::string::size_type lastNonSpace = fileName.find_last_not_of(" \n\t");
758  if (lastNonSpace != std::string::npos)
759  {
760  fileName.erase(lastNonSpace+1);
761  }
762 
763  std::stringstream s;
764  s <<"New file notified '"<<fileName<<"'";
765  guiManager()->updateStatus(s.str().c_str());
766 
767  bool appended = m_navigator->appendFile(fileName, true, m_live);
768 
769  if (appended)
770  {
771  if (m_live && isPlaying() && forward())
772  m_navigator->activateNewFileOnNextEvent();
773  else if (!isPlaying())
774  checkPosition();
775 
776  // bootstrap case: --port and no input file
778  {
779  m_loadedAnyInputFile = true;
780  m_navigator->firstEvent();
781  if (!isPlaying())
782  draw();
783  }
784 
785  std::stringstream sr;
786  sr <<"New file registered '"<<fileName<<"'";
787  guiManager()->updateStatus(sr.str().c_str());
788  }
789  else
790  {
791  std::stringstream sr;
792  sr <<"New file NOT registered '"<<fileName<<"'";
793  guiManager()->updateStatus(sr.str().c_str());
794  }
795  }
796 }
bool m_loadedAnyInputFile
Definition: CmsShowMain.h:120
virtual void checkPosition()
Definition: CmsShowMain.cc:628
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 502 of file CmsShowMain.cc.

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

Referenced by setupDataHandling().

503 {
504  const char* kRootType[] = {"ROOT files","*.root", 0, 0};
505  TGFileInfo fi;
506  fi.fFileTypes = kRootType;
507  /* this is how things used to be done:
508  fi.fIniDir = ".";
509  this is bad because the destructor calls delete[] on fIniDir.
510  */
511  fi.fIniDir = new char[128];
512  strncpy(fi.fIniDir, ".", 127);
513  guiManager()->updateStatus("waiting for data file ...");
514  new TGFileDialog(gClient->GetDefaultRoot(), guiManager()->getMainFrame(), kFDOpen, &fi);
515  guiManager()->updateStatus("loading file ...");
516  if (fi.fFilename) {
517  m_navigator->openFile(fi.fFilename);
518  m_loadedAnyInputFile = true;
519  m_navigator->firstEvent();
520  checkPosition();
521  draw();
522  }
523  guiManager()->clearStatus();
524 }
bool m_loadedAnyInputFile
Definition: CmsShowMain.h:120
virtual void checkPosition()
Definition: CmsShowMain.cc:628
FWGUIManager * guiManager()
void updateStatus(const char *status)
CmsShowMainFrame * getMainFrame() const
Definition: FWGUIManager.h:199
void clearStatus()
std::auto_ptr< CmsShowNavigator > m_navigator
Definition: CmsShowMain.h:115
void CmsShowMain::openDataViaURL ( )

Definition at line 551 of file CmsShowMain.cc.

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

Referenced by setupDataHandling().

552 {
553  if (m_searchFiles.get() == 0) {
554  m_searchFiles = std::auto_ptr<CmsShowSearchFiles>(new CmsShowSearchFiles("",
555  "Open Remote Data Files",
556  guiManager()->getMainFrame(),
557  500, 400));
558  m_searchFiles->CenterOnParent(kTRUE,TGTransientFrame::kBottomRight);
559  }
560  std::string chosenFile = m_searchFiles->chooseFileFromURL();
561  if(!chosenFile.empty()) {
562  guiManager()->updateStatus("loading file ...");
563  if(m_navigator->openFile(chosenFile.c_str())) {
564  m_loadedAnyInputFile = true;
565  m_navigator->firstEvent();
566  checkPosition();
567  draw();
568  guiManager()->clearStatus();
569  } else {
570  guiManager()->updateStatus("failed to load data file");
571  }
572  }
573 }
bool m_loadedAnyInputFile
Definition: CmsShowMain.h:120
virtual void checkPosition()
Definition: CmsShowMain.cc:628
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 847 of file CmsShowMain.cc.

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

Referenced by setupDataHandling().

848 {
849  // called only filter is changed
850  guiManager()->clearStatus();
851  if (doDraw) draw();
852  checkPosition();
853  guiManager()->setFilterButtonText(m_navigator->filterStatusMessage());
854 }
virtual void checkPosition()
Definition: CmsShowMain.cc:628
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 840 of file CmsShowMain.cc.

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

841 {
842  // called only if filter has changed
843  guiManager()->updateStatus("Filtering events");
844 }
FWGUIManager * guiManager()
void updateStatus(const char *status)
void CmsShowMain::quit ( )
virtual

Implements CmsShowMainBase.

Definition at line 434 of file CmsShowMain.cc.

435 {
436  new DieTimer(this);
437 }
void CmsShowMain::reachedBeginning ( )
private
void CmsShowMain::reachedEnd ( )
private

Referenced by autoLoadNewEvent().

void CmsShowMain::resetInitialization ( )

Definition at line 498 of file CmsShowMain.cc.

498  {
499  //printf("Need to reset\n");
500 }
void CmsShowMain::setLiveMode ( )
private

Definition at line 859 of file CmsShowMain.cc.

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

Referenced by CmsShowMain().

860 {
861  m_live = true;
862  m_liveTimer.reset(new SignalTimer());
863  m_liveTimer->timeout_.connect(boost::bind(&CmsShowMain::checkLiveMode,this));
864 
865  Window_t rootw, childw;
866  Int_t root_x, root_y, win_x, win_y;
867  UInt_t mask;
868  gVirtualX->QueryPointer(gClient->GetDefaultRoot()->GetId(),
869  rootw, childw,
870  root_x, root_y,
871  win_x, win_y,
872  mask);
873 
874 
875  m_liveTimer->SetTime(m_liveTimeout);
876  m_liveTimer->Reset();
877  m_liveTimer->TurnOn();
878 }
void checkLiveMode()
Definition: CmsShowMain.cc:881
std::auto_ptr< SignalTimer > m_liveTimer
Definition: CmsShowMain.h:127
int m_liveTimeout
Definition: CmsShowMain.h:128
void CmsShowMain::setupDataHandling ( )
private

Definition at line 649 of file CmsShowMain.cc.

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

Referenced by CmsShowMain().

650 {
651  guiManager()->updateStatus("Setting up data handling...");
652 
653 
654  // navigator filtering ->
655  m_navigator->fileChanged_.connect(boost::bind(&CmsShowMain::fileChangedSlot, this, _1));
656  m_navigator->editFiltersExternally_.connect(boost::bind(&FWGUIManager::updateEventFilterEnable, guiManager(), _1));
657  m_navigator->filterStateChanged_.connect(boost::bind(&CmsShowMain::navigatorChangedFilterState, this, _1));
658  m_navigator->postFiltering_.connect(boost::bind(&CmsShowMain::postFiltering, this, _1));
659 
660  // navigator fitlering <-
663 
664  // Data handling. File related and therefore not in the base class.
665  if (guiManager()->getAction(cmsshow::sOpenData) != 0)
666  guiManager()->getAction(cmsshow::sOpenData)->activated.connect(sigc::mem_fun(*this, &CmsShowMain::openData));
667  if (guiManager()->getAction(cmsshow::sAppendData) != 0)
668  guiManager()->getAction(cmsshow::sAppendData)->activated.connect(sigc::mem_fun(*this, &CmsShowMain::appendData));
669  if (guiManager()->getAction(cmsshow::sSearchFiles) != 0)
671 
672  setupActions();
673  // init data from CmsShowNavigator configuration, can do this with signals since there were not connected yet
674  guiManager()->setFilterButtonIcon(m_navigator->getFilterState());
675 
676  for (unsigned int ii = 0; ii < m_inputFiles.size(); ++ii)
677  {
678  const std::string& fname = m_inputFiles[ii];
679  if (fname.empty())
680  continue;
681  guiManager()->updateStatus("loading data file ...");
682  if (!m_navigator->appendFile(fname, false, false))
683  {
684  guiManager()->updateStatus("failed to load data file");
685  }
686  else
687  {
688  m_loadedAnyInputFile = true;
689 
690  }
691  }
692 
694  {
695  m_navigator->firstEvent();
696  checkPosition();
697  draw();
698  }
699  else if (m_monitor.get() == 0 && (configurationManager()->getIgnore() == false) )
700  {
701  if (m_inputFiles.empty())
702  openDataViaURL();
703  else
704  openData();
705  }
706 }
void fileChangedSlot(const TFile *file)
Definition: CmsShowMain.cc:477
void navigatorChangedFilterState(int)
Definition: CmsShowMain.cc:820
void openData()
Definition: CmsShowMain.cc:502
void showEventFilterGUI(const TGWindow *p)
sigc::signal< void > filterButtonClicked_
Definition: FWGUIManager.h:205
bool m_loadedAnyInputFile
Definition: CmsShowMain.h:120
virtual void checkPosition()
Definition: CmsShowMain.cc:628
FWGUIManager * guiManager()
void appendData()
Definition: CmsShowMain.cc:526
void setFilterButtonIcon(int)
sigc::signal< void > activated
Definition: CSGAction.h:88
const std::string sOpenData
Definition: ActionsList.cc:12
void updateStatus(const char *status)
int ii
Definition: cuy.py:588
void filterButtonClicked()
Definition: CmsShowMain.cc:831
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:206
std::vector< std::string > m_inputFiles
Definition: CmsShowMain.h:119
void postFiltering(bool)
Definition: CmsShowMain.cc:847
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:551
const std::string sSearchFiles
Definition: ActionsList.cc:14
void CmsShowMain::setupSocket ( unsigned int  iSocket)
private

Definition at line 709 of file CmsShowMain.cc.

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

Referenced by CmsShowMain().

710 {
711  m_monitor = std::auto_ptr<TMonitor>(new TMonitor);
712  TServerSocket* server = new TServerSocket(iSocket,kTRUE);
713  if (server->GetErrorCode())
714  {
715  fwLog(fwlog::kError) << "CmsShowMain::setupSocket, can't create socket on port "<< iSocket << "." << std::endl;
716  exit(0);
717  }
718  m_monitor->Add(server);
719 }
std::auto_ptr< TMonitor > m_monitor
Definition: CmsShowMain.h:133
#define fwLog(_level_)
Definition: fwLog.h:50
void CmsShowMain::stopPlaying ( )
privatevirtual

Reimplemented from CmsShowMainBase.

Definition at line 809 of file CmsShowMain.cc.

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

810 {
812  if (m_live)
813  m_navigator->resetNewFileOnNextEvent();
816  checkPosition();
817 }
virtual void checkPosition()
Definition: CmsShowMain.cc:628
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(), context(), 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(), and getVersionCheck().

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().