CMS 3D CMS Logo

List of all members | Public Member Functions | Public Attributes | Private Attributes
Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog Class Reference
Inheritance diagram for Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog:

Public Member Functions

def __init__ (self, parent=None)
 
def apply (self)
 
def changedir (self)
 
def fill (self)
 
def help (self)
 
def keyPressEvent (self, event)
 
def setDataAccessor (self, accessor)
 
def tool (self)
 
def toolSelected (self)
 
def updateToolList (self)
 

Public Attributes

 ok
 

Private Attributes

 _configDataAccessor
 
 _processCopy
 
 _properties
 
 _selectedTool
 
 _splitter
 
 _toolDataAccessor
 
 _toolList
 
 _toolsDict
 
 _toolsDir
 

Detailed Description

Definition at line 16 of file ToolDialog.py.

Constructor & Destructor Documentation

def Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog.__init__ (   self,
  parent = None 
)

Definition at line 17 of file ToolDialog.py.

References reco::TrackResiduals.resize(), LayerHitMapCache::SimpleCache.resize(), EZMgrVL< T >.resize(), StorageAccount.resize, LocalCacheFile.resize(), EZMgrFL< T >.resize(), DavixFile.resize(), StorageAccountProxy.resize(), LStoreFile.resize(), edm::stream::impl::dummy_vec.resize(), DCacheFile.resize(), HGCDataFrame< D, S >.resize(), BXVector< const l1t::l1t::L1Candidate * >.resize(), BXVector< const l1t::l1t::Muon * >.resize(), BXVector< l1t::Tau >.resize(), BXVector< T >.resize(), BXVector< const GlobalExtBlk * >.resize(), BXVector< RegionalMuonCand >.resize(), BXVector< const l1t::l1t::EtSum * >.resize(), BXVector< l1t::Muon >.resize(), Storage.resize(), GsfMaterialEffectsUpdator.resize(), FEDRawData.resize(), lhef::HEPRUP.resize(), FTLDataFrameT< D, S, DECODE >.resize(), XrdFile.resize(), File.resize(), EZArrayFL< T >.resize(), EZArrayFL< GlobalPoint >.resize(), SiPixelClusterShapeCache.resize(), Phase2ITPixelClusterShapeCache.resize(), edm::DataFrameContainer.resize(), L1GctProcessor::Pipeline< T >.resize(), edm::VecArray< T, N >.resize(), VecArray< reco::TrackBase::TrackAlgorithm, reco::TrackBase::algoSize >.resize(), edm::VecArray< std::pair< int, int >, 9 >.resize(), edm::VecArray< edm::ProductID, 2 >.resize(), L1GtfeExtWord.resize(), reco::FlavorHistoryEvent.resize(), lhef::HEPEUP.resize(), edm::soa::Table< Args >.resize(), Json::Value.resize(), edmNew::DetSetVector< T >::FastFiller.resize(), edmNew::DetSetVector< T >::TSFastFiller.resize(), DetSetVector< SiStripCluster >.resize(), edmNew::DetSetVector< T >.resize(), DetSetVector< ClusterType >.resize(), const_iterator.resize(), DetSetVector< T >.resize(), DetSetVector< SiPixelCluster >.resize(), TrackingNtuple::DetIdCommon.resize(), TrackingNtuple::DetIdOTCommon.resize(), Vispa.Gui.VispaWidget.VispaWidget.resize(), and TrackingNtuple::DetIdStripOnly.resize().

17  def __init__(self,parent=None):
18  logging.debug(__name__ +': __init__')
19  QDialog.__init__(self,parent)
20  self.resize(600,500)
21  self._selectedTool=None
22  self._processCopy=None
24  self._toolsDir=standardToolsDir
25  self.setWindowFlags(Qt.Window)
26  self.setWindowTitle("Apply tool...")
27  self.fill()
28 

Member Function Documentation

def Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog.apply (   self)

Definition at line 100 of file ToolDialog.py.

References Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog._processCopy, Vispa.Plugins.ConfigEditor.ToolDataAccessor.ToolDataAccessor._processCopy, Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog._selectedTool, DDNameFilter.accept(), fwlite::EventSelector.accept(), DDFilter.accept(), ParticleDecayDrawer.accept(), DTNeutronWriter.accept(), CSCNeutronWriter.accept(), RPCNeutronWriter.accept(), smartSelector.accept(), DDPassAllFilter.accept(), fwlite::RunLumiSelector.accept(), ParticleTreeDrawer.accept(), EcalZeroSuppressor< EEDataFrame >.accept(), EcalZeroSuppressor< EBDataFrame >.accept(), EcalZeroSuppressor< C >.accept(), BPHHistoSpecificDecay::CandidateSelect.accept(), DDSpecificsFilter.accept(), BPHMuonChargeSelect.accept(), BPHMuonPtSelect.accept(), BPHParticleChargeSelect.accept(), BPHParticleEtaSelect.accept(), BPHParticleNeutralVeto.accept(), BPHParticlePtSelect.accept(), SubsystemNeutronWriter.accept(), BPHMuonEtaSelect.accept(), BPHFitSelect.accept(), BPHMomentumSelect.accept(), Filter.accept(), BPHVertexSelect.accept(), BPHChi2Select.accept(), BPHMassSelect.accept(), BPHMassSymSelect.accept(), edm::HLTGlobalStatus.accept(), BPHRecoSelect.accept(), HLTLogMonitorFilter::CategoryEntry.accept(), edm::TriggerResultsByName.accept(), edm::HLTPathStatus.accept(), BPHMassFitSelect.accept(), RunBasedHistograms::HLTRatesPlots.accept, fwlite::ObjectCountSelector< Collection >.accept(), DDSpecificsHasNamedValueFilter.accept(), DDSpecificsMatchesValueFilter.accept(), TriggerHelper.accept(), BPHSoftMuonSelect.accept(), cms::DDFilteredView.accept(), TkPixelMeasurementDet.accept(), DDAndFilter< DDSpecificsMatchesValueFilter, DDSpecificsMatchesValueFilter >.accept(), DDAndFilter< F1, F2 >.accept(), EcalSelectiveReadoutSuppressor.accept(), GenericTriggerEventFlag.accept(), FilterOR.accept(), BPHRecoBuilder.accept(), BPHDaughterSelect.accept(), BPHMultiSelect< T >.accept(), BPHMultiSelect< BPHRecoSelect >.accept(), FilterSelection.accept(), BPHCompositeBasicSelect.accept(), BPHFittedBasicSelect.accept(), BPHCompositeVertexSelect.accept(), TkStripMeasurementDet.accept(), BPHFittedVertexSelect.accept(), Vispa.Main.Exceptions.exception_traceback(), join(), LaserDQM_cfg.process, and str.

Referenced by heavyIonTools.ConfigureHeavyIons.__call__(), editorTools.UserCodeTool.__call__(), HiCoreTools.RestrictInputToAOD.__call__(), trackTools.MakeAODTrackCandidates.__call__(), coreTools.RunOnData.__call__(), runJetUncertainties.RunJetUncertainties.__call__(), metTools.AddMETCollection.__call__(), heavyIonTools.ProductionDefaults.__call__(), editorTools.ChangeSource.__call__(), HiCoreTools.RemoveMCMatching.__call__(), cmsswVersionTools.PickRelValInputFiles.__call__(), coreTools.RemoveMCMatching.__call__(), trackTools.MakePATTrackCandidates.__call__(), trigTools.SwitchOnTrigger.__call__(), runMETCorrectionsAndUncertainties.RunMETCorrectionsAndUncertainties.__call__(), heavyIonTools.SelectionDefaults.__call__(), HiCoreTools.RemoveAllPATObjectsBut.__call__(), heavyIonTools.DisbaleMonteCarloDeps.__call__(), HiCoreTools.RemoveSpecificPATObjects.__call__(), trigTools.SwitchOnTriggerStandAlone.__call__(), trackTools.MakeTrackCandidates.__call__(), tauTools.AddTauCollection.__call__(), trigTools.SwitchOnTriggerMatching.__call__(), HiCoreTools.RemoveCleaning.__call__(), HiCoreTools.AddCleaning.__call__(), trigTools.SwitchOnTriggerMatchingStandAlone.__call__(), trigTools.SwitchOnTriggerMatchEmbedding.__call__(), jetTools.AddJetCollection.__call__(), jetTools.SwitchJetCollection.__call__(), jetTools.UpdateJetCollection.__call__(), jetTools.AddJetID.__call__(), and jetTools.SetTagInfos.__call__().

