CMS 3D CMS Logo

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

#include <FWFFLooper.h>

Inheritance diagram for FWFFLooper:
CmsShowMainBase edm::EDLooperBase

Public Member Functions

virtual void attachTo (edm::ActivityRegistry &)
 Override this method if you need to monitor the state of the processing. More...
 
virtual void autoLoadNewEvent ()
 
virtual void beginRun (const edm::Run &, const edm::EventSetup &) override
 Called after all event modules have processed the begin of a Run. More...
 
virtual void checkPosition ()
 
void display (const std::string &info="")
 
virtual edm::EDLooperBase::Status duringLoop (const edm::Event &, const edm::EventSetup &, edm::ProcessingController &) override
 
virtual edm::EDLooperBase::Status endOfLoop (const edm::EventSetup &, unsigned int) override
 
 FWFFLooper (const edm::ParameterSet &)
 
TEveMagField * getMagField ()
 
void postBeginJob ()
 
void postEndJob ()
 
void quit ()
 
void remakeGeometry (const DisplayGeomRecord &dgRec)
 
void requestChanges (const std::string &, const edm::ParameterSet &)
 
void setupFieldForPropagator (TEveTrackPropagator *prop)
 
void showPathsGUI (const TGWindow *p)
 
virtual void startingNewLoop (unsigned int) override
 
virtual void stopPlaying ()
 
virtual ~FWFFLooper ()
 
- 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 playBackward ()
 
void playForward ()
 
void registerPhysicsObject (const FWPhysicsObjectDesc &iItem)
 
void reloadConfiguration (const std::string &config)
 
FWSelectionManagerselectionManager ()
 
void setAutoSaveAllViewsFormat (const std::string &fmt)
 
void setConfigFilename (const std::string &f)
 
void setGeometryFilename (const std::string &filename)
 
void setIsPlaying (bool value)
 
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 writeToConfigFile (const std::string &config)
 
void writeToCurrentConfigFile ()
 
virtual ~CmsShowMainBase ()
 
- Public Member Functions inherited from edm::EDLooperBase
virtual void beginOfJob (EventSetup const &)
 
virtual void beginOfJob ()
 
void copyInfo (ScheduleInfo const &)
 
void doBeginLuminosityBlock (LuminosityBlockPrincipal &, EventSetup const &, ProcessContext *)
 
void doBeginRun (RunPrincipal &, EventSetup const &, ProcessContext *)
 
Status doDuringLoop (EventPrincipal &eventPrincipal, EventSetup const &es, ProcessingController &, StreamContext *)
 
void doEndLuminosityBlock (LuminosityBlockPrincipal &, EventSetup const &, ProcessContext *)
 
Status doEndOfLoop (EventSetup const &es)
 
void doEndRun (RunPrincipal &, EventSetup const &, ProcessContext *)
 
void doStartingNewLoop ()
 
 EDLooperBase ()
 
 EDLooperBase (EDLooperBase const &)=delete
 
virtual void endOfJob ()
 
virtual std::set
< eventsetup::EventSetupRecordKey
modifyingRecords () const
 
EDLooperBaseoperator= (EDLooperBase const &)=delete
 
void prepareForNextLoop (eventsetup::EventSetupProvider *esp)
 
void setActionTable (ExceptionToActionTable const *actionTable)
 
void setModuleChanger (ModuleChanger const *)
 
virtual ~EDLooperBase ()
 

Private Types

typedef std::map< std::string,
edm::ParameterSet
ModuleChanges
 

Private Member Functions

 FWFFLooper (const FWFFLooper &)
 
void loadDefaultGeometryFile (void)
 
const FWFFLooperoperator= (const FWFFLooper &)
 

Private Attributes

bool m_AllowStep
 
edm::Service< FWFFHelperm_appHelper
 
bool m_autoReload
 
std::auto_ptr< fireworks::Contextm_context
 
TEveManager * m_EveManager
 
bool m_firstTime
 
edm::ESWatcher< DisplayGeomRecordm_geomWatcher
 
bool m_isFirstEvent
 
bool m_isLastEvent
 
TEveMagField * m_MagField
 
std::auto_ptr
< FWFFMetadataManager
m_metadataManager
 
std::auto_ptr< FWFFNavigatorm_navigator
 
edm::EventID m_nextEventId
 
FWPathsPopupm_pathsGUI
 
TRint * m_Rint
 
ModuleChanges m_scheduledChanges
 
bool m_ShowEvent
 

Additional Inherited Members

