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
FWL1TriggerTableView Class Reference

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

Inheritance diagram for FWL1TriggerTableView:
FWTriggerTableView FWViewBase FWConfigurableParameterizable FWParameterizable FWConfigurable

Public Member Functions

 FWL1TriggerTableView (TEveWindowSlot *)
 
virtual ~FWL1TriggerTableView ()
 
- Public Member Functions inherited from FWTriggerTableView
virtual void addTo (FWConfiguration &) const
 
Color_t backgroundColor () const
 
void columnSelected (Int_t iCol, Int_t iButton, Int_t iKeyMod)
 
void dataChanged (void)
 
 FWTriggerTableView (TEveWindowSlot *, FWViewType::EType)
 
void processChanged (const char *)
 
void resetCombo () const
 
virtual void saveImageTo (const std::string &iName) const
 
void setBackgroundColor (Color_t)
 
virtual void setFrom (const FWConfiguration &)
 
void setProcessList (std::vector< std::string > *x)
 
virtual ~FWTriggerTableView (void)
 
- Public Member Functions inherited from FWViewBase
virtual
FWViewContextMenuHandlerBase
contextMenuHandler () const
 
void destroy ()
 
 FWViewBase (FWViewType::EType, unsigned int iVersion=1)
 
void promptForSaveImageTo (TGFrame *) const
 
FWViewType::EType typeId () const
 
const std::string & typeName () const
 
- Public Member Functions inherited from FWConfigurableParameterizable
 FWConfigurableParameterizable (unsigned int iVersion=1)
 
unsigned int version () const
 
virtual ~FWConfigurableParameterizable ()
 
- Public Member Functions inherited from FWParameterizable
void add (FWParameterBase *)
 
const_iterator begin () const
 
const_iterator end () const
 
 FWParameterizable ()
 
virtual ~FWParameterizable ()
 
- Public Member Functions inherited from FWConfigurable
 FWConfigurable ()
 
virtual ~FWConfigurable ()
 

Protected Member Functions

virtual void fillTable (fwlite::Event *event)
 
- Protected Member Functions inherited from FWViewBase
virtual ~FWViewBase ()
 

Additional Inherited Members

- Public Types inherited from FWParameterizable
typedef std::vector
< FWParameterBase * >
::const_iterator 
const_iterator
 
- Public Attributes inherited from FWViewBase
sigc::signal< void, const
FWViewBase * > 
beingDestroyed_
 
sigc::signal< void, Int_t, Int_t > openSelectedModelContextMenu_
 
- Protected Attributes inherited from FWTriggerTableView
std::vector< Columnm_columns
 
FWStringParameter m_process
 
FWStringParameter m_regex
 
FWTriggerTableViewTableManagerm_tableManager
 
- Protected Attributes inherited from FWViewBase
FWViewType m_type
 

Detailed Description

Description: [one line class summary]

Usage: <usage>

Definition at line 26 of file FWL1TriggerTableView.h.

Constructor & Destructor Documentation

FWL1TriggerTableView::FWL1TriggerTableView ( TEveWindowSlot *  iParent)

Definition at line 28 of file FWL1TriggerTableView.cc.

References FWTriggerTableView::dataChanged(), and FWTriggerTableView::m_columns.

30 {
31  m_columns[0].title = "Algorithm Name";
32  m_columns.push_back( Column( "Result" ) );
33  m_columns.push_back( Column( "Bit Number" ) );
34  m_columns.push_back( Column( "Prescale" ) );
35 
36  dataChanged();
37 }
std::vector< Column > m_columns
FWTriggerTableView(TEveWindowSlot *, FWViewType::EType)
virtual FWL1TriggerTableView::~FWL1TriggerTableView ( )
inlinevirtual

Definition at line 30 of file FWL1TriggerTableView.h.

30 {}

Member Function Documentation

void FWL1TriggerTableView::fillTable ( fwlite::Event event)
protectedvirtual