100  def apply(self):
101  # allow property view to process parameter changes
102  if not self.ok.hasFocus():
103  self._properties.clearFocus()
104  self.ok.setFocus()
105  return
106  parameterErrors=self._toolDataAccessor.parameterErrors(self._selectedTool)
107  if len(parameterErrors)>0:
108  message="\n".join([error for error in parameterErrors])
109  QCoreApplication.instance().errorMessage(message)
110  return
111  ok=True
112  if self._selectedTool:
113  try:
114  self._selectedTool.apply(self._toolDataAccessor.configDataAccessor().process())
115  if not self._toolDataAccessor.configDataAccessor().process().checkRecording():
116  ok=False
117  logging.error(__name__ + ": Could not apply tool "+self._toolDataAccessor.label(self._selectedTool)+" (problem with enable recording flag) Please restart the ConfigEditor.")
118  QCoreApplication.instance().errorMessage("Could not apply tool "+self._toolDataAccessor.label(self._selectedTool)+" (problem with enable recording flag) Please restart the ConfigEditor.")
119  except Exception as e:
120  ok=False
121  logging.error(__name__ + ": Could not apply tool "+self._toolDataAccessor.label(self._selectedTool)+": "+exception_traceback())
122  QCoreApplication.instance().errorMessage("Cannot apply tool "+self._toolDataAccessor.label(self._selectedTool)+" (see log file for details):\n"+str(e))
123  else:
124  ok=False
125  logging.error(__name__ + ": Could not apply tool: No tool selected.")
126  QCoreApplication.instance().errorMessage("Cannot apply tool: No tool selected.")
127  # recover process copy to undo changes during the tool dialog
128  self._toolDataAccessor.configDataAccessor().setProcess(self._processCopy)
129  if ok:
130  self.accept()
131 
static std::string join(char **cmd)
Definition: RemoteFile.cc:18
#define str(s)
def Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog.changedir (   self)

Definition at line 132 of file ToolDialog.py.

References Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog._toolsDir, str, Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog.updateToolList(), and Vispa.Plugins.ConfigEditor.ToolDataAccessor.ToolDataAccessor.updateToolList().

132  def changedir(self):
133  filename = QFileDialog.getExistingDirectory(
134  self,'Select a directory',self._toolsDir,QFileDialog.ShowDirsOnly)
135  if not filename.isEmpty():
136  self._toolsDir=str(filename)
137  self.updateToolList()
138 
#define str(s)
def Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog.fill (   self)

Definition at line 29 of file ToolDialog.py.

29  def fill(self):
30  logging.debug(__name__ +': fill')
31  self.setLayout(QVBoxLayout())
32 
33  self._splitter=QSplitter()
34  self.layout().addWidget(self._splitter)
35 
36  self._toolList = QListWidget(self._splitter)
37  self.connect(self._toolList, SIGNAL("itemSelectionChanged()"), self.toolSelected)
39 
40  bottom=QHBoxLayout()
41  self.layout().addLayout(bottom)
42  changedir=QPushButton("&Change tools directory...")
43  bottom.addWidget(changedir)
44  self.connect(changedir, SIGNAL('clicked()'), self.changedir)
45  help=QPushButton("&Help")
46  bottom.addWidget(help)
47  self.connect(help, SIGNAL('clicked()'), self.help)
48  bottom.addStretch()
49  cancel = QPushButton('&Cancel')
50  bottom.addWidget(cancel)
51  self.connect(cancel, SIGNAL('clicked()'), self.reject)
52  self.ok=QPushButton("&Apply")
53  bottom.addWidget(self.ok)
54  self.ok.setDefault(True)
55  self.connect(self.ok, SIGNAL('clicked()'), self.apply)
56 
def Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog.help (   self)