- Public Types inherited from edm::EDLooperBase
enum  Status { kContinue, kStop }
 
- Protected Member Functions inherited from CmsShowMainBase
virtual void eventChangedImp ()
 
void eventChangedSlot ()
 
void sendVersionInfo ()
 
- Protected Member Functions inherited from edm::EDLooperBase
ModuleChanger const * moduleChanger () const
 This only returns a non-zero value during the call to endOfLoop. More...
 
ScheduleInfo const * scheduleInfo () const
 This returns a non-zero value after the constructor has been called. More...
 

Detailed Description

Definition at line 44 of file FWFFLooper.h.

Member Typedef Documentation

typedef std::map<std::string, edm::ParameterSet> FWFFLooper::ModuleChanges
private

Definition at line 103 of file FWFFLooper.h.

Constructor & Destructor Documentation

FWFFLooper::FWFFLooper ( const edm::ParameterSet ps)

Definition at line 129 of file FWFFLooper.cc.

References CmsShowMainBase::eiManager(), CmsShowMainBase::geometryFilename(), edm::ParameterSet::getUntrackedParameter(), loadDefaultGeometryFile(), m_context, m_MagField, m_metadataManager, m_navigator, CmsShowMainBase::setConfigFilename(), FWEventItemsManager::setContext(), CmsShowMainBase::setGeometryFilename(), CmsShowMainBase::setup(), and AlCaHLTBitMon_QueryRunRegistry::string.

130  : CmsShowMainBase(),
131  m_navigator(new FWFFNavigator(*this)),
135  eiManager(),
136  colorManager(),
137  m_metadataManager.get())),
138  m_Rint(m_appHelper->app()),
139  m_AllowStep(true),
140  m_ShowEvent(true),
141  m_firstTime(true),
142  m_pathsGUI(0),
144 {
145  setup(m_navigator.get(), m_context.get(), m_metadataManager.get());
146 
147  eiManager()->setContext(m_context.get());
148 
149  // By default, we look up geometry and configuration in the workarea, then
150  // in the release area then in the local directory. It is also possible to
151  // override those locations by using the displayConfigurationFilename and
152  // geometryFilename in the parameterset.
153  const char *releaseBase = getenv("CMSSW_RELEASE_BASE");
154  const char *workarea = getenv("CMSSW_BASE");
155  std::string displayConfigRelFilename = "/src/Fireworks/FWInterface/macros/ffw.fwc";
156  std::string geometryRelFilename = "/src/Fireworks/FWInterface/data/cmsGeom10.root";
157 
158  std::string displayConfigFilename = "ffw.fwc";
160 
161  if (releaseBase && access((releaseBase + displayConfigFilename).c_str(), R_OK) == 0)
162  displayConfigFilename = releaseBase + displayConfigRelFilename;
163  if (workarea && access((workarea + displayConfigRelFilename).c_str(), R_OK) == 0)
164  displayConfigFilename = workarea + displayConfigRelFilename;
165 
166  if (releaseBase && access((releaseBase + geometryRelFilename).c_str(), R_OK) == 0)
167  geometryFilename = releaseBase + geometryRelFilename;
168  if (workarea && access((workarea + geometryRelFilename).c_str(), R_OK) == 0)
169  geometryFilename = workarea + geometryRelFilename;
170 
171  displayConfigFilename = ps.getUntrackedParameter<std::string>("displayConfigFilename", displayConfigFilename);
172  geometryFilename = ps.getUntrackedParameter<std::string>("geometryFilename", geometryFilename);
173 
174  setGeometryFilename(geometryFilename);
175  setConfigFilename(displayConfigFilename);
176 
177  if( !geometryFilename.empty())
178  {
180  }
181 
182  m_MagField = new CmsEveMagField();
183 }
edm::ESWatcher< DisplayGeomRecord > m_geomWatcher
Definition: FWFFLooper.h:110
T getUntrackedParameter(std::string const &, T const &) const
FWSelectionManager * selectionManager()
bool m_ShowEvent
Definition: FWFFLooper.h:99
FWColorManager * colorManager()
FWEventItemsManager * eiManager()
FWPathsPopup * m_pathsGUI
Definition: FWFFLooper.h:101
TEveMagField * m_MagField
Definition: FWFFLooper.h:96
void setup(FWNavigatorBase *navigator, fireworks::Context *context, FWJobMetadataManager *metadataManager)
void remakeGeometry(const DisplayGeomRecord &dgRec)
Definition: FWFFLooper.cc:544
void setContext(fireworks::Context *)
void loadDefaultGeometryFile(void)
Definition: FWFFLooper.cc:186
FWModelChangeManager * changeManager()
void setGeometryFilename(const std::string &filename)
std::auto_ptr< FWFFNavigator > m_navigator
Definition: FWFFLooper.h:89
std::auto_ptr< FWFFMetadataManager > m_metadataManager
Definition: FWFFLooper.h:90
TRint * m_Rint
Definition: FWFFLooper.h:94
bool m_firstTime
Definition: FWFFLooper.h:100
TRint * app()
Definition: FWFFHelper.h:16
edm::Service< FWFFHelper > m_appHelper
Definition: FWFFLooper.h:88
bool m_AllowStep
Definition: FWFFLooper.h:98
const std::string & geometryFilename(void)
void setConfigFilename(const std::string &f)
std::auto_ptr< fireworks::Context > m_context
Definition: FWFFLooper.h:91
FWFFLooper::~FWFFLooper ( )
virtual