prescale factors

Implements FWTriggerTableView.

Definition at line 40 of file FWL1TriggerTableView.cc.

References L1GlobalTriggerReadoutRecord::decisionWord(), alcazmumu_cfi::filter, fwLog, fwlite::Handle< T >::getByLabel(), fwlite::Event::getRun(), L1GtTriggerMenuLite::gtAlgorithmMap(), L1GlobalTriggerReadoutRecord::gtFdlWord(), L1GtTriggerMenuLite::gtPrescaleFactorsAlgoTrig(), L1GtTriggerMenuLite::gtPrescaleFactorsTechTrig(), L1GtTriggerMenuLite::gtTriggerResult(), fwlite::Handle< T >::isValid(), fwlog::kError, fwlog::kWarning, FWTriggerTableView::m_columns, FWTriggerTableView::m_regex, query::result, L1GlobalTriggerReadoutRecord::technicalTriggerWord(), and FWGenericParameter< T >::value().

41 {
44 
45  try
46  {
47  // FIXME: Replace magic strings with configurable ones
48  triggerMenuLite.getByLabel( event->getRun(), "l1GtTriggerMenuLite", "", "" );
49  triggerRecord.getByLabel( *event, "gtDigis", "", "" );
50  }
51  catch( cms::Exception& )
52  {
53  fwLog( fwlog::kWarning ) << "FWL1TriggerTableView: no L1Trigger menu is available." << std::endl;
54  return;
55  }
56 
57  if( triggerMenuLite.isValid() && triggerRecord.isValid() )
58  {
59  const L1GtTriggerMenuLite::L1TriggerMap& algorithmMap = triggerMenuLite->gtAlgorithmMap();
60 
61  int pfIndexTechTrig = -1;
62  int pfIndexAlgoTrig = -1;
63 
64  boost::regex filter(m_regex.value());
65 
67  std::vector<std::vector<int> > prescaleFactorsAlgoTrig = triggerMenuLite->gtPrescaleFactorsAlgoTrig();
68  std::vector<std::vector<int> > prescaleFactorsTechTrig = triggerMenuLite->gtPrescaleFactorsTechTrig();
69  pfIndexAlgoTrig = ( triggerRecord->gtFdlWord()).gtPrescaleFactorIndexAlgo();
70  pfIndexTechTrig = ( triggerRecord->gtFdlWord()).gtPrescaleFactorIndexTech();
71 
72  int pfIndexTechTrigValidSize = static_cast<int>(prescaleFactorsTechTrig.size());
73  if( pfIndexTechTrigValidSize <= pfIndexTechTrig )
74  fwLog( fwlog::kError) << Form( "FWL1TriggerTableView: Can't get Technical Trigger pre-scale factors. Index [%d] larger that table size [%d]\n",
75  pfIndexTechTrig, (int)prescaleFactorsTechTrig.size());
76  int pfIndexAlgoTrigValidSize = static_cast<int>(prescaleFactorsAlgoTrig.size());
77  if( pfIndexAlgoTrigValidSize <= pfIndexAlgoTrig )
78  fwLog( fwlog::kError) << Form( "FWL1TriggerTableView: Can't get L1 Algo pre-scale factors. Index [%d] larger that table size [%d]\n",
79  pfIndexAlgoTrig, (int)prescaleFactorsAlgoTrig.size());
80 
81  const DecisionWord dWord = triggerRecord->decisionWord();
82  for( L1GtTriggerMenuLite::CItL1Trig itTrig = algorithmMap.begin(), itTrigEnd = algorithmMap.end();
83  itTrig != itTrigEnd; ++itTrig )
84  {
85  const unsigned int bitNumber = itTrig->first;
86  const std::string& aName = itTrig->second;
87  int errorCode = 0;
88  const bool result = triggerMenuLite->gtTriggerResult( aName, dWord, errorCode );
89 
90  if ( !boost::regex_search(aName, filter) ) continue;
91 
92  m_columns.at(0).values.push_back( aName );
93  m_columns.at(1).values.push_back( Form( "%d", result ));
94  m_columns.at(2).values.push_back( Form( "%d", bitNumber ));
95 
96  if(( pfIndexAlgoTrig < pfIndexAlgoTrigValidSize )
97  && static_cast<unsigned int>(prescaleFactorsAlgoTrig.at(pfIndexAlgoTrig).size()) > bitNumber )
98  {
99  m_columns.at(3).values.push_back( Form( "%d", prescaleFactorsAlgoTrig.at( pfIndexAlgoTrig ).at( bitNumber )));
100  }
101  else
102  m_columns.at(3).values.push_back( "invalid");
103  }
104 
105  const static std::string kTechTriggerName = "TechTrigger";
106  const TechnicalTriggerWord ttWord = triggerRecord->technicalTriggerWord();
107 
108  int tBitNumber = 0;
109  int tBitResult = 0;
110  if(boost::regex_search(kTechTriggerName, filter))
111  {
112  for( TechnicalTriggerWord::const_iterator tBitIt = ttWord.begin(), tBitEnd = ttWord.end();
113  tBitIt != tBitEnd; ++tBitIt, ++tBitNumber )
114  {
115  if( *tBitIt )
116  tBitResult = 1;
117  else
118  tBitResult = 0;
119 
120  m_columns.at(0).values.push_back( kTechTriggerName );
121  m_columns.at(1).values.push_back( Form( "%d", tBitResult ));
122  m_columns.at(2).values.push_back( Form( "%d", tBitNumber ));
123 
124  if (( pfIndexTechTrig < pfIndexTechTrigValidSize )
125  && static_cast<int>(prescaleFactorsTechTrig.at(pfIndexTechTrig).size()) > tBitNumber )
126  {
127  m_columns.at(3).values.push_back( Form( "%d", prescaleFactorsTechTrig.at( pfIndexTechTrig ).at( tBitNumber )));
128  }
129  else
130  m_columns.at(3).values.push_back( Form( "invalid" ));
131  }
132  }
133  } // trigger valid
134  else
135  {
136  m_columns.at(0).values.push_back( "No L1Trigger menu available." );
137  m_columns.at(1).values.push_back( " " );
138  m_columns.at(2).values.push_back( " " );
139  m_columns.at(3).values.push_back( " " );
140  }
141 }
std::vector< Column > m_columns
const TechnicalTriggerWord & technicalTriggerWord(int bxInEventValue) const
bool isValid() const
Definition: Handle.h:64
FWStringParameter m_regex
const std::vector< std::vector< int > > & gtPrescaleFactorsAlgoTrig() const
get the prescale factors by reference / set the prescale factors
fwlite::Run const & getRun() const
Definition: Event.cc:507
std::map< unsigned int, std::string > L1TriggerMap
map containing the physics algorithms or the technical triggers
void getByLabel(const P &iP, const char *iModuleLabel, const char *iProductInstanceLabel=0, const char *iProcessLabel=0)
Definition: Handle.h:94
std::vector< bool > DecisionWord
typedefs
tuple result
Definition: query.py:137
std::vector< bool > TechnicalTriggerWord
technical trigger bits (64 bits)
const bool gtTriggerResult(const std::string &trigName, const std::vector< bool > &decWord, int &errorCode) const
const std::vector< std::vector< int > > & gtPrescaleFactorsTechTrig() const
const DecisionWord & decisionWord(int bxInEventValue) const
L1TriggerMap::const_iterator CItL1Trig
iterators through map containing the physics algorithms or the technical triggers ...
const L1GtFdlWord gtFdlWord(int bxInEventValue) const
get / set FDL word (record) in the GT readout record
#define fwLog(_level_)
Definition: fwLog.h:51
const L1TriggerMap & gtAlgorithmMap() const
get / set the algorithm map (by name)