Definition at line 139 of file ToolDialog.py.

139  def help(self):
140  QMessageBox.about(self, 'Info', "This dialog let's you choose and configure a tool.\n 1. Select a tool on the left\n 2. Set the parameters on the right. If you hold the mouse over a parameter name a tooltip with a description of the parameter will show up.\n 3. Apply the tool. In case the tool has wrong parameters set an error message will be displayed.")
def Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog.keyPressEvent (   self,
  event 
)

Definition at line 80 of file ToolDialog.py.

References RunBasedHistograms::HLTRatesPlots.reject.

80  def keyPressEvent(self, event):
81  if event.modifiers() == Qt.ControlModifier and event.key() == Qt.Key_W:
82  self.reject()
83  QDialog.keyPressEvent(self, event)
84 
def Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog.setDataAccessor (   self,
  accessor 
)

Definition at line 93 of file ToolDialog.py.

93  def setDataAccessor(self,accessor):
94  self._properties.setDataAccessor(accessor)
95  self._toolDataAccessor=accessor
96  # save process copy to undo changes during the tool dialog
97  self._processCopy=copy.deepcopy(self._toolDataAccessor.configDataAccessor().process())
98  self.updateToolList()
99 
def Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog.tool (   self)
def Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog.toolSelected (   self)
def Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog.updateToolList (   self)

Definition at line 57 of file ToolDialog.py.

References Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog._toolsDir.

Referenced by Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog.changedir().

57  def updateToolList(self):
58  self._toolList.clear()
59  # import all tools and register them in toolsDict
60  toolsFiles = [os.path.join(self._toolsDir,f) for f in os.listdir(self._toolsDir) if f.endswith(".py") and not f.startswith("_")]
61  self._toolsDict={}
62  for toolsFile in toolsFiles:
63  pythonModule = os.path.splitext(os.path.basename(toolsFile))[0]
64  module=imp.load_source(pythonModule, toolsFile)
65  for name in dir(module):
66  tool=getattr(module,name)
67  if inspect.isclass(tool) and issubclass(tool,ConfigToolBase) and not self._toolDataAccessor.label(tool) in self._toolsDict.keys() and not tool==ConfigToolBase:
68  self._toolsDict[self._toolDataAccessor.label(tool)]=tool
69  # Show test tool
70  #from FWCore.GuiBrowsers.editorTools import ChangeSource
71  #self._toolsDict["ChangeSource"]=ChangeSource
72  if len(self._toolsDict)==0 and self._toolsDir==standardToolsDir:
73  logging.error(__name__ + ": Could not find any PAT tools. These will be available for the ConfigEditor in a future release.")
74  QCoreApplication.instance().errorMessage("Could not find any PAT tools. These will be available for the ConfigEditor in a future release.")
75  return
76  for item in self._toolsDict.keys():
77  self._toolList.addItem(item)
78  self._toolList.sortItems()
79 
dbl *** dir
Definition: mlp_gen.cc:35

Member Data Documentation

Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog._configDataAccessor
private
Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog._processCopy
private
Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog._properties
private

Definition at line 38 of file ToolDialog.py.

Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog._selectedTool
private
Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog._splitter
private

Definition at line 33 of file ToolDialog.py.

Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog._toolDataAccessor
private

Definition at line 95 of file ToolDialog.py.

Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog._toolList
private

Definition at line 36 of file ToolDialog.py.

Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog._toolsDict
private
Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog._toolsDir
private
Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog.ok

Definition at line 52 of file ToolDialog.py.