Definition at line 203 of file FWFFLooper.cc.

References m_MagField.

204 {
205  delete m_MagField;
206 }
TEveMagField * m_MagField
Definition: FWFFLooper.h:96
FWFFLooper::FWFFLooper ( const FWFFLooper )
private

Member Function Documentation

void FWFFLooper::attachTo ( edm::ActivityRegistry )
virtual

Override this method if you need to monitor the state of the processing.

Reimplemented from edm::EDLooperBase.

Definition at line 194 of file FWFFLooper.cc.

References CmsShowMainBase::guiManager(), m_pathsGUI, postEndJob(), FWPathsPopup::postModuleEvent(), FWPathsPopup::preModuleEvent(), edm::ActivityRegistry::watchPostEndJob(), edm::ActivityRegistry::watchPostModuleEvent(), and edm::ActivityRegistry::watchPreModuleEvent().

195 {
196  m_pathsGUI = new FWPathsPopup(this, guiManager());
197 
198  ar.watchPostModuleEvent(m_pathsGUI, &FWPathsPopup::postModuleEvent);
199  ar.watchPreModuleEvent(m_pathsGUI, &FWPathsPopup::preModuleEvent);
200  ar.watchPostEndJob(this, &FWFFLooper::postEndJob);
201 }
void preModuleEvent(edm::StreamContext const &, edm::ModuleCallingContext const &)
FWGUIManager * guiManager()
FWPathsPopup * m_pathsGUI
Definition: FWFFLooper.h:101
void postEndJob()
Definition: FWFFLooper.cc:238
void postModuleEvent(edm::StreamContext const &, edm::ModuleCallingContext const &)
void FWFFLooper::autoLoadNewEvent ( )
virtual

This actually needs to be different from the standalone case because nextEvent() / previousEvent() will immediately interrupt the GUI event loop and fall back to the looper.

Implements CmsShowMainBase.

Definition at line 270 of file FWFFLooper.cc.

References FWGUIManager::enableActions(), CmsShowMainFrame::enableComplexNavigation(), CmsShowMainBase::forward(), FWGUIManager::getMainFrame(), CmsShowMainBase::guiManager(), CmsShowMainBase::loop(), m_autoReload, m_isFirstEvent, m_isLastEvent, m_navigator, CmsShowMainBase::setIsPlaying(), and CmsShowMainBase::stopAutoLoadTimer().

271 {
273  bool reachedEnd = (forward() && m_isLastEvent) || (!forward() && m_isFirstEvent);
274 
275  if (!reachedEnd || loop())
276  {
277  // Will exit the loop here!
278  m_autoReload = true;
279  forward() ? m_navigator->nextEvent() : m_navigator->previousEvent();
280  }
281  else
282  {
283  m_autoReload = false;
284  setIsPlaying(false);
287  }
288 }
bool m_isLastEvent
Definition: FWFFLooper.h:108
FWGUIManager * guiManager()
void enableActions(bool enable=true)
bool loop() const
bool m_autoReload
Definition: FWFFLooper.h:106
std::auto_ptr< FWFFNavigator > m_navigator
Definition: FWFFLooper.h:89
CmsShowMainFrame * getMainFrame() const
Definition: FWGUIManager.h:199
bool m_isFirstEvent
Definition: FWFFLooper.h:107
void setIsPlaying(bool value)
bool forward() const
void enableComplexNavigation(bool enable=true)
void FWFFLooper::beginRun ( const edm::Run ,
const edm::EventSetup  
)
overridevirtual

Called after all event modules have processed the begin of a Run.

Reimplemented from edm::EDLooperBase.

Definition at line 305 of file FWFFLooper.cc.

References edm::ESWatcher< T >::check(), cond::rpcobimon::current, cppFunctionSkipper::exception, FWGUIManager::filterButtonClicked_, edm::EventSetup::find(), fwLog, edm::EventSetup::get(), edm::Run::getByLabel(), CmsShowMainBase::getGeom(), CmsShowMainBase::guiManager(), FWGeometry::initMap(), edm::HandleBase::isValid(), fwlog::kInfo, CmsShowMainBase::loadGeometry(), m_autoReload, m_context, m_firstTime, m_geomWatcher, m_MagField, edm::ESHandle< class >::product(), FWGUIManager::setFilterButtonText(), CmsShowMainBase::setGeometryFilename(), CmsShowMainBase::setupActions(), CmsShowMainBase::setupConfiguration(), CmsShowMainBase::setupViewManagers(), FWGUIManager::showEventFilterGUI(), FWGUIManager::showEventFilterGUI_, showPathsGUI(), and FWGUIManager::updateStatus().

306 {
307  // Check DisplayGeomRecord changes.
308  try {
309  m_geomWatcher.check(iSetup);
310  }
311  catch (...) {}
312 
313  // If the geometry was not picked up from a file, we try to get it from the
314  // EventSetup!
315  // FIXME: we need to check we execute only once because the view managers
316  // depend on geometry and they cannot be initialised more than once.
317  // This should actually be cleaned up so that the various view manager
318  // don't care about geometry.
319  // FIXME: we should actually be able to update the geometry when requested.
320  // this is not possible at the moment.
321  if (m_firstTime == true)
322  {
323  if (m_context->getGeom() == 0)
324  {
325  try
326  {
327  guiManager()->updateStatus("Loading geometry...");
329  iSetup.get<FWRecoGeometryRecord>().get(geoh);
330  getGeom().initMap(geoh.product()->idToName);
331  m_context->setGeom(&(getGeom()));
332  }
333  catch( const cms::Exception& exception )
334  {
335  setGeometryFilename("cmsGeom10.root");
337  }
338  }
339 
342  setupActions();
343 
344  guiManager()->showEventFilterGUI_.connect(boost::bind(&FWFFLooper::showPathsGUI, this, _1));
345  guiManager()->setFilterButtonText("Show paths / CMSSW configuration editor");
347 
348  m_firstTime = false;
349  m_autoReload = false;
350  }
351 
352  float current = 18160.0f;
353  try {
355  // bool res = iRun.getByType(runCond);
356  bool res = iRun.getByLabel("conditionsInEdm", runCond);
357  if (res && runCond.isValid())
358  {
359  printf("Got current from conds in edm %f\n", runCond->BAvgCurrent);
360  current = runCond->BAvgCurrent;
361  }
362  else
363  {
364  printf("Could not extract run-conditions get-result=%d, is-valid=%d\n", res, runCond.isValid());
365 
366  const edm::eventsetup::EventSetupRecord* rec = iSetup.find( edm::eventsetup::EventSetupRecordKey::makeKey<RunInfoRcd>());
367  if( 0 != rec )
368  {
370  iSetup.get<RunInfoRcd>().get(sum);
371 
372  current = sum->m_avg_current;
373  printf("Got current from RunInfoRcd %f\n", sum->m_avg_current);
374  }
375  }
376  }
377  catch (...) {
378  fwLog(fwlog::kInfo) << "ConditionsInRunBlock not available\n";
379  }
380  static_cast<CmsEveMagField*>(m_MagField)->SetFieldByCurrent(current);
381 }
edm::ESWatcher< DisplayGeomRecord > m_geomWatcher
Definition: FWFFLooper.h:110
sigc::signal< void > filterButtonClicked_
Definition: FWGUIManager.h:205
FWGUIManager * guiManager()
void initMap(const FWRecoGeom::InfoMap &map)
Definition: FWGeometry.cc:124
TEveMagField * m_MagField
Definition: FWFFLooper.h:96
void updateStatus(const char *status)
void setGeometryFilename(const std::string &filename)
DataProxy const * find(DataKey const &aKey) const
bool m_autoReload
Definition: FWFFLooper.h:106
sigc::signal< void, const TGWindow * > showEventFilterGUI_
Definition: FWGUIManager.h:206
bool m_firstTime
Definition: FWFFLooper.h:100
bool isValid() const
Definition: HandleBase.h:76
#define fwLog(_level_)
Definition: fwLog.h:50
T const * product() const
Definition: ESHandle.h:62
void setFilterButtonText(const char *txt)
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:58
FWGeometry & getGeom()
void showEventFilterGUI()
void showPathsGUI(const TGWindow *p)
Definition: FWFFLooper.cc:519
std::auto_ptr< fireworks::Context > m_context
Definition: FWFFLooper.h:91
void FWFFLooper::checkPosition ( )
virtual

Implements CmsShowMainBase.

Definition at line 245 of file FWFFLooper.cc.

References FWGUIManager::disableNext(), FWGUIManager::disablePrevious(), CSGAction::enable(), CmsShowMainFrame::enableComplexNavigation(), CmsShowMainFrame::enableNavigatorControls(), FWGUIManager::getMainFrame(), CmsShowMainBase::guiManager(), CmsShowMainBase::isPlaying(), CmsShowMainBase::loop(), m_isFirstEvent, m_isLastEvent, and FWGUIManager::playEventsAction().

Referenced by duringLoop(), and stopPlaying().

246 {
247  if (loop() && isPlaying())
248  return;
249 
252 
253  if (m_isFirstEvent)
255 
256  if (m_isLastEvent)
257  {
258  guiManager()->disableNext();
259  // force enable play events action in --port mode
260  if (!guiManager()->playEventsAction()->isEnabled())
262  }
263 }
bool m_isLastEvent
Definition: FWFFLooper.h:108
FWGUIManager * guiManager()
void enable()
Definition: CSGAction.cc:284
bool loop() const
CmsShowMainFrame * getMainFrame() const
Definition: FWGUIManager.h:199
void disablePrevious()
bool m_isFirstEvent
Definition: FWFFLooper.h:107
CSGContinuousAction * playEventsAction()
bool isPlaying() const
void enableComplexNavigation(bool enable=true)
void disableNext()
void FWFFLooper::display ( const std::string &  info = "")

Definition at line 452 of file FWFFLooper.cc.

References m_AllowStep, and m_Rint.

453 {
454  // Display whatever was registered so far, wait until user presses
455  // the "Step" button.
456 
457  if (m_AllowStep)
458  {
459  gEve->Redraw3D();
460  m_Rint->Run(kTRUE);
461  }
462 }
TRint * m_Rint
Definition: FWFFLooper.h:94
bool m_AllowStep
Definition: FWFFLooper.h:98
edm::EDLooperBase::Status FWFFLooper::duringLoop ( const edm::Event ,
const edm::EventSetup ,
edm::ProcessingController  
)
overridevirtual

Called after all event modules have had a chance to process the Event.

Implements edm::EDLooperBase.

Definition at line 385 of file FWFFLooper.cc.

References edm::ESWatcher< T >::check(), checkPosition(), CmsShowMainBase::draw(), edm::ProcessingController::forwardState(), FWPathsPopup::hasChanges(), edm::ProcessingController::kAtFirstEvent, edm::ProcessingController::kAtLastEvent, edm::EDLooperBase::kContinue, FWFFNavigator::kFirstEvent, FWFFNavigator::kLastEvent, FWFFNavigator::kNextEvent, FWFFNavigator::kPreviousEvent, edm::EDLooperBase::kStop, m_autoReload, m_geomWatcher, m_isFirstEvent, m_isLastEvent, m_metadataManager, m_navigator, m_nextEventId, m_pathsGUI, m_Rint, FWPathsPopup::postEvent(), edm::ProcessingController::reverseState(), edm::ProcessingController::setTransitionToEvent(), edm::ProcessingController::setTransitionToNextEvent(), edm::ProcessingController::setTransitionToPreviousEvent(), and CmsShowMainBase::startAutoLoadTimer().

388 {
389  // Check DisplayGeomRecord changes.
390  try {
391  m_geomWatcher.check(es);
392  } catch (...) {}
393 
394 
396 
397  m_isLastEvent = controller.forwardState() == edm::ProcessingController::kAtLastEvent;
398  m_isFirstEvent = controller.reverseState() == edm::ProcessingController::kAtFirstEvent;
399  // If the next event id is valid, set the transition so
400  // that we go to it go to to it.
401  if (m_nextEventId != edm::EventID())
402  {
403  controller.setTransitionToEvent(m_nextEventId);
405  return kContinue;
406  }
407  // We handle "last event" by going to the first event and then moving to the
408  // previous event.
409  if (m_navigator->currentTransition() == FWFFNavigator::kLastEvent)
410  {
411  m_navigator->resetTransition();
412  controller.setTransitionToPreviousEvent();
413  return kContinue;
414  }
415 
416  m_pathsGUI->hasChanges() = false;
418  m_navigator->setCurrentEvent(&event);
419  if (m_autoReload == true)
421 
422  checkPosition();
423  draw();
424 
425  m_Rint->Run(kTRUE);
426  // If the GUI changed the PSet, save the current event to reload
427  // it on next iteration.
428  if (m_pathsGUI->hasChanges())
429  {
431  return kStop;
432  }
433  else if (m_navigator->currentTransition() == FWFFNavigator::kFirstEvent)
434  {
435  m_nextEventId = m_navigator->getFirstEventID();
436  return kStop;
437  }
438  else if (m_navigator->currentTransition() == FWFFNavigator::kLastEvent)
439  {
440  m_nextEventId = m_navigator->getFirstEventID();
441  return kStop;
442  }
443  else if (m_navigator->currentTransition() == FWFFNavigator::kNextEvent)
444  controller.setTransitionToNextEvent();
445  else if (m_navigator->currentTransition() == FWFFNavigator::kPreviousEvent)
446  controller.setTransitionToPreviousEvent();
447  return kContinue;
448 }
edm::ESWatcher< DisplayGeomRecord > m_geomWatcher
Definition: FWFFLooper.h:110
bool m_isLastEvent
Definition: FWFFLooper.h:108
FWPathsPopup * m_pathsGUI
Definition: FWFFLooper.h:101
bool m_autoReload
Definition: FWFFLooper.h:106
std::auto_ptr< FWFFNavigator > m_navigator
Definition: FWFFLooper.h:89
std::auto_ptr< FWFFMetadataManager > m_metadataManager
Definition: FWFFLooper.h:90
bool & hasChanges()
Definition: FWPathsPopup.h:37
TRint * m_Rint
Definition: FWFFLooper.h:94
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
bool m_isFirstEvent
Definition: FWFFLooper.h:107
virtual void checkPosition()
Definition: FWFFLooper.cc:245
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:58
void postEvent(edm::Event const &event)
edm::EventID m_nextEventId
Definition: FWFFLooper.h:105
edm::EDLooperBase::Status FWFFLooper::endOfLoop ( const edm::EventSetup ,
unsigned int   
)
overridevirtual

This is called at the end of looping. We always continue because we want the transition set in the ProcessingController to happen.

Implements edm::EDLooperBase.

Definition at line 498 of file FWFFLooper.cc.

References dtNoiseDBValidation_cfg::cerr, edm::ModuleChanger::changeModule(), alignCSCRings::e, fwLog, i, edm::EDLooperBase::kContinue, fwlog::kError, m_scheduledChanges, edm::EDLooperBase::moduleChanger(), and cms::Exception::what().

499 {
500  // Looks like the module changer is availble only here.
501  for (ModuleChanges::iterator i = m_scheduledChanges.begin(),
502  e = m_scheduledChanges.end();
503  i != e; ++i)
504  {
505  try {
506  moduleChanger()->changeModule(i->first, i->second);
507  }
508  catch (cms::Exception const& e)
509  {
510  fwLog(fwlog::kError) << "FWFFLooper::endOfLoop caught exception.\n";
511  std::cerr << e.what() << std::endl;
512  }
513  }
514  m_scheduledChanges.clear();
515  return kContinue;
516 }
virtual char const * what() const
Definition: Exception.cc:141
int i
Definition: DBlmapReader.cc:9
ModuleChanges m_scheduledChanges
Definition: FWFFLooper.h:104
bool changeModule(const std::string &iLabel, const ParameterSet &iPSet) const
ModuleChanger const * moduleChanger() const
This only returns a non-zero value during the call to endOfLoop.
#define fwLog(_level_)
Definition: fwLog.h:50
TEveMagField * FWFFLooper::getMagField ( )

Definition at line 469 of file FWFFLooper.cc.

References m_MagField.

470 {
471  return m_MagField;
472 }
TEveMagField * m_MagField
Definition: FWFFLooper.h:96
void FWFFLooper::loadDefaultGeometryFile ( void  )
private

Definition at line 186 of file FWFFLooper.cc.

References CmsShowTaskExecutor::addTask(), f, CmsShowMainBase::loadGeometry(), and CmsShowMainBase::startupTasks().

Referenced by FWFFLooper().

187 {
189  f=boost::bind( &CmsShowMainBase::loadGeometry, this );
190  startupTasks()->addTask( f );
191 }
CmsShowTaskExecutor * startupTasks()
double f[11][100]
boost::function0< void > TaskFunctor
void addTask(const TaskFunctor &iTask)
const FWFFLooper& FWFFLooper::operator= ( const FWFFLooper )
private
void FWFFLooper::postBeginJob ( )
void FWFFLooper::postEndJob ( )

Definition at line 238 of file FWFFLooper.cc.

Referenced by attachTo().

239 {
240  printf("FWFFLooper::postEndJob\n");
241  TEveManager::Terminate();
242 }
void FWFFLooper::quit ( )
virtual

Implements CmsShowMainBase.

Definition at line 481 of file FWFFLooper.cc.

482 {
483  gSystem->ExitLoop();
484 
485  // Throwing exception here is bad because:
486  // a) it does not work when in a "debug step";
487  // b) does not restore terminal state.
488  // So we do exit instead for now.
489  // throw cms::Exception("UserTerminationRequest");
490  gSystem->Exit(0);
491 }
void FWFFLooper::remakeGeometry ( const DisplayGeomRecord dgRec)

Definition at line 544 of file FWFFLooper.cc.

References fwLog, relativeConstraints::geom, edm::eventsetup::EventSetupRecord::get(), fwlog::kInfo, edm::ESHandle< class >::product(), and FWGeometryTableViewManager::setGeoManagerRuntime().

545 {
546  fwLog(fwlog::kInfo) << "FWFFLooper set TGeo geomtery from DisplayGeomRecord.\n";
547 
549  dgRec.get(geom);
550  TEveGeoManagerHolder _tgeo(const_cast<TGeoManager*>(geom.product()));
552 }
void get(HolderT &iHolder) const
#define fwLog(_level_)
Definition: fwLog.h:50
T const * product() const
Definition: ESHandle.h:62
static void setGeoManagerRuntime(TGeoManager *)
void FWFFLooper::requestChanges ( const std::string &  moduleLabel,
const edm::ParameterSet ps 
)

Definition at line 536 of file FWFFLooper.cc.

References m_scheduledChanges.

Referenced by FWPathsPopup::scheduleReloadEvent().

537 {
538  m_scheduledChanges[moduleLabel] = ps;
539 }
ModuleChanges m_scheduledChanges
Definition: FWFFLooper.h:104
void FWFFLooper::setupFieldForPropagator ( TEveTrackPropagator *  prop)

Definition at line 475 of file FWFFLooper.cc.

References m_MagField.

476 {
477  prop->SetMagFieldObj(m_MagField, kFALSE);
478 }
TEveMagField * m_MagField
Definition: FWFFLooper.h:96
void FWFFLooper::showPathsGUI ( const TGWindow *  p)

Definition at line 519 of file FWFFLooper.cc.

References CmsShowMainBase::guiManager(), m_pathsGUI, and FWGUIManager::setFilterButtonText().

Referenced by beginRun().

520 {
521  if (!m_pathsGUI)
522  return;
523  if (m_pathsGUI->IsMapped())
524  {
525  guiManager()->setFilterButtonText("Show paths / CMSSW configuration editor");
526  m_pathsGUI->UnmapWindow();
527  }
528  else
529  {
530  guiManager()->setFilterButtonText("Hide paths / CMSSW configuration editor");
531  m_pathsGUI->MapWindow();
532  }
533 }
FWGUIManager * guiManager()
FWPathsPopup * m_pathsGUI
Definition: FWFFLooper.h:101
void setFilterButtonText(const char *txt)
void FWFFLooper::startingNewLoop ( unsigned  int)
overridevirtual

Called before system starts to loop over the events. The argument is a count of how many loops have been processed. For the first time through the events the argument will be 0.

Implements edm::EDLooperBase.

Definition at line 214 of file FWFFLooper.cc.

References CmsShowTaskExecutor::addTask(), f, info(), m_pathsGUI, m_Rint, edm::EDLooperBase::scheduleInfo(), FWPathsPopup::setup(), CmsShowTaskExecutor::startDoingTasks(), and CmsShowMainBase::startupTasks().

215 {
216  // Initialise on first loop.
217  if (count == 0)
218  {
220  m_pathsGUI->setup(info);
221 
222  // We need to enter the GUI loop in order to
223  // have all the callbacks executed. The last callback will
224  // be responsible for returning the control to CMSSW.
225  assert(m_Rint);
227  f=boost::bind(&TApplication::Terminate, m_Rint, 0);
228  startupTasks()->addTask(f);
229  // FIXME: do we really need to delay tasks like this?
231  m_Rint->Run(kTRUE);
232  // Show the GUI ...
233  gSystem->ProcessEvents();
234  }
235 }
static const TGPicture * info(bool iBackgroundIsBlack)
FWPathsPopup * m_pathsGUI
Definition: FWFFLooper.h:101
CmsShowTaskExecutor * startupTasks()
TRint * m_Rint
Definition: FWFFLooper.h:94
double f[11][100]
ScheduleInfo const * scheduleInfo() const
This returns a non-zero value after the constructor has been called.
boost::function0< void > TaskFunctor
void addTask(const TaskFunctor &iTask)
void setup(const edm::ScheduleInfo *info)
void FWFFLooper::stopPlaying ( )
virtual

Implements CmsShowMainBase.

Definition at line 291 of file FWFFLooper.cc.

References checkPosition(), FWGUIManager::enableActions(), CmsShowMainFrame::enableComplexNavigation(), FWGUIManager::getMainFrame(), CmsShowMainBase::guiManager(), m_autoReload, CmsShowMainBase::setIsPlaying(), and CmsShowMainBase::stopAutoLoadTimer().

292 {
294  m_autoReload = false;
295  setIsPlaying(false);
298  checkPosition();
299 }
FWGUIManager * guiManager()
void enableActions(bool enable=true)
bool m_autoReload
Definition: FWFFLooper.h:106
CmsShowMainFrame * getMainFrame() const
Definition: FWGUIManager.h:199
void setIsPlaying(bool value)
virtual void checkPosition()
Definition: FWFFLooper.cc:245
void enableComplexNavigation(bool enable=true)

Member Data Documentation

bool FWFFLooper::m_AllowStep
private

Definition at line 98 of file FWFFLooper.h.

Referenced by display().

edm::Service<FWFFHelper> FWFFLooper::m_appHelper
private

Definition at line 88 of file FWFFLooper.h.

bool FWFFLooper::m_autoReload
private

Definition at line 106 of file FWFFLooper.h.

Referenced by autoLoadNewEvent(), beginRun(), duringLoop(), and stopPlaying().

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

Definition at line 91 of file FWFFLooper.h.

Referenced by beginRun(), and FWFFLooper().

TEveManager* FWFFLooper::m_EveManager
private

Definition at line 93 of file FWFFLooper.h.

bool FWFFLooper::m_firstTime
private

Definition at line 100 of file FWFFLooper.h.

Referenced by beginRun().

edm::ESWatcher<DisplayGeomRecord> FWFFLooper::m_geomWatcher
private

Definition at line 110 of file FWFFLooper.h.

Referenced by beginRun(), and duringLoop().

bool FWFFLooper::m_isFirstEvent
private

Definition at line 107 of file FWFFLooper.h.

Referenced by autoLoadNewEvent(), checkPosition(), and duringLoop().

bool FWFFLooper::m_isLastEvent
private

Definition at line 108 of file FWFFLooper.h.

Referenced by autoLoadNewEvent(), checkPosition(), and duringLoop().

TEveMagField* FWFFLooper::m_MagField
private

Definition at line 96 of file FWFFLooper.h.

Referenced by beginRun(), FWFFLooper(), getMagField(), setupFieldForPropagator(), and ~FWFFLooper().

std::auto_ptr<FWFFMetadataManager> FWFFLooper::m_metadataManager
private

Definition at line 90 of file FWFFLooper.h.

Referenced by duringLoop(), and FWFFLooper().

std::auto_ptr<FWFFNavigator> FWFFLooper::m_navigator
private

Definition at line 89 of file FWFFLooper.h.

Referenced by autoLoadNewEvent(), duringLoop(), and FWFFLooper().

edm::EventID FWFFLooper::m_nextEventId
private

Definition at line 105 of file FWFFLooper.h.

Referenced by duringLoop().

FWPathsPopup* FWFFLooper::m_pathsGUI
private

Definition at line 101 of file FWFFLooper.h.

Referenced by attachTo(), duringLoop(), showPathsGUI(), and startingNewLoop().

TRint* FWFFLooper::m_Rint
private

Definition at line 94 of file FWFFLooper.h.

Referenced by display(), duringLoop(), and startingNewLoop().

ModuleChanges FWFFLooper::m_scheduledChanges
private

Definition at line 104 of file FWFFLooper.h.

Referenced by endOfLoop(), and requestChanges().

bool FWFFLooper::m_ShowEvent
private

Definition at line 99 of file FWFFLooper.